diff options
author | TizenOpenSource <tizenopensrc@samsung.com> | 2023-12-22 18:14:24 +0900 |
---|---|---|
committer | TizenOpenSource <tizenopensrc@samsung.com> | 2023-12-22 18:14:24 +0900 |
commit | 14adf159fc9eb1212b2e61ea78e94c135abde0fe (patch) | |
tree | 759368bce8b58bc20ffbb70cff0c19736f5bef22 /src/rtfgen.h | |
parent | cfd886868fa8595b045007a2ad673c18c5f222b3 (diff) | |
download | doxygen-14adf159fc9eb1212b2e61ea78e94c135abde0fe.tar.gz doxygen-14adf159fc9eb1212b2e61ea78e94c135abde0fe.tar.bz2 doxygen-14adf159fc9eb1212b2e61ea78e94c135abde0fe.zip |
Imported Upstream version 1.9.8upstream/1.9.8upstream
Diffstat (limited to 'src/rtfgen.h')
-rw-r--r-- | src/rtfgen.h | 129 |
1 files changed, 76 insertions, 53 deletions
diff --git a/src/rtfgen.h b/src/rtfgen.h index 376174d..e9026fa 100644 --- a/src/rtfgen.h +++ b/src/rtfgen.h @@ -18,9 +18,57 @@ #ifndef RTFGEN_H #define RTFGEN_H +#include <array> + #include "config.h" #include "outputgen.h" +class OutputCodeList; + +/** Generator for RTF code fragments */ +class RTFCodeGenerator +{ + public: + RTFCodeGenerator(TextStream *t); + void setTextStream(TextStream *t) { m_t = t; } + + OutputType type() const { return OutputType::RTF; } + void codify(const QCString &text); + void writeCodeLink(CodeSymbolType type, + const QCString &ref,const QCString &file, + const QCString &anchor,const QCString &name, + const QCString &tooltip); + void writeTooltip(const QCString &, + const DocLinkInfo &, + const QCString &, + const QCString &, + const SourceLinkInfo &, + const SourceLinkInfo & + ) {} + void writeLineNumber(const QCString &,const QCString &,const QCString &,int l, bool); + void startCodeLine(bool); + void endCodeLine(); + void startFontClass(const QCString &); + void endFontClass(); + void writeCodeAnchor(const QCString &) {} + void startCodeFragment(const QCString &style); + void endCodeFragment(const QCString &); + void startFold(int,const QCString &,const QCString &) {} + void endFold() {} + + private: + friend class RTFGenerator; + void setSourceFileName(const QCString &name); + void setIndentLevel(int level) { m_indentLevel=level; } + QCString rtf_Code_DepthStyle(); + int m_col = 0; + TextStream *m_t; + bool m_doxyCodeLineOpen = false; + QCString m_sourceFileName; + int m_indentLevel = 0; +}; + + /** Generator for RTF output. */ class RTFGenerator : public OutputGenerator { @@ -28,38 +76,38 @@ class RTFGenerator : public OutputGenerator RTFGenerator(); RTFGenerator(const RTFGenerator &); RTFGenerator &operator=(const RTFGenerator &); - virtual ~RTFGenerator(); - virtual std::unique_ptr<OutputGenerator> clone() const; + RTFGenerator(RTFGenerator &&); + RTFGenerator &operator=(RTFGenerator &&) = delete; + ~RTFGenerator(); static void init(); void cleanup(); static void writeStyleSheetFile(TextStream &t); static void writeExtensionsFile(TextStream &t); - OutputType type() const { return RTF; } + OutputType type() const { return OutputType::RTF; } void setRelativePath(const QCString &path); void setSourceFileName(const QCString &sourceFileName); void writeDoc(const IDocNodeAST *ast,const Definition *,const MemberDef *,int); - void startFile(const QCString &name,const QCString &manName,const QCString &title,int id); + void startFile(const QCString &name,const QCString &manName,const QCString &title,int id,int hierarchyLevel); void writeSearchInfo() {} void writeFooter(const QCString &) {} void endFile(); void clearBuffer(); - void startIndexSection(IndexSections); - void endIndexSection(IndexSections); + void startPageDoc(const QCString &) {} + void endPageDoc() {} + void startIndexSection(IndexSection); + void endIndexSection(IndexSection); void writePageLink(const QCString &,bool); void startProjectNumber(); void endProjectNumber(); void writeStyleInfo(int part); void startTitleHead(const QCString &); - void startTitle(); void endTitleHead(const QCString &,const QCString &name); - void endTitle() {} - void newParagraph(); void startParagraph(const QCString &classDef); void endParagraph(); void writeString(const QCString &text); @@ -76,20 +124,10 @@ class RTFGenerator : public OutputGenerator void startIndexItem(const QCString &ref,const QCString &file); void endIndexItem(const QCString &ref,const QCString &file); void docify(const QCString &text); - void codify(const QCString &text); void writeObjectLink(const QCString &ref,const QCString &file, const QCString &anchor,const QCString &name); - void writeCodeLink(CodeSymbolType type, - const QCString &ref, const QCString &file, - const QCString &anchor,const QCString &name, - const QCString &tooltip); - void writeTooltip(const QCString &, const DocLinkInfo &, const QCString &, - const QCString &, const SourceLinkInfo &, const SourceLinkInfo & - ) {} void startTextLink(const QCString &f,const QCString &anchor); void endTextLink(); - void startHtmlLink(const QCString &url); - void endHtmlLink(); void startTypewriter() { m_t << "{\\f2 "; } void endTypewriter() { m_t << "}"; } void startGroupHeader(int); @@ -101,7 +139,7 @@ class RTFGenerator : public OutputGenerator void endMemberSections() {} void startHeaderSection() {} void endHeaderSection() {} - void startMemberHeader(const QCString &,int) { startGroupHeader(FALSE); } + void startMemberHeader(const QCString &,int) { startGroupHeader(0); } void endMemberHeader() { endGroupHeader(FALSE); } void startMemberSubtitle(); void endMemberSubtitle(); @@ -113,31 +151,22 @@ class RTFGenerator : public OutputGenerator void endInlineHeader(); void startAnonTypeScope(int) {} void endAnonTypeScope(int) {} - void startMemberItem(const QCString &,int,const QCString &); - void endMemberItem(); + void startMemberItem(const QCString &,MemberItemType,const QCString &); + void endMemberItem(MemberItemType); void startMemberTemplateParams() {} void endMemberTemplateParams(const QCString &,const QCString &) {} - void startCompoundTemplateParams() { startSubsubsection(); } - void endCompoundTemplateParams() { endSubsubsection(); } + void startCompoundTemplateParams(); + void endCompoundTemplateParams(); void insertMemberAlign(bool) {} - void insertMemberAlignLeft(int,bool){} + void insertMemberAlignLeft(MemberItemType,bool){} void writeRuler() { rtfwriteRuler_thin(); } void writeAnchor(const QCString &fileName,const QCString &name); - void startCodeFragment(const QCString &style); - void endCodeFragment(const QCString &style); - void writeLineNumber(const QCString &,const QCString &,const QCString &,int l, bool); - void startCodeLine(bool); - void endCodeLine(); void startEmphasis() { m_t << "{\\i "; } void endEmphasis() { m_t << "}"; } void startBold() { m_t << "{\\b "; } void endBold() { m_t << "}"; } - void startDescription(); - void endDescription(); - void startDescItem(); - void endDescItem(); void lineBreak(const QCString &style=QCString()); void startMemberDoc(const QCString &,const QCString &,const QCString &,const QCString &,int,int,bool); void endMemberDoc(bool); @@ -147,11 +176,6 @@ class RTFGenerator : public OutputGenerator void writeLatexSpacing() {};//{ m_t << "\\hspace{0.3cm}"; } void writeStartAnnoItem(const QCString &type,const QCString &file, const QCString &path,const QCString &name); - void writeEndAnnoItem(const QCString &name); - void startSubsection(); - void endSubsection(); - void startSubsubsection(); - void endSubsubsection(); void startCenter() { m_t << "{\\qc\n"; } void endCenter() { m_t << "}"; } void startSmall() { m_t << "{\\sub "; } @@ -162,12 +186,9 @@ class RTFGenerator : public OutputGenerator void startMemberDeclaration() {} void endMemberDeclaration(const QCString &,const QCString &) {} void writeInheritedSectionTitle(const QCString &,const QCString &,const QCString &, - const QCString &,const QCString &,const QCString &) {} - void startDescList(SectionTypes); + const QCString &,const QCString &,const QCString &); void startExamples(); void endExamples(); - void startParamList(ParamListTypes,const QCString &); - void endParamList(); void startDescForItem(); void endDescForItem(); void startSection(const QCString &,const QCString &,SectionType); @@ -185,7 +206,7 @@ class RTFGenerator : public OutputGenerator void writeSplitBar(const QCString &) {} void writeNavigationPath(const QCString &) {} void writeLogo() {} - void writeQuickLinks(bool,HighlightedItem,const QCString &) {} + void writeQuickLinks(bool,HighlightedItem,const QCString &,bool) {} void writeSummaryLink(const QCString &,const QCString &,const QCString &,bool) {} void startContents() {} void endContents() {} @@ -257,20 +278,18 @@ class RTFGenerator : public OutputGenerator void writeLabel(const QCString &l,bool isLast); void endLabels(); - void startFontClass(const QCString &); - void endFontClass(); - - void writeCodeAnchor(const QCString &) {} + void writeLocalToc(const SectionRefs &,const LocalToc &) {} static bool preProcessFileInplace(const QCString &path,const QCString &name); + void addCodeGen(OutputCodeList &list); + private: QCString rtf_BList_DepthStyle(); QCString rtf_CList_DepthStyle(); QCString rtf_EList_DepthStyle(); QCString rtf_LCList_DepthStyle(); QCString rtf_DList_DepthStyle(); - QCString rtf_Code_DepthStyle(); void beginRTFDocument(); void beginRTFChapter(); void beginRTFSection(); @@ -279,18 +298,17 @@ class RTFGenerator : public OutputGenerator void rtfwriteRuler_thick(); void rtfwriteRuler_thin(); void writeRTFReference(const QCString &label); + void newParagraph(); int indentLevel() const; void incIndentLevel(); void decIndentLevel(); - QCString m_sourceFileName; - int m_col = 0; bool m_bstartedBody = false; // has startbody been called yet? bool m_omitParagraph = false; // should a the next paragraph command be ignored? int m_numCols = 0; // number of columns in a table QCString m_relPath; - bool m_doxyCodeLineOpen = false; + int m_hierarchyLevel = 0; // RTF does not really have a additive indent...manually set list level. static const int maxIndentLevels = 13; @@ -301,7 +319,12 @@ class RTFGenerator : public OutputGenerator int number = 1; char type = '1'; }; - RTFListItemInfo m_listItemInfo[maxIndentLevels]; + std::array<RTFListItemInfo,maxIndentLevels> m_listItemInfo; + std::unique_ptr<OutputCodeList> m_codeList; + RTFCodeGenerator *m_codeGen; }; +QCString rtfFormatBmkStr(const QCString &name); + + #endif |