Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

scribus134format.h

Go to the documentation of this file.
00001 /*
00002 For general Scribus (>=1.3.2) copyright and licensing information please refer
00003 to the COPYING file provided with the program. Following this notice may exist
00004 a copyright and/or license notice that predates the release of Scribus 1.3.2
00005 for which a new license (GPL+exception) is in place.
00006 */
00007 #ifndef SCRIBUS134FORMAT_H
00008 #define SCRIBUS134FORMAT_H
00009 
00010 #include "pluginapi.h"
00011 #include "loadsaveplugin.h"
00012 #include "scfonts.h"
00013 #include "scribusstructs.h"
00014 #include "styles/styleset.h"
00015 
00016 #include <QDomElement>
00017 #include <QMap>
00018 #include <QString>
00019 #include <QList>
00020 #include <QProgressBar>
00021 
00022 class PLUGIN_API Scribus134Format : public LoadSavePlugin
00023 {
00024     Q_OBJECT
00025 
00026     public:
00027         // Standard plugin implementation
00028         Scribus134Format();
00029         virtual ~Scribus134Format();
00030         virtual const QString fullTrName() const;
00031         virtual const AboutData* getAboutData() const;
00032         virtual void deleteAboutData(const AboutData* about) const;
00033         virtual void languageChange();
00034         //Not the same as readSLA. This one only reads max 4k of the file for speed.
00035         virtual bool fileSupported(QIODevice* file, const QString & fileName=QString::null) const;
00036 
00037         virtual bool loadFile(const QString & fileName, const FileFormat & fmt, int flags, int index = 0);
00038         virtual bool saveFile(const QString & fileName, const FileFormat & fmt);
00039         virtual void addToMainWindowMenu(ScribusMainWindow *) {};
00040 
00041         // Special features - .sla page extraction support
00042         virtual bool loadPage(const QString & fileName, int pageNumber, bool Mpage, QString renamedPageName=QString::null);
00043         virtual bool readStyles(const QString& fileName, ScribusDoc* doc, StyleSet<ParagraphStyle> &docParagraphStyles);
00044         virtual bool readCharStyles(const QString& fileName, ScribusDoc* doc, StyleSet<CharStyle> &docCharStyles);
00045         virtual bool readLineStyles(const QString& fileName, QMap<QString,multiLine> *Sty);
00046         virtual bool readColors(const QString& fileName, ColorList & colors);
00047         virtual bool readPageCount(const QString& fileName, int *num1, int *num2, QStringList & masterPageNames);
00048         virtual void getReplacedFontData(bool & getNewReplacement, QMap<QString,QString> &getReplacedFonts, QList<ScFace> &getDummyScFaces);
00049 
00050     private:
00051         enum ItemSelection {
00052             ItemSelectionMaster = 0,
00053             ItemSelectionPage   = 1,
00054             ItemSelectionFrame  = 2,
00055             ItemSelectionPattern= 3,
00056         };
00057         void registerFormats();
00058         //Scribus Doc vars, not plugin vars
00059         void GetItemText(QDomElement *it, ScribusDoc *doc, PageItem* obj, LastStyles* last, bool impo=false, bool VorLFound=false);
00060         void GetCStyle(const QDomElement *it, ScribusDoc *doc, CharStyle & newStyle);
00061         void readParagraphStyle(ParagraphStyle& vg, const QDomElement& pg, SCFonts &avail, ScribusDoc *doc);
00062         PageItem* PasteItem(QDomElement *obj, ScribusDoc *doc, const QString& baseDir);
00063         void GetStyle(QDomElement *pg, ParagraphStyle *vg, StyleSet<ParagraphStyle> *docParagraphStyles, ScribusDoc* doc, bool fl);
00064         QString readSLA(const QString & fileName);
00065         void writeCheckerProfiles(QDomDocument & docu);
00066         void writeLinestyles(QDomDocument & docu);
00067         void writeJavascripts(QDomDocument & docu);
00068         void writeBookmarks(QDomDocument & docu);
00069         void writeColors(QDomDocument & docu);
00070         void writeHyphenatorLists(QDomDocument &docu);
00071         void writePStyles(QDomDocument & docu);
00072         void writeCStyles(QDomDocument & docu);
00073         void putPStyle(QDomDocument & docu, QDomElement & fo, const ParagraphStyle & style);
00074         void putCStyle(QDomDocument & docu, QDomElement & fo, const CharStyle & style);
00075         void writeITEXTs(ScribusDoc *doc, QDomDocument *docu, QDomElement ob, PageItem* item);
00076         void writeLayers(QDomDocument & docu);
00077         void writePrintOptions(QDomDocument & docu);
00078         void writePdfOptions(QDomDocument & docu);
00079         void writeDocItemAttributes(QDomDocument & docu);
00080         void writeTOC(QDomDocument & docu);
00081         void writePageSets(QDomDocument & docu);
00082         void writeSections(QDomDocument & docu);
00083         void writePatterns(QDomDocument & docu, const QString& baseDir);
00084         void writeContent(QDomDocument & docu, const QString& baseDir);
00085         void WritePages(ScribusDoc *doc, QDomDocument *docu, QDomElement *dc, QProgressBar *dia2, uint maxC, bool master);
00086         void WriteObjects(ScribusDoc *doc, QDomDocument *docu, QDomElement *dc, const QString& baseDir, QProgressBar *dia2, uint maxC, ItemSelection master, QList<PageItem*> *items = 0);
00087         void SetItemProps(QDomElement *ob, PageItem* item, const QString& baseDir, bool newFormat);
00088         QMap<int, int> itemRemap;
00089         QMap<int, int> itemNext;
00090         QMap<int, int> itemRemapF;
00091         QMap<int, int> itemNextF;
00092         QMap<int, int> itemRemapM;
00093         QMap<int, int> itemNextM;
00094         int itemCount;
00095         int itemCountM;
00096         int itemCountF;
00097         QMap<uint,QString> DoVorl;
00098         uint VorlC;
00099 };
00100 
00101 extern "C" PLUGIN_API int scribus134format_getPluginAPIVersion();
00102 extern "C" PLUGIN_API ScPlugin* scribus134format_getPlugin();
00103 extern "C" PLUGIN_API void scribus134format_freePlugin(ScPlugin* plugin);
00104 
00105 #endif
Created with personalized Doxygen. This is documentation for GPL software Scribus - Open Source Desktop Publishing.