--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Orb/Doxygen/src/rtfgen.h Thu Jan 21 17:29:01 2010 +0000
@@ -0,0 +1,269 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2008 by Parker Waechter & Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+
+#ifndef RTFGEN_H
+#define RTFGEN_H
+
+#include "outputgen.h"
+
+class QFile;
+
+class RTFGenerator : public OutputGenerator
+{
+ public:
+ RTFGenerator();
+ ~RTFGenerator();
+ static void init();
+ static void writeStyleSheetFile(QFile &f);
+ static void writeExtensionsFile(QFile &file);
+
+ void enable()
+ { if (genStack->top()) active=*genStack->top(); else active=TRUE; }
+ void disable() { active=FALSE; }
+ void enableIf(OutputType o) { if (o==RTF) active=TRUE; }
+ void disableIf(OutputType o) { if (o==RTF) active=FALSE; }
+ void disableIfNot(OutputType o) { if (o!=RTF) active=FALSE; }
+ bool isEnabled(OutputType o) { return (o==RTF && active); }
+ OutputGenerator *get(OutputType o) { return (o==RTF) ? this : 0; }
+
+ void printDoc(DocNode *,const char *);
+
+ void startFile(const char *name,const char *manName,const char *title);
+ void writeFooter() {}
+ void endFile();
+ void clearBuffer();
+ void postProcess(QByteArray &);
+
+ void startIndexSection(IndexSections);
+ void endIndexSection(IndexSections);
+ void writePageLink(const char *,bool);
+ void startProjectNumber();
+ void endProjectNumber();
+ void writeStyleInfo(int part);
+ void startTitleHead(const char *);
+ void startTitle();
+ void endTitleHead(const char *,const char *name);
+ void endTitle() {}
+
+ void newParagraph();
+ void startParagraph();
+ void endParagraph();
+ void writeString(const char *text);
+ void startIndexListItem() {}
+ void endIndexListItem() {}
+ void startIndexList();
+ void endIndexList();
+ void startIndexKey();
+ void endIndexKey();
+ void startIndexValue(bool);
+ void endIndexValue(const char *,bool);
+ void startItemList();
+ void endItemList();
+ void startIndexItem(const char *ref,const char *file);
+ void endIndexItem(const char *ref,const char *file);
+ void docify(const char *text);
+ void codify(const char *text);
+ void writeObjectLink(const char *ref,const char *file,
+ const char *anchor,const char *name);
+ void writeCodeLink(const char *ref, const char *file,
+ const char *anchor,const char *name,
+ const char *tooltip);
+ void startTextLink(const char *f,const char *anchor);
+ void endTextLink();
+ void startHtmlLink(const char *url);
+ void endHtmlLink();
+ void startTypewriter() { t << "{\\f2 "; }
+ void endTypewriter() { t << "}"; }
+ void startGroupHeader();
+ void endGroupHeader();
+ //void writeListItem();
+ void startItemListItem();
+ void endItemListItem();
+
+ void startMemberSections() {}
+ void endMemberSections() {}
+ void startMemberHeader() { startGroupHeader(); }
+ void endMemberHeader() { endGroupHeader(); }
+ void startMemberSubtitle();
+ void endMemberSubtitle();
+ void startMemberDocList() {}
+ void endMemberDocList() {}
+ void startMemberList();
+ void endMemberList();
+ void startAnonTypeScope(int) {}
+ void endAnonTypeScope(int) {}
+ void startMemberItem(int);
+ void endMemberItem();
+ void startMemberTemplateParams() {}
+ void endMemberTemplateParams() {}
+ void insertMemberAlign(bool) {}
+
+ void writeRuler() { rtfwriteRuler_thin(); }
+
+ void writeAnchor(const char *fileName,const char *name);
+ void startCodeFragment();
+ void endCodeFragment();
+ void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
+ void startCodeLine() { col=0; }
+ void endCodeLine() { lineBreak(); }
+ void startEmphasis() { t << "{\\i "; }
+ void endEmphasis() { t << "}"; }
+ void startBold() { t << "{\\b "; }
+ void endBold() { t << "}"; }
+ void startDescription();
+ void endDescription();
+ void startDescItem();
+ void endDescItem();
+ void lineBreak(const char *style=0);
+ void startMemberDoc(const char *,const char *,const char *,const char *);
+ void endMemberDoc(bool);
+ void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
+ void endDoxyAnchor(const char *,const char *);
+ void startCodeAnchor(const char *) {};
+ void endCodeAnchor() {};
+ void writeChar(char c);
+ void writeLatexSpacing() {};//{ t << "\\hspace{0.3cm}"; }
+ void writeStartAnnoItem(const char *type,const char *file,
+ const char *path,const char *name);
+ void writeEndAnnoItem(const char *name);
+ void startSubsection();
+ void endSubsection();
+ void startSubsubsection();
+ void endSubsubsection();
+ void startCenter() { t << "{\\qc" << endl; }
+ void endCenter() { t << "}"; }
+ void startSmall() { t << "{\\sub "; }
+ void endSmall() { t << "}"; }
+
+ void startMemberDescription();
+ void endMemberDescription();
+ void startDescList(SectionTypes);
+ void startSimpleSect(SectionTypes,const char *,const char *,const char *);
+ void endSimpleSect();
+ void startParamList(ParamListTypes,const char *);
+ void endParamList();
+ //void writeDescItem();
+ void startDescForItem();
+ void endDescForItem();
+ void startSection(const char *,const char *,SectionInfo::SectionType);
+ void endSection(const char *,SectionInfo::SectionType);
+ void addIndexItem(const char *,const char *);
+ void startIndent();
+ void endIndent();
+ void writeSynopsis() {}
+ void startClassDiagram();
+ void endClassDiagram(const ClassDiagram &,const char *filename,const char *name);
+ void startPageRef();
+ void endPageRef(const char *,const char *);
+ void startQuickIndices() {}
+ void endQuickIndices() {}
+ void writeQuickLinks(bool,HighlightedItem) {}
+ void startContents() {}
+ void endContents() {}
+ void writeNonBreakableSpace(int);
+
+ void startDescTable();
+ void endDescTable();
+ void startDescTableTitle();
+ void endDescTableTitle();
+ void startDescTableData();
+ void endDescTableData();
+
+ void startDotGraph();
+ void endDotGraph(const DotClassGraph &);
+ void startInclDepGraph();
+ void endInclDepGraph(const DotInclDepGraph &);
+ void startGroupCollaboration();
+ void endGroupCollaboration(const DotGroupCollaboration &g);
+ void startCallGraph();
+ void endCallGraph(const DotCallGraph &);
+ void startDirDepGraph();
+ void endDirDepGraph(const DotDirDeps &g);
+ void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}
+
+ void startMemberGroupHeader(bool);
+ void endMemberGroupHeader();
+ void startMemberGroupDocs();
+ void endMemberGroupDocs();
+ void startMemberGroup();
+ void endMemberGroup(bool);
+
+ void startTextBlock(bool dense);
+ void endTextBlock(bool);
+ void lastIndexPage();
+
+ void startMemberDocPrefixItem() {}
+ void endMemberDocPrefixItem() {}
+ void startMemberDocName(bool) {}
+ void endMemberDocName() {}
+ void startParameterType(bool,const char *);
+ void endParameterType() {}
+ void startParameterName(bool) {}
+ void endParameterName(bool,bool,bool) {}
+ void startParameterList(bool) {}
+ void endParameterList() {}
+
+ void startConstraintList(const char *);
+ void startConstraintParam();
+ void endConstraintParam();
+ void startConstraintType();
+ void endConstraintType();
+ void startConstraintDocs();
+ void endConstraintDocs();
+ void endConstraintList();
+
+
+ void startFontClass(const char *) {}
+ void endFontClass() {}
+
+ void writeCodeAnchor(const char *) {}
+ void linkableSymbol(int,const char *,Definition *,Definition *) {}
+
+ static bool preProcessFileInplace(const char *path,const char *name);
+
+ private:
+ RTFGenerator(const RTFGenerator &);
+ RTFGenerator &operator=(const RTFGenerator &);
+
+ const char *rtf_BList_DepthStyle();
+ const char *rtf_CList_DepthStyle();
+ const char *rtf_EList_DepthStyle();
+ const char *rtf_LCList_DepthStyle();
+ const char *rtf_DList_DepthStyle();
+ const char *rtf_Code_DepthStyle();
+ void incrementIndentLevel();
+ void decrementIndentLevel();
+ int col;
+
+ bool m_bstartedBody; // has startbody been called yet?
+ int m_listLevel; // // RTF does not really have a addative indent...manually set list level.
+ bool m_omitParagraph; // should a the next paragraph command be ignored?
+ int m_numCols; // number of columns in a table
+ QCString relPath;
+
+ void beginRTFDocument();
+ void beginRTFChapter();
+ void beginRTFSection();
+ void rtfwriteRuler_doubleline();
+ void rtfwriteRuler_emboss();
+ void rtfwriteRuler_thick();
+ void rtfwriteRuler_thin();
+ void writeRTFReference(const char *label);
+ //char *getMultiByte(int c);
+};
+
+#endif