Blame src/rtfgen.h

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