diff -r 932c358ece3e -r d8fccb2cd802 Orb/Doxygen/src/htmlgen.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Orb/Doxygen/src/htmlgen.h Fri Apr 23 20:47:58 2010 +0100 @@ -0,0 +1,264 @@ +/****************************************************************************** + * + * + * + * 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 HTMLGEN_H +#define HTMLGEN_H + +#include "qtbc.h" +#include "outputgen.h" + +#define PREFRAG_START "
"
+#define PREFRAG_END   "
" + +class QFile; + +class HtmlGenerator : public OutputGenerator +{ + public: + HtmlGenerator(); + virtual ~HtmlGenerator(); + static void init(); + static void writeStyleSheetFile(QFile &f); + static void writeHeaderFile(QFile &f); + static void writeFooterFile(QFile &f); + static void writeSearchPage(); + + void enable() + { if (genStack->top()) active=*genStack->top(); else active=TRUE; } + void disable() { active=FALSE; } + void enableIf(OutputType o) { if (o==Html) active=TRUE; } + void disableIf(OutputType o) { if (o==Html) active=FALSE; } + void disableIfNot(OutputType o) { if (o!=Html) active=FALSE; } + bool isEnabled(OutputType o) { return (o==Html && active); } + OutputGenerator *get(OutputType o) { return (o==Html) ? 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 *) { startTitle(); } + void endTitleHead(const char *,const char *) { endTitle(); } + void startTitle() { t << "

"; } + void endTitle() { t << "

"; } + + void startParagraph(); + void endParagraph(); + void writeString(const char *text); + void startIndexListItem(); + void endIndexListItem(); + void startIndexList(); + void endIndexList(); + void startIndexKey(); + void endIndexKey(); + void startIndexValue(bool); + void endIndexValue(const char *,bool); + void startItemList() { t << "" << 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 *file,const char *anchor); + void endTextLink(); + void startHtmlLink(const char *url); + void endHtmlLink(); + void startTypewriter() { t << ""; } + void endTypewriter() { t << ""; } + void startGroupHeader(); + void endGroupHeader(); + void startItemListItem() { t << "
  • "; } + void endItemListItem() { t << "
  • \n"; } + + 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 startMemberDescription(); + void endMemberDescription(); + + void writeRuler() { t << "
    "; } + void writeAnchor(const char *,const char *name) + { t << ""; } + void startCodeFragment() { t << PREFRAG_START; } + void endCodeFragment() { t << PREFRAG_END; } + void writeLineNumber(const char *,const char *,const char *,int); + void startCodeLine() { col=0; } + void endCodeLine() { codify("\n"); } + void startEmphasis() { t << ""; } + void endEmphasis() { t << ""; } + void startBold() { t << ""; } + void endBold() { t << ""; } + void startDescription() { t << endl << "
    " << endl; } + void endDescription() { t << endl << "
    \n" << endl; } + void startDescItem() { t << "
    "; } + void endDescItem() { t << "
    "; } + void startDescForItem() { t << "
    "; } + void endDescForItem() { t << "
    \n"; } + void lineBreak(const char *style); + void writeChar(char c); + void startMemberDoc(const char *,const char *,const char *,const char *); + void endMemberDoc(bool); + void startDoxyAnchor(const char *fName,const char *manName, + const char *anchor,const char *name, + const char *args); + void endDoxyAnchor(const char *fName,const char *anchor); + void startCodeAnchor(const char *label) { t << ""; } + void endCodeAnchor() { } + void writeLatexSpacing() {} + void writeStartAnnoItem(const char *type,const char *file, + const char *path,const char *name); + void writeEndAnnoItem(const char *) { t << endl; } + void startSubsection() { t << "

    "; } + void endSubsection() { t << "

    " << endl; } + void startSubsubsection() { t << "

    "; } + void endSubsubsection() { t << "

    " << endl; } + void startCenter() { t << "
    " << endl; } + void endCenter() { t << "
    " << endl; } + void startSmall() { t << "" << endl; } + void endSmall() { t << "" << endl; } + //void startDescList(SectionTypes) { t << "
    " << endl; } + //void endDescList() { t << "
    "; } + void startSimpleSect(SectionTypes,const char *,const char *,const char *); + void endSimpleSect(); + void startParamList(ParamListTypes,const char *); + void endParamList(); + //void writeDescItem() { t << "
    " << endl; } + 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 compact,HighlightedItem hli); + void startContents(); + void endContents(); + void writeNonBreakableSpace(int); + + void startDescTable() + { t << "" << endl; } + void endDescTable() + { t << "
    " << endl; } + void startDescTableTitle() + { t << ""; } + void endDescTableTitle() + { t << " "; } + void startDescTableData() + { t << "" << endl; } + void endDescTableData() + { t << "" << endl; } + + void startDotGraph(); + void endDotGraph(const DotClassGraph &g); + void startInclDepGraph(); + void endInclDepGraph(const DotInclDepGraph &g); + void startGroupCollaboration(); + void endGroupCollaboration(const DotGroupCollaboration &g); + void startCallGraph(); + void endCallGraph(const DotCallGraph &g); + void startDirDepGraph(); + void endDirDepGraph(const DotDirDeps &g); + void writeGraphicalHierarchy(const DotGfxHierarchyTable &g); + + void startTextBlock(bool) {} + void endTextBlock(bool) {} + void lastIndexPage() {} + + void startMemberDocPrefixItem(); + void endMemberDocPrefixItem(); + void startMemberDocName(bool); + void endMemberDocName(); + void startParameterType(bool first,const char *key); + void endParameterType(); + void startParameterName(bool); + void endParameterName(bool last,bool emptyList,bool closeBracket); + 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 *s) { t << ""; } + void endFontClass() { t << ""; } + + void writeCodeAnchor(const char *anchor) + { t << ""; } + void linkableSymbol(int,const char *,Definition *,Definition *) {} + + static void writeSearchFooter(QTextStream &t,const QCString &relPath); + static void writeSearchData(const char *dir); + static void generateSectionImages(); + + private: + QCString lastTitle; + QCString lastFile; + QCString relPath; + void docify(const char *text,bool inHtmlComment); + + HtmlGenerator &operator=(const HtmlGenerator &g); + HtmlGenerator(const HtmlGenerator &g); + + int col; +}; + +#endif