lib Library API Documentation

koOasisStyles.h

00001 /* This file is part of the KDE project
00002    Copyright (C) 2004 David Faure <faure@kde.org>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016    Boston, MA 02111-1307, USA.
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     //Prefix and suffix are always included into formatStr. Having them as separate fields simply
00071     //allows to extract them from formatStr, to display them in separate widgets.
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 & ); // forbidden
00112     KoOasisStyles& operator=( const KoOasisStyles & ); // forbidden
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 /* KOOASISSTYLES_H */
KDE Logo
This file is part of the documentation for lib Library Version 1.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Feb 13 09:40:02 2006 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003