summaryrefslogtreecommitdiffstats
path: root/src/latexgen.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2015-01-01 20:04:54 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2015-08-27 13:45:02 (GMT)
commit02a0c353a8947290a3191aead59db08dc84766ce (patch)
treef367cb6bf3f91c2b92160144f37eed33decdc4a0 /src/latexgen.h
parent56987af3987f40ac77e70cd39ebbdac3702c1ce2 (diff)
downloadDoxygen-02a0c353a8947290a3191aead59db08dc84766ce.zip
Doxygen-02a0c353a8947290a3191aead59db08dc84766ce.tar.gz
Doxygen-02a0c353a8947290a3191aead59db08dc84766ce.tar.bz2
Started with generating LaTeX output via the template engine
Diffstat (limited to 'src/latexgen.h')
-rw-r--r--src/latexgen.h88
1 files changed, 70 insertions, 18 deletions
diff --git a/src/latexgen.h b/src/latexgen.h
index ee67803..84382a7 100644
--- a/src/latexgen.h
+++ b/src/latexgen.h
@@ -24,6 +24,48 @@ class QFile;
static const char *latexStyleExtension = ".sty";
+class LatexCodeGenerator : public CodeOutputInterface
+{
+ public:
+ LatexCodeGenerator(FTextStream &t,const QCString &relPath,const QCString &sourceFile);
+ LatexCodeGenerator();
+ void setTextStream(FTextStream &t);
+ void setRelativePath(const QCString &path);
+ void setSourceFileName(const QCString &sourceFileName);
+ void codify(const char *text);
+ void writeCodeLink(const char *ref,const char *file,
+ const char *anchor,const char *name,
+ const char *tooltip);
+ void writeTooltip(const char *,
+ const DocLinkInfo &,
+ const char *,
+ const char *,
+ const SourceLinkInfo &,
+ const SourceLinkInfo &
+ ) {}
+ void writeLineNumber(const char *,const char *,const char *,int);
+ void startCodeLine(bool);
+ void endCodeLine();
+ void startFontClass(const char *);
+ void endFontClass();
+ void writeCodeAnchor(const char *) {}
+ void setCurrentDoc(Definition *,const char *,bool) {}
+ void addWord(const char *,bool) {}
+
+ private:
+ void _writeCodeLink(const char *className,
+ const char *ref,const char *file,
+ const char *anchor,const char *name,
+ const char *tooltip);
+ void docify(const char *str);
+ bool m_streamSet;
+ FTextStream m_t;
+ QCString m_relPath;
+ QCString m_sourceFileName;
+ int m_col;
+ bool m_prettyCode;
+};
+
/** Generator for LaTeX output. */
class LatexGenerator : public OutputGenerator
{
@@ -47,6 +89,32 @@ class LatexGenerator : public OutputGenerator
bool isEnabled(OutputType o) { return (o==Latex && active); }
OutputGenerator *get(OutputType o) { return (o==Latex) ? this : 0; }
+ // --- CodeOutputInterface
+ void codify(const char *text)
+ { m_codeGen.codify(text); }
+ void writeCodeLink(const char *ref, const char *file,
+ const char *anchor,const char *name,
+ const char *tooltip)
+ { m_codeGen.writeCodeLink(ref,file,anchor,name,tooltip); }
+ void writeLineNumber(const char *ref,const char *file,const char *anchor,int lineNumber)
+ { m_codeGen.writeLineNumber(ref,file,anchor,lineNumber); }
+ void writeTooltip(const char *id, const DocLinkInfo &docInfo, const char *decl,
+ const char *desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo
+ )
+ { m_codeGen.writeTooltip(id,docInfo,decl,desc,defInfo,declInfo); }
+ void startCodeLine(bool hasLineNumbers)
+ { m_codeGen.startCodeLine(hasLineNumbers); }
+ void endCodeLine()
+ { m_codeGen.endCodeLine(); }
+ void startFontClass(const char *s)
+ { m_codeGen.startFontClass(s); }
+ void endFontClass()
+ { m_codeGen.endFontClass(); }
+ void writeCodeAnchor(const char *anchor)
+ { m_codeGen.writeCodeAnchor(anchor); }
+ // ---------------------------
+
+
void writeDoc(DocNode *,Definition *ctx,MemberDef *);
void startFile(const char *name,const char *manName,const char *title);
@@ -83,15 +151,9 @@ class LatexGenerator : public OutputGenerator
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 writeTooltip(const char *, const DocLinkInfo &, const char *,
- const char *, const SourceLinkInfo &, const SourceLinkInfo &
- ) {}
+
void startTextLink(const char *,const char *);
void endTextLink();
void startHtmlLink(const char *url);
@@ -137,9 +199,6 @@ class LatexGenerator : public OutputGenerator
void writeAnchor(const char *fileName,const char *name);
void startCodeFragment();
void endCodeFragment();
- void writeLineNumber(const char *,const char *,const char *,int l);
- void startCodeLine(bool hasLineNumbers);
- void endCodeLine();
void startEmphasis() { t << "{\\em "; }
void endEmphasis() { t << "}"; }
void startBold() { t << "{\\bfseries "; }
@@ -267,10 +326,6 @@ class LatexGenerator : public OutputGenerator
void writeLabel(const char *l,bool isLast);
void endLabels();
- void startFontClass(const char *); // {}
- void endFontClass(); // {}
-
- void writeCodeAnchor(const char *) {}
void setCurrentDoc(Definition *,const char *,bool) {}
void addWord(const char *,bool) {}
@@ -278,17 +333,14 @@ class LatexGenerator : public OutputGenerator
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;
+ LatexCodeGenerator m_codeGen;
};
#endif