mangen.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  *
00003  * $Id: htmlgen.h,v 1.15 1998/11/28 11:33:19 root Exp $
00004  *
00005  * Copyright (C) 1997-2008 by Dimitri van Heesch.
00006  *
00007  * Permission to use, copy, modify, and distribute this software and its
00008  * documentation under the terms of the GNU General Public License is hereby 
00009  * granted. No representations are made about the suitability of this software 
00010  * for any purpose. It is provided "as is" without express or implied warranty.
00011  * See the GNU General Public License for more details.
00012  *
00013  * Documents produced by Doxygen are derivative works derived from the
00014  * input used in their production; they are not affected by this license.
00015  *
00016  */
00017 
00018 #ifndef MANGEN_H
00019 #define MANGEN_H
00020 
00021 #include "outputgen.h"
00022 
00023 class QFile;
00024 
00025 class ManGenerator : public OutputGenerator
00026 {
00027   public:
00028     ManGenerator();
00029    ~ManGenerator();
00030     
00031     //OutputGenerator *copy()  { return new ManGenerator; } 
00032     //OutputGenerator *clone() { return new ManGenerator(*this); }
00033     //void append(const OutputGenerator *o);
00034     void enable() 
00035     { if (genStack->top()) active=*genStack->top(); else active=TRUE; }
00036     void disable() { active=FALSE; }
00037     void enableIf(OutputType o)  { if (o==Man) active=TRUE;  }
00038     void disableIf(OutputType o) { if (o==Man) active=FALSE; }
00039     void disableIfNot(OutputType o) { if (o!=Man) active=FALSE; }
00040     bool isEnabled(OutputType o) { return (o==Man && active); } 
00041     OutputGenerator *get(OutputType o) { return (o==Man) ? this : 0; }
00042 
00043     void printDoc(DocNode *,const char *);
00044 
00045     static void init();
00046     void startFile(const char *name,const char *manName,const char *title);
00047     void writeFooter() {}
00048     void endFile();
00049     void clearBuffer();
00050 
00051     void startIndexSection(IndexSections) {}
00052     void endIndexSection(IndexSections) {}
00053     void writePageLink(const char *,bool) {}
00054     void startProjectNumber() {}
00055     void endProjectNumber() {}
00056     void writeStyleInfo(int) {}
00057     void startTitleHead(const char *) {}
00058     void endTitleHead(const char *,const char *);
00059     void startTitle();
00060     void endTitle();
00061     
00062     void newParagraph();
00063     void startParagraph();
00064     void endParagraph();
00065     void writeString(const char *text);
00066     void startIndexList() {}
00067     void endIndexList()   { newParagraph(); } 
00068     void startIndexKey() {}
00069     void endIndexKey()   {} 
00070     void startIndexValue(bool) {}
00071     void endIndexValue(const char *,bool)   {} 
00072     void startItemList()  {}
00073     void endItemList()    { newParagraph(); }
00074     void startIndexItem(const char *ref,const char *file);
00075     void endIndexItem(const char *ref,const char *file);
00076     void docify(const char *text);
00077     void codify(const char *text);
00078     void writeObjectLink(const char *ref,const char *file,
00079                          const char *anchor,const char *name);
00080     void writeCodeLink(const char *ref,const char *file,
00081                        const char *anchor,const char *name,
00082                        const char *tooltip);
00083     void startTextLink(const char *,const char *) {}
00084     void endTextLink() {}
00085     void startHtmlLink(const char *url);
00086     void endHtmlLink();
00087     void startTypewriter() { t << "\\fC"; firstCol=FALSE; }
00088     void endTypewriter()   { t << "\\fP"; firstCol=FALSE; }
00089     void startGroupHeader();
00090     void endGroupHeader();
00091     void startMemberSections() {}
00092     void endMemberSections() {}
00093     void startMemberHeader();
00094     void endMemberHeader();
00095     void insertMemberAlign(bool) {}
00096     void startMemberSubtitle() {}
00097     void endMemberSubtitle() {}
00098     void writeListItem();
00099     void startMemberDocList() {}
00100     void endMemberDocList() {}
00101     void startMemberList();
00102     void endMemberList();
00103     void startAnonTypeScope(int);
00104     void endAnonTypeScope(int);
00105     void startMemberItem(int);
00106     void endMemberItem();
00107     void startMemberTemplateParams() {}
00108     void endMemberTemplateParams() {}
00109 
00110     void startMemberGroupHeader(bool);
00111     void endMemberGroupHeader();
00112     void startMemberGroupDocs();
00113     void endMemberGroupDocs();
00114     void startMemberGroup();
00115     void endMemberGroup(bool);
00116 
00117     void writeRuler()    {}
00118     void writeAnchor(const char *,const char *) {}
00119     void startCodeFragment();
00120     void endCodeFragment();
00121     void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
00122     void startCodeLine() {}
00123     void endCodeLine() { codify("\n"); col=0; }
00124     void startEmphasis() { t << "\\fI"; firstCol=FALSE; }
00125     void endEmphasis()   { t << "\\fP"; firstCol=FALSE; }
00126     void startBold()     { t << "\\fB"; firstCol=FALSE; }
00127     void endBold()       { t << "\\fP"; firstCol=FALSE; }
00128     void startDescription() {}
00129     void endDescription()   {}
00130     void startDescItem();
00131     void endDescItem();
00132     void lineBreak() { t << "\n.br" << endl; }
00133     void writeChar(char c);
00134     void startMemberDoc(const char *,const char *,const char *,const char *);
00135     void endMemberDoc(bool);
00136     void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
00137     void endDoxyAnchor(const char *,const char *) {}
00138     void startCodeAnchor(const char *) {}
00139     void endCodeAnchor() {}
00140     void writeLatexSpacing() {}
00141     void writeStartAnnoItem(const char *type,const char *file,
00142                             const char *path,const char *name);
00143     void writeEndAnnoItem(const char *) { t << endl; firstCol=TRUE; }
00144     void startSubsection();
00145     void endSubsection();
00146     void startSubsubsection();
00147     void endSubsubsection();
00148     void startCenter()        {}
00149     void endCenter()          {}
00150     void startSmall()         {}
00151     void endSmall()           {}
00152     void startMemberDescription() { t << "\n.RI \"\\fI"; firstCol=FALSE; }
00153     void endMemberDescription()   { t << "\\fP\""; firstCol=FALSE; }
00154     void startDescList(SectionTypes);
00155     void endDescList()        {}
00156     void startSimpleSect(SectionTypes,const char *,const char *,const char *);
00157     void endSimpleSect();
00158     void startParamList(ParamListTypes,const char *title);
00159     void endParamList();
00160     void writeDescItem();
00161     void startSection(const char *,const char *,SectionInfo::SectionType);
00162     void endSection(const char *,SectionInfo::SectionType);
00163     void addIndexItem(const char *,const char *) {}
00164     void startIndent()        {}
00165     void endIndent()          {}
00166     void writeSynopsis();
00167     void startClassDiagram() {}
00168     void endClassDiagram(const ClassDiagram &,const char *,const char *) {}
00169     void startPageRef() {}
00170     void endPageRef(const char *,const char *) {}
00171     void startQuickIndices() {}
00172     void endQuickIndices() {}
00173     void writeQuickLinks(bool,HighlightedItem) {}
00174     void startContents() {}
00175     void endContents() {}
00176     void writeNonBreakableSpace(int n) { int i; for (i=0;i<n;i++) t << " "; }
00177     
00178     void startDescTable() {}
00179     void endDescTable() {}
00180     void startDescTableTitle() { writeListItem(); startBold(); startEmphasis(); }
00181     void endDescTableTitle() { endEmphasis(); endBold(); }
00182     void startDescTableData() { t << endl; firstCol=TRUE; }
00183     void endDescTableData() {}
00184 
00185     void startDotGraph() {}
00186     void endDotGraph(const DotClassGraph &) {}
00187     void startInclDepGraph() {}
00188     void endInclDepGraph(const DotInclDepGraph &) {}
00189     void startGroupCollaboration() {}
00190     void endGroupCollaboration(const DotGroupCollaboration &) {}
00191     void startCallGraph() {}
00192     void endCallGraph(const DotCallGraph &) {}
00193     void startDirDepGraph() {} 
00194     void endDirDepGraph(const DotDirDeps &) {}
00195     void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}
00196 
00197     void startTextBlock(bool) {}
00198     void endTextBlock(bool) {}
00199     void lastIndexPage() {}
00200 
00201     void startMemberDocPrefixItem() {}
00202     void endMemberDocPrefixItem() {}
00203     void startMemberDocName(bool) {}
00204     void endMemberDocName() {}
00205     void startParameterType(bool,const char *) {}
00206     void endParameterType() {}
00207     void startParameterName(bool) {}
00208     void endParameterName(bool,bool,bool) {}
00209     void startParameterList(bool) {}
00210     void endParameterList() {}
00211 
00212     void startFontClass(const char *) {}
00213     void endFontClass() {}
00214 
00215     void startConstraintList(const char *);
00216     void startConstraintParam();
00217     void endConstraintParam();
00218     void startConstraintType();
00219     void endConstraintType();
00220     void startConstraintDocs();
00221     void endConstraintDocs();
00222     void endConstraintList();
00223 
00224     void writeCodeAnchor(const char *) {}
00225     void linkableSymbol(int,const char *,Definition *,Definition *) {}
00226 
00227   private:
00228     bool firstCol;
00229     bool paragraph;
00230     int col;
00231     bool upperCase;
00232     bool insideTabbing;
00233     bool inHeader;
00234 
00235     ManGenerator(const ManGenerator &g);
00236     ManGenerator &operator=(const ManGenerator &g);
00237 };
00238 
00239 #endif



Generated on Mon Mar 31 10:58:40 2008 by  doxygen 1.5.1