summaryrefslogtreecommitdiff
path: root/src/mangen.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mangen.h')
-rw-r--r--src/mangen.h272
1 files changed, 272 insertions, 0 deletions
diff --git a/src/mangen.h b/src/mangen.h
new file mode 100644
index 0000000..8ca448f
--- /dev/null
+++ b/src/mangen.h
@@ -0,0 +1,272 @@
+/******************************************************************************
+ *
+ * $Id: htmlgen.h,v 1.15 1998/11/28 11:33:19 root Exp $
+ *
+ * Copyright (C) 1997-2012 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 MANGEN_H
+#define MANGEN_H
+
+#include "outputgen.h"
+
+class QFile;
+
+/** Generator for Man page output. */
+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()
+ { if (genStack->top()) active=*genStack->top(); else active=TRUE; }
+ void disable() { active=FALSE; }
+ void enableIf(OutputType o) { if (o==Man) enable(); }
+ void disableIf(OutputType o) { if (o==Man) disable(); }
+ void disableIfNot(OutputType o) { if (o!=Man) disable(); }
+ bool isEnabled(OutputType o) { return (o==Man && active); }
+ OutputGenerator *get(OutputType o) { return (o==Man) ? this : 0; }
+
+ void writeDoc(DocNode *,Definition *,MemberDef *);
+
+ static void init();
+ void startFile(const char *name,const char *manName,const char *title);
+ void writeSearchInfo() {}
+ void writeFooter(const char *) {}
+ void endFile();
+ void clearBuffer();
+
+ void startIndexSection(IndexSections) {}
+ void endIndexSection(IndexSections) {}
+ void writePageLink(const char *,bool) {}
+ void startProjectNumber() {}
+ void endProjectNumber() {}
+ void writeStyleInfo(int) {}
+ void startTitleHead(const char *) {}
+ void endTitleHead(const char *,const char *);
+ void startTitle();
+ void endTitle();
+
+ void newParagraph();
+ void startParagraph();
+ void endParagraph();
+ void writeString(const char *text);
+ void startIndexListItem() {}
+ void endIndexListItem() {}
+ void startIndexList() {}
+ void endIndexList() { newParagraph(); }
+ void startIndexKey() {}
+ void endIndexKey() {}
+ void startIndexValue(bool) {}
+ void endIndexValue(const char *,bool) {}
+ void startItemList() {}
+ void endItemList() { newParagraph(); }
+ 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 *,const char *) {}
+ void endTextLink() {}
+ void startHtmlLink(const char *url);
+ void endHtmlLink();
+ void startTypewriter() { t << "\\fC"; firstCol=FALSE; }
+ void endTypewriter() { t << "\\fP"; firstCol=FALSE; }
+ void startGroupHeader(int);
+ void endGroupHeader(int);
+ void startMemberSections() {}
+ void endMemberSections() {}
+ void startHeaderSection() {}
+ void endHeaderSection() {}
+ void startMemberHeader(const char *);
+ void endMemberHeader();
+ void insertMemberAlign(bool) {}
+ void startMemberSubtitle() {}
+ void endMemberSubtitle() {}
+ //void writeListItem();
+ void startItemListItem();
+ void endItemListItem();
+ void startMemberDocList() {}
+ void endMemberDocList() {}
+ void startMemberList();
+ void endMemberList();
+ void startInlineHeader();
+ void endInlineHeader();
+ void startAnonTypeScope(int);
+ void endAnonTypeScope(int);
+ void startMemberItem(const char *,int,const char *);
+ void endMemberItem();
+ void startMemberTemplateParams() {}
+ void endMemberTemplateParams(const char *,const char *) {}
+
+ void startMemberGroupHeader(bool);
+ void endMemberGroupHeader();
+ void startMemberGroupDocs();
+ void endMemberGroupDocs();
+ void startMemberGroup();
+ void endMemberGroup(bool);
+
+ void writeRuler() {}
+ void writeAnchor(const char *,const char *) {}
+ void startCodeFragment();
+ void endCodeFragment();
+ void writeLineNumber(const char *,const char *,const char *,int l) { t << l << " "; }
+ void startCodeLine(bool) {}
+ void endCodeLine() { codify("\n"); col=0; }
+ void startEmphasis() { t << "\\fI"; firstCol=FALSE; }
+ void endEmphasis() { t << "\\fP"; firstCol=FALSE; }
+ void startBold() { t << "\\fB"; firstCol=FALSE; }
+ void endBold() { t << "\\fP"; firstCol=FALSE; }
+ void startDescription() {}
+ void endDescription() {}
+ void startDescItem();
+ void endDescItem();
+ void lineBreak(const char *) { t << "\n.br" << endl; }
+ void writeChar(char c);
+ void startMemberDoc(const char *,const char *,const char *,const char *,bool);
+ void endMemberDoc(bool);
+ void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
+ void endDoxyAnchor(const char *,const char *) {}
+ void startCodeAnchor(const char *) {}
+ void endCodeAnchor() {}
+ 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 startMemberDescription(const char *,const char *) { t << "\n.RI \"\\fI"; firstCol=FALSE; }
+ void endMemberDescription() { t << "\\fP\""; firstCol=FALSE; }
+ void startMemberDeclaration() {}
+ void endMemberDeclaration(const char *,const char *) {}
+ void writeInheritedSectionTitle(const char *,const char *,const char *,
+ const char *,const char *,const char *) {}
+ void startDescList(SectionTypes);
+ void endDescList() {}
+ void startSimpleSect(SectionTypes,const char *,const char *,const char *);
+ void endSimpleSect();
+ void startParamList(ParamListTypes,const char *title);
+ void endParamList();
+ //void writeDescItem();
+ void startDescForItem();
+ void endDescForItem();
+ 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 writeSplitBar(const char *) {}
+ void writeNavigationPath(const char *) {}
+ void writeLogo() {}
+ void writeQuickLinks(bool,HighlightedItem,const char *) {}
+ void writeSummaryLink(const char *,const char *,const char *,bool) {}
+ void startContents() {}
+ void endContents() {}
+ void writeNonBreakableSpace(int n) { int i; for (i=0;i<n;i++) t << " "; }
+
+ void startDescTable() {}
+ void endDescTable() {}
+ void startDescTableTitle() { startItemListItem(); startBold(); startEmphasis(); endItemListItem(); }
+ void endDescTableTitle() { endEmphasis(); endBold(); }
+ void startDescTableData() { t << endl; firstCol=TRUE; }
+ void endDescTableData() {}
+
+ void startDotGraph() {}
+ void endDotGraph(const DotClassGraph &) {}
+ void startInclDepGraph() {}
+ void endInclDepGraph(const DotInclDepGraph &) {}
+ void startGroupCollaboration() {}
+ void endGroupCollaboration(const DotGroupCollaboration &) {}
+ void startCallGraph() {}
+ void endCallGraph(const DotCallGraph &) {}
+ void startDirDepGraph() {}
+ void endDirDepGraph(const DotDirDeps &) {}
+ void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}
+
+ void startTextBlock(bool) {}
+ void endTextBlock(bool) {}
+ void lastIndexPage() {}
+
+ void startMemberDocPrefixItem() {}
+ void endMemberDocPrefixItem() {}
+ void startMemberDocName(bool) {}
+ void endMemberDocName() {}
+ void startParameterType(bool,const char *) {}
+ void endParameterType() {}
+ void startParameterName(bool) {}
+ void endParameterName(bool,bool,bool) {}
+ void startParameterList(bool) {}
+ void endParameterList() {}
+
+ void startFontClass(const char *) {}
+ void endFontClass() {}
+
+ void startConstraintList(const char *);
+ void startConstraintParam();
+ void endConstraintParam();
+ void startConstraintType();
+ void endConstraintType();
+ void startConstraintDocs();
+ void endConstraintDocs();
+ void endConstraintList();
+
+ void startMemberDocSimple();
+ void endMemberDocSimple();
+ void startInlineMemberType();
+ void endInlineMemberType();
+ void startInlineMemberName();
+ void endInlineMemberName();
+ void startInlineMemberDoc();
+ void endInlineMemberDoc();
+
+ void startLabels();
+ void writeLabel(const char *l,bool isLast);
+ void endLabels();
+
+ void writeCodeAnchor(const char *) {}
+ void linkableSymbol(int,const char *,Definition *,Definition *) {}
+
+ private:
+ bool firstCol;
+ bool paragraph;
+ int col;
+ bool upperCase;
+ bool insideTabbing;
+ bool inHeader;
+
+ ManGenerator(const ManGenerator &g);
+ ManGenerator &operator=(const ManGenerator &g);
+};
+
+#endif