⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtfgen.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        {          beginRTFChapter();          found=TRUE;          ++pdi;          pd=pdi.current();        }      }      break;    case isModuleDocumentation:      {        //Module Documentation        GroupSDict::Iterator gli(Doxygen::groupSDict);        GroupDef *gd;        bool found=FALSE;        for (gli.toFirst();(gd=gli.current()) && !found;++gli)        {          if (!gd->isReference())          {            beginRTFChapter();            found=TRUE;          }        }      }      break;    case isNamespaceDocumentation:      {        // Namespace Documentation        NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);        NamespaceDef *nd;        bool found=FALSE;        for (nli.toFirst();(nd=nli.current()) && !found;++nli)        {          if (nd->isLinkableInProject())          {            beginRTFChapter();            found=TRUE;          }        }       }      break;    case isClassDocumentation:      {        //Compound Documentation        ClassSDict::Iterator cli(Doxygen::classSDict);        ClassDef *cd=0;        bool found=FALSE;        for (cli.toFirst();(cd=cli.current()) && !found;++cli)        {          if (cd->isLinkableInProject() && cd->templateMaster()==0)          {            beginRTFChapter();            found=TRUE;          }        }      }      break;    case isFileDocumentation:      {        //File Documentation        bool isFirst=TRUE;        FileName *fn=Doxygen::inputNameList.first();        while (fn)        {          FileDef *fd=fn->first();          while (fd)          {            if (fd->isLinkableInProject())            {              if (isFirst)              {                beginRTFChapter();				                  isFirst=FALSE;                break;              }            }            fd=fn->next();          }          fn=Doxygen::inputNameList.next();        }      }      break;    case isExampleDocumentation:      {        //Example Documentation        beginRTFChapter();      }      break;    case isPageDocumentation:      {        //Page Documentation        beginRTFChapter();      }      break;    case isEndIndex:      break;  }}void RTFGenerator::endIndexSection(IndexSections is){  switch (is)  {    case isTitlePageStart:      if (title)        // User has overridden document title in extensions file        t << "}" << title;      else        t << "}" << Config_getString("PROJECT_NAME");      break;    case isTitlePageAuthor:      {        t << "Doxgyen. }\n";        t << "{\\creatim " << dateToRTFDateString() << "}\n}";        DBG_RTF(t << "{\\comment end of infoblock}\n");        // setup for this section        t << Rtf_Style_Reset <<"\n";        t <<"\\sectd\\pgnlcrm\n";        t <<"{\\footer "<<Rtf_Style["Footer"]->reference << "{\\chpgn}}\n";        // the title entry        DBG_RTF(t << "{\\comment begin title page}\n")        t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to title style        t << "\\vertalc\\qc\\par\\par\\par\\par\\par\\par\\par";        if (logoFilename)        {          t << "{\\field\\flddirty {\\*\\fldinst INCLUDEPICTURE " << logoFilename;          t << " \\\\d \\\\*MERGEFORMAT} {\\fldrslt IMAGE }}\\par\\par\n";        }        if (company)        {          t << company << "\\par\\par\n";        }        t << Rtf_Style_Reset << Rtf_Style["Title"]->reference << endl; // set to title style        t << "{\\field\\fldedit {\\*\\fldinst TITLE \\\\*MERGEFORMAT}{\\fldrslt TITLE}}\\par" << endl;        t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to title style        t << "\\par\n";        if (documentType)        {          t << documentType << "\\par\n";        }        if (documentId)        {          t << documentId << "\\par\n";        }        t << "\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\\par\n";                 t << Rtf_Style_Reset << Rtf_Style["SubTitle"]->reference << endl; // set to subtitle style        t << "{\\field\\fldedit {\\*\\fldinst AUTHOR \\\\*MERGEFORMAT}{\\fldrslt AUTHOR}}\\par" << endl;        t << "Version " << Config_getString("PROJECT_NUMBER") << "\\par";        t << "{\\field\\fldedit {\\*\\fldinst CREATEDATE \\\\*MERGEFORMAT}"          "{\\fldrslt CREATEDATE}}\\par"<<endl;        t << "\\page\\page";        DBG_RTF(t << "{\\comment End title page}" << endl)        // table of contents section        DBG_RTF(t << "{\\comment Table of contents}\n")        t << "\\vertalt\n";        t << Rtf_Style_Reset << endl;        t << "{\\field\\fldedit {\\*\\fldinst TOC \\\\f \\\\*MERGEFORMAT}{\\fldrslt Table of contents}}\\par\n";        t << Rtf_Style_Reset << endl;      }      break;    case isMainPage:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trMainPage() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";      if (Config_getBool("GENERATE_TREEVIEW")) t << "main"; else t << "index";      t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isPackageIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trPackageList() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"packages.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isModuleIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trModuleIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"modules.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isNamespaceIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trNamespaceIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"namespaces.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isClassHierarchyIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trHierarchicalIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"hierarchy.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isCompoundIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trCompoundIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"annotated.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isFileIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trFileIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"files.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isPageIndex:      t << "\\par " << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trPageIndex() << "}"<< endl;      t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"pages.rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";      break;    case isPackageDocumentation:      {        PackageSDict::Iterator pdi(Doxygen::packageDict);        PackageDef *pd=pdi.toFirst();        t << "{\\tc \\v " << theTranslator->trPackageDocumentation() << "}"<< endl;        while (pd)        {          t << "\\par " << Rtf_Style_Reset << endl;          t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";          t << pd->getOutputFileBase();          t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";          ++pdi;          pd=pdi.current();        }      }      break;    case isModuleDocumentation:      {        GroupSDict::Iterator gli(Doxygen::groupSDict);        GroupDef *gd;        t << "{\\tc \\v " << theTranslator->trModuleDocumentation() << "}"<< endl;        for (gli.toFirst();(gd=gli.current());++gli)        {          if (!gd->isReference())          {            t << "\\par " << Rtf_Style_Reset << endl;            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << gd->getOutputFileBase();            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";          }        }      }      break;    case isNamespaceDocumentation:      {        NamespaceSDict::Iterator nli(Doxygen::namespaceSDict);        NamespaceDef *nd;        bool found=FALSE;        for (nli.toFirst();(nd=nli.current()) && !found;++nli)        {          if (nd->isLinkableInProject())          {            t << "\\par " << Rtf_Style_Reset << endl;            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << nd->getOutputFileBase();            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";            found=TRUE;          }        }        while ((nd=nli.current()))        {          if (nd->isLinkableInProject())          {            t << "\\par " << Rtf_Style_Reset << endl;            beginRTFSection();            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << nd->getOutputFileBase();            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";          }          ++nli;        }      }      break;    case isClassDocumentation:      {        ClassSDict::Iterator cli(Doxygen::classSDict);        ClassDef *cd=0;        bool found=FALSE;        t << "{\\tc \\v " << theTranslator->trClassDocumentation() << "}"<< endl;        for (cli.toFirst();(cd=cli.current()) && !found;++cli)        {          if (cd->isLinkableInProject() && cd->templateMaster()==0)          {            t << "\\par " << Rtf_Style_Reset << endl;            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << cd->getOutputFileBase();            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";            found=TRUE;          }        }        for (;(cd=cli.current());++cli)        {          if (cd->isLinkableInProject() && cd->templateMaster()==0)          {            t << "\\par " << Rtf_Style_Reset << endl;            beginRTFSection();            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << cd->getOutputFileBase();            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";          }         }      }      break;    case isFileDocumentation:      {        bool isFirst=TRUE;        FileName *fn=Doxygen::inputNameList.first();        t << "{\\tc \\v " << theTranslator->trFileDocumentation() << "}"<< endl;        while (fn)        {          FileDef *fd=fn->first();          while (fd)          {            if (fd->isLinkableInProject())            {              if (isFirst)              {                t << "\\par " << Rtf_Style_Reset << endl;                t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";                t << fd->getOutputFileBase();                t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";                isFirst=FALSE;              }              else              {                t << "\\par " << Rtf_Style_Reset << endl;                beginRTFSection();                t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";                t << fd->getOutputFileBase();                t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";              }            }            fd=fn->next();          }          fn=Doxygen::inputNameList.next();        }      }      break;    case isExampleDocumentation:      {        //t << "}\n";        t << "{\\tc \\v " << theTranslator->trExampleDocumentation() << "}"<< endl;        PageSDict::Iterator pdi(*Doxygen::exampleSDict);        PageInfo *pi=pdi.toFirst();        if (pi)        {          t << "\\par " << Rtf_Style_Reset << endl;          t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";          t << convertNameToFile(pi->name+"-example");          t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";        }        for (++pdi;(pi=pdi.current());++pdi)        {          t << "\\par " << Rtf_Style_Reset << endl;          beginRTFSection();          t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";          t << convertNameToFile(pi->name+"-example");          t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";        }      }      break;    case isPageDocumentation:      {        t << "{\\tc \\v " << theTranslator->trPageDocumentation() << "}"<< endl;        PageSDict::Iterator pdi(*Doxygen::pageSDict);        PageInfo *pi=pdi.toFirst();        bool first=TRUE;        for (pdi.toFirst();(pi=pdi.current());++pdi)        {          if (!pi->inGroup && !pi->isReference())          {            QCString pageName;            if (Config_getBool("CASE_SENSE_NAMES"))              pageName=pi->name.copy();            else              pageName=pi->name.lower();            if (first) t << "\\par " << Rtf_Style_Reset << endl;            t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";            t << pageName;            t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";            first=FALSE;          }        }      }      break;    case isEndIndex:      beginRTFChapter();				        t << Rtf_Style["Heading1"]->reference;      t << theTranslator->trRTFGeneralIndex() << "\\par "<< endl;      t << Rtf_Style_Reset << endl;      t << "{\\tc \\v " << theTranslator->trRTFGeneralIndex() << "}" << endl;      t << "{\\field\\fldedit {\\*\\fldinst INDEX \\\\c2 \\\\*MERGEFORMAT}{\\fldrslt INDEX}}\n";      break;   }}void RTFGenerator::lastIndexPage(){  DBG_RTF(t <<"{\\comment Begining Body of RTF Document}\n")  // end page and setup for rest of document  t <<"\\sect \\sbkpage \\pgnrestart\n";  t <<"\\sect \\sectd \\sbknone \\pgndec\n";  // set footer  t <<"{\\footer "<< Rtf_Style["Footer"]->reference << "{\\chpgn}}\n";  //t << Rtf_Style["Heading1"]->reference << "\n";}void RTFGenerator::writeStyleInfo(int){}void RTFGenerator::lineBreak(){  t << "\\par" << endl;  //newParagraph();  //t << "\\line" << endl;}void RTFGenerator::writeString(const char *text){  t << text;}void RTFGenerator::startIndexList() {   DBG_RTF(t << "{\\comment (startIndexList)}" << endl)  t << "{" << endl;  incrementIndentLevel();  t << Rtf_Style_Reset << Rtf_LCList_DepthStyle() << endl;  newParagraph();  m_omitParagraph=TRUE;}void RTFGenerator::endIndexList(){   DBG_RTF(t << "{\\comment (endIndexList)}" << endl)  newParagraph();  t << "}";  decrementIndentLevel();  m_omitParagraph=TRUE;}/*! start bullet list */void RTFGenerator::startItemList()  {   DBG_RTF(t << "{\\comment (startItemList level=" << m_listLevel << ") }" << endl)  t << "{";  incrementIndentLevel();  listItemInfo[m_listLevel].isEnum = FALSE;}/*! end bullet list */void RTFGenerator::endItemList()    {   newParagraph();  DBG_RTF(t << "{\\comment (endItemList level=" << m_listLevel << ")}" << endl)  t << "}";  decrementIndentLevel();  m_omitParagraph=TRUE;}/*! start enumeration list */void RTFGenerator::startEnumList()  // starts an enumeration list{   DBG_RTF(t << "{\\comment (startEnumList)}" << endl)  t << "{" << endl;  incrementIndentLevel();  listItemInfo[m_listLevel].isEnum = TRUE;  listItemInfo[m_listLevel].number = 1;  //t << Rtf_Style_Reset << Rtf_EList_DepthStyle() << endl;  //newParagraph();  //m_omitParagraph=TRUE;}/*! end enumeration list */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -