summaryrefslogtreecommitdiffstats
path: root/src/latexgen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/latexgen.h')
-rw-r--r--src/latexgen.h178
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