Root/
Source at commit 1322 created 12 years 8 months ago. By meklort, Add doxygen to utils folder | |
---|---|
1 | /******************************************************************************␊ |
2 | *␊ |
3 | * $Id: rtfgen.h,v 1.13 2001/03/19 19:27:41 root Exp $␊ |
4 | *␊ |
5 | * Copyright (C) 1997-2011 by Parker Waechter & Dimitri van Heesch.␊ |
6 | *␊ |
7 | * Permission to use, copy, modify, and distribute this software and its␊ |
8 | * documentation under the terms of the GNU General Public License is hereby ␊ |
9 | * granted. No representations are made about the suitability of this software ␊ |
10 | * for any purpose. It is provided "as is" without express or implied warranty.␊ |
11 | * See the GNU General Public License for more details.␊ |
12 | *␊ |
13 | * Documents produced by Doxygen are derivative works derived from the␊ |
14 | * input used in their production; they are not affected by this license.␊ |
15 | *␊ |
16 | */␊ |
17 | ␊ |
18 | #ifndef RTFGEN_H␊ |
19 | #define RTFGEN_H␊ |
20 | ␊ |
21 | #include "outputgen.h"␊ |
22 | ␊ |
23 | class QFile;␊ |
24 | ␊ |
25 | class RTFGenerator : public OutputGenerator␊ |
26 | {␊ |
27 | public:␊ |
28 | RTFGenerator();␊ |
29 | ~RTFGenerator();␊ |
30 | static void init();␊ |
31 | static void writeStyleSheetFile(QFile &f);␊ |
32 | static void writeExtensionsFile(QFile &file);␊ |
33 | ␊ |
34 | void enable() ␊ |
35 | { if (genStack->top()) active=*genStack->top(); else active=TRUE; }␊ |
36 | void disable() { active=FALSE; }␊ |
37 | void enableIf(OutputType o) { if (o==RTF) active=TRUE; }␊ |
38 | void disableIf(OutputType o) { if (o==RTF) active=FALSE; }␊ |
39 | void disableIfNot(OutputType o) { if (o!=RTF) active=FALSE; }␊ |
40 | bool isEnabled(OutputType o) { return (o==RTF && active); } ␊ |
41 | OutputGenerator *get(OutputType o) { return (o==RTF) ? this : 0; }␊ |
42 | ␊ |
43 | void printDoc(DocNode *,const char *);␊ |
44 | ␊ |
45 | void startFile(const char *name,const char *manName,const char *title);␊ |
46 | void writeFooter() {}␊ |
47 | void endFile();␊ |
48 | void clearBuffer();␊ |
49 | //void postProcess(QByteArray &);␊ |
50 | ␊ |
51 | void startIndexSection(IndexSections);␊ |
52 | void endIndexSection(IndexSections);␊ |
53 | void writePageLink(const char *,bool);␊ |
54 | void startProjectNumber();␊ |
55 | void endProjectNumber();␊ |
56 | void writeStyleInfo(int part);␊ |
57 | void startTitleHead(const char *);␊ |
58 | void startTitle();␊ |
59 | void endTitleHead(const char *,const char *name);␊ |
60 | void endTitle() {} ␊ |
61 | ␊ |
62 | void newParagraph();␊ |
63 | void startParagraph();␊ |
64 | void endParagraph();␊ |
65 | void writeString(const char *text);␊ |
66 | void startIndexListItem();␊ |
67 | void endIndexListItem();␊ |
68 | void startIndexList();␊ |
69 | void endIndexList();␊ |
70 | void startIndexKey();␊ |
71 | void endIndexKey();␊ |
72 | void startIndexValue(bool);␊ |
73 | void endIndexValue(const char *,bool);␊ |
74 | void startItemList();␊ |
75 | void endItemList();␊ |
76 | void startIndexItem(const char *ref,const char *file);␊ |
77 | void endIndexItem(const char *ref,const char *file);␊ |
78 | void docify(const char *text);␊ |
79 | void codify(const char *text);␊ |
80 | void writeObjectLink(const char *ref,const char *file,␊ |
81 | const char *anchor,const char *name);␊ |
82 | void writeCodeLink(const char *ref, const char *file,␊ |
83 | const char *anchor,const char *name,␊ |
84 | const char *tooltip);␊ |
85 | void startTextLink(const char *f,const char *anchor);␊ |
86 | void endTextLink();␊ |
87 | void startHtmlLink(const char *url);␊ |
88 | void endHtmlLink();␊ |
89 | void startTypewriter() { t << "{\\f2 "; }␊ |
90 | void endTypewriter() { t << "}"; }␊ |
91 | void startGroupHeader(int);␊ |
92 | void endGroupHeader(int);␊ |
93 | //void writeListItem();␊ |
94 | void startItemListItem();␊ |
95 | void endItemListItem();␊ |
96 | ␊ |
97 | void startMemberSections() {}␊ |
98 | void endMemberSections() {} ␊ |
99 | void startHeaderSection() {}␊ |
100 | void endHeaderSection() {}␊ |
101 | void startMemberHeader(const char *) { startGroupHeader(FALSE); }␊ |
102 | void endMemberHeader() { endGroupHeader(FALSE); }␊ |
103 | void startMemberSubtitle(); ␊ |
104 | void endMemberSubtitle(); ␊ |
105 | void startMemberDocList() {}␊ |
106 | void endMemberDocList() {}␊ |
107 | void startMemberList();␊ |
108 | void endMemberList();␊ |
109 | void startInlineDescription();␊ |
110 | void endInlineDescription();␊ |
111 | void startInlineHeader();␊ |
112 | void endInlineHeader();␊ |
113 | void startAnonTypeScope(int) {}␊ |
114 | void endAnonTypeScope(int) {}␊ |
115 | void startMemberItem(int);␊ |
116 | void endMemberItem();␊ |
117 | void startMemberTemplateParams() {}␊ |
118 | void endMemberTemplateParams() {}␊ |
119 | void insertMemberAlign(bool) {}␊ |
120 | ␊ |
121 | void writeRuler() { rtfwriteRuler_thin(); }␊ |
122 | ␉␊ |
123 | void writeAnchor(const char *fileName,const char *name);␊ |
124 | void startCodeFragment();␊ |
125 | void endCodeFragment();␊ |
126 | void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }␊ |
127 | void startCodeLine() { col=0; }␊ |
128 | void endCodeLine() { lineBreak(); }␊ |
129 | void startEmphasis() { t << "{\\i "; }␊ |
130 | void endEmphasis() { t << "}"; }␊ |
131 | void startBold() { t << "{\\b "; }␊ |
132 | void endBold() { t << "}"; }␊ |
133 | void startDescription();␊ |
134 | void endDescription();␊ |
135 | void startDescItem();␊ |
136 | void endDescItem();␊ |
137 | void lineBreak(const char *style=0);␊ |
138 | void startMemberDoc(const char *,const char *,const char *,const char *,bool);␊ |
139 | void endMemberDoc(bool);␊ |
140 | void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);␊ |
141 | void endDoxyAnchor(const char *,const char *);␊ |
142 | void startCodeAnchor(const char *) {};␊ |
143 | void endCodeAnchor() {};␊ |
144 | void writeChar(char c);␊ |
145 | void writeLatexSpacing() {};//{ t << "\\hspace{0.3cm}"; }␊ |
146 | void writeStartAnnoItem(const char *type,const char *file, ␊ |
147 | const char *path,const char *name);␊ |
148 | void writeEndAnnoItem(const char *name);␊ |
149 | void startSubsection();␊ |
150 | void endSubsection();␊ |
151 | void startSubsubsection();␊ |
152 | void endSubsubsection();␊ |
153 | void startCenter() { t << "{\\qc" << endl; }␊ |
154 | void endCenter() { t << "}"; }␊ |
155 | void startSmall() { t << "{\\sub "; }␊ |
156 | void endSmall() { t << "}"; }␊ |
157 | ␊ |
158 | void startMemberDescription();␊ |
159 | void endMemberDescription();␊ |
160 | void startDescList(SectionTypes);␊ |
161 | void startSimpleSect(SectionTypes,const char *,const char *,const char *);␊ |
162 | void endSimpleSect();␊ |
163 | void startParamList(ParamListTypes,const char *);␊ |
164 | void endParamList();␊ |
165 | //void writeDescItem();␊ |
166 | void startDescForItem();␊ |
167 | void endDescForItem();␊ |
168 | void startSection(const char *,const char *,SectionInfo::SectionType);␊ |
169 | void endSection(const char *,SectionInfo::SectionType);␊ |
170 | void addIndexItem(const char *,const char *);␊ |
171 | void startIndent();␊ |
172 | void endIndent();␊ |
173 | void writeSynopsis() {}␊ |
174 | void startClassDiagram();␊ |
175 | void endClassDiagram(const ClassDiagram &,const char *filename,const char *name);␊ |
176 | void startPageRef();␊ |
177 | void endPageRef(const char *,const char *);␊ |
178 | void startQuickIndices() {}␊ |
179 | void endQuickIndices() {}␊ |
180 | void writeSplitBar(const char *) {}␊ |
181 | void writeLogo() {}␊ |
182 | void writeQuickLinks(bool,HighlightedItem) {}␊ |
183 | void startContents() {}␊ |
184 | void endContents() {}␊ |
185 | void writeNonBreakableSpace(int);␊ |
186 | ␉␊ |
187 | void startDescTable();␊ |
188 | void endDescTable();␊ |
189 | void startDescTableTitle();␊ |
190 | void endDescTableTitle();␊ |
191 | void startDescTableData();␊ |
192 | void endDescTableData();␊ |
193 | ␊ |
194 | void startDotGraph();␊ |
195 | void endDotGraph(const DotClassGraph &);␊ |
196 | void startInclDepGraph();␊ |
197 | void endInclDepGraph(const DotInclDepGraph &);␊ |
198 | void startGroupCollaboration();␊ |
199 | void endGroupCollaboration(const DotGroupCollaboration &g);␊ |
200 | void startCallGraph();␊ |
201 | void endCallGraph(const DotCallGraph &);␊ |
202 | void startDirDepGraph();␊ |
203 | void endDirDepGraph(const DotDirDeps &g);␊ |
204 | void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}␊ |
205 | ␊ |
206 | void startMemberGroupHeader(bool);␊ |
207 | void endMemberGroupHeader();␊ |
208 | void startMemberGroupDocs();␊ |
209 | void endMemberGroupDocs();␊ |
210 | void startMemberGroup();␊ |
211 | void endMemberGroup(bool);␊ |
212 | ␊ |
213 | void startTextBlock(bool dense);␊ |
214 | void endTextBlock(bool);␊ |
215 | void lastIndexPage();␊ |
216 | ␊ |
217 | void startMemberDocPrefixItem() {}␊ |
218 | void endMemberDocPrefixItem() {}␊ |
219 | void startMemberDocName(bool) {}␊ |
220 | void endMemberDocName() {}␊ |
221 | void startParameterType(bool,const char *);␊ |
222 | void endParameterType() {}␊ |
223 | void startParameterName(bool) {}␊ |
224 | void endParameterName(bool,bool,bool) {}␊ |
225 | void startParameterList(bool) {}␊ |
226 | void endParameterList() {}␊ |
227 | ␊ |
228 | void startConstraintList(const char *);␊ |
229 | void startConstraintParam();␊ |
230 | void endConstraintParam();␊ |
231 | void startConstraintType();␊ |
232 | void endConstraintType();␊ |
233 | void startConstraintDocs();␊ |
234 | void endConstraintDocs();␊ |
235 | void endConstraintList();␊ |
236 | ␊ |
237 | ␊ |
238 | void startFontClass(const char *) {}␊ |
239 | void endFontClass() {}␊ |
240 | ␊ |
241 | void writeCodeAnchor(const char *) {}␊ |
242 | void linkableSymbol(int,const char *,Definition *,Definition *) {}␊ |
243 | ␊ |
244 | static bool preProcessFileInplace(const char *path,const char *name);␊ |
245 | ␊ |
246 | private:␊ |
247 | RTFGenerator(const RTFGenerator &);␊ |
248 | RTFGenerator &operator=(const RTFGenerator &);␊ |
249 | ␊ |
250 | const char *rtf_BList_DepthStyle();␊ |
251 | const char *rtf_CList_DepthStyle();␊ |
252 | const char *rtf_EList_DepthStyle();␊ |
253 | const char *rtf_LCList_DepthStyle();␊ |
254 | const char *rtf_DList_DepthStyle();␊ |
255 | const char *rtf_Code_DepthStyle();␊ |
256 | void incrementIndentLevel();␊ |
257 | void decrementIndentLevel();␊ |
258 | int col;␊ |
259 | ␊ |
260 | bool m_bstartedBody; // has startbody been called yet?␊ |
261 | int m_listLevel; // // RTF does not really have a addative indent...manually set list level.␊ |
262 | bool m_omitParagraph; // should a the next paragraph command be ignored?␊ |
263 | int m_numCols; // number of columns in a table␊ |
264 | QCString relPath;␊ |
265 | ␊ |
266 | void beginRTFDocument();␊ |
267 | void beginRTFChapter();␊ |
268 | void beginRTFSection();␊ |
269 | void rtfwriteRuler_doubleline();␊ |
270 | void rtfwriteRuler_emboss();␊ |
271 | void rtfwriteRuler_thick();␊ |
272 | void rtfwriteRuler_thin();␊ |
273 | void writeRTFReference(const char *label);␊ |
274 | //char *getMultiByte(int c);␊ |
275 | };␊ |
276 | ␊ |
277 | #endif␊ |
278 |