/****************************************************************************** * * * * Copyright (C) 1997-2002 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" 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); OutputGenerator *copy() { return new HtmlGenerator; } //OutputGenerator *clone() { return new HtmlGenerator(*this); } void append(const OutputGenerator *o); void enable() { 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 generateExternalIndex(); void startFile(const char *name,const char *manName, 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(const char *) { startTitle(); } void endTitleHead(const char *,const char *) { endTitle(); } void startTitle() { t << "

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

"; } void newParagraph(); void writeString(const char *text); void startIndexList(); void endIndexList(); void startIndexKey(); void endIndexKey(); void startIndexValue(bool); void endIndexValue(const char *,bool); void startItemList() { t << "" << endl; } void startEnumList() { t << "
    " << endl; } void endEnumList() { t << "
" << endl; } void startAlphabeticalIndexList(); void endAlphabeticalIndexList(); void writeIndexHeading(const char *s); 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 *name); void writeCodeLink(const char *ref,const char *f, const char *anchor,const char *name); void startTextLink(const char *file,const char *anchor); void endTextLink(); void startHtmlLink(const char *url); void endHtmlLink(); void writeMailLink(const char *url); void startTypewriter() { t << ""; } void endTypewriter() { t << ""; } void startGroupHeader(); void endGroupHeader(); void writeListItem() { t << "
  • "; } void startMemberSections(); void endMemberSections(); void startMemberHeader(); void endMemberHeader(); void startMemberSubtitle(); void endMemberSubtitle(); void startMemberList(); void endMemberList(); void startMemberItem(int); void startMemberGroupHeader(bool); void endMemberGroupHeader(); void startMemberGroupDocs(); void endMemberGroupDocs(); void startMemberGroup(); void endMemberGroup(bool); void insertMemberAlign(); void endMemberItem(bool); void startMemberDescription(); void endMemberDescription(); void writeRuler() { t << "
    "; } void writeAnchor(const char *,const char *name) { t << ""; } void startCodeFragment() { t << "
    "; }
        void endCodeFragment()   { t << "
    "; } void startPreFragment() { t << "
    "; }
        void endPreFragment()   { t << "
    "; } void writeLineNumber(const char *,const char *,const char *,int); void startCodeLine() { col=0; } void endCodeLine() { codify("\n"); } //void writeBoldString(const char *text) // { t << ""; docify(text); t << ""; } void startEmphasis() { t << ""; } void endEmphasis() { t << ""; } void startBold() { t << ""; } void endBold() { t << ""; } void startDescription() { t << endl << "
    " << endl; } void endDescription() { t << endl << "
    " << endl; } void startDescItem() { t << "
    "; } void endDescItem() { t << "
    "; } void lineBreak() { t << "
    " << endl; } void writeChar(char c); void startMemberDoc(const char *,const char *,const char *,const char *); void endMemberDoc(); //void writeDoxyAnchor(const char *fName,const char *clName, // const char *anchor,const char *name); void startDoxyAnchor(const char *fName,const char *manName, const char *anchor,const char *name); void endDoxyAnchor(const char *fName,const char *anchor); void startCodeAnchor(const char *label) { t << ""; } void endCodeAnchor() { } void writeLatexSpacing() {} //void writeLatexLabel(const char *,const char *) {} 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 startSubscript() { t << ""; } void endSubscript() { t << ""; } void startSuperscript() { t << ""; } void endSuperscript() { t << ""; } void startTable(bool,int) { t << ""; } void endTable(bool hasCaption) { if (!hasCaption) t << ""; t << "
    " << endl; } void startCaption() { t << ""; } void endCaption() { t << "" << endl; } void nextTableRow() { t << ""; } void endTableRow() { t << "" << endl; } void nextTableColumn() { t << ""; } void endTableColumn() { t << ""; } void writeCopyright() { t << "©"; } void writeQuote() { t << """; } void writeUmlaut(char c) { t << "&" << c << "uml;"; } void writeAcute(char c) { t << "&" << c << "acute;"; } void writeGrave(char c) { t << "&" << c << "grave;"; } void writeCirc(char c) { t << "&" << c << "circ;"; } void writeTilde(char c) { t << "&" << c << "tilde;"; } void writeRing(char c) { t << "&" << c << "ring;"; } void writeSharpS() { t << "ß"; } void writeCCedil(char c) { t << "&" << c << "cedil;"; } void startDescList(SectionTypes) { t << "
    " << endl; } void endDescList() { t << "
    "; } void startParamList(ParamListTypes) { t << "
    " << endl; } void endParamList() { t << "
    "; } void endDescTitle() { t << ""; } void writeDescItem() { t << "
    " << endl; } void startSection(const char *,const char *,bool); void endSection(const char *,bool); void writeSectionRef(const char *,const char *,const char *,const char *); void writeSectionRefItem(const char *,const char *,const char *); //void writeSectionRefAnchor(const char *,const char *,const char *); void addIndexItem(const char *,const char *); void startIndent(); void endIndent(); void writeSynopsis() {} void startClassDiagram(); void endClassDiagram(ClassDiagram &,const char *,const char *); //void startColorFont(uchar r,uchar g,uchar b); //void endColorFont(); void startPageRef() {} void endPageRef(const char *,const char *) {} void startQuickIndexItem(const char *,const char *); void endQuickIndexItem(); void writeFormula(const char *,const char *); void writeNonBreakableSpace(int); void startImage(const char *,const char *,bool); void endImage(bool); void startDotFile(const char *,bool); void endDotFile(bool); void startDescTable() { t << "" << endl; } void endDescTable() { t << "
    " << endl; } void startDescTableTitle() { t << ""; } void endDescTableTitle() { t << " "; } void startDescTableData() { t << "" << endl; } void endDescTableData() { t << "" << endl; } //static void docifyStatic(QTextStream &t,const char *str); void startDotGraph(); void endDotGraph(DotClassGraph &g); void startInclDepGraph(); void endInclDepGraph(DotInclDepGraph &g); void writeGraphicalHierarchy(DotGfxHierarchyTable &g); void startTextBlock(bool) {} void endTextBlock() {} void lastIndexPage() {} void startMemberDocPrefixItem(); void endMemberDocPrefixItem(); void startMemberDocName(); void endMemberDocName(); void startParameterType(bool first); void endParameterType(); void startParameterName(bool); void endParameterName(bool last,bool emptyList); void startParameterList(); void endParameterList(); void startFontClass(const char *s) { t << ""; } void endFontClass() { t << ""; } void startHtmlOnly() {} void endHtmlOnly() {} void startLatexOnly() {} void endLatexOnly() {} private: QCString lastTitle; QCString lastFile; HtmlGenerator &operator=(const HtmlGenerator &g); HtmlGenerator(const HtmlGenerator &g); int col; }; #endif