/****************************************************************************** * * $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 HTMLGEN_H #define HTMLGEN_H #include "outputgen.h" class QFile; class HtmlGenerator : public OutputGenerator { public: HtmlGenerator(); ~HtmlGenerator(); 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; } static void init(); //void generateExternalIndex(); 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 endTitleHead(const char *) { endTitle(); } void startTitle() { t << "

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

"; } void newParagraph(); void writeString(const char *text); void startIndexList() { t << "" << endl; } void startItemList() { t << "" << endl; } void startEnumList() { t << "
    " << endl; } void endEnumList() { t << "
" << 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 *name); void writeCodeLink(const char *ref,const char *f, const char *anchor,const char *name) { writeObjectLink(ref,f,anchor,name); } void startTextLink(const char *file,const char *anchor); void endTextLink(); void writeHtmlLink(const char *url,const char *text); void startTypewriter() { t << ""; } void endTypewriter() { t << ""; } void startGroupHeader(); void endGroupHeader(); void writeListItem() { t << "
  • "; } void startMemberHeader() { startGroupHeader(); } void endMemberHeader() { endGroupHeader(); } void startMemberList() { t << "" << endl; } void startMemberItem() { t << "
  • "; } void endMemberItem() { t << endl; } void writeRuler() { t << "
    "; } void writeAnchor(const char *name) { t << ""; } void startCodeFragment() { t << "
    "; }
        void endCodeFragment()   { t << "
    "; } 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 *) { t << endl << "

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

    " << endl; } void writeDoxyAnchor(const char *clName,const char *anchor, const char *name); 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 startSubscript() { t << ""; } void endSubscript() { t << ""; } void startSuperscript() { t << ""; } void endSuperscript() { t << ""; } void startTable(int) { t << ""; } void endTable() { t << "
    " << endl; } void nextTableRow() { t << endl << ""; } 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 startMemberDescription() { t << "
    "; } void endMemberDescription() { t << "
    "; } void startDescList() { t << "
    " << endl; } void endDescTitle() {} void writeDescItem() { t << "
    " << endl; } void endDescList() { t << "
    "; } 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() { t << "
    " << endl; } void endIndent() { t << "
    " << endl; } void writeSynopsis() {} void startClassDiagram(); void endClassDiagram(ClassDiagram &,const char *,const char *); void startColorFont(uchar r,uchar g,uchar b); 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: QString header; QString footer; HtmlGenerator &operator=(const HtmlGenerator &g); HtmlGenerator(const HtmlGenerator &g); }; #endif