|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Parker Waechter & Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit |
1c1d7e |
* input used in their production; they are not affected by this license.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#ifndef RTFGEN_H
|
|
Packit |
1c1d7e |
#define RTFGEN_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include "outputgen.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class QFile;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Generator for RTF output. */
|
|
Packit |
1c1d7e |
class RTFGenerator : public OutputGenerator
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
RTFGenerator();
|
|
Packit |
1c1d7e |
~RTFGenerator();
|
|
Packit |
1c1d7e |
static void init();
|
|
Packit |
1c1d7e |
static void writeStyleSheetFile(QFile &f);
|
|
Packit |
1c1d7e |
static void writeExtensionsFile(QFile &file;;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void enable()
|
|
Packit |
1c1d7e |
{ if (genStack->top()) active=*genStack->top(); else active=TRUE; }
|
|
Packit |
1c1d7e |
void disable() { active=FALSE; }
|
|
Packit |
1c1d7e |
void enableIf(OutputType o) { if (o==RTF) enable(); }
|
|
Packit |
1c1d7e |
void disableIf(OutputType o) { if (o==RTF) disable(); }
|
|
Packit |
1c1d7e |
void disableIfNot(OutputType o) { if (o!=RTF) disable(); }
|
|
Packit |
1c1d7e |
bool isEnabled(OutputType o) { return (o==RTF && active); }
|
|
Packit |
1c1d7e |
OutputGenerator *get(OutputType o) { return (o==RTF) ? this : 0; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void writeDoc(DocNode *,Definition *,MemberDef *);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startFile(const char *name,const char *manName,const char *title);
|
|
Packit |
1c1d7e |
void writeSearchInfo() {}
|
|
Packit |
1c1d7e |
void writeFooter(const char *) {}
|
|
Packit |
1c1d7e |
void endFile();
|
|
Packit |
1c1d7e |
void clearBuffer();
|
|
Packit |
1c1d7e |
//void postProcess(QByteArray &);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startIndexSection(IndexSections);
|
|
Packit |
1c1d7e |
void endIndexSection(IndexSections);
|
|
Packit |
1c1d7e |
void writePageLink(const char *,bool);
|
|
Packit |
1c1d7e |
void startProjectNumber();
|
|
Packit |
1c1d7e |
void endProjectNumber();
|
|
Packit |
1c1d7e |
void writeStyleInfo(int part);
|
|
Packit |
1c1d7e |
void startTitleHead(const char *);
|
|
Packit |
1c1d7e |
void startTitle();
|
|
Packit |
1c1d7e |
void endTitleHead(const char *,const char *name);
|
|
Packit |
1c1d7e |
void endTitle() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void newParagraph();
|
|
Packit |
1c1d7e |
void startParagraph(const char *classDef);
|
|
Packit |
1c1d7e |
void endParagraph();
|
|
Packit |
1c1d7e |
void writeString(const char *text);
|
|
Packit |
1c1d7e |
void startIndexListItem();
|
|
Packit |
1c1d7e |
void endIndexListItem();
|
|
Packit |
1c1d7e |
void startIndexList();
|
|
Packit |
1c1d7e |
void endIndexList();
|
|
Packit |
1c1d7e |
void startIndexKey();
|
|
Packit |
1c1d7e |
void endIndexKey();
|
|
Packit |
1c1d7e |
void startIndexValue(bool);
|
|
Packit |
1c1d7e |
void endIndexValue(const char *,bool);
|
|
Packit |
1c1d7e |
void startItemList();
|
|
Packit |
1c1d7e |
void endItemList();
|
|
Packit |
1c1d7e |
void startIndexItem(const char *ref,const char *file);
|
|
Packit |
1c1d7e |
void endIndexItem(const char *ref,const char *file);
|
|
Packit |
1c1d7e |
void docify(const char *text);
|
|
Packit |
1c1d7e |
void codify(const char *text);
|
|
Packit |
1c1d7e |
void writeObjectLink(const char *ref,const char *file,
|
|
Packit |
1c1d7e |
const char *anchor,const char *name);
|
|
Packit |
1c1d7e |
void writeCodeLink(const char *ref, const char *file,
|
|
Packit |
1c1d7e |
const char *anchor,const char *name,
|
|
Packit |
1c1d7e |
const char *tooltip);
|
|
Packit |
1c1d7e |
void writeTooltip(const char *, const DocLinkInfo &, const char *,
|
|
Packit |
1c1d7e |
const char *, const SourceLinkInfo &, const SourceLinkInfo &
|
|
Packit |
1c1d7e |
) {}
|
|
Packit |
1c1d7e |
void startTextLink(const char *f,const char *anchor);
|
|
Packit |
1c1d7e |
void endTextLink();
|
|
Packit |
1c1d7e |
void startHtmlLink(const char *url);
|
|
Packit |
1c1d7e |
void endHtmlLink();
|
|
Packit |
1c1d7e |
void startTypewriter() { t << "{\\f2 "; }
|
|
Packit |
1c1d7e |
void endTypewriter() { t << "}"; }
|
|
Packit |
1c1d7e |
void startGroupHeader(int);
|
|
Packit |
1c1d7e |
void endGroupHeader(int);
|
|
Packit |
1c1d7e |
//void writeListItem();
|
|
Packit |
1c1d7e |
void startItemListItem();
|
|
Packit |
1c1d7e |
void endItemListItem();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberSections() {}
|
|
Packit |
1c1d7e |
void endMemberSections() {}
|
|
Packit |
1c1d7e |
void startHeaderSection() {}
|
|
Packit |
1c1d7e |
void endHeaderSection() {}
|
|
Packit |
1c1d7e |
void startMemberHeader(const char *) { startGroupHeader(FALSE); }
|
|
Packit |
1c1d7e |
void endMemberHeader() { endGroupHeader(FALSE); }
|
|
Packit |
1c1d7e |
void startMemberSubtitle();
|
|
Packit |
1c1d7e |
void endMemberSubtitle();
|
|
Packit |
1c1d7e |
void startMemberDocList() {}
|
|
Packit |
1c1d7e |
void endMemberDocList() {}
|
|
Packit |
1c1d7e |
void startMemberList();
|
|
Packit |
1c1d7e |
void endMemberList();
|
|
Packit |
1c1d7e |
void startInlineHeader();
|
|
Packit |
1c1d7e |
void endInlineHeader();
|
|
Packit |
1c1d7e |
void startAnonTypeScope(int) {}
|
|
Packit |
1c1d7e |
void endAnonTypeScope(int) {}
|
|
Packit |
1c1d7e |
void startMemberItem(const char *,int,const char *);
|
|
Packit |
1c1d7e |
void endMemberItem();
|
|
Packit |
1c1d7e |
void startMemberTemplateParams() {}
|
|
Packit |
1c1d7e |
void endMemberTemplateParams(const char *,const char *) {}
|
|
Packit |
1c1d7e |
void insertMemberAlign(bool) {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void writeRuler() { rtfwriteRuler_thin(); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void writeAnchor(const char *fileName,const char *name);
|
|
Packit |
1c1d7e |
void startCodeFragment();
|
|
Packit |
1c1d7e |
void endCodeFragment();
|
|
Packit |
1c1d7e |
void writeLineNumber(const char *,const char *,const char *,int l) { t << QString("%1").arg(l,5) << " "; }
|
|
Packit |
1c1d7e |
void startCodeLine(bool) { col=0; }
|
|
Packit |
1c1d7e |
void endCodeLine() { lineBreak(); }
|
|
Packit |
1c1d7e |
void startEmphasis() { t << "{\\i "; }
|
|
Packit |
1c1d7e |
void endEmphasis() { t << "}"; }
|
|
Packit |
1c1d7e |
void startBold() { t << "{\\b "; }
|
|
Packit |
1c1d7e |
void endBold() { t << "}"; }
|
|
Packit |
1c1d7e |
void startDescription();
|
|
Packit |
1c1d7e |
void endDescription();
|
|
Packit |
1c1d7e |
void startDescItem();
|
|
Packit |
1c1d7e |
void endDescItem();
|
|
Packit |
1c1d7e |
void lineBreak(const char *style=0);
|
|
Packit |
1c1d7e |
void startMemberDoc(const char *,const char *,const char *,const char *,int,int,bool);
|
|
Packit |
1c1d7e |
void endMemberDoc(bool);
|
|
Packit |
1c1d7e |
void startDoxyAnchor(const char *,const char *,const char *,const char *,const char *);
|
|
Packit |
1c1d7e |
void endDoxyAnchor(const char *,const char *);
|
|
Packit |
1c1d7e |
void writeChar(char c);
|
|
Packit |
1c1d7e |
void writeLatexSpacing() {};//{ t << "\\hspace{0.3cm}"; }
|
|
Packit |
1c1d7e |
void writeStartAnnoItem(const char *type,const char *file,
|
|
Packit |
1c1d7e |
const char *path,const char *name);
|
|
Packit |
1c1d7e |
void writeEndAnnoItem(const char *name);
|
|
Packit |
1c1d7e |
void startSubsection();
|
|
Packit |
1c1d7e |
void endSubsection();
|
|
Packit |
1c1d7e |
void startSubsubsection();
|
|
Packit |
1c1d7e |
void endSubsubsection();
|
|
Packit |
1c1d7e |
void startCenter() { t << "{\\qc" << endl; }
|
|
Packit |
1c1d7e |
void endCenter() { t << "}"; }
|
|
Packit |
1c1d7e |
void startSmall() { t << "{\\sub "; }
|
|
Packit |
1c1d7e |
void endSmall() { t << "}"; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDescription(const char *,const char *);
|
|
Packit |
1c1d7e |
void endMemberDescription();
|
|
Packit |
1c1d7e |
void startMemberDeclaration() {}
|
|
Packit |
1c1d7e |
void endMemberDeclaration(const char *,const char *) {}
|
|
Packit |
1c1d7e |
void writeInheritedSectionTitle(const char *,const char *,const char *,
|
|
Packit |
1c1d7e |
const char *,const char *,const char *) {}
|
|
Packit |
1c1d7e |
void startDescList(SectionTypes);
|
|
Packit |
1c1d7e |
void startSimpleSect(SectionTypes,const char *,const char *,const char *);
|
|
Packit |
1c1d7e |
void endSimpleSect();
|
|
Packit |
1c1d7e |
void startParamList(ParamListTypes,const char *);
|
|
Packit |
1c1d7e |
void endParamList();
|
|
Packit |
1c1d7e |
//void writeDescItem();
|
|
Packit |
1c1d7e |
void startDescForItem();
|
|
Packit |
1c1d7e |
void endDescForItem();
|
|
Packit |
1c1d7e |
void startSection(const char *,const char *,SectionInfo::SectionType);
|
|
Packit |
1c1d7e |
void endSection(const char *,SectionInfo::SectionType);
|
|
Packit |
1c1d7e |
void addIndexItem(const char *,const char *);
|
|
Packit |
1c1d7e |
void startIndent();
|
|
Packit |
1c1d7e |
void endIndent();
|
|
Packit |
1c1d7e |
void writeSynopsis() {}
|
|
Packit |
1c1d7e |
void startClassDiagram();
|
|
Packit |
1c1d7e |
void endClassDiagram(const ClassDiagram &,const char *filename,const char *name);
|
|
Packit |
1c1d7e |
void startPageRef();
|
|
Packit |
1c1d7e |
void endPageRef(const char *,const char *);
|
|
Packit |
1c1d7e |
void startQuickIndices() {}
|
|
Packit |
1c1d7e |
void endQuickIndices() {}
|
|
Packit |
1c1d7e |
void writeSplitBar(const char *) {}
|
|
Packit |
1c1d7e |
void writeNavigationPath(const char *) {}
|
|
Packit |
1c1d7e |
void writeLogo() {}
|
|
Packit |
1c1d7e |
void writeQuickLinks(bool,HighlightedItem,const char *) {}
|
|
Packit |
1c1d7e |
void writeSummaryLink(const char *,const char *,const char *,bool) {}
|
|
Packit |
1c1d7e |
void startContents() {}
|
|
Packit |
1c1d7e |
void endContents() {}
|
|
Packit |
1c1d7e |
void writeNonBreakableSpace(int);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startDescTable(const char *title);
|
|
Packit |
1c1d7e |
void endDescTable();
|
|
Packit |
1c1d7e |
void startDescTableRow();
|
|
Packit |
1c1d7e |
void endDescTableRow();
|
|
Packit |
1c1d7e |
void startDescTableTitle();
|
|
Packit |
1c1d7e |
void endDescTableTitle();
|
|
Packit |
1c1d7e |
void startDescTableData();
|
|
Packit |
1c1d7e |
void endDescTableData();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startDotGraph();
|
|
Packit |
1c1d7e |
void endDotGraph(const DotClassGraph &);
|
|
Packit |
1c1d7e |
void startInclDepGraph();
|
|
Packit |
1c1d7e |
void endInclDepGraph(const DotInclDepGraph &);
|
|
Packit |
1c1d7e |
void startGroupCollaboration();
|
|
Packit |
1c1d7e |
void endGroupCollaboration(const DotGroupCollaboration &g);
|
|
Packit |
1c1d7e |
void startCallGraph();
|
|
Packit |
1c1d7e |
void endCallGraph(const DotCallGraph &);
|
|
Packit |
1c1d7e |
void startDirDepGraph();
|
|
Packit |
1c1d7e |
void endDirDepGraph(const DotDirDeps &g);
|
|
Packit |
1c1d7e |
void writeGraphicalHierarchy(const DotGfxHierarchyTable &) {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberGroupHeader(bool);
|
|
Packit |
1c1d7e |
void endMemberGroupHeader();
|
|
Packit |
1c1d7e |
void startMemberGroupDocs();
|
|
Packit |
1c1d7e |
void endMemberGroupDocs();
|
|
Packit |
1c1d7e |
void startMemberGroup();
|
|
Packit |
1c1d7e |
void endMemberGroup(bool);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startTextBlock(bool dense);
|
|
Packit |
1c1d7e |
void endTextBlock(bool);
|
|
Packit |
1c1d7e |
void lastIndexPage();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDocPrefixItem() {}
|
|
Packit |
1c1d7e |
void endMemberDocPrefixItem() {}
|
|
Packit |
1c1d7e |
void startMemberDocName(bool) {}
|
|
Packit |
1c1d7e |
void endMemberDocName() {}
|
|
Packit |
1c1d7e |
void startParameterType(bool,const char *);
|
|
Packit |
1c1d7e |
void endParameterType();
|
|
Packit |
1c1d7e |
void startParameterName(bool) {}
|
|
Packit |
1c1d7e |
void endParameterName(bool,bool,bool) {}
|
|
Packit |
1c1d7e |
void startParameterList(bool) {}
|
|
Packit |
1c1d7e |
void endParameterList() {}
|
|
Packit |
1c1d7e |
void exceptionEntry(const char*,bool);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startConstraintList(const char *);
|
|
Packit |
1c1d7e |
void startConstraintParam();
|
|
Packit |
1c1d7e |
void endConstraintParam();
|
|
Packit |
1c1d7e |
void startConstraintType();
|
|
Packit |
1c1d7e |
void endConstraintType();
|
|
Packit |
1c1d7e |
void startConstraintDocs();
|
|
Packit |
1c1d7e |
void endConstraintDocs();
|
|
Packit |
1c1d7e |
void endConstraintList();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDocSimple(bool);
|
|
Packit |
1c1d7e |
void endMemberDocSimple(bool);
|
|
Packit |
1c1d7e |
void startInlineMemberType();
|
|
Packit |
1c1d7e |
void endInlineMemberType();
|
|
Packit |
1c1d7e |
void startInlineMemberName();
|
|
Packit |
1c1d7e |
void endInlineMemberName();
|
|
Packit |
1c1d7e |
void startInlineMemberDoc();
|
|
Packit |
1c1d7e |
void endInlineMemberDoc();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startLabels();
|
|
Packit |
1c1d7e |
void writeLabel(const char *l,bool isLast);
|
|
Packit |
1c1d7e |
void endLabels();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startFontClass(const char *) {}
|
|
Packit |
1c1d7e |
void endFontClass() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void writeCodeAnchor(const char *) {}
|
|
Packit |
1c1d7e |
void setCurrentDoc(Definition *,const char *,bool) {}
|
|
Packit |
1c1d7e |
void addWord(const char *,bool) {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static bool preProcessFileInplace(const char *path,const char *name);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
RTFGenerator(const RTFGenerator &);
|
|
Packit |
1c1d7e |
RTFGenerator &operator=(const RTFGenerator &);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
const char *rtf_BList_DepthStyle();
|
|
Packit |
1c1d7e |
const char *rtf_CList_DepthStyle();
|
|
Packit |
1c1d7e |
const char *rtf_EList_DepthStyle();
|
|
Packit |
1c1d7e |
const char *rtf_LCList_DepthStyle();
|
|
Packit |
1c1d7e |
const char *rtf_DList_DepthStyle();
|
|
Packit |
1c1d7e |
const char *rtf_Code_DepthStyle();
|
|
Packit |
1c1d7e |
void incrementIndentLevel();
|
|
Packit |
1c1d7e |
void decrementIndentLevel();
|
|
Packit |
1c1d7e |
int col;
|
|
Packit |
1c1d7e |
bool m_prettyCode;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
bool m_bstartedBody; // has startbody been called yet?
|
|
Packit |
1c1d7e |
int m_listLevel; // // RTF does not really have a addative indent...manually set list level.
|
|
Packit |
1c1d7e |
bool m_omitParagraph; // should a the next paragraph command be ignored?
|
|
Packit |
1c1d7e |
int m_numCols; // number of columns in a table
|
|
Packit |
1c1d7e |
QCString relPath;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void beginRTFDocument();
|
|
Packit |
1c1d7e |
void beginRTFChapter();
|
|
Packit |
1c1d7e |
void beginRTFSection();
|
|
Packit |
1c1d7e |
void rtfwriteRuler_doubleline();
|
|
Packit |
1c1d7e |
void rtfwriteRuler_emboss();
|
|
Packit |
1c1d7e |
void rtfwriteRuler_thick();
|
|
Packit |
1c1d7e |
void rtfwriteRuler_thin();
|
|
Packit |
1c1d7e |
void writeRTFReference(const char *label);
|
|
Packit |
1c1d7e |
//char *getMultiByte(int c);
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|