/****************************************************************************** * * $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 MANGEN_H #define MANGEN_H #include "outputgen.h" class QFile; class ManGenerator : public OutputGenerator { public: ManGenerator(); ~ManGenerator(); OutputGenerator *copy() { return new ManGenerator; } //OutputGenerator *clone() { return new ManGenerator(*this); } void append(const OutputGenerator *o); void enable() { active=TRUE; } void disable() { active=FALSE; } void enableIf(OutputType o) { if (o==Man) active=TRUE; } void disableIf(OutputType o) { if (o==Man) active=FALSE; } void disableIfNot(OutputType o) { if (o!=Man) active=FALSE; } bool isEnabled(OutputType o) { return (o==Man && active); } OutputGenerator *get(OutputType o) { return (o==Man) ? this : 0; } static void init(); 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) {} void startTitleHead() {} void endTitleHead(const char *); void startTitle(); void endTitle() {} void newParagraph(); void writeString(const char *text); void startIndexList() {} void endIndexList() {} void startItemList() {} void endItemList() {} void startEnumList() {} void endEnumList() {} 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 *,const char *) {} void endTextLink() {} void writeHtmlLink(const char *url,const char *text); void startTypewriter() { t << "\\fC"; firstCol=FALSE; } void endTypewriter() { t << "\\fR"; firstCol=FALSE; } void startGroupHeader(); void endGroupHeader(); void startMemberHeader(); void endMemberHeader(); void writeListItem(); void startMemberList() { t << "\n.in +1c"; firstCol=FALSE; } void endMemberList() { t << "\n.in -1c"; firstCol=FALSE; } void startMemberItem() { if (firstCol) t << ".in +1c"; t << "\n.ti -1c\n.RI \""; firstCol=FALSE; } void endMemberItem() { t << "\"\n.br"; } void writeRuler() {} void writeAnchor(const char *) {} void startCodeFragment(); void endCodeFragment(); void writeBoldString(const char *text) { t << "\\fB"; docify(text); t << "\\fR"; firstCol=FALSE; } void startEmphasis() { t << "\\fI"; firstCol=FALSE; } void endEmphasis() { t << "\\fR"; firstCol=FALSE; } void startBold() { t << "\\fB"; firstCol=FALSE; } void endBold() { t << "\\fR"; firstCol=FALSE; } void startDescription() {} void endDescription() {} void startDescItem(); void endDescItem(); void lineBreak() { t << "\n.br" << endl; } void writeChar(char c); void startMemberDoc(const char *,const char *,const char *); void endMemberDoc() {} 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; firstCol=TRUE; } void startSubsection(); void endSubsection() {} void startSubsubsection(); void endSubsubsection() {} void startCenter() {} void endCenter() {} void startSmall() {} void endSmall() {} void startSubscript() { t << "\\*<"; firstCol=FALSE; } void endSubscript() { t << "\\*>"; firstCol=FALSE; } void startSuperscript() { t << "\\*{"; firstCol=FALSE; } void endSuperscript() { t << "\\*}"; firstCol=FALSE; } void startTable(int) {} void endTable() {} void nextTableRow() {} void endTableRow() {} void nextTableColumn() {} void endTableColumn() {} void writeCopyright() { t << "(c)"; firstCol=FALSE; } void writeQuote() { t << "\""; firstCol=FALSE; } void writeUmlaut(char c) { t << c << "\\*'"; firstCol=FALSE; } void writeAcute(char c) { t << c << "\\*`"; firstCol=FALSE; } void writeGrave(char c) { t << c << "\\*:"; firstCol=FALSE; } void writeCirc(char c) { t << c << "\\*^"; firstCol=FALSE; } void writeTilde(char c) { t << c << "\\*~"; firstCol=FALSE; } void startMemberDescription() { t << "\n.RI \"\\fI"; firstCol=FALSE; } void endMemberDescription() { t << "\\fR\""; firstCol=FALSE; } void startDescList(); void endDescTitle(); void writeDescItem(); void endDescList() {} 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() {} void endIndent() {} void writeSynopsis(); //void generateExternalIndex() {} void startClassDiagram() {} void endClassDiagram(ClassDiagram &,const char *,const char *) {} void startColorFont(uchar,uchar,uchar) {} void endColorFont() {} void writePageRef(const char *,const char *) {} void startQuickIndexItem(const char *,const char *) {} void endQuickIndexItem() {} void writeFormula(const char *,const char *) {} private: bool firstCol; bool paragraph; int col; bool upperCase; ManGenerator(const ManGenerator &g); ManGenerator &operator=(const ManGenerator &g); }; #endif