File indexing completed on 2024-05-12 16:29:10

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2010 Carlos Licea <carlos@kdab.com>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Library General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Library General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #ifndef MSOOXMLDRAWINGTABLESTYLEREADER_H
0021 #define MSOOXMLDRAWINGTABLESTYLEREADER_H
0022 
0023 #include "komsooxml_export.h"
0024 
0025 #include "MsooXmlDrawingTableStyle.h"
0026 #include "MsooXmlCommonReader.h"
0027 
0028 
0029 #include <QMap>
0030 
0031 /**
0032 *   The following classes deal with the creation of the table styles part,
0033 *   specifically, we deal with the elements that start at the a:tblStyleLst §20.1.4.2.27,
0034 *   you can find its part definition at Table Styles Part §14.2.9
0035 */
0036 namespace MSOOXML
0037 {
0038 
0039 class DrawingMLTheme;
0040 class MsooXmlImport;
0041 
0042 class KOMSOOXML_EXPORT MsooXmlDrawingTableStyleContext : public MSOOXML::MsooXmlReaderContext
0043 {
0044 public:
0045     MsooXmlDrawingTableStyleContext(MSOOXML::MsooXmlImport* _import, const QString& _path,
0046                     const QString& _file, MSOOXML::DrawingMLTheme* _themes,
0047                     QMap< QString, MSOOXML::DrawingTableStyle* >* _styleList,
0048                     QMap< QString, QString > _colorMap);
0049     ~MsooXmlDrawingTableStyleContext() override;
0050 
0051     QMap<QString, MSOOXML::DrawingTableStyle*>* styleList;
0052 
0053     //Those members are used by some methods included
0054     MsooXmlImport* import;
0055     QString path;
0056     QString file;
0057     MSOOXML::DrawingMLTheme* themes;
0058     QMap<QString, QString> colorMap;
0059 };
0060 
0061 class KOMSOOXML_EXPORT MsooXmlDrawingTableStyleReader : public MsooXmlCommonReader
0062 {
0063 public:
0064     explicit MsooXmlDrawingTableStyleReader(KoOdfWriters *writers);
0065     ~MsooXmlDrawingTableStyleReader() override;
0066 
0067     KoFilter::ConversionStatus read(MsooXmlReaderContext* context = 0) override;
0068 
0069 protected:
0070     KoFilter::ConversionStatus read_tblStyleLst();
0071     KoFilter::ConversionStatus read_tblStyle();
0072     KoFilter::ConversionStatus read_tblBg();
0073     KoFilter::ConversionStatus read_band1H();
0074     KoFilter::ConversionStatus read_band1V();
0075     KoFilter::ConversionStatus read_band2H();
0076     KoFilter::ConversionStatus read_band2V();
0077     KoFilter::ConversionStatus read_firstCol();
0078     KoFilter::ConversionStatus read_firstRow();
0079     KoFilter::ConversionStatus read_lastCol();
0080     KoFilter::ConversionStatus read_lastRow();
0081     KoFilter::ConversionStatus read_neCell();
0082     KoFilter::ConversionStatus read_nwCell();
0083     KoFilter::ConversionStatus read_seCell();
0084     KoFilter::ConversionStatus read_swCell();
0085     KoFilter::ConversionStatus read_wholeTbl();
0086     KoFilter::ConversionStatus read_tcStyle();
0087     KoFilter::ConversionStatus read_tcTxStyle();
0088     KoFilter::ConversionStatus read_bottom();
0089     KoFilter::ConversionStatus read_left();
0090     KoFilter::ConversionStatus read_right();
0091     KoFilter::ConversionStatus read_top();
0092     KoFilter::ConversionStatus read_insideV();
0093     KoFilter::ConversionStatus read_insideH();
0094     KoFilter::ConversionStatus read_tl2br();
0095     KoFilter::ConversionStatus read_tr2bl();
0096     KoFilter::ConversionStatus read_tcBdr();
0097     KoFilter::ConversionStatus read_fill();
0098 
0099 #include "MsooXmlDrawingMLShared.h"
0100 
0101 private:
0102     MsooXmlDrawingTableStyleContext* m_context;
0103 
0104     DrawingTableStyle* m_currentStyle;
0105     TableStyleProperties* m_currentTableStyleProperties;
0106 };
0107 
0108 }
0109 
0110 #endif // MSOOXMLDRAWINGTABLESTYLEREADER_H