koOasisStyles.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KOOASISSTYLES_H
00020 #define KOOASISSTYLES_H
00021
00022 #include <qdom.h>
00023 #include <qdict.h>
00024 #include <qvaluevector.h>
00025 #include <qmap.h>
00026 #include <koffice_export.h>
00027
00028 class KoGenStyles;
00029 class KoXmlWriter;
00030 class QBrush;
00031 class KoGenStyle;
00032 class KoStyleStack;
00033
00037 class KOFFICECORE_EXPORT KoOasisStyles
00038 {
00039 public:
00040 KoOasisStyles();
00041 ~KoOasisStyles();
00042
00044 void createStyleMap( const QDomDocument& doc );
00045
00048 const QDict<QDomElement>& styles() const { return m_styles; }
00049
00052 QValueVector<QDomElement> userStyles() const;
00053
00056 QDomElement* defaultStyle( const QString& family ) const;
00057
00059 const QDomElement& officeStyle() const { return m_officeStyle; }
00060
00062 const QDict<QDomElement>& listStyles() const { return m_listStyles; }
00063
00065 const QDict<QDomElement>& masterPages() const { return m_masterPages; }
00066
00068 const QDict<QDomElement>& drawStyles() const { return m_drawStyles; }
00069
00070
00071
00072 struct NumericStyleFormat
00073 {
00074 QString formatStr;
00075 QString prefix;
00076 QString suffix;
00077 };
00078
00079 typedef QMap<QString, NumericStyleFormat> DataFormatsMap;
00082 const DataFormatsMap& dataFormats() const { return m_dataFormats; }
00083
00084 static QString saveOasisDateStyle( KoGenStyles &mainStyles, const QString & _format, bool klocaleFormat );
00085 static QString saveOasisTimeStyle( KoGenStyles &mainStyles, const QString & _format, bool klocaleFormat );
00086 static QString saveOasisFractionStyle( KoGenStyles &mainStyles, const QString & _format, const QString &_prefix = QString::null , const QString &_suffix= QString::null );
00087 static QString saveOasisScientificStyle( KoGenStyles &mainStyles, const QString & _format, const QString &_prefix = QString::null , const QString &_suffix= QString::null );
00088 static QString saveOasisPercentageStyle( KoGenStyles &mainStyles, const QString & _format, const QString &_prefix = QString::null , const QString &_suffix= QString::null );
00089 static QString saveOasisCurrencyStyle( KoGenStyles &mainStyles, const QString & _format, const QString &_prefix = QString::null , const QString &_suffix= QString::null );
00090 static QString saveOasisTextStyle( KoGenStyles &mainStyles, const QString & _format, const QString &_prefix = QString::null , const QString &_suffix= QString::null );
00091
00092 static void saveOasisFillStyle( KoGenStyle &styleFill, KoGenStyles& mainStyles, const QBrush & brush );
00093 static QString saveOasisHatchStyle( KoGenStyles& mainStyles, const QBrush &brush );
00094
00095 static QBrush loadOasisFillStyle( const KoStyleStack &styleStack, const QString & fill, const KoOasisStyles & oasisStyles );
00096
00097 protected:
00099 void insertStyles( const QDomElement& styles );
00100
00101 private:
00102 void insertOfficeStyles( const QDomElement& styles );
00103 void insertStyle( const QDomElement& style );
00104 void importDataStyle( const QDomElement& parent );
00105 static bool saveOasisTimeFormat( KoXmlWriter &elementWriter, QString & format, QString & text, bool &antislash );
00106 static void parseOasisDateKlocale(KoXmlWriter &elementWriter, QString & format, QString & text );
00107 static bool saveOasisKlocaleTimeFormat( KoXmlWriter &elementWriter, QString & format, QString & text );
00108 static void parseOasisTimeKlocale(KoXmlWriter &elementWriter, QString & format, QString & text );
00109 static void addKofficeNumericStyleExtension( KoXmlWriter & elementWriter, const QString &_suffix, const QString &_prefix );
00110
00111 KoOasisStyles( const KoOasisStyles & );
00112 KoOasisStyles& operator=( const KoOasisStyles & );
00113
00114 private:
00115 QDict<QDomElement> m_styles;
00116 QDict<QDomElement> m_defaultStyle;
00117 QDomElement m_officeStyle;
00118
00119 QDict<QDomElement> m_masterPages;
00120 QDict<QDomElement> m_listStyles;
00121
00122 QDict<QDomElement> m_drawStyles;
00123 DataFormatsMap m_dataFormats;
00124
00125 class Private;
00126 Private *d;
00127 };
00128
00129 #endif
This file is part of the documentation for lib Library Version 1.4.2.