diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2009-05-22 11:08:01 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2009-05-22 11:08:01 (GMT) |
commit | a019396727caecaf125f043055160475d72e8268 (patch) | |
tree | b15979d08459986e6d255da8074d0798ae56540a /trunk/src/latexgen.h | |
parent | 7f0e124466e31066486a3fb6dae32432c2c1291d (diff) | |
download | Doxygen-Release_1_5_9_20090522.zip Doxygen-Release_1_5_9_20090522.tar.gz Doxygen-Release_1_5_9_20090522.tar.bz2 |
Release-1.5.9-20090522Release_1_5_9_20090522
Diffstat (limited to 'trunk/src/latexgen.h')
-rw-r--r-- | trunk/src/latexgen.h | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/trunk/src/latexgen.h b/trunk/src/latexgen.h new file mode 100644 index 0000000..2967c74 --- /dev/null +++ b/trunk/src/latexgen.h @@ -0,0 +1,255 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2008 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. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#ifndef LATEXGEN_H +#define LATEXGEN_H + +#include "outputgen.h" + +class QFile; + +class LatexGenerator : public OutputGenerator +{ + public: + LatexGenerator(); + ~LatexGenerator(); + static void init(); + static void writeStyleSheetFile(QFile &f); + static void writeHeaderFile(QFile &f); + + //OutputGenerator *copy(); + //OutputGenerator *clone() { return new LatexGenerator(*this); } + //void append(const OutputGenerator *o); + void enable() + { if (genStack->top()) active=*genStack->top(); else 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; } + + void printDoc(DocNode *,const char *); + + void startFile(const char *name,const char *manName,const char *title); + void writeFooter() {} + void endFile(); + void clearBuffer(); + + 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() { t << "}"; } + + void newParagraph(); + void startParagraph(); + void endParagraph(); + void writeString(const char *text); + void startIndexListItem() {} + void endIndexListItem() {} + void startIndexList() { t << "\\begin{CompactList}" << endl; } + void endIndexList() { t << "\\end{CompactList}" << endl; } + void startIndexKey(); + void endIndexKey(); + void startIndexValue(bool); + void endIndexValue(const char *,bool); + void startItemList() { t << "\\begin{CompactItemize}" << endl; } + void endItemList() { t << "\\end{CompactItemize}" << endl; } + 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 *,const char *); + void endTextLink(); + void startHtmlLink(const char *url); + void endHtmlLink(); + void startTypewriter() { t << "{\\tt "; } + void endTypewriter() { t << "}"; } + void startGroupHeader(); + void endGroupHeader(); + void startItemListItem() { t << "\\item " << endl; } + void endItemListItem() {} + + void startMemberSections() {} + void endMemberSections() {} + void startMemberHeader(); + void endMemberHeader(); + 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 startMemberGroupHeader(bool); + void endMemberGroupHeader(); + void startMemberGroupDocs(); + void endMemberGroupDocs(); + void startMemberGroup(); + void endMemberGroup(bool); + + void insertMemberAlign(bool) {} + + void writeRuler() { t << endl << endl; } + void writeAnchor(const char *fileName,const char *name); + void startCodeFragment(); + void endCodeFragment(); + void writeLineNumber(const char *,const char *,const char *,int l); + void startCodeLine(); + void endCodeLine(); + void startEmphasis() { t << "{\\em "; } + void endEmphasis() { t << "}"; } + void startBold() { t << "\\textbf{"; } + void endBold() { t << "}"; } + void startDescription(); + void endDescription(); + void startDescItem(); + void endDescItem(); + void lineBreak(const char *style=0) { (void)style; t << "\\par\n"; } + 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() { 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 startMemberDescription(); + void endMemberDescription(); + void startDescList(SectionTypes) { t << "\\begin{Desc}\n\\item["; } + void endDescList() { t << "\\end{Desc}" << endl; } + void startSimpleSect(SectionTypes,const char *,const char *,const char *); + void endSimpleSect(); + void startParamList(ParamListTypes,const char *title); + void endParamList(); + void startDescForItem() { t << "\\par" << endl; } + 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 *,const char *); + 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() + { t << "\\begin{description}" << endl; } + void endDescTable() + { t << "\\end{description}" << endl; } + void startDescTableTitle() + { t << "\\item[{\\em " << endl; } + void endDescTableTitle() + { t << "}]"; } + void startDescTableData() {} + void endDescTableData() {} + void lastIndexPage() {} + + void startDotGraph(); + void endDotGraph(const DotClassGraph &); + void startInclDepGraph(); + void endInclDepGraph(const DotInclDepGraph &); + void startCallGraph(); + void startGroupCollaboration(); + void endGroupCollaboration(const DotGroupCollaboration &g); + void endCallGraph(const DotCallGraph &); + void startDirDepGraph(); + void endDirDepGraph(const DotDirDeps &g); + void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {} + + void startTextBlock(bool) {} + void endTextBlock(bool) {} + + 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 *) {} + + private: + LatexGenerator(const LatexGenerator &); + LatexGenerator &operator=(const LatexGenerator &); + void escapeLabelName(const char *s); + void escapeMakeIndexChars(const char *s); + int col; + bool insideTabbing; + bool firstDescItem; + bool disableLinks; + QCString relPath; + QCString sourceFileName; + int m_indent; + bool templateMemberItem; + bool m_prettyCode; +}; + +#endif |