diff options
Diffstat (limited to 'src/latexgen.h')
-rw-r--r-- | src/latexgen.h | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/src/latexgen.h b/src/latexgen.h new file mode 100644 index 0000000..5a3dd1c --- /dev/null +++ b/src/latexgen.h @@ -0,0 +1,178 @@ +/****************************************************************************** + * + * $Id$ + * + * Copyright (C) 1997-1999 by 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. + * + * All output generated with Doxygen is not covered by this license. + * + */ + +#ifndef OUTPUT_H +#define OUTPUT_H + +#include "outputgen.h" + +class QFile; + +class LatexGenerator : public OutputGenerator +{ + public: + LatexGenerator(); + ~LatexGenerator(); + + OutputGenerator *copy() { return new LatexGenerator; } + //OutputGenerator *clone() { return new LatexGenerator(*this); } + void append(const OutputGenerator *o); + void enable() { active=TRUE; } + void disable() { active=FALSE; } + void enableIf(OutputType o) { if (o==Latex) active=TRUE; } + void disableIf(OutputType o) { if (o==Latex) active=FALSE; } + void disableIfNot(OutputType o) { if (o!=Latex) active=FALSE; } + bool isEnabled(OutputType o) { return (o==Latex && active); } + OutputGenerator *get(OutputType o) { return (o==Latex) ? this : 0; } + + static void init(); + void startFile(const char *name,const char *title, bool external); + void writeFooter(int,bool) {} + void endFile(); + void clearBuffer(); + + //void writeIndex(); + void startIndexSection(IndexSections); + void endIndexSection(IndexSections); + void startProjectNumber(); + void endProjectNumber() {} + void writeStyleInfo(int part); + void startTitleHead() { startTitle(); } + void startTitle(); + void endTitleHead(const char *name); + void endTitle() { t << "}"; } + + void newParagraph(); + void writeString(const char *text); + void startIndexList() { t << "\\begin{CompactList}" << endl; } + void endIndexList() { t << "\\end{CompactList}" << endl; } + void startItemList() { t << "\\begin{CompactItemize}" << endl; } + void endItemList() { t << "\\end{CompactItemize}" << endl; } + void startEnumList() { t << "\\begin{enumerate}" << endl; } + void endEnumList() { t << "\\end{enumerate}" << endl; } + void writeIndexItem(const char *ref,const char *file,const char *name); + void docify(const char *text); + void codify(const char *text); + void writeObjectLink(const char *ref,const char *file, + const char *anchor,const char *text); + void writeCodeLink(const char *ref, const char *file, + const char *anchor,const char *text); + void startTextLink(const char *,const char *) {} + void endTextLink() {} + void writeHtmlLink(const char *,const char *); + void startTypewriter() { t << "{\\tt "; } + void endTypewriter() { t << "}"; } + void startGroupHeader(); + void endGroupHeader(); + void writeListItem() { t << "\\item " << endl; } + + void startMemberHeader() { startGroupHeader(); } + void endMemberHeader() { endGroupHeader(); } + void startMemberList() { t << "\\begin{CompactItemize}" << endl; } + void endMemberList() { t << "\\end{CompactItemize}" << endl; } + void startMemberItem() { t << "\\item " << endl; } + void endMemberItem() { t << endl; } + + void writeRuler() { t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}"; } + void writeAnchor(const char *) {} + void startCodeFragment() { t << "\\small\\begin{verbatim}"; } + void endCodeFragment() { t << "\\end{verbatim}\\normalsize "; } + void writeBoldString(const char *text) + { t << "{\\bf "; docify(text); t << "}"; } + void startEmphasis() { t << "{\\em "; } + void endEmphasis() { t << "}"; } + void startBold() { t << "{\\bf "; } + void endBold() { t << "}"; } + void startDescription() { t << "\\begin{description}" << endl; } + void endDescription() { t << "\\end{description}" << endl; } + void startDescItem() { t << "\\item["; } + void endDescItem() { t << "]"; } + void lineBreak() { t << "\\par\n"; } + void startMemberDoc(const char *,const char *,const char *); + void endMemberDoc() { t << "}"; } + void writeDoxyAnchor(const char *,const char *,const char *); + 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() { t << "\\subsection*{"; } + void endSubsection() { t << "}" << endl; } + void startSubsubsection() { t << "\\subsubsection*{"; } + void endSubsubsection() { t << "}" << endl; } + void startCenter() { t << "\\begin{center}" << endl; } + void endCenter() { t << "\\end{center}" << endl; } + void startSmall() { t << "\\footnotesize "; } + void endSmall() { t << "\\normalsize "; } + void startSubscript() { t << "$_{\\mbox{"; } + void endSubscript() { t << "}}$"; } + void startSuperscript() { t << "$^{\\mbox{"; } + void endSuperscript() { t << "}}$"; } + void startTable(int c) { t << "\\begin{TabularC}{" << c + << "}\n\\hline\n"; + } + void endTable() { t << "\\\\\\hline\n\\end{TabularC}\n"; } + void nextTableRow() {} + void endTableRow() { t << "\\\\\\hline\n"; } + void nextTableColumn() { t << "&"; } + void endTableColumn() {} + void writeCopyright() { t << "\\copyright"; } + void writeQuote() { t << "''"; } + void writeUmlaut(char c) { if (c=='i') t << "\\\"{\\i}"; else + t << "\\\"{" << c << "}"; + } + void writeAcute(char c) { if (c=='i') t << "\\'{\\i}"; else + t << "\\'{" << c << "}"; + } + void writeGrave(char c) { if (c=='i') t << "\\`{\\i}"; else + t << "\\`{" << c << "}"; + } + void writeCirc(char c) { if (c=='i') t << "\\^{\\i}"; else + t << "\\^{" << c << "}"; + } + void writeTilde(char c) { t << "\\~{" << c << "}"; } + void startMemberDescription() { t << "\\begin{CompactList}\\small\\item\\em "; } + void endMemberDescription() { t << "\\item\\end{CompactList}"; } + void startDescList() { t << "\\begin{Desc}\\item["; } + void endDescTitle() { t << "]"; } + void writeDescItem() { t << "\\par "; } + void endDescList() { t << "\\end{Desc}"; } + void writeSection(const char *,const char *,bool); + void writeSectionRef(const char *,const char *,const char *); + void writeSectionRefItem(const char *,const char *,const char *); + void addToIndex(const char *,const char *); + void startIndent() {} + void endIndent() {} + void writeSynopsis() {} + //void generateExternalIndex() {} + void startClassDiagram(); + void endClassDiagram(ClassDiagram &,const char *,const char *); + void startColorFont(uchar,uchar,uchar) {} + void endColorFont() {} + void writePageRef(const char *,const char *); + void startQuickIndexItem(const char *,const char *) {} + void endQuickIndexItem() {} + void writeFormula(const char *,const char *); + + //static void docifyStatic(QTextStream &t,const char *str); + + private: + LatexGenerator(const LatexGenerator &); + LatexGenerator &operator=(const LatexGenerator &); + int col; +}; + +#endif |