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

0001 /*
0002  * This file is part of Office 2007 Filters for Calligra
0003  *
0004  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
0005  *
0006  * Contact: Suresh Chande suresh.chande@nokia.com
0007  *
0008  * This library is free software; you can redistribute it and/or
0009  * modify it under the terms of the GNU Lesser General Public License
0010  * version 2.1 as published by the Free Software Foundation.
0011  *
0012  * This library is distributed in the hope that it will be useful, but
0013  * WITHOUT ANY WARRANTY; without even the implied warranty of
0014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0015  * Lesser General Public License for more details.
0016  *
0017  * You should have received a copy of the GNU Lesser General Public
0018  * License along with this library; if not, write to the Free Software
0019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
0020  * 02110-1301 USA
0021  *
0022  */
0023 
0024 #ifndef VMLDRAWINGREADER_H
0025 #define VMLDRAWINGREADER_H
0026 
0027 #include <MsooXmlCommonReader.h>
0028 #include <MsooXmlImport.h>
0029 
0030 class KOMSOOXML_EXPORT VmlDrawingReaderContext : public MSOOXML::MsooXmlReaderContext
0031 {
0032 public:
0033     //! Creates the context object.
0034     VmlDrawingReaderContext(MSOOXML::MsooXmlImport& _import,
0035         const QString& _path, const QString& _file,
0036         MSOOXML::MsooXmlRelationships& _relationships);
0037     MSOOXML::MsooXmlImport* import;
0038     const QString path;
0039     const QString file;
0040 };
0041 
0042 //! A class reading headers
0043 class KOMSOOXML_EXPORT VmlDrawingReader : public MSOOXML::MsooXmlCommonReader
0044 {
0045 public:
0046     explicit VmlDrawingReader(KoOdfWriters *writers);
0047     ~VmlDrawingReader() override;
0048     KoFilter::ConversionStatus read(MSOOXML::MsooXmlReaderContext* context = 0) override;
0049 
0050     QMap<QString, QString> content();
0051     QMap<QString, QString> frames();
0052 
0053 // Note: Do not move this, it just defines parts of this class
0054 // It is separated out, as it is not part of the OOXML spec
0055 #include <MsooXmlVmlReaderMethods.h>
0056 
0057 protected:
0058     KoFilter::ConversionStatus read_xml();
0059 
0060     VmlDrawingReaderContext* m_context;
0061 
0062 private:
0063     void init();
0064     class Private;
0065     Private* const d;
0066     // List of draw:images meant to be used as object replacements
0067     QMap<QString, QString> m_content;
0068 
0069     // List of beginning draw:frames meant to be used if the position is unknown otherwise
0070     // Note that the ending draw:frame still needs to be added by the calling program
0071     QMap<QString, QString> m_frames;
0072 };
0073 
0074 #endif //DOCXXMLHEADERREADER_H