/* This file is part of the KDE project Copyright (C) 2001. 2002, 2004 Nicolas GOUTTE This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KWEF_KWORDLEADER_H #define KWEF_KWORDLEADER_H #include #include #include "KWEFStructures.h" #include "KWEFBaseWorker.h" #include class KOFFICEFILTER_EXPORT KWEFKWordLeader { public: KWEFKWordLeader(void); KWEFKWordLeader(KWEFBaseWorker* newWorker); virtual ~KWEFKWordLeader(void); public: void setWorker ( KWEFBaseWorker *newWorker ); KWEFBaseWorker *getWorker(void) const; KoFilter::ConversionStatus convert( KoFilterChain* chain, const TQCString& from, const TQCString& to); public: // ### TODO: where to put in the end? void createBookmarkFormatData( ParaData& paraData ); public: // callbacks bool loadSubFile(const TQString& fileName, TQByteArray& array); TQIODevice* getSubFileDevice(const TQString& fileName); public: // public leader/worker functions (DO NOT use in your own code!) bool doFullDocumentInfo (const KWEFDocumentInfo &docInfo); bool doVariableSettings (const VariableSettingsData &varSettings); bool doFullDocument (const TQValueList &); bool doPageInfo (const int headerType, const int footerType); bool doFullPaperFormat (const int format, const double width, const double height, const int orientation); bool doFullPaperBorders (const double top, const double left, const double bottom, const double right); /** * Other data of KWord's \ which are not in @see doFullPaperFormat * @since 1.4 */ bool doFullPaperFormatOther ( const int columns, const double columnspacing, const int numPages ); bool doOpenHead (void); bool doCloseHead (void); bool doOpenBody (void); bool doCloseBody (void); bool doOpenStyles (void); bool doCloseStyles (void); bool doFullDefineStyle (LayoutData& layout); bool doOpenSpellCheckIgnoreList (void); bool doCloseSpellCheckIgnoreList (void); bool doFullSpellCheckIgnoreWord (const TQString& ignoreword); bool doHeader(const HeaderData&); bool doFooter(const FooterData&); bool doDeclareNonInlinedFramesets( TQValueList& pictureAnchors, TQValueList& tableAnchors ); ///< @since 1.4 TQValueList footnoteList; void setHeaderType(int hType) { m_hType = hType; } void setFooterType(int fType) { m_fType = fType; } int headerType() { return m_hType; } int footerType() { return m_fType; } protected: // leader/worker functions bool doOpenFile (const TQString& filenameOut, const TQString& to); bool doCloseFile (void); bool doAbortFile (void); bool doOpenDocument (void); bool doCloseDocument (void); public: /// -1: unknown, 1: KWord 0.8, 2: KWord 1.1 & 1.2, 3: KWord 1.3 int m_syntaxVersion; /// true if oldSyntax (KWord 0.8) bool m_oldSyntax; /// Name of the current frame set TQString m_currentFramesetName; /// Number of paragraph in each frameset (for bookmarks) TQMap m_paraCountMap; /// List of bookmarks TQValueList m_bookmarkList; TQStringList m_unanchoredFramesets; ///< List of framesets where an anchor was searched but not found (DEBUG) @since 1.4 TQValueList m_nonInlinedPictureAnchors; ///< Pseudo-anchors for non-inlined anchors @since 1.4 TQValueList m_nonInlinedTableAnchors; ///< Pseudo-anchors for non-inlined tables @since 1.4 private: KWEFBaseWorker *m_worker; KoFilterChain* m_chain; int m_hType, m_fType; }; #endif /* KWEF_KWORDLEADER_H */