Root/
Source at commit 1322 created 12 years 8 months ago. By meklort, Add doxygen to utils folder | |
---|---|
1 | /******************************************************************************␊ |
2 | *␊ |
3 | * $Id: latexgen.h,v 1.50 2001/03/19 19:27:41 root Exp $␊ |
4 | *␊ |
5 | * Copyright (C) 1997-2011 by 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 LATEXGEN_H␊ |
19 | #define LATEXGEN_H␊ |
20 | ␊ |
21 | #include "outputgen.h"␊ |
22 | ␊ |
23 | class QFile;␊ |
24 | ␊ |
25 | class LatexGenerator : public OutputGenerator␊ |
26 | {␊ |
27 | public:␊ |
28 | LatexGenerator();␊ |
29 | ~LatexGenerator();␊ |
30 | static void init();␊ |
31 | static void writeStyleSheetFile(QFile &f);␊ |
32 | static void writeHeaderFile(QFile &f);␊ |
33 | static void writeFooterFile(QFile &f);␊ |
34 | ␊ |
35 | //OutputGenerator *copy();␊ |
36 | //OutputGenerator *clone() { return new LatexGenerator(*this); }␊ |
37 | //void append(const OutputGenerator *o);␊ |
38 | void enable() ␊ |
39 | { if (genStack->top()) active=*genStack->top(); else active=TRUE; }␊ |
40 | void disable() { active=FALSE; }␊ |
41 | void enableIf(OutputType o) { if (o==Latex) active=TRUE; }␊ |
42 | void disableIf(OutputType o) { if (o==Latex) active=FALSE; }␊ |
43 | void disableIfNot(OutputType o) { if (o!=Latex) active=FALSE; }␊ |
44 | bool isEnabled(OutputType o) { return (o==Latex && active); } ␊ |
45 | OutputGenerator *get(OutputType o) { return (o==Latex) ? this : 0; }␊ |
46 | ␊ |
47 | void printDoc(DocNode *,const char *);␊ |
48 | ␊ |
49 | void startFile(const char *name,const char *manName,const char *title);␊ |
50 | void writeFooter() {}␊ |
51 | void endFile();␊ |
52 | void clearBuffer();␊ |
53 | ␊ |
54 | void startIndexSection(IndexSections);␊ |
55 | void endIndexSection(IndexSections);␊ |
56 | void writePageLink(const char *,bool);␊ |
57 | void startProjectNumber();␊ |
58 | void endProjectNumber() {}␊ |
59 | void writeStyleInfo(int part);␊ |
60 | void startTitleHead(const char *);␊ |
61 | void startTitle();␊ |
62 | void endTitleHead(const char *,const char *name);␊ |
63 | void endTitle() { t << "}"; }␊ |
64 | ␊ |
65 | void newParagraph();␊ |
66 | void startParagraph();␊ |
67 | void endParagraph();␊ |
68 | void writeString(const char *text);␊ |
69 | void startIndexListItem() {}␊ |
70 | void endIndexListItem() {}␊ |
71 | void startIndexList() { t << "\\begin{DoxyCompactList}" << endl; }␊ |
72 | void endIndexList() { t << "\\end{DoxyCompactList}" << endl; }␊ |
73 | void startIndexKey();␊ |
74 | void endIndexKey();␊ |
75 | void startIndexValue(bool);␊ |
76 | void endIndexValue(const char *,bool);␊ |
77 | void startItemList() { t << "\\begin{DoxyCompactItemize}" << endl; }␊ |
78 | void endItemList() { t << "\\end{DoxyCompactItemize}" << endl; }␊ |
79 | void startIndexItem(const char *ref,const char *file);␊ |
80 | void endIndexItem(const char *ref,const char *file);␊ |
81 | void docify(const char *text);␊ |
82 | void codify(const char *text);␊ |
83 | void writeObjectLink(const char *ref,const char *file,␊ |
84 | const char *anchor,const char *name);␊ |
85 | void writeCodeLink(const char *ref, const char *file,␊ |
86 | const char *anchor,const char *name,␊ |
87 | const char *tooltip);␊ |
88 | void startTextLink(const char *,const char *);␊ |
89 | void endTextLink();␊ |
90 | void startHtmlLink(const char *url);␊ |
91 | void endHtmlLink();␊ |
92 | void startTypewriter() { t << "{\\ttfamily "; }␊ |
93 | void endTypewriter() { t << "}"; }␊ |
94 | void startGroupHeader(int);␊ |
95 | void endGroupHeader(int);␊ |
96 | void startItemListItem() { t << "\\item " << endl; }␊ |
97 | void endItemListItem() {}␊ |
98 | ␊ |
99 | void startMemberSections() {}␊ |
100 | void endMemberSections() {} ␊ |
101 | void startHeaderSection() {}␊ |
102 | void endHeaderSection() {}␊ |
103 | void startMemberHeader(const char *);␊ |
104 | void endMemberHeader();␊ |
105 | void startMemberSubtitle() {}␊ |
106 | void endMemberSubtitle() {}␊ |
107 | void startMemberDocList() {}␊ |
108 | void endMemberDocList() {}␊ |
109 | void startMemberList();␊ |
110 | void endMemberList();␊ |
111 | void startInlineDescription() {}␊ |
112 | void endInlineDescription() {}␊ |
113 | void startInlineHeader();␊ |
114 | void endInlineHeader();␊ |
115 | void startAnonTypeScope(int);␊ |
116 | void endAnonTypeScope(int);␊ |
117 | void startMemberItem(int);␊ |
118 | void endMemberItem();␊ |
119 | void startMemberTemplateParams();␊ |
120 | void endMemberTemplateParams();␊ |
121 | ␊ |
122 | void startMemberGroupHeader(bool);␊ |
123 | void endMemberGroupHeader();␊ |
124 | void startMemberGroupDocs();␊ |
125 | void endMemberGroupDocs();␊ |
126 | void startMemberGroup();␊ |
127 | void endMemberGroup(bool);␊ |
128 | ␊ |
129 | void insertMemberAlign(bool) {}␊ |
130 | ␊ |
131 | void writeRuler() { t << endl << endl; }␊ |
132 | void writeAnchor(const char *fileName,const char *name);␊ |
133 | void startCodeFragment();␊ |
134 | void endCodeFragment();␊ |
135 | void writeLineNumber(const char *,const char *,const char *,int l);␊ |
136 | void startCodeLine();␊ |
137 | void endCodeLine();␊ |
138 | void startEmphasis() { t << "{\\em "; }␊ |
139 | void endEmphasis() { t << "}"; }␊ |
140 | void startBold() { t << "{\\bfseries "; }␊ |
141 | void endBold() { t << "}"; }␊ |
142 | void startDescription();␊ |
143 | void endDescription();␊ |
144 | void startDescItem();␊ |
145 | void endDescItem();␊ |
146 | void lineBreak(const char *style=0) { (void)style; t << "\\par\n"; }␊ |
147 | void startMemberDoc(const char *,const char *,const char *,const char *,bool);␊ |
148 | void endMemberDoc(bool);␊ |
149 | void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);␊ |
150 | void endDoxyAnchor(const char *,const char *);␊ |
151 | void startCodeAnchor(const char *);␊ |
152 | void endCodeAnchor();␊ |
153 | void writeChar(char c);␊ |
154 | void writeLatexSpacing() { t << "\\hspace{0.3cm}"; }␊ |
155 | void writeStartAnnoItem(const char *type,const char *file, ␊ |
156 | const char *path,const char *name);␊ |
157 | void writeEndAnnoItem(const char *name);␊ |
158 | void startSubsection() { t << "\\subsection*{"; }␊ |
159 | void endSubsection() { t << "}" << endl; }␊ |
160 | void startSubsubsection() { t << "\\subsubsection*{"; }␊ |
161 | void endSubsubsection() { t << "}" << endl; }␊ |
162 | void startCenter() { t << "\\begin{center}" << endl; }␊ |
163 | void endCenter() { t << "\\end{center}" << endl; }␊ |
164 | void startSmall() { t << "\\footnotesize "; }␊ |
165 | void endSmall() { t << "\\normalsize "; }␊ |
166 | void startMemberDescription();␊ |
167 | void endMemberDescription();␊ |
168 | void startDescList(SectionTypes) { t << "\\begin{Desc}\n\\item["; }␊ |
169 | void endDescList() { t << "\\end{Desc}" << endl; }␊ |
170 | void startSimpleSect(SectionTypes,const char *,const char *,const char *);␊ |
171 | void endSimpleSect();␊ |
172 | void startParamList(ParamListTypes,const char *title);␊ |
173 | void endParamList();␊ |
174 | void startDescForItem() { t << "\\par" << endl; }␊ |
175 | void endDescForItem() {}␊ |
176 | void startSection(const char *,const char *,SectionInfo::SectionType);␊ |
177 | void endSection(const char *,SectionInfo::SectionType);␊ |
178 | void addIndexItem(const char *,const char *);␊ |
179 | void startIndent() {}␊ |
180 | void endIndent() {}␊ |
181 | void writeSynopsis() {}␊ |
182 | void startClassDiagram();␊ |
183 | void endClassDiagram(const ClassDiagram &,const char *,const char *);␊ |
184 | void startPageRef();␊ |
185 | void endPageRef(const char *,const char *);␊ |
186 | void startQuickIndices() {}␊ |
187 | void endQuickIndices() {}␊ |
188 | void writeSplitBar(const char *) {}␊ |
189 | void writeLogo() {}␊ |
190 | void writeQuickLinks(bool,HighlightedItem) {}␊ |
191 | void startContents() {}␊ |
192 | void endContents() {}␊ |
193 | void writeNonBreakableSpace(int);␊ |
194 | ␊ |
195 | void startDescTable()␊ |
196 | { t << "\\begin{description}" << endl; }␊ |
197 | void endDescTable()␊ |
198 | { t << "\\end{description}" << endl; }␊ |
199 | void startDescTableTitle()␊ |
200 | { t << "\\item[{\\em " << endl; }␊ |
201 | void endDescTableTitle()␊ |
202 | { t << "}]"; }␊ |
203 | void startDescTableData() {}␊ |
204 | void endDescTableData() {}␊ |
205 | void lastIndexPage() {}␊ |
206 | ␊ |
207 | void startDotGraph();␊ |
208 | void endDotGraph(const DotClassGraph &);␊ |
209 | void startInclDepGraph();␊ |
210 | void endInclDepGraph(const DotInclDepGraph &);␊ |
211 | void startCallGraph();␊ |
212 | void startGroupCollaboration();␊ |
213 | void endGroupCollaboration(const DotGroupCollaboration &g);␊ |
214 | void endCallGraph(const DotCallGraph &);␊ |
215 | void startDirDepGraph();␊ |
216 | void endDirDepGraph(const DotDirDeps &g);␊ |
217 | void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}␊ |
218 | ␊ |
219 | void startTextBlock(bool) {}␊ |
220 | void endTextBlock(bool) {}␊ |
221 | ␊ |
222 | void startMemberDocPrefixItem() {}␊ |
223 | void endMemberDocPrefixItem() {}␊ |
224 | void startMemberDocName(bool) {}␊ |
225 | void endMemberDocName() {}␊ |
226 | void startParameterType(bool,const char *);␊ |
227 | void endParameterType();␊ |
228 | void startParameterName(bool);␊ |
229 | void endParameterName(bool,bool,bool);␊ |
230 | void startParameterList(bool);␊ |
231 | void endParameterList();␊ |
232 | ␊ |
233 | void startConstraintList(const char *);␊ |
234 | void startConstraintParam();␊ |
235 | void endConstraintParam();␊ |
236 | void startConstraintType();␊ |
237 | void endConstraintType();␊ |
238 | void startConstraintDocs();␊ |
239 | void endConstraintDocs();␊ |
240 | void endConstraintList();␊ |
241 | ␊ |
242 | void startFontClass(const char *); // {}␊ |
243 | void endFontClass(); // {}␊ |
244 | ␊ |
245 | void writeCodeAnchor(const char *) {}␊ |
246 | void linkableSymbol(int,const char *,Definition *,Definition *) {}␊ |
247 | ␊ |
248 | private:␊ |
249 | LatexGenerator(const LatexGenerator &);␊ |
250 | LatexGenerator &operator=(const LatexGenerator &);␊ |
251 | void escapeLabelName(const char *s);␊ |
252 | void escapeMakeIndexChars(const char *s);␊ |
253 | int col;␊ |
254 | bool insideTabbing;␊ |
255 | bool firstDescItem;␊ |
256 | bool disableLinks;␊ |
257 | QCString relPath;␊ |
258 | QCString sourceFileName;␊ |
259 | int m_indent;␊ |
260 | bool templateMemberItem;␊ |
261 | bool m_prettyCode;␊ |
262 | };␊ |
263 | ␊ |
264 | #endif␊ |
265 |