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

📄 index.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        QCString name = mn->memberName();        if (tolower(name.at(0))!=lastChar)        {          if (!first) ol.endItemList();          char cs[2];          lastChar=cs[0]=tolower(name.at(0));cs[1]='\0';          QCString anchor=(QCString)"index_"+cs;          QCString title=(QCString)"- "+cs+" -";          ol.startSection(anchor,title,TRUE);          ol.docify(title);          ol.endSection(anchor,TRUE);          ol.startItemList();          first=FALSE;        }      }      else if (first)      {        ol.startItemList();        first=FALSE;      }      ol.writeListItem();      ol.docify(md->name());      if (md->isFunction()) ol.docify("()");      ol.writeString("\n");      int count=0;      md=mn->last();      QCString prevName;      while (md)      {        NamespaceDef *nd=md->getNamespaceDef();        if (nd && nd->isLinkableInProject() && md->isLinkableInProject() &&            prevName!=nd->name()           )        {          if (count==0)             ol.docify(": ");          else             ol.docify(", ");          ol.writeObjectLink(nd->getReference(),nd->getOutputFileBase(),                             md->anchor(),nd->name());          count++;          prevName=nd->name();        }        md=mn->prev();      }    }  }  if (!first) ol.endItemList();}//----------------------------------------------------------------------------int countNamespaceMembers(){  int i=0;for (i=0;i<256;i++) g_namespaceIndexLetterUsed[i]=FALSE;  int count=0;  MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);  MemberName *mn=0;  for (mnli.toFirst();(mn=mnli.current());++mnli)  {    MemberDef *md=mn->first();    bool found=FALSE;    while (md && !found)    {      NamespaceDef *nd=md->getNamespaceDef();      if (nd && nd->isLinkableInProject() && md->isLinkableInProject())      {        QCString n = mn->memberName();        if (!n.isEmpty()) g_namespaceIndexLetterUsed[tolower(n.at(0))]=TRUE;        found=TRUE;      }      else        md=mn->next();    }    if (found) count++;  }  return count;}//----------------------------------------------------------------------------int countFileMembers(){  int i=0;for (i=0;i<256;i++) g_fileIndexLetterUsed[i]=FALSE;  int count=0;  MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);  MemberName *mn=0;  for (mnli.toFirst();(mn=mnli.current());++mnli)  {    MemberDef *md=mn->first();    FileDef *fd;    bool found=FALSE;    while (md && !found)    {      if (md->isLinkableInProject() &&           (fd=md->getFileDef()) &&           fd->isLinkableInProject()         )       {        QCString n = mn->memberName();        if (!n.isEmpty()) g_fileIndexLetterUsed[tolower(n.at(0))]=TRUE;        found=TRUE;      }      else        md=mn->next();    }    if (found) count++;  }  return count;}//----------------------------------------------------------------------------void writeFileMemberIndex(OutputList &ol){  if (documentedFunctions==0) return;  ol.pushGeneratorState();  ol.disableAllBut(OutputGenerator::Html);  startFile(ol,"globals",0,"File Member Index");  QCString title = theTranslator->trFileMembers();  QCString htmlHelpTitle = title;  QCString ftvHelpTitle =  title;  if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");  startTitle(ol,0);  parseText(ol,title);  endTitle(ol,0,0);  bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;  if (quickIndex)  {    writeQuickMemberIndex(ol,g_fileIndexLetterUsed);  }  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp =  generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (hasHtmlHelp)  {    HtmlHelp *htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"globals");   }  if (hasFtvHelp)  {    FTVHelp *ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle);   }  parseText(ol,theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL")));  writeFileMemberList(ol,quickIndex);  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writeNamespaceMemberIndex(OutputList &ol){  if (documentedNamespaceMembers==0) return;  ol.pushGeneratorState();  ol.disableAllBut(OutputGenerator::Html);  startFile(ol,"namespacemembers",0,"Namespace Member Index");  QCString title = theTranslator->trNamespaceMembers();  QCString htmlHelpTitle = title;  QCString ftvHelpTitle =  title;  if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");  startTitle(ol,0);  parseText(ol,title);  endTitle(ol,0,0);  bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;  if (quickIndex)  {    writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed);  }  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp =  generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (hasHtmlHelp)  {    HtmlHelp *htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"namespacemembers");   }  if (hasFtvHelp)  {    FTVHelp *ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle);   }  parseText(ol,theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL")));  writeNamespaceMemberList(ol,quickIndex);  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writeExampleIndex(OutputList &ol){  if (Doxygen::exampleSDict->count()==0) return;  ol.pushGeneratorState();  ol.disable(OutputGenerator::Man);  startFile(ol,"examples",0,"Example Index");  startTitle(ol,0);  QCString title = theTranslator->trExamples();  QCString htmlHelpTitle = title;  QCString ftvHelpTitle  = title;  if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");  parseText(ol,title);  endTitle(ol,0,0);  ol.startTextBlock();  HtmlHelp *htmlHelp = 0;  FTVHelp  *ftvHelp = 0;  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (hasHtmlHelp)  {    htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"examples");     htmlHelp->incContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(TRUE,0,"examples",0,ftvHelpTitle);     ftvHelp->incContentsDepth();  }  parseText(ol,theTranslator->trExamplesDescription());  //ol.newParagraph();  ol.endTextBlock();  ol.startItemList();  PageSDict::Iterator pdi(*Doxygen::exampleSDict);  PageInfo *pi=0;  for (pdi.toFirst();(pi=pdi.current());++pdi)  {    ol.writeListItem();    QCString n=convertNameToFile(pi->name+"-example");    if (!pi->title.isEmpty())    {      ol.writeObjectLink(0,n,0,pi->title);      if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pi->title,n);      if (hasFtvHelp)  ftvHelp->addContentsItem(FALSE,pi->getReference(),n,0,pi->title);    }    else    {      ol.writeObjectLink(0,n,0,pi->name);      if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pi->name,n);      if (hasFtvHelp)  ftvHelp->addContentsItem(FALSE,pi->getReference(),n,0,pi->name);    }    ol.writeString("\n");  }  ol.endItemList();  if (hasHtmlHelp)  {    htmlHelp->decContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp->decContentsDepth();  }  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void countRelatedPages(int &docPages,int &indexPages){  docPages=indexPages=0;  PageSDict::Iterator pdi(*Doxygen::pageSDict);  PageInfo *pi=0;  for (pdi.toFirst();(pi=pdi.current());++pdi)  {    if (!pi->inGroup && (!pi->isReference() || Config_getBool("ALLEXTERNALS")))    {      indexPages++;      if (!pi->isReference()) docPages++;    }  }}//----------------------------------------------------------------------------int countPackages(){  int count=0;  PackageSDict::Iterator pdi(Doxygen::packageDict);  PackageDef *pd=0;  for (pdi.toFirst();(pd=pdi.current());++pdi)  {    if (!pd->isReference())    {      count++;    }  }  return count;}//----------------------------------------------------------------------------void writePageIndex(OutputList &ol){  if (indexedPages==0) return;  ol.pushGeneratorState();  ol.disable(OutputGenerator::Man);  startFile(ol,"pages",0,"Page Index");  startTitle(ol,0);  QCString title = theTranslator->trRelatedPages();  QCString htmlHelpTitle = title;  QCString ftvHelpTitle  = title;  if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");  parseText(ol,title);  endTitle(ol,0,0);  ol.startTextBlock();  HtmlHelp *htmlHelp = 0;  FTVHelp  *ftvHelp = 0;  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (hasHtmlHelp)  {    htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"pages");     htmlHelp->incContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(TRUE,0,"pages",0,ftvHelpTitle);     ftvHelp->incContentsDepth();  }  parseText(ol,theTranslator->trRelatedPagesDescription());  ol.endTextBlock();  {    // UGLY HACK!    ol.pushGeneratorState();    ol.disable(OutputGenerator::Man);    ol.disable(OutputGenerator::Html);    ol.startIndexList();    ol.enableAll();    ol.disable(OutputGenerator::Latex);    ol.disable(OutputGenerator::RTF);    ol.startItemList();    ol.popGeneratorState();  }  PageSDict::Iterator pdi(*Doxygen::pageSDict);  PageInfo *pi=0;  for (pdi.toFirst();(pi=pdi.current());++pdi)  {    if (!pi->inGroup && (!pi->isReference() || Config_getBool("ALLEXTERNALS")))    {      QCString pageName,pageTitle;      if (Config_getBool("CASE_SENSE_NAMES"))        pageName=pi->name.copy();      else        pageName=pi->name.lower();      if (pi->title.isEmpty())        pageTitle=pi->name;      else        pageTitle=pi->title;      ol.writeIndexItem(pi->getReference(),pi->getOutputFileBase(),pageTitle);      if (pi->isReference())       {         ol.startTypewriter();         ol.docify(" [external]");        ol.endTypewriter();      }      ol.writeString("\n");      if (hasHtmlHelp) htmlHelp->addContentsItem(FALSE,pageTitle,pageName);      if (hasFtvHelp)  ftvHelp->addContentsItem(FALSE,0,pageName,0,pageTitle);    }  }  {    // UGLY HACK!    ol.pushGeneratorState();    ol.disable(OutputGenerator::Man);    ol.disable(OutputGenerator::Html);    ol.endIndexList();    ol.enableAll();    ol.disable(OutputGenerator::Latex);    ol.disable(OutputGenerator::RTF);    ol.endItemList();    ol.popGeneratorState();  }  if (hasHtmlHelp)  {    htmlHelp->decContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp->decContentsDepth();  }  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------int countGroups(){  int count=0;  GroupSDict::Iterator gli(Doxygen::groupSDict);  GroupDef *gd;  for (gli.toFirst();(gd=gli.current());++gli)  {    if (!gd->isReference())    {      gd->visited=FALSE;      count++;    }  }  return count;}//----------------------------------------------------------------------------void writeGraphInfo(OutputList &ol){  if (!Config_getBool("HAVE_DOT") || !Config_getBool("GENERATE_HTML")) return;  ol.pushGeneratorState();  ol.disableAllBut(OutputGenerator::Html);  generateGraphLegend(Config_getString("HTML_OUTPUT"));  startFile(ol,"graph_legend",0,"Graph Legend");  startTitle(ol,0);  parseText(ol,theTranslator->trLegendTitle());  endTitle(ol,0,0);  bool oldStripCommentsState = Config_getBool("STRIP_CODE_COMMENTS");  // temporarily disable the stripping of comments for our own code example!  Config_getBool("STRIP_CODE_COMMENTS") = FALSE;  parseDoc(ol,"graph_legend",1,0,0,theTranslator->trLegendDocs());  Config_getBool("STRIP_CODE_COMMENTS") = oldStripCommentsState;  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------/*! * write groups as hierarchial trees * \author KPW */void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel){  HtmlHelp *htmlHelp=0;  FTVHelp  *ftvHelp = 0;  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (hasHtmlHelp

⌨️ 快捷键说明

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