Commit d863498b authored by dimitri's avatar dimitri

Release-1.3.1-20030609

parent 0aa47e2a
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)
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)
1.3.1-20030607
1.3.1-20030609
......@@ -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
......
......@@ -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.
......
......@@ -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>
......
......@@ -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,
......
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
......
......@@ -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;
}
......
......@@ -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"
......
......@@ -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
......
......@@ -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
......@@ -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();
}
......
......@@ -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>";
}
......
......@@ -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
......@@ -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:
......
......@@ -27,7 +27,7 @@
#ifndef TRANSLATOR_BR_H
#define TRANSLATOR_BR_H
class TranslatorBrazilian: public Translator
class TranslatorBrazilian: public TranslatorAdapter_1_3_1
{
public:
......
......@@ -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
......
......@@ -83,7 +83,7 @@
#ifndef TRANSLATOR_DE_H
#define TRANSLATOR_DE_H
class TranslatorGerman : public Translator
class TranslatorGerman : public TranslatorAdapter_1_3_1
{
public:
......
......@@ -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:";
}
};
......
......@@ -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()
......
......@@ -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 */
......
......@@ -68,7 +68,7 @@
#ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H
class TranslatorItalian : public Translator
class TranslatorItalian : public TranslatorAdapter_1_3_1
{
public:
......
......@@ -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:";
}
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment