summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2003-06-09 19:58:49 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2003-06-09 19:58:49 (GMT)
commitdae59054d3387840f0f4b4bf8f237fee0591a5b1 (patch)
treebc980e351fc747c41720cca5f31affe4f27c3a31
parent0c394c5817041713aee58748fcd5d338a467cbee (diff)
downloadDoxygen-dae59054d3387840f0f4b4bf8f237fee0591a5b1.zip
Doxygen-dae59054d3387840f0f4b4bf8f237fee0591a5b1.tar.gz
Doxygen-dae59054d3387840f0f4b4bf8f237fee0591a5b1.tar.bz2
Release-1.3.1-20030609
-rw-r--r--INSTALL4
-rw-r--r--README4
-rw-r--r--VERSION2
-rw-r--r--doc/commands.doc3
-rw-r--r--doc/features.doc2
-rw-r--r--doc/index.doc2
-rw-r--r--doc/language.doc2
-rw-r--r--packages/rpm/doxygen.spec2
-rw-r--r--src/definition.cpp8
-rw-r--r--src/htmlgen.cpp22
-rw-r--r--src/index.cpp738
-rw-r--r--src/index.h27
-rw-r--r--src/memberdef.cpp2
-rw-r--r--src/scanner.l9
-rw-r--r--src/translator.h7
-rw-r--r--src/translator_adapter.h15
-rw-r--r--src/translator_br.h2
-rw-r--r--src/translator_cz.h2
-rw-r--r--src/translator_de.h2
-rw-r--r--src/translator_en.h17
-rw-r--r--src/translator_fr.h2
-rw-r--r--src/translator_hr.h2
-rw-r--r--src/translator_it.h2
-rw-r--r--src/translator_nl.h17
24 files changed, 659 insertions, 236 deletions
diff --git a/INSTALL b/INSTALL
index dfd713a..c36d7f4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.3.1-20030607
+DOXYGEN Version 1.3.1-20030609
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (07 June 2003)
+Dimitri van Heesch (09 June 2003)
diff --git a/README b/README
index 44cbc5e..02b4378 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.3.1_20030607
+DOXYGEN Version 1.3.1_20030609
Please read INSTALL for compilation instructions.
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
-Dimitri van Heesch (dimitri@stack.nl) (07 June 2003)
+Dimitri van Heesch (dimitri@stack.nl) (09 June 2003)
diff --git a/VERSION b/VERSION
index 0843be3..8d76dc2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.1-20030607
+1.3.1-20030609
diff --git a/doc/commands.doc b/doc/commands.doc
index d7ba4f3..950d4e5 100644
--- a/doc/commands.doc
+++ b/doc/commands.doc
@@ -406,7 +406,8 @@ doxygen. Unrecognized commands are treated as normal text.
the first chapter (in \f$\mbox{\LaTeX}\f$).
The title argument is optional and replaces the default title that
- doxygen normally generates.
+ doxygen normally generates. If you do not want any title you can
+ specify \c notitle as the argument of \\mainpage.
Here is an example:
\verbatim
diff --git a/doc/features.doc b/doc/features.doc
index fd5ff70..eaeefbf 100644
--- a/doc/features.doc
+++ b/doc/features.doc
@@ -21,7 +21,7 @@
<li>Requires very little overhead from the writer of the documentation.
Plain text will do, but for more fancy or structured output HTML tags
and/or some of doxygen's special commands can be used.
-<li>Supports C/C++, Java, (Corba, Microsoft, and KDE-DCOP) Java,
+<li>Supports C/C++, Java, (Corba and Microsoft) Java,
IDL, and to some extent C# and PHP sources.
<li>Supports documentation of files, namespaces, classes, structs, unions,
templates, variables, functions, typedefs, enums and defines.
diff --git a/doc/index.doc b/doc/index.doc
index df3455e..9aeba8b 100644
--- a/doc/index.doc
+++ b/doc/index.doc
@@ -27,7 +27,7 @@ Version: $(VERSION)
<h2>Introduction</h2>
Doxygen is a documentation system for C++, C, Java, IDL
-(Corba, Microsoft, and KDE-DCOP flavors) and to some extent PHP and C#.
+(Corba and Microsoft flavors) and to some extent PHP and C#.
It can help you in three ways:
<ol>
diff --git a/doc/language.doc b/doc/language.doc
index 5525e56..bb6cc00 100644
--- a/doc/language.doc
+++ b/doc/language.doc
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
-Currently (version 1.3.1), 28 languages
+Currently (version 1.3-20030430), 28 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec
index ca0232c..471f071 100644
--- a/packages/rpm/doxygen.spec
+++ b/packages/rpm/doxygen.spec
@@ -1,6 +1,6 @@
Summary: A documentation system for C/C++.
Name: doxygen
-Version: 1.3.1_20030607
+Version: 1.3.1_20030609
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
diff --git a/src/definition.cpp b/src/definition.cpp
index ad50412..5692f88 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -126,7 +126,7 @@ void Definition::writeDocAnchorsToTagFile()
void Definition::setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace)
{
if (d==0) return;
- //printf("Definition::setDocumentation(%s,%s,%d)\n",d,docFile,docLine);
+ //printf("Definition::setDocumentation(%s,%s,%d,%d)\n",d,docFile,docLine,stripWhiteSpace);
if (stripWhiteSpace)
{
// strip leading empty lines in front of the text, but not the
@@ -141,6 +141,7 @@ void Definition::setDocumentation(const char *d,const char *docFile,int docLine,
p++;
s++;
}
+ if (c=='\0') return;
m_doc=d+so;
// zero any trailing whitespace
int e=m_doc.length()-1;
@@ -150,8 +151,11 @@ void Definition::setDocumentation(const char *d,const char *docFile,int docLine,
e--;
}
}
- else
+ else // don't strip whitespace
+ {
m_doc=d;
+ }
+ //printf("setting docs for %s: `%s'\n",name().data(),m_doc.data());
m_docFile = docFile;
m_docLine = docLine;
}
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index 3d6b79a..1471638 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -47,8 +47,26 @@ static const char *defaultStyleSheet =
" font-family: Geneva, Arial, Helvetica, sans-serif;\n"
"}\n"
"CAPTION { font-weight: bold }\n"
-"A.qindex {}\n"
-"A.qindexRef {}\n"
+"DIV.qindex { width: 100%;\n"
+" background-color: #ddddee;\n"
+" border: 4px solid #ddddee;\n"
+" text-align: center;\n"
+" margin-bottom: 2px\n"
+"}\n"
+"A.qindex { text-decoration: none; font-weight: bold; }\n"
+"A.qindex:hover { text-decoration: none; background-color: #ccccee }\n"
+"A.qindexHL { text-decoration: none; font-weight: bold;\n"
+" background-color: #6666cc;\n"
+" color: #ffffff\n"
+" }\n"
+"A.qindexHL:hover { text-decoration: none; background-color: #6666cc }\n"
+"A.qindexRef { text-decoration: none; font-weight: bold; }\n"
+"A.qindexRef:hover { text-decoration: none; background-color: #ccccee }\n"
+"A.qindexRefHL { text-decoration: none; font-weight: bold;\n"
+" background-color: #6666cc;\n"
+" color: #ffffff\n"
+" }\n"
+"A.qindexRefHL:hover { text-decoration: none; background-color: #6666cc }\n"
"A.el { text-decoration: none; font-weight: bold }\n"
"A.elRef { font-weight: bold }\n"
"A.code { text-decoration: none; font-weight: normal; color: #4444ee }\n"
diff --git a/src/index.cpp b/src/index.cpp
index 8e369f7..af8f119 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -35,46 +35,88 @@
#include "ftvhelp.h"
#include "dot.h"
#include "pagedef.h"
-//#include "packagedef.h"
-int annotatedClasses;
-int hierarchyClasses;
-int documentedFunctions;
-int documentedMembers;
+enum ClassMemberHighlight
+{
+ CMHL_All = 0,
+ CMHL_Functions,
+ CMHL_Variables,
+ CMHL_Typedefs,
+ CMHL_Enums,
+ CMHL_EnumValues,
+ CMHL_Related,
+ CMHL_Properties,
+ CMHL_Events,
+ CMHL_Total = CMHL_Events+1
+};
+
+enum FileMemberHighlight
+{
+ FMHL_All = 0,
+ FMHL_Functions,
+ FMHL_Variables,
+ FMHL_Typedefs,
+ FMHL_Enums,
+ FMHL_EnumValues,
+ FMHL_Defines,
+ FMHL_Total = FMHL_Defines+1
+};
+
+enum NamespaceMemberHighlight
+{
+ NMHL_All = 0,
+ NMHL_Functions,
+ NMHL_Variables,
+ NMHL_Typedefs,
+ NMHL_Enums,
+ NMHL_EnumValues,
+ NMHL_Total = FMHL_EnumValues+1
+};
+
+static int annotatedClasses;
+static int hierarchyClasses;
+static int documentedFiles;
+static int documentedGroups;
+static int documentedNamespaces;
+static int indexedPages;
+static int documentedClassMembers[CMHL_Total];
+static int documentedFileMembers[FMHL_Total];
+static int documentedNamespaceMembers[NMHL_Total];
int documentedHtmlFiles;
-int documentedFiles;
-int documentedGroups;
-int documentedNamespaces;
-int documentedNamespaceMembers;
-int documentedIncludeFiles;
int documentedPages;
-int indexedPages;
-//int documentedPackages;
int countClassHierarchy();
-int countClassMembers();
-int countFileMembers();
+int countClassMembers(int filter=CMHL_All);
+int countFileMembers(int filter=FMHL_All);
void countFiles(int &htmlFiles,int &files);
int countGroups();
int countNamespaces();
int countAnnotatedClasses();
-int countNamespaceMembers();
+int countNamespaceMembers(int filter=NMHL_All);
int countIncludeFiles();
void countRelatedPages(int &docPages,int &indexPages);
-//int countPackages();
void countDataStructures()
{
annotatedClasses = countAnnotatedClasses();
hierarchyClasses = countClassHierarchy();
- documentedMembers = countClassMembers();
- documentedFunctions = countFileMembers();
countFiles(documentedHtmlFiles,documentedFiles);
countRelatedPages(documentedPages,indexedPages);
documentedGroups = countGroups();
documentedNamespaces = countNamespaces();
- documentedNamespaceMembers = countNamespaceMembers();
- //documentedPackages = countPackages();
+ int i;
+ for (i=0;i<(int)CMHL_Total;i++)
+ {
+ documentedClassMembers[i] = countClassMembers(i);
+ }
+ for (i=0;i<(int)FMHL_Total;i++)
+ {
+ documentedFileMembers[i] = countFileMembers(i);
+ }
+ for (i=0;i<(int)NMHL_Total;i++)
+ {
+ documentedNamespaceMembers[i] = countNamespaceMembers(i);
+ }
}
static void startIndexHierarchy(OutputList &ol,int level)
@@ -107,11 +149,11 @@ static void endIndexHierarchy(OutputList &ol,int level)
//----------------------------------------------------------------------------
-static bool g_memberIndexLetterUsed[256];
-static bool g_fileIndexLetterUsed[256];
-static bool g_namespaceIndexLetterUsed[256];
+static bool g_memberIndexLetterUsed[CMHL_Total][256];
+static bool g_fileIndexLetterUsed[FMHL_Total][256];
+static bool g_namespaceIndexLetterUsed[NMHL_Total][256];
-const int maxItemsBeforeQuickIndex = 50;
+const int maxItemsBeforeQuickIndex = 30;
//----------------------------------------------------------------------------
@@ -169,142 +211,195 @@ QCString abbreviate(const char *s,const char *name)
//----------------------------------------------------------------------------
-void writeQuickLinks(OutputList &ol,bool compact ,bool ext=FALSE)
+static void startQuickIndexItem(OutputList &ol,const char *s,const char *l,
+ bool hl,bool compact,bool &first)
{
+ if (!first) ol.writeString(" | ");
+ first=FALSE;
+ if (!compact) ol.writeString("<li>");
+ QCString *dest;
+ if (s) // external link
+ {
+ if (hl && compact)
+ {
+ ol.writeString("<a class=\"qindexRefHL\" doxygen=\"");
+ }
+ else
+ {
+ ol.writeString("<a class=\"qindexRef\" doxygen=\"");
+ }
+ ol.writeString(s);
+ ol.writeString(":");
+ if ((dest=Doxygen::tagDestinationDict[s])) ol.writeString(*dest);
+ if (strcmp(s,"_cgi")!=0) ol.writeString("/"); // small hack to get the cgi binary link right
+ ol.writeString("\" ");
+ }
+ else // local link
+ {
+ if (hl && compact)
+ {
+ ol.writeString("<a class=\"qindexHL\" ");
+ }
+ else
+ {
+ ol.writeString("<a class=\"qindex\" ");
+ }
+ }
+ ol.writeString("href=\"");
+ if (s) // external link
+ {
+ if ((dest=Doxygen::tagDestinationDict[s])) ol.writeString(*dest);
+ if (strcmp(s,"_cgi")!=0) ol.writeString("/");
+ }
+ ol.writeString(l);
+ ol.writeString("\">");
+}
+
+static void endQuickIndexItem(OutputList &ol)
+{
+ ol.writeString("</a>");
+}
+
+static QCString fixSpaces(const QCString &s)
+{
+ return substitute(s," ","&nbsp;");
+}
+
+void writeQuickLinks(OutputList &ol,bool compact,HighlightedItem hli,bool ext=FALSE)
+{
+ bool first=TRUE;
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
QCString extLink;
if (ext) { extLink="_doc"; }
- if (compact) ol.startCenter(); else ol.startItemList();
+ if (compact)
+ {
+ ol.writeString("<div class=\"qindex\">");
+ }
+ else
+ {
+ ol.startItemList();
+ }
if (!compact) ol.writeListItem();
if (Config_getBool("GENERATE_TREEVIEW"))
{
- ol.startQuickIndexItem(extLink,"main"+Doxygen::htmlFileExtension);
+ startQuickIndexItem(ol,extLink,"main"+Doxygen::htmlFileExtension,
+ hli==HLI_Main,compact,first);
}
else
{
- ol.startQuickIndexItem(extLink,"index"+Doxygen::htmlFileExtension);
+ startQuickIndexItem(ol,extLink,"index"+Doxygen::htmlFileExtension,
+ hli==HLI_Main,compact,first);
}
- ol.parseText(theTranslator->trMainPage());
- ol.endQuickIndexItem();
+ ol.parseText(fixSpaces(theTranslator->trMainPage()));
+ endQuickIndexItem(ol);
- //if (documentedPackages>0)
- //{
- // if (!compact) ol.writeListItem();
- // ol.startQuickIndexItem(extLink,"packages"+Doxygen::htmlFileExtension);
- // parseText(ol,theTranslator->trPackages());
- // ol.endQuickIndexItem();
- //}
if (documentedGroups>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"modules"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trModules());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"modules"+Doxygen::htmlFileExtension,
+ hli==HLI_Modules,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trModules()));
+ endQuickIndexItem(ol);
}
if (documentedNamespaces>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"namespaces"+Doxygen::htmlFileExtension);
+ startQuickIndexItem(ol,extLink,"namespaces"+Doxygen::htmlFileExtension,
+ hli==HLI_Namespaces,compact,first);
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA"))
{
- ol.parseText(theTranslator->trPackages());
+ ol.parseText(fixSpaces(theTranslator->trPackages()));
}
else
{
ol.parseText(theTranslator->trNamespaceList());
}
- ol.endQuickIndexItem();
+ endQuickIndexItem(ol);
}
if (hierarchyClasses>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"hierarchy"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trClassHierarchy());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"hierarchy"+Doxygen::htmlFileExtension,
+ hli==HLI_Hierarchy,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trClassHierarchy()));
+ endQuickIndexItem(ol);
}
if (annotatedClasses>0)
{
if (Config_getBool("ALPHABETICAL_INDEX"))
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"classes"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trAlphabeticalList());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"classes"+Doxygen::htmlFileExtension,
+ hli==HLI_Classes,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trAlphabeticalList()));
+ endQuickIndexItem(ol);
}
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"annotated"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trCompoundList());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"annotated"+Doxygen::htmlFileExtension,
+ hli==HLI_Annotated,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trCompoundList()));
+ endQuickIndexItem(ol);
}
if (documentedHtmlFiles>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"files"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trFileList());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"files"+Doxygen::htmlFileExtension,
+ hli==HLI_Files,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trFileList()));
+ endQuickIndexItem(ol);
}
- //if (documentedIncludeFiles>0 && Config_getBool("VERBATIM_HEADERS"))
- //{
- // if (!compact) ol.writeListItem();
- // ol.startQuickIndexItem(extLink,"headers"+Doxygen::htmlFileExtension);
- // parseText(ol,theTranslator->trHeaderFiles());
- // ol.endQuickIndexItem();
- //}
- //if (Config_getBool("SOURCE_BROWSER"))
- //{
- // if (!compact) ol.writeListItem();
- // ol.startQuickIndexItem(extLink,"sources"+Doxygen::htmlFileExtension);
- // parseText(ol,theTranslator->trSources());
- // ol.endQuickIndexItem();
- //}
- if (documentedNamespaceMembers>0)
+ if (documentedNamespaceMembers[NMHL_All]>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"namespacemembers"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trNamespaceMembers());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"namespacemembers"+Doxygen::htmlFileExtension,
+ hli==HLI_NamespaceMembers,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trNamespaceMembers()));
+ endQuickIndexItem(ol);
}
- if (documentedMembers>0)
+ if (documentedClassMembers>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"functions"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trCompoundMembers());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"functions"+Doxygen::htmlFileExtension,
+ hli==HLI_Functions,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trCompoundMembers()));
+ endQuickIndexItem(ol);
}
- if (documentedFunctions>0)
+ if (documentedFileMembers[FMHL_All]>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"globals"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trFileMembers());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"globals"+Doxygen::htmlFileExtension,
+ hli==HLI_Globals,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trFileMembers()));
+ endQuickIndexItem(ol);
}
if (indexedPages>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"pages"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trRelatedPages());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"pages"+Doxygen::htmlFileExtension,
+ hli==HLI_Pages,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trRelatedPages()));
+ endQuickIndexItem(ol);
}
if (Doxygen::exampleSDict->count()>0)
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem(extLink,"examples"+Doxygen::htmlFileExtension);
- ol.parseText(theTranslator->trExamples());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,extLink,"examples"+Doxygen::htmlFileExtension,
+ hli==HLI_Examples,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trExamples()));
+ endQuickIndexItem(ol);
}
if (Config_getBool("SEARCHENGINE"))
{
if (!compact) ol.writeListItem();
- ol.startQuickIndexItem("_cgi","");
- ol.parseText(theTranslator->trSearch());
- ol.endQuickIndexItem();
+ startQuickIndexItem(ol,"_cgi","",hli==HLI_Search,compact,first);
+ ol.parseText(fixSpaces(theTranslator->trSearch()));
+ endQuickIndexItem(ol);
}
if (compact)
{
- ol.endCenter();
- ol.writeRuler();
+ ol.writeString("</div>\n");
}
else
{
@@ -327,10 +422,10 @@ void endTitle(OutputList &ol,const char *fileName,const char *name)
}
void startFile(OutputList &ol,const char *name,const char *manName,
- const char *title,bool external)
+ const char *title,bool external,HighlightedItem hli)
{
ol.startFile(name,manName,title,external);
- if (!Config_getBool("DISABLE_INDEX")) writeQuickLinks(ol,TRUE,external);
+ if (!Config_getBool("DISABLE_INDEX")) writeQuickLinks(ol,TRUE,hli,external);
}
void endFile(OutputList &ol,bool external)
@@ -704,7 +799,7 @@ void writeHierarchicalIndex(OutputList &ol)
if (hierarchyClasses==0) return;
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
- startFile(ol,"hierarchy",0,"Hierarchical Index");
+ startFile(ol,"hierarchy",0,"Hierarchical Index",FALSE,HLI_Hierarchy);
startTitle(ol,0);
QCString title = theTranslator->trClassHierarchy();
QCString htmlHelpTitle = title;
@@ -834,7 +929,7 @@ void writeFileIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
if (documentedFiles==0) ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,"files",0,"File Index");
+ startFile(ol,"files",0,"File Index",FALSE,HLI_Files);
startTitle(ol,0);
QCString title = theTranslator->trFileList();
QCString htmlHelpTitle = title;
@@ -1069,12 +1164,12 @@ void writeNamespaceIndex(OutputList &ol)
QCString title;
if (Config_getBool("OPTIMIZE_OUTPUT_JAVA"))
{
- startFile(ol,"namespaces",0,"Package Index");
+ startFile(ol,"namespaces",0,"Package Index",FALSE,HLI_Namespaces);
title = theTranslator->trPackageList();
}
else
{
- startFile(ol,"namespaces",0,"Namespace Index");
+ startFile(ol,"namespaces",0,"Namespace Index",FALSE,HLI_Namespaces);
title = theTranslator->trNamespaceList();
}
startTitle(ol,0);
@@ -1450,7 +1545,7 @@ void writeAlphabeticalIndex(OutputList &ol)
if (annotatedClasses==0) return;
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,"classes"+Doxygen::htmlFileExtension,0,"Alphabetical index");
+ startFile(ol,"classes"+Doxygen::htmlFileExtension,0,"Alphabetical index",FALSE,HLI_Classes);
startTitle(ol,0);
ol.parseText(Config_getString("PROJECT_NAME")+" "+theTranslator->trCompoundIndex());
endTitle(ol,0,0);
@@ -1471,7 +1566,7 @@ void writeAnnotatedIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
- startFile(ol,"annotated",0,"Annotated Index");
+ startFile(ol,"annotated",0,"Annotated Index",FALSE,HLI_Annotated);
startTitle(ol,0);
QCString title = theTranslator->trCompoundList();
QCString htmlHelpTitle = title;
@@ -1563,7 +1658,7 @@ void writeAnnotatedIndex(OutputList &ol)
//----------------------------------------------------------------------------
-void writeMemberList(OutputList &ol,bool useSections)
+void writeMemberList(OutputList &ol,bool useSections,ClassMemberHighlight filter)
{
bool first = TRUE;
char lastChar = 0;
@@ -1581,11 +1676,21 @@ void writeMemberList(OutputList &ol,bool useSections)
if (
md->isLinkableInProject() &&
(cd=md->getClassDef()) &&
- cd->isLinkableInProject() && cd->templateMaster()==0
+ cd->isLinkableInProject() && cd->templateMaster()==0 &&
+ ( filter==CMHL_All ||
+ (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()))
+ )
)
{
found=TRUE;
- isFunc=md->isFunction();
+ isFunc=md->isFunction() || md->isSlot() || md->isSignal();
}
md=mn->next();
}
@@ -1648,9 +1753,9 @@ void writeMemberList(OutputList &ol,bool useSections)
//----------------------------------------------------------------------------
-int countClassMembers()
+int countClassMembers(int filter)
{
- int i=0;for (i=0;i<256;i++) g_memberIndexLetterUsed[i]=FALSE;
+ int i=0;for (i=0;i<256;i++) g_memberIndexLetterUsed[filter][i]=FALSE;
int count=0;
MemberNameSDict::Iterator mnli(Doxygen::memberNameSDict);
MemberName *mn=0;
@@ -1664,7 +1769,17 @@ int countClassMembers()
if (
md->isLinkableInProject() &&
(cd=md->getClassDef()) &&
- cd->isLinkableInProject()
+ cd->isLinkableInProject() &&
+ ( filter==CMHL_All ||
+ (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()))
+ )
)
{
found=TRUE;
@@ -1674,7 +1789,7 @@ int countClassMembers()
if (found)
{
QCString n = mn->memberName();
- if (!n.isEmpty()) g_memberIndexLetterUsed[tolower(n.at(0))]=TRUE;
+ if (!n.isEmpty()) g_memberIndexLetterUsed[filter][tolower(n.at(0))]=TRUE;
count++;
}
}
@@ -1687,46 +1802,112 @@ void writeQuickMemberIndex(OutputList &ol,bool *charUsed)
{
bool first=TRUE;
int i;
- ol.startCenter();
+ ol.writeString("<div class=\"qindex\">");
for (i=33;i<127;i++)
{
- QCString anchor="index_";
+ 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);
+ startQuickIndexItem(ol,0,anchor+is,FALSE,TRUE,first);
ol.writeString(is);
- ol.endTextLink();
+ endQuickIndexItem(ol);
first=FALSE;
}
}
- ol.endCenter();
+ ol.writeString("</div>\n");
ol.newParagraph();
}
//----------------------------------------------------------------------------
-void writeMemberIndex(OutputList &ol)
+static void writeMemberIndexFiltered(OutputList &ol,
+ const char *fileName,ClassMemberHighlight hl)
{
- if (documentedMembers==0) return;
+ if (documentedClassMembers[hl]==0) return;
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,"functions",0,"Compound Member Index");
+ startFile(ol,fileName,0,"Compound Member Index",FALSE,HLI_Functions);
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);
- ol.parseText(title);
- endTitle(ol,0,0);
- bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
+ //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,0,
+ "functions"+Doxygen::htmlFileExtension,hl==CMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trAll()));
+ endQuickIndexItem(ol);
+
+ if (documentedClassMembers[CMHL_Functions]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_func"+Doxygen::htmlFileExtension,hl==CMHL_Functions,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trFunctions()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Variables]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_vars"+Doxygen::htmlFileExtension,hl==CMHL_Variables,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trVariables()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Typedefs]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_type"+Doxygen::htmlFileExtension,hl==CMHL_Typedefs,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trTypedefs()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Enums]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_enum"+Doxygen::htmlFileExtension,hl==CMHL_Enums,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerations()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_EnumValues]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_eval"+Doxygen::htmlFileExtension,hl==CMHL_EnumValues,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Properties]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_prop"+Doxygen::htmlFileExtension,hl==CMHL_Properties,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trProperties()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Events]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_evnt"+Doxygen::htmlFileExtension,hl==CMHL_Events,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEvents()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedClassMembers[CMHL_Related]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "functions_rela"+Doxygen::htmlFileExtension,hl==CMHL_Related,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trRelatedFunctions()));
+ endQuickIndexItem(ol);
+ }
+ ol.writeString("</div><p>\n");
+
+
+
+ bool quickIndex = documentedClassMembers[hl]>maxItemsBeforeQuickIndex;
if (quickIndex)
{
- writeQuickMemberIndex(ol,g_memberIndexLetterUsed);
+ writeQuickMemberIndex(ol,g_memberIndexLetterUsed[hl]);
}
bool &generateHtml = Config_getBool("GENERATE_HTML") ;
bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
@@ -1741,15 +1922,31 @@ void writeMemberIndex(OutputList &ol)
FTVHelp *ftvHelp = FTVHelp::getInstance();
ftvHelp->addContentsItem(FALSE,0,"functions",0,ftvHelpTitle);
}
- ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL")));
- writeMemberList(ol,quickIndex);
+ if (hl==CMHL_All) ol.parseText(theTranslator->trCompoundMembersDescription(Config_getBool("EXTRACT_ALL")));
+ writeMemberList(ol,quickIndex,hl);
endFile(ol);
ol.popGeneratorState();
}
+void writeMemberIndex(OutputList &ol)
+{
+ QCString ext=Doxygen::htmlFileExtension;
+ writeMemberIndexFiltered(ol,"functions"+ext,CMHL_All);
+ writeMemberIndexFiltered(ol,"functions_func"+ext,CMHL_Functions);
+ writeMemberIndexFiltered(ol,"functions_vars"+ext,CMHL_Variables);
+ writeMemberIndexFiltered(ol,"functions_type"+ext,CMHL_Typedefs);
+ writeMemberIndexFiltered(ol,"functions_enum"+ext,CMHL_Enums);
+ writeMemberIndexFiltered(ol,"functions_eval"+ext,CMHL_EnumValues);
+ writeMemberIndexFiltered(ol,"functions_prop"+ext,CMHL_Properties);
+ writeMemberIndexFiltered(ol,"functions_evnt"+ext,CMHL_Events);
+ writeMemberIndexFiltered(ol,"functions_rela"+ext,CMHL_Related);
+}
+
//----------------------------------------------------------------------------
-void writeFileMemberList(OutputList &ol,bool useSections)
+static void writeFileMemberList(OutputList &ol,
+ bool useSections,
+ FileMemberHighlight filter)
{
char lastChar=0;
bool first=TRUE;
@@ -1766,10 +1963,23 @@ void writeFileMemberList(OutputList &ol,bool useSections)
md->getFileDef()->isLinkableInProject();
if (fd && hasDocs &&
- md->isLinkableInProject()
- ) found=TRUE;
+ 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
{
@@ -1831,7 +2041,8 @@ void writeFileMemberList(OutputList &ol,bool useSections)
//----------------------------------------------------------------------------
-void writeNamespaceMemberList(OutputList &ol,bool useSections)
+void writeNamespaceMemberList(OutputList &ol,bool useSections,
+ NamespaceMemberHighlight filter)
{
char lastChar=0;
bool first=TRUE;
@@ -1844,10 +2055,22 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
while (md && !found)
{
NamespaceDef *nd=md->getNamespaceDef();
- if (nd && nd->isLinkableInProject() && md->isLinkableInProject())
+ 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
{
@@ -1906,9 +2129,9 @@ void writeNamespaceMemberList(OutputList &ol,bool useSections)
//----------------------------------------------------------------------------
-int countNamespaceMembers()
+int countNamespaceMembers(int filter)
{
- int i=0;for (i=0;i<256;i++) g_namespaceIndexLetterUsed[i]=FALSE;
+ int i=0;for (i=0;i<256;i++) g_namespaceIndexLetterUsed[filter][i]=FALSE;
int count=0;
MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
MemberName *mn=0;
@@ -1922,7 +2145,7 @@ int countNamespaceMembers()
if (nd && nd->isLinkableInProject() && md->isLinkableInProject())
{
QCString n = mn->memberName();
- if (!n.isEmpty()) g_namespaceIndexLetterUsed[tolower(n.at(0))]=TRUE;
+ if (!n.isEmpty()) g_namespaceIndexLetterUsed[filter][tolower(n.at(0))]=TRUE;
found=TRUE;
}
else
@@ -1935,9 +2158,9 @@ int countNamespaceMembers()
//----------------------------------------------------------------------------
-int countFileMembers()
+int countFileMembers(int filter)
{
- int i=0;for (i=0;i<256;i++) g_fileIndexLetterUsed[i]=FALSE;
+ int i=0;for (i=0;i<256;i++) g_fileIndexLetterUsed[filter][i]=FALSE;
int count=0;
MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
MemberName *mn=0;
@@ -1950,11 +2173,22 @@ int countFileMembers()
{
if (md->isLinkableInProject() &&
(fd=md->getFileDef()) &&
- fd->isLinkableInProject()
+ fd->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())
+ )
)
{
QCString n = mn->memberName();
- if (!n.isEmpty()) g_fileIndexLetterUsed[tolower(n.at(0))]=TRUE;
+ if (!n.isEmpty())
+ {
+ g_fileIndexLetterUsed[filter][tolower(n.at(0))]=TRUE;
+ }
found=TRUE;
}
else
@@ -1967,23 +2201,74 @@ int countFileMembers()
//----------------------------------------------------------------------------
-void writeFileMemberIndex(OutputList &ol)
+static void writeFileMemberIndexFiltered(OutputList &ol,
+ const char *fileName,FileMemberHighlight hl)
{
- if (documentedFunctions==0) return;
+ if (documentedFileMembers[hl]==0) return;
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,"globals",0,"File Member Index");
+ startFile(ol,fileName,0,"File Member Index",FALSE,HLI_Globals);
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);
- ol.parseText(title);
- endTitle(ol,0,0);
- bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
+
+ ol.writeString("<div class=\"qindex\">");
+
+ bool first=TRUE;
+ startQuickIndexItem(ol,0,
+ "globals"+Doxygen::htmlFileExtension,hl==FMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trAll()));
+ endQuickIndexItem(ol);
+
+ if (documentedFileMembers[FMHL_Functions]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_func"+Doxygen::htmlFileExtension,hl==FMHL_Functions,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trFunctions()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedFileMembers[FMHL_Variables]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_vars"+Doxygen::htmlFileExtension,hl==FMHL_Variables,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trVariables()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedFileMembers[FMHL_Typedefs]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_type"+Doxygen::htmlFileExtension,hl==FMHL_Typedefs,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trTypedefs()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedFileMembers[FMHL_Enums]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_enum"+Doxygen::htmlFileExtension,hl==FMHL_Enums,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerations()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedFileMembers[FMHL_EnumValues]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_eval"+Doxygen::htmlFileExtension,hl==FMHL_EnumValues,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedFileMembers[FMHL_Defines]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "globals_defs"+Doxygen::htmlFileExtension,hl==FMHL_Defines,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trDefines()));
+ endQuickIndexItem(ol);
+ }
+ ol.writeString("</div><p>\n");
+
+
+ bool quickIndex = documentedFileMembers[hl]>maxItemsBeforeQuickIndex;
if (quickIndex)
{
- writeQuickMemberIndex(ol,g_fileIndexLetterUsed);
+ writeQuickMemberIndex(ol,g_fileIndexLetterUsed[hl]);
}
bool &generateHtml = Config_getBool("GENERATE_HTML") ;
bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
@@ -1998,31 +2283,92 @@ void writeFileMemberIndex(OutputList &ol)
FTVHelp *ftvHelp = FTVHelp::getInstance();
ftvHelp->addContentsItem(FALSE,0,"globals",0,ftvHelpTitle);
}
- ol.parseText(theTranslator->trFileMembersDescription(Config_getBool("EXTRACT_ALL")));
- writeFileMemberList(ol,quickIndex);
+ if (hl==FMHL_All) 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,"globals"+ext,FMHL_All);
+ writeFileMemberIndexFiltered(ol,"globals_func"+ext,FMHL_Functions);
+ writeFileMemberIndexFiltered(ol,"globals_vars"+ext,FMHL_Variables);
+ writeFileMemberIndexFiltered(ol,"globals_type"+ext,FMHL_Typedefs);
+ writeFileMemberIndexFiltered(ol,"globals_enum"+ext,FMHL_Enums);
+ writeFileMemberIndexFiltered(ol,"globals_eval"+ext,FMHL_EnumValues);
+ writeFileMemberIndexFiltered(ol,"globals_defs"+ext,FMHL_Defines);
+}
+
+
//----------------------------------------------------------------------------
-void writeNamespaceMemberIndex(OutputList &ol)
+static void writeNamespaceMemberIndexFiltered(OutputList &ol,
+ const char *fileName,
+ NamespaceMemberHighlight hl)
{
- if (documentedNamespaceMembers==0) return;
+ if (documentedNamespaceMembers[hl]==0) return;
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- startFile(ol,"namespacemembers",0,"Namespace Member Index");
+ startFile(ol,fileName,0,"Namespace Member Index",FALSE,HLI_NamespaceMembers);
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);
- ol.parseText(title);
- endTitle(ol,0,0);
- bool quickIndex = documentedMembers>maxItemsBeforeQuickIndex;
+ //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,0,
+ "namespacemembers"+Doxygen::htmlFileExtension,hl==NMHL_All,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trAll()));
+ endQuickIndexItem(ol);
+
+ if (documentedNamespaceMembers[NMHL_Functions]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "namespacemembers_func"+Doxygen::htmlFileExtension,hl==NMHL_Functions,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trFunctions()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedNamespaceMembers[NMHL_Variables]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "namespacemembers_vars"+Doxygen::htmlFileExtension,hl==NMHL_Variables,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trVariables()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedNamespaceMembers[NMHL_Typedefs]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "namespacemembers_type"+Doxygen::htmlFileExtension,hl==NMHL_Typedefs,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trTypedefs()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedNamespaceMembers[NMHL_Enums]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "namespacemembers_enum"+Doxygen::htmlFileExtension,hl==NMHL_Enums,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerations()));
+ endQuickIndexItem(ol);
+ }
+ if (documentedNamespaceMembers[NMHL_EnumValues]>0)
+ {
+ startQuickIndexItem(ol,0,
+ "namespacemembers_eval"+Doxygen::htmlFileExtension,hl==NMHL_EnumValues,TRUE,first);
+ ol.writeString(fixSpaces(theTranslator->trEnumerationValues()));
+ endQuickIndexItem(ol);
+ }
+ ol.writeString("</div><p>\n");
+
+ bool quickIndex = documentedNamespaceMembers[hl]>maxItemsBeforeQuickIndex;
if (quickIndex)
{
- writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed);
+ writeQuickMemberIndex(ol,g_namespaceIndexLetterUsed[hl]);
}
bool &generateHtml = Config_getBool("GENERATE_HTML") ;
bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
@@ -2037,12 +2383,23 @@ void writeNamespaceMemberIndex(OutputList &ol)
FTVHelp *ftvHelp = FTVHelp::getInstance();
ftvHelp->addContentsItem(FALSE,0,"namespacemembers",0,ftvHelpTitle);
}
- ol.parseText(theTranslator->trNamespaceMemberDescription(Config_getBool("EXTRACT_ALL")));
- writeNamespaceMemberList(ol,quickIndex);
+ if (hl==NMHL_All) 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,"namespacemembers"+ext,NMHL_All);
+ writeNamespaceMemberIndexFiltered(ol,"namespacemembers_func"+ext,NMHL_Functions);
+ writeNamespaceMemberIndexFiltered(ol,"namespacemembers_vars"+ext,NMHL_Variables);
+ writeNamespaceMemberIndexFiltered(ol,"namespacemembers_type"+ext,NMHL_Typedefs);
+ writeNamespaceMemberIndexFiltered(ol,"namespacemembers_enum"+ext,NMHL_Enums);
+ writeNamespaceMemberIndexFiltered(ol,"namespacemembers_eval"+ext,NMHL_EnumValues);
+}
+
//----------------------------------------------------------------------------
void writeExampleIndex(OutputList &ol)
@@ -2050,7 +2407,7 @@ void writeExampleIndex(OutputList &ol)
if (Doxygen::exampleSDict->count()==0) return;
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
- startFile(ol,"examples",0,"Example Index");
+ startFile(ol,"examples",0,"Example Index",FALSE,HLI_Examples);
startTitle(ol,0);
QCString title = theTranslator->trExamples();
QCString htmlHelpTitle = title;
@@ -2132,29 +2489,13 @@ void countRelatedPages(int &docPages,int &indexPages)
//----------------------------------------------------------------------------
-//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");
+ startFile(ol,"pages",0,"Page Index",FALSE,HLI_Pages);
startTitle(ol,0);
QCString title = theTranslator->trRelatedPages();
QCString htmlHelpTitle = title;
@@ -2655,7 +2996,7 @@ void writeGroupIndex(OutputList &ol)
if (documentedGroups==0) return;
ol.pushGeneratorState();
ol.disable(OutputGenerator::Man);
- startFile(ol,"modules",0,"Module Index");
+ startFile(ol,"modules",0,"Module Index",FALSE,HLI_Modules);
startTitle(ol,0);
QCString title = theTranslator->trModules();
QCString htmlHelpTitle = title;
@@ -2724,7 +3065,7 @@ void writeIndex(OutputList &ol)
{
title = theTranslator->trMainPage();
}
- else
+ else if (Doxygen::mainPage)
{
title = substitute(Doxygen::mainPage->title(),"%","");
}
@@ -2745,15 +3086,21 @@ void writeIndex(OutputList &ol)
FTVHelp::getInstance()->addContentsItem(FALSE,0,indexName,0,title);
}
- if (!Config_getBool("DISABLE_INDEX")) writeQuickLinks(ol,TRUE);
+ if (!Config_getBool("DISABLE_INDEX")) writeQuickLinks(ol,TRUE,HLI_Main);
ol.startTitleHead(0);
if (Doxygen::mainPage && !Doxygen::mainPage->title().isEmpty())
{
- ol.parseDoc(defFileName,defLine,0,0,Doxygen::mainPage->title(),FALSE);
+ if (Doxygen::mainPage->title().lower()!="notitle")
+ {
+ ol.parseDoc(defFileName,defLine,0,0,Doxygen::mainPage->title(),FALSE);
+ }
}
else
{
- ol.parseText(projPrefix+theTranslator->trDocumentation());
+ if (!Config_getString("PROJECT_NAME").isEmpty())
+ {
+ ol.parseText(projPrefix+theTranslator->trDocumentation());
+ }
}
ol.endTitleHead(0,0);
ol.newParagraph();
@@ -2763,7 +3110,7 @@ void writeIndex(OutputList &ol)
ol.parseDoc(defFileName,defLine,0,0,Config_getString("PROJECT_NUMBER"),FALSE);
ol.endProjectNumber();
}
- if (Config_getBool("DISABLE_INDEX") && Doxygen::mainPage==0) writeQuickLinks(ol,FALSE);
+ if (Config_getBool("DISABLE_INDEX") && Doxygen::mainPage==0) writeQuickLinks(ol,FALSE,HLI_Main);
if (Doxygen::mainPage)
{
@@ -2837,13 +3184,6 @@ void writeIndex(OutputList &ol)
ol.endIndexSection(isMainPage);
}
-
- //if (documentedPackages>0)
- //{
- // ol.startIndexSection(isPackageIndex);
- // parseText(ol,projPrefix+theTranslator->trPackageList());
- // ol.endIndexSection(isPackageIndex);
- //}
if (!Config_getBool("LATEX_HIDE_INDICES"))
{
if (documentedGroups>0)
@@ -2884,12 +3224,6 @@ void writeIndex(OutputList &ol)
}
}
ol.lastIndexPage();
- //if (documentedPackages>0)
- //{
- // ol.startIndexSection(isPackageDocumentation);
- // parseText(ol,projPrefix+theTranslator->trPackageDocumentation());
- // ol.endIndexSection(isPackageDocumentation);
- //}
if (documentedGroups>0)
{
ol.startIndexSection(isModuleDocumentation);
@@ -2934,14 +3268,6 @@ void writeIndex(OutputList &ol)
Doxygen::insideMainPage=TRUE;
ol.disable(OutputGenerator::Man);
startFile(ol,Doxygen::mainPage->name(),0,Doxygen::mainPage->title());
- //SectionInfo *si=0;
- //if (!Doxygen::mainPage->title.isEmpty() && !Doxygen::mainPage->name.isEmpty() &&
- // (si=Doxygen::sectionDict[Doxygen::mainPage->name])!=0)
- //{
- // ol.startSection(si->label,si->title,FALSE);
- // ol.docify(si->title);
- // ol.endSection(si->label,FALSE);
- //}
ol.startTextBlock();
ol.parseDoc(defFileName,defLine,0,0,
Doxygen::mainPage->documentation(),FALSE
diff --git a/src/index.h b/src/index.h
index f6d546e..c4e8f8d 100644
--- a/src/index.h
+++ b/src/index.h
@@ -69,25 +69,44 @@ void writePackageIndex(OutputList &ol);
void countDataStructures();
+#if 0
extern int annotatedClasses;
extern int hierarchyClasses;
extern int documentedFunctions;
extern int documentedMembers;
extern int documentedDefines;
extern int documentedFiles;
-extern int documentedHtmlFiles;
extern int documentedGroups;
extern int documentedNamespaces;
extern int documentedNamespaceMembers;
extern int documentedIncludeFiles;
-extern int documentedPages;
extern int indexedPages;
-//extern int documentedPackages;
+#endif
+extern int documentedHtmlFiles;
+extern int documentedPages;
+
+enum HighlightedItem
+{
+ HLI_None=0,
+ HLI_Main,
+ HLI_Modules,
+ HLI_Namespaces,
+ HLI_Hierarchy,
+ HLI_Classes,
+ HLI_Annotated,
+ HLI_Files,
+ HLI_NamespaceMembers,
+ HLI_Functions,
+ HLI_Globals,
+ HLI_Pages,
+ HLI_Examples,
+ HLI_Search
+};
void startTitle(OutputList &ol,const char *fileName);
void endTitle(OutputList &ol,const char *fileName,const char *name);
void startFile(OutputList &ol,const char *name,const char *manName,
- const char *title,bool external=FALSE);
+ const char *title,bool external=FALSE,HighlightedItem hli=HLI_None);
void endFile(OutputList &ol,bool external=FALSE);
#endif
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index ffda3bd..019943b 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -1581,7 +1581,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.startCallGraph();
- //ol.parseText(theTranslator->trCallGraph());
+ ol.parseText(theTranslator->trCallGraph());
ol.endCallGraph(callGraph);
ol.enableAll();
}
diff --git a/src/scanner.l b/src/scanner.l
index 9a7ad66..4cf55d0 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -492,7 +492,7 @@ static int yyread(char *buf,int max_size)
/* start command character */
CMD ("\\"|"@")
-SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"xrefitem"|"ingroup"|"callgraph"|"latexonly"|"htmlonly"|"xmlonly"|"{"|"verbatim"|"dotfile"|"defgroup"|"addtogroup"|"weakgroup"|"class"|"namespace"|"union"|"struct"|"fn"|"var"|"typedef"|"def"|"overload")|("<"{PRE}">")
+SECTIONCMD {CMD}("image"|"author"|"internal"|"version"|"date"|"deprecated"|"param"|"exception"|"return"[s]?|"retval"|"bug"|"warning"|"par"|"sa"|"see"|"pre"|"post"|"invariant"|"note"|"remark"[s]?|"todo"|"test"|"xrefitem"|"ingroup"|"callgraph"|"latexonly"|"htmlonly"|"xmlonly"|"{"|"verbatim"|"dotfile"|"defgroup"|"addtogroup"|"weakgroup"|"class"|"namespace"|"union"|"struct"|"fn"|"var"|"details"|"typedef"|"def"|"overload")|("<"{PRE}">")
BN [ \t\n\r]
BL [ \t\r]*"\n"
B [ \t]
@@ -3448,6 +3448,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->startLine = yyLineNr;
BEGIN( ExampleDocArg1 );
}
+<Doc>{B}*{CMD}"details"{B}+ { /* nop */
+ }
<LineDoc>{CMD}"name"[^\n]*\n {
lastDefGroup.groupname.resize(0);
memberGroupHeader=&yytext[5];
@@ -4139,6 +4141,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else if (YY_START==ClassDocBrief &&
lastBriefContext==Doc)
{
+ //printf("Add docs %s\n",current->doc.data());
current->doc += "\n\n";
BEGIN( lastDocContext );
}
@@ -4150,7 +4153,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else
{
current->doc += "\n\n";
- //printf("Add docs for class %s\n",current->name.data());
+ //printf("Add docs for %s\n",current->name.data());
current_root->addSubEntry(current);
current = new Entry ;
initEntry();
@@ -4379,7 +4382,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
else
{
current->brief += "\n";
- if (!current->doc.isEmpty())
+ if (!current->doc.stripWhiteSpace().isEmpty())
{
current->doc += "<p>";
}
diff --git a/src/translator.h b/src/translator.h
index ec9f213..4b1679c 100644
--- a/src/translator.h
+++ b/src/translator.h
@@ -400,6 +400,13 @@ class Translator
virtual QCString trPackageAttribs() = 0;
virtual QCString trStaticPackageAttribs() = 0;
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ virtual QCString trAll() = 0;
+ virtual QCString trCallGraph() = 0;
+
};
#endif
diff --git a/src/translator_adapter.h b/src/translator_adapter.h
index ac44505..7aaa3ca 100644
--- a/src/translator_adapter.h
+++ b/src/translator_adapter.h
@@ -40,7 +40,19 @@ class TranslatorAdapterBase : public Translator
};
-class TranslatorAdapter_1_3 : public TranslatorAdapterBase
+class TranslatorAdapter_1_3_1 : public TranslatorAdapterBase
+{
+ public:
+ virtual QCString updateNeededMessage()
+ { return createUpdateNeededMessage(idLanguage(),"release 1.3.1"); }
+
+ virtual QCString trAll()
+ { return english.trAll(); }
+ virtual QCString trCallGraph()
+ { return english.trCallGraph(); }
+};
+
+class TranslatorAdapter_1_3 : public TranslatorAdapter_1_3_1
{
public:
virtual QCString updateNeededMessage()
@@ -58,7 +70,6 @@ class TranslatorAdapter_1_3 : public TranslatorAdapterBase
{ return english.trStaticPackageAttribs(); }
};
-
class TranslatorAdapter_1_2_18 : public TranslatorAdapter_1_3
{
public:
diff --git a/src/translator_br.h b/src/translator_br.h
index f45947f..a9066d7 100644
--- a/src/translator_br.h
+++ b/src/translator_br.h
@@ -27,7 +27,7 @@
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
-class TranslatorBrazilian: public Translator
+class TranslatorBrazilian: public TranslatorAdapter_1_3_1
{
public:
diff --git a/src/translator_cz.h b/src/translator_cz.h
index c493e33..a0db49b 100644
--- a/src/translator_cz.h
+++ b/src/translator_cz.h
@@ -168,7 +168,7 @@
// Windows version. The version which does not call the function is
// probably slightly faster.
-class TranslatorCzech : public Translator
+class TranslatorCzech : public TranslatorAdapter_1_3_1
{
private:
/*! The decode() inline assumes the source written in the
diff --git a/src/translator_de.h b/src/translator_de.h
index 215b572..9ba91e1 100644
--- a/src/translator_de.h
+++ b/src/translator_de.h
@@ -83,7 +83,7 @@
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
-class TranslatorGerman : public Translator
+class TranslatorGerman : public TranslatorAdapter_1_3_1
{
public:
diff --git a/src/translator_en.h b/src/translator_en.h
index 1b00007..9342828 100644
--- a/src/translator_en.h
+++ b/src/translator_en.h
@@ -1472,6 +1472,23 @@ class TranslatorEnglish : public Translator
return "Static Package Attributes";
}
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "All";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "Here is the call graph for this function:";
+ }
+
};
diff --git a/src/translator_fr.h b/src/translator_fr.h
index 8a30f2d..82b22b2 100644
--- a/src/translator_fr.h
+++ b/src/translator_fr.h
@@ -49,7 +49,7 @@
#ifndef TRANSLATOR_FR_H
#define TRANSLATOR_FR_H
-class TranslatorFrench : public Translator
+class TranslatorFrench : public TranslatorAdapter_1_3_1
{
public:
QCString idLanguage()
diff --git a/src/translator_hr.h b/src/translator_hr.h
index 9daab7e..5a8e2f0 100644
--- a/src/translator_hr.h
+++ b/src/translator_hr.h
@@ -56,7 +56,7 @@
#ifndef TRANSLATOR_HR_H
#define TRANSLATOR_HR_H
-class TranslatorCroatian : public Translator
+class TranslatorCroatian : public TranslatorAdapter_1_3_1
{
private:
/*! to avoid macro redefinition from translator_cz.h */
diff --git a/src/translator_it.h b/src/translator_it.h
index 9f806d4..406ce4b 100644
--- a/src/translator_it.h
+++ b/src/translator_it.h
@@ -68,7 +68,7 @@
#ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H
-class TranslatorItalian : public Translator
+class TranslatorItalian : public TranslatorAdapter_1_3_1
{
public:
diff --git a/src/translator_nl.h b/src/translator_nl.h
index 5ca923d..7b18489 100644
--- a/src/translator_nl.h
+++ b/src/translator_nl.h
@@ -1068,6 +1068,23 @@ class TranslatorDutch : public Translator
{
return "Statische Package Attributen";
}
+
+//////////////////////////////////////////////////////////////////////////
+// new since 1.3.1
+//////////////////////////////////////////////////////////////////////////
+
+ /*! Used in the quick index of a class/file/namespace member list page
+ * to link to the unfiltered list of all members.
+ */
+ virtual QCString trAll()
+ {
+ return "Alle";
+ }
+ /*! Put in front of the call graph for a function. */
+ virtual QCString trCallGraph()
+ {
+ return "Hier is de call graaf voor deze functie:";
+ }
};