summaryrefslogtreecommitdiffstats
path: root/src/index.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.cpp')
-rw-r--r--src/index.cpp1034
1 files changed, 551 insertions, 483 deletions
diff --git a/src/index.cpp b/src/index.cpp
index bb22283..b4f2d36 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -38,6 +38,9 @@
#include "pagedef.h"
#include "dirdef.h"
+#define MAX_ITEMS_BEFORE_MULTIPAGE_INDEX 200
+#define MAX_ITEMS_BEFORE_QUICK_INDEX 30
+
int annotatedClasses;
int hierarchyClasses;
int documentedFiles;
@@ -122,7 +125,7 @@ static bool g_fileIndexLetterUsed[FMHL_Total][256];
static bool g_namespaceIndexLetterUsed[NMHL_Total][256];
static bool g_classIndexLetterUsed[CHL_Total][256];
-const int maxItemsBeforeQuickIndex = 30;
+const int maxItemsBeforeQuickIndex = MAX_ITEMS_BEFORE_QUICK_INDEX;
//----------------------------------------------------------------------------
@@ -1508,7 +1511,8 @@ void writeAnnotatedIndex(OutputList &ol)
//----------------------------------------------------------------------------
-void writeMemberList(OutputList &ol,bool useSections,ClassMemberHighlight filter)
+void writeMemberList(OutputList &ol,bool useSections,
+ ClassMemberHighlight filter,char sectionFilter)
{
bool first = TRUE;
char lastChar = 0;
@@ -1517,89 +1521,92 @@ void writeMemberList(OutputList &ol,bool useSections,ClassMemberHighlight filter
MemberName *mn=0;
for (mnli.toFirst();(mn=mnli.current());++mnli)
{
- MemberDef *md=mn->first();
- bool found=FALSE;
- bool isFunc=FALSE;
- while (md && !found)
+ if (sectionFilter==0 || tolower(sectionFilter)==tolower(mn->memberName()[0]))
{
- ClassDef *cd;
- bool isFriendToHide = Config_getBool("HIDE_FRIEND_COMPOUNDS") &&
- (QCString(md->typeString())=="friend class" ||
- QCString(md->typeString())=="friend struct" ||
- QCString(md->typeString())=="friend union");
- if (
- md->isLinkableInProject() &&
- (cd=md->getClassDef()) &&
- cd->isLinkableInProject() && cd->templateMaster()==0 &&
- ( filter==CMHL_All && !(md->isFriend() && isFriendToHide) ||
- (filter==CMHL_Functions && (md->isFunction() || md->isSlot() || md->isSignal())) ||
- (filter==CMHL_Variables && md->isVariable()) ||
- (filter==CMHL_Typedefs && md->isTypedef()) ||
- (filter==CMHL_Enums && md->isEnumerate()) ||
- (filter==CMHL_EnumValues && md->isEnumValue()) ||
- (filter==CMHL_Properties && md->isProperty()) ||
- (filter==CMHL_Events && md->isEvent()) ||
- (filter==CMHL_Related && (md->isRelated() || (md->isFriend() && !isFriendToHide)))
- )
- )
- {
- found=TRUE;
- isFunc=!md->isObjCMethod() &&
- (md->isFunction() || md->isSlot() || md->isSignal());
+ MemberDef *md=mn->first();
+ bool found=FALSE;
+ bool isFunc=FALSE;
+ while (md && !found)
+ {
+ ClassDef *cd;
+ bool isFriendToHide = Config_getBool("HIDE_FRIEND_COMPOUNDS") &&
+ (QCString(md->typeString())=="friend class" ||
+ QCString(md->typeString())=="friend struct" ||
+ QCString(md->typeString())=="friend union");
+ if (
+ md->isLinkableInProject() &&
+ (cd=md->getClassDef()) &&
+ cd->isLinkableInProject() && cd->templateMaster()==0 &&
+ ( (filter==CMHL_All && !(md->isFriend() && isFriendToHide)) ||
+ (filter==CMHL_Functions && (md->isFunction() || md->isSlot() || md->isSignal())) ||
+ (filter==CMHL_Variables && md->isVariable()) ||
+ (filter==CMHL_Typedefs && md->isTypedef()) ||
+ (filter==CMHL_Enums && md->isEnumerate()) ||
+ (filter==CMHL_EnumValues && md->isEnumValue()) ||
+ (filter==CMHL_Properties && md->isProperty()) ||
+ (filter==CMHL_Events && md->isEvent()) ||
+ (filter==CMHL_Related && (md->isRelated() || (md->isFriend() && !isFriendToHide)))
+ )
+ )
+ {
+ found=TRUE;
+ isFunc=!md->isObjCMethod() &&
+ (md->isFunction() || md->isSlot() || md->isSignal());
+ }
+ md=mn->next();
}
- md=mn->next();
- }
- if (found)
- {
- if (useSections)
+ if (found)
{
- QCString name = mn->memberName();
- if (tolower(name.at(0))!=lastChar)
+ 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,SectionInfo::Subsection);
+ ol.docify(title);
+ ol.endSection(anchor,SectionInfo::Subsection);
+ ol.startItemList();
+ first=FALSE;
+ }
+ }
+ else if (first)
{
- 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,SectionInfo::Subsection);
- ol.docify(title);
- ol.endSection(anchor,SectionInfo::Subsection);
- ol.startItemList();
first=FALSE;
+ ol.startItemList();
}
- }
- 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->templateMaster()==0
- )
+ ol.writeListItem();
+ ol.docify(mn->memberName());
+ if (isFunc) ol.docify("()");
+ ol.writeString("\n");
+
+ int count=0;
+ md=mn->last();
+ QCString prevName;
+ while (md)
{
- if (count==0)
- ol.docify(": ");
- else
- ol.docify(", ");
- ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),md->anchor(),
- cd->displayName());
- count++;
- prevName=cd->displayName();
+ ClassDef *cd=md->getClassDef();
+ if (
+ md->isLinkableInProject() &&
+ prevName!=cd->displayName() &&
+ cd->templateMaster()==0
+ )
+ {
+ if (count==0)
+ ol.docify(": ");
+ else
+ ol.docify(", ");
+ ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),md->anchor(),
+ cd->displayName());
+ count++;
+ prevName=cd->displayName();
+ }
+ md=mn->prev();
}
- md=mn->prev();
}
}
}
@@ -1657,18 +1664,26 @@ int countClassMembers(int filter)
//----------------------------------------------------------------------------
-void writeQuickMemberIndex(OutputList &ol,bool *charUsed)
+void writeQuickMemberIndex(OutputList &ol,bool *charUsed,int page,
+ QCString fullName,bool multiPage)
{
bool first=TRUE;
int i;
ol.writeString("<div class=\"qindex\">");
for (i=33;i<127;i++)
{
- QCString anchor="#index_";
char is[2];is[0]=(char)i;is[1]='\0';
if (charUsed[i])
{
- startQuickIndexItem(ol,anchor+is,FALSE,TRUE,first);
+ QCString anchor;
+ QCString extension=Doxygen::htmlFileExtension;
+ if (!multiPage)
+ anchor="#index_";
+ else if (first)
+ anchor=fullName+extension+"#index_";
+ else
+ anchor=fullName+QCString().sprintf("_0x%02x",i)+extension+"#index_";
+ startQuickIndexItem(ol,anchor+is,i==page,TRUE,first);
ol.writeString(is);
endQuickIndexItem(ol);
first=FALSE;
@@ -1680,133 +1695,146 @@ void writeQuickMemberIndex(OutputList &ol,bool *charUsed)
//----------------------------------------------------------------------------
-static void writeMemberIndexFiltered(OutputList &ol,
- const char *fileName,ClassMemberHighlight hl,
- const QCString& title)
+static void writeMemberIndexFiltered(OutputList &ol, ClassMemberHighlight hl)
{
if (documentedClassMembers[hl]==0) return;
+
+ bool multiPageIndex=FALSE;
+ int numPages=1;
+ if (documentedClassMembers[hl]>MAX_ITEMS_BEFORE_MULTIPAGE_INDEX)
+ {
+ multiPageIndex=TRUE;
+ numPages=127;
+ }
+
+ struct
+ {
+ const char *fname;
+ QCString title;
+ } cmhlInfo[] =
+ {
+ { "functions", 0 },
+ { "functions_func",0 },
+ { "functions_vars",0 },
+ { "functions_type",0 },
+ { "functions_enum",0 },
+ { "functions_eval",0 },
+ { "functions_rela",0 },
+ { "functions_prop",0 },
+ { "functions_evnt",0 },
+ { "functions_rela",0 },
+ };
+
+ cmhlInfo[0].title=theTranslator->trAll();
+ cmhlInfo[1].title=theTranslator->trFunctions();
+ cmhlInfo[2].title=theTranslator->trVariables();
+ cmhlInfo[3].title=theTranslator->trTypedefs();
+ cmhlInfo[4].title=theTranslator->trEnumerations();
+ cmhlInfo[5].title=theTranslator->trEnumerationValues();
+ cmhlInfo[6].title=theTranslator->trProperties();
+ cmhlInfo[7].title=theTranslator->trEvents();
+ cmhlInfo[8].title=theTranslator->trRelatedFunctions();
+
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,fileName,0,title.data(),HLI_Functions);
- QCString htmlHelpTitle = title;
- QCString ftvHelpTitle = title;
-
- ol.writeString("<div class=\"qindex\">");
+ QCString extension=Doxygen::htmlFileExtension;
+ QCString title = theTranslator->trCompoundMembers();
+ if (hl!=CMHL_All) title+=(QCString)" - "+cmhlInfo[hl].title;
+
+ int page;
bool first=TRUE;
- startQuickIndexItem(ol,
- "functions"+Doxygen::htmlFileExtension,hl==CMHL_All,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trAll()));
- endQuickIndexItem(ol);
-
- if (documentedClassMembers[CMHL_Functions]>0)
- {
- startQuickIndexItem(ol,
- "functions_func"+Doxygen::htmlFileExtension,hl==CMHL_Functions,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trFunctions()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Variables]>0)
- {
- startQuickIndexItem(ol,
- "functions_vars"+Doxygen::htmlFileExtension,hl==CMHL_Variables,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trVariables()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Typedefs]>0)
- {
- startQuickIndexItem(ol,
- "functions_type"+Doxygen::htmlFileExtension,hl==CMHL_Typedefs,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trTypedefs()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Enums]>0)
+ for (page=0;page<numPages;page++)
{
- startQuickIndexItem(ol,
- "functions_enum"+Doxygen::htmlFileExtension,hl==CMHL_Enums,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerations()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_EnumValues]>0)
- {
- startQuickIndexItem(ol,
- "functions_eval"+Doxygen::htmlFileExtension,hl==CMHL_EnumValues,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Properties]>0)
- {
- startQuickIndexItem(ol,
- "functions_prop"+Doxygen::htmlFileExtension,hl==CMHL_Properties,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trProperties()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Events]>0)
- {
- startQuickIndexItem(ol,
- "functions_evnt"+Doxygen::htmlFileExtension,hl==CMHL_Events,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEvents()));
- endQuickIndexItem(ol);
- }
- if (documentedClassMembers[CMHL_Related]>0)
- {
- startQuickIndexItem(ol,
- "functions_rela"+Doxygen::htmlFileExtension,hl==CMHL_Related,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trRelatedFunctions()));
- endQuickIndexItem(ol);
- }
- ol.writeString("</div>\n");
-
- bool quickIndex = documentedClassMembers[hl]>maxItemsBeforeQuickIndex;
- if (quickIndex)
- {
- writeQuickMemberIndex(ol,g_memberIndexLetterUsed[hl]);
- }
- ol.newParagraph();
- if (hl==CMHL_All)
- {
- bool &generateHtml = Config_getBool("GENERATE_HTML") ;
- bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
- bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
- if (hasHtmlHelp)
+ if (!multiPageIndex || g_memberIndexLetterUsed[hl][page])
{
- HtmlHelp *htmlHelp = HtmlHelp::getInstance();
- htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"functions");
- }
- if (hasFtvHelp)
- {
- FTVHelp *ftvHelp = FTVHelp::getInstance();
- ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle);
+ QCString fileName = cmhlInfo[hl].fname;
+ if (multiPageIndex && !first)
+ {
+ fileName+=QCString().sprintf("_0x%02x",page);
+ }
+
+ startFile(ol,fileName+extension,0,title,HLI_Functions);
+
+ ol.writeString("<div class=\"qindex\">");
+
+ // index item for global member list
+ startQuickIndexItem(ol,
+ cmhlInfo[0].fname+Doxygen::htmlFileExtension,hl==CMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(cmhlInfo[0].title));
+ endQuickIndexItem(ol);
+
+ // index items per category member lists
+ int i;
+ for (i=1;i<CMHL_Total;i++)
+ {
+ if (documentedClassMembers[i]>0)
+ {
+ startQuickIndexItem(ol,cmhlInfo[i].fname+Doxygen::htmlFileExtension,hl==i,TRUE,first);
+ ol.writeString(fixSpaces(cmhlInfo[i].title));
+ //printf("multiPageIndex=%d first=%d fileName=%s file=%s title=%s\n",
+ // multiPageIndex,first,fileName.data(),cmhlInfo[i].fname,cmhlInfo[i].title.data());
+ endQuickIndexItem(ol);
+ }
+ }
+
+ ol.writeString("</div>\n");
+
+ // quick alphabetical index
+ bool quickIndex = documentedClassMembers[hl]>maxItemsBeforeQuickIndex;
+ if (quickIndex)
+ {
+ writeQuickMemberIndex(ol,g_memberIndexLetterUsed[hl],page,
+ cmhlInfo[hl].fname,multiPageIndex);
+ }
+ if (hl==CMHL_All)
+ {
+ ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL")));
+ }
+ ol.newParagraph();
+ writeMemberList(ol,quickIndex,hl,page);
+ endFile(ol);
+ first=FALSE;
}
- ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL")));
}
- writeMemberList(ol,quickIndex,hl);
- endFile(ol);
+
ol.popGeneratorState();
}
void writeMemberIndex(OutputList &ol)
{
- QCString ext=Doxygen::htmlFileExtension;
- QCString title = theTranslator->trCompoundMembers();
- writeMemberIndexFiltered(ol,"functions"+ext,CMHL_All,title);
- title += " - ";
- writeMemberIndexFiltered(ol,"functions_func"+ext,CMHL_Functions, title + theTranslator->trFunctions());
- writeMemberIndexFiltered(ol,"functions_vars"+ext,CMHL_Variables, title + theTranslator->trVariables());
- writeMemberIndexFiltered(ol,"functions_type"+ext,CMHL_Typedefs, title + theTranslator->trTypedefs());
- writeMemberIndexFiltered(ol,"functions_enum"+ext,CMHL_Enums, title + theTranslator->trEnumerations());
- writeMemberIndexFiltered(ol,"functions_eval"+ext,CMHL_EnumValues, title + theTranslator->trEnumerationValues());
- writeMemberIndexFiltered(ol,"functions_prop"+ext,CMHL_Properties, title + theTranslator->trProperties());
- writeMemberIndexFiltered(ol,"functions_evnt"+ext,CMHL_Events, title + theTranslator->trEvents());
- writeMemberIndexFiltered(ol,"functions_rela"+ext,CMHL_Related, title + theTranslator->trRelatedFunctions());
+ writeMemberIndexFiltered(ol,CMHL_All);
+ writeMemberIndexFiltered(ol,CMHL_Functions);
+ writeMemberIndexFiltered(ol,CMHL_Variables);
+ writeMemberIndexFiltered(ol,CMHL_Typedefs);
+ writeMemberIndexFiltered(ol,CMHL_Enums);
+ writeMemberIndexFiltered(ol,CMHL_EnumValues);
+ writeMemberIndexFiltered(ol,CMHL_Properties);
+ writeMemberIndexFiltered(ol,CMHL_Events);
+ writeMemberIndexFiltered(ol,CMHL_Related);
+ QCString title = theTranslator->trCompoundMembers();
+ 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,title,"functions");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"functions",0,title);
+ }
}
//----------------------------------------------------------------------------
static void writeFileMemberList(OutputList &ol,
bool useSections,
- FileMemberHighlight filter)
+ FileMemberHighlight filter,
+ char sectionFilter)
{
char lastChar=0;
bool first=TRUE;
@@ -1814,83 +1842,86 @@ static void writeFileMemberList(OutputList &ol,
MemberName *mn=0;
for (mnli.toFirst();(mn=mnli.current());++mnli)
{
- MemberDef *md=mn->first();
- bool found=FALSE;
- while (md && !found)
+ if (sectionFilter==0 || tolower(sectionFilter)==tolower(mn->memberName()[0]))
{
- FileDef *fd=md->getFileDef();
- bool hasDocs = md->getFileDef() &&
- md->getFileDef()->isLinkableInProject();
-
- if (fd && hasDocs &&
- md->isLinkableInProject() &&
- ( filter==FMHL_All ||
- (filter==FMHL_Functions && md->isFunction()) ||
- (filter==FMHL_Variables && md->isVariable()) ||
- (filter==FMHL_Typedefs && md->isTypedef()) ||
- (filter==FMHL_Enums && md->isEnumerate()) ||
- (filter==FMHL_EnumValues && md->isEnumValue()) ||
- (filter==FMHL_Defines && md->isDefine())
- )
- )
+ MemberDef *md=mn->first();
+ bool found=FALSE;
+ while (md && !found)
{
- found=TRUE;
- }
- else
- {
- md=mn->next();
+ FileDef *fd=md->getFileDef();
+ bool hasDocs = md->getFileDef() &&
+ md->getFileDef()->isLinkableInProject();
+
+ if (fd && hasDocs &&
+ md->isLinkableInProject() &&
+ ( filter==FMHL_All ||
+ (filter==FMHL_Functions && md->isFunction()) ||
+ (filter==FMHL_Variables && md->isVariable()) ||
+ (filter==FMHL_Typedefs && md->isTypedef()) ||
+ (filter==FMHL_Enums && md->isEnumerate()) ||
+ (filter==FMHL_EnumValues && md->isEnumValue()) ||
+ (filter==FMHL_Defines && md->isDefine())
+ )
+ )
+ {
+ found=TRUE;
+ }
+ else
+ {
+ md=mn->next();
+ }
}
- }
- if (found) // function is documented
- {
- if (useSections)
+ if (found) // function is documented
{
- QCString name = mn->memberName();
- if (tolower(name.at(0))!=lastChar)
+ 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,SectionInfo::Subsection);
+ ol.docify(title);
+ ol.endSection(anchor,SectionInfo::Subsection);
+ ol.startItemList();
+ first=FALSE;
+ }
+ }
+ else if (first)
{
- 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,SectionInfo::Subsection);
- ol.docify(title);
- ol.endSection(anchor,SectionInfo::Subsection);
- ol.startItemList();
first=FALSE;
+ ol.startItemList();
}
- }
- 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();
- if (fd && fd->isLinkableInProject() &&
- md->isLinkableInProject() &&
- prevName!=fd->name())
+ ol.writeListItem();
+ ol.docify(md->name());
+ if (md->isFunction()) ol.docify("()");
+ ol.writeString("\n");
+
+ int count=0;
+ md=mn->last();
+ QCString prevName;
+ while (md)
{
- if (count==0)
- ol.docify(": ");
- else
- ol.docify(", ");
- QCString baseName=fd->name();
- ol.writeObjectLink(md->getReference(),
- md->getOutputFileBase(),md->anchor(), baseName);
- count++;
- prevName=fd->name();
+ FileDef *fd=md->getFileDef();
+ if (fd && fd->isLinkableInProject() &&
+ md->isLinkableInProject() &&
+ prevName!=fd->name())
+ {
+ if (count==0)
+ ol.docify(": ");
+ else
+ ol.docify(", ");
+ QCString baseName=fd->name();
+ ol.writeObjectLink(md->getReference(),
+ md->getOutputFileBase(),md->anchor(), baseName);
+ count++;
+ prevName=fd->name();
+ }
+ md=mn->prev();
}
- md=mn->prev();
}
}
}
@@ -1900,7 +1931,8 @@ static void writeFileMemberList(OutputList &ol,
//----------------------------------------------------------------------------
void writeNamespaceMemberList(OutputList &ol,bool useSections,
- NamespaceMemberHighlight filter)
+ NamespaceMemberHighlight filter,
+ char sectionFilter)
{
char lastChar=0;
bool first=TRUE;
@@ -1908,77 +1940,80 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections,
MemberName *mn=0;
for (mnli.toFirst();(mn=mnli.current());++mnli)
{
- MemberDef *md=mn->first();
- bool found=FALSE;
- while (md && !found)
+ if (sectionFilter==0 || tolower(sectionFilter)==tolower(mn->memberName()[0]))
{
- NamespaceDef *nd=md->getNamespaceDef();
- if (nd && nd->isLinkableInProject() && md->isLinkableInProject() &&
- ( filter==NMHL_All ||
- (filter==NMHL_Functions && md->isFunction()) ||
- (filter==NMHL_Variables && md->isVariable()) ||
- (filter==NMHL_Typedefs && md->isTypedef()) ||
- (filter==NMHL_Enums && md->isEnumerate()) ||
- (filter==NMHL_EnumValues && md->isEnumValue())
- )
- )
- {
- found=TRUE;
- }
- else
+ MemberDef *md=mn->first();
+ bool found=FALSE;
+ while (md && !found)
{
- md=mn->next();
+ NamespaceDef *nd=md->getNamespaceDef();
+ if (nd && nd->isLinkableInProject() && md->isLinkableInProject() &&
+ ( filter==NMHL_All ||
+ (filter==NMHL_Functions && md->isFunction()) ||
+ (filter==NMHL_Variables && md->isVariable()) ||
+ (filter==NMHL_Typedefs && md->isTypedef()) ||
+ (filter==NMHL_Enums && md->isEnumerate()) ||
+ (filter==NMHL_EnumValues && md->isEnumValue())
+ )
+ )
+ {
+ found=TRUE;
+ }
+ else
+ {
+ md=mn->next();
+ }
}
- }
- if (found) // member is documented and in a documented namespace
- {
- if (useSections)
+ if (found) // member is documented and in a documented namespace
{
- QCString name = mn->memberName();
- if (tolower(name.at(0))!=lastChar)
+ 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,SectionInfo::Subsection);
+ ol.docify(title);
+ ol.endSection(anchor,SectionInfo::Subsection);
+ ol.startItemList();
+ first=FALSE;
+ }
+ }
+ else if (first)
{
- 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,SectionInfo::Subsection);
- ol.docify(title);
- ol.endSection(anchor,SectionInfo::Subsection);
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()
- )
+ ol.writeListItem();
+ ol.docify(md->name());
+ if (md->isFunction()) ol.docify("()");
+ ol.writeString("\n");
+
+ int count=0;
+ md=mn->last();
+ QCString prevName;
+ while (md)
{
- if (count==0)
- ol.docify(": ");
- else
- ol.docify(", ");
- ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),
- md->anchor(),nd->name());
- count++;
- prevName=nd->name();
+ NamespaceDef *nd=md->getNamespaceDef();
+ if (nd && nd->isLinkableInProject() && md->isLinkableInProject() &&
+ prevName!=nd->name()
+ )
+ {
+ if (count==0)
+ ol.docify(": ");
+ else
+ ol.docify(", ");
+ ol.writeObjectLink(md->getReference(),md->getOutputFileBase(),
+ md->anchor(),nd->name());
+ count++;
+ prevName=nd->name();
+ }
+ md=mn->prev();
}
- md=mn->prev();
}
}
}
@@ -2067,215 +2102,248 @@ int countFileMembers(int filter)
//----------------------------------------------------------------------------
-static void writeFileMemberIndexFiltered(OutputList &ol,
- const char *fileName,FileMemberHighlight hl,
- const QCString& title)
+static void writeFileMemberIndexFiltered(OutputList &ol, FileMemberHighlight hl)
{
if (documentedFileMembers[hl]==0) return;
- ol.pushGeneratorState();
- ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,fileName,0,title.data(),HLI_Globals);
- QCString htmlHelpTitle = title;
- QCString ftvHelpTitle = title;
- ol.writeString("<div class=\"qindex\">");
-
- bool first=TRUE;
- startQuickIndexItem(ol,
- "globals"+Doxygen::htmlFileExtension,hl==FMHL_All,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trAll()));
- endQuickIndexItem(ol);
-
- if (documentedFileMembers[FMHL_Functions]>0)
- {
- startQuickIndexItem(ol,
- "globals_func"+Doxygen::htmlFileExtension,hl==FMHL_Functions,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trFunctions()));
- endQuickIndexItem(ol);
- }
- if (documentedFileMembers[FMHL_Variables]>0)
- {
- startQuickIndexItem(ol,
- "globals_vars"+Doxygen::htmlFileExtension,hl==FMHL_Variables,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trVariables()));
- endQuickIndexItem(ol);
- }
- if (documentedFileMembers[FMHL_Typedefs]>0)
- {
- startQuickIndexItem(ol,
- "globals_type"+Doxygen::htmlFileExtension,hl==FMHL_Typedefs,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trTypedefs()));
- endQuickIndexItem(ol);
- }
- if (documentedFileMembers[FMHL_Enums]>0)
+ bool multiPageIndex=FALSE;
+ int numPages=1;
+ if (documentedFileMembers[hl]>MAX_ITEMS_BEFORE_MULTIPAGE_INDEX)
{
- startQuickIndexItem(ol,
- "globals_enum"+Doxygen::htmlFileExtension,hl==FMHL_Enums,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerations()));
- endQuickIndexItem(ol);
+ multiPageIndex=TRUE;
+ numPages=127;
}
- if (documentedFileMembers[FMHL_EnumValues]>0)
+
+ struct
{
- startQuickIndexItem(ol,
- "globals_eval"+Doxygen::htmlFileExtension,hl==FMHL_EnumValues,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
- endQuickIndexItem(ol);
- }
- if (documentedFileMembers[FMHL_Defines]>0)
+ const char *fname;
+ QCString title;
+ } fmhlInfo[] =
{
- startQuickIndexItem(ol,
- "globals_defs"+Doxygen::htmlFileExtension,hl==FMHL_Defines,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trDefines()));
- endQuickIndexItem(ol);
- }
- ol.writeString("</div>\n");
-
+ { "globals", 0 },
+ { "globals_func",0 },
+ { "globals_vars",0 },
+ { "globals_type",0 },
+ { "globals_enum",0 },
+ { "globals_eval",0 },
+ { "globals_defs",0 }
+ };
+ fmhlInfo[0].title=theTranslator->trAll();
+ fmhlInfo[1].title=theTranslator->trFunctions();
+ fmhlInfo[2].title=theTranslator->trVariables();
+ fmhlInfo[3].title=theTranslator->trTypedefs();
+ fmhlInfo[4].title=theTranslator->trEnumerations();
+ fmhlInfo[5].title=theTranslator->trEnumerationValues();
+ fmhlInfo[6].title=theTranslator->trDefines();
- bool quickIndex = documentedFileMembers[hl]>maxItemsBeforeQuickIndex;
- if (quickIndex)
- {
- writeQuickMemberIndex(ol,g_fileIndexLetterUsed[hl]);
- }
- ol.newParagraph();
- if (hl==FMHL_All)
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+
+ QCString extension=Doxygen::htmlFileExtension;
+ QCString title = theTranslator->trCompoundMembers();
+
+ int page;
+ bool first=TRUE;
+ for (page=0;page<numPages;page++)
{
- bool &generateHtml = Config_getBool("GENERATE_HTML") ;
- bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
- bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
- if (hasHtmlHelp)
+ if (!multiPageIndex || g_fileIndexLetterUsed[hl][page])
{
- HtmlHelp *htmlHelp = HtmlHelp::getInstance();
- htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"globals");
- }
- if (hasFtvHelp)
- {
- FTVHelp *ftvHelp = FTVHelp::getInstance();
- ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle);
+ QCString fileName = fmhlInfo[hl].fname;
+ if (multiPageIndex && !first)
+ {
+ fileName+=QCString().sprintf("_0x%02x",page);
+ }
+
+ startFile(ol,fileName+extension,0,title.data(),HLI_Globals);
+
+ ol.writeString("<div class=\"qindex\">");
+
+ // index item for all member lists
+ startQuickIndexItem(ol,
+ fmhlInfo[0].fname+Doxygen::htmlFileExtension,hl==FMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(fmhlInfo[0].title));
+ endQuickIndexItem(ol);
+
+ int i;
+ // index items for per category member lists
+ for (i=1;i<FMHL_Total;i++)
+ {
+ if (documentedFileMembers[i]>0)
+ {
+ startQuickIndexItem(ol,
+ fmhlInfo[i].fname+Doxygen::htmlFileExtension,hl==i,TRUE,first);
+ ol.writeString(fixSpaces(fmhlInfo[i].title));
+ endQuickIndexItem(ol);
+ }
+ }
+
+ ol.writeString("</div>\n");
+
+ bool quickIndex = documentedFileMembers[hl]>maxItemsBeforeQuickIndex;
+ if (quickIndex)
+ {
+ writeQuickMemberIndex(ol,g_fileIndexLetterUsed[hl],page,
+ fmhlInfo[hl].fname,multiPageIndex);
+ }
+
+ if (hl==FMHL_All)
+ {
+ ol.parseText(theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL")));
+ }
+ ol.newParagraph();
+ writeFileMemberList(ol,quickIndex,hl,page);
+ endFile(ol);
+ first=FALSE;
}
- ol.parseText(theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL")));
}
- writeFileMemberList(ol,quickIndex,hl);
- endFile(ol);
ol.popGeneratorState();
}
void writeFileMemberIndex(OutputList &ol)
{
- QCString ext=Doxygen::htmlFileExtension;
+ writeFileMemberIndexFiltered(ol,FMHL_All);
+ writeFileMemberIndexFiltered(ol,FMHL_Functions);
+ writeFileMemberIndexFiltered(ol,FMHL_Variables);
+ writeFileMemberIndexFiltered(ol,FMHL_Typedefs);
+ writeFileMemberIndexFiltered(ol,FMHL_Enums);
+ writeFileMemberIndexFiltered(ol,FMHL_EnumValues);
+ writeFileMemberIndexFiltered(ol,FMHL_Defines);
+
QCString title = theTranslator->trFileMembers();
- writeFileMemberIndexFiltered(ol,"globals"+ext,FMHL_All, title);
- title += " - ";
- writeFileMemberIndexFiltered(ol,"globals_func"+ext,FMHL_Functions, title + theTranslator->trFunctions());
- writeFileMemberIndexFiltered(ol,"globals_vars"+ext,FMHL_Variables, title + theTranslator->trVariables());
- writeFileMemberIndexFiltered(ol,"globals_type"+ext,FMHL_Typedefs, title + theTranslator->trTypedefs());
- writeFileMemberIndexFiltered(ol,"globals_enum"+ext,FMHL_Enums, title + theTranslator->trEnumerations());
- writeFileMemberIndexFiltered(ol,"globals_eval"+ext,FMHL_EnumValues, title + theTranslator->trEnumerationValues());
- writeFileMemberIndexFiltered(ol,"globals_defs"+ext,FMHL_Defines, title + theTranslator->trDefines());
+ 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,title,"globals");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"globals",0,title);
+ }
}
//----------------------------------------------------------------------------
static void writeNamespaceMemberIndexFiltered(OutputList &ol,
- const char *fileName,
- NamespaceMemberHighlight hl,
- const QCString& title)
+ NamespaceMemberHighlight hl)
{
if (documentedNamespaceMembers[hl]==0) return;
- ol.pushGeneratorState();
- ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,fileName,0,title.data(),HLI_NamespaceMembers);
- QCString htmlHelpTitle = title;
- QCString ftvHelpTitle = title;
- //if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
- //startTitle(ol,0);
- //ol.parseText(title);
- //endTitle(ol,0,0);
-
- ol.writeString("<div class=\"qindex\">");
- bool first=TRUE;
- startQuickIndexItem(ol,
- "namespacemembers"+Doxygen::htmlFileExtension,hl==NMHL_All,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trAll()));
- endQuickIndexItem(ol);
-
- if (documentedNamespaceMembers[NMHL_Functions]>0)
- {
- startQuickIndexItem(ol,
- "namespacemembers_func"+Doxygen::htmlFileExtension,hl==NMHL_Functions,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trFunctions()));
- endQuickIndexItem(ol);
- }
- if (documentedNamespaceMembers[NMHL_Variables]>0)
- {
- startQuickIndexItem(ol,
- "namespacemembers_vars"+Doxygen::htmlFileExtension,hl==NMHL_Variables,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trVariables()));
- endQuickIndexItem(ol);
- }
- if (documentedNamespaceMembers[NMHL_Typedefs]>0)
+ bool multiPageIndex=FALSE;
+ int numPages=1;
+ if (documentedNamespaceMembers[hl]>MAX_ITEMS_BEFORE_MULTIPAGE_INDEX)
{
- startQuickIndexItem(ol,
- "namespacemembers_type"+Doxygen::htmlFileExtension,hl==NMHL_Typedefs,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trTypedefs()));
- endQuickIndexItem(ol);
+ multiPageIndex=TRUE;
+ numPages=127;
}
- if (documentedNamespaceMembers[NMHL_Enums]>0)
+
+ struct
{
- startQuickIndexItem(ol,
- "namespacemembers_enum"+Doxygen::htmlFileExtension,hl==NMHL_Enums,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerations()));
- endQuickIndexItem(ol);
- }
- if (documentedNamespaceMembers[NMHL_EnumValues]>0)
+ const char *fname;
+ QCString title;
+ } nmhlInfo[] =
{
- startQuickIndexItem(ol,
- "namespacemembers_eval"+Doxygen::htmlFileExtension,hl==NMHL_EnumValues,TRUE,first);
- ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
- endQuickIndexItem(ol);
- }
- ol.writeString("</div>\n");
-
- bool quickIndex = documentedNamespaceMembers[hl]>maxItemsBeforeQuickIndex;
- if (quickIndex)
- {
- writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed[hl]);
- }
- ol.newParagraph();
- if (hl==NMHL_All)
+ { "namespacemembers", 0 },
+ { "namespacemembers_func",0 },
+ { "namespacemembers_vars",0 },
+ { "namespacemembers_type",0 },
+ { "namespacemembers_enum",0 },
+ { "namespacemembers_eval",0 }
+ };
+ nmhlInfo[0].title=theTranslator->trAll();
+ nmhlInfo[1].title=theTranslator->trFunctions();
+ nmhlInfo[2].title=theTranslator->trVariables();
+ nmhlInfo[3].title=theTranslator->trTypedefs();
+ nmhlInfo[4].title=theTranslator->trEnumerations();
+ nmhlInfo[5].title=theTranslator->trEnumerationValues();
+
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+
+ QCString extension=Doxygen::htmlFileExtension;
+ QCString title = theTranslator->trCompoundMembers();
+
+ int page;
+ bool first=TRUE;
+ for (page=0;page<numPages;page++)
{
- 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)
+ if (!multiPageIndex || g_namespaceIndexLetterUsed[hl][page])
{
- FTVHelp *ftvHelp = FTVHelp::getInstance();
- ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle);
+ QCString fileName = nmhlInfo[hl].fname;
+ if (multiPageIndex && !first)
+ {
+ fileName+=QCString().sprintf("_0x%02x",page);
+ }
+
+ startFile(ol,fileName+extension,0,title,HLI_NamespaceMembers);
+
+ ol.writeString("<div class=\"qindex\">");
+
+ startQuickIndexItem(ol,
+ nmhlInfo[0].fname+Doxygen::htmlFileExtension,hl==NMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(nmhlInfo[0].title));
+ endQuickIndexItem(ol);
+
+ int i;
+ for (i=1;i<NMHL_Total;i++)
+ {
+ if (documentedNamespaceMembers[i]>0)
+ {
+ startQuickIndexItem(ol,
+ nmhlInfo[i].fname+Doxygen::htmlFileExtension,hl==i,TRUE,first);
+ ol.writeString(fixSpaces(nmhlInfo[i].title));
+ endQuickIndexItem(ol);
+ }
+ }
+
+ ol.writeString("</div>\n");
+
+ bool quickIndex = documentedNamespaceMembers[hl]>maxItemsBeforeQuickIndex;
+ if (quickIndex)
+ {
+ writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed[hl],page,
+ nmhlInfo[hl].fname,multiPageIndex);
+ }
+ if (hl==NMHL_All)
+ {
+ ol.parseText(theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL")));
+ }
+ ol.newParagraph();
+
+ writeNamespaceMemberList(ol,quickIndex,hl,page);
+ endFile(ol);
}
- ol.parseText(theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL")));
}
- writeNamespaceMemberList(ol,quickIndex,hl);
- endFile(ol);
ol.popGeneratorState();
}
void writeNamespaceMemberIndex(OutputList &ol)
{
- QCString ext=Doxygen::htmlFileExtension;
+ writeNamespaceMemberIndexFiltered(ol,NMHL_All);
+ writeNamespaceMemberIndexFiltered(ol,NMHL_Functions);
+ writeNamespaceMemberIndexFiltered(ol,NMHL_Variables);
+ writeNamespaceMemberIndexFiltered(ol,NMHL_Typedefs);
+ writeNamespaceMemberIndexFiltered(ol,NMHL_Enums);
+ writeNamespaceMemberIndexFiltered(ol,NMHL_EnumValues);
+
QCString title = theTranslator->trNamespaceMembers();
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers"+ext,NMHL_All, title);
- title += " - ";
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers_func"+ext,NMHL_Functions, title + theTranslator->trFunctions());
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers_vars"+ext,NMHL_Variables, title + theTranslator->trVariables());
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers_type"+ext,NMHL_Typedefs, title + theTranslator->trTypedefs());
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers_enum"+ext,NMHL_Enums, title + theTranslator->trEnumerations());
- writeNamespaceMemberIndexFiltered(ol,"namespacemembers_eval"+ext,NMHL_EnumValues, title + theTranslator->trEnumerationValues());
+ 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,title,"namespacemembers");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp *ftvHelp = FTVHelp::getInstance();
+ ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,title);
+ }
}
//----------------------------------------------------------------------------