summaryrefslogtreecommitdiffstats
path: root/Python/graminit.c
diff options
context:
space:
mode:
authorCharles-François Natali <neologix@free.fr>2012-04-17 17:48:35 (GMT)
committerCharles-François Natali <neologix@free.fr>2012-04-17 17:48:35 (GMT)
commitab2d58eefa222cdc439bef8eb02b3620bc991164 (patch)
tree3f6855577d5c09662249ac0173f8de53ab7c881a /Python/graminit.c
parent62930e1cc56289bf27df234b2cc01da09958c5b4 (diff)
downloadcpython-ab2d58eefa222cdc439bef8eb02b3620bc991164.zip
cpython-ab2d58eefa222cdc439bef8eb02b3620bc991164.tar.gz
cpython-ab2d58eefa222cdc439bef8eb02b3620bc991164.tar.bz2
Issue #5113: Fix a test_posix failure on HP-UX, where non-root users can
chown() to root under certain circumstances.
Diffstat (limited to 'Python/graminit.c')
0 files changed, 0 insertions, 0 deletions
7c9cc1d04e3ffbbde11a6a'>configure2
-rw-r--r--doc/install.doc6
-rw-r--r--qtools/Doxyfile2
-rw-r--r--qtools/qdatetime.cpp2
-rw-r--r--src/classdef.cpp42
-rw-r--r--src/classdef.h1
-rw-r--r--src/classlist.cpp37
-rw-r--r--src/classlist.h1
-rw-r--r--src/code.h2
-rw-r--r--src/code.l4
-rw-r--r--src/commentscan.l16
-rw-r--r--src/config.l29
-rw-r--r--src/config.xml117
-rw-r--r--src/configoptions.cpp122
-rw-r--r--src/dbusxmlscanner.cpp3
-rw-r--r--src/dbusxmlscanner.h3
-rw-r--r--src/definition.cpp63
-rw-r--r--src/definition.h1
-rw-r--r--src/dirdef.cpp7
-rw-r--r--src/doctokenizer.l2
-rw-r--r--src/dot.cpp16
-rw-r--r--src/doxygen.cpp22
-rw-r--r--src/doxygen.css177
-rw-r--r--src/doxygen_css.h177
-rw-r--r--src/filedef.cpp47
-rw-r--r--src/filedef.h1
-rw-r--r--src/fortrancode.h2
-rw-r--r--src/fortrancode.l2
-rw-r--r--src/fortranscanner.h3
-rw-r--r--src/fortranscanner.l70
-rw-r--r--src/ftvhelp.cpp43
-rw-r--r--src/groupdef.cpp51
-rw-r--r--src/groupdef.h1
-rw-r--r--src/htmlgen.cpp1264
-rw-r--r--src/htmlgen.h10
-rw-r--r--src/htmlhelp.cpp6
-rw-r--r--src/image.cpp116
-rw-r--r--src/image.h17
-rw-r--r--src/index.cpp68
-rw-r--r--src/index.h3
-rw-r--r--src/language.cpp4
-rw-r--r--src/latexdocvisitor.cpp17
-rw-r--r--src/latexgen.cpp2
-rw-r--r--src/latexgen.h4
-rw-r--r--src/logos.cpp5
-rw-r--r--src/mangen.cpp8
-rw-r--r--src/mangen.h4
-rw-r--r--src/memberdef.cpp4
-rw-r--r--src/memberlist.cpp121
-rw-r--r--src/memberlist.h2
-rw-r--r--src/namespacedef.cpp55
-rw-r--r--src/namespacedef.h2
-rw-r--r--src/outputgen.h4
-rw-r--r--src/outputlist.h8
-rw-r--r--src/pagedef.cpp8
-rw-r--r--src/parserintf.h5
-rw-r--r--src/pre.l139
-rw-r--r--src/pycode.h2
-rw-r--r--src/pycode.l2
-rw-r--r--src/pyscanner.h3
-rw-r--r--src/pyscanner.l6
-rw-r--r--src/rtfgen.h4
-rw-r--r--src/scanner.h3
-rw-r--r--src/scanner.l8
-rw-r--r--src/search.css164
-rw-r--r--src/search.js4
-rw-r--r--src/search_css.h164
-rw-r--r--src/search_js.h4
-rw-r--r--src/translator_ca.h36
-rw-r--r--src/translator_de.h214
-rw-r--r--src/translator_eo.h36
-rw-r--r--src/translator_es.h117
-rw-r--r--src/translator_hr.h309
-rw-r--r--src/util.cpp69
-rw-r--r--src/util.h3
-rw-r--r--src/vhdlcode.h2
-rw-r--r--src/vhdlcode.l2
-rw-r--r--src/vhdldocgen.cpp2
-rw-r--r--src/vhdlscanner.h3
-rw-r--r--src/vhdlscanner.l7
83 files changed, 2663 insertions, 1468 deletions
diff --git a/INSTALL b/INSTALL
index 88814de..24b8bb3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
-DOXYGEN Version 1.6.3
+DOXYGEN Version 1.6.3-20100324
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
-Dimitri van Heesch (21 February 2010)
+Dimitri van Heesch (24 March 2010)
diff --git a/LANGUAGE.HOWTO b/LANGUAGE.HOWTO
index 306b4bf..e535a05 100644
--- a/LANGUAGE.HOWTO
+++ b/LANGUAGE.HOWTO
@@ -2,12 +2,12 @@ This short howto explains how to add support for a new language to Doxygen:
Just follow these steps:
-1) Tell me for which language you want to add support. If no one else
+1) Tell me which language you want to add support for. If no one else
is already working on support for that language, you will be
assigned as the maintainer for the language. I'll create a
list on Doxygen's homepage, so everyone knows who is doing what.
2) Create a copy of translator_en.h and name it
- translator_<your_2_letter_counter_code>.h
+ translator_<your_2_letter_country_code>.h
I'll use xx in the rest of this document.
3) Edit language.cpp:
- Add a #include<translator_xx.h>
@@ -21,8 +21,9 @@ Just follow these steps:
after the if { ... }
4) Edit libdoxygen.pro.in and add translator_xx.h to the HEADERS line.
5) Edit translator_xx.h:
- - Rename TRANSLATOR_EN_H to TRANSLATOR_XX_H twice.
- - Rename TranslatorEnglish to TranslatorYourLanguage
+ - Change TRANSLATOR_EN_H to TRANSLATOR_XX_H (in both the #include line and
+ the #define line).
+ - Change TranslatorEnglish to TranslatorYourLanguage
- In the member idLanguage() change "english" into the name of your
language (use lower case characters only). Depending on the language you
may also wish to change the member functions latexLanguageSupportCommand()
diff --git a/README b/README
index 038e604..50f1dea 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-DOXYGEN Version 1.6.3
+DOXYGEN Version 1.6.3_20100324
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) (21 February 2010)
+Dimitri van Heesch (dimitri@stack.nl) (24 March 2010)
diff --git a/configure b/configure
index 542023f..b9b63dc 100755
--- a/configure
+++ b/configure
@@ -20,7 +20,7 @@ doxygen_version_minor=6
doxygen_version_revision=3
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
-doxygen_version_mmn=NO
+doxygen_version_mmn=20100324
bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
diff --git a/doc/install.doc b/doc/install.doc
index 60885d1..e1a6a29 100644
--- a/doc/install.doc
+++ b/doc/install.doc
@@ -59,7 +59,7 @@ tools should be installed.
<A HREF="http://www.trolltech.com/products/qt.html">Qt</A>
\latexonly(see {\tt http://www.trolltech.com/products/qt.html})\endlatexonly
\addindex Qt
- version 3.3 or higher.
+ version 4.3 or higher.
This is needed to build the GUI front-end doxywizard.
<li>A \f$\mbox{\LaTeX}\f$ distribution: for instance
<a href="http://www.tug.org/interest.html#free">teTeX 1.0</a>
@@ -110,7 +110,7 @@ Compilation is now done by performing the following steps:
See the <code>PLATFORMS</code> file for a list of possible platform
options.
- If you have Qt-3.3.x installed and want to build the GUI
+ If you have Qt-4.3 or higher installed and want to build the GUI
front-end, you should run the configure script with
the <code>--with-doxywizard</code> option:
@@ -409,7 +409,7 @@ containing a \c Doxygen.sln file. Open this file in Visual Studio.
You can now build the Release or Debug flavor of Doxygen and Doxytag by right-clicking
the project in the solutions explorer, and selecting Build.
-Note that compiling Doxywizard currently requires Qt version 3
+Note that compiling Doxywizard currently requires Qt version 4
(see http://www.trolltech.com/products/qt/qt3).
If you do not have a commercial license, you can build Doxywizard with the open
source version (see http://qtwin.sourceforge.net/qt3-win32/compile-msvc-2005.php),
diff --git a/qtools/Doxyfile b/qtools/Doxyfile
index 5311996..1727cf9 100644
--- a/qtools/Doxyfile
+++ b/qtools/Doxyfile
@@ -7,7 +7,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = Qtools
PROJECT_NUMBER =
OUTPUT_DIRECTORY = ../qtools_docs
-CREATE_SUBDIRS = YES
+CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
diff --git a/qtools/qdatetime.cpp b/qtools/qdatetime.cpp
index cecb855..4edaca9 100644
--- a/qtools/qdatetime.cpp
+++ b/qtools/qdatetime.cpp
@@ -491,7 +491,7 @@ bool QDate::isValid( int y, int m, int d )
bool QDate::leapYear( int y )
{
- return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;
+ return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
/*!
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 5ecb140..2542774 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1360,6 +1360,42 @@ void ClassDef::writeAuthorSection(OutputList &ol)
ol.popGeneratorState();
}
+
+void ClassDef::writeSummaryLinks(OutputList &ol)
+{
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ QListIterator<LayoutDocEntry> eli(
+ LayoutDocManager::instance().docEntries(LayoutDocManager::Class));
+ LayoutDocEntry *lde;
+ bool first=TRUE;
+ for (eli.toFirst();(lde=eli.current());++eli)
+ {
+ if (lde->kind()==LayoutDocEntry::ClassNestedClasses &&
+ m_impl->innerClasses &&
+ m_impl->innerClasses->declVisible()
+ )
+ {
+ LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
+ writeSummaryLink(ol,"nested-classes",ls->title,first);
+ }
+ else if (lde->kind()== LayoutDocEntry::MemberDecl)
+ {
+ LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
+ MemberList * ml = getMemberList(lmd->type);
+ if (ml && ml->declVisible())
+ {
+ writeSummaryLink(ol,ml->listTypeAsString(),lmd->title,first);
+ }
+ }
+ }
+ if (!first)
+ {
+ ol.writeString(" </div>\n");
+ }
+ ol.popGeneratorState();
+}
+
// write all documentation for this class
void ClassDef::writeDocumentation(OutputList &ol)
{
@@ -1394,11 +1430,12 @@ void ClassDef::writeDocumentation(OutputList &ol)
writeNavigationPath(ol);
}
ol.endQuickIndices();
- ol.startContents();
- startTitle(ol,getOutputFileBase());
+
+ startTitle(ol,getOutputFileBase(),this);
ol.parseText(pageTitle);
addGroupListToTitle(ol,this);
endTitle(ol,getOutputFileBase(),name());
+ ol.startContents();
{
ol.pushGeneratorState();
@@ -1669,6 +1706,7 @@ void ClassDef::writeMemberList(OutputList &ol)
startTitle(ol,0);
ol.parseText(displayName()+" "+theTranslator->trMemberList());
endTitle(ol,0,0);
+ ol.startContents();
ol.parseText(theTranslator->trThisIsTheListOfAllMembers());
ol.writeObjectLink(getReference(),getOutputFileBase(),0,displayName());
ol.parseText(theTranslator->trIncludingInheritedMembers());
diff --git a/src/classdef.h b/src/classdef.h
index 81f91ee..693e299 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -311,6 +311,7 @@ class ClassDef : public Definition
void writeMemberList(OutputList &ol);
void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup);
void writeQuickMemberLinks(OutputList &ol,MemberDef *md) const;
+ void writeSummaryLinks(OutputList &ol);
void reclassifyMember(MemberDef *md,MemberDef::MemberType t);
bool visited;
diff --git a/src/classlist.cpp b/src/classlist.cpp
index b4775b7..196f8c2 100644
--- a/src/classlist.cpp
+++ b/src/classlist.cpp
@@ -64,11 +64,42 @@ ClassListIterator::ClassListIterator(const ClassList &cllist) :
{
}
+bool ClassSDict::declVisible(const ClassDef::CompoundType *filter) const
+{
+ static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
+ static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
+ if (count()>0)
+ {
+ ClassSDict::Iterator sdi(*this);
+ ClassDef *cd=0;
+ for (sdi.toFirst();(cd=sdi.current());++sdi)
+ {
+ if (cd->name().find('@')==-1 &&
+ (filter==0 || *filter==cd->compoundType())
+ )
+ {
+ bool isLink = cd->isLinkable();
+ if (isLink ||
+ (!hideUndocClasses &&
+ (!cd->isLocal() || extractLocalClasses)
+ )
+ )
+ {
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *filter,
const char *header,bool localNames)
{
static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN");
static bool vhdlOpt = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
+ static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
+ static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
if (count()>0)
{
ClassSDict::Iterator sdi(*this);
@@ -82,14 +113,14 @@ void ClassSDict::writeDeclaration(OutputList &ol,const ClassDef::CompoundType *f
{
bool isLink = cd->isLinkable();
if (isLink ||
- (!Config_getBool("HIDE_UNDOC_CLASSES") &&
- (!cd->isLocal() || Config_getBool("EXTRACT_LOCAL_CLASSES"))
+ (!hideUndocClasses &&
+ (!cd->isLocal() || extractLocalClasses)
)
)
{
if (!found)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("nested-classes");
if (header)
{
ol.parseText(header);
diff --git a/src/classlist.h b/src/classlist.h
index 8da9d5d..431932d 100644
--- a/src/classlist.h
+++ b/src/classlist.h
@@ -54,6 +54,7 @@ class ClassSDict : public SDict<ClassDef>
int compareItems(GCI item1,GCI item2);
void writeDeclaration(OutputList &ol,const ClassDef::CompoundType *filter=0,
const char *header=0,bool localNames=FALSE);
+ bool declVisible(const ClassDef::CompoundType *filter=0) const;
};
#endif
diff --git a/src/code.h b/src/code.h
index b020be5..99c5d01 100644
--- a/src/code.h
+++ b/src/code.h
@@ -28,7 +28,7 @@ class MemberDef;
void parseCCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd=0,
int startLine=-1,int endLine=-1,bool inlineFragment=FALSE,
- MemberDef *memberDef=0);
+ MemberDef *memberDef=0,bool showLineNumbers=TRUE);
void resetCCodeParserState();
void codeFreeScanner();
diff --git a/src/code.l b/src/code.l
index 2ad58de..99bb0f2 100644
--- a/src/code.l
+++ b/src/code.l
@@ -3343,7 +3343,7 @@ void resetCCodeParserState()
void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
bool exBlock, const char *exName,FileDef *fd,
int startLine,int endLine,bool inlineFragment,
- MemberDef *memberDef)
+ MemberDef *memberDef,bool showLineNumbers)
{
//printf("***parseCode() exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd);
if (s.isEmpty()) return;
@@ -3378,7 +3378,7 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
g_exampleBlock = exBlock;
g_exampleName = exName;
g_sourceFileDef = fd;
- g_lineNumbers = fd!=0;
+ g_lineNumbers = fd!=0 && showLineNumbers;
if (exBlock && fd==0)
{
// create a dummy filedef for the example
diff --git a/src/commentscan.l b/src/commentscan.l
index 5306075..902a4f4 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -1031,13 +1031,25 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
<Comment>".," { // . with comma such as "e.g.,"
addOutput(yytext);
}
+<Comment>"...\\"[ \t] { // ellipsis with escaped space.
+ addOutput("... ");
+ }
+<Comment>".."[\.]?/[^ \t\n] { // internal ellipsis
+ addOutput(yytext);
+ }
<Comment>(\n|\\_linebr)({B}*(\n|\\_linebr))+ { // at least one blank line (or blank line command)
- if (inContext!=OutputBrief)
+ if (inContext==OutputXRef)
+ {
+ // see bug 613024, we need to put the newlines after ending the XRef section.
+ setOutput(OutputDoc);
+ addOutput("\n\n");
+ }
+ else if (inContext!=OutputBrief)
{
addOutput("\n\n");
setOutput(OutputDoc);
}
- else
+ else // inContext==OutputBrief
{ // only go to the detailed description if we have
// found some brief description and not just whitespace
endBrief(FALSE);
diff --git a/src/config.l b/src/config.l
index b8031a0..da34aeb 100644
--- a/src/config.l
+++ b/src/config.l
@@ -1387,6 +1387,35 @@ void Config::check()
depth=1000;
}
+ int &hue = Config_getInt("HTML_COLORSTYLE_HUE");
+ if (hue<0)
+ {
+ hue=0;
+ }
+ else if (hue>=360)
+ {
+ hue=hue%360;
+ }
+
+ int &sat = Config_getInt("HTML_COLORSTYLE_SAT");
+ if (sat<0)
+ {
+ sat=0;
+ }
+ else if (sat>255)
+ {
+ sat=255;
+ }
+ int &gamma = Config_getInt("HTML_COLORSTYLE_GAMMA");
+ if (gamma<40)
+ {
+ gamma=40;
+ }
+ else if (gamma>240)
+ {
+ gamma=240;
+ }
+
// add default words if needed
QStrList &annotationFromBrief = Config_getList("ABBREVIATE_BRIEF");
diff --git a/src/config.xml b/src/config.xml
index 0c00f5e..088f9e7 100644
--- a/src/config.xml
+++ b/src/config.xml
@@ -222,15 +222,15 @@ sources. Doxygen will then generate output that is tailored for
VHDL.
' defval='0'/>
<option type='list' id='EXTENSION_MAPPING' format='string' docs='
-Doxygen selects the parser to use depending on the extension of the files it parses.
-With this tag you can assign which parser to use for a given extension.
-Doxygen has a built-in mapping, but you can override or extend it using this tag.
-The format is ext=language, where ext is a file extension, and language is one of
-the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
-Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
-.inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
-use: inc=Fortran f=C. Note that for custom extensions you also need to set
-FILE_PATTERNS otherwise the files are not read by doxygen.
+Doxygen selects the parser to use depending on the extension of the files it
+parses. With this tag you can assign which parser to use for a given extension.
+Doxygen has a built-in mapping, but you can override or extend it using this
+tag. The format is ext=language, where ext is a file extension, and language
+is one of the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++,
+D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+(default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
'>
</option>
<option type='bool' id='BUILTIN_STL_SUPPORT' docs='
@@ -399,12 +399,12 @@ by member name. If set to NO (the default) the members will appear in
declaration order.
' defval='0'/>
<option type='bool' id='SORT_MEMBERS_CTORS_1ST' docs='
-If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-will sort the (brief and detailed) documentation of class members so that
-constructors and destructors are listed first. If set to NO (the default)
-the constructors will appear in the respective orders defined by
-SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+will sort the (brief and detailed) documentation of class members so that
+constructors and destructors are listed first. If set to NO (the default)
+the constructors will appear in the respective orders defined by
+SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.' defval='0'/>
<option type='bool' id='SORT_GROUP_NAMES' docs='
If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
@@ -484,12 +484,12 @@ provided by doxygen. Whatever the program writes to standard output
is used as the file version. See the manual for examples.
' defval=''/>
<option type='string' id='LAYOUT_FILE' format='file' docs='
-The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
-doxygen. The layout file controls the global structure of the generated output files
-in an output format independent way. The create the layout file that represents
-doxygen&apos;s defaults, run doxygen with the -l option. You can optionally specify a
-file name after the option, if omitted DoxygenLayout.xml will be used as the name
-of the layout file.
+The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+by doxygen. The layout file controls the global structure of the generated
+output files in an output format independent way. The create the layout file
+that represents doxygen&apos;s defaults, run doxygen with the -l option.
+You can optionally specify a file name after the option, if omitted
+DoxygenLayout.xml will be used as the name of the layout file.
' defval=''/>
</group>
<group name='Messages' docs='configuration options related to warning and progress messages'>
@@ -769,6 +769,28 @@ will generate a default style sheet. Note that doxygen will try to copy
the style sheet file to the HTML output directory, so don&apos;t put your own
stylesheet in the HTML output directory as well, or it will be erased!
' defval='' depends='GENERATE_HTML'/>
+ <option type='int' id='HTML_COLORSTYLE_HUE' docs='
+The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+Doxygen will adjust the colors in the stylesheet and background images
+according to this color. Hue is specified as an angle on a colorwheel,
+see http://en.wikipedia.org/wiki/Hue for more information.
+For instance the value 0 represents red, 60 is yellow, 120 is green,
+180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+The allowed range is 0 to 359.
+' minval='0' maxval='359' defval='220' depends='GENERATE_HTML'/>
+ <option type='int' id='HTML_COLORSTYLE_SAT' docs='
+The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+the colors in the HTML output. For a value of 0 the output will use
+grayscales only. A value of 255 will produce the most vivid colors.
+' minval='0' maxval='255' defval='100' depends='GENERATE_HTML'/>
+ <option type='int' id='HTML_COLORSTYLE_GAMMA' docs='
+The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+the luminance component of the colors in the HTML output. Values below
+100 gradually make the output lighter, whereas values above 100 make
+the output darker. The value divided by 100 is the actual gamma applied,
+so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+and 100 does not change the gamma.
+' minval='40' maxval='240' defval='80'/>
<option type='bool' id='HTML_TIMESTAMP' docs='
If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
page will contain the date and time when the page was generated. Setting
@@ -795,7 +817,8 @@ HTML output directory. Running make will produce the docset in that
directory and running &quot;make install&quot; will install the docset in
~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
it at startup.
-See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+for more information.
' defval='0' depends='GENERATE_HTML'/>
<option type='string' id='DOCSET_FEEDNAME' format='string' docs='
When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
@@ -847,10 +870,10 @@ The TOC_EXPAND flag can be set to YES to add extra items for group members
to the contents of the HTML help documentation and to the tree view.
' defval='0' depends='GENERATE_HTMLHELP'/>
<option type='bool' id='GENERATE_QHP' docs='
-If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
-are set, an additional index file will be generated that can be used as input for
-Qt&apos;s qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
-HTML documentation.
+If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+that can be used as input for Qt&apos;s qhelpgenerator to generate a
+Qt Compressed Help (.qch) of the generated HTML documentation.
' defval='0' depends='GENERATE_HTML'/>
<option type='string' id='QCH_FILE' format='file' docs='
If the QHG_LOCATION tag is specified, the QCH_FILE tag can
@@ -868,18 +891,22 @@ Qt Help Project output. For more information please see
http://doc.trolltech.com/qthelpproject.html#virtual-folders
' defval='doc' depends='GENERATE_QHP'/>
<option type='string' id='QHP_CUST_FILTER_NAME' format='string' docs='
-If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
-For more information please see
+If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+add. For more information please see
http://doc.trolltech.com/qthelpproject.html#custom-filters
' defval='' depends='GENERATE_QHP'/>
<option type='string' id='QHP_CUST_FILTER_ATTRS' format='string' docs='
-The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
-&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#custom-filters&quot;&gt;Qt Help Project / Custom Filters&lt;/a&gt;.
+The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+custom filter to add. For more information please see
+&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#custom-filters&quot;&gt;
+Qt Help Project / Custom Filters&lt;/a&gt;.
' defval='' depends='GENERATE_QHP'/>
<option type='string' id='QHP_SECT_FILTER_ATTRS' format='string' docs='
-The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project&apos;s
+The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+project&apos;s
filter section matches.
-&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#filter-attributes&quot;&gt;Qt Help Project / Filter Attributes&lt;/a&gt;.
+&lt;a href=&quot;http://doc.trolltech.com/qthelpproject.html#filter-attributes&quot;&gt;
+Qt Help Project / Filter Attributes&lt;/a&gt;.
' defval='' depends='GENERATE_QHP'/>
<option type='string' id='QHG_LOCATION' format='file' docs='
If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
@@ -889,12 +916,12 @@ If non-empty doxygen will try to run qhelpgenerator on the generated
' defval='' depends='GENERATE_QHP'/>
<option type='bool' id='GENERATE_ECLIPSEHELP' docs='
If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-will be generated, which together with the HTML files, form an Eclipse help
+will be generated, which together with the HTML files, form an Eclipse help
plugin. To install this plugin and make it available under the help contents
menu in Eclipse, the contents of the directory containing the HTML and XML
files needs to be copied into the plugins directory of eclipse. The name of
the directory within the plugins directory should be the same as
-the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
the help appears.
' defval='0' depends='GENERATE_HTML'/>
<option type='string' id='ECLIPSE_DOC_ID' docs='
@@ -937,22 +964,22 @@ to manually remove any form_*.png images from the HTML output directory
to force them to be regenerated.
' minval='8' maxval='50' defval='10' depends='GENERATE_HTML'/>
<option type='bool' id='SEARCHENGINE' docs='
-When the SEARCHENGINE tag is enabled doxygen will generate a search box
+When the SEARCHENGINE tag is enabled doxygen will generate a search box
for the HTML output. The underlying search engine uses javascript
-and DHTML and should work on any modern browser. Note that when using
-HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+and DHTML and should work on any modern browser. Note that when using
+HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
(GENERATE_DOCSET) there is already a search function so this one should
typically be disabled. For large projects the javascript based search engine
can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
' defval='1' depends='GENERATE_HTML'/>
<option type='bool' id='SERVER_BASED_SEARCH' docs='
-When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-implemented using a PHP enabled web server instead of at the web client
+When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+implemented using a PHP enabled web server instead of at the web client
using Javascript. Doxygen will generate the search PHP script and index
-file to put on the web server. The advantage of the server
-based approach is that it scales better to large projects and allows
+file to put on the web server. The advantage of the server
+based approach is that it scales better to large projects and allows
full text search. The disadvances is that it is more difficult to setup
-and does not have live searching capabilities.
+and does not have live searching capabilities.
' defval='0' depends='SEARCHENGINE'/>
</group>
<group name='LaTeX' docs='configuration options related to the LaTeX output'>
@@ -1027,9 +1054,9 @@ include the index chapters (such as File Index, Compound Index, etc.)
in the output.
' defval='0' depends='GENERATE_LATEX'/>
<option type='bool' id='LATEX_SOURCE_CODE' docs='
-If LATEX_SOURCE_CODE is set to YES then doxygen will include
-source code with syntax highlighting in the LaTeX output.
-Note that which sources are shown also depends on other settings
+If LATEX_SOURCE_CODE is set to YES then doxygen will include
+source code with syntax highlighting in the LaTeX output.
+Note that which sources are shown also depends on other settings
such as SOURCE_BROWSER.
' defval='0' depends='GENERATE_LATEX'/>
</group>
diff --git a/src/configoptions.cpp b/src/configoptions.cpp
index 7212a6f..a51fae4 100644
--- a/src/configoptions.cpp
+++ b/src/configoptions.cpp
@@ -312,14 +312,15 @@ void addConfigOptions(Config *cfg)
//----
cl = cfg->addList(
"EXTENSION_MAPPING",
- "Doxygen selects the parser to use depending on the extension of the files it parses.\n"
- "With this tag you can assign which parser to use for a given extension.\n"
- "Doxygen has a built-in mapping, but you can override or extend it using this tag.\n"
- "The format is ext=language, where ext is a file extension, and language is one of\n"
- "the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,\n"
- "Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat\n"
- ".inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),\n"
- "use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen."
+ "Doxygen selects the parser to use depending on the extension of the files it\n"
+ "parses. With this tag you can assign which parser to use for a given extension.\n"
+ "Doxygen has a built-in mapping, but you can override or extend it using this\n"
+ "tag. The format is ext=language, where ext is a file extension, and language\n"
+ "is one of the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++,\n"
+ "D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make\n"
+ "doxygen treat .inc files as Fortran files (default is PHP), and .f files as C\n"
+ "(default is Fortran), use: inc=Fortran f=C. Note that for custom extensions\n"
+ "you also need to set FILE_PATTERNS otherwise the files are not read by doxygen."
);
//----
cb = cfg->addBool(
@@ -569,7 +570,13 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"SORT_MEMBERS_CTORS_1ST",
- "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.",
+ "If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen\n"
+ "will sort the (brief and detailed) documentation of class members so that\n"
+ "constructors and destructors are listed first. If set to NO (the default)\n"
+ "the constructors will appear in the respective orders defined by\n"
+ "SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.\n"
+ "This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO\n"
+ "and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.",
FALSE
);
//----
@@ -690,12 +697,12 @@ void addConfigOptions(Config *cfg)
//----
cs = cfg->addString(
"LAYOUT_FILE",
- "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by\n"
- "doxygen. The layout file controls the global structure of the generated output files\n"
- "in an output format independent way. The create the layout file that represents\n"
- "doxygen's defaults, run doxygen with the -l option. You can optionally specify a\n"
- "file name after the option, if omitted DoxygenLayout.xml will be used as the name\n"
- "of the layout file."
+ "The LAYOUT_FILE tag can be used to specify a layout file which will be parsed\n"
+ "by doxygen. The layout file controls the global structure of the generated\n"
+ "output files in an output format independent way. The create the layout file\n"
+ "that represents doxygen's defaults, run doxygen with the -l option.\n"
+ "You can optionally specify a file name after the option, if omitted\n"
+ "DoxygenLayout.xml will be used as the name of the layout file."
);
cs->setWidgetType(ConfigString::File);
//---------------------------------------------------------------------------
@@ -1100,6 +1107,39 @@ void addConfigOptions(Config *cfg)
cs->setWidgetType(ConfigString::File);
cs->addDependency("GENERATE_HTML");
//----
+ ci = cfg->addInt(
+ "HTML_COLORSTYLE_HUE",
+ "The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.\n"
+ "Doxygen will adjust the colors in the stylesheet and background images\n"
+ "according to this color. Hue is specified as an angle on a colorwheel,\n"
+ "see http://en.wikipedia.org/wiki/Hue for more information.\n"
+ "For instance the value 0 represents red, 60 is yellow, 120 is green,\n"
+ "180 is cyan, 240 is blue, 300 purple, and 360 is red again.\n"
+ "The allowed range is 0 to 359.",
+ 0,359,220
+ );
+ ci->addDependency("GENERATE_HTML");
+ //----
+ ci = cfg->addInt(
+ "HTML_COLORSTYLE_SAT",
+ "The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of\n"
+ "the colors in the HTML output. For a value of 0 the output will use\n"
+ "grayscales only. A value of 255 will produce the most vivid colors.",
+ 0,255,100
+ );
+ ci->addDependency("GENERATE_HTML");
+ //----
+ ci = cfg->addInt(
+ "HTML_COLORSTYLE_GAMMA",
+ "The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to\n"
+ "the luminance component of the colors in the HTML output. Values below\n"
+ "100 gradually make the output lighter, whereas values above 100 make\n"
+ "the output darker. The value divided by 100 is the actual gamma applied,\n"
+ "so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,\n"
+ "and 100 does not change the gamma.",
+ 40,240,80
+ );
+ //----
cb = cfg->addBool(
"HTML_TIMESTAMP",
"If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML\n"
@@ -1139,7 +1179,8 @@ void addConfigOptions(Config *cfg)
"directory and running \"make install\" will install the docset in\n"
"~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find\n"
"it at startup.\n"
- "See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.",
+ "See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html\n"
+ "for more information.",
FALSE
);
cb->addDependency("GENERATE_HTML");
@@ -1230,10 +1271,10 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"GENERATE_QHP",
- "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER\n"
- "are set, an additional index file will be generated that can be used as input for\n"
- "Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated\n"
- "HTML documentation.",
+ "If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and\n"
+ "QHP_VIRTUAL_FOLDER are set, an additional index file will be generated\n"
+ "that can be used as input for Qt's qhelpgenerator to generate a\n"
+ "Qt Compressed Help (.qch) of the generated HTML documentation.",
FALSE
);
cb->addDependency("GENERATE_HTML");
@@ -1267,24 +1308,28 @@ void addConfigOptions(Config *cfg)
//----
cs = cfg->addString(
"QHP_CUST_FILTER_NAME",
- "If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.\n"
- "For more information please see\n"
+ "If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to\n"
+ "add. For more information please see\n"
"http://doc.trolltech.com/qthelpproject.html#custom-filters"
);
cs->addDependency("GENERATE_QHP");
//----
cs = cfg->addString(
"QHP_CUST_FILTER_ATTRS",
- "The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see\n"
- "<a href=\"http://doc.trolltech.com/qthelpproject.html#custom-filters\">Qt Help Project / Custom Filters</a>."
+ "The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the\n"
+ "custom filter to add. For more information please see\n"
+ "<a href=\"http://doc.trolltech.com/qthelpproject.html#custom-filters\">\n"
+ "Qt Help Project / Custom Filters</a>."
);
cs->addDependency("GENERATE_QHP");
//----
cs = cfg->addString(
"QHP_SECT_FILTER_ATTRS",
- "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's\n"
+ "The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this\n"
+ "project's\n"
"filter section matches.\n"
- "<a href=\"http://doc.trolltech.com/qthelpproject.html#filter-attributes\">Qt Help Project / Filter Attributes</a>."
+ "<a href=\"http://doc.trolltech.com/qthelpproject.html#filter-attributes\">\n"
+ "Qt Help Project / Filter Attributes</a>."
);
cs->addDependency("GENERATE_QHP");
//----
@@ -1302,11 +1347,12 @@ void addConfigOptions(Config *cfg)
"GENERATE_ECLIPSEHELP",
"If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files\n"
" will be generated, which together with the HTML files, form an Eclipse help\n"
- " plugin. To install this plugin and make it available under the help contents\n"
+ "plugin. To install this plugin and make it available under the help contents\n"
"menu in Eclipse, the contents of the directory containing the HTML and XML\n"
"files needs to be copied into the plugins directory of eclipse. The name of\n"
"the directory within the plugins directory should be the same as\n"
- "the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears.",
+ "the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before\n"
+ "the help appears.",
FALSE
);
cb->addDependency("GENERATE_HTML");
@@ -1380,8 +1426,11 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"SEARCHENGINE",
- "When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript\n"
- "and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should\n"
+ "When the SEARCHENGINE tag is enabled doxygen will generate a search box\n"
+ "for the HTML output. The underlying search engine uses javascript\n"
+ "and DHTML and should work on any modern browser. Note that when using\n"
+ "HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets\n"
+ "(GENERATE_DOCSET) there is already a search function so this one should\n"
"typically be disabled. For large projects the javascript based search engine\n"
"can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.",
TRUE
@@ -1390,8 +1439,12 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"SERVER_BASED_SEARCH",
- "When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index\n"
- "file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup\n"
+ "When the SERVER_BASED_SEARCH tag is enabled the search engine will be\n"
+ "implemented using a PHP enabled web server instead of at the web client\n"
+ "using Javascript. Doxygen will generate the search PHP script and index\n"
+ "file to put on the web server. The advantage of the server\n"
+ "based approach is that it scales better to large projects and allows\n"
+ "full text search. The disadvances is that it is more difficult to setup\n"
"and does not have live searching capabilities.",
FALSE
);
@@ -1520,7 +1573,10 @@ void addConfigOptions(Config *cfg)
//----
cb = cfg->addBool(
"LATEX_SOURCE_CODE",
- "If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.",
+ "If LATEX_SOURCE_CODE is set to YES then doxygen will include\n"
+ "source code with syntax highlighting in the LaTeX output.\n"
+ "Note that which sources are shown also depends on other settings\n"
+ "such as SOURCE_BROWSER.",
FALSE
);
cb->addDependency("GENERATE_LATEX");
diff --git a/src/dbusxmlscanner.cpp b/src/dbusxmlscanner.cpp
index 9d6bfe5..666506d 100644
--- a/src/dbusxmlscanner.cpp
+++ b/src/dbusxmlscanner.cpp
@@ -879,7 +879,8 @@ void DBusXMLScanner::parseCode(CodeOutputInterface & /* codeOutIntf */,
int /* startLine */,
int /* endLine */,
bool /* inlineFragment */,
- MemberDef * /* memberDef */)
+ MemberDef * /* memberDef */,
+ bool /*showLineNumbers*/)
{ }
void DBusXMLScanner::resetCodeParserState()
diff --git a/src/dbusxmlscanner.h b/src/dbusxmlscanner.h
index 3a4994e..fd48cbc 100644
--- a/src/dbusxmlscanner.h
+++ b/src/dbusxmlscanner.h
@@ -44,7 +44,8 @@ public:
int startLine=-1,
int endLine=-1,
bool inlineFragment=FALSE,
- MemberDef *memberDef=0
+ MemberDef *memberDef=0,
+ bool showLineNumbers=TRUE
);
void resetCodeParserState();
diff --git a/src/definition.cpp b/src/definition.cpp
index 78e2883..a53586f 100644
--- a/src/definition.cpp
+++ b/src/definition.cpp
@@ -854,9 +854,11 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
void Definition::_writeSourceRefList(OutputList &ol,const char *scopeName,
const QCString &text,MemberSDict *members,bool /*funcOnly*/)
{
-static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
- ol.pushGeneratorState();
- if (/*Config_getBool("SOURCE_BROWSER") &&*/ members)
+ static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
+ static bool sourceBrowser = Config_getBool("SOURCE_BROWSER");
+ static bool refLinkSource = Config_getBool("REFERENCES_LINK_SOURCE");
+ ol.pushGeneratorState();
+ if (members)
{
ol.startParagraph();
ol.parseText(text);
@@ -893,22 +895,29 @@ static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
(md->isFunction() || md->isSlot() ||
md->isPrototype() || md->isSignal()
)
- ) name+="()";
+ )
+ {
+ name+="()";
+ }
//Definition *d = md->getOutputFileBase();
//if (d==Doxygen::globalScope) d=md->getBodyDef();
- if (!(md->isLinkable() && !Config_getBool("REFERENCES_LINK_SOURCE")) && md->getStartBodyLine()!=-1 && md->getBodyDef())
+ if (sourceBrowser &&
+ !(md->isLinkable() && !refLinkSource) &&
+ md->getStartBodyLine()!=-1 &&
+ md->getBodyDef()
+ )
{
//printf("md->getBodyDef()=%p global=%p\n",md->getBodyDef(),Doxygen::globalScope);
// for HTML write a real link
ol.pushGeneratorState();
//ol.disableAllBut(OutputGenerator::Html);
-
- ol.disable(OutputGenerator::RTF);
- ol.disable(OutputGenerator::Man);
- if (!latexSourceCode)
- {
- ol.disable(OutputGenerator::Latex);
- }
+
+ ol.disable(OutputGenerator::RTF);
+ ol.disable(OutputGenerator::Man);
+ if (!latexSourceCode)
+ {
+ ol.disable(OutputGenerator::Latex);
+ }
QCString lineStr,anchorStr;
anchorStr.sprintf("l%05d",md->getStartBodyLine());
//printf("Write object link to %s\n",md->getBodyDef()->getSourceFileBase().data());
@@ -917,11 +926,11 @@ static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
// for the other output formats just mention the name
ol.pushGeneratorState();
- ol.disable(OutputGenerator::Html);
- if (latexSourceCode)
+ ol.disable(OutputGenerator::Html);
+ if (latexSourceCode)
{
ol.disable(OutputGenerator::Latex);
- }
+ }
ol.docify(name);
ol.popGeneratorState();
}
@@ -935,20 +944,20 @@ static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE");
if (!latexSourceCode)
{
ol.disable(OutputGenerator::Latex);
- }
-
+ }
+
ol.writeObjectLink(md->getReference(),
- md->getOutputFileBase(),
- md->anchor(),name);
+ md->getOutputFileBase(),
+ md->anchor(),name);
ol.popGeneratorState();
// for the other output formats just mention the name
ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
- if (latexSourceCode)
- {
+ if (latexSourceCode)
+ {
ol.disable(OutputGenerator::Latex);
- }
+ }
ol.docify(name);
ol.popGeneratorState();
}
@@ -1234,6 +1243,7 @@ void Definition::writePathFragment(OutputList &ol) const
if (m_impl->outerScope && m_impl->outerScope!=Doxygen::globalScope)
{
m_impl->outerScope->writePathFragment(ol);
+#if 0
if (m_impl->outerScope->definitionType()==Definition::TypeClass ||
m_impl->outerScope->definitionType()==Definition::TypeNamespace)
{
@@ -1254,7 +1264,9 @@ void Definition::writePathFragment(OutputList &ol) const
ol.writeString("&raquo;");
ol.writeString("&nbsp;");
}
+#endif
}
+ ol.writeString(" <li>");
if (isLinkable())
{
if (definitionType()==Definition::TypeGroup && ((const GroupDef*)this)->groupTitle())
@@ -1276,6 +1288,7 @@ void Definition::writePathFragment(OutputList &ol) const
ol.docify(m_impl->localName);
ol.endBold();
}
+ ol.writeString(" </li>\n");
}
void Definition::writeNavigationPath(OutputList &ol) const
@@ -1283,9 +1296,11 @@ void Definition::writeNavigationPath(OutputList &ol) const
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
- ol.writeString(" <div class=\"navpath\">");
+ ol.writeString(" <div class=\"navpath\">\n");
+ ol.writeString(" <ul>\n");
writePathFragment(ol);
- ol.writeString("\n </div>\n");
+ ol.writeString(" </ul>\n");
+ ol.writeString(" </div>\n");
ol.popGeneratorState();
}
diff --git a/src/definition.h b/src/definition.h
index 050772d..9c3c1c5 100644
--- a/src/definition.h
+++ b/src/definition.h
@@ -307,6 +307,7 @@ class Definition : public DefinitionIntf, public LockableObj
void writePathFragment(OutputList &ol) const;
void writeNavigationPath(OutputList &ol) const;
virtual void writeQuickMemberLinks(OutputList &,MemberDef *) const {}
+ virtual void writeSummaryLinks(OutputList &) {}
/*! Writes the documentation anchors of the definition to
* the Doxygen::tagFile stream.
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index 1ca01b5..bc0f4f9 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -205,7 +205,7 @@ void DirDef::writeSubDirList(OutputList &ol)
// write subdir list
if (m_subdirs.count()>0)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("subdirs");
ol.parseText(theTranslator->trDir(TRUE,FALSE));
ol.endMemberHeader();
ol.startMemberList();
@@ -247,7 +247,7 @@ void DirDef::writeFileList(OutputList &ol)
// write file list
if (m_fileList->count()>0)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("files");
ol.parseText(theTranslator->trFile(TRUE,FALSE));
ol.endMemberHeader();
ol.startMemberList();
@@ -326,7 +326,6 @@ void DirDef::writeDocumentation(OutputList &ol)
writeNavigationPath(ol);
ol.endQuickIndices();
- ol.startContents();
startTitle(ol,getOutputFileBase());
ol.pushGeneratorState();
@@ -337,6 +336,7 @@ void DirDef::writeDocumentation(OutputList &ol)
ol.parseText(title);
ol.popGeneratorState();
endTitle(ol,getOutputFileBase(),title);
+ ol.startContents();
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
{
@@ -712,6 +712,7 @@ void DirRelation::writeDocumentation(OutputList &ol)
// write navigation path
m_src->writeNavigationPath(ol);
+ ol.startContents();
//startTitle(ol,getOutputFileBase());
// ol.parseText(shortTitle);
diff --git a/src/doctokenizer.l b/src/doctokenizer.l
index 97b29ca..52cb7d1 100644
--- a/src/doctokenizer.l
+++ b/src/doctokenizer.l
@@ -297,7 +297,7 @@ LISTITEM {BLANK}*{OPTSTARS}"-"("#")?{WS}
ENDLIST {BLANK}*{OPTSTARS}"."{BLANK}*\n
ATTRIB {ID}{WS}*("="{WS}*(("\""[^\"]*"\"")|("'"[^\']*"'")|[^ \t\r\n'"><]+))?
URLCHAR [a-z_A-Z0-9\!\~\,\:\;\'\$\?\@\&\%\#\.\-\+\/\=]
-URLMASK (([a-z_A-Z][^\>\"\n]*{URLCHAR})|({URLCHAR}+))([({]{URLCHAR}*[)}])?
+URLMASK ({URLCHAR}+([({]{URLCHAR}*[)}])?)*
FILESCHAR [a-z_A-Z0-9\\:\\\/\-\+]
FILEECHAR [a-z_A-Z0-9\-\+]
HFILEMASK ("."{FILESCHAR}*{FILEECHAR}+)*
diff --git a/src/dot.cpp b/src/dot.cpp
index a951cf6..04be1c1 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -268,11 +268,12 @@ static void setDotFontPath(const char *path)
ASSERT(g_dotFontPath.isEmpty());
g_dotFontPath = portable_getenv("DOTFONTPATH");
QCString newFontPath = Config_getString("DOT_FONTPATH");
- if (!newFontPath.isEmpty() && path)
+ QCString spath = path;
+ if (!newFontPath.isEmpty() && !spath.isEmpty())
{
- newFontPath.prepend(path+portable_pathListSeparator());
+ newFontPath.prepend(spath+portable_pathListSeparator());
}
- else if (newFontPath.isEmpty() && path)
+ else if (newFontPath.isEmpty() && !spath.isEmpty())
{
newFontPath=path;
}
@@ -286,7 +287,14 @@ static void setDotFontPath(const char *path)
static void unsetDotFontPath()
{
- portable_setenv("DOTFONTPATH",g_dotFontPath);
+ if (g_dotFontPath.isEmpty())
+ {
+ portable_unsetenv("DOTFONTPATH");
+ }
+ else
+ {
+ portable_setenv("DOTFONTPATH",g_dotFontPath);
+ }
g_dotFontPath="";
}
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index e3fffb3..87e66d1 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -5687,13 +5687,26 @@ static void findMember(EntryNav *rootNav,
}
else if (cd) // member specialization
{
+ MemberNameIterator mni(*mn);
+ MemberDef *declMd=0;
+ MemberDef *md=0;
+ for (mni.toFirst();(md=mni.current());++mni)
+ {
+ if (md->getClassDef()==cd)
+ {
+ // TODO: we should probably also check for matching arguments
+ declMd = md;
+ break;
+ }
+ }
MemberDef::MemberType mtype=MemberDef::Function;
ArgumentList *tArgList = new ArgumentList;
// getTemplateArgumentsFromName(cd->name()+"::"+funcName,root->tArgLists);
- MemberDef *md=new MemberDef(
+ md=new MemberDef(
root->fileName,root->startLine,
funcType,funcName,funcArgs,exceptions,
- root->protection,root->virt,root->stat,Member,
+ declMd ? declMd->protection() : root->protection,
+ root->virt,root->stat,Member,
mtype,tArgList,root->argList);
//printf("new specialized member %s args=`%s'\n",md->name().data(),funcArgs.data());
md->setTagInfo(rootNav->tagInfo());
@@ -8040,7 +8053,7 @@ static void buildExampleList(EntryNav *rootNav)
{
PageDef *pd=new PageDef(root->fileName,root->startLine,
root->name,root->brief+root->doc+root->inbodyDocs,root->args);
- pd->setFileName(convertNameToFile(pd->name()+"-example",TRUE,FALSE));
+ pd->setFileName(convertNameToFile(pd->name()+"-example"));
pd->addSectionsToDefinition(root->anchors);
//pi->addSections(root->anchors);
@@ -10187,7 +10200,7 @@ void generateOutput()
Doxygen::indexList.addImageFile("tab_b.gif");
Doxygen::indexList.addStyleSheetFile("tabs.css");
Doxygen::indexList.addImageFile("doxygen.png");
- if (Config_getBool("HTML_DYNAMIC_SECTIONS")) HtmlGenerator::generateSectionImages();
+ //if (Config_getBool("HTML_DYNAMIC_SECTIONS")) HtmlGenerator::generateSectionImages();
copyStyleSheet();
}
if (Config_getBool("GENERATE_LATEX"))
@@ -10276,7 +10289,6 @@ void generateOutput()
exit(1);
}
HtmlGenerator::writeSearchData(searchDirName);
- writeSearchStyleSheet();
if (!serverBasedSearch) // client side search index
{
writeJavascriptSearchIndex();
diff --git a/src/doxygen.css b/src/doxygen.css
index d6aaf28..b9053a7 100644
--- a/src/doxygen.css
+++ b/src/doxygen.css
@@ -8,7 +8,6 @@ body, table, div, p, dl {
/* @group Heading Levels */
h1 {
- text-align: center;
font-size: 150%;
}
@@ -64,8 +63,8 @@ h3.version {
}
div.qindex, div.navtab{
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
+ background-color: ##ee;
+ border: 1px solid ##b0;
text-align: center;
margin: 2px;
padding: 2px;
@@ -83,13 +82,13 @@ div.navtab {
/* @group Link Styling */
a {
- color: #153788;
+ color: ##50;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
- color: #1b77c5;
+ color: ##60;
}
a:hover {
@@ -102,9 +101,9 @@ a.qindex {
a.qindexHL {
font-weight: bold;
- background-color: #6666cc;
+ background-color: ##AA;
color: #ffffff;
- border: 1px double #9295C2;
+ border: 1px double ##98;
}
.contents a.qindexHL:visited {
@@ -119,11 +118,11 @@ a.elRef {
}
a.code {
- color: #3030f0;
+ color: ##60;
}
a.codeRef {
- color: #3030f0;
+ color: ##60;
}
/* @end */
@@ -138,8 +137,8 @@ dl.el {
}
pre.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
+ border: 1px solid ##CC;
+ background-color: ##f5;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
@@ -171,27 +170,32 @@ div.groupText {
body {
background: white;
color: black;
- margin-right: 20px;
- margin-left: 20px;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 10px;
+ margin-right: 10px;
}
td.indexkey {
- background-color: #e8eef2;
+ background-color: ##ee;
font-weight: bold;
- border: 1px solid #CCCCCC;
+ border: 1px solid ##cc;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
- background-color: #e8eef2;
- border: 1px solid #CCCCCC;
+ background-color: ##ee;
+ border: 1px solid ##cc;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
- background-color: #f0f0f0;
+ background-color: ##f0;
}
p.formulaDsp {
@@ -217,6 +221,11 @@ div.center img {
border: 0px;
}
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
img.footer {
border: 0px;
vertical-align: middle;
@@ -270,6 +279,7 @@ span.vhdllogic {
/* @end */
+/*
.search {
color: #003399;
font-weight: bold;
@@ -286,6 +296,7 @@ input.search {
font-weight: normal;
background-color: #e8eef2;
}
+*/
td.tiny {
font-size: 75%;
@@ -294,18 +305,18 @@ td.tiny {
.dirtab {
padding: 4px;
border-collapse: collapse;
- border: 1px solid #84b0c7;
+ border: 1px solid ##b0;
}
th.dirtab {
- background: #e8eef2;
+ background: ##ee;
font-weight: bold;
}
hr {
height: 0px;
border: none;
- border-top: 1px solid #666;
+ border-top: 1px solid ##66;
}
hr.footer {
@@ -317,7 +328,7 @@ hr.footer {
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
- background-color: #FAFAFA;
+ background-color: ##FA;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
@@ -329,7 +340,7 @@ hr.footer {
}
.memItemLeft, .memItemRight, .memTemplParams {
- border-top: 1px solid #ccc;
+ border-top: 1px solid ##cc;
}
.memItemLeft, .memTemplItemLeft {
@@ -337,7 +348,7 @@ hr.footer {
}
.memTemplParams {
- color: #606060;
+ color: ##60;
white-space: nowrap;
}
@@ -349,14 +360,14 @@ hr.footer {
.memtemplate {
font-size: 80%;
- color: #606060;
+ color: ##60;
font-weight: normal;
margin-left: 3px;
}
.memnav {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
+ background-color: ##ee;
+ border: 1px solid ##b0;
text-align: center;
margin: 2px;
margin-right: 15px;
@@ -375,19 +386,21 @@ hr.footer {
}
.memproto {
- border-top: 1px solid #84b0c7;
- border-left: 1px solid #84b0c7;
- border-right: 1px solid #84b0c7;
+ border-top: 1px solid ##80;
+ border-left: 1px solid ##80;
+ border-right: 1px solid ##80;
padding: 0;
- background-color: #d5e1e8;
+ background-color: ##c8;
+ color: ##2b;
font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* firefox specific markup */
- background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);
+ background-image: -moz-linear-gradient(center top, ##F8, ##E8 30%, ##E0 90%, ##D0);
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
- background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));
+ background-image: -webkit-gradient(linear,center top,center bottom,from(##F8),color-stop(0.3,##E0),color-stop(0.9,##E0),to(##D0));
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
@@ -395,20 +408,22 @@ hr.footer {
}
.memdoc {
- border-bottom: 1px solid #84b0c7;
- border-left: 1px solid #84b0c7;
- border-right: 1px solid #84b0c7;
+ border-bottom: 1px solid ##80;
+ border-left: 1px solid ##80;
+ border-right: 1px solid ##80;
padding: 2px 5px;
- background-color: #eef3f5;
+ background-color: ##E0;
border-top-width: 0;
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ background-image: -moz-linear-gradient(center top, ##FF 0%, ##F8 80%, ##F0);
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ background-image: -webkit-gradient(linear,center top,center bottom,from(##FF), color-stop(0.2,##F8), to(##F0));
}
.paramkey {
@@ -435,7 +450,7 @@ hr.footer {
.ftvtree {
font-family: sans-serif;
- margin: 0.5em;
+ margin: 0px;
}
/* these are for tree view when used as main index */
@@ -443,6 +458,7 @@ hr.footer {
.directory {
font-size: 9pt;
font-weight: bold;
+ margin: 5px;
}
.directory h3 {
@@ -520,9 +536,13 @@ proper pixel height of your image.
/* @end */
+div.dynheader {
+ margin-top: 8px;
+}
+
address {
font-style: normal;
- color: #333;
+ color: ##33;
}
table.doxtable {
@@ -530,12 +550,12 @@ table.doxtable {
}
table.doxtable td, table.doxtable th {
- border: 1px solid #153788;
+ border: 1px solid ##37;
padding: 3px 7px 2px;
}
table.doxtable th {
- background-color: #254798;
+ background-color: ##47;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
@@ -543,3 +563,78 @@ table.doxtable th {
text-align:left;
}
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:##9b;
+ border:solid 1px ##ca;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+}
+
+.navpath a
+{
+ height:32px;
+ display:block;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ padding-right: 15px;
+ text-decoration: none;
+ outline: none;
+ color:##45;
+}
+
+.navpath a:hover
+{
+ color:##80;
+}
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-color: ##FA;
+ margin: 0px;
+ border-bottom: 1px solid ##CC;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
diff --git a/src/doxygen_css.h b/src/doxygen_css.h
index 5d58fad..3d91609 100644
--- a/src/doxygen_css.h
+++ b/src/doxygen_css.h
@@ -8,7 +8,6 @@
"/* @group Heading Levels */\n"
"\n"
"h1 {\n"
-" text-align: center;\n"
" font-size: 150%;\n"
"}\n"
"\n"
@@ -64,8 +63,8 @@
"}\n"
"\n"
"div.qindex, div.navtab{\n"
-" background-color: #e8eef2;\n"
-" border: 1px solid #84b0c7;\n"
+" background-color: ##ee;\n"
+" border: 1px solid ##b0;\n"
" text-align: center;\n"
" margin: 2px;\n"
" padding: 2px;\n"
@@ -83,13 +82,13 @@
"/* @group Link Styling */\n"
"\n"
"a {\n"
-" color: #153788;\n"
+" color: ##50;\n"
" font-weight: normal;\n"
" text-decoration: none;\n"
"}\n"
"\n"
".contents a:visited {\n"
-" color: #1b77c5;\n"
+" color: ##60;\n"
"}\n"
"\n"
"a:hover {\n"
@@ -102,9 +101,9 @@
"\n"
"a.qindexHL {\n"
" font-weight: bold;\n"
-" background-color: #6666cc;\n"
+" background-color: ##AA;\n"
" color: #ffffff;\n"
-" border: 1px double #9295C2;\n"
+" border: 1px double ##98;\n"
"}\n"
"\n"
".contents a.qindexHL:visited {\n"
@@ -119,11 +118,11 @@
"}\n"
"\n"
"a.code {\n"
-" color: #3030f0;\n"
+" color: ##60;\n"
"}\n"
"\n"
"a.codeRef {\n"
-" color: #3030f0;\n"
+" color: ##60;\n"
"}\n"
"\n"
"/* @end */\n"
@@ -138,8 +137,8 @@
"}\n"
"\n"
"pre.fragment {\n"
-" border: 1px solid #CCCCCC;\n"
-" background-color: #f5f5f5;\n"
+" border: 1px solid ##CC;\n"
+" background-color: ##f5;\n"
" padding: 4px 6px;\n"
" margin: 4px 8px 4px 2px;\n"
" overflow: auto;\n"
@@ -171,27 +170,32 @@
"body {\n"
" background: white;\n"
" color: black;\n"
-" margin-right: 20px;\n"
-" margin-left: 20px;\n"
+" margin: 0;\n"
+"}\n"
+"\n"
+"div.contents {\n"
+" margin-top: 10px;\n"
+" margin-left: 10px;\n"
+" margin-right: 10px;\n"
"}\n"
"\n"
"td.indexkey {\n"
-" background-color: #e8eef2;\n"
+" background-color: ##ee;\n"
" font-weight: bold;\n"
-" border: 1px solid #CCCCCC;\n"
+" border: 1px solid ##cc;\n"
" margin: 2px 0px 2px 0;\n"
" padding: 2px 10px;\n"
"}\n"
"\n"
"td.indexvalue {\n"
-" background-color: #e8eef2;\n"
-" border: 1px solid #CCCCCC;\n"
+" background-color: ##ee;\n"
+" border: 1px solid ##cc;\n"
" padding: 2px 10px;\n"
" margin: 2px 0px;\n"
"}\n"
"\n"
"tr.memlist {\n"
-" background-color: #f0f0f0;\n"
+" background-color: ##f0;\n"
"}\n"
"\n"
"p.formulaDsp {\n"
@@ -217,6 +221,11 @@
" border: 0px;\n"
"}\n"
"\n"
+"address.footer {\n"
+" text-align: right;\n"
+" padding-right: 12px;\n"
+"}\n"
+"\n"
"img.footer {\n"
" border: 0px;\n"
" vertical-align: middle;\n"
@@ -270,6 +279,7 @@
"\n"
"/* @end */\n"
"\n"
+"/*\n"
".search {\n"
" color: #003399;\n"
" font-weight: bold;\n"
@@ -286,6 +296,7 @@
" font-weight: normal;\n"
" background-color: #e8eef2;\n"
"}\n"
+"*/\n"
"\n"
"td.tiny {\n"
" font-size: 75%;\n"
@@ -294,18 +305,18 @@
".dirtab {\n"
" padding: 4px;\n"
" border-collapse: collapse;\n"
-" border: 1px solid #84b0c7;\n"
+" border: 1px solid ##b0;\n"
"}\n"
"\n"
"th.dirtab {\n"
-" background: #e8eef2;\n"
+" background: ##ee;\n"
" font-weight: bold;\n"
"}\n"
"\n"
"hr {\n"
" height: 0px;\n"
" border: none;\n"
-" border-top: 1px solid #666;\n"
+" border-top: 1px solid ##66;\n"
"}\n"
"\n"
"hr.footer {\n"
@@ -317,7 +328,7 @@
".mdescLeft, .mdescRight,\n"
".memItemLeft, .memItemRight,\n"
".memTemplItemLeft, .memTemplItemRight, .memTemplParams {\n"
-" background-color: #FAFAFA;\n"
+" background-color: ##FA;\n"
" border: none;\n"
" margin: 4px;\n"
" padding: 1px 0 0 8px;\n"
@@ -329,7 +340,7 @@
"}\n"
"\n"
".memItemLeft, .memItemRight, .memTemplParams {\n"
-" border-top: 1px solid #ccc;\n"
+" border-top: 1px solid ##cc;\n"
"}\n"
"\n"
".memItemLeft, .memTemplItemLeft {\n"
@@ -337,7 +348,7 @@
"}\n"
"\n"
".memTemplParams {\n"
-" color: #606060;\n"
+" color: ##60;\n"
" white-space: nowrap;\n"
"}\n"
"\n"
@@ -349,14 +360,14 @@
"\n"
".memtemplate {\n"
" font-size: 80%;\n"
-" color: #606060;\n"
+" color: ##60;\n"
" font-weight: normal;\n"
" margin-left: 3px;\n"
"}\n"
"\n"
".memnav {\n"
-" background-color: #e8eef2;\n"
-" border: 1px solid #84b0c7;\n"
+" background-color: ##ee;\n"
+" border: 1px solid ##b0;\n"
" text-align: center;\n"
" margin: 2px;\n"
" margin-right: 15px;\n"
@@ -375,19 +386,21 @@
"}\n"
"\n"
".memproto {\n"
-" border-top: 1px solid #84b0c7; \n"
-" border-left: 1px solid #84b0c7; \n"
-" border-right: 1px solid #84b0c7; \n"
+" border-top: 1px solid ##80;\n"
+" border-left: 1px solid ##80;\n"
+" border-right: 1px solid ##80;\n"
" padding: 0;\n"
-" background-color: #d5e1e8;\n"
+" background-color: ##c8;\n"
+" color: ##2b;\n"
" font-weight: bold;\n"
+" text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);\n"
" /* firefox specific markup */\n"
-" background-image: -moz-linear-gradient(rgba(228, 233, 245, 1.0) 0%, rgba(193, 205, 232, 1.0) 100%);\n"
+" background-image: -moz-linear-gradient(center top, ##F8, ##E8 30%, ##E0 90%, ##D0);\n"
" -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n"
" -moz-border-radius-topright: 8px;\n"
" -moz-border-radius-topleft: 8px;\n"
" /* webkit specific markup */\n"
-" background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(228, 233, 245, 1.0)), to(rgba(193, 205, 232, 1.0)));\n"
+" background-image: -webkit-gradient(linear,center top,center bottom,from(##F8),color-stop(0.3,##E0),color-stop(0.9,##E0),to(##D0));\n"
" -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n"
" -webkit-border-top-right-radius: 8px;\n"
" -webkit-border-top-left-radius: 8px;\n"
@@ -395,20 +408,22 @@
"}\n"
"\n"
".memdoc {\n"
-" border-bottom: 1px solid #84b0c7; \n"
-" border-left: 1px solid #84b0c7; \n"
-" border-right: 1px solid #84b0c7; \n"
+" border-bottom: 1px solid ##80; \n"
+" border-left: 1px solid ##80; \n"
+" border-right: 1px solid ##80; \n"
" padding: 2px 5px;\n"
-" background-color: #eef3f5;\n"
+" background-color: ##E0;\n"
" border-top-width: 0;\n"
" /* firefox specific markup */\n"
" -moz-border-radius-bottomleft: 8px;\n"
" -moz-border-radius-bottomright: 8px;\n"
" -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n"
+" background-image: -moz-linear-gradient(center top, ##FF 0%, ##F8 80%, ##F0);\n"
" /* webkit specific markup */\n"
" -webkit-border-bottom-left-radius: 8px;\n"
" -webkit-border-bottom-right-radius: 8px;\n"
" -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n"
+" background-image: -webkit-gradient(linear,center top,center bottom,from(##FF), color-stop(0.2,##F8), to(##F0));\n"
"}\n"
"\n"
".paramkey {\n"
@@ -435,7 +450,7 @@
"\n"
".ftvtree {\n"
" font-family: sans-serif;\n"
-" margin: 0.5em;\n"
+" margin: 0px;\n"
"}\n"
"\n"
"/* these are for tree view when used as main index */\n"
@@ -443,6 +458,7 @@
".directory {\n"
" font-size: 9pt;\n"
" font-weight: bold;\n"
+" margin: 5px;\n"
"}\n"
"\n"
".directory h3 {\n"
@@ -520,9 +536,13 @@
"\n"
"/* @end */\n"
"\n"
+"div.dynheader {\n"
+" margin-top: 8px;\n"
+"}\n"
+"\n"
"address {\n"
" font-style: normal;\n"
-" color: #333;\n"
+" color: ##33;\n"
"}\n"
"\n"
"table.doxtable {\n"
@@ -530,12 +550,12 @@
"}\n"
"\n"
"table.doxtable td, table.doxtable th {\n"
-" border: 1px solid #153788;\n"
+" border: 1px solid ##37;\n"
" padding: 3px 7px 2px;\n"
"}\n"
"\n"
"table.doxtable th {\n"
-" background-color: #254798;\n"
+" background-color: ##47;\n"
" color: #FFFFFF;\n"
" font-size: 110%;\n"
" padding-bottom: 4px;\n"
@@ -543,3 +563,78 @@
" text-align:left;\n"
"}\n"
"\n"
+".tabsearch {\n"
+" top: 0px;\n"
+" left: 10px;\n"
+" height: 36px;\n"
+" background-image: url('tab_b.png');\n"
+" z-index: 101;\n"
+" overflow: hidden;\n"
+" font-size: 13px;\n"
+"}\n"
+"\n"
+".navpath ul\n"
+"{\n"
+" font-size: 11px;\n"
+" background-image:url('tab_b.png');\n"
+" background-repeat:repeat-x;\n"
+" height:30px;\n"
+" line-height:30px;\n"
+" color:##9b;\n"
+" border:solid 1px ##ca;\n"
+" overflow:hidden;\n"
+" margin:0px;\n"
+" padding:0px;\n"
+"}\n"
+"\n"
+".navpath li\n"
+"{\n"
+" list-style-type:none;\n"
+" float:left;\n"
+" padding-left:10px;\n"
+"}\n"
+"\n"
+".navpath a\n"
+"{\n"
+" height:32px;\n"
+" display:block;\n"
+" background-image:url('bc_s.png');\n"
+" background-repeat:no-repeat;\n"
+" background-position:right;\n"
+" padding-right: 15px;\n"
+" text-decoration: none;\n"
+" outline: none;\n"
+" color:##45;\n"
+"}\n"
+"\n"
+".navpath a:hover\n"
+"{\n"
+" color:##80;\n"
+"}\n"
+"\n"
+"div.summary\n"
+"{\n"
+" float: right;\n"
+" font-size: 8pt;\n"
+" padding-right: 5px;\n"
+" width: 50%;\n"
+" text-align: right;\n"
+"} \n"
+"\n"
+"div.summary a\n"
+"{\n"
+" white-space: nowrap;\n"
+"}\n"
+"\n"
+"div.header\n"
+"{\n"
+" background-color: ##FA;\n"
+" margin: 0px;\n"
+" border-bottom: 1px solid ##CC;\n"
+"}\n"
+"\n"
+"div.headertitle\n"
+"{\n"
+" padding: 5px 5px 5px 10px;\n"
+"}\n"
+"\n"
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 0f2889a..d81a5fb 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -457,6 +457,41 @@ void FileDef::writeAuthorSection(OutputList &ol)
ol.popGeneratorState();
}
+void FileDef::writeSummaryLinks(OutputList &ol)
+{
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ QListIterator<LayoutDocEntry> eli(
+ LayoutDocManager::instance().docEntries(LayoutDocManager::File));
+ LayoutDocEntry *lde;
+ bool first=TRUE;
+ for (eli.toFirst();(lde=eli.current());++eli)
+ {
+ if ((lde->kind()==LayoutDocEntry::FileClasses && classSDict && classSDict->declVisible()) ||
+ (lde->kind()==LayoutDocEntry::FileNamespaces && namespaceSDict && namespaceSDict->declVisible())
+ )
+ {
+ LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
+ QCString label = lde->kind()==LayoutDocEntry::FileClasses ? "nested-classes" : "namespaces";
+ writeSummaryLink(ol,label,ls->title,first);
+ }
+ else if (lde->kind()==LayoutDocEntry::MemberDecl)
+ {
+ LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
+ MemberList * ml = getMemberList(lmd->type);
+ if (ml && ml->declVisible())
+ {
+ writeSummaryLink(ol,ml->listTypeAsString(),lmd->title,first);
+ }
+ }
+ }
+ if (!first)
+ {
+ ol.writeString(" </div>\n");
+ }
+ ol.popGeneratorState();
+}
+
/*! Write the documentation page for this file to the file of output
generators \a ol.
*/
@@ -485,9 +520,8 @@ void FileDef::writeDocumentation(OutputList &ol)
startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_FileVisible,TRUE);
getDirDef()->writeNavigationPath(ol);
ol.endQuickIndices();
- ol.startContents();
QCString pageTitleShort=theTranslator->trFileReference(name());
- startTitle(ol,getOutputFileBase());
+ startTitle(ol,getOutputFileBase(),this);
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.parseText(pageTitleShort); // Html only
@@ -501,11 +535,14 @@ void FileDef::writeDocumentation(OutputList &ol)
else
{
startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_FileVisible);
- startTitle(ol,getOutputFileBase());
+ startTitle(ol,getOutputFileBase(),this);
ol.parseText(pageTitle);
addGroupListToTitle(ol,this);
endTitle(ol,getOutputFileBase(),title);
}
+
+ ol.startContents();
+
if (!fileVersion.isEmpty())
{
ol.disableAllBut(OutputGenerator::Html);
@@ -726,7 +763,6 @@ void FileDef::writeSource(OutputList &ol)
startFile(ol,getSourceFileBase(),0,pageTitle,HLI_FileVisible,TRUE);
getDirDef()->writeNavigationPath(ol);
ol.endQuickIndices();
- ol.startContents();
startTitle(ol,getOutputFileBase());
ol.parseText(name());
endTitle(ol,getOutputFileBase(),title);
@@ -739,6 +775,8 @@ void FileDef::writeSource(OutputList &ol)
endTitle(ol,getSourceFileBase(),0);
}
+ ol.startContents();
+
if (isLinkable())
{
if (latexSourceCode) ol.disable(OutputGenerator::Latex);
@@ -756,6 +794,7 @@ void FileDef::writeSource(OutputList &ol)
FALSE,0,this
);
ol.endCodeFragment();
+ ol.endContents();
endFile(ol);
ol.enableAll();
}
diff --git a/src/filedef.h b/src/filedef.h
index 9ca3bee..0ea156f 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -130,6 +130,7 @@ class FileDef : public Definition
void writeDocumentation(OutputList &ol);
void writeMemberPages(OutputList &ol);
void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const;
+ void writeSummaryLinks(OutputList &ol);
void writeSource(OutputList &ol);
void parseSource();
diff --git a/src/fortrancode.h b/src/fortrancode.h
index a06908a..8880a25 100644
--- a/src/fortrancode.h
+++ b/src/fortrancode.h
@@ -28,7 +28,7 @@ class MemberDef;
void parseFortranCode(CodeOutputInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd=0,
int startLine=-1,int endLine=-1,bool inlineFragment=FALSE,
- MemberDef *memberDef=0);
+ MemberDef *memberDef=0,bool showLineNumbers=TRUE);
void resetFortranCodeParserState();
void codeFreeScanner();
diff --git a/src/fortrancode.l b/src/fortrancode.l
index d424159..d8f592c 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -988,7 +988,7 @@ void resetFortranCodeParserState() {}
void parseFortranCode(CodeOutputInterface &od,const char *className,const QCString &s,
bool exBlock, const char *exName,FileDef *fd,
int startLine,int endLine,bool inlineFragment,
- MemberDef *memberDef)
+ MemberDef *memberDef,bool)
{
//printf("***parseCode() exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd);
diff --git a/src/fortranscanner.h b/src/fortranscanner.h
index d9f43eb..52215f6 100644
--- a/src/fortranscanner.h
+++ b/src/fortranscanner.h
@@ -41,7 +41,8 @@ class FortranLanguageScanner : public ParserInterface
int startLine=-1,
int endLine=-1,
bool inlineFragment=FALSE,
- MemberDef *memberDef=0
+ MemberDef *memberDef=0,
+ bool showLineNumbers=TRUE
);
void resetCodeParserState();
void parsePrototype(const char *text);
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index 8c51d1a..0170907 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -154,7 +154,8 @@ static Argument *parameter; // element of parameter list
static QCString argType; // fortran type of an argument of a parameter list
static QCString argName; // last identifier name in variable list
static QCString initializer; // initial value of a variable
-static int initializerScope; // number if nested array scopes in initializer
+static int initializerArrayScope; // number if nested array scopes in initializer
+static int initializerScope; // number if nested function calls in initializer
static QCString useModuleName; // name of module in the use statement
static Protection defaultProtection;
@@ -310,24 +311,34 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
}
- /*------ ignore strings */
-<*>"\\\\" { /* ignore \\ */}
-<*>"\\\""|\\\' { /* ignore \" and \' */}
-
+ /*------ ignore strings that are not initialization strings */
+<*>"\\\\" { if (yy_top_state() == Initialization
+ || yy_top_state() == ArrayInitializer)
+ initializer+=yytext;
+ }
+<*>"\\\""|\\\' { if (yy_top_state() == Initialization
+ || yy_top_state() == ArrayInitializer)
+ initializer+=yytext;
+ }
<String>\"|\' { // string ends with next quote without previous backspace
if (yytext[0]!=stringStartSymbol) REJECT; // single vs double quote
- // fprintf(stderr,"string end: %s\n",debugStr.data());
+ if (yy_top_state() == Initialization
+ || yy_top_state() == ArrayInitializer)
+ initializer+=yytext;
yy_pop_state();
}
-
-<String>. { debugStr+=yytext; } // ignore String contents (especially '!')
-
+<String>. { if (yy_top_state() == Initialization
+ || yy_top_state() == ArrayInitializer)
+ initializer+=yytext;
+ }
<*>\"|\' { /* string starts */
if (YY_START == StrIgnore) REJECT; // ignore in simple comments
- // fprintf(stderr,"string start: %c %d\n",yytext[0],yyLineNr);
yy_push_state(YY_START);
+ if (yy_top_state() == Initialization
+ || yy_top_state() == ArrayInitializer)
+ initializer+=yytext;
stringStartSymbol=yytext[0]; // single or double quote
- BEGIN(String); debugStr="!^!";
+ BEGIN(String);
}
/*------ ignore simple comment (not documentation comments) */
@@ -629,7 +640,7 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
<Variable>{COMMA} {}
<Variable>{BS}"=" { yy_push_state(YY_START);
initializer="";
- initializerScope = 0;
+ initializerScope = initializerArrayScope = 0;
BEGIN(Initialization);
}
<Variable>"\n" { currentModifiers = SymbolModifiers();
@@ -639,22 +650,33 @@ PREFIX (RECURSIVE{BS_}|PURE{BS_}|ELEMENTAL{BS_}){0,2}(RECURSIVE|PURE|ELEMENTA
}
<Initialization,ArrayInitializer>"(/" { initializer+=yytext;
- initializerScope++;
+ initializerArrayScope++;
BEGIN(ArrayInitializer); // initializer may contain comma
}
<ArrayInitializer>"/)" { initializer+=yytext;
- initializerScope--;
- if(initializerScope<=0)
+ initializerArrayScope--;
+ if(initializerArrayScope<=0)
{
- initializerScope = 0; // just in case
+ initializerArrayScope = 0; // just in case
BEGIN(Initialization);
}
}
<ArrayInitializer>. { initializer+=yytext; }
-<Initialization>{COMMA} { yy_pop_state(); // end initialization
- if (v_type == V_VARIABLE) last_entry->initializer= initializer;
- }
-<Initialization>"\n"|"!" { //|
+<Initialization>"(" { initializerScope++;
+ initializer+=yytext;
+ }
+<Initialization>")" { initializerScope--;
+ initializer+=yytext;
+ }
+<Initialization>{COMMA} { if (initializerScope == 0)
+ {
+ yy_pop_state(); // end initialization
+ if (v_type == V_VARIABLE) last_entry->initializer= initializer;
+ }
+ else
+ initializer+=", ";
+ }
+<Initialization>"\n"|"!" { //|
yy_pop_state(); // end initialization
if (v_type == V_VARIABLE) last_entry->initializer= initializer;
unput(*yytext);
@@ -1663,7 +1685,7 @@ static void parseMain(const char *fileName,const char *fileBuf,Entry *rt)
isFixedForm = recognizeFixedForm(fileBuf);
if (isFixedForm) {
- printf("Prepassing fixed form of %s\n", yyFileName.data());
+ printf("Prepassing fixed form of %s\n", fileName);
//printf("---strlen=%d\n", strlen(fileBuf));
//clock_t start=clock();
@@ -1729,11 +1751,13 @@ void FortranLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
int startLine,
int endLine,
bool inlineFragment,
- MemberDef *memberDef
+ MemberDef *memberDef,
+ bool showLineNumbers
)
{
::parseFortranCode(codeOutIntf,scopeName,input,isExampleBlock,exampleName,
- fileDef,startLine,endLine,inlineFragment,memberDef);
+ fileDef,startLine,endLine,inlineFragment,memberDef,
+ showLineNumbers);
}
bool FortranLanguageScanner::needsPreprocessing(const QCString &extension)
diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp
index a62888a..7e27b23 100644
--- a/src/ftvhelp.cpp
+++ b/src/ftvhelp.cpp
@@ -635,10 +635,10 @@ void FTVHelp::generateTreeView(QString* OutString)
if (m_topLevelIndex)
{
- if (searchEngine)
- {
- t << "<!-- This comment will put IE 6, 7 and 8 in quirks mode -->" << endl;
- }
+ //if (searchEngine)
+ //{
+ // t << "<!-- This comment will put IE 6, 7 and 8 in quirks mode -->" << endl;
+ //}
t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
t << " <head>\n";
@@ -744,36 +744,41 @@ void FTVHelp::generateTreeView(QString* OutString)
t << " --></script>\n";
if (!serverBasedSearch)
{
- t << " <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
- t << " <div class=\"MSearchBoxRow\"><span class=\"MSearchBoxLeft\">\n";
- t << " <a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\">"
+ t << " <div class=\"tabsearch\">\n";
+ t << " <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
+ t << " <span class=\"left\">\n";
+ t << " <a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\">"
<< "<img id=\"MSearchCloseImg\" border=\"0\" src=\"search/close.png\" alt=\"\"/></a>\n";
- t << " <input type=\"text\" id=\"MSearchField\" value=\""
+ t << " <input type=\"text\" id=\"MSearchField\" value=\""
<< theTranslator->trSearch() << "\" accesskey=\"S\"\n";
- t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
- t << " onblur=\"searchBox.OnSearchFieldFocus(false)\" \n";
- t << " onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>\n";
- t << " </span><span class=\"MSearchBoxRight\">\n";
- t << " <img id=\"MSearchSelect\" src=\"search/search.png\"\n";
- t << " onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
- t << " onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
- t << " alt=\"\"/>\n";
- t << " </span></div><div class=\"MSearchBoxSpacer\">&nbsp;</div>\n";
+ t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
+ t << " onblur=\"searchBox.OnSearchFieldFocus(false)\" \n";
+ t << " onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>\n";
+ t << " </span><span class=\"right\">\n";
+ t << " <img id=\"MSearchSelect\" src=\"search/mag_sel.png\"\n";
+ t << " onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
+ t << " onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
+ t << " alt=\"\"/>\n";
+ t << " </span>\n";
+ t << " </div>\n";
t << " </div>\n";
HtmlGenerator::writeSearchFooter(t,QCString());
}
else
{
+ t << " <div class=\"tabsearch\">\n";
t << " <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
+ t << " <span class=\"left\">\n";
t << " <form id=\"FSearchBox\" action=\"search.php\" method=\"get\" target=\"basefrm\">\n";
- t << " <img id=\"MSearchSelect\" src=\"search/search.png\" alt=\"\"/>\n";
+ t << " <img id=\"MSearchSelect\" src=\"search/mag.png\" alt=\"\"/>\n";
t << " <input type=\"text\" id=\"MSearchField\" name=\"query\" value=\""
<< theTranslator->trSearch() << "\" size=\"20\" accesskey=\"S\" \n";
t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
t << " onblur=\"searchBox.OnSearchFieldFocus(false)\"/>\n";
t << " </form>\n";
- t << " <div class=\"MSearchBoxSpacer\">&nbsp;</div>\n";
+ t << " </span><span class=\"right\"></span>\n";
t << " </div>\n";
+ t << " </div>\n";
}
}
t << " <div class=\"directory\">\n";
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index ea33244..71e5082 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -604,7 +604,7 @@ void GroupDef::writeFiles(OutputList &ol,const QCString &title)
// write list of files
if (fileList->count()>0)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("files");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
@@ -645,7 +645,7 @@ void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title)
// write list of groups
if (groupList->count()>0)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("groups");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
@@ -681,7 +681,7 @@ void GroupDef::writeDirs(OutputList &ol,const QCString &title)
// write list of directories
if (dirList->count()>0)
{
- ol.startMemberHeader();
+ ol.startMemberHeader("dirs");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
@@ -803,14 +803,57 @@ void GroupDef::writeAuthorSection(OutputList &ol)
ol.popGeneratorState();
}
+void GroupDef::writeSummaryLinks(OutputList &ol)
+{
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ QListIterator<LayoutDocEntry> eli(
+ LayoutDocManager::instance().docEntries(LayoutDocManager::Group));
+ LayoutDocEntry *lde;
+ bool first=TRUE;
+ for (eli.toFirst();(lde=eli.current());++eli)
+ {
+ if ((lde->kind()==LayoutDocEntry::GroupClasses && classSDict->declVisible()) ||
+ (lde->kind()==LayoutDocEntry::GroupNamespaces && namespaceSDict->declVisible()) ||
+ (lde->kind()==LayoutDocEntry::GroupFiles && fileList->count()>0) ||
+ (lde->kind()==LayoutDocEntry::GroupNestedGroups && groupList->count()>0) ||
+ (lde->kind()==LayoutDocEntry::GroupDirs && dirList->count()>0)
+ )
+ {
+ LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde;
+ QCString label = lde->kind()==LayoutDocEntry::GroupClasses ? "nested-classes" :
+ lde->kind()==LayoutDocEntry::GroupNamespaces ? "namespaces" :
+ lde->kind()==LayoutDocEntry::GroupFiles ? "files" :
+ lde->kind()==LayoutDocEntry::GroupNestedGroups ? "groups" :
+ "dirs";
+ writeSummaryLink(ol,label,ls->title,first);
+ }
+ else if (lde->kind()==LayoutDocEntry::MemberDecl)
+ {
+ LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde;
+ MemberList * ml = getMemberList(lmd->type);
+ if (ml && ml->declVisible())
+ {
+ writeSummaryLink(ol,ml->listTypeAsString(),lmd->title,first);
+ }
+ }
+ }
+ if (!first)
+ {
+ ol.writeString(" </div>\n");
+ }
+ ol.popGeneratorState();
+}
+
void GroupDef::writeDocumentation(OutputList &ol)
{
ol.pushGeneratorState();
startFile(ol,getOutputFileBase(),name(),title);
- startTitle(ol,getOutputFileBase());
+ startTitle(ol,getOutputFileBase(),this);
ol.parseText(title);
addGroupListToTitle(ol,this);
endTitle(ol,getOutputFileBase(),title);
+ ol.startContents();
if (Doxygen::searchIndex)
{
diff --git a/src/groupdef.h b/src/groupdef.h
index 341fa98..3e8d188 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -129,6 +129,7 @@ class GroupDef : public Definition
void startMemberDocumentation(OutputList &ol);
void endMemberDocumentation(OutputList &ol);
void writeAuthorSection(OutputList &ol);
+ void writeSummaryLinks(OutputList &ol);
QCString title; // title of the group
bool titleSet; // true if title is not the same as the name
diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp
index bb5bda7..a844dcb 100644
--- a/src/htmlgen.cpp
+++ b/src/htmlgen.cpp
@@ -16,9 +16,11 @@
*/
#include <stdlib.h>
+#include <math.h>
#include "qtbc.h"
#include <qdir.h>
+#include <qregexp.h>
#include "message.h"
#include "htmlgen.h"
#include "config.h"
@@ -38,8 +40,8 @@
#include "dirdef.h"
#include "vhdldocgen.h"
#include "layout.h"
+#include "image.h"
-// #define GROUP_COLOR "#ff8080"
//#define DBG_HTML(x) x;
#define DBG_HTML(x)
@@ -52,394 +54,412 @@ static const char search_script[]=
#include "search_php.h"
;
+static const char search_styleSheet[] =
+#include "search_css.h"
+;
+
+
static QCString g_header;
static QCString g_footer;
//------------------------- Pictures for the Tabs ------------------------
-static unsigned char tab_b_gif[] = {
- 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00,
- 0x00, 0x84, 0xb0, 0xc7, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b
+static unsigned char tab_a_png[36] =
+{
+ 31, 42, 59, 69, 73, 74, 75, 77, 77,
+ 77, 79, 80, 80, 82, 81, 83, 84, 86,
+ 87, 88, 89, 90, 91, 91, 93, 94, 94,
+ 96, 96, 97, 98, 98, 99, 99, 99, 100
+};
+
+static unsigned char tab_b_png[36] =
+{
+ 240, 239, 238, 237, 235, 234, 234, 232, 231,
+ 229, 228, 227, 224, 224, 221, 219, 218, 217,
+ 214, 212, 210, 209, 206, 203, 202, 200, 198,
+ 196, 195, 193, 192, 190, 189, 188, 188, 188
+};
+
+static unsigned char tab_h_png[36] =
+{
+ 199, 198, 196, 196, 195, 194, 193, 192, 189,
+ 188, 187, 184, 184, 181, 180, 178, 176, 173,
+ 171, 169, 166, 164, 163, 161, 159, 156, 155,
+ 153, 152, 149, 148, 147, 145, 145, 150, 161
+};
+
+static unsigned char tab_s_png[36] =
+{
+ 187, 186, 185, 183, 182, 181, 180, 178, 176,
+ 174, 173, 171, 169, 167, 164, 163, 161, 158,
+ 156, 154, 152, 150, 148, 145, 143, 141, 140,
+ 138, 136, 134, 131, 131, 128, 126, 125, 124
+};
+
+static unsigned char bc_s_png[240] =
+{
+ 150,187,187,148,148,148,148,148,
+ 147,175,186,147,147,147,147,147,
+ 146,153,185,185,146,146,146,146,
+ 144,144,177,183,144,144,144,144,
+ 144,144,159,182,144,144,144,144,
+ 143,143,144,179,181,143,143,143,
+ 142,142,142,165,180,142,142,142,
+ 141,141,141,144,178,178,141,141,
+ 139,139,139,139,167,176,139,139,
+ 137,137,137,137,146,174,137,137,
+ 137,137,137,137,137,169,173,137,
+ 135,135,135,135,135,150,171,135,
+ 133,133,133,133,133,135,167,169,
+ 132,132,132,132,132,132,154,167,
+ 129,129,129,129,129,129,140,164,
+ 129,129,129,129,129,129,154,163,
+ 127,127,127,127,127,128,161,161,
+ 125,125,125,125,125,141,158,125,
+ 123,123,123,123,123,152,156,123,
+ 121,121,121,121,129,154,121,121,
+ 120,120,120,120,143,152,120,120,
+ 118,118,118,120,150,150,118,118,
+ 117,117,117,132,148,117,117,117,
+ 114,114,114,142,145,114,114,114,
+ 113,113,120,143,113,113,113,113,
+ 111,111,133,141,111,111,111,111,
+ 110,112,140,140,110,110,110,110,
+ 109,124,138,109,109,109,109,109,
+ 107,133,136,107,107,107,107,107,
+ 111,134,106,106,106,106,106,106
};
-static unsigned int tab_b_gif_len = 35;
-
-static unsigned char tab_l_gif[] = {
- 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x09, 0x00, 0x2c, 0x01, 0xd5, 0x00,
- 0x00, 0xf6, 0xf7, 0xf9, 0xf1, 0xf4, 0xf7, 0xf6, 0xf8, 0xfa, 0xfc, 0xfd,
- 0xfe, 0xfa, 0xfb, 0xfc, 0xf9, 0xfa, 0xfb, 0xf8, 0xf9, 0xfa, 0xea, 0xef,
- 0xf3, 0xef, 0xf3, 0xf6, 0xc6, 0xd5, 0xdf, 0xd2, 0xde, 0xe6, 0xd8, 0xe2,
- 0xe9, 0xde, 0xe7, 0xed, 0xdd, 0xe6, 0xec, 0xe5, 0xec, 0xf1, 0xe8, 0xee,
- 0xf2, 0xf4, 0xf7, 0xf9, 0xf3, 0xf6, 0xf8, 0xb3, 0xc8, 0xd5, 0xc1, 0xd2,
- 0xdd, 0xcb, 0xd9, 0xe2, 0xcf, 0xdc, 0xe4, 0xd6, 0xe1, 0xe8, 0x96, 0xb4,
- 0xc5, 0x9d, 0xb9, 0xc9, 0xaf, 0xc2, 0xcd, 0xbb, 0xce, 0xd9, 0xc3, 0xd4,
- 0xde, 0xc2, 0xd3, 0xdd, 0xc8, 0xd7, 0xe0, 0xcc, 0xda, 0xe2, 0xd5, 0xe1,
- 0xe8, 0xd9, 0xe4, 0xea, 0xd7, 0xe2, 0xe8, 0xe5, 0xec, 0xf0, 0xeb, 0xf0,
- 0xf3, 0x84, 0xb0, 0xc7, 0xd1, 0xde, 0xe5, 0xdc, 0xe6, 0xeb, 0xe3, 0xeb,
- 0xef, 0xeb, 0xf1, 0xf4, 0xee, 0xf3, 0xf5, 0xf7, 0xfa, 0xfb, 0xfb, 0xfc,
- 0xfc, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x2c, 0x01, 0x00, 0x06,
- 0xff, 0x40, 0x96, 0x50, 0xb1, 0xc9, 0x60, 0x48, 0x24, 0x21, 0x25, 0x43,
- 0x71, 0x00, 0x56, 0x03, 0x16, 0x65, 0x32, 0x1a, 0x58, 0xad, 0x8a, 0xcc,
- 0x08, 0x4a, 0x28, 0x08, 0x04, 0x93, 0xc4, 0xa0, 0x2b, 0x80, 0x98, 0x33,
- 0x0d, 0x32, 0x24, 0xc0, 0xc6, 0x20, 0xbc, 0x6b, 0x76, 0x8a, 0xe4, 0x2d,
- 0xcb, 0xe7, 0xf5, 0x75, 0x2a, 0x85, 0x22, 0x7d, 0xe3, 0x7c, 0x7d, 0x7f,
- 0x01, 0x7c, 0x07, 0x07, 0x7e, 0x71, 0x28, 0x0f, 0x22, 0x0c, 0x24, 0x66,
- 0x84, 0x07, 0x0c, 0x0c, 0x27, 0x8e, 0x6c, 0x28, 0x8c, 0x26, 0x26, 0x24,
- 0x72, 0x91, 0x99, 0x0b, 0x9b, 0x90, 0x0c, 0x26, 0x0b, 0x21, 0xa0, 0x29,
- 0x0f, 0xa2, 0xa4, 0x9b, 0x7b, 0xa8, 0xa3, 0xa5, 0x72, 0xad, 0xaa, 0xb0,
- 0xa9, 0xaf, 0x84, 0xb1, 0xaf, 0xac, 0xb4, 0xa6, 0xb7, 0xbb, 0xba, 0xb3,
- 0xae, 0xab, 0xa7, 0xbe, 0xb6, 0xc3, 0xc2, 0xc0, 0xbf, 0xb2, 0xb9, 0xc7,
- 0xc4, 0xcb, 0xc6, 0xb2, 0xcc, 0xc9, 0xce, 0xb5, 0xd2, 0xbd, 0xcd, 0xbc,
- 0x84, 0xd4, 0xc8, 0xd3, 0xd7, 0xd0, 0xb8, 0xd9, 0xdd, 0xd5, 0xcf, 0xd9,
- 0xca, 0xe2, 0xdc, 0xdf, 0xe3, 0xe7, 0xe6, 0xea, 0xbe, 0xe4, 0xdb, 0xc5,
- 0xeb, 0xc7, 0xed, 0xe1, 0xee, 0xd6, 0xec, 0xe9, 0xef, 0xf8, 0xf1, 0xf7,
- 0xf5, 0xfc, 0xd1, 0xf0, 0xe5, 0xf9, 0xfc, 0x05, 0xa4, 0x07, 0x50, 0xdf,
- 0x3f, 0x82, 0x08, 0x83, 0x1d, 0x9c, 0xc7, 0x10, 0xdb, 0x42, 0x6d, 0x0d,
- 0xe5, 0x41, 0x9c, 0x08, 0xce, 0xe1, 0xc0, 0x86, 0x15, 0x25, 0x56, 0xdc,
- 0x88, 0xee, 0x21, 0xc7, 0x6b, 0x1a, 0xf7, 0x15, 0x14, 0xd8, 0x2f, 0xe1,
- 0xc4, 0x90, 0x1e, 0x3b, 0x5e, 0xa4, 0xa8, 0xb2, 0x24, 0xc6, 0x96, 0x23,
- 0x4d, 0x66, 0x14, 0x29, 0x13, 0x66, 0xcd, 0x87, 0x28, 0x57, 0xce, 0x4c,
- 0x89, 0x93, 0xe6, 0x4b, 0xe7, 0x90, 0xd2, 0x84, 0xb0, 0x20, 0x92, 0x01,
- 0x49, 0x12, 0x29, 0x4c, 0x1c, 0x18, 0x10, 0x3a, 0x65, 0x44, 0x0b, 0xa1,
- 0x43, 0xb5, 0xb4, 0x78, 0x2a, 0x34, 0x0c, 0x55, 0xa8, 0x68, 0xa0, 0x0a,
- 0x25, 0x11, 0x41, 0xab, 0x90, 0xa3, 0x5e, 0xc1, 0x4e, 0x1d, 0x4b, 0x62,
- 0xac, 0xd9, 0x16, 0x65, 0xa7, 0x0e, 0x58, 0xb1, 0x82, 0x00, 0x81, 0xb4,
- 0x6b, 0xbb, 0x78, 0x21, 0xc1, 0xd6, 0xed, 0x97, 0x32, 0x74, 0xdd, 0xd6,
- 0x09, 0x00, 0x21, 0xaf, 0x9a, 0x35, 0x74, 0xdb, 0xe6, 0xe9, 0x1b, 0x97,
- 0xc0, 0x5d, 0x01, 0x24, 0xac, 0xb4, 0x25, 0x83, 0x58, 0xed, 0xe2, 0x2e,
- 0x69, 0x5b, 0xac, 0x5d, 0x1c, 0x59, 0xad, 0x95, 0xca, 0x66, 0x8f, 0x9e,
- 0x45, 0xeb, 0xf5, 0x6b, 0x67, 0x16, 0x60, 0xb5, 0x86, 0x86, 0x3a, 0x7a,
- 0xeb, 0xe7, 0xd2, 0x9e, 0x3b, 0xa3, 0x06, 0x7d, 0xba, 0xb5, 0x6a, 0xd7,
- 0x61, 0x61, 0x8b, 0x96, 0x4d, 0x9a, 0xb6, 0xe9, 0xd7, 0xb8, 0x63, 0xe7,
- 0x9e, 0xbd, 0xbb, 0x76, 0xef, 0xdb, 0xba, 0x83, 0xf3, 0x16, 0xee, 0x9b,
- 0x38, 0xf0, 0xe1, 0xc8, 0x8b, 0x27, 0x3f, 0xae, 0xbc, 0x39, 0xf3, 0xe7,
- 0xa9, 0x8d, 0x47, 0x5f, 0x3e, 0xdd, 0x79, 0x75, 0xe8, 0xac, 0x7f, 0x5f,
- 0xdf, 0x9e, 0x5d, 0x7a, 0x77, 0xea, 0xdf, 0xad, 0x87, 0xc7, 0xbe, 0xba,
- 0xbc, 0x6d, 0xee, 0xe6, 0xb5, 0x8f, 0x47, 0x7f, 0x7e, 0xbd, 0xfb, 0xf4,
- 0xde, 0xe1, 0x83, 0x97, 0x2f, 0x9e, 0x3e, 0xf9, 0xf6, 0xf6, 0xd9, 0xab,
- 0xcf, 0xff, 0x1e, 0xbf, 0xff, 0xfd, 0xff, 0xc5, 0x17, 0xe0, 0x7c, 0x03,
- 0xd6, 0x57, 0xe0, 0x7d, 0x00, 0x76, 0x16, 0x04, 0x00, 0x3b
+
+static unsigned char bc_s_a_png[240] =
+{
+ 241,241, 21, 0, 0, 0, 0, 0,
+ 162,205,117, 0, 0, 0, 0, 0,
+ 54,231,225, 3, 0, 0, 0, 0,
+ 0,198,215, 78, 0, 0, 0, 0,
+ 0, 93,211,186, 0, 0, 0, 0,
+ 0, 6,232,235, 42, 0, 0, 0,
+ 0, 0,132,203,147, 0, 0, 0,
+ 0, 0, 27,242,241, 15, 0, 0,
+ 0, 0, 0,168,205,108, 0, 0,
+ 0, 0, 0, 63,228,219, 0, 0,
+ 0, 0, 0, 0,207,221, 72, 0,
+ 0, 0, 0, 0,102,208,177, 0,
+ 0, 0, 0, 0, 9,238,240, 36,
+ 0, 0, 0, 0, 0,138,201,138,
+ 0, 0, 0, 0, 0, 77,187,158,
+ 0, 0, 0, 0, 0,159,204,120,
+ 0, 0, 0, 0, 15,241,241, 21,
+ 0, 0, 0, 0,111,208,171, 0,
+ 0, 0, 0, 0,210,222, 66, 0,
+ 0, 0, 0, 60,227,219, 0, 0,
+ 0, 0, 0,162,204,114, 0, 0,
+ 0, 0, 18,238,238, 21, 0, 0,
+ 0, 0,114,205,165, 0, 0, 0,
+ 0, 0,216,225, 60, 0, 0, 0,
+ 0, 66,226,216, 0, 0, 0, 0,
+ 0,165,204,111, 0, 0, 0, 0,
+ 21,241,241, 18, 0, 0, 0, 0,
+ 117,203,159, 0, 0, 0, 0, 0,
+ 219,227, 57, 0, 0, 0, 0, 0,
+ 211,201, 0, 0, 0, 0, 0, 0
};
-static unsigned int tab_l_gif_len = 706;
-
-static unsigned char tab_r_gif[] = {
- 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x90, 0x01, 0x2c, 0x01, 0xd5, 0x00,
- 0x00, 0xf6, 0xf7, 0xf9, 0xf1, 0xf4, 0xf7, 0xf6, 0xf8, 0xfa, 0xfc, 0xfd,
- 0xfe, 0xfa, 0xfb, 0xfc, 0xf9, 0xfa, 0xfb, 0xf8, 0xf9, 0xfa, 0xea, 0xef,
- 0xf3, 0xef, 0xf3, 0xf6, 0xc6, 0xd5, 0xdf, 0xd2, 0xde, 0xe6, 0xd8, 0xe2,
- 0xe9, 0xde, 0xe7, 0xed, 0xdd, 0xe6, 0xec, 0xe5, 0xec, 0xf1, 0xe8, 0xee,
- 0xf2, 0xf4, 0xf7, 0xf9, 0xf3, 0xf6, 0xf8, 0xb3, 0xc8, 0xd5, 0xc1, 0xd2,
- 0xdd, 0xcb, 0xd9, 0xe2, 0xcf, 0xdc, 0xe4, 0xd6, 0xe1, 0xe8, 0x96, 0xb4,
- 0xc5, 0x9d, 0xb9, 0xc9, 0xaf, 0xc2, 0xcd, 0xbb, 0xce, 0xd9, 0xc3, 0xd4,
- 0xde, 0xc2, 0xd3, 0xdd, 0xc8, 0xd7, 0xe0, 0xcc, 0xda, 0xe2, 0xd5, 0xe1,
- 0xe8, 0xd9, 0xe4, 0xea, 0xd7, 0xe2, 0xe8, 0xe5, 0xec, 0xf0, 0xeb, 0xf0,
- 0xf3, 0x84, 0xb0, 0xc7, 0xd1, 0xde, 0xe5, 0xdc, 0xe6, 0xeb, 0xe3, 0xeb,
- 0xef, 0xeb, 0xf1, 0xf4, 0xee, 0xf3, 0xf5, 0xf7, 0xfa, 0xfb, 0xfb, 0xfc,
- 0xfc, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x2c, 0x01, 0x00, 0x06,
- 0xff, 0x40, 0x92, 0x70, 0x48, 0x2c, 0x1a, 0x8f, 0xc8, 0xa4, 0x72, 0xc9,
- 0x6c, 0x3a, 0x9f, 0xd0, 0xa8, 0x74, 0x4a, 0xad, 0x5a, 0xaf, 0xd8, 0xac,
- 0x76, 0x0b, 0x95, 0x68, 0x3c, 0xac, 0x70, 0x6b, 0x4c, 0x2e, 0x9b, 0xcf,
- 0xe8, 0xb4, 0x7a, 0xcd, 0x6e, 0xbb, 0xdf, 0xf0, 0xb8, 0x7c, 0x4e, 0xaf,
- 0xdb, 0xef, 0xf8, 0xbc, 0x7e, 0xcf, 0x77, 0x0f, 0x56, 0x10, 0x16, 0x1a,
- 0x17, 0x1c, 0x61, 0x2b, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e,
- 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a,
- 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x93, 0x2a, 0x10, 0x01, 0x29, 0x15,
- 0x5e, 0x2c, 0x2a, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2,
- 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,
- 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xb6, 0x10, 0x10, 0x29, 0x0f, 0x27, 0x1d,
- 0x17, 0x15, 0xc6, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
- 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2,
- 0xe3, 0xe4, 0xe5, 0xe6, 0xda, 0xa5, 0x28, 0x22, 0x0c, 0x0c, 0x12, 0x12,
- 0x01, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa,
- 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x00, 0x03, 0x0a, 0x1c, 0x48, 0xb0, 0xa0,
- 0xc1, 0x83, 0x08, 0x13, 0xf2, 0x4b, 0x81, 0x22, 0x19, 0x03, 0x13, 0x83,
- 0x52, 0x48, 0x9c, 0x48, 0xb1, 0xa2, 0xc5, 0x8b, 0x18, 0x33, 0x6a, 0xdc,
- 0xc8, 0xb1, 0xa3, 0xc7, 0x8f, 0x20, 0x43, 0x8a, 0x1c, 0x49, 0xb2, 0xa4,
- 0xc9, 0x93, 0x28, 0x53, 0xaa, 0x5c, 0xe9, 0x11, 0xc5, 0x81, 0x75, 0x26,
- 0x40, 0x80, 0x20, 0xc1, 0xb2, 0xa6, 0xcd, 0x9b, 0x38, 0x73, 0xea, 0xdc,
- 0xc9, 0xb3, 0xa7, 0x4f, 0xff, 0x96, 0x28, 0x1a, 0xc2, 0x04, 0xb1, 0x80,
- 0x44, 0xd0, 0xa3, 0x48, 0x93, 0x2a, 0x5d, 0xca, 0xb4, 0xa9, 0xd3, 0xa7,
- 0x50, 0xa3, 0x4a, 0x9d, 0x4a, 0xb5, 0xaa, 0xd5, 0xab, 0x58, 0xb3, 0x6a,
- 0xdd, 0xca, 0xb5, 0xab, 0xd7, 0xaf, 0x53, 0x0f, 0x38, 0x34, 0xb1, 0x20,
- 0x04, 0x89, 0x03, 0x68, 0xd3, 0xaa, 0x5d, 0xcb, 0xb6, 0xad, 0xdb, 0xb7,
- 0x70, 0xe3, 0xca, 0x9d, 0x4b, 0xb7, 0xae, 0xdd, 0xbb, 0x78, 0xf3, 0xea,
- 0xdd, 0xcb, 0xb7, 0xaf, 0xdf, 0xbf, 0x80, 0x03, 0xd3, 0x7d, 0x20, 0xe2,
- 0x44, 0xcc, 0x10, 0x66, 0x1f, 0x28, 0x5e, 0xcc, 0xb8, 0xb1, 0xe3, 0xc7,
- 0x90, 0x23, 0x4b, 0x9e, 0x4c, 0xb9, 0xb2, 0xe5, 0xcb, 0x98, 0x33, 0x6b,
- 0xde, 0xcc, 0xb9, 0xb3, 0xe7, 0xcf, 0xa0, 0x43, 0x8b, 0x1e, 0x6d, 0xb9,
- 0xf0, 0x43, 0xc4, 0x1f, 0x48, 0x9c, 0x58, 0xcd, 0xba, 0xb5, 0xeb, 0xd7,
- 0xb0, 0x63, 0xcb, 0x9e, 0x4d, 0xbb, 0xb6, 0xed, 0xdb, 0xb8, 0x73, 0xeb,
- 0xde, 0xcd, 0xbb, 0xb7, 0xef, 0xdf, 0xc0, 0x83, 0x0b, 0x1f, 0x4e, 0x1c,
- 0xf7, 0xc3, 0x05, 0x1f, 0x4a, 0x94, 0x20, 0xc1, 0xae, 0xb9, 0xf3, 0xe7,
- 0xd0, 0xa3, 0x4b, 0x9f, 0x4e, 0xbd, 0xba, 0xf5, 0xeb, 0xd8, 0xb3, 0x6b,
- 0xdf, 0xce, 0xbd, 0xbb, 0xf7, 0xef, 0xe0, 0xc3, 0x8b, 0x1f, 0x4f, 0xbe,
- 0x3c, 0x76, 0x13, 0x31, 0x91, 0x2b, 0x5f, 0x2e, 0xb3, 0xbd, 0xfb, 0xf7,
- 0xf0, 0xe3, 0xcb, 0x9f, 0x4f, 0xbf, 0xbe, 0xfd, 0xfb, 0xf8, 0xf3, 0xeb,
- 0xdf, 0xcf, 0xbf, 0xbf, 0xff, 0xff, 0x00, 0x06, 0x28, 0xe0, 0x80, 0x04,
- 0x16, 0x98, 0x5f, 0x59, 0xc9, 0x95, 0x40, 0xc1, 0x72, 0x88, 0x35, 0xe8,
- 0xe0, 0x83, 0x10, 0x46, 0x28, 0xe1, 0x84, 0x14, 0x56, 0x68, 0xe1, 0x85,
- 0x18, 0x66, 0xa8, 0xe1, 0x86, 0x1c, 0x76, 0xe8, 0xff, 0xe1, 0x87, 0x20,
- 0x86, 0x28, 0xe2, 0x88, 0x24, 0x96, 0xa8, 0x61, 0x82, 0x14, 0xa4, 0x48,
- 0x82, 0x89, 0x2c, 0xb6, 0xe8, 0xe2, 0x8b, 0x30, 0xc6, 0x28, 0xe3, 0x8c,
- 0x34, 0xd6, 0x68, 0xe2, 0x07, 0x09, 0x2a, 0xa8, 0x22, 0x8e, 0x3c, 0xf6,
- 0xe8, 0xe3, 0x8f, 0x40, 0x06, 0x29, 0xe4, 0x90, 0x44, 0x16, 0x69, 0xe4,
- 0x91, 0x48, 0x26, 0xa9, 0xe4, 0x92, 0x4c, 0x36, 0xe9, 0xe4, 0x93, 0x50,
- 0x46, 0x29, 0xe5, 0x94, 0x54, 0x26, 0xa9, 0x5c, 0x8a, 0x3b, 0x56, 0xa9,
- 0xe5, 0x96, 0x5c, 0x76, 0xe9, 0xe5, 0x97, 0x60, 0x86, 0x29, 0xe6, 0x98,
- 0x5a, 0x5e, 0x89, 0x25, 0x09, 0x64, 0xa6, 0xa9, 0xe6, 0x9a, 0x6c, 0xb6,
- 0xe9, 0xe6, 0x9b, 0x70, 0xfe, 0x68, 0x66, 0x96, 0x71, 0xd6, 0x69, 0xe7,
- 0x9d, 0x78, 0xe6, 0xa9, 0xe7, 0x97, 0x73, 0x52, 0x80, 0xe6, 0x9e, 0x80,
- 0x06, 0x2a, 0xe8, 0xa0, 0x84, 0xc2, 0xd9, 0xe7, 0x9f, 0x85, 0x26, 0xaa,
- 0xe8, 0xa2, 0x8c, 0x36, 0x3a, 0xe4, 0xa1, 0x8e, 0x46, 0x2a, 0xe9, 0xa4,
- 0x94, 0xc6, 0x09, 0x69, 0xa5, 0x98, 0x66, 0xaa, 0xe9, 0xa6, 0x4f, 0x5e,
- 0xca, 0xe9, 0xa7, 0xa0, 0x86, 0xca, 0xa9, 0xa7, 0xa2, 0x96, 0x6a, 0xea,
- 0xa9, 0x84, 0x92, 0x8a, 0xea, 0xaa, 0xac, 0xb6, 0xca, 0xa6, 0xaa, 0xae,
- 0xc6, 0x2a, 0xeb, 0xac, 0x53, 0xc2, 0x4a, 0xeb, 0xad, 0xb8, 0xe6, 0x2a,
- 0xa4, 0xad, 0xba, 0xf6, 0xea, 0xeb, 0xac, 0xbc, 0xfe, 0x2a, 0xec, 0xb0,
- 0xa5, 0x06, 0x4b, 0xec, 0xb1, 0xc8, 0x56, 0x6a, 0x6c, 0xb2, 0xcc, 0x36,
- 0x9b, 0xe8, 0xb2, 0xce, 0x46, 0x2b, 0x2d, 0x9e, 0xd0, 0x4e, 0x6b, 0xed,
- 0xb5, 0x6b, 0x56, 0x8b, 0xed, 0xb6, 0xdc, 0x76, 0xa9, 0x6d, 0xb7, 0xe0,
- 0x86, 0xdb, 0xa9, 0x8e, 0x74, 0x8a, 0x6b, 0xee, 0xb9, 0x51, 0x7e, 0x8b,
- 0xff, 0xee, 0xba, 0xec, 0xf2, 0xa8, 0x6e, 0xbb, 0xf0, 0x9a, 0xfb, 0x6e,
- 0xbc, 0xf4, 0x72, 0x3b, 0x6f, 0xbd, 0xf8, 0x4e, 0x7b, 0x6f, 0xbe, 0xfc,
- 0x32, 0xbb, 0x6f, 0xbf, 0x00, 0x0f, 0xfb, 0x6f, 0xc0, 0x04, 0xeb, 0x3a,
- 0x70, 0xc1, 0x08, 0x03, 0x4b, 0xae, 0x9f, 0x09, 0x37, 0x1c, 0xed, 0xc1,
- 0x0e, 0x47, 0x6c, 0x2a, 0xc4, 0x12, 0x57, 0xfc, 0x29, 0xc5, 0x16, 0x67,
- 0x8c, 0x29, 0xc6, 0x1a, 0x77, 0x1c, 0x29, 0xc7, 0x1e, 0x87, 0xac, 0x28,
- 0xc8, 0x22, 0x97, 0x2c, 0x28, 0xc9, 0x26, 0xa7, 0x9c, 0x27, 0xca, 0x2a,
- 0xb7, 0x6c, 0xe9, 0xc2, 0x88, 0xba, 0x2c, 0x33, 0xa5, 0x2c, 0xcf, 0x6c,
- 0x33, 0x99, 0x35, 0xdf, 0xac, 0x33, 0x9f, 0x30, 0xef, 0xec, 0xf3, 0xb3,
- 0x3d, 0xff, 0x2c, 0x74, 0xa0, 0x39, 0x0f, 0x6d, 0xb4, 0x93, 0x45, 0x1f,
- 0xad, 0xb4, 0x95, 0x41, 0x2f, 0xed, 0x74, 0x9b, 0x49, 0x3f, 0x2d, 0x35,
- 0x90, 0x51, 0x4f, 0x6d, 0x35, 0x8e, 0x55, 0x5f, 0x3d, 0x75, 0xd6, 0x5a,
- 0x3f, 0xcd, 0x75, 0xd7, 0x4b, 0x7f, 0x0d, 0xf6, 0xd1, 0x62, 0x8f, 0x3d,
- 0x74, 0xd9, 0x66, 0xff, 0x8c, 0x76, 0xda, 0x3b, 0xaf, 0xcd, 0xf6, 0xcd,
- 0x6e, 0xbf, 0x3d, 0x73, 0xdc, 0x72, 0xbb, 0x4c, 0x77, 0xdd, 0x2a, 0xdf,
- 0x8d, 0xb7, 0xc9, 0x7a, 0xef, 0x2d, 0x72, 0xdf, 0x7e, 0x7b, 0x0c, 0x78,
- 0xe0, 0x1a, 0x0f, 0x4e, 0xb8, 0xc5, 0x86, 0x1f, 0x2e, 0x71, 0xe2, 0x8a,
- 0x3b, 0xcc, 0x78, 0xe3, 0x09, 0x3f, 0x0e, 0x79, 0xc1, 0x92, 0x4f, 0x1e,
- 0x70, 0xe5, 0x96, 0xf7, 0x8b, 0x79, 0xe6, 0xf9, 0x6e, 0xce, 0x79, 0xbd,
- 0x9e, 0x7f, 0x1e, 0x6f, 0xe8, 0xa2, 0xb7, 0x4b, 0x7a, 0xe9, 0xeb, 0x9e,
- 0x8e, 0xfa, 0xb9, 0xaa, 0xaf, 0x2e, 0x6e, 0xeb, 0xae, 0x83, 0x0b, 0x7b,
- 0xec, 0xf6, 0x36, 0x4d, 0xff, 0xbb, 0xd6, 0xb3, 0xdf, 0x7e, 0x6d, 0xee,
- 0xba, 0xeb, 0x6b, 0x7b, 0xef, 0x52, 0xf3, 0x0e, 0xbc, 0xb3, 0xc2, 0x0f,
- 0xef, 0xef, 0xef, 0xc6, 0x2b, 0x5d, 0x7c, 0xf2, 0xc7, 0x2e, 0xcf, 0xbc,
- 0xc0, 0xc8, 0x3f, 0x2f, 0xb4, 0xf3, 0xd2, 0xfb, 0x4a, 0x7d, 0xf5, 0x06,
- 0x47, 0x8f, 0xbd, 0xce, 0xd7, 0x6f, 0x7f, 0x6b, 0xf7, 0xde, 0x2b, 0x8c,
- 0x25, 0xc3, 0xe1, 0xab, 0xad, 0x7d, 0xf9, 0x76, 0x9f, 0x8f, 0x7e, 0xde,
- 0xea, 0xaf, 0xcf, 0x77, 0xfb, 0xee, 0xff, 0x0d, 0x7f, 0xfc, 0x82, 0xcf,
- 0x4f, 0x7f, 0xe1, 0xf6, 0xdf, 0x8f, 0x78, 0xfe, 0xfa, 0x2f, 0xce, 0x7f,
- 0xff, 0x8e, 0xfb, 0x1f, 0x00, 0x23, 0x27, 0xc0, 0x01, 0x52, 0xae, 0x80,
- 0x06, 0xbc, 0x1c, 0x02, 0x13, 0xa8, 0xb9, 0x05, 0x32, 0xb0, 0x73, 0x0e,
- 0x7c, 0x20, 0xe8, 0x22, 0x28, 0xc1, 0xd1, 0x51, 0xb0, 0x82, 0xa6, 0xbb,
- 0x20, 0x06, 0x53, 0xa7, 0xc1, 0x0d, 0xb2, 0xae, 0x83, 0x1e, 0x7c, 0x1d,
- 0x08, 0x43, 0x28, 0xbb, 0x11, 0x92, 0xb0, 0x76, 0xe3, 0x8b, 0xd9, 0x09,
- 0x09, 0x98, 0xc2, 0x15, 0x46, 0x0c, 0x7c, 0x2e, 0x64, 0x14, 0x0c, 0x63,
- 0x38, 0x32, 0x13, 0xd2, 0x50, 0x5a, 0x33, 0xbc, 0x61, 0xaa, 0x6c, 0xa8,
- 0xc3, 0x66, 0xe5, 0xb0, 0x87, 0x44, 0xe3, 0x21, 0x10, 0x91, 0xf5, 0xc3,
- 0x21, 0xea, 0xa9, 0x88, 0x46, 0xa4, 0x96, 0x10, 0x93, 0x28, 0x2c, 0x24,
- 0x32, 0xb1, 0x4e, 0x4e, 0x7c, 0xa2, 0xa1, 0x96, 0x28, 0xc5, 0xec, 0xb5,
- 0xb0, 0x8a, 0x16, 0x4c, 0x21, 0x17, 0xb6, 0xc8, 0xc5, 0x2e, 0x7a, 0xf1,
- 0x8b, 0x60, 0x0c, 0xa3, 0x18, 0xc7, 0x48, 0xc6, 0x2e, 0x7a, 0x01, 0x0c,
- 0x61, 0x48, 0xa3, 0x1a, 0xd7, 0xc8, 0xc6, 0x36, 0xba, 0xf1, 0x8d, 0x70,
- 0x8c, 0xa3, 0x1c, 0xe7, 0x48, 0xc7, 0x3a, 0xda, 0xff, 0xf1, 0x8e, 0x78,
- 0xcc, 0xa3, 0x1e, 0xf7, 0xc8, 0xc7, 0x3e, 0xfa, 0xf1, 0x8f, 0x80, 0x0c,
- 0x64, 0x1d, 0xc7, 0x40, 0x80, 0x00, 0x08, 0x82, 0x10, 0x82, 0x4c, 0xa4,
- 0x22, 0x17, 0xc9, 0xc8, 0x46, 0x3a, 0xf2, 0x91, 0x90, 0x8c, 0xa4, 0x24,
- 0x13, 0x39, 0x86, 0x02, 0x08, 0x20, 0x00, 0x28, 0x38, 0x85, 0x06, 0x26,
- 0xc9, 0xc9, 0x4e, 0x7a, 0xf2, 0x93, 0xa0, 0x0c, 0xa5, 0x28, 0x47, 0xa9,
- 0x46, 0x42, 0x5e, 0xb2, 0x21, 0xcb, 0xa8, 0x00, 0x29, 0x57, 0xc9, 0xca,
- 0x56, 0xba, 0xf2, 0x95, 0xb0, 0x6c, 0xa4, 0x29, 0x31, 0x99, 0x0c, 0x77,
- 0xc4, 0xf2, 0x96, 0xb8, 0xcc, 0xa5, 0x2e, 0x77, 0x19, 0xca, 0x59, 0xba,
- 0xe4, 0x01, 0x83, 0xe0, 0xa5, 0x30, 0x87, 0x49, 0xcc, 0x62, 0x1a, 0xf3,
- 0x8d, 0xbe, 0x7c, 0xc9, 0x03, 0x48, 0x70, 0xcc, 0x66, 0x3a, 0xf3, 0x99,
- 0xd0, 0xec, 0x65, 0x0b, 0x08, 0x70, 0x4a, 0xb1, 0x88, 0x80, 0x04, 0x7d,
- 0xc8, 0xa6, 0x36, 0xb7, 0xc9, 0xcd, 0x6e, 0x7a, 0xf3, 0x9b, 0xe0, 0x0c,
- 0xa7, 0x38, 0xfb, 0x30, 0x00, 0x02, 0x90, 0xc2, 0x25, 0x22, 0xb8, 0xe6,
- 0x38, 0xd7, 0xc9, 0xce, 0x76, 0xba, 0xf3, 0x9d, 0xf0, 0x8c, 0xa7, 0x3c,
- 0xc9, 0x50, 0xce, 0x51, 0x60, 0xf2, 0x25, 0xd7, 0x24, 0x80, 0x3e, 0xf7,
- 0xc9, 0xcf, 0x7e, 0xfa, 0xf3, 0x9f, 0x00, 0x0d, 0xa8, 0x40, 0x07, 0x4a,
- 0xd0, 0x82, 0x1a, 0xf4, 0xa0, 0x08, 0x4d, 0xa8, 0x42, 0x17, 0xca, 0xd0,
- 0x86, 0x3a, 0xf4, 0xa1, 0x10, 0x8d, 0xa8, 0x44, 0x27, 0x5a, 0x50, 0x4b,
- 0x46, 0x20, 0x05, 0xd6, 0xbc, 0x26, 0x31, 0x36, 0xca, 0xd1, 0x8e, 0x7a,
- 0xf4, 0xa3, 0x20, 0x0d, 0xa9, 0x48, 0x47, 0x4a, 0x52, 0x62, 0x08, 0x20,
- 0x02, 0xf7, 0x4c, 0xe7, 0x35, 0xcf, 0xc1, 0xd2, 0x96, 0xba, 0xf4, 0xa5,
- 0xff, 0x30, 0x8d, 0xa9, 0x4c, 0x67, 0x4a, 0xd3, 0x9a, 0x9a, 0x23, 0x02,
- 0x28, 0x65, 0x08, 0x3e, 0xaf, 0x89, 0xd3, 0x9e, 0xfa, 0xf4, 0xa7, 0x40,
- 0x0d, 0xaa, 0x50, 0x87, 0x4a, 0xd4, 0xa2, 0x1a, 0xf5, 0xa8, 0x48, 0x4d,
- 0xaa, 0x52, 0x97, 0xca, 0xd4, 0xa6, 0x3a, 0xf5, 0xa9, 0x50, 0x8d, 0xaa,
- 0x54, 0xa7, 0x4a, 0xd5, 0xaa, 0x26, 0x35, 0x1d, 0x3b, 0x25, 0x81, 0x55,
- 0xb7, 0xca, 0xd5, 0xae, 0x7a, 0xf5, 0xab, 0x60, 0x0d, 0xab, 0x58, 0xc7,
- 0x4a, 0x56, 0xab, 0xc2, 0x43, 0xa7, 0x8b, 0xd1, 0x6a, 0x59, 0xd7, 0xca,
- 0xd6, 0xb6, 0xba, 0xf5, 0xad, 0x70, 0x8d, 0xab, 0x5c, 0x7f, 0x8a, 0x55,
- 0xb4, 0x90, 0xc0, 0xa6, 0x78, 0xcd, 0xab, 0x5e, 0xf7, 0xca, 0xd7, 0xbe,
- 0xfa, 0xf5, 0xaf, 0xd0, 0xc0, 0x69, 0x29, 0x24, 0x82, 0x02, 0x12, 0x94,
- 0xf4, 0xb0, 0x88, 0x4d, 0xac, 0x62, 0x17, 0xcb, 0xd8, 0xc6, 0x3a, 0x76,
- 0x15, 0x02, 0x88, 0x2c, 0x04, 0x04, 0x0b, 0x0f, 0x12, 0x14, 0xe0, 0xb2,
- 0x98, 0xcd, 0xac, 0x66, 0x37, 0xcb, 0xd9, 0xce, 0x7a, 0xf6, 0xb3, 0xa0,
- 0x0d, 0xad, 0x68, 0x47, 0x4b, 0xda, 0xd2, 0x9a, 0xf6, 0xb4, 0xa8, 0x4d,
- 0xad, 0x6a, 0x57, 0xcb, 0xda, 0xd6, 0xba, 0xf6, 0xb5, 0xb0, 0x15, 0xad,
- 0x2a, 0x24, 0xdb, 0x53, 0x12, 0x50, 0xf4, 0xb6, 0xb8, 0xcd, 0xad, 0x6e,
- 0x77, 0xcb, 0xdb, 0xde, 0xfa, 0xf6, 0xb7, 0xc0, 0xc5, 0x6d, 0x01, 0x20,
- 0x2b, 0x00, 0x12, 0x84, 0xe2, 0xb8, 0xc8, 0x4d, 0xae, 0x72, 0x97, 0xcb,
- 0xdc, 0xe6, 0x3a, 0xf7, 0xb9, 0xd0, 0x45, 0xae, 0x3f, 0xb1, 0x39, 0xcf,
- 0xea, 0x5a, 0xf7, 0xba, 0xd8, 0xcd, 0xae, 0x76, 0xbf, 0x39, 0x80, 0xee,
- 0x22, 0x82, 0xba, 0xdb, 0x0d, 0xaf, 0x78, 0xc7, 0x4b, 0xde, 0xf2, 0x62,
- 0x97, 0x99, 0xd1, 0x4c, 0xff, 0xaf, 0x7a, 0xd7, 0xcb, 0x5e, 0x41, 0xa2,
- 0xb7, 0xbd, 0xf0, 0x8d, 0xaf, 0x7c, 0xe7, 0x1b, 0x86, 0xf7, 0xd2, 0xf7,
- 0xbe, 0xf8, 0xcd, 0xaf, 0x30, 0xed, 0xab, 0xdf, 0xfe, 0xfa, 0xf7, 0xbf,
- 0xa1, 0xe4, 0x2f, 0x80, 0x07, 0x4c, 0xe0, 0x02, 0xbb, 0xd7, 0xc0, 0x08,
- 0x4e, 0xb0, 0x82, 0xef, 0x28, 0xe0, 0x05, 0x3b, 0xf8, 0xc1, 0x09, 0x6e,
- 0x30, 0x84, 0x27, 0x4c, 0x61, 0xfd, 0x4a, 0xb8, 0xc2, 0x18, 0xce, 0x30,
- 0x7b, 0x2f, 0xac, 0xe1, 0x0e, 0x7b, 0xd8, 0x98, 0x1c, 0xfe, 0xb0, 0x88,
- 0x47, 0x7c, 0xcb, 0x10, 0x93, 0xf8, 0xc4, 0x28, 0x16, 0xa5, 0x89, 0x53,
- 0xcc, 0xe2, 0x16, 0x43, 0x72, 0xc5, 0x2e, 0x8e, 0xb1, 0x8c, 0x01, 0x09,
- 0xe3, 0x19, 0xdb, 0xf8, 0xc6, 0x76, 0xac, 0x31, 0x8e, 0x77, 0xcc, 0x63,
- 0x36, 0xea, 0xb8, 0xc7, 0x40, 0xde, 0xf1, 0x8f, 0x83, 0x4c, 0x64, 0x19,
- 0x0f, 0xb9, 0xc8, 0x48, 0x4e, 0xf1, 0x91, 0x93, 0xcc, 0x64, 0x11, 0x2f,
- 0xb9, 0xc9, 0x50, 0xce, 0xf0, 0x93, 0xa3, 0x4c, 0x65, 0x08, 0x4f, 0xb9,
- 0xca, 0x58, 0x8e, 0x70, 0x96, 0xb7, 0x7c, 0xe2, 0x2b, 0x73, 0xf9, 0xcb,
- 0xfd, 0xf5, 0x32, 0x98, 0xc7, 0x4c, 0x5f, 0x31, 0x93, 0xf9, 0xcc, 0xed,
- 0x35, 0x33, 0x9a, 0xd7, 0x1c, 0x4d, 0x35, 0xb3, 0xf9, 0xcd, 0xc7, 0x74,
- 0x33, 0x9c, 0xe7, 0xbc, 0x5f, 0x3a, 0xdb, 0xd9, 0xc2, 0x77, 0xce, 0x73,
- 0x99, 0xf5, 0xcc, 0x67, 0xf8, 0xca, 0xb9, 0xcf, 0x80, 0x0e, 0x70, 0xa0,
- 0x07, 0xfd, 0xcc, 0x3f, 0x13, 0xfa, 0xd0, 0x2f, 0x46, 0xb4, 0xa2, 0xeb,
- 0xbc, 0xe8, 0x46, 0xe3, 0xd2, 0xd0, 0x8e, 0x8e, 0x74, 0x1f, 0x21, 0x2d,
- 0xe9, 0x4a, 0xe3, 0x91, 0xd2, 0x96, 0xce, 0xf4, 0x1c, 0x31, 0xad, 0xe9,
- 0x4e, 0xbb, 0x91, 0xd3, 0x9e, 0x0e, 0x75, 0x1a, 0xff, 0x41, 0x2d, 0xea,
- 0x50, 0x93, 0xba, 0xd4, 0x9d, 0x3e, 0x35, 0xaa, 0x33, 0xad, 0xea, 0x55,
- 0x57, 0xba, 0xd5, 0xae, 0x8e, 0x34, 0xac, 0x63, 0xdd, 0xe8, 0x59, 0xd3,
- 0x5a, 0xd1, 0xb6, 0xbe, 0xf5, 0xa1, 0x73, 0xad, 0xeb, 0x41, 0xf3, 0xba,
- 0xd7, 0x80, 0xfe, 0x35, 0xb0, 0xf9, 0x2c, 0xec, 0x61, 0xe7, 0xb9, 0xd8,
- 0xc6, 0xb6, 0x33, 0xb2, 0x93, 0x3d, 0xe7, 0x65, 0x33, 0xfb, 0xcd, 0xce,
- 0x7e, 0xf6, 0x9a, 0xa3, 0x2d, 0xed, 0x33, 0x53, 0xbb, 0xda, 0x63, 0xbe,
- 0x36, 0xb6, 0xbf, 0xac, 0xed, 0x6d, 0x6f, 0xb9, 0xdb, 0xde, 0xc6, 0x32,
- 0xb8, 0xc3, 0x4d, 0xe5, 0x71, 0x93, 0x1b, 0xca, 0xe6, 0x3e, 0x37, 0x93,
- 0xd3, 0xad, 0x6e, 0x24, 0xb3, 0xbb, 0xdd, 0x44, 0x7e, 0x37, 0xbc, 0x81,
- 0x2c, 0xef, 0x79, 0xf3, 0xb8, 0xde, 0xf6, 0xc6, 0x31, 0xbe, 0xf3, 0x6d,
- 0xe3, 0x7d, 0xf3, 0xdb, 0xc8, 0xff, 0x76, 0xb5, 0xbf, 0x03, 0xde, 0xe2,
- 0x81, 0x13, 0x5c, 0xc9, 0x07, 0x2f, 0xb5, 0xc1, 0x13, 0x4e, 0xe2, 0x85,
- 0x33, 0xdc, 0xc9, 0x0f, 0xf7, 0xb4, 0xc3, 0x23, 0xde, 0xe1, 0x89, 0x53,
- 0x5c, 0xca, 0x17, 0x67, 0x75, 0xc6, 0x2d, 0x6d, 0xf1, 0x8d, 0x4f, 0xb8,
- 0xe3, 0x1e, 0x7f, 0x30, 0xc8, 0x43, 0xbe, 0xe0, 0x91, 0x93, 0x5c, 0xcb,
- 0x27, 0x5f, 0xb4, 0xc9, 0x53, 0x5e, 0xe0, 0x95, 0xb3, 0x7c, 0xc0, 0x2e,
- 0x7f, 0xf9, 0x7f, 0x63, 0x2e, 0xf3, 0x30, 0xd7, 0x9c, 0xd0, 0x34, 0xbf,
- 0x39, 0x7e, 0x73, 0xae, 0xf3, 0x3d, 0xf7, 0xbc, 0xcf, 0x3c, 0xff, 0x79,
- 0x7c, 0x83, 0x2e, 0xf4, 0x34, 0x17, 0x5d, 0xcf, 0x44, 0x3f, 0xba, 0x7a,
- 0x93, 0xae, 0xf4, 0x36, 0x37, 0x5d, 0xd9, 0x4f, 0xa7, 0x33, 0xd3, 0xa3,
- 0xde, 0xcc, 0xa9, 0x53, 0x1d, 0xc4, 0x57, 0x87, 0x76, 0xd6, 0xd9, 0x6c,
- 0x3e, 0xf5, 0xad, 0x33, 0xda, 0xeb, 0x64, 0xee, 0x3a, 0xd8, 0x75, 0x29,
- 0xf6, 0xb1, 0x3f, 0xda, 0xec, 0xd9, 0x46, 0x3b, 0x98, 0xcb, 0xae, 0xf6,
- 0x57, 0xb2, 0xbd, 0xed, 0xad, 0x7c, 0x3b, 0xdc, 0x57, 0x29, 0xf7, 0xb9,
- 0x8f, 0xb2, 0xee, 0x76, 0x17, 0x74, 0xde, 0xcb, 0xbd, 0x77, 0xbe, 0xf7,
- 0x1d, 0xdd, 0x7f, 0x07, 0x7c, 0xe0, 0xd7, 0x3d, 0x78, 0xc2, 0x17, 0xde,
- 0xdd, 0x41, 0x00, 0x00, 0x3b
+
+static unsigned char doxygen_png[3224] =
+{
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 91, 91, 91, 91, 32, 32,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,255,255,255,255, 32, 32,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,253,253,253,253, 32, 32,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,251,251,251,251, 32, 32,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,255,255,255,255,255,255,255,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,249,249,249,249, 32, 32,249,249,249,249, 32, 32, 32, 32, 32, 32,249,249,249,249, 32, 32, 32, 32, 32, 32,249,249,249,249, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,249,249,249, 32, 32, 32, 32, 32,249,249,249,249, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,249,249,249,249,249,249, 32, 32, 32, 32, 32, 32, 32,249,249,249,249,249, 32, 32, 32, 32, 32,249, 32, 32, 32, 32, 32,255,255,255,
+ 32, 32, 32, 32, 46,132,190,190,147, 61,247,247,247,247, 32, 32,247,247, 32, 32,118,161,190,190,161,118, 32, 32,247, 32, 46, 89, 89, 89, 89, 46, 32,247,247, 32, 89, 89, 89, 89, 61, 89, 89, 89, 89, 46, 32,247, 32, 46, 89, 89, 89, 89, 32,247, 32, 32,118,175,190,161, 89, 61, 89, 89, 89, 61, 32,247,247,247, 32, 32,104,147,190,190,190,132, 89, 32, 32,247,247, 32, 46, 89, 89, 89, 75, 32, 89,161,190,161, 75, 32,255,255,
+ 32, 32, 32, 74,230,244,244,244,244,244,244,244,244,244, 32, 32,244, 32, 74,216,244,244,244,244,244,244,216, 74, 32,244, 32,187,244,244,244,159, 32,244, 32,117,244,244,244,230, 46,173,244,244,244,131, 32,244, 32,131,244,244,244,173, 32, 32, 46,173,244,244,244,244,244,230,244,244,244,131, 32,244,244, 32, 74,202,244,244,244,244,244,244,244,173, 46, 32,244, 32, 89,244,244,244,187,145,244,244,244,244,244, 89, 32,255,
+ 32, 32, 46,213,241,241,241,241,241,241,241,241,241,241, 32, 32, 32, 60,227,241,241,241,241,241,241,241,241,227, 60, 32, 32, 46,227,241,241,241,102, 32, 60,227,241,241,241, 88, 32,116,241,241,241,199, 32,241, 32,185,241,241,241,116, 32, 32,143,241,241,241,241,241,241,241,241,241,241,130, 32,241, 32, 74,227,241,241,241,199,185,241,241,241,241,171, 32,241, 32, 88,241,241,241,241,241,241,241,241,241,241,199, 32,255,
+ 32, 32,128,237,237,237,223,128, 87,128,237,237,237,237, 32, 32, 32,182,237,237,237,196,100,100,196,237,237,237,182, 32,237, 32,100,237,237,237,223, 59,196,237,237,237,141, 32, 32, 46,237,237,237,237, 59, 32, 46,237,237,237,237, 46, 32, 59,237,237,237,237,169, 87, 87,182,237,237,237,128, 32,237, 32,196,237,237,237, 87, 32, 32, 73,223,237,237,237, 73, 32, 32, 87,237,237,237,237,223,182,223,237,237,237,237, 46, 32,
+ 32, 32,207,234,234,234,113, 32, 32, 32,234,234,234,234, 32, 32, 59,234,234,234,221, 45, 32, 32, 45,221,234,234,234, 59, 32,234, 32,140,234,234,234,221,234,234,234,194, 32, 32,234, 32,167,234,234,234,126, 32, 99,234,234,234,167, 32, 32,126,234,234,234,180, 32, 32, 32,126,234,234,234,126, 32, 32, 99,234,234,234,167, 32, 32, 32, 32,153,234,234,234,126, 32, 32, 86,234,234,234,207, 45, 32, 45,234,234,234,234, 86, 32,
+ 32, 45,231,231,231,218, 32, 32, 32, 32,231,231,231,231, 32, 32, 98,231,231,231,165, 32,231,231, 32,165,231,231,231, 98, 32,231, 32, 45,191,231,231,231,231,231,218, 72, 32,231,231, 32, 98,231,231,231,165, 32,151,231,231,231,112, 32, 32,165,231,231,231,112, 32,231, 32,125,231,231,231,125, 32, 32,138,231,231,231,178,125,125,125,125,178,231,231,231,178, 32, 32, 85,231,231,231,178, 32,255, 32,191,231,231,231, 85, 32,
+ 32, 84,227,227,227,175, 32, 32, 32, 32,227,227,227,227, 32, 32,123,227,227,227,123, 32,227,227, 32,123,227,227,227,123, 32,227,227, 32, 71,227,227,227,227,227,123, 32,227,227,227,227, 32,214,227,227,227, 45,201,227,227,227, 45, 32, 32,175,227,227,227, 84, 32,227, 32,123,227,227,227,123, 32, 32,175,227,227,227,227,227,227,227,227,227,227,227,227,175, 32, 32, 84,227,227,227,175, 32,255, 32,175,227,227,227, 84, 32,
+ 32, 83,223,223,223,172, 32, 32, 32, 32,223,223,223,223, 32, 32,121,223,223,223,121, 32,223,223, 32,121,223,223,223,121, 32,223,223,223, 32,172,223,223,223,210, 45, 32,223,223,223,223, 32,147,223,223,223,134,223,223,223,147, 32,223, 32,172,223,223,223, 83, 32,223, 32,121,223,223,223,121, 32, 32,172,223,223,223,223,223,223,223,223,223,223,223,223,172, 32, 32, 83,223,223,223,172, 32,255, 32,172,223,223,223, 83, 32,
+ 32, 82,220,220,220,170, 32, 32, 32, 32,220,220,220,220, 32, 32,120,220,220,220,120, 32,220,220, 32,120,220,220,220,120, 32,220,220, 32, 95,220,220,220,220,220,132, 32,220,220,220,220, 32, 95,220,220,220,207,220,220,220, 95, 32,220, 32,170,220,220,220,107, 32,220, 32,120,220,220,220,120, 32, 32,170,220,220,220,132, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 82,220,220,220,170, 32,255, 32,170,220,220,220, 82, 32,
+ 32, 57,216,216,216,216, 32, 32, 32, 32,216,216,216,216, 32, 32, 81,216,216,216,167, 32,216,216, 32,155,216,216,216, 81, 32,216, 32, 57,204,216,216,216,216,216,216, 93, 32,216,216,216,216, 32,204,216,216,216,216,216,204, 32,216,216, 32,118,216,216,216,167, 32, 32, 32,130,216,216,216,118, 32, 32,118,216,216,216,191, 32, 32,216,216,216, 32, 32, 44, 57, 32, 32, 81,216,216,216,167, 32,255, 32,167,216,216,216, 81, 32,
+ 32, 32,189,213,213,213,116, 32, 32, 80,213,213,213,213, 32, 32, 44,201,213,213,213, 68, 32, 32, 68,213,213,213,213, 44, 32, 32, 32,165,213,213,213,165,213,213,213,201, 44, 32,213,213,213, 32,129,213,213,213,213,213,141, 32,213,213, 32, 80,213,213,213,213,165,116,153,213,213,213,213,116, 32, 32, 56,213,213,213,213,153, 56, 32, 32, 32, 44,104,189,116, 32, 32, 80,213,213,213,165, 32,255, 32,165,213,213,213, 80, 32,
+ 32, 32,139,210,210,210,210,174,174,210,210,210,210,210, 32, 32, 32,127,210,210,210,198,127,127,198,210,210,210,127, 32,210, 32,115,210,210,210,174, 44,139,210,210,210,163, 32, 32,210,210, 32, 68,210,210,210,210,210, 91, 32,210,210,210, 32,174,210,210,210,210,210,210,210,210,210,210,115, 32,210, 32,127,210,210,210,210,210,174,163,163,210,210,210,115, 32, 32, 79,210,210,210,163, 32,255, 32,163,210,210,210, 79, 32,
+ 32, 32, 55,194,206,206,206,206,206,194,206,206,206,206, 32, 32, 32, 44,171,206,206,206,206,206,206,206,206,171, 44, 32, 32, 67,206,206,206,206, 67, 32, 44,183,206,206,206,113, 32,206,206,206, 32,183,206,206,206,194, 32,206,206,206,206, 32, 67,194,206,206,206,206,206,171,206,206,206,113, 32,206, 32, 32,136,206,206,206,206,206,206,206,206,206,206,113, 32, 32, 78,206,206,206,160, 32,255, 32,160,206,206,206, 78, 32,
+ 32, 32, 32,100,192,203,203,203,157, 55,203,203,203,203, 32, 32,203, 32, 43,135,203,203,203,203,203,203,135, 43, 32, 32, 43,180,203,203,203,112, 32,203, 32, 66,203,203,203,203, 66, 32,203,203, 32,157,203,203,203,135, 32,203,203,203,203,203, 32, 43,112,157,157,123, 55,112,203,203,203,112, 32,203,203, 32, 32, 78,146,203,203,203,203,203,203,169,123, 55, 32, 32, 78,203,203,203,157, 32,255, 32,157,203,203,203, 78, 32,
+ 32, 32, 32, 32, 54,110,110, 88, 32, 32, 32, 32, 32, 32, 32, 32,200,200, 32, 32, 54, 99,110,110, 99, 54, 32, 32,200,200, 32, 32, 32, 32, 32, 32, 32,200,200, 32, 32, 32, 32, 32, 32,200,200, 32, 54,200,200,200,200, 77, 32,200,200,200,200,200, 32, 32, 32, 32, 32, 32, 32,166,200,200,200, 88, 32,200,200,200,200, 32, 32, 32, 66, 77, 77, 77, 32, 32, 32, 32,200,200, 32, 32, 32, 32, 32, 32,255, 32, 32, 32, 32, 32, 32,255,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,198,198,198,198, 32, 32, 32, 32, 32, 32,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198, 32,109,198,198,198,176, 32,198,198,198,198,198, 32, 98,121, 76, 32, 32, 54,109,198,198,198,198, 43, 32,198,198,198,198,198,198,198, 32, 32, 32, 32,198,198,198,198,198,198,198,198,198,198,198,198,255,255,255,255,255,255,255,255,
+ 32, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 33,159,191,191,191,117, 36, 41, 41, 41, 41, 41, 34,108,191,191,191,191,191,191,191,191,191,117, 36, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,255,
+ 32, 41, 97,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 78, 38, 64,190,192,192,192, 66, 66, 41, 41, 85,128, 65, 34,107,190,192,192,192,192,192,192,192,139, 48, 39, 41, 41,105,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 97, 41,255,
+ 32, 41, 97,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 96, 36, 95,147,148,148,139, 55, 41, 41, 85,121,128, 91, 38, 75,137,158,190,190,190,170,139, 97, 49, 37, 41, 41,105,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, 97, 41,255,
+ 32, 41, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 41, 36, 45, 45, 45, 48, 38, 41, 41, 76, 76, 76, 76, 76, 37, 34, 42, 33, 33, 33, 39, 48, 59, 41, 41, 41, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 41,255,
+ 32, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+ 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
};
-static unsigned int tab_r_gif_len = 2585;
-static unsigned char search_sel_png[] = {
+static unsigned char doxygen_a_png[3224] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,145,247,247,247,247,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,247,247,247,247,247,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,247,247,247,247,247,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,247,247,247,247,247,247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 16,115,181,181,132,247,247,247,247,247,247, 0, 0, 0, 0, 0, 99,148,181,181,148, 99, 0, 0, 0, 0, 16, 66, 66, 66, 66, 16, 0, 0, 0, 0, 66, 66, 66, 66, 33, 66, 66, 66, 66, 16, 0, 0, 0, 16, 66, 66, 66, 66, 0, 0, 0, 0, 99,165,181,148, 66, 33, 66, 66, 66, 33, 0, 0, 0, 0, 0, 0, 82,132,181,181,181,115, 66, 0, 0, 0, 0, 0, 16, 66, 66, 66, 49, 0, 66,148,181,148, 49, 0, 0, 0,
+ 0, 0, 0,129,247,247,247,247,247,247,247,247,247,247,247, 0, 0, 0,112,214,247,247,247,247,247,247,214,112, 0, 16,247,247,247,247,247,247, 46, 0, 0,145,247,247,247,247,247,247,247,247,247,247, 16, 0, 16,247,247,247,247,247, 66, 0, 63,165,247,247,247,247,247,247,247,247,247,247, 33, 0, 0, 0, 96,198,247,247,247,247,247,247,247,165, 63, 0, 0, 16,247,247,247,247,247,145,247,247,247,247,247,145, 0, 0,
+ 0, 0,112,247,247,247,247,247,247,247,247,247,247,247,247, 0, 0,129,247,247,247,247,247,247,247,247,247,247,129, 0,181,247,247,247,247,247,148, 0,129,247,247,247,247,247,247,247,247,247,247,247,115, 0,115,247,247,247,247,247,165, 30,247,247,247,247,247,247,247,247,247,247,247,247,115, 0, 0,129,247,247,247,247,247,247,247,247,247,247,247, 63, 0, 66,247,247,247,247,247,247,247,247,247,247,247,247, 96, 0,
+ 0, 16,247,247,247,247,247,247,247,247,247,247,247,247,247, 0, 79,247,247,247,247,247,247,247,247,247,247,247,247, 79, 79,247,247,247,247,247,247,129,247,247,247,247,247,247,129,247,247,247,247,247,198, 0,181,247,247,247,247,247, 99,145,247,247,247,247,247,247,247,247,247,247,247,247,115, 0, 96,247,247,247,247,247,247,247,247,247,247,247,247,165, 0, 66,247,247,247,247,247,247,247,247,247,247,247,247,198, 0,
+ 0,115,247,247,247,247,247,247,247,247,247,247,247,247,247, 0,181,247,247,247,247,247,247,247,247,247,247,247,247,181, 0,129,247,247,247,247,247,247,247,247,247,247,247,145, 16,247,247,247,247,247,247, 33,247,247,247,247,247,247, 33,247,247,247,247,247,247,247,247,247,247,247,247,247,115, 0,198,247,247,247,247,247,198,181,247,247,247,247,247,247, 49, 66,247,247,247,247,247,247,247,247,247,247,247,247,247, 16,
+ 0,214,247,247,247,247,247,129, 66,247,247,247,247,247,247, 33,247,247,247,247,247,247, 96, 96,247,247,247,247,247,247, 33, 0,145,247,247,247,247,247,247,247,247,247,198, 30, 0,165,247,247,247,247,247,115,247,247,247,247,247,165,115,247,247,247,247,247,181, 66,115,247,247,247,247,247,115, 82,247,247,247,247,247,165,115,115,148,247,247,247,247,247,115, 66,247,247,247,247,247,247,181,247,247,247,247,247,247, 66,
+ 16,247,247,247,247,247,231, 0, 0,247,247,247,247,247,247, 82,247,247,247,247,247,165, 0, 0,165,247,247,247,247,247, 82, 0, 30,247,247,247,247,247,247,247,247,247, 96, 0, 0, 82,247,247,247,247,247,165,247,247,247,247,247, 99,165,247,247,247,247,247, 99, 0,115,247,247,247,247,247,115,132,247,247,247,247,247,247,247,247,247,247,247,247,247,247,181, 66,247,247,247,247,247,181, 0,198,247,247,247,247,247, 66,
+ 66,247,247,247,247,247,181, 0, 0,247,247,247,247,247,247,115,247,247,247,247,247,115, 0, 0,115,247,247,247,247,247,115, 0, 0, 96,247,247,247,247,247,247,247,129, 0, 0, 0, 0,231,247,247,247,247,247,247,247,247,247,247, 16,181,247,247,247,247,247, 66, 0,115,247,247,247,247,247,115,181,247,247,247,247,247,247,247,247,247,247,247,247,247,247,181, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 66,247,247,247,247,247,181, 0, 0,247,247,247,247,247,247,115,247,247,247,247,247,115, 0, 0,115,247,247,247,247,247,115, 0, 0, 0,181,247,247,247,247,247,247, 30, 0, 0, 0, 0,148,247,247,247,247,247,247,247,247,247,148, 0,181,247,247,247,247,247, 66, 0,115,247,247,247,247,247,115,181,247,247,247,247,247,247,247,247,247,247,247,247,247,247,181, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 66,247,247,247,247,247,181, 0, 0,247,247,247,247,247,247,115,247,247,247,247,247,115, 0, 0,115,247,247,247,247,247,115, 0, 0,129,247,247,247,247,247,247,247,145, 0, 0, 0, 0, 82,247,247,247,247,247,247,247,247,247, 82, 0,181,247,247,247,247,247, 99, 0,115,247,247,247,247,247,115,181,247,247,247,247,247,247,247,247,247,247,247,247,247,181, 79, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 33,247,247,247,247,247,247, 14, 0,247,247,247,247,247,247, 66,247,247,247,247,247,181, 0, 0,165,247,247,247,247,247, 66, 0, 79,247,247,247,247,247,247,247,247,247,129, 0, 0, 0, 0,231,247,247,247,247,247,247,247,231, 0, 0,115,247,247,247,247,247,181,115,165,247,247,247,247,247,115,115,247,247,247,247,247,214, 63, 0, 0, 0, 16,112,247,247, 33, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 0,214,247,247,247,247,247,198,198,247,247,247,247,247,247, 16,247,247,247,247,247,247,132,132,247,247,247,247,247,247, 16, 14,181,247,247,247,247,247,247,247,247,247,247, 79, 0, 0, 0,132,247,247,247,247,247,247,247,148, 0, 0, 66,247,247,247,247,247,247,247,247,247,247,247,247,247,115, 33,247,247,247,247,247,247,247,198,181,181,247,247,247,247,115, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 0,148,247,247,247,247,247,247,247,247,247,247,247,247,247, 0,132,247,247,247,247,247,247,247,247,247,247,247,247,145, 0,145,247,247,247,247,247,247,247,247,247,247,247,181, 14, 0, 0, 49,247,247,247,247,247,247,247, 82, 0, 0, 0,198,247,247,247,247,247,247,247,247,247,247,247,247,115, 0,145,247,247,247,247,247,247,247,247,247,247,247,247,247,115, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 0, 46,247,247,247,247,247,247,247,247,247,247,247,247,247, 0, 30,247,247,247,247,247,247,247,247,247,247,247,247, 30,112,247,247,247,247,247,247, 96,247,247,247,247,247,247,145, 0, 0, 0,214,247,247,247,247,247,231, 0, 0, 0, 0, 96,247,247,247,247,247,247,247,247,247,247,247,247,115, 0, 30,148,247,247,247,247,247,247,247,247,247,247,247,247,115, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 0, 0,129,247,247,247,247,247,247,247,247,247,247,247,247, 0, 0, 96,247,247,247,247,247,247,247,247,247,247, 96, 16,247,247,247,247,247,247,145, 0,112,247,247,247,247,247,247, 49, 0, 0,181,247,247,247,247,247,148, 0, 0, 0, 0, 0,129,247,247,247,247,247,247,247,247,247,247,247,115, 0, 0, 46,148,247,247,247,247,247,247,247,247,247,247,247, 33, 66,247,247,247,247,247,181, 0,181,247,247,247,247,247, 66,
+ 0, 0, 0,129,247,247,247,247,181,145,247,247,247,247,145, 0, 0, 0, 46,148,247,247,247,247,247,247,148, 46, 0, 0,112,214,247,247,247,145, 14, 0, 0,145,247,247,247,247,145, 0, 0, 33,247,247,247,247,247,247, 66, 0, 0, 0, 0, 0, 99,132,115,181,181,132,198,247,247,247,247,247, 82, 0, 0, 0, 0, 66,165,247,247,247,247,247,247,198,132, 33, 0, 0,145,247,247,247,181, 79, 0, 79,181,247,247,247,145, 0,
+ 0, 0, 0, 0, 33,115,115, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 99,115,115, 99, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115,247,247,247,247,247,214, 0, 0, 0, 0, 0, 99,247,247,247,247,247,247,247,247,247,247,247,247, 16, 0, 0, 0, 0, 0, 0, 0, 49, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,165,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,108,224,255,255,255,255,255,255,101,164,255,255,255,143,250,255,255,255,255,255,255,255,255,255,255,255, 98,170,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165, 0,
+ 0,165,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,136,251,255,255,255,255,255,255,101,130,255,255,255,153,250,255,255,255,255,255,255,255,255,255,255,121, 98,189,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165, 0,
+ 0,165,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,252,255,255,255,255,255,164,164,255,255,255,255,176,249,251,255,255,255,255,255,255,255,255,150, 86,192,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165, 0,
+ 0,165,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,164,198,255,255,255,255,201,133,164,255,255,255,255,255,145,203,255,255,255,255,255,255,255,117, 79,194,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165, 0,
+ 0, 66,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 73, 73,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 47, 70,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 66, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+unsigned char mag_sel_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x10,
- 0x08, 0x02, 0x00, 0x00, 0x00, 0x99, 0x7a, 0xc8, 0x4c, 0x00, 0x00, 0x01,
- 0xd6, 0x49, 0x44, 0x41, 0x54, 0x28, 0x15, 0x8d, 0x92, 0xbb, 0xae, 0x41,
- 0x51, 0x10, 0x86, 0xcf, 0x66, 0x0b, 0x22, 0x44, 0x23, 0x4a, 0xb7, 0xd0,
- 0x11, 0x09, 0x71, 0x49, 0xbc, 0x82, 0xc2, 0x2b, 0xa0, 0xd6, 0x29, 0x74,
- 0x1e, 0x42, 0xeb, 0x11, 0x44, 0x41, 0x43, 0x45, 0x27, 0x48, 0x08, 0x91,
- 0x10, 0x51, 0xba, 0x14, 0x42, 0x21, 0x91, 0x10, 0x97, 0xf3, 0xb1, 0x9c,
- 0x9d, 0x13, 0x97, 0x93, 0x33, 0xc5, 0xda, 0xb3, 0x66, 0xfe, 0xff, 0x9f,
- 0x59, 0x33, 0x5b, 0xba, 0x5e, 0xaf, 0x5f, 0x77, 0xbb, 0x5c, 0x2e, 0xd2,
- 0xdd, 0xc4, 0xf5, 0x3f, 0xa7, 0xac, 0x30, 0x3b, 0x9d, 0x4e, 0xbf, 0xdf,
- 0x9f, 0x4e, 0xa7, 0x44, 0xdc, 0x6e, 0xb7, 0xdf, 0xef, 0x0f, 0x87, 0xc3,
- 0x7f, 0x4b, 0x48, 0xa7, 0xd3, 0x89, 0x7a, 0xd5, 0x6a, 0xb5, 0x5c, 0x2e,
- 0x9f, 0xcf, 0x67, 0xea, 0x43, 0x50, 0xa9, 0x54, 0x6a, 0xb5, 0x3a, 0x91,
- 0x48, 0xc4, 0xe3, 0x71, 0xb2, 0x9f, 0x24, 0x64, 0x70, 0xad, 0x56, 0xab,
- 0x54, 0x2a, 0x19, 0x0c, 0x86, 0x50, 0x28, 0xe4, 0xf5, 0x7a, 0x81, 0x0e,
- 0x87, 0xc3, 0x76, 0xbb, 0x4d, 0xd0, 0x62, 0xb1, 0x44, 0xa3, 0xd1, 0x8f,
- 0x64, 0x12, 0xdd, 0x6e, 0x97, 0xfa, 0x91, 0x48, 0x84, 0x3a, 0x5a, 0xad,
- 0x96, 0x52, 0x4e, 0xa7, 0x13, 0xd1, 0x5a, 0xad, 0x46, 0x8a, 0xe6, 0xf1,
- 0xdf, 0xf2, 0x55, 0x0c, 0x6c, 0x32, 0x99, 0x70, 0x52, 0xd6, 0x68, 0x34,
- 0xea, 0xf5, 0x7a, 0x9d, 0x4e, 0x87, 0xc3, 0x55, 0xa4, 0xde, 0xd2, 0x44,
- 0x50, 0x06, 0x21, 0xde, 0x49, 0x4d, 0x59, 0x7e, 0xcc, 0x8f, 0x07, 0x23,
- 0x01, 0x82, 0x14, 0x36, 0x1a, 0x8d, 0x8a, 0xc5, 0xe2, 0x6f, 0x95, 0x54,
- 0x2a, 0xc5, 0x03, 0x6f, 0xfd, 0xd0, 0x24, 0x67, 0xaf, 0xd7, 0x43, 0x48,
- 0x41, 0x70, 0xc5, 0x77, 0xb9, 0x5c, 0x9c, 0xe0, 0x40, 0x2b, 0xd9, 0x64,
- 0x32, 0x29, 0x46, 0x73, 0x23, 0xfb, 0x7c, 0x3e, 0xce, 0x66, 0xb3, 0x59,
- 0xa9, 0x54, 0x56, 0xab, 0xd5, 0x72, 0xb9, 0xc4, 0x69, 0x34, 0x1a, 0x04,
- 0xd9, 0x99, 0x98, 0x36, 0xe8, 0x74, 0x3a, 0x4d, 0x04, 0xa6, 0xc0, 0xe3,
- 0x4b, 0x74, 0xb5, 0xdb, 0xed, 0xd8, 0x53, 0xbd, 0x5e, 0xa7, 0x6d, 0x1a,
- 0x26, 0xca, 0xce, 0x18, 0x21, 0xa5, 0x6c, 0x36, 0x5b, 0x2e, 0x97, 0x33,
- 0x99, 0x4c, 0x04, 0xb1, 0xc1, 0x60, 0xa0, 0x30, 0xb9, 0xaa, 0xf3, 0xf9,
- 0x3c, 0x1c, 0xbb, 0xdd, 0x6e, 0x36, 0x9b, 0x41, 0x23, 0x04, 0xdf, 0xe3,
- 0xf1, 0xb0, 0xa1, 0xed, 0x76, 0x4b, 0x17, 0xe3, 0xf1, 0x38, 0x18, 0x0c,
- 0x32, 0x11, 0xd0, 0x56, 0xab, 0xf5, 0xa6, 0xf1, 0x63, 0x92, 0x78, 0x09,
- 0x75, 0xf6, 0xfb, 0xfd, 0xe1, 0x70, 0x10, 0x05, 0x35, 0x1a, 0x0d, 0x8a,
- 0x9b, 0xcd, 0xa6, 0x50, 0x28, 0xac, 0xd7, 0x6b, 0x87, 0xc3, 0x91, 0xcd,
- 0x66, 0x59, 0xc1, 0x0f, 0xeb, 0xf1, 0xbd, 0xb5, 0x2d, 0x5e, 0x85, 0x0a,
- 0xa6, 0x5c, 0x09, 0xa2, 0xb5, 0x58, 0x2c, 0xe0, 0xa3, 0x92, 0xc9, 0x64,
- 0x02, 0x81, 0xc0, 0x33, 0x59, 0x70, 0x04, 0xff, 0x29, 0x47, 0x0a, 0xfe,
- 0x7c, 0x3e, 0x9f, 0xcd, 0x66, 0xb1, 0x58, 0x8c, 0x5f, 0xe0, 0x09, 0xf6,
- 0x68, 0x1b, 0xdc, 0x53, 0x42, 0x08, 0x11, 0x3f, 0x1e, 0x8f, 0xcc, 0x8f,
- 0xb5, 0xbf, 0xfe, 0x67, 0x0f, 0x32, 0xd0, 0xdf, 0x0d, 0xbf, 0xb6, 0xf0,
- 0x56, 0xfa, 0x1b, 0x21, 0x36, 0x05, 0xd3, 0x4d, 0xe6, 0x17, 0x7f, 0x00,
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13,
+ 0x08, 0x06, 0x00, 0x00, 0x00, 0x90, 0x8c, 0x2d, 0xb5, 0x00, 0x00, 0x00,
+ 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b,
+ 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48,
+ 0x52, 0x4d, 0x00, 0x00, 0x6d, 0x98, 0x00, 0x00, 0x73, 0x8e, 0x00, 0x00,
+ 0xe0, 0x38, 0x00, 0x00, 0x82, 0xd5, 0x00, 0x00, 0x7a, 0x07, 0x00, 0x00,
+ 0xca, 0xb4, 0x00, 0x00, 0x33, 0x44, 0x00, 0x00, 0x1c, 0x76, 0x84, 0x36,
+ 0x2a, 0xbd, 0x00, 0x00, 0x01, 0xb9, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda,
+ 0xe4, 0x94, 0xbb, 0x8a, 0x22, 0x41, 0x14, 0x86, 0xbf, 0xda, 0x16, 0x3a,
+ 0x10, 0xba, 0x03, 0x2f, 0x78, 0x03, 0x51, 0x11, 0x4c, 0xd4, 0x40, 0xd4,
+ 0x37, 0x30, 0x31, 0x30, 0xe9, 0x07, 0xf0, 0x15, 0x14, 0x7c, 0x1e, 0x31,
+ 0x37, 0x33, 0x11, 0x73, 0xe9, 0x56, 0x44, 0x84, 0x36, 0xe9, 0x40, 0x50,
+ 0x54, 0x14, 0xc4, 0xc0, 0xa8, 0x6d, 0x50, 0x6a, 0x92, 0x1d, 0xd9, 0x9d,
+ 0x99, 0x75, 0x0d, 0x26, 0x58, 0xd8, 0x3f, 0xaa, 0xe2, 0xfc, 0xf5, 0xd5,
+ 0x39, 0x9c, 0x53, 0x25, 0xa4, 0x94, 0x7c, 0xa7, 0x7e, 0xf0, 0xcd, 0xfa,
+ 0xf7, 0x81, 0xbe, 0xf7, 0xc5, 0xf9, 0x7c, 0x96, 0x93, 0xc9, 0x84, 0xe5,
+ 0x72, 0xc9, 0x66, 0xb3, 0x21, 0x99, 0x4c, 0x92, 0xcf, 0xe7, 0xa9, 0x54,
+ 0x2a, 0x04, 0x02, 0x01, 0xf1, 0x2a, 0x50, 0x48, 0x29, 0x39, 0x9d, 0x4e,
+ 0x72, 0x30, 0x18, 0x60, 0x59, 0xd6, 0x27, 0x43, 0xb5, 0x5a, 0xa5, 0xd1,
+ 0x68, 0x10, 0x0c, 0x06, 0xc5, 0xcb, 0x19, 0x4e, 0xa7, 0x53, 0x2c, 0xcb,
+ 0x22, 0x95, 0x4a, 0x51, 0x2a, 0x95, 0xc8, 0x64, 0x32, 0xac, 0x56, 0x2b,
+ 0x66, 0xb3, 0x19, 0x93, 0xc9, 0x84, 0x48, 0x24, 0x42, 0xbd, 0x5e, 0x7f,
+ 0xbd, 0x64, 0xdb, 0xb6, 0x01, 0x28, 0x97, 0xcb, 0x54, 0x2a, 0x15, 0x34,
+ 0x4d, 0x13, 0xa1, 0x50, 0x48, 0x2a, 0x8a, 0xc2, 0x7a, 0xbd, 0xc6, 0xb6,
+ 0x6d, 0xea, 0xf5, 0x3a, 0xa3, 0xd1, 0x48, 0xf6, 0xfb, 0xfd, 0xc7, 0x61,
+ 0xc3, 0x30, 0xa8, 0xd5, 0x6a, 0xe2, 0x53, 0x53, 0xb6, 0xdb, 0x2d, 0x00,
+ 0xc5, 0x62, 0x11, 0x4d, 0xd3, 0x04, 0x80, 0xa6, 0x69, 0xa2, 0x50, 0x28,
+ 0xf0, 0x6b, 0x1c, 0x10, 0x86, 0x61, 0x3c, 0x60, 0x80, 0xf8, 0xb2, 0xcb,
+ 0x89, 0x44, 0x02, 0x00, 0xc7, 0x71, 0x00, 0xde, 0x27, 0x5d, 0xfe, 0xdc,
+ 0x3f, 0xe2, 0x1f, 0xa0, 0xe2, 0x8f, 0x63, 0x93, 0xcb, 0xe5, 0x00, 0x18,
+ 0x8f, 0xc7, 0x98, 0xa6, 0x89, 0xeb, 0xba, 0xd2, 0x34, 0x4d, 0xc6, 0xe3,
+ 0x31, 0x00, 0xe9, 0x74, 0x1a, 0x80, 0x5a, 0xad, 0xf6, 0x80, 0x3e, 0xed,
+ 0xf2, 0x7a, 0xbd, 0x96, 0xc3, 0xe1, 0x90, 0xf9, 0x7c, 0xfe, 0xa5, 0x29,
+ 0x1c, 0x0e, 0xd3, 0xe9, 0x74, 0xd0, 0x75, 0x5d, 0x00, 0x8c, 0x46, 0xa3,
+ 0x8f, 0x17, 0xfc, 0x0e, 0xf4, 0x3c, 0x4f, 0xee, 0x76, 0x3b, 0x16, 0x8b,
+ 0x05, 0x8e, 0xe3, 0xb0, 0xdf, 0xef, 0x89, 0xc7, 0xe3, 0xa4, 0xd3, 0x69,
+ 0x6c, 0xdb, 0xe6, 0x74, 0x3a, 0x11, 0x8d, 0x46, 0x69, 0xb7, 0xdb, 0x0f,
+ 0xe8, 0xd3, 0x0c, 0x01, 0x3c, 0xcf, 0x93, 0xae, 0xeb, 0xe2, 0x79, 0x1e,
+ 0xb7, 0xdb, 0x0d, 0x9f, 0xcf, 0x87, 0xa2, 0x28, 0x5c, 0x2e, 0x17, 0x7a,
+ 0xbd, 0x1e, 0xc7, 0xe3, 0x91, 0x58, 0x2c, 0x46, 0xab, 0xd5, 0x7a, 0x0a,
+ 0x7d, 0xbc, 0x14, 0x55, 0x55, 0x85, 0xaa, 0xaa, 0x9f, 0x0c, 0x7e, 0xbf,
+ 0x5f, 0x36, 0x9b, 0x4d, 0xba, 0xdd, 0x2e, 0xd7, 0xeb, 0x95, 0xeb, 0xf5,
+ 0x8a, 0xae, 0xeb, 0x7f, 0xcf, 0xf0, 0x99, 0x5c, 0xd7, 0x95, 0x87, 0xc3,
+ 0x81, 0xfb, 0xfd, 0x4e, 0x36, 0x9b, 0x7d, 0xad, 0xe4, 0xff, 0xe7, 0xfb,
+ 0x7a, 0x1b, 0x00, 0x59, 0xa8, 0xba, 0x68, 0xca, 0x4f, 0xc5, 0xa7, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
};
-static unsigned int search_sel_png_len = 527;
+unsigned int mag_sel_png_len = 563;
+
+unsigned char mag_png[] = {
+ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13,
+ 0x08, 0x06, 0x00, 0x00, 0x00, 0x90, 0x8c, 0x2d, 0xb5, 0x00, 0x00, 0x00,
+ 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b,
+ 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48,
+ 0x52, 0x4d, 0x00, 0x00, 0x6d, 0x98, 0x00, 0x00, 0x73, 0x8e, 0x00, 0x00,
+ 0xe0, 0x38, 0x00, 0x00, 0x82, 0xd5, 0x00, 0x00, 0x7a, 0x07, 0x00, 0x00,
+ 0xca, 0xb4, 0x00, 0x00, 0x33, 0x44, 0x00, 0x00, 0x1c, 0x76, 0x84, 0x36,
+ 0x2a, 0xbd, 0x00, 0x00, 0x01, 0x92, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda,
+ 0xe4, 0x94, 0xbb, 0xaa, 0xea, 0x50, 0x10, 0x86, 0xbf, 0xec, 0x08, 0x29,
+ 0x36, 0x24, 0x85, 0x17, 0xbc, 0x81, 0x18, 0x11, 0x6c, 0xd4, 0x42, 0x8c,
+ 0x0f, 0x61, 0xe1, 0x2b, 0xf8, 0x0a, 0x0a, 0x3e, 0x8f, 0xf8, 0x0c, 0x36,
+ 0x62, 0x1f, 0x92, 0x88, 0x88, 0x10, 0x9b, 0x14, 0x42, 0x44, 0x45, 0x41,
+ 0x2c, 0xac, 0x92, 0x80, 0xb2, 0x4e, 0x73, 0x94, 0x03, 0xfb, 0xb0, 0x4d,
+ 0xb1, 0x8b, 0x03, 0xe7, 0xaf, 0xd6, 0x62, 0xfe, 0xf5, 0x31, 0xc3, 0xcc,
+ 0x1a, 0x49, 0x08, 0xc1, 0x4f, 0xea, 0x83, 0x1f, 0xd6, 0xbf, 0x0f, 0x4c,
+ 0x3c, 0x0f, 0xd7, 0xeb, 0x55, 0x38, 0x8e, 0xc3, 0x66, 0xb3, 0x61, 0xb7,
+ 0xdb, 0x51, 0x2a, 0x95, 0xa8, 0xd7, 0xeb, 0x18, 0x86, 0x41, 0x32, 0x99,
+ 0x94, 0xe2, 0x02, 0x25, 0x21, 0x04, 0x97, 0xcb, 0x45, 0x4c, 0xa7, 0x53,
+ 0x6c, 0xdb, 0xfe, 0x62, 0xe8, 0x74, 0x3a, 0xf4, 0x7a, 0x3d, 0x52, 0xa9,
+ 0x94, 0x14, 0x3b, 0xc3, 0xc5, 0x62, 0x81, 0x6d, 0xdb, 0x94, 0xcb, 0x65,
+ 0x5a, 0xad, 0x16, 0x95, 0x4a, 0x85, 0xed, 0x76, 0xcb, 0x72, 0xb9, 0xc4,
+ 0x71, 0x1c, 0xb2, 0xd9, 0x2c, 0xdd, 0x6e, 0x37, 0x7e, 0xc9, 0xae, 0xeb,
+ 0x02, 0xd0, 0x6e, 0xb7, 0x31, 0x0c, 0x03, 0x55, 0x55, 0xa5, 0x74, 0x3a,
+ 0x2d, 0x64, 0x59, 0xc6, 0xf7, 0x7d, 0x5c, 0xd7, 0x8d, 0x0d, 0xfc, 0x00,
+ 0xd8, 0xef, 0xf7, 0x00, 0x34, 0x9b, 0x4d, 0x54, 0x55, 0x95, 0x00, 0x54,
+ 0x55, 0x95, 0x1a, 0x8d, 0x06, 0x7f, 0xc6, 0x63, 0x03, 0x8b, 0xc5, 0x22,
+ 0x00, 0x9e, 0xe7, 0x01, 0x3c, 0x27, 0x5d, 0xfc, 0xbe, 0xbf, 0xe2, 0xb1,
+ 0x81, 0xb5, 0x5a, 0x0d, 0x00, 0xd3, 0x34, 0xb1, 0x2c, 0x8b, 0x20, 0x08,
+ 0x84, 0x65, 0x59, 0x98, 0xa6, 0x09, 0x80, 0xae, 0xeb, 0xaf, 0x07, 0xf3,
+ 0xf9, 0xfc, 0x7d, 0x97, 0x7d, 0xdf, 0x17, 0xb3, 0xd9, 0x8c, 0xd5, 0x6a,
+ 0xf5, 0x57, 0x53, 0x26, 0x93, 0x61, 0x34, 0x1a, 0xa1, 0x69, 0x9a, 0x14,
+ 0x6b, 0x6c, 0xa2, 0x28, 0x12, 0x87, 0xc3, 0x81, 0xf5, 0x7a, 0x8d, 0xe7,
+ 0x79, 0x1c, 0x8f, 0x47, 0x0a, 0x85, 0x02, 0xba, 0xae, 0xe3, 0xba, 0x2e,
+ 0x97, 0xcb, 0x85, 0x5c, 0x2e, 0xc7, 0x70, 0x38, 0x7c, 0x0b, 0x95, 0x9e,
+ 0xcb, 0x21, 0x8a, 0x22, 0x11, 0x04, 0x01, 0x51, 0x14, 0x71, 0xbf, 0xdf,
+ 0x49, 0x24, 0x12, 0xc8, 0xb2, 0xcc, 0xed, 0x76, 0x63, 0x32, 0x99, 0x70,
+ 0x3e, 0x9f, 0xc9, 0xe7, 0xf3, 0x0c, 0x06, 0x83, 0x6f, 0xa1, 0xaf, 0x9f,
+ 0xa2, 0x28, 0x8a, 0xa4, 0x28, 0xca, 0x17, 0xc3, 0xe7, 0xe7, 0xa7, 0xe8,
+ 0xf7, 0xfb, 0x8c, 0xc7, 0x63, 0xc2, 0x30, 0x24, 0x0c, 0x43, 0x34, 0x4d,
+ 0x7b, 0x9f, 0xe1, 0x77, 0x0a, 0x82, 0x40, 0x9c, 0x4e, 0x27, 0x1e, 0x8f,
+ 0x07, 0xd5, 0x6a, 0x35, 0x5e, 0xc9, 0xff, 0xcf, 0xfa, 0xfa, 0x35, 0x00,
+ 0x70, 0xf3, 0xae, 0xcb, 0x89, 0xcd, 0xd2, 0x46, 0x00, 0x00, 0x00, 0x00,
+ 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
+};
+unsigned int mag_png_len = 524;
-unsigned char search_png[] = {
+unsigned char search_l_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
- 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10,
- 0x08, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x56, 0x25, 0x04, 0x00, 0x00, 0x01,
- 0x9e, 0x49, 0x44, 0x41, 0x54, 0x28, 0x15, 0xa5, 0x52, 0xcd, 0xca, 0x41,
- 0x51, 0x14, 0x5d, 0xdf, 0x75, 0xe5, 0x96, 0xa2, 0x64, 0x2e, 0x6e, 0x86,
- 0x64, 0x24, 0x79, 0x07, 0xc9, 0x0b, 0x18, 0x1b, 0x9a, 0x18, 0x78, 0x08,
- 0x33, 0x03, 0x6f, 0x21, 0x19, 0x31, 0x62, 0x22, 0x49, 0x28, 0x26, 0xa2,
- 0x0c, 0x0c, 0x4c, 0xa4, 0x28, 0x7f, 0x85, 0xed, 0xee, 0x5d, 0xe7, 0x84,
- 0x81, 0xfa, 0xbe, 0x6f, 0x0f, 0xee, 0x3d, 0xad, 0xbd, 0xd6, 0xda, 0xfb,
- 0xec, 0x7d, 0x80, 0x7f, 0xc4, 0xcf, 0xab, 0xb6, 0xdf, 0xef, 0xd3, 0x64,
- 0x32, 0xc1, 0x62, 0xb1, 0x10, 0x38, 0x1a, 0x8d, 0x22, 0x91, 0x48, 0x20,
- 0x95, 0x4a, 0xbd, 0xf1, 0x94, 0x46, 0x83, 0x8d, 0x46, 0x83, 0xea, 0xf5,
- 0x3a, 0xee, 0xf7, 0x3b, 0x1e, 0x8f, 0x87, 0xe4, 0x0d, 0xc3, 0x80, 0xcb,
- 0xe5, 0x42, 0x2e, 0x97, 0x43, 0x36, 0x9b, 0xd5, 0xdc, 0x37, 0x71, 0xaf,
- 0xd7, 0xa3, 0x5a, 0xad, 0x06, 0xaf, 0xd7, 0x8b, 0x64, 0x32, 0x89, 0x58,
- 0x2c, 0x26, 0xf9, 0xe9, 0x74, 0x8a, 0xc1, 0x60, 0x80, 0xe3, 0xf1, 0x88,
- 0x42, 0xa1, 0x80, 0x74, 0x3a, 0xfd, 0x66, 0x60, 0x32, 0x6b, 0x38, 0x1c,
- 0xe2, 0x76, 0xbb, 0x71, 0x7b, 0xc8, 0x64, 0x32, 0x08, 0x04, 0x02, 0x42,
- 0xda, 0xed, 0x76, 0xc4, 0xd5, 0x5b, 0xad, 0x96, 0x70, 0x54, 0x45, 0xf5,
- 0x37, 0xf8, 0x30, 0x9f, 0xcf, 0x41, 0x44, 0x52, 0x55, 0x09, 0x19, 0xe7,
- 0x33, 0x77, 0xc2, 0x39, 0xe6, 0x7c, 0x86, 0x88, 0xd5, 0x1d, 0x3d, 0x1e,
- 0xcf, 0x67, 0x1e, 0x96, 0x65, 0x09, 0xa6, 0x38, 0xaf, 0x04, 0x11, 0x47,
- 0x22, 0x11, 0xc1, 0xc6, 0xe3, 0x31, 0x0f, 0x8b, 0x14, 0x81, 0xcf, 0x8c,
- 0x71, 0xd8, 0xb6, 0xad, 0x60, 0xfd, 0x97, 0x3b, 0xc7, 0xe3, 0x71, 0x8c,
- 0x46, 0x23, 0x74, 0xbb, 0x5d, 0x98, 0xa6, 0x89, 0xcd, 0x66, 0xe3, 0x74,
- 0x4a, 0x68, 0x36, 0x9b, 0xe8, 0x74, 0x3a, 0x42, 0xe6, 0xb5, 0x7d, 0x86,
- 0x0c, 0x66, 0xbf, 0xdf, 0xcb, 0x9a, 0xda, 0xed, 0xb6, 0x88, 0x79, 0x3d,
- 0x1c, 0xbc, 0x36, 0x1e, 0x24, 0x1b, 0x85, 0x42, 0x21, 0x94, 0xcb, 0x65,
- 0xf8, 0xfd, 0x7e, 0x3d, 0x71, 0xa9, 0xcc, 0x00, 0x4f, 0x36, 0x18, 0x0c,
- 0x62, 0x36, 0x9b, 0x61, 0xb5, 0x5a, 0x89, 0x38, 0x1c, 0x0e, 0x83, 0xaf,
- 0xe4, 0xac, 0x12, 0xeb, 0xf5, 0x1a, 0x95, 0x4a, 0x05, 0x87, 0xc3, 0x81,
- 0x7c, 0x3e, 0x9f, 0x18, 0x68, 0x17, 0x66, 0x73, 0x07, 0xd7, 0xeb, 0x55,
- 0x57, 0x73, 0xbb, 0xdd, 0xd2, 0x89, 0x63, 0x8c, 0x6a, 0xb5, 0x8a, 0xed,
- 0x76, 0x0b, 0x36, 0x2c, 0x95, 0x4a, 0x50, 0x06, 0x52, 0xe5, 0xdb, 0xe7,
- 0x74, 0x3a, 0xd1, 0x72, 0xb9, 0xa4, 0x62, 0xb1, 0x48, 0xf9, 0x7c, 0x9e,
- 0x9c, 0x77, 0xa1, 0x87, 0xfa, 0x4d, 0xa7, 0x73, 0xe7, 0xf3, 0x59, 0x0c,
- 0x9c, 0x07, 0x43, 0xce, 0x8b, 0xfb, 0x9d, 0x98, 0x5d, 0x2e, 0x97, 0xcb,
- 0xdf, 0x84, 0xba, 0x85, 0x97, 0xc3, 0x13, 0x25, 0xab, 0xcb, 0x08, 0x4d,
- 0x39, 0xd0, 0x92, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
- 0x42, 0x60, 0x82
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x13,
+ 0x08, 0x06, 0x00, 0x00, 0x00, 0x90, 0x8c, 0x2d, 0xb5, 0x00, 0x00, 0x00,
+ 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b,
+ 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48,
+ 0x52, 0x4d, 0x00, 0x00, 0x6d, 0x98, 0x00, 0x00, 0x73, 0x8e, 0x00, 0x00,
+ 0xe0, 0x38, 0x00, 0x00, 0x82, 0xd5, 0x00, 0x00, 0x7a, 0x07, 0x00, 0x00,
+ 0xca, 0xb4, 0x00, 0x00, 0x33, 0x44, 0x00, 0x00, 0x1c, 0x76, 0x84, 0x36,
+ 0x2a, 0xbd, 0x00, 0x00, 0x01, 0xe2, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda,
+ 0xac, 0x54, 0x3d, 0xab, 0xda, 0x50, 0x18, 0x7e, 0xce, 0xc9, 0x39, 0x31,
+ 0x4d, 0xfc, 0x40, 0x30, 0x46, 0x14, 0xec, 0x50, 0x44, 0x17, 0x2f, 0x9d,
+ 0xba, 0x15, 0xda, 0xd1, 0xa1, 0x2e, 0xdd, 0x3b, 0x14, 0x4a, 0xa1, 0x7f,
+ 0xa6, 0x74, 0xbd, 0x43, 0xff, 0x84, 0xfd, 0x05, 0x82, 0xda, 0xa5, 0x83,
+ 0x1d, 0xdc, 0x8a, 0x88, 0xa0, 0x44, 0x83, 0xc6, 0x28, 0xad, 0x1f, 0x49,
+ 0xde, 0x2e, 0x8d, 0x78, 0x6f, 0xaf, 0x34, 0x68, 0x9f, 0xed, 0xbc, 0x70,
+ 0x1e, 0x9e, 0x8f, 0xf7, 0x1c, 0x46, 0x44, 0x38, 0x45, 0xaf, 0xd7, 0x63,
+ 0xb6, 0x6d, 0xe7, 0x6d, 0xdb, 0x6e, 0xba, 0xae, 0xfb, 0x6e, 0xb3, 0xd9,
+ 0xdc, 0x6c, 0xb7, 0xdb, 0x04, 0xe7, 0x1c, 0x8c, 0x31, 0xfc, 0x0b, 0x2c,
+ 0x22, 0xec, 0x76, 0xbb, 0xcc, 0xf3, 0xbc, 0xcc, 0x68, 0x34, 0x7a, 0xed,
+ 0xba, 0xee, 0x87, 0x6c, 0x36, 0x7b, 0x93, 0xcb, 0xe5, 0x44, 0x3a, 0x9d,
+ 0x86, 0xa6, 0x69, 0x50, 0x14, 0x25, 0x3e, 0x61, 0xa7, 0xd3, 0x61, 0xf3,
+ 0xf9, 0xfc, 0xc9, 0x78, 0x3c, 0xbe, 0xd5, 0x75, 0xfd, 0x79, 0xa5, 0x52,
+ 0x11, 0xa6, 0x69, 0x22, 0x95, 0x4a, 0x41, 0xd3, 0x34, 0x08, 0x21, 0xc0,
+ 0x18, 0x8b, 0x45, 0x28, 0x00, 0x60, 0xb5, 0x5a, 0xa5, 0x27, 0x93, 0xc9,
+ 0xa7, 0x62, 0xb1, 0xf8, 0xb2, 0x5a, 0xad, 0x22, 0x9f, 0xcf, 0xc3, 0x30,
+ 0x0c, 0x48, 0x29, 0xc1, 0x39, 0x47, 0x5c, 0xbb, 0x00, 0x20, 0xda, 0xed,
+ 0x36, 0x9f, 0x4e, 0xa7, 0xaf, 0x4c, 0xd3, 0x7c, 0x51, 0xaf, 0xd7, 0x61,
+ 0x59, 0x16, 0x74, 0x5d, 0x87, 0x94, 0x12, 0x97, 0x40, 0x2c, 0x16, 0x0b,
+ 0x93, 0x88, 0xde, 0xd6, 0x6a, 0x35, 0xdd, 0xb2, 0x2c, 0x18, 0x86, 0x01,
+ 0x21, 0x04, 0x2e, 0x05, 0xf7, 0x3c, 0xaf, 0x59, 0x2e, 0x97, 0x9f, 0x45,
+ 0xca, 0x38, 0xe7, 0xb8, 0x06, 0x3c, 0x08, 0x82, 0x46, 0xa1, 0x50, 0x78,
+ 0x74, 0xad, 0xb2, 0x23, 0xa1, 0x94, 0xf2, 0x69, 0x26, 0x93, 0xe1, 0x51,
+ 0x66, 0xf7, 0xf7, 0xd2, 0xf7, 0xfd, 0x07, 0x2f, 0x9e, 0x9b, 0x73, 0x55,
+ 0x55, 0xb3, 0x91, 0x55, 0xc6, 0x18, 0xc2, 0x30, 0xbc, 0x1b, 0xf2, 0x19,
+ 0xd5, 0xe7, 0xe6, 0x5c, 0x4a, 0x39, 0x06, 0x70, 0x5c, 0x8b, 0xb8, 0xeb,
+ 0x71, 0xd6, 0x32, 0x11, 0x75, 0xf6, 0xfb, 0xfd, 0xd1, 0xea, 0xd5, 0xa5,
+ 0x10, 0xd1, 0xb7, 0xf5, 0x7a, 0x1d, 0x84, 0x61, 0x08, 0x22, 0xba, 0x9e,
+ 0x50, 0x51, 0x94, 0xaf, 0x8e, 0xe3, 0xfc, 0xdc, 0xed, 0x76, 0xf8, 0x1f,
+ 0xe0, 0x89, 0x44, 0xe2, 0xc7, 0x72, 0xb9, 0xfc, 0xee, 0x38, 0x0e, 0x7c,
+ 0xdf, 0x3f, 0x5a, 0xbf, 0xdf, 0x76, 0x6c, 0xc2, 0x46, 0xa3, 0xf1, 0x2b,
+ 0x08, 0x82, 0xdb, 0xe1, 0x70, 0xe8, 0x2c, 0x16, 0x0b, 0x04, 0x41, 0x00,
+ 0x22, 0xba, 0xb8, 0x1c, 0xfe, 0x67, 0x05, 0xbe, 0x78, 0x9e, 0xf7, 0x79,
+ 0x30, 0x18, 0x8c, 0x67, 0xb3, 0x19, 0x45, 0x25, 0x9d, 0x53, 0x49, 0x44,
+ 0x38, 0x1c, 0x0e, 0x38, 0x2d, 0xf3, 0xce, 0x6f, 0x03, 0x60, 0x29, 0x84,
+ 0xf8, 0xe8, 0x79, 0x9e, 0xdb, 0xef, 0xf7, 0xdf, 0x97, 0x4a, 0xa5, 0xc7,
+ 0xd1, 0x53, 0x54, 0x55, 0x15, 0x52, 0xca, 0xbf, 0x14, 0x0b, 0x21, 0x1e,
+ 0x8c, 0x87, 0x9d, 0x1e, 0x5a, 0xad, 0x96, 0x00, 0x50, 0x27, 0xa2, 0x37,
+ 0xaa, 0xaa, 0x36, 0x0d, 0xc3, 0x28, 0x26, 0x93, 0x49, 0xa1, 0x69, 0x9a,
+ 0xc2, 0x39, 0x8f, 0x95, 0xc1, 0xef, 0x01, 0x00, 0x35, 0xe5, 0xd5, 0x5e,
+ 0xd0, 0xed, 0x0c, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44,
+ 0xae, 0x42, 0x60, 0x82
};
-unsigned int search_png_len = 471;
+unsigned int search_l_png_len = 604;
+unsigned char search_m_png[] = {
+ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13,
+ 0x08, 0x02, 0x00, 0x00, 0x00, 0x35, 0x5e, 0x4b, 0x4d, 0x00, 0x00, 0x00,
+ 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xd6, 0xd8, 0xd4, 0x4f, 0x58,
+ 0x32, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66,
+ 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x41, 0x64, 0x6f, 0x62, 0x65, 0x20,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x71, 0xc9,
+ 0x65, 0x3c, 0x00, 0x00, 0x00, 0x30, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda,
+ 0x62, 0x2c, 0x2f, 0x2f, 0x67, 0x60, 0x60, 0x60, 0x3c, 0x7e, 0xfc, 0x38,
+ 0x88, 0xfa, 0xf8, 0xf1, 0x23, 0x88, 0xfa, 0xff, 0xff, 0x3f, 0x90, 0x62,
+ 0x62, 0x00, 0x03, 0x5a, 0x50, 0x2c, 0x10, 0x1b, 0x58, 0x6e, 0xdd, 0xba,
+ 0x05, 0xa4, 0x00, 0x02, 0x0c, 0x00, 0xa5, 0x07, 0x0f, 0x3c, 0x7e, 0xe1,
+ 0x45, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
+ 0x60, 0x82
+};
+unsigned int search_m_png_len = 158;
+unsigned char search_r_png[] = {
+ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13,
+ 0x08, 0x06, 0x00, 0x00, 0x00, 0x9d, 0x92, 0x5d, 0xf2, 0x00, 0x00, 0x00,
+ 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b,
+ 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48,
+ 0x52, 0x4d, 0x00, 0x00, 0x6d, 0x98, 0x00, 0x00, 0x73, 0x8e, 0x00, 0x00,
+ 0xe0, 0x38, 0x00, 0x00, 0x82, 0xd5, 0x00, 0x00, 0x7a, 0x07, 0x00, 0x00,
+ 0xca, 0xb4, 0x00, 0x00, 0x33, 0x44, 0x00, 0x00, 0x1c, 0x76, 0x84, 0x36,
+ 0x2a, 0xbd, 0x00, 0x00, 0x01, 0xea, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda,
+ 0xa4, 0xd4, 0xbf, 0xaa, 0x1a, 0x41, 0x14, 0x06, 0xf0, 0x6f, 0xf6, 0x9f,
+ 0xb2, 0x0a, 0x6b, 0xa5, 0x56, 0x8b, 0xa4, 0x92, 0xd4, 0x69, 0x7c, 0x03,
+ 0xb1, 0x59, 0x49, 0x11, 0x52, 0xdf, 0xbc, 0x43, 0xcc, 0x2b, 0xa4, 0x4c,
+ 0x97, 0x67, 0x08, 0xa4, 0x11, 0x2c, 0x52, 0x5c, 0x42, 0x24, 0x60, 0x8a,
+ 0x34, 0x29, 0x42, 0x50, 0x41, 0x21, 0xa0, 0x97, 0xd5, 0x55, 0xb3, 0xbb,
+ 0xee, 0xb2, 0xce, 0xee, 0xcc, 0x49, 0x91, 0x28, 0xc2, 0x0d, 0xe6, 0xaa,
+ 0xa7, 0x9d, 0xc3, 0x8f, 0x73, 0x98, 0xf9, 0x86, 0x75, 0x3a, 0x1d, 0xc2,
+ 0x89, 0x12, 0x42, 0x24, 0xf9, 0x7c, 0x7e, 0x5a, 0x2c, 0x16, 0x3f, 0x96,
+ 0x4a, 0xa5, 0x5e, 0xb5, 0x5a, 0xfd, 0x52, 0x2e, 0x97, 0xfd, 0x46, 0xa3,
+ 0x21, 0x8e, 0xfb, 0xd8, 0x60, 0x30, 0x38, 0x09, 0x65, 0x59, 0x86, 0x24,
+ 0x49, 0x10, 0x04, 0x81, 0xf0, 0x3c, 0x6f, 0xb3, 0xd9, 0x6c, 0x7e, 0x58,
+ 0x96, 0x75, 0x5b, 0xab, 0xd5, 0xde, 0x34, 0x9b, 0xcd, 0x5f, 0x07, 0xc8,
+ 0xf7, 0xfd, 0x93, 0x90, 0x94, 0xf2, 0x80, 0x85, 0x61, 0x88, 0xe5, 0x72,
+ 0x49, 0xe3, 0xf1, 0x58, 0xc6, 0x71, 0xfc, 0xc1, 0xb6, 0xed, 0xe7, 0x8e,
+ 0xe3, 0x84, 0x00, 0xc0, 0xa4, 0x94, 0x27, 0x21, 0x22, 0x82, 0x94, 0x12,
+ 0x52, 0x4a, 0xa4, 0x69, 0x8a, 0x28, 0x8a, 0xb0, 0x58, 0x2c, 0x30, 0x1c,
+ 0x0e, 0x85, 0xeb, 0xba, 0xef, 0x6b, 0xb5, 0xda, 0x4d, 0xab, 0xd5, 0x8a,
+ 0x34, 0xc6, 0xd8, 0x29, 0x07, 0x8c, 0x31, 0x28, 0x8a, 0x02, 0x22, 0x82,
+ 0xae, 0xeb, 0x30, 0x0c, 0x03, 0xb9, 0x5c, 0x0e, 0x86, 0x61, 0xa8, 0x52,
+ 0xca, 0xa7, 0xf3, 0xf9, 0xfc, 0x67, 0xbf, 0xdf, 0x7f, 0xa5, 0xe0, 0x81,
+ 0xc5, 0x18, 0x03, 0x63, 0x0c, 0x9a, 0xa6, 0xa1, 0x50, 0x28, 0xa0, 0x52,
+ 0xa9, 0xa0, 0x5e, 0xaf, 0x6b, 0x00, 0x5e, 0xac, 0xd7, 0xeb, 0x47, 0x0f,
+ 0x86, 0x8e, 0x41, 0x55, 0x55, 0x61, 0x9a, 0x26, 0x2a, 0x95, 0x0a, 0x6c,
+ 0xdb, 0xb6, 0x82, 0x20, 0x78, 0x76, 0x36, 0xb4, 0xc7, 0xf6, 0x93, 0x55,
+ 0xab, 0x55, 0x26, 0x84, 0x78, 0xac, 0x1c, 0x5f, 0xf3, 0xb9, 0xa5, 0xeb,
+ 0x3a, 0x2c, 0xcb, 0x82, 0xae, 0xeb, 0xbb, 0x03, 0xa4, 0x69, 0xda, 0xd9,
+ 0x53, 0x29, 0x8a, 0x02, 0xd3, 0x34, 0x99, 0x61, 0x18, 0xcb, 0x8b, 0x56,
+ 0x3b, 0xc6, 0xfe, 0x4e, 0x76, 0x77, 0x15, 0x44, 0x44, 0xe0, 0x9c, 0x0b,
+ 0x22, 0xfa, 0xaa, 0x5c, 0x83, 0x48, 0x29, 0x11, 0x86, 0xe1, 0x86, 0x88,
+ 0xbe, 0x5f, 0x35, 0xd1, 0x6e, 0xb7, 0x83, 0xe7, 0x79, 0x3d, 0x55, 0x55,
+ 0x7d, 0xd0, 0x05, 0x25, 0xa5, 0x24, 0xce, 0x39, 0x4d, 0x26, 0x93, 0x45,
+ 0xb7, 0xdb, 0x7d, 0x42, 0x44, 0x50, 0x2e, 0x59, 0x49, 0x08, 0x81, 0xf5,
+ 0x7a, 0x9d, 0x4c, 0xa7, 0xd3, 0x77, 0x42, 0x88, 0x6f, 0x00, 0xa0, 0xed,
+ 0x0f, 0xb3, 0x2c, 0x3b, 0xe4, 0xe9, 0x5f, 0xf9, 0x23, 0xfa, 0x93, 0x6d,
+ 0xce, 0x39, 0x56, 0xab, 0x95, 0x18, 0x0e, 0x87, 0x9f, 0x82, 0x20, 0x78,
+ 0xdd, 0x6e, 0xb7, 0xd3, 0x7b, 0xe9, 0x27, 0xa2, 0x7b, 0x08, 0x11, 0x21,
+ 0x4d, 0x53, 0x70, 0xce, 0x11, 0xc7, 0xb1, 0x74, 0x5d, 0xd7, 0x9f, 0xcd,
+ 0x66, 0x3d, 0xce, 0xf9, 0x4b, 0xc7, 0x71, 0xee, 0x0e, 0xef, 0x70, 0x34,
+ 0x1a, 0xe1, 0x7f, 0xff, 0x51, 0x92, 0x24, 0xd8, 0x6e, 0xb7, 0x61, 0x14,
+ 0x45, 0x9f, 0x39, 0xe7, 0x6f, 0x19, 0x63, 0xb7, 0x8e, 0xe3, 0x44, 0xc7,
+ 0x7d, 0xbf, 0x07, 0x00, 0x5f, 0x77, 0x46, 0x8c, 0x30, 0x2c, 0xd8, 0x9d,
+ 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
+};
+unsigned int search_r_png_len = 612;
static unsigned char close_png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
@@ -468,112 +488,140 @@ static unsigned char close_png[] = {
};
static unsigned int close_png_len = 273;
+#if 0
+unsigned char open_gif[] = {
+ 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x09, 0x00, 0x09, 0x00, 0xf0, 0x00,
+ 0x00, 0x8e, 0xaf, 0xc4, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00,
+ 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
+ 0x00, 0x02, 0x0d, 0x8c, 0x8f, 0xa9, 0xcb, 0xe0, 0xff, 0x02, 0x8c, 0x66,
+ 0x26, 0x7a, 0x51, 0x01, 0x00, 0x3b
+};
+unsigned int open_gif_len = 54;
+
+unsigned char closed_gif[] = {
+ 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x09, 0x00, 0x09, 0x00, 0xf0, 0x00,
+ 0x00, 0x8e, 0xaf, 0xc4, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00,
+ 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
+ 0x00, 0x02, 0x10, 0x8c, 0x03, 0xa7, 0x98, 0xcb, 0xad, 0x80, 0x84, 0x66,
+ 0xca, 0x38, 0x57, 0xd6, 0xf4, 0xd0, 0x02, 0x00, 0x3b
+};
+unsigned int closed_gif_len = 57;
+#endif
+
+static unsigned char closed_png[81] =
+{
+ 0, 0, 0, 0,142, 0, 0, 0, 0,
+ 0, 0, 0, 0,142,142, 0, 0, 0,
+ 0, 0, 0, 0,142,142,142, 0, 0,
+ 0, 0, 0, 0,142,142,142,142, 0,
+ 0, 0, 0, 0,142,142,142,142,142,
+ 0, 0, 0, 0,142,142,142,142, 0,
+ 0, 0, 0, 0,142,142,142, 0, 0,
+ 0, 0, 0, 0,142,142, 0, 0, 0,
+ 0, 0, 0, 0,142, 0, 0, 0, 0
+};
+
+static unsigned char closed_a_png[81] =
+{
+ 0, 0, 0, 0,255, 0, 0, 0, 0,
+ 0, 0, 0, 0,255,255, 0, 0, 0,
+ 0, 0, 0, 0,255,255,255, 0, 0,
+ 0, 0, 0, 0,255,255,255,255, 0,
+ 0, 0, 0, 0,255,255,255,255,255,
+ 0, 0, 0, 0,255,255,255,255, 0,
+ 0, 0, 0, 0,255,255,255, 0, 0,
+ 0, 0, 0, 0,255,255, 0, 0, 0,
+ 0, 0, 0, 0,255, 0, 0, 0, 0
+};
+
+static unsigned char open_png[81] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 142,142,142,142,142,142,142,142,142,
+ 0,142,142,142,142,142,142,142, 0,
+ 0, 0,142,142,142,142,142, 0, 0,
+ 0, 0, 0,142,142,142, 0, 0, 0,
+ 0, 0, 0, 0,142, 0, 0, 0, 0
+};
+
+static unsigned char open_a_png[81] =
+{
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 255,255,255,255,255,255,255,255,255,
+ 0,255,255,255,255,255,255,255, 0,
+ 0, 0,255,255,255,255,255, 0, 0,
+ 0, 0, 0,255,255,255, 0, 0, 0,
+ 0, 0, 0, 0,255, 0, 0, 0, 0
+};
+
+
+
+//------------------------------------------------------------------------
static const char tabs_css[] =
-"/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */\n"
-"\n"
-"DIV.tabs\n"
-"{\n"
-" float : left;\n"
-" width : 100%;\n"
-" background : url(\"tab_b.gif\") repeat-x bottom;\n"
-" margin-bottom : 4px;\n"
-"}\n"
-"\n"
-"DIV.tabs UL\n"
-"{\n"
-" margin : 0px;\n"
-" padding-left : 10px;\n"
-" list-style : none;\n"
-"}\n"
-"\n"
-"DIV.tabs LI, DIV.tabs FORM\n"
-"{\n"
-" display : inline;\n"
-" margin : 0px;\n"
-" padding : 0px;\n"
-"}\n"
-"\n"
-"DIV.tabs FORM\n"
-"{\n"
-" float : right;\n"
-"}\n"
-"\n"
-"DIV.tabs A\n"
-"{\n"
-" float : left;\n"
-" background : url(\"tab_r.gif\") no-repeat right top;\n"
-" border-bottom : 1px solid #84B0C7;\n"
-" font-size : 80%;\n"
-" font-weight : bold;\n"
-" text-decoration : none;\n"
-"}\n"
-"\n"
-"DIV.tabs A:hover\n"
-"{\n"
-" background-position: 100% -150px;\n"
+".tabs, .tabs2, .tabs3 {\n"
+" background-image: url('tab_b.png');\n"
+" z-index: 101;\n"
+" font-size: 13px;\n"
"}\n"
"\n"
-"DIV.tabs A:link, DIV.tabs A:visited,\n"
-"DIV.tabs A:active, DIV.tabs A:hover\n"
-"{\n"
-" color: #1A419D;\n"
+".tabs2 {\n"
+" font-size: 10px;\n"
"}\n"
-"\n"
-"DIV.tabs SPAN\n"
-"{\n"
-" float : left;\n"
-" display : block;\n"
-" background : url(\"tab_l.gif\") no-repeat left top;\n"
-" padding : 5px 9px;\n"
-" white-space : nowrap;\n"
+".tabs3 {\n"
+" font-size: 9px;\n"
"}\n"
"\n"
-"DIV.tabs #MSearchBox\n"
-"{\n"
-" float : right;\n"
-" display : inline;\n"
-" font-size : 1em;\n"
+".tablist {\n"
+" margin: 0;\n"
+" padding: 0;\n"
+" display: table\n"
"}\n"
"\n"
-"DIV.tabs TD\n"
-"{\n"
-" font-size : 80%;\n"
-" font-weight : bold;\n"
-" text-decoration : none;\n"
+".tablist li {\n"
+" float: left;\n"
+" display: table-cell\n"
+" background-image: url('tab_b.png');\n"
+" line-height: 36px;\n"
+" list-style: none;\n"
"}\n"
"\n"
-"\n"
-"\n"
-"/* Commented Backslash Hack hides rule from IE5-Mac \\*/\n"
-"DIV.tabs SPAN {float : none;}\n"
-"/* End IE5-Mac hack */\n"
-"\n"
-"DIV.tabs A:hover SPAN\n"
-"{\n"
-" background-position: 0% -150px;\n"
+".tablist a {\n"
+" display: block;\n"
+" padding: 0 20px;\n"
+" font-weight: bold;\n"
+" background-image:url('tab_s.png');\n"
+" background-repeat:no-repeat;\n"
+" background-position:right;\n"
+" color: ##30;\n"
+" text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);\n"
+" text-decoration: none;\n"
+" outline: none;\n"
"}\n"
"\n"
-"DIV.tabs LI.current A\n"
-"{\n"
-" background-position: 100% -150px;\n"
-" border-width : 0px;\n"
+".tabs3 .tablist a {\n"
+" padding: 0 10px;\n"
"}\n"
"\n"
-"DIV.tabs LI.current SPAN\n"
-"{\n"
-" background-position: 0% -150px;\n"
-" padding-bottom : 6px;\n"
+".tablist a:hover {\n"
+" background-image: url('tab_h.png');\n"
+" background-repeat:repeat-x;\n"
+" color: #fff;\n"
+" text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);\n"
+" text-decoration: none;\n"
"}\n"
"\n"
-"DIV.navpath\n"
-"{\n"
-" background : none;\n"
-" border : none;\n"
-" border-bottom : 1px solid #84B0C7;\n"
-" text-align : center;\n"
-" margin : 2px;\n"
-" padding : 2px;\n"
+".tablist li.current a {\n"
+" background-image: url('tab_a.png');\n"
+" background-repeat:repeat-x;\n"
+" color: #fff;\n"
+" text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);\n"
"}\n"
;
@@ -584,6 +632,16 @@ struct img_data_item
unsigned int len;
};
+struct colored_img_data_item
+{
+ const char *name;
+ unsigned short width;
+ unsigned short height;
+ unsigned char *content;
+ unsigned char *alpha;
+};
+
+
static void writeImgData(const char *dir,img_data_item *data)
{
while (data->name)
@@ -604,63 +662,112 @@ static void writeImgData(const char *dir,img_data_item *data)
}
}
-static img_data_item tab_data[] =
+static void writeColoredImgData(const char *dir,colored_img_data_item *data)
{
- { "tab_b.gif", tab_b_gif, tab_b_gif_len },
- { "tab_l.gif", tab_l_gif, tab_l_gif_len },
- { "tab_r.gif", tab_r_gif, tab_r_gif_len },
- { "tabs.css", (unsigned char *)tabs_css, 0 },
- { 0, 0, 0 }
+ static int hue = Config_getInt("HTML_COLORSTYLE_HUE");
+ static int sat = Config_getInt("HTML_COLORSTYLE_SAT");
+ static int gamma = Config_getInt("HTML_COLORSTYLE_GAMMA");
+ while (data->name)
+ {
+ QCString fileName;
+ fileName=(QCString)dir+"/"+data->name;
+ QFile f(fileName);
+ if (f.open(IO_WriteOnly))
+ {
+ ColoredImage img(data->width,data->height,data->content,data->alpha,
+ sat,hue,gamma);
+ img.save(fileName);
+ }
+ else
+ {
+ fprintf(stderr,"Warning: Cannot open file %s for writing\n",data->name);
+ }
+ data++;
+ }
+}
+
+static colored_img_data_item colored_tab_data[] =
+{
+ { "tab_a.png", 1, 36, tab_a_png, 0 },
+ { "tab_b.png", 1, 36, tab_b_png, 0 },
+ { "tab_h.png", 1, 36, tab_h_png, 0 },
+ { "tab_s.png", 1, 36, tab_s_png, 0 },
+ { "bc_s.png", 8, 32, bc_s_png, bc_s_a_png },
+ { "doxygen.png", 104,31, doxygen_png, doxygen_a_png },
+ { "closed.png", 9, 9, closed_png, closed_a_png },
+ { "open.png", 9, 9, open_png, open_a_png },
+ { 0, 0, 0, 0, 0 }
};
static void writeTabData(const char *dir)
{
- writeImgData(dir,tab_data);
+ writeColoredImgData(dir,colored_tab_data);
}
static img_data_item search_client_data[] =
{
- { "search.png", search_sel_png, search_sel_png_len },
- { "close.png", close_png, close_png_len },
+ { "mag_sel.png", mag_sel_png, mag_sel_png_len },
+ { "search_l.png", search_l_png, search_l_png_len },
+ { "search_m.png", search_m_png, search_m_png_len },
+ { "search_r.png", search_r_png, search_r_png_len },
+ { "close.png", close_png, close_png_len },
{ 0, 0, 0 }
};
static img_data_item search_server_data[] =
{
- { "search.png", search_png, search_png_len },
+ { "mag.png", mag_png, mag_png_len },
+ { "search_l.png", search_l_png, search_l_png_len },
+ { "search_m.png", search_m_png, search_m_png_len },
+ { "search_r.png", search_r_png, search_r_png_len },
{ 0, 0, 0 }
};
-void HtmlGenerator::writeSearchData(const char *dir)
-{
- static bool serverBasedSearch = Config_getBool("SERVER_BASED_SEARCH");
- writeImgData(dir,serverBasedSearch ? search_server_data : search_client_data);
- Doxygen::indexList.addImageFile("search/close.png");
- Doxygen::indexList.addImageFile("search/search.png");
-}
-
-
//------------------------------------------------------------------------
-unsigned char open_gif[] = {
- 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x09, 0x00, 0x09, 0x00, 0xf0, 0x00,
- 0x00, 0x8e, 0xaf, 0xc4, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00,
- 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
- 0x00, 0x02, 0x0d, 0x8c, 0x8f, 0xa9, 0xcb, 0xe0, 0xff, 0x02, 0x8c, 0x66,
- 0x26, 0x7a, 0x51, 0x01, 0x00, 0x3b
-};
-unsigned int open_gif_len = 54;
-
-unsigned char closed_gif[] = {
- 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x09, 0x00, 0x09, 0x00, 0xf0, 0x00,
- 0x00, 0x8e, 0xaf, 0xc4, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00,
- 0x00, 0x01, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
- 0x00, 0x02, 0x10, 0x8c, 0x03, 0xa7, 0x98, 0xcb, 0xad, 0x80, 0x84, 0x66,
- 0xca, 0x38, 0x57, 0xd6, 0xf4, 0xd0, 0x02, 0x00, 0x3b
-};
-unsigned int closed_gif_len = 57;
-
-
+static QCString replaceColorMarkers(const char *str)
+{
+ QCString result;
+ QCString s=str;
+ if (s.isEmpty()) return result;
+ static QRegExp re("##[0-9A-Fa-f][0-9A-Fa-f]");
+ static const char hex[] = "0123456789ABCDEF";
+ static int hue = Config_getInt("HTML_COLORSTYLE_HUE");
+ static int sat = Config_getInt("HTML_COLORSTYLE_SAT");
+ static int gamma = Config_getInt("HTML_COLORSTYLE_GAMMA");
+ int i,l,sl=s.length(),p=0;
+ while ((i=re.match(s,p,&l))!=-1)
+ {
+ result+=s.mid(p,i-p);
+ QCString lumStr = s.mid(i+2,l-2);
+#define HEXTONUM(x) (((x)>='0' && (x)<='9') ? ((x)-'0') : \
+ ((x)>='a' && (x)<='f') ? ((x)-'a'+10) : \
+ ((x)>='A' && (x)<='F') ? ((x)-'A'+10) : 0)
+
+ double r,g,b;
+ int red,green,blue;
+ int level = HEXTONUM(lumStr[0])*16+HEXTONUM(lumStr[1]);
+ ColoredImage::hsl2rgb(hue/360.0,sat/255.0,
+ pow(level/255.0,gamma/100.0),&r,&g,&b);
+ red = (int)(r*255.0);
+ green = (int)(g*255.0);
+ blue = (int)(b*255.0);
+ char colStr[8];
+ colStr[0]='#';
+ colStr[1]=hex[red>>4];
+ colStr[2]=hex[red&0xf];
+ colStr[3]=hex[green>>4];
+ colStr[4]=hex[green&0xf];
+ colStr[5]=hex[blue>>4];
+ colStr[6]=hex[blue&0xf];
+ colStr[7]=0;
+ //printf("replacing %s->%s (level=%d)\n",lumStr.data(),colStr,level);
+ result+=colStr;
+ p=i+l;
+ }
+ result+=s.right(sl-p);
+ return result;
+}
//------------------------- Pictures for the Tabs ------------------------
@@ -684,7 +791,7 @@ void HtmlGenerator::init()
err("Could not create output directory %s\n",dname.data());
exit(1);
}
- writeLogo(dname);
+ //writeLogo(dname);
if (!Config_getString("HTML_HEADER").isEmpty())
{
g_header=fileToString(Config_getString("HTML_HEADER"));
@@ -697,13 +804,43 @@ void HtmlGenerator::init()
}
createSubDirs(d);
+ QCString fileName=dname+"/tabs.css";
+ QFile f(fileName);
+ if (f.open(IO_WriteOnly))
+ {
+ QTextStream t(&f);
+ t << replaceColorMarkers(tabs_css);
+ }
+ else
+ {
+ fprintf(stderr,"Warning: Cannot open file %s for writing\n",fileName.data());
+ }
+
writeTabData(dname);
}
+void HtmlGenerator::writeSearchData(const char *dir)
+{
+ static bool serverBasedSearch = Config_getBool("SERVER_BASED_SEARCH");
+ writeImgData(dir,serverBasedSearch ? search_server_data : search_client_data);
+ Doxygen::indexList.addImageFile("search/close.png");
+ Doxygen::indexList.addImageFile("search/search.png");
+ QCString searchDirName = Config_getString("HTML_OUTPUT")+"/search";
+ QFile f(searchDirName+"/search.css");
+ if (f.open(IO_WriteOnly))
+ {
+ QTextStream t(&f);
+ t << replaceColorMarkers(search_styleSheet);
+ }
+ Doxygen::indexList.addStyleSheetFile("search/search.css");
+}
+
+
+
void HtmlGenerator::writeStyleSheetFile(QFile &file)
{
QTextStream t(&file);
- t << defaultStyleSheet;
+ t << replaceColorMarkers(defaultStyleSheet);
}
static void writeDefaultHeaderFile(QTextStream &t, const char *title,
@@ -719,12 +856,12 @@ static void writeDefaultHeaderFile(QTextStream &t, const char *title,
static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW");
static bool searchEngine = Config_getBool("SEARCHENGINE");
static bool serverBasedSearch = Config_getBool("SERVER_BASED_SEARCH");
- if (searchEngine && !generateTreeView)
- {
- t << "<!-- This comment will put IE 6, 7 and 8 in quirks mode -->" << endl;
- }
-// t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
-// t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
+ //if (searchEngine && !generateTreeView)
+ //{
+ // t << "<!-- This comment will put IE 6, 7 and 8 in quirks mode -->" << endl;
+ //}
+ // t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
+ // t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n"
"<meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n"
@@ -786,10 +923,11 @@ void HtmlGenerator::writeHeaderFile(QFile &file)
void HtmlGenerator::writeFooterFile(QFile &file)
{
QTextStream t(&file);
- t << "<hr class=\"footer\"/><address style=\"text-align: right;\"><small>\n";
+ t.setEncoding(QTextStream::UnicodeUTF8);
+ t << "<hr class=\"footer\"/><address class=\"footer\"><small>\n";
t << theTranslator->trGeneratedAt( "$datetime", "$projectname" );
t << "&nbsp;<a href=\"http://www.doxygen.org/index.html\">"
- << "<img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/>"
+ << "<img class=\"footer\" src=\"$relpath$doxygen.png\" alt=\"doxygen\"/>"
<< "</a> $doxygenversion";
t << "</small></address>\n"
<< "</body>\n"
@@ -809,10 +947,10 @@ static void generateDynamicSections(QTextStream &t,const QCString &relPath)
" var sectionDiv=document.getElementById('dynsection'+num);\n"
" if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){\n"
" sectionDiv.style.display='block';\n"
- " button.src='" << relPath << "open.gif';\n"
+ " button.src='" << relPath << "open.png';\n"
" }else{\n"
" sectionDiv.style.display='none';\n"
- " button.src='" << relPath << "closed.gif';\n"
+ " button.src='" << relPath << "closed.png';\n"
" }\n"
"}\n"
"function initDynSections(){\n"
@@ -831,7 +969,7 @@ static void generateDynamicSections(QTextStream &t,const QCString &relPath)
" header.style.cursor='pointer';\n"
" header.onclick=changeDisplayState;\n"
" header.id='dynheader'+sectionCounter;\n"
- " button.src='" << relPath << "closed.gif';\n"
+ " button.src='" << relPath << "closed.png';\n"
" section.id='dynsection'+sectionCounter;\n"
" section.style.display='none';\n"
" section.style.marginLeft='14px';\n"
@@ -928,7 +1066,7 @@ static void writePageFooter(QTextStream &t,const QCString &lastTitle,
}
if (g_footer.isEmpty())
{
- t << "<hr class=\"footer\"/><address style=\"text-align: right;\"><small>";
+ t << "<hr class=\"footer\"/><address class=\"footer\"><small>";
if (timeStamp)
{
t << theTranslator->trGeneratedAt(
@@ -996,7 +1134,7 @@ void HtmlGenerator::writeStyleInfo(int part)
//t << "H1 { text-align: center; border-width: thin none thin none;" << endl;
//t << " border-style : double; border-color : blue; padding-left : 1em; padding-right : 1em }" << endl;
- t << defaultStyleSheet;
+ t << replaceColorMarkers(defaultStyleSheet);
endPlainFile();
Doxygen::indexList.addStyleSheetFile("doxygen.css");
}
@@ -1512,7 +1650,7 @@ void HtmlGenerator::endMemberSections()
}
}
-void HtmlGenerator::startMemberHeader()
+void HtmlGenerator::startMemberHeader(const char *anchor)
{
DBG_HTML(t << "<!-- startMemberHeader -->" << endl)
if (Config_getBool("HTML_ALIGN_MEMBERS"))
@@ -1523,6 +1661,10 @@ void HtmlGenerator::startMemberHeader()
{
startGroupHeader();
}
+ if (anchor)
+ {
+ t << "<a name=\"" << anchor << "\"></a>" << endl;
+ }
}
void HtmlGenerator::endMemberHeader()
@@ -1933,12 +2075,19 @@ void HtmlGenerator::printDoc(DocNode *n,const char *langExt)
//---------------- helpers for index generation -----------------------------
-static void startQuickIndexList(QTextStream &t,bool compact)
+static void startQuickIndexList(QTextStream &t,bool compact,bool topLevel=TRUE)
{
if (compact)
{
- t << " <div class=\"tabs\">\n";
- t << " <ul>\n";
+ if (topLevel)
+ {
+ t << " <div class=\"tabs\">\n";
+ }
+ else
+ {
+ t << " <div class=\"tabs2\">\n";
+ }
+ t << " <ul class=\"tablist\">\n";
}
else
{
@@ -2042,6 +2191,7 @@ static void renderQuickLinksAsTabs(QTextStream &t,const QCString &relPath,
}
if (hlEntry->parent() && hlEntry->parent()->children().count()>0) // draw tabs for row containing hlEntry
{
+ bool topLevel = hlEntry->parent()->parent()==0;
QListIterator<LayoutNavEntry> li(hlEntry->parent()->children());
LayoutNavEntry *entry;
@@ -2052,7 +2202,7 @@ static void renderQuickLinksAsTabs(QTextStream &t,const QCString &relPath,
}
if (count>0) // at least one item is visible
{
- startQuickIndexList(t,TRUE);
+ startQuickIndexList(t,TRUE,topLevel);
for (li.toFirst();(entry=li.current());++li)
{
if (entry->visible() && quickLinkVisible(entry->kind()))
@@ -2099,35 +2249,40 @@ static void renderQuickLinksAsTabs(QTextStream &t,const QCString &relPath,
{
if (!serverBasedSearch) // pure client side search
{
- t << " <li>\n";
+ t << " <li id=\"searchli\">\n";
t << " <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
- t << " <img id=\"MSearchSelect\" src=\"" << relPath << "search/search.png\"\n";
- t << " onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
- t << " onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
- t << " alt=\"\"/>\n";
- t << " <input type=\"text\" id=\"MSearchField\" value=\""
+ t << " <span class=\"left\">\n";
+ t << " <img id=\"MSearchSelect\" src=\"" << relPath << "search/mag_sel.png\"\n";
+ t << " onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
+ t << " onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
+ t << " alt=\"\"/>\n";
+ t << " <input type=\"text\" id=\"MSearchField\" value=\""
<< theTranslator->trSearch() << "\" accesskey=\"S\"\n";
- t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
- t << " onblur=\"searchBox.OnSearchFieldFocus(false)\" \n";
- t << " onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>\n";
- t << " <a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\">"
+ t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
+ t << " onblur=\"searchBox.OnSearchFieldFocus(false)\" \n";
+ t << " onkeyup=\"searchBox.OnSearchFieldChange(event)\"/>\n";
+ t << " </span><span class=\"right\">\n";
+ t << " <a id=\"MSearchClose\" href=\"javascript:searchBox.CloseResultsWindow()\">"
<< "<img id=\"MSearchCloseImg\" border=\"0\" src=\"" << relPath << "search/close.png\" alt=\"\"/></a>\n";
+ t << " </span>\n";
t << " </div>\n";
t << " </li>\n";
}
else if (!generateTreeView) // server based search
{
- t << " <li>\n";
+ t << " <li id=\"searchli\">\n";
t << " <div id=\"MSearchBox\" class=\"MSearchBoxInactive\">\n";
- t << " <form id=\"FSearchBox\" action=\"" << relPath << "search.php\" method=\"get\">\n";
- t << " <img id=\"MSearchSelect\" src=\"" << relPath << "search/search.png\" alt=\"\"/>\n";
+ t << " <span class=\"left\">\n";
+ t << " <form id=\"FSearchBox\" action=\"" << relPath << "search.php\" method=\"get\">\n";
+ t << " <img id=\"MSearchSelect\" src=\"" << relPath << "search/mag.png\" alt=\"\"/>\n";
if (!highlightSearch)
{
- t << " <input type=\"text\" id=\"MSearchField\" name=\"query\" value=\""
+ t << " <input type=\"text\" id=\"MSearchField\" name=\"query\" value=\""
<< theTranslator->trSearch() << "\" size=\"20\" accesskey=\"S\" \n";
- t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
- t << " onblur=\"searchBox.OnSearchFieldFocus(false)\"/>\n";
- t << " </form>\n";
+ t << " onfocus=\"searchBox.OnSearchFieldFocus(true)\" \n";
+ t << " onblur=\"searchBox.OnSearchFieldFocus(false)\"/>\n";
+ t << " </form>\n";
+ t << " </span><span class=\"right\"></span>\n";
t << " </div>\n";
t << " </li>\n";
}
@@ -2298,10 +2453,11 @@ void HtmlGenerator::writeSearchPage()
if (!generateTreeView)
{
t << " echo \""
- << " <input type=\\\"text\\\" id=\\\"MSearchField\\\" name=\\\"query\\\" value=\\\"$value\\\" size=\\\"20\\\" accesskey=\\\"S\\\" "
+ << " <input type=\\\"text\\\" id=\\\"MSearchField\\\" name=\\\"query\\\" value=\\\"$value\\\" size=\\\"20\\\" accesskey=\\\"S\\\" "
<< "onfocus=\\\"searchBox.OnSearchFieldFocus(true)\\\" "
<< "onblur=\\\"searchBox.OnSearchFieldFocus(false)\\\"/>\\n"
- << " </form>\\n"
+ << " </form>\\n"
+ << " </span><span class=\\\"right\\\"></span>\\n"
<< " </div>\\n"
<< " </li>\\n"
<< " </ul>\\n"
@@ -2359,27 +2515,29 @@ void HtmlGenerator::writeSearchPage()
}
}
+#if 0
void HtmlGenerator::generateSectionImages()
{
{
- QCString fileName = Config_getString("HTML_OUTPUT")+"/open.gif";
+ QCString fileName = Config_getString("HTML_OUTPUT")+"/open.png";
QFile f(fileName);
if (f.open(IO_WriteOnly))
{
f.writeBlock((char*)open_gif,open_gif_len);
}
- Doxygen::indexList.addImageFile("open.gif");
+ Doxygen::indexList.addImageFile("open.png");
}
{
- QCString fileName = Config_getString("HTML_OUTPUT")+"/closed.gif";
+ QCString fileName = Config_getString("HTML_OUTPUT")+"/closed.png";
QFile f(fileName);
if (f.open(IO_WriteOnly))
{
f.writeBlock((char*)closed_gif,closed_gif_len);
}
- Doxygen::indexList.addImageFile("closed.gif");
+ Doxygen::indexList.addImageFile("closed.png");
}
}
+#endif
void HtmlGenerator::startConstraintList(const char *header)
{
@@ -2437,3 +2595,25 @@ void HtmlGenerator::lineBreak(const char *style)
}
}
+void HtmlGenerator::startHeaderSection()
+{
+ t << "<div class=\"header\">" << endl;
+}
+
+void HtmlGenerator::startTitleHead(const char *)
+{
+ t << " <div class=\"headertitle\">" << endl;
+ startTitle();
+}
+
+void HtmlGenerator::endTitleHead(const char *,const char *)
+{
+ endTitle();
+ t << " </div>" << endl;
+}
+
+void HtmlGenerator::endHeaderSection()
+{
+ t << "</div>" << endl;
+}
+
diff --git a/src/htmlgen.h b/src/htmlgen.h
index 9eedae1..32964bf 100644
--- a/src/htmlgen.h
+++ b/src/htmlgen.h
@@ -59,8 +59,8 @@ class HtmlGenerator : public OutputGenerator
void startProjectNumber();
void endProjectNumber();
void writeStyleInfo(int part);
- void startTitleHead(const char *) { startTitle(); }
- void endTitleHead(const char *,const char *) { endTitle(); }
+ void startTitleHead(const char *);
+ void endTitleHead(const char *,const char *);
void startTitle() { t << "<h1>"; }
void endTitle() { t << "</h1>"; }
@@ -99,7 +99,9 @@ class HtmlGenerator : public OutputGenerator
void startMemberSections();
void endMemberSections();
- void startMemberHeader();
+ void startHeaderSection();
+ void endHeaderSection();
+ void startMemberHeader(const char *);
void endMemberHeader();
void startMemberSubtitle();
void endMemberSubtitle();
@@ -247,7 +249,7 @@ class HtmlGenerator : public OutputGenerator
static void writeSearchFooter(QTextStream &t,const QCString &relPath);
static void writeSearchData(const char *dir);
- static void generateSectionImages();
+ //static void generateSectionImages();
private:
QCString lastTitle;
diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp
index bbab996..8362519 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -506,9 +506,15 @@ void HtmlHelp::createProjectFile()
s = indexFiles.next();
}
t << "tabs.css" << endl;
+#if 0
t << "tab_b.gif" << endl;
t << "tab_l.gif" << endl;
t << "tab_r.gif" << endl;
+#endif
+ t << "tab_a.png" << endl;
+ t << "tab_b.png" << endl;
+ t << "tab_h.png" << endl;
+ t << "tab_s.png" << endl;
if (Config_getBool("HTML_DYNAMIC_SECTIONS"))
{
t << "open.gif" << endl;
diff --git a/src/image.cpp b/src/image.cpp
index d63e14c..66c281c 100644
--- a/src/image.cpp
+++ b/src/image.cpp