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

📄 index.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        else        {          cname=cd->className();        }        ol.writeObjectLink(cd->getReference(),                           cd->getOutputFileBase(),0,cname);        if (!namesp.isEmpty())        {          ol.docify(" (");          NamespaceDef *nd = getResolvedNamespace(namesp);          if (nd && nd->isLinkable())          {            ol.writeObjectLink(nd->getReference(),                           nd->getOutputFileBase(),0,namesp);          }          else          {            ol.docify(namesp);          }          ol.docify(")");        }        ol.writeNonBreakableSpace(3);        //printf("item ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>");        ++(*colIterators[j]);      }      ol.endTableColumn();      if (j<colsInRow-1) ol.nextTableColumn();    }    ol.endTableRow();  }  ol.endAlphabeticalIndexList();  // release the temporary memory  for (i=0;i<columns;i++)  {    delete colIterators[i];  }  delete[] colIterators;  delete[] colList;}//----------------------------------------------------------------------------void writeAlphabeticalIndex(OutputList &ol){  if (annotatedClasses==0) return;  ol.pushGeneratorState();  ol.disableAllBut(OutputGenerator::Html);  startFile(ol,"classes.html",0,"Alphabetical index");  startTitle(ol,0);  parseText(ol,Config_getString("PROJECT_NAME")+" "+theTranslator->trCompoundIndex());  endTitle(ol,0,0);  writeAlphabeticalClassList(ol);  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writeAnnotatedIndex(OutputList &ol){  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (annotatedClasses==0) return;    ol.pushGeneratorState();  ol.disable(OutputGenerator::Man);  startFile(ol,"annotated",0,"Annotated Index");  startTitle(ol,0);  QCString title = theTranslator->trCompoundList();  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;  if (hasHtmlHelp)  {    htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annotated");     htmlHelp->incContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(TRUE,0,"annotated",0,ftvHelpTitle);     ftvHelp->incContentsDepth();  }  parseText(ol,theTranslator->trCompoundListDescription());  ol.endTextBlock();  writeAnnotatedClassList(ol);  if (hasHtmlHelp)  {    htmlHelp->decContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp->decContentsDepth();  }    endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writePackageIndex(OutputList &ol){  bool &generateHtml = Config_getBool("GENERATE_HTML") ;  bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");  bool hasFtvHelp  = generateHtml && Config_getBool("GENERATE_TREEVIEW");  if (documentedPackages==0) return;    ol.pushGeneratorState();  ol.disable(OutputGenerator::Man);  startFile(ol,"packages",0,"Package Index");  startTitle(ol,0);  QCString title = theTranslator->trPackageList();  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;  if (hasHtmlHelp)  {    htmlHelp = HtmlHelp::getInstance();    htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"packages");     htmlHelp->incContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(TRUE,0,"packages",0,ftvHelpTitle);     ftvHelp->incContentsDepth();  }  parseText(ol,theTranslator->trPackageListDescription());  ol.endTextBlock();  writePackageList(ol);  if (hasHtmlHelp)  {    htmlHelp->decContentsDepth();  }  if (hasFtvHelp)  {    ftvHelp->decContentsDepth();  }    endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writeMemberList(OutputList &ol,bool useSections){  bool first = TRUE;  char lastChar = 0;  MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict);  MemberName *mn=0;  for (mnli.toFirst();(mn=mnli.current());++mnli)  {    MemberDef *md=mn->first();    bool found=FALSE;    bool isFunc=FALSE;    while (md && !found)    {      ClassDef *cd;      if (           md->isLinkableInProject() &&           (cd=md->getClassDef()) &&           cd->isLinkableInProject() && cd->templateMaster()==0         )       {         found=TRUE;         isFunc=md->isFunction();       }      md=mn->next();    }    if (found)    {      if (useSections)      {        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)      {        first=FALSE;        ol.startItemList();      }      ol.writeListItem();      ol.docify(mn->memberName());      if (isFunc) ol.docify("()");      ol.writeString("\n");      int count=0;      md=mn->last();      QCString prevName;      while (md)      {        ClassDef *cd=md->getClassDef();        if (            md->isLinkableInProject() &&            prevName!=cd->displayName() &&             cd->isLinkableInProject() && cd->templateMaster()==0           )        {          if (count==0)             ol.docify(": ");          else             ol.docify(", ");          ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),md->anchor(),                            cd->displayName());          count++;          prevName=cd->displayName();        }        md=mn->prev();      }    }  }  ol.endItemList();}//----------------------------------------------------------------------------int countClassMembers(){  int i=0;for (i=0;i<256;i++) g_memberIndexLetterUsed[i]=FALSE;  int count=0;  MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict);  MemberName *mn=0;  for (mnli.toFirst();(mn=mnli.current());++mnli)  {    MemberDef *md=mn->first();    bool found=FALSE;    ClassDef *cd;    while (md && !found)    {      if (          md->isLinkableInProject() &&           (cd=md->getClassDef()) &&           cd->isLinkableInProject()         )      {        found=TRUE;      }      md=mn->next();    }    if (found)    {      QCString n = mn->memberName();      if (!n.isEmpty()) g_memberIndexLetterUsed[tolower(n.at(0))]=TRUE;      count++;    }  }  return count;}//----------------------------------------------------------------------------void writeQuickMemberIndex(OutputList &ol,bool *charUsed){  bool first=TRUE;  int i;  ol.startCenter();  for (i=33;i<127;i++)  {    QCString anchor="index_";    char is[2];is[0]=(char)i;is[1]='\0';    if (charUsed[i])    {      if (!first)       {        ol.writeString("&nbsp;|&nbsp;");      }      ol.startTextLink(0,anchor+is);      ol.writeString(is);      ol.endTextLink();      first=FALSE;    }  }  ol.endCenter();  ol.newParagraph();}//----------------------------------------------------------------------------void writeMemberIndex(OutputList &ol){  if (documentedMembers==0) return;  ol.pushGeneratorState();  ol.disableAllBut(OutputGenerator::Html);  startFile(ol,"functions",0,"Compound Member Index");  QCString title = theTranslator->trCompoundMembers();  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_memberIndexLetterUsed);  }  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,"functions");   }  if (hasFtvHelp)  {    FTVHelp *ftvHelp = FTVHelp::getInstance();    ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle);   }  parseText(ol,theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL")));  writeMemberList(ol,quickIndex);  endFile(ol);  ol.popGeneratorState();}//----------------------------------------------------------------------------void writeFileMemberList(OutputList &ol,bool useSections){  char lastChar=0;  bool first=TRUE;  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)    {      FileDef *fd=md->getFileDef();      bool hasDocs = md->getFileDef() &&                      md->getFileDef()->isLinkableInProject();            if (fd && hasDocs &&           md->isLinkableInProject()         ) found=TRUE;      else        md=mn->next();    }    if (found) // function is documented    {      if (useSections)      {        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)      {        first=FALSE;        ol.startItemList();      }      ol.writeListItem();      ol.docify(md->name());      if (md->isFunction()) ol.docify("()");      ol.writeString("\n");      int count=0;      md=mn->last();      QCString prevName;      while (md)      {        FileDef *fd=md->getFileDef();        bool hasDocs = md->getFileDef() &&                        md->getFileDef()->isLinkableInProject();        if (fd && hasDocs &&             md->isLinkableInProject() &&            prevName!=fd->name())        {          if (count==0)             ol.docify(": ");          else             ol.docify(", ");          QCString baseName=fd->name().copy();          ol.writeObjectLink(fd->getReference(),              fd->getOutputFileBase(),md->anchor(), baseName);          count++;          prevName=fd->name();        }        md=mn->prev();      }    }  }  ol.endItemList();}//----------------------------------------------------------------------------void writeNamespaceMemberList(OutputList &ol,bool useSections){  char lastChar=0;  bool first=TRUE;  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())         found=TRUE;      else        md=mn->next();    }    if (found) // member is documented and in a documented namespace    {      if (useSections)      {

⌨️ 快捷键说明

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