Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
f781e6db
Commit
f781e6db
authored
Jan 06, 2003
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3-rc2-20030106
parent
dfa656f3
Changes
41
Show whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
1476 additions
and
226 deletions
+1476
-226
Doxyfile
Doxyfile
+2
-2
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxmlintf.h
addon/doxmlparser/include/doxmlintf.h
+11
-9
doxmlintf.h
addon/doxmlparser/src/doxmlintf.h
+11
-9
commands.doc
doc/commands.doc
+11
-0
config.doc
doc/config.doc
+7
-7
doxytag_usage.doc
doc/doxytag_usage.doc
+1
-1
external.doc
doc/external.doc
+9
-0
faq.doc
doc/faq.doc
+36
-0
infoflow.eps
doc/infoflow.eps
+665
-0
infoflow.fig
doc/infoflow.fig
+250
-0
infoflow.gif
doc/infoflow.gif
+0
-0
language.doc
doc/language.doc
+1
-1
starting.doc
doc/starting.doc
+6
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+11
-3
classdef.h
src/classdef.h
+0
-6
config.h
src/config.h
+5
-0
docparser.cpp
src/docparser.cpp
+30
-23
doctokenizer.l
src/doctokenizer.l
+5
-5
dot.cpp
src/dot.cpp
+31
-22
doxygen.cpp
src/doxygen.cpp
+67
-6
doxygen.h
src/doxygen.h
+31
-33
entry.h
src/entry.h
+1
-1
filedef.cpp
src/filedef.cpp
+2
-0
filename.cpp
src/filename.cpp
+1
-0
index.cpp
src/index.cpp
+1
-1
instdox.cpp
src/instdox.cpp
+1
-1
membername.cpp
src/membername.cpp
+1
-0
page.h
src/page.h
+1
-1
pngenc.cpp
src/pngenc.cpp
+1
-0
pre.h
src/pre.h
+1
-0
pre.l
src/pre.l
+1
-1
scanner.l
src/scanner.l
+7
-0
sortdict.h
src/sortdict.h
+2
-2
tagreader.cpp
src/tagreader.cpp
+11
-2
treeview.h
src/treeview.h
+123
-42
treeview.js
src/treeview.js
+123
-42
util.cpp
src/util.cpp
+3
-0
No files found.
Doxyfile
View file @
f781e6db
...
@@ -65,13 +65,13 @@ EXCLUDE = src/code.cpp \
...
@@ -65,13 +65,13 @@ EXCLUDE = src/code.cpp \
src/pre.cpp \
src/pre.cpp \
src/scanner.cpp \
src/scanner.cpp \
src/tag.cpp \
src/tag.cpp \
src/doc
.cpp \
src/doctokenizer
.cpp \
src/logos.cpp \
src/logos.cpp \
src/doxysearch.cpp \
src/doxysearch.cpp \
src/suffixtree.cpp \
src/suffixtree.cpp \
src/suffixtree.h \
src/suffixtree.h \
src/searchindex.cpp \
src/searchindex.cpp \
src/searchindex.h
src/searchindex.h
\
EXCLUDE_PATTERNS =
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_PATTERNS =
...
...
INSTALL
View file @
f781e6db
DOXYGEN Version 1.3-rc2-200
21224
DOXYGEN Version 1.3-rc2-200
30106
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
24 December 2002
)
Dimitri van Heesch (
06 January 2003
)
README
View file @
f781e6db
DOXYGEN Version 1.3_rc2_200
21224
DOXYGEN Version 1.3_rc2_200
30106
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
24 December 2002
)
Dimitri van Heesch (dimitri@stack.nl) (
06 January 2003
)
VERSION
View file @
f781e6db
1.3-rc2-200
21224
1.3-rc2-200
30106
addon/doxmlparser/include/doxmlintf.h
View file @
f781e6db
...
@@ -874,6 +874,8 @@ class IClass : public ICompound
...
@@ -874,6 +874,8 @@ class IClass : public ICompound
// TODO:
// TODO:
// class:
// class:
// listOfAllMembers()
// listOfAllMembers()
// protection()
// isAbstract()
};
};
/*! \brief The interface to a struct in the object model.
/*! \brief The interface to a struct in the object model.
...
...
addon/doxmlparser/src/doxmlintf.h
View file @
f781e6db
...
@@ -874,6 +874,8 @@ class IClass : public ICompound
...
@@ -874,6 +874,8 @@ class IClass : public ICompound
// TODO:
// TODO:
// class:
// class:
// listOfAllMembers()
// listOfAllMembers()
// protection()
// isAbstract()
};
};
/*! \brief The interface to a struct in the object model.
/*! \brief The interface to a struct in the object model.
...
...
doc/commands.doc
View file @
f781e6db
...
@@ -1796,4 +1796,15 @@ browser generator. Do \e not use these commands in your own documentation.
...
@@ -1796,4 +1796,15 @@ browser generator. Do \e not use these commands in your own documentation.
<li>\\postheader
<li>\\postheader
</ul>
</ul>
For PHP files there are a number of additional commands, that can be
used inside classes to make members public, private, or protected even
though the language itself doesn't support this notion.
To mark a single item use one of \\private, \\protected, \\public.
For starting a section with a certain protection level use one of:
\\privatesection, \\protectedsection, \\publicsection.
The latter commands are similar to
"private:", "protected:", and "public:" in C++.
*/
*/
doc/config.doc
View file @
f781e6db
...
@@ -363,13 +363,6 @@ function's detailed documentation block.
...
@@ -363,13 +363,6 @@ function's detailed documentation block.
to \c NO (the default) then the documentation will be excluded.
to \c NO (the default) then the documentation will be excluded.
Set it to \c YES to include the internal documentation.
Set it to \c YES to include the internal documentation.
\anchor cfg_strip_code_comments
<dt>\c STRIP_CODE_COMMENTS <dd>
\addindex STRIP_CODE_COMMENTS
Setting the \c STRIP_CODE_COMMENTS tag to \c YES (the default) will instruct
doxygen to hide any special comment blocks from generated source code
fragments. Normal C and C++ comments will always remain visible.
\anchor cfg_case_sense_names
\anchor cfg_case_sense_names
<dt>\c CASE_SENSE_NAMES <dd>
<dt>\c CASE_SENSE_NAMES <dd>
\addindex CASE_SENSE_NAMES
\addindex CASE_SENSE_NAMES
...
@@ -730,6 +723,13 @@ function's detailed documentation block.
...
@@ -730,6 +723,13 @@ function's detailed documentation block.
Setting
the
\
c
INLINE_SOURCES
tag
to
\
c
YES
will
include
the
body
Setting
the
\
c
INLINE_SOURCES
tag
to
\
c
YES
will
include
the
body
of
functions
,
classes
and
enums
directly
into
the
documentation
.
of
functions
,
classes
and
enums
directly
into
the
documentation
.
\
anchor
cfg_strip_code_comments
<
dt
>\
c
STRIP_CODE_COMMENTS
<
dd
>
\
addindex
STRIP_CODE_COMMENTS
Setting
the
\
c
STRIP_CODE_COMMENTS
tag
to
\
c
YES
(
the
default
)
will
instruct
doxygen
to
hide
any
special
comment
blocks
from
generated
source
code
fragments
.
Normal
C
and
C
++
comments
will
always
remain
visible
.
\
anchor
cfg_referenced_by_relation
\
anchor
cfg_referenced_by_relation
<
dt
>\
c
REFERENCED_BY_RELATION
<
dd
>
<
dt
>\
c
REFERENCED_BY_RELATION
<
dd
>
\
addindex
REFERENCED_BY_RELATION
\
addindex
REFERENCED_BY_RELATION
...
...
doc/doxytag_usage.doc
View file @
f781e6db
...
@@ -103,7 +103,7 @@ doxytag -t example.tag example/html
...
@@ -103,7 +103,7 @@ doxytag -t example.tag example/html
\par Example 2:
\par Example 2:
To generate a tag file of the Qt documentation you can do the following:
To generate a tag file of the Qt documentation you can do the following:
\verbatim
\verbatim
doxytag -t qt.tag $QTDIR/html
doxytag -t qt.tag $QTDIR/
doc/
html
\endverbatim
\endverbatim
A typical example to use doxytag to generate a search index is:
A typical example to use doxytag to generate a search index is:
...
...
doc/external.doc
View file @
f781e6db
...
@@ -35,6 +35,15 @@ reasons to not include all sources for these with every run of doxygen:
...
@@ -35,6 +35,15 @@ reasons to not include all sources for these with every run of doxygen:
linked in externally. This saves a lot of memory.
linked in externally. This saves a lot of memory.
<dt>Availability:<dd> For some projects that are documented with doxygen,
<dt>Availability:<dd> For some projects that are documented with doxygen,
the sources may just not be available.
the sources may just not be available.
<dt>Copyright issues:<dd>If the external
package and its documentation are copyright someone else, it may be
better - or even necessary - to reference it rather than include a
copy of it with your project'
s
documentation
.
When
the
author
forbids
redistribution
,
this
is
necessary
.
If
the
author
requires
compliance
with
some
license
condition
as
a
precondition
of
redistribution
,
and
you
do
now
want
to
be
bound
by
those
conditions
,
referring
to
their
copy
of
their
documentation
is
preferable
to
including
a
copy
.
</
dl
>
</
dl
>
If
any
of
the
above
apply
,
you
can
use
doxygen
's tag file mechanism.
If
any
of
the
above
apply
,
you
can
use
doxygen
's tag file mechanism.
...
...
doc/faq.doc
View file @
f781e6db
...
@@ -222,6 +222,42 @@ should send me a code fragment that triggers the message. The workaround
...
@@ -222,6 +222,42 @@ should send me a code fragment that triggers the message. The workaround
the problem put some line-breaks into your file, split it up into smaller
the problem put some line-breaks into your file, split it up into smaller
parts, or exclude it from the input using EXCLUDE.
parts, or exclude it from the input using EXCLUDE.
<li><b>Why are dependencies via STL classes not shown in the dot graphs?</b>
Doxygen is unware of the STL classes, so it does not know that class A relates
to class B in the following example
\code
#include <vector>
using namespace std;
class B {};
class A
{
public:
vector<B> m_bvec;
};
\endcode
To overcome this problem you could provide the definition of the vector
class to doxygen (by including the file that defines it at the INPUT tag
in the config file). Since STL header files are often messy, a
(possibly) better approach is to include a dummy definition of a vector
class to the input. Here is an example of a dummy STL file for the vector
class:
\code
namespace std {
/*! STL vector class */
template<class T> class vector { public: T element; };
}
\endcode
I'm still looking for someone who can provide me with definitions
for all (relevant) STL classes.
<li><b>How did doxygen get its name?</b>
<li><b>How did doxygen get its name?</b>
Doxygen got its name from playing with the words
Doxygen got its name from playing with the words
...
...
doc/infoflow.eps
0 → 100644
View file @
f781e6db
%!PS-Adobe-2.0 EPSF-2.0
%%Title: infoflow.eps
%%Creator: fig2dev Version 3.2 Patchlevel 3c
%%CreationDate: Tue Dec 31 19:32:56 2002
%%For: dimitri@pandora.home.nl (Dimitri van Heesch)
%%BoundingBox: 0 0 673 585
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
/col32 {0.878 0.878 0.878 srgb} bind def
/col33 {0.000 0.000 0.000 srgb} bind def
end
save
newpath 0 585 moveto 0 0 lineto 673 0 lineto 673 585 lineto closepath clip newpath
-39.0 602.0 translate
1 -1 scale
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/reencdict 12 dict def /ReEncode { reencdict begin
/newcodesandnames exch def /newfontname exch def /basefontname exch def
/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def
basefontdict { exch dup /FID ne { dup /Encoding eq
{ exch dup length array copy newfont 3 1 roll put }
{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall
newfont /FontName newfontname put newcodesandnames aload pop
128 1 255 { newfont /Encoding get exch /.notdef put } for
newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat
newfontname newfont definefont pop end } def
/isovec [
8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde
8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis
8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron
8#220 /dotlessi 8#230 /oe 8#231 /OE
8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling
8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis
8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot
8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus
8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph
8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine
8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf
8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute
8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring
8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute
8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute
8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve
8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply
8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex
8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave
8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring
8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute
8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute
8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve
8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide
8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex
8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def
/Times-Roman /Times-Roman-iso isovec ReEncode
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
$F2psBegin
%%Page: 1 1
10 setmiterlimit
0.06000 0.06000 sc
%
% Fig objects follow
%
% Polyline
7.500 slw
n 3600 1950 m 3900 1650 l 4800 1650 l 4800 3150 l 3600 3150 l 3600 1950 l
3900 1950 l
3900 1650 l gs col0 s gr
/Times-Roman-iso ff 180.00 scf sf
3900 2250 m
gs 1 -1 sc (Config file) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3900 2550 m
gs 1 -1 sc (Doxyfile) col0 sh gr
% Polyline
n 900 7500 m 1200 7200 l 2100 7200 l 2100 8700 l 900 8700 l 900 7500 l
1200 7500 l
1200 7200 l gs col0 s gr
/Times-Roman-iso ff 180.00 scf sf
1200 7950 m
gs 1 -1 sc (search) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1200 8175 m
gs 1 -1 sc (index) col0 sh gr
% Polyline
n 900 3675 m 1200 3375 l 2100 3375 l 2100 4875 l 900 4875 l 900 3675 l
1200 3675 l
1200 3375 l gs col0 s gr
% Polyline
n 975 3600 m 975 3300 l 2175 3300 l 2175 4800 l
2100 4800 l gs col0 s gr
% Polyline
n 1050 3300 m 1050 3225 l 2250 3225 l 2250 4725 l
2175 4725 l gs col0 s gr
% Polyline
n 1125 3225 m 1125 3150 l 2325 3150 l 2325 4650 l
2250 4650 l gs col0 s gr
% Polyline
n 900 5700 m 1200 5400 l 2100 5400 l 2100 6900 l 900 6900 l 900 5700 l
1200 5700 l
1200 5400 l gs col0 s gr
% Polyline
n 975 5625 m 975 5325 l 2175 5325 l 2175 6825 l
2100 6825 l gs col0 s gr
% Polyline
n 1050 5325 m 1050 5250 l 2250 5250 l 2250 6750 l
2175 6750 l gs col0 s gr
% Polyline
n 1125 5250 m 1125 5175 l 2325 5175 l 2325 6675 l
2250 6675 l gs col0 s gr
/Times-Roman-iso ff 180.00 scf sf
1275 6075 m
gs 1 -1 sc (- headers) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1275 6675 m
gs 1 -1 sc (- images) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1275 6375 m
gs 1 -1 sc (- footers) col0 sh gr
% Polyline
n 6675 8775 m 6975 8475 l 7875 8475 l 7875 9975 l 6675 9975 l 6675 8775 l
6975 8775 l
6975 8475 l gs col0 s gr
% Polyline
n 6750 8700 m 6750 8400 l 7950 8400 l 7950 9900 l
7875 9900 l gs col0 s gr
% Polyline
n 6825 8400 m 6825 8325 l 8025 8325 l 8025 9825 l
7950 9825 l gs col0 s gr
% Polyline
n 6900 8325 m 6900 8250 l 8100 8250 l 8100 9750 l
8025 9750 l gs col0 s gr
% Polyline
n 6600 4950 m 6900 4650 l 7800 4650 l 7800 6150 l 6600 6150 l 6600 4950 l
6900 4950 l
6900 4650 l gs col0 s gr
% Polyline
n 6675 4875 m 6675 4575 l 7875 4575 l 7875 6075 l
7800 6075 l gs col0 s gr
% Polyline
n 6750 4575 m 6750 4500 l 7950 4500 l 7950 6000 l
7875 6000 l gs col0 s gr
% Polyline
n 6825 4500 m 6825 4425 l 8025 4425 l 8025 5925 l
7950 5925 l gs col0 s gr
% Polyline
n 6600 2925 m 6900 2625 l 7800 2625 l 7800 4125 l 6600 4125 l 6600 2925 l
6900 2925 l
6900 2625 l gs col0 s gr
% Polyline
n 6675 2850 m 6675 2550 l 7875 2550 l 7875 4050 l
7800 4050 l gs col0 s gr
% Polyline
n 6750 2550 m 6750 2475 l 7950 2475 l 7950 3975 l
7875 3975 l gs col0 s gr
% Polyline
n 6825 2475 m 6825 2400 l 8025 2400 l 8025 3900 l
7950 3900 l gs col0 s gr
% Polyline
n 6600 900 m 6900 600 l 7800 600 l 7800 2100 l 6600 2100 l 6600 900 l
6900 900 l
6900 600 l gs col0 s gr
% Polyline
n 6675 825 m 6675 525 l 7875 525 l 7875 2025 l
7800 2025 l gs col0 s gr
% Polyline
n 6750 525 m 6750 450 l 7950 450 l 7950 1950 l
7875 1950 l gs col0 s gr
% Polyline
n 6825 450 m 6825 375 l 8025 375 l 8025 1875 l
7950 1875 l gs col0 s gr
% Polyline
gs clippath
4020 3765 m 4080 3765 l 4080 3614 l 4050 3734 l 4020 3614 l cp
eoclip
n 4050 3150 m
4050 3750 l gs col0 s gr gr
% arrowhead
n 4020 3614 m 4050 3734 l 4080 3614 l 4020 3614 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
3315 4155 m 3315 4095 l 3164 4095 l 3284 4125 l 3164 4155 l cp
eoclip
n 2100 4125 m
3300 4125 l gs col0 s gr gr
% arrowhead
n 3164 4155 m 3284 4125 l 3164 4095 l 3164 4155 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
3315 4380 m 3315 4320 l 3164 4320 l 3284 4350 l 3164 4380 l cp
eoclip
n 2100 6225 m 2700 6225 l 2700 4350 l
3300 4350 l gs col0 s gr gr
% arrowhead
n 3164 4380 m 3284 4350 l 3164 4320 l 3164 4380 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4380 3135 m 4320 3135 l 4320 3286 l 4350 3166 l 4380 3286 l cp
eoclip
n 4350 3150 m
4350 3750 l gs col0 s gr gr
% arrowhead
n 4380 3286 m 4350 3166 l 4320 3286 l 4380 3286 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 3675 5925 m 3975 5625 l 4875 5625 l 4875 7125 l 3675 7125 l 3675 5925 l
3975 5925 l
3975 5625 l gs col0 s gr
% Polyline
n 3300 300 m 5100 300 l 5100 1050 l 3300 1050 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
4155 4635 m 4095 4635 l 4095 4786 l 4125 4666 l 4155 4786 l cp
eoclip
n 4125 5625 m
4125 4650 l gs col0 s gr gr
% arrowhead
n 4155 4786 m 4125 4666 l 4095 4786 l 4155 4786 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4320 5640 m 4380 5640 l 4380 5489 l 4350 5609 l 4320 5489 l cp
eoclip
n 4350 5625 m
4350 4650 l gs col0 s gr gr
% arrowhead
n 4320 5489 m 4350 5609 l 4380 5489 l 4320 5489 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4170 1665 m 4230 1665 l 4230 1514 l 4200 1634 l 4170 1514 l cp
4230 1035 m 4170 1035 l 4170 1186 l 4200 1066 l 4230 1186 l cp
eoclip
n 4200 1050 m
4200 1650 l gs col0 s gr gr
% arrowhead
n 4230 1186 m 4200 1066 l 4170 1186 l 4230 1186 l cp gs 0.00 setgray ef gr col0 s
% arrowhead
n 4170 1514 m 4200 1634 l 4230 1514 l 4170 1514 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6615 1455 m 6615 1395 l 6464 1395 l 6584 1425 l 6464 1455 l cp
eoclip
n 5100 3900 m 6000 3900 l 6000 1425 l
6600 1425 l gs col0 s gr gr
% arrowhead
n 6464 1455 m 6584 1425 l 6464 1395 l 6464 1455 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6615 3480 m 6615 3420 l 6464 3420 l 6584 3450 l 6464 3480 l cp
eoclip
n 5100 4050 m 6300 4050 l 6300 3450 l
6600 3450 l gs col0 s gr gr
% arrowhead
n 6464 3480 m 6584 3450 l 6464 3420 l 6464 3480 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6615 5580 m 6615 5520 l 6464 5520 l 6584 5550 l 6464 5580 l cp
eoclip
n 5100 4200 m 6300 4200 l 6300 5550 l
6600 5550 l gs col0 s gr gr
% arrowhead
n 6464 5580 m 6584 5550 l 6464 5520 l 6464 5580 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6690 7380 m 6690 7320 l 6539 7320 l 6659 7350 l 6539 7380 l cp
eoclip
n 5100 4350 m 6000 4350 l 6000 7350 l
6675 7350 l gs col0 s gr gr
% arrowhead
n 6539 7380 m 6659 7350 l 6539 7320 l 6539 7380 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6690 9180 m 6690 9120 l 6539 9120 l 6659 9150 l 6539 9180 l cp
eoclip
n 5100 4500 m 5700 4500 l 5700 9150 l
6675 9150 l gs col0 s gr gr
% arrowhead
n 6539 9180 m 6659 9150 l 6539 9120 l 6539 9180 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 6675 6675 m 6975 6375 l 7875 6375 l 7875 7875 l 6675 7875 l 6675 6675 l
6975 6675 l
6975 6375 l gs col0 s gr
% Polyline
n 3300 3750 m 5100 3750 l 5100 4650 l 3300 4650 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
n 8775 450 m 10800 450 l 10800 1575 l 8775 1575 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
n 9075 900 m 10650 900 l 10650 1425 l 9075 1425 l
cp gs col0 s gr
% Polyline
gs clippath
8790 1380 m 8790 1320 l 8639 1320 l 8759 1350 l 8639 1380 l cp
eoclip
n 7800 1350 m
8775 1350 l gs col0 s gr gr
% arrowhead
n 8639 1380 m 8759 1350 l 8639 1320 l 8639 1380 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
11490 1380 m 11490 1320 l 11339 1320 l 11459 1350 l 11339 1380 l cp
eoclip
n 10800 1350 m
11475 1350 l gs col0 s gr gr
% arrowhead
n 11339 1380 m 11459 1350 l 11339 1320 l 11339 1380 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
9015 3180 m 9015 3120 l 8864 3120 l 8984 3150 l 8864 3180 l cp
eoclip
n 7800 3150 m
9000 3150 l gs col0 s gr gr
% arrowhead
n 8864 3180 m 8984 3150 l 8864 3120 l 8864 3180 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
9015 3555 m 9015 3495 l 8864 3495 l 8984 3525 l 8864 3555 l cp
eoclip
n 7800 3525 m
9000 3525 l gs col0 s gr gr
% arrowhead
n 8864 3555 m 8984 3525 l 8864 3495 l 8864 3555 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 9000 2925 m 10800 2925 l 10800 3675 l 9000 3675 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
11490 3180 m 11490 3120 l 11339 3120 l 11459 3150 l 11339 3180 l cp
eoclip
n 10800 3150 m
11475 3150 l gs col0 s gr gr
% arrowhead
n 11339 3180 m 11459 3150 l 11339 3120 l 11339 3180 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
11490 3555 m 11490 3495 l 11339 3495 l 11459 3525 l 11339 3555 l cp
eoclip
n 10800 3525 m
11475 3525 l gs col0 s gr gr
% arrowhead
n 11339 3555 m 11459 3525 l 11339 3495 l 11339 3555 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 9000 6900 m 10800 6900 l 10800 7650 l 9000 7650 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
9015 7305 m 9015 7245 l 8864 7245 l 8984 7275 l 8864 7305 l cp
eoclip
n 7875 7275 m
9000 7275 l gs col0 s gr gr
% arrowhead
n 8864 7305 m 8984 7275 l 8864 7245 l 8864 7305 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
11415 7305 m 11415 7245 l 11264 7245 l 11384 7275 l 11264 7305 l cp
eoclip
n 10800 7275 m
11400 7275 l gs col0 s gr gr
% arrowhead
n 11264 7305 m 11384 7275 l 11264 7245 l 11264 7305 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
9015 9180 m 9015 9120 l 8864 9120 l 8984 9150 l 8864 9180 l cp
eoclip
n 7875 9150 m
9000 9150 l gs col0 s gr gr
% arrowhead
n 8864 9180 m 8984 9150 l 8864 9120 l 8864 9180 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 9000 8775 m 10875 8775 l 10875 9525 l 9000 9525 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
11415 9180 m 11415 9120 l 11264 9120 l 11384 9150 l 11264 9180 l cp
eoclip
n 10875 9150 m
11400 9150 l gs col0 s gr gr
% arrowhead
n 11264 9180 m 11384 9150 l 11264 9120 l 11264 9180 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
4455 7110 m 4395 7110 l 4395 7261 l 4425 7141 l 4455 7261 l cp
eoclip
n 4425 8850 m
4425 7125 l gs col0 s gr gr
% arrowhead
n 4455 7261 m 4425 7141 l 4395 7261 l 4455 7261 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 3300 8850 m 5100 8850 l 5100 9525 l 3300 9525 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
5085 9270 m 5085 9330 l 5236 9330 l 5116 9300 l 5236 9270 l cp
eoclip
n 6675 9300 m
5100 9300 l gs col0 s gr gr
% arrowhead
n 5236 9270 m 5116 9300 l 5236 9330 l 5236 9270 l cp gs 0.00 setgray ef gr col0 s
% Polyline
n 675 9300 m 2475 9300 l 2475 9975 l 675 9975 l
cp gs col32 1.00 shd ef gr gs col0 s gr
% Polyline
gs clippath
2085 7995 m 2085 8055 l 2236 8055 l 2116 8025 l 2236 7995 l cp
eoclip
n 3900 8850 m 3900 8025 l
2100 8025 l gs col0 s gr gr
% arrowhead
n 2236 7995 m 2116 8025 l 2236 8055 l 2236 7995 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
1470 9315 m 1530 9315 l 1530 9164 l 1500 9284 l 1470 9164 l cp
eoclip
n 1500 8700 m
1500 9300 l gs col0 s gr gr
% arrowhead
n 1470 9164 m 1500 9284 l 1530 9164 l 1470 9164 l cp gs 0.00 setgray ef gr col0 s
% Polyline
gs clippath
6690 9780 m 6690 9720 l 6539 9720 l 6659 9750 l 6539 9780 l cp
2460 9720 m 2460 9780 l 2611 9780 l 2491 9750 l 2611 9720 l cp
eoclip
n 2475 9750 m
6675 9750 l gs col0 s gr gr
% arrowhead
n 2611 9720 m 2491 9750 l 2611 9780 l 2611 9720 l cp gs 0.00 setgray ef gr col0 s
% arrowhead
n 6539 9780 m 6659 9750 l 6539 9720 l 6539 9780 l cp gs 0.00 setgray ef gr col0 s
% Polyline
[60] 0 sd
n 8700 6450 m 11850 6450 l 11850 9975 l 8700 9975 l
cp gs col0 s gr [] 0 sd
/Times-Roman-iso ff 180.00 scf sf
4500 3525 m
gs 1 -1 sc (generate/update) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3600 3525 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
2850 3975 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
2850 4650 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3975 6450 m
gs 1 -1 sc (Tag file\(s\)) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3750 750 m
gs 1 -1 sc (Doxywizard) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
4425 5175 m
gs 1 -1 sc (generate) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3675 5175 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
4350 1425 m
gs 1 -1 sc (generate/edit) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6900 1350 m
gs 1 -1 sc (XML files) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6900 3300 m
gs 1 -1 sc (Latex files) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6900 3750 m
gs 1 -1 sc (Makefile) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
7200 3525 m
gs 1 -1 sc (+) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3900 4275 m
gs 1 -1 sc (Doxygen) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
9225 750 m
gs 1 -1 sc (Your application) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
9300 1275 m
gs 1 -1 sc (doxmlparser lib) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8175 3750 m
gs 1 -1 sc (make pdf) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8175 3000 m
gs 1 -1 sc (make ps) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
9675 3375 m
gs 1 -1 sc (latex) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11025 825 m
gs 1 -1 sc (custom) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11025 1050 m
gs 1 -1 sc (output) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11025 3000 m
gs 1 -1 sc (postscript) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11025 3825 m
gs 1 -1 sc (PDF) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6900 7350 m
gs 1 -1 sc (refman.rtf) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
9525 7350 m
gs 1 -1 sc (MS-Word) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11100 7200 m
gs 1 -1 sc (doc) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8175 7200 m
gs 1 -1 sc (import) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6975 9075 m
gs 1 -1 sc (HTML) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6975 9300 m
gs 1 -1 sc (pages) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
9075 9225 m
gs 1 -1 sc (HTML Help Workshop) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
11100 9000 m
gs 1 -1 sc (chm) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
6825 5625 m
gs 1 -1 sc (Man pages) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
5475 9525 m
gs 1 -1 sc (parse) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
4575 8100 m
gs 1 -1 sc (generate) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
3825 9300 m
gs 1 -1 sc (Doxytag) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1050 9750 m
gs 1 -1 sc (Doxysearch) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1575 9075 m
gs 1 -1 sc (uses) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
2700 9975 m
gs 1 -1 sc (used from) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
5700 9975 m
gs 1 -1 sc (generates) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8325 9075 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8775 6675 m
gs 1 -1 sc (Windows only) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
2700 8250 m
gs 1 -1 sc (generate) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
8250 1200 m
gs 1 -1 sc (read) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1200 4200 m
gs 1 -1 sc (Sources) col0 sh gr
/Times-Roman-iso ff 180.00 scf sf
1275 5775 m
gs 1 -1 sc (Custom) col0 sh gr
$F2psEnd
rs
doc/infoflow.fig
0 → 100644
View file @
f781e6db
#FIG 3.2
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
0 32 #e0e0e0
0 33 #000000
6 3600 1650 4800 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
3600 1950 3900 1650 4800 1650 4800 3150 3600 3150 3600 1950
3900 1950 3900 1650
4 0 0 50 0 0 12 0.0000 4 180 780 3900 2250 Config file\001
4 0 0 50 0 0 12 0.0000 4 180 645 3900 2550 Doxyfile\001
-6
6 900 7200 2100 8700
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 7500 1200 7200 2100 7200 2100 8700 900 8700 900 7500
1200 7500 1200 7200
4 0 0 50 0 0 12 0.0000 4 135 510 1200 7950 search\001
4 0 0 50 0 0 12 0.0000 4 135 405 1200 8175 index\001
-6
6 900 3150 2325 4875
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 3675 1200 3375 2100 3375 2100 4875 900 4875 900 3675
1200 3675 1200 3375
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
975 3600 975 3300 2175 3300 2175 4800 2100 4800
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1050 3300 1050 3225 2250 3225 2250 4725 2175 4725
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1125 3225 1125 3150 2325 3150 2325 4650 2250 4650
-6
6 900 5175 2325 6900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
900 5700 1200 5400 2100 5400 2100 6900 900 6900 900 5700
1200 5700 1200 5400
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
975 5625 975 5325 2175 5325 2175 6825 2100 6825
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1050 5325 1050 5250 2250 5250 2250 6750 2175 6750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
1125 5250 1125 5175 2325 5175 2325 6675 2250 6675
-6
6 1275 5925 2025 6750
4 0 0 50 0 0 12 0.0000 4 135 750 1275 6075 - headers\001
4 0 0 50 0 0 12 0.0000 4 180 690 1275 6675 - images\001
4 0 0 50 0 0 12 0.0000 4 135 690 1275 6375 - footers\001
-6
6 6675 8250 8100 9975
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6675 8775 6975 8475 7875 8475 7875 9975 6675 9975 6675 8775
6975 8775 6975 8475
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 8700 6750 8400 7950 8400 7950 9900 7875 9900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 8400 6825 8325 8025 8325 8025 9825 7950 9825
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6900 8325 6900 8250 8100 8250 8100 9750 8025 9750
-6
6 6600 4425 8025 6150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 4950 6900 4650 7800 4650 7800 6150 6600 6150 6600 4950
6900 4950 6900 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 4875 6675 4575 7875 4575 7875 6075 7800 6075
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 4575 6750 4500 7950 4500 7950 6000 7875 6000
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 4500 6825 4425 8025 4425 8025 5925 7950 5925
-6
6 6600 2400 8025 4125
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 2925 6900 2625 7800 2625 7800 4125 6600 4125 6600 2925
6900 2925 6900 2625
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 2850 6675 2550 7875 2550 7875 4050 7800 4050
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 2550 6750 2475 7950 2475 7950 3975 7875 3975
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 2475 6825 2400 8025 2400 8025 3900 7950 3900
-6
6 6600 375 8025 2100
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6600 900 6900 600 7800 600 7800 2100 6600 2100 6600 900
6900 900 6900 600
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6675 825 6675 525 7875 525 7875 2025 7800 2025
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6750 525 6750 450 7950 450 7950 1950 7875 1950
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
6825 450 6825 375 8025 375 8025 1875 7950 1875
-6
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4050 3150 4050 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
2100 4125 3300 4125
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
2100 6225 2700 6225 2700 4350 3300 4350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
1 1 1.00 60.00 120.00
4350 3150 4350 3750
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
3675 5925 3975 5625 4875 5625 4875 7125 3675 7125 3675 5925
3975 5925 3975 5625
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 300 5100 300 5100 1050 3300 1050 3300 300
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4125 5625 4125 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2
1 1 1.00 60.00 120.00
4350 5625 4350 4650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2
1 1 1.00 60.00 120.00
1 1 1.00 60.00 120.00
4200 1050 4200 1650
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 3900 6000 3900 6000 1425 6600 1425
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4050 6300 4050 6300 3450 6600 3450
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4200 6300 4200 6300 5550 6600 5550
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4350 6000 4350 6000 7350 6675 7350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4
1 1 1.00 60.00 120.00
5100 4500 5700 4500 5700 9150 6675 9150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8
6675 6675 6975 6375 7875 6375 7875 7875 6675 7875 6675 6675
6975 6675 6975 6375
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 3750 5100 3750 5100 4650 3300 4650 3300 3750
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
8775 450 10800 450 10800 1575 8775 1575 8775 450
2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5
9075 900 10650 900 10650 1425 9075 1425 9075 900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 1350 8775 1350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 1350 11475 1350
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 3150 9000 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7800 3525 9000 3525
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 2925 10800 2925 10800 3675 9000 3675 9000 2925
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 3150 11475 3150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 3525 11475 3525
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 6900 10800 6900 10800 7650 9000 7650 9000 6900
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7875 7275 9000 7275
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10800 7275 11400 7275
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
7875 9150 9000 9150
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
9000 8775 10875 8775 10875 9525 9000 9525 9000 8775
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
10875 9150 11400 9150
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
4425 8850 4425 7125
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
3300 8850 5100 8850 5100 9525 3300 9525 3300 8850
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
6675 9300 5100 9300
2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5
675 9300 2475 9300 2475 9975 675 9975 675 9300
2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3
1 1 1.00 60.00 120.00
3900 8850 3900 8025 2100 8025
2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 0 2
1 1 1.00 60.00 120.00
1500 8700 1500 9300
2 1 0 1 0 7 50 0 -1 4.000 0 0 -1 1 1 2
1 1 1.00 60.00 120.00
1 1 1.00 60.00 120.00
2475 9750 6675 9750
2 2 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5
8700 6450 11850 6450 11850 9975 8700 9975 8700 6450
4 0 0 50 0 0 12 0.0000 4 180 1215 4500 3525 generate/update\001
4 0 0 50 0 0 12 0.0000 4 135 330 3600 3525 read\001
4 0 0 50 0 0 12 0.0000 4 135 330 2850 3975 read\001
4 0 0 50 0 0 12 0.0000 4 135 330 2850 4650 read\001
4 0 0 50 0 0 12 0.0000 4 180 810 3975 6450 Tag file(s)\001
4 0 0 50 0 0 12 0.0000 4 180 915 3750 750 Doxywizard\001
4 0 0 50 0 0 12 0.0000 4 150 660 4425 5175 generate\001
4 0 0 50 0 0 12 0.0000 4 135 330 3675 5175 read\001
4 0 0 50 0 0 12 0.0000 4 180 990 4350 1425 generate/edit\001
4 0 0 50 0 0 12 0.0000 4 135 780 6900 1350 XML files\001
4 0 0 50 0 0 12 0.0000 4 135 810 6900 3300 Latex files\001
4 0 0 50 0 0 12 0.0000 4 135 675 6900 3750 Makefile\001
4 0 0 50 0 0 12 0.0000 4 75 105 7200 3525 +\001
4 0 0 50 0 0 12 0.0000 4 180 675 3900 4275 Doxygen\001
4 0 0 50 0 0 12 0.0000 4 180 1245 9225 750 Your application\001
4 0 0 50 0 0 12 0.0000 4 180 1155 9300 1275 doxmlparser lib\001
4 0 0 50 0 0 12 0.0000 4 180 690 8175 3750 make pdf\001
4 0 0 50 0 0 12 0.0000 4 180 630 8175 3000 make ps\001
4 0 0 50 0 0 12 0.0000 4 135 375 9675 3375 latex\001
4 0 0 50 0 0 12 0.0000 4 105 555 11025 825 custom\001
4 0 0 50 0 0 12 0.0000 4 150 480 11025 1050 output\001
4 0 0 50 0 0 12 0.0000 4 180 765 11025 3000 postscript\001
4 0 0 50 0 0 12 0.0000 4 135 345 11025 3825 PDF\001
4 0 0 50 0 0 12 0.0000 4 135 750 6900 7350 refman.rtf\001
4 0 0 50 0 0 12 0.0000 4 135 795 9525 7350 MS-Word\001
4 0 0 50 0 0 12 0.0000 4 135 270 11100 7200 doc\001
4 0 0 50 0 0 12 0.0000 4 180 480 8175 7200 import\001
4 0 0 50 0 0 12 0.0000 4 135 510 6975 9075 HTML\001
4 0 0 50 0 0 12 0.0000 4 135 450 6975 9300 pages\001
4 0 0 50 0 0 12 0.0000 4 180 1740 9075 9225 HTML Help Workshop\001
4 0 0 50 0 0 12 0.0000 4 135 315 11100 9000 chm\001
4 0 0 50 0 0 12 0.0000 4 180 840 6825 5625 Man pages\001
4 0 0 50 0 0 12 0.0000 4 135 420 5475 9525 parse\001
4 0 0 50 0 0 12 0.0000 4 150 660 4575 8100 generate\001
4 0 0 50 0 0 12 0.0000 4 180 645 3825 9300 Doxytag\001
4 0 0 50 0 0 12 0.0000 4 180 915 1050 9750 Doxysearch\001
4 0 0 50 0 0 12 0.0000 4 90 360 1575 9075 uses\001
4 0 0 50 0 0 12 0.0000 4 135 750 2700 9975 used from\001
4 0 0 50 0 0 12 0.0000 4 150 750 5700 9975 generates\001
4 0 0 50 0 0 12 0.0000 4 135 330 8325 9075 read\001
4 0 0 50 0 0 12 0.0000 4 180 1080 8775 6675 Windows only\001
4 0 0 50 0 0 12 0.0000 4 150 660 2700 8250 generate\001
4 0 0 50 0 0 12 0.0000 4 135 330 8250 1200 read\001
4 0 0 50 0 0 12 0.0000 4 135 615 1200 4200 Sources\001
4 0 0 50 0 0 12 0.0000 4 135 585 1275 5775 Custom\001
doc/infoflow.gif
0 → 100644
View file @
f781e6db
12.9 KB
doc/language.doc
View file @
f781e6db
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
languages other than English (the default) at configuration time.
Currently (version 1.
2.14-20020317
), 28 languages
Currently (version 1.
3-rc2-20021224
), 28 languages
are supported (sorted alphabetically):
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
Czech, Danish, Dutch, English, Finnish,
...
...
doc/starting.doc
View file @
f781e6db
...
@@ -32,6 +32,12 @@ engine. See section \ref doxysearch_usage for more detailed usage information.
...
@@ -32,6 +32,12 @@ engine. See section \ref doxysearch_usage for more detailed usage information.
Optionally, the executable \c doxywizard is a GUI front-end for editing
Optionally, the executable \c doxywizard is a GUI front-end for editing
the configuration files that are used by doxygen.
the configuration files that are used by doxygen.
The following figure shows the relation between the tools and the flow
of information between them:
\image html infoflow.gif "Doxygen information flow"
\image latex infoflow.eps "Doxygen information flow" width=14cm
\section step1 Step 1: Creating a configuration file
\section step1 Step 1: Creating a configuration file
Doxygen uses a configuration file to determine all of its settings.
Doxygen uses a configuration file to determine all of its settings.
...
...
packages/rpm/doxygen.spec
View file @
f781e6db
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.3_rc2_200
21224
Version: 1.3_rc2_200
30106
Release: 1
Release: 1
Epoch: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
f781e6db
...
@@ -124,6 +124,7 @@ ClassDef::~ClassDef()
...
@@ -124,6 +124,7 @@ ClassDef::~ClassDef()
delete
m_innerClasses
;
delete
m_innerClasses
;
delete
m_templateInstances
;
delete
m_templateInstances
;
delete
m_templBaseClassNames
;
delete
m_templBaseClassNames
;
delete
m_tempArgs
;
}
}
QCString
ClassDef
::
displayName
()
const
QCString
ClassDef
::
displayName
()
const
...
@@ -1525,7 +1526,6 @@ void ClassDef::setTemplateArguments(ArgumentList *al)
...
@@ -1525,7 +1526,6 @@ void ClassDef::setTemplateArguments(ArgumentList *al)
if
(
al
==
0
)
return
;
if
(
al
==
0
)
return
;
if
(
!
m_tempArgs
)
delete
m_tempArgs
;
// delete old list if needed
if
(
!
m_tempArgs
)
delete
m_tempArgs
;
// delete old list if needed
m_tempArgs
=
new
ArgumentList
;
m_tempArgs
=
new
ArgumentList
;
m_tempArgs
->
setAutoDelete
(
TRUE
);
ArgumentListIterator
ali
(
*
al
);
ArgumentListIterator
ali
(
*
al
);
Argument
*
a
;
Argument
*
a
;
for
(;(
a
=
ali
.
current
());
++
ali
)
for
(;(
a
=
ali
.
current
());
++
ali
)
...
@@ -1981,7 +1981,11 @@ void ClassDef::mergeMembers()
...
@@ -1981,7 +1981,11 @@ void ClassDef::mergeMembers()
void
ClassDef
::
addUsedClass
(
ClassDef
*
cd
,
const
char
*
accessName
)
void
ClassDef
::
addUsedClass
(
ClassDef
*
cd
,
const
char
*
accessName
)
{
{
if
(
m_usesImplClassDict
==
0
)
m_usesImplClassDict
=
new
UsesClassDict
(
17
);
if
(
m_usesImplClassDict
==
0
)
{
m_usesImplClassDict
=
new
UsesClassDict
(
17
);
m_usesImplClassDict
->
setAutoDelete
(
TRUE
);
}
UsesClassDef
*
ucd
=
m_usesImplClassDict
->
find
(
cd
->
name
());
UsesClassDef
*
ucd
=
m_usesImplClassDict
->
find
(
cd
->
name
());
if
(
ucd
==
0
/*|| ucd->templSpecifiers!=templSpec*/
)
if
(
ucd
==
0
/*|| ucd->templSpecifiers!=templSpec*/
)
{
{
...
@@ -2065,7 +2069,11 @@ void ClassDef::determineImplUsageRelation()
...
@@ -2065,7 +2069,11 @@ void ClassDef::determineImplUsageRelation()
if (cd) // class exists
if (cd) // class exists
{
{
found=TRUE;
found=TRUE;
if (m_usesImplClassDict==0) m_usesImplClassDict = new UsesClassDict(257);
if (m_usesImplClassDict==0)
{
m_usesImplClassDict = new UsesClassDict(257);
m_usesImplClassDict->setAutoDelete(TRUE);
}
UsesClassDef *ucd=m_usesImplClassDict->find(cd->name());
UsesClassDef *ucd=m_usesImplClassDict->find(cd->name());
if (ucd==0 || ucd->templSpecifiers!=templSpec)
if (ucd==0 || ucd->templSpecifiers!=templSpec)
{
{
...
...
src/classdef.h
View file @
f781e6db
...
@@ -126,12 +126,6 @@ class ClassDef : public Definition
...
@@ -126,12 +126,6 @@ class ClassDef : public Definition
*/
*/
ArgumentList
*
templateArguments
()
const
{
return
m_tempArgs
;
}
ArgumentList
*
templateArguments
()
const
{
return
m_tempArgs
;
}
/*! Returns the template arguments that this nested class "inherits"
* from its outer class (doxygen assumes there is only one!).
* Will return 0 if not applicable.
*/
//ArgumentList *outerTemplateArguments() const;
/*! Returns the namespace this compound is in, or 0 if it has a global
/*! Returns the namespace this compound is in, or 0 if it has a global
* scope.
* scope.
*/
*/
...
...
src/config.h
View file @
f781e6db
...
@@ -338,6 +338,11 @@ class Config
...
@@ -338,6 +338,11 @@ class Config
if
(
m_instance
==
0
)
m_instance
=
new
Config
;
if
(
m_instance
==
0
)
m_instance
=
new
Config
;
return
m_instance
;
return
m_instance
;
}
}
/*! Delete the instance */
static
void
deleteInstance
()
{
delete
m_instance
;
}
/*! Returns an iterator that can by used to iterate over the
/*! Returns an iterator that can by used to iterate over the
* configuration options.
* configuration options.
...
...
src/docparser.cpp
View file @
f781e6db
...
@@ -128,8 +128,8 @@ static void docParserPopContext()
...
@@ -128,8 +128,8 @@ static void docParserPopContext()
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*! search for an image in the imageNameDict and if found
/*! search for an image in the imageNameDict and if found
* copies the image to the output directory (which
is th
e
* copies the image to the output directory (which
depends on the \a typ
e
*
html directory if type==0 or the latex directory if type==1)
*
parameter).
*/
*/
static
QCString
findAndCopyImage
(
const
char
*
fileName
,
DocImage
::
Type
type
)
static
QCString
findAndCopyImage
(
const
char
*
fileName
,
DocImage
::
Type
type
)
{
{
...
@@ -225,14 +225,20 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
...
@@ -225,14 +225,20 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
return
result
;
return
result
;
}
}
/*! Collects the parameters found with @param or @retval commands
* in a global list g_paramsFound. If \a isParam is set to TRUE
* and the parameter is not an actual parameter of the current
* member g_memberDef, than a warning is raised (unless warnings
* are disabled altogether).
*/
static
void
checkArgumentName
(
const
QString
&
name
,
bool
isParam
)
static
void
checkArgumentName
(
const
QString
&
name
,
bool
isParam
)
{
{
if
(
!
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
return
;
if
(
g_memberDef
==
0
)
return
;
// not a member
if
(
g_memberDef
==
0
)
return
;
// not a member
ArgumentList
*
al
=
g_memberDef
->
isDocsForDefinition
()
?
ArgumentList
*
al
=
g_memberDef
->
isDocsForDefinition
()
?
g_memberDef
->
argumentList
()
:
g_memberDef
->
argumentList
()
:
g_memberDef
->
declArgumentList
();
g_memberDef
->
declArgumentList
();
if
(
al
==
0
)
return
;
// no argument list
if
(
al
==
0
)
return
;
// no argument list
if
(
!
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
return
;
static
QRegExp
re
(
"[a-zA-Z0-9_]+
\\
.*"
);
static
QRegExp
re
(
"[a-zA-Z0-9_]+
\\
.*"
);
int
p
=
0
,
i
=
0
,
l
;
int
p
=
0
,
i
=
0
,
l
;
...
@@ -270,6 +276,11 @@ static void checkArgumentName(const QString &name,bool isParam)
...
@@ -270,6 +276,11 @@ static void checkArgumentName(const QString &name,bool isParam)
}
}
}
}
/*! Checks if the parameters that have been specified using @param are
* indeed all paramters.
* Must be called after checkArgumentName() has been called for each
* argument.
*/
static
void
checkUndocumentedParams
()
static
void
checkUndocumentedParams
()
{
{
if
(
g_memberDef
&&
g_hasParamCommand
&&
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
if
(
g_memberDef
&&
g_hasParamCommand
&&
Config_getBool
(
"WARN_IF_DOC_ERROR"
))
...
@@ -317,6 +328,7 @@ static void checkUndocumentedParams()
...
@@ -317,6 +328,7 @@ static void checkUndocumentedParams()
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*! Strips know html and tex extensions from \a text. */
static
QString
stripKnownExtensions
(
const
char
*
text
)
static
QString
stripKnownExtensions
(
const
char
*
text
)
{
{
QString
result
=
text
;
QString
result
=
text
;
...
@@ -414,6 +426,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
...
@@ -414,6 +426,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
QString
*
pDoc
,
QString
*
pDoc
,
Definition
**
pDef
)
Definition
**
pDef
)
{
{
//printf("findDocsForMemberOrCompound(%s)\n",commandName);
*
pDoc
=
""
;
*
pDoc
=
""
;
*
pDef
=
0
;
*
pDef
=
0
;
QString
cmdArg
=
commandName
;
QString
cmdArg
=
commandName
;
...
@@ -422,10 +435,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
...
@@ -422,10 +435,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
int
funcStart
=
cmdArg
.
find
(
'('
);
int
funcStart
=
cmdArg
.
find
(
'('
);
if
(
funcStart
==-
1
)
funcStart
=
l
;
if
(
funcStart
==-
1
)
funcStart
=
l
;
//int lastScopeStart=cmdArg.findRev("::",funcStart);
//int lastScopeEnd = lastScopeStart==-1 ? 0 : lastScopeStart+2;
//QString scope=cmdArg.left(QMAX(lastScopeStart,0));
//QString name=cmdArg.mid(lastScopeEnd,funcStart-lastScopeEnd);
QString
name
=
cmdArg
.
left
(
funcStart
);
QString
name
=
cmdArg
.
left
(
funcStart
);
QString
args
=
cmdArg
.
right
(
l
-
funcStart
);
QString
args
=
cmdArg
.
right
(
l
-
funcStart
);
...
@@ -441,6 +451,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
...
@@ -441,6 +451,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
name
.
latin1
(),
name
.
latin1
(),
args
.
isEmpty
()
?
0
:
args
.
latin1
(),
args
.
isEmpty
()
?
0
:
args
.
latin1
(),
md
,
cd
,
fd
,
nd
,
gd
,
FALSE
,
0
,
TRUE
);
md
,
cd
,
fd
,
nd
,
gd
,
FALSE
,
0
,
TRUE
);
//printf("found=%d context=%s name=%s\n",found,g_context.data(),name.data());
if
(
found
&&
md
)
if
(
found
&&
md
)
{
{
*
pDoc
=
md
->
documentation
();
*
pDoc
=
md
->
documentation
();
...
@@ -1289,7 +1300,14 @@ void DocCopy::parse()
...
@@ -1289,7 +1300,14 @@ void DocCopy::parse()
if
(
g_copyStack
.
findRef
(
def
)
==-
1
)
// definition not parsed earlier
if
(
g_copyStack
.
findRef
(
def
)
==-
1
)
// definition not parsed earlier
{
{
docParserPushContext
();
docParserPushContext
();
if
(
def
->
definitionType
()
==
Definition
::
TypeMember
&&
def
->
getOuterScope
())
{
g_context
=
def
->
getOuterScope
()
->
name
();
}
else
{
g_context
=
def
->
name
();
g_context
=
def
->
name
();
}
g_styleStack
.
clear
();
g_styleStack
.
clear
();
g_nodeStack
.
clear
();
g_nodeStack
.
clear
();
g_copyStack
.
append
(
def
);
g_copyStack
.
append
(
def
);
...
@@ -3728,13 +3746,6 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
...
@@ -3728,13 +3746,6 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
retval
=
RetVal_ListItem
;
retval
=
RetVal_ListItem
;
}
}
break
;
break
;
//case HTML_PRE:
// {
// DocHtmlPre *pre = new DocHtmlPre(this,tagHtmlAttribs);
// m_children.append(pre);
// retval=pre->parse();
// }
// break;
case
HTML_BOLD
:
case
HTML_BOLD
:
handleStyleEnter
(
this
,
m_children
,
DocStyleChange
::
Bold
,
&
g_token
->
attribs
);
handleStyleEnter
(
this
,
m_children
,
DocStyleChange
::
Bold
,
&
g_token
->
attribs
);
break
;
break
;
...
@@ -3836,7 +3847,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
...
@@ -3836,7 +3847,7 @@ int DocPara::handleHtmlStartTag(const QString &tagName,const HtmlAttribList &tag
g_insideHtmlLink
=
FALSE
;
g_insideHtmlLink
=
FALSE
;
break
;
break
;
}
}
else
// unsupport option for tag a
else
// unsupport
ed
option for tag a
{
{
}
}
}
}
...
@@ -4054,6 +4065,7 @@ int DocPara::parse()
...
@@ -4054,6 +4065,7 @@ int DocPara::parse()
{
{
DBG
((
"DocPara::parse() start
\n
"
));
DBG
((
"DocPara::parse() start
\n
"
));
g_nodeStack
.
push
(
this
);
g_nodeStack
.
push
(
this
);
// handle style commands "inherited" from the previous paragraph
handleInitialStyleCommands
(
this
,
m_children
);
handleInitialStyleCommands
(
this
,
m_children
);
int
tok
;
int
tok
;
int
retval
=
0
;
int
retval
=
0
;
...
@@ -4083,7 +4095,7 @@ reparsetoken:
...
@@ -4083,7 +4095,7 @@ reparsetoken:
{
{
// prevent leading whitespace and collapse multiple whitespace areas
// prevent leading whitespace and collapse multiple whitespace areas
DocNode
::
Kind
k
;
DocNode
::
Kind
k
;
if
(
insidePRE
(
this
)
||
// all whitespace is rel
a
vant
if
(
insidePRE
(
this
)
||
// all whitespace is rel
e
vant
(
(
// remove leading whitespace
// remove leading whitespace
!
m_children
.
isEmpty
()
&&
!
m_children
.
isEmpty
()
&&
...
@@ -4197,12 +4209,7 @@ reparsetoken:
...
@@ -4197,12 +4209,7 @@ reparsetoken:
}
}
if
(
cmd
&
SIMPLESECT_BIT
)
if
(
cmd
&
SIMPLESECT_BIT
)
{
{
if
(
n
// already in a simple section
if
(
n
)
// already in a simple section
//|| // no section or root as parent
// (parent()->kind()!=DocNode::Kind_Root &&
// parent()->kind()!=DocNode::Kind_Section
// )
)
{
{
// simple section cannot start in this paragraph, need
// simple section cannot start in this paragraph, need
// to unwind the stack and remember the command.
// to unwind the stack and remember the command.
...
...
src/doctokenizer.l
View file @
f781e6db
...
@@ -142,7 +142,7 @@ static int computeIndent(const char *str,int length)
...
@@ -142,7 +142,7 @@ static int computeIndent(const char *str,int length)
*/
*/
static void parseHtmlAttribs(const char *att)
static void parseHtmlAttribs(const char *att)
{
{
//printf("parseHtmlAttribs(%s)\n",
opt.data()
);
//printf("parseHtmlAttribs(%s)\n",
att
);
QCString attribs=att;
QCString attribs=att;
int len = attribs.length();
int len = attribs.length();
char c;
char c;
...
@@ -173,7 +173,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -173,7 +173,7 @@ static void parseHtmlAttribs(const char *att)
// search for matching quote
// search for matching quote
while (i<len && c!='\'') { c=attribs.at(++i); }
while (i<len && c!='\'') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
}
else if (attribs.at(i)=='"') // option "..."
else if (attribs.at(i)=='"') // option "..."
{
{
...
@@ -182,7 +182,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -182,7 +182,7 @@ static void parseHtmlAttribs(const char *att)
// search for matching quote
// search for matching quote
while (i<len && c!='"') { c=attribs.at(++i); }
while (i<len && c!='"') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
}
else // value without any quotes
else // value without any quotes
{
{
...
@@ -190,7 +190,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -190,7 +190,7 @@ static void parseHtmlAttribs(const char *att)
// search for separator
// search for separator
while (i<len && c!=' ') { c=attribs.at(++i); }
while (i<len && c!=' ') { c=attribs.at(++i); }
endAttrib=i;
endAttrib=i;
c=attribs.at(++i);
if (i<len)
c=attribs.at(++i);
}
}
opt.value = attribs.mid(startAttrib,endAttrib-startAttrib);
opt.value = attribs.mid(startAttrib,endAttrib-startAttrib);
}
}
...
@@ -198,7 +198,7 @@ static void parseHtmlAttribs(const char *att)
...
@@ -198,7 +198,7 @@ static void parseHtmlAttribs(const char *att)
{
{
}
}
//printf("=====> Adding option name=<%s> value=<%s>\n",
//printf("=====> Adding option name=<%s> value=<%s>\n",
// opt
->name.data(),opt->
value.data());
// opt
.name.data(),opt.
value.data());
g_token->attribs.append(&opt);
g_token->attribs.append(&opt);
}
}
}
}
...
...
src/dot.cpp
View file @
f781e6db
...
@@ -881,9 +881,9 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
...
@@ -881,9 +881,9 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
for
(
cli
.
toLast
();(
cd
=
cli
.
current
());
--
cli
)
for
(
cli
.
toLast
();(
cd
=
cli
.
current
());
--
cli
)
{
{
//printf("Trying %s subClasses=%d\n",cd->name().data(),cd->subClasses()->count());
//printf("Trying %s subClasses=%d\n",cd->name().data(),cd->subClasses()->count());
if
(
!
hasVisibleRoot
(
cd
->
baseClasses
())
)
if
(
!
hasVisibleRoot
(
cd
->
baseClasses
())
&&
{
cd
->
isVisibleInHierarchy
()
if
(
cd
->
isVisibleInHierarchy
()
)
// root node in the forest
)
// root node in the forest
{
{
QCString
tmp_url
=
""
;
QCString
tmp_url
=
""
;
if
(
cd
->
isLinkable
())
if
(
cd
->
isLinkable
())
...
@@ -891,8 +891,7 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
...
@@ -891,8 +891,7 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
//printf("Inserting root class %s\n",cd->name().data());
//printf("Inserting root class %s\n",cd->name().data());
DotNode
*
n
=
new
DotNode
(
m_curNodeNumber
++
,
DotNode
*
n
=
new
DotNode
(
m_curNodeNumber
++
,
cd
->
displayName
(),
cd
->
displayName
(),
tmp_url
.
data
()
tmp_url
.
data
());
);
//m_usedNodes->clear();
//m_usedNodes->clear();
m_usedNodes
->
insert
(
cd
->
name
(),
n
);
m_usedNodes
->
insert
(
cd
->
name
(),
n
);
...
@@ -904,15 +903,14 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
...
@@ -904,15 +903,14 @@ void DotGfxHierarchyTable::addClassList(ClassSDict *cl)
}
}
}
}
}
}
}
}
}
DotGfxHierarchyTable
::
DotGfxHierarchyTable
()
DotGfxHierarchyTable
::
DotGfxHierarchyTable
()
{
{
m_curNodeNumber
=
0
;
m_curNodeNumber
=
0
;
m_rootNodes
=
new
QList
<
DotNode
>
;
m_rootNodes
=
new
QList
<
DotNode
>
;
//m_rootNodes->setAutoDelete(TRUE); // rootNodes owns the nodes
m_usedNodes
=
new
QDict
<
DotNode
>
(
1009
);
m_usedNodes
=
new
QDict
<
DotNode
>
(
1009
);
// virtualNodes only aliases nodes
m_usedNodes
->
setAutoDelete
(
TRUE
);
m_rootSubgraphs
=
new
DotNodeList
;
m_rootSubgraphs
=
new
DotNodeList
;
// build a graph with each class as a node and the inheritance relations
// build a graph with each class as a node and the inheritance relations
...
@@ -964,7 +962,9 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
...
@@ -964,7 +962,9 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
DotGfxHierarchyTable
::~
DotGfxHierarchyTable
()
DotGfxHierarchyTable
::~
DotGfxHierarchyTable
()
{
{
//printf("DotGfxHierarchyTable::~DotGfxHierarchyTable\n");
//printf("DotGfxHierarchyTable::~DotGfxHierarchyTable\n");
SDict
<
DotNode
>
skipNodes
(
17
);
#if 0 // TODO: delete this
SDict<DotNode> skipNodes(1009);
skipNodes.setAutoDelete(TRUE);
skipNodes.setAutoDelete(TRUE);
DotNode *n = m_rootNodes->first();
DotNode *n = m_rootNodes->first();
while (n)
while (n)
...
@@ -980,6 +980,15 @@ DotGfxHierarchyTable::~DotGfxHierarchyTable()
...
@@ -980,6 +980,15 @@ DotGfxHierarchyTable::~DotGfxHierarchyTable()
deleteNodes(n,&skipNodes);
deleteNodes(n,&skipNodes);
n=m_rootNodes->next();
n=m_rootNodes->next();
}
}
#endif
//QDictIterator<DotNode> di(*m_usedNodes);
//DotNode *n;
//for (;(n=di.current());++di)
//{
// printf("Node %p: %s\n",n,n->label().data());
//}
delete
m_rootNodes
;
delete
m_rootNodes
;
delete
m_usedNodes
;
delete
m_usedNodes
;
delete
m_rootSubgraphs
;
delete
m_rootSubgraphs
;
...
...
src/doxygen.cpp
View file @
f781e6db
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <qtextcodec.h>
#include "version.h"
#include "version.h"
#include "doxygen.h"
#include "doxygen.h"
...
@@ -61,6 +62,7 @@
...
@@ -61,6 +62,7 @@
//#include "packagedef.h"
//#include "packagedef.h"
#include "bufstr.h"
#include "bufstr.h"
#include "commentcnv.h"
#include "commentcnv.h"
#include "cmdmapper.h"
#if defined(_MSC_VER) || defined(__BORLANDC__)
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define popen _popen
...
@@ -104,8 +106,6 @@ StringDict Doxygen::tagDestinationDict(257); // all tag locations
...
@@ -104,8 +106,6 @@ StringDict Doxygen::tagDestinationDict(257); // all tag locations
QDict
<
void
>
Doxygen
::
expandAsDefinedDict
(
257
);
// all macros that should be expanded
QDict
<
void
>
Doxygen
::
expandAsDefinedDict
(
257
);
// all macros that should be expanded
QIntDict
<
MemberGroupInfo
>
Doxygen
::
memGrpInfoDict
(
1009
);
// dictionary of the member groups heading
QIntDict
<
MemberGroupInfo
>
Doxygen
::
memGrpInfoDict
(
1009
);
// dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberHeaderDict(1009); // dictionary of the member groups heading
//QIntDict<QCString> Doxygen::memberDocDict(1009); // dictionary of the member groups heading
PageInfo
*
Doxygen
::
mainPage
=
0
;
PageInfo
*
Doxygen
::
mainPage
=
0
;
QTextStream
Doxygen
::
tagFile
;
QTextStream
Doxygen
::
tagFile
;
...
@@ -3095,6 +3095,7 @@ static bool findTemplateInstanceRelation(Entry *root,
...
@@ -3095,6 +3095,7 @@ static bool findTemplateInstanceRelation(Entry *root,
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
isArtificial
,
templArgs
,
templateNames
);
isArtificial
,
templArgs
,
templateNames
);
delete
templArgs
;
}
}
else
else
{
{
...
@@ -4468,7 +4469,6 @@ static void findMember(Entry *root,
...
@@ -4468,7 +4469,6 @@ static void findMember(Entry *root,
* of the function definition before matching.
* of the function definition before matching.
*/
*/
argList
=
new
ArgumentList
;
argList
=
new
ArgumentList
;
argList
->
setAutoDelete
(
TRUE
);
substituteTemplatesInArgList
(
declTemplArgs
,
*
defTemplArgs
,
substituteTemplatesInArgList
(
declTemplArgs
,
*
defTemplArgs
,
md
->
argumentList
(),
argList
);
md
->
argumentList
(),
argList
);
...
@@ -7048,6 +7048,37 @@ void initDoxygen()
...
@@ -7048,6 +7048,37 @@ void initDoxygen()
initPreprocessor
();
initPreprocessor
();
Doxygen
::
sectionDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
sectionDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
inputNameList
.
setAutoDelete
(
TRUE
);
Doxygen
::
memberNameSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
functionNameSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
hiddenClasses
.
setAutoDelete
(
TRUE
);
Doxygen
::
classSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
pageSDict
->
setAutoDelete
(
TRUE
);
Doxygen
::
exampleSDict
->
setAutoDelete
(
TRUE
);
excludeNameDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
memGrpInfoDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
tagDestinationDict
.
setAutoDelete
(
TRUE
);
}
void
cleanUpDoxygen
()
{
delete
Doxygen
::
inputNameDict
;
delete
Doxygen
::
includeNameDict
;
delete
Doxygen
::
exampleNameDict
;
delete
Doxygen
::
imageNameDict
;
delete
Doxygen
::
dotFileNameDict
;
delete
Doxygen
::
mainPage
;
delete
Doxygen
::
pageSDict
;
delete
Doxygen
::
exampleSDict
;
delete
Doxygen
::
globalScope
;
delete
Doxygen
::
specialLists
;
cleanUpPreprocessor
();
Config
::
deleteInstance
();
QTextCodec
::
deleteAllCodecs
();
delete
theTranslator
;
delete
outputList
;
CmdMapper
::
freeInstance
();
HtmlTagMapper
::
freeInstance
();
}
}
void
readConfiguration
(
int
argc
,
char
**
argv
)
void
readConfiguration
(
int
argc
,
char
**
argv
)
...
@@ -7093,6 +7124,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7093,6 +7124,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
formatName
)
if
(
!
formatName
)
{
{
err
(
"Error:option -e is missing format specifier rtf.
\n
"
);
err
(
"Error:option -e is missing format specifier rtf.
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
...
@@ -7100,6 +7132,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7100,6 +7132,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
1
>=
argc
)
if
(
optind
+
1
>=
argc
)
{
{
err
(
"Error: option
\"
-e rtf
\"
is missing an extensions file name
\n
"
);
err
(
"Error: option
\"
-e rtf
\"
is missing an extensions file name
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
QFile
f
;
QFile
f
;
...
@@ -7107,9 +7140,11 @@ void readConfiguration(int argc, char **argv)
...
@@ -7107,9 +7140,11 @@ void readConfiguration(int argc, char **argv)
{
{
RTFGenerator
::
writeExtensionsFile
(
f
);
RTFGenerator
::
writeExtensionsFile
(
f
);
}
}
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
err
(
"Error: option
\"
-e
\"
has invalid format specifier.
\n
"
);
err
(
"Error: option
\"
-e
\"
has invalid format specifier.
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
break
;
break
;
case
'w'
:
case
'w'
:
...
@@ -7117,6 +7152,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7117,6 +7152,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
formatName
)
if
(
!
formatName
)
{
{
err
(
"Error: option -w is missing format specifier rtf, html or latex
\n
"
);
err
(
"Error: option -w is missing format specifier rtf, html or latex
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
if
(
stricmp
(
formatName
,
"rtf"
)
==
0
)
...
@@ -7124,6 +7160,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7124,6 +7160,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
1
>=
argc
)
if
(
optind
+
1
>=
argc
)
{
{
err
(
"Error: option
\"
-w rtf
\"
is missing a style sheet file name
\n
"
);
err
(
"Error: option
\"
-w rtf
\"
is missing a style sheet file name
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
QFile
f
;
QFile
f
;
...
@@ -7131,6 +7168,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7131,6 +7168,7 @@ void readConfiguration(int argc, char **argv)
{
{
RTFGenerator
::
writeStyleSheetFile
(
f
);
RTFGenerator
::
writeStyleSheetFile
(
f
);
}
}
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
else
if
(
stricmp
(
formatName
,
"html"
)
==
0
)
else
if
(
stricmp
(
formatName
,
"html"
)
==
0
)
...
@@ -7140,6 +7178,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7140,6 +7178,7 @@ void readConfiguration(int argc, char **argv)
if
(
!
Config
::
instance
()
->
parse
(
argv
[
optind
+
4
]))
if
(
!
Config
::
instance
()
->
parse
(
argv
[
optind
+
4
]))
{
{
err
(
"Error opening or reading configuration file %s!
\n
"
,
argv
[
optind
+
4
]);
err
(
"Error opening or reading configuration file %s!
\n
"
,
argv
[
optind
+
4
]);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
Config
::
instance
()
->
substituteEnvironmentVars
();
Config
::
instance
()
->
substituteEnvironmentVars
();
...
@@ -7153,6 +7192,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7153,6 +7192,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
3
>=
argc
)
if
(
optind
+
3
>=
argc
)
{
{
err
(
"Error: option
\"
-w html
\"
does not have enough arguments
\n
"
);
err
(
"Error: option
\"
-w html
\"
does not have enough arguments
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7177,6 +7217,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7177,6 +7217,7 @@ void readConfiguration(int argc, char **argv)
{
{
HtmlGenerator
::
writeStyleSheetFile
(
f
);
HtmlGenerator
::
writeStyleSheetFile
(
f
);
}
}
cleanUpDoxygen
();
exit
(
0
);
exit
(
0
);
}
}
else
if
(
stricmp
(
formatName
,
"latex"
)
==
0
)
else
if
(
stricmp
(
formatName
,
"latex"
)
==
0
)
...
@@ -7199,6 +7240,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7199,6 +7240,7 @@ void readConfiguration(int argc, char **argv)
if
(
optind
+
2
>=
argc
)
if
(
optind
+
2
>=
argc
)
{
{
err
(
"Error: option
\"
-w latex
\"
does not have enough arguments
\n
"
);
err
(
"Error: option
\"
-w latex
\"
does not have enough arguments
\n
"
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7218,11 +7260,13 @@ void readConfiguration(int argc, char **argv)
...
@@ -7218,11 +7260,13 @@ void readConfiguration(int argc, char **argv)
{
{
LatexGenerator
::
writeStyleSheetFile
(
f
);
LatexGenerator
::
writeStyleSheetFile
(
f
);
}
}
cleanUpDoxygen
();
exit
(
0
);
exit
(
0
);
}
}
else
else
{
{
err
(
"Error: Illegal format specifier %s: should be one of rtf, html, or latex
\n
"
,
formatName
);
err
(
"Error: Illegal format specifier %s: should be one of rtf, html, or latex
\n
"
,
formatName
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
break
;
break
;
...
@@ -7234,6 +7278,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7234,6 +7278,7 @@ void readConfiguration(int argc, char **argv)
else
if
(
strcmp
(
&
argv
[
optind
][
2
],
"version"
)
==
0
)
else
if
(
strcmp
(
&
argv
[
optind
][
2
],
"version"
)
==
0
)
{
{
msg
(
"%s
\n
"
,
versionString
);
msg
(
"%s
\n
"
,
versionString
);
cleanUpDoxygen
();
exit
(
0
);
exit
(
0
);
}
}
break
;
break
;
...
@@ -7257,6 +7302,7 @@ void readConfiguration(int argc, char **argv)
...
@@ -7257,6 +7302,7 @@ void readConfiguration(int argc, char **argv)
if
(
genConfig
)
if
(
genConfig
)
{
{
generateConfigFile
(
configName
,
shortList
);
generateConfigFile
(
configName
,
shortList
);
cleanUpDoxygen
();
exit
(
0
);
exit
(
0
);
}
}
...
@@ -7295,12 +7341,14 @@ void readConfiguration(int argc, char **argv)
...
@@ -7295,12 +7341,14 @@ void readConfiguration(int argc, char **argv)
if
(
!
Config
::
instance
()
->
parse
(
configName
))
if
(
!
Config
::
instance
()
->
parse
(
configName
))
{
{
err
(
"Error: could not open or read configuration file %s!
\n
"
,
configName
);
err
(
"Error: could not open or read configuration file %s!
\n
"
,
configName
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
if
(
updateConfig
)
if
(
updateConfig
)
{
{
generateConfigFile
(
configName
,
shortList
,
TRUE
);
generateConfigFile
(
configName
,
shortList
,
TRUE
);
cleanUpDoxygen
();
exit
(
0
);
exit
(
0
);
}
}
...
@@ -7370,8 +7418,6 @@ void readConfiguration(int argc, char **argv)
...
@@ -7370,8 +7418,6 @@ void readConfiguration(int argc, char **argv)
void
parseInput
()
void
parseInput
()
{
{
Doxygen
::
classSDict
.
setAutoDelete
(
TRUE
);
Doxygen
::
inputNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
inputNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
includeNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
includeNameDict
=
new
FileNameDict
(
10007
);
Doxygen
::
exampleNameDict
=
new
FileNameDict
(
1009
);
Doxygen
::
exampleNameDict
=
new
FileNameDict
(
1009
);
...
@@ -7602,6 +7648,8 @@ void parseInput()
...
@@ -7602,6 +7648,8 @@ void parseInput()
if
(
input
.
isEmpty
())
if
(
input
.
isEmpty
())
{
{
err
(
"No input read, no output generated!
\n
"
);
err
(
"No input read, no output generated!
\n
"
);
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
else
else
...
@@ -7628,6 +7676,8 @@ void parseInput()
...
@@ -7628,6 +7676,8 @@ void parseInput()
{
{
err
(
"Error: tag OUTPUT_DIRECTORY: Output directory `%s' does not "
err
(
"Error: tag OUTPUT_DIRECTORY: Output directory `%s' does not "
"exist and cannot be created
\n
"
,
outputDirectory
.
data
());
"exist and cannot be created
\n
"
,
outputDirectory
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
else
if
(
!
Config_getBool
(
"QUIET"
))
else
if
(
!
Config_getBool
(
"QUIET"
))
...
@@ -7654,6 +7704,8 @@ void parseInput()
...
@@ -7654,6 +7704,8 @@ void parseInput()
if
(
generateHtml
&&
!
htmlDir
.
exists
()
&&
!
htmlDir
.
mkdir
(
htmlOutput
))
if
(
generateHtml
&&
!
htmlDir
.
exists
()
&&
!
htmlDir
.
mkdir
(
htmlOutput
))
{
{
err
(
"Could not create output directory %s
\n
"
,
htmlOutput
.
data
());
err
(
"Could not create output directory %s
\n
"
,
htmlOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7671,6 +7723,8 @@ void parseInput()
...
@@ -7671,6 +7723,8 @@ void parseInput()
if
(
generateLatex
&&
!
latexDir
.
exists
()
&&
!
latexDir
.
mkdir
(
latexOutput
))
if
(
generateLatex
&&
!
latexDir
.
exists
()
&&
!
latexDir
.
mkdir
(
latexOutput
))
{
{
err
(
"Could not create output directory %s
\n
"
,
latexOutput
.
data
());
err
(
"Could not create output directory %s
\n
"
,
latexOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7688,6 +7742,8 @@ void parseInput()
...
@@ -7688,6 +7742,8 @@ void parseInput()
if
(
generateRtf
&&
!
rtfDir
.
exists
()
&&
!
rtfDir
.
mkdir
(
rtfOutput
))
if
(
generateRtf
&&
!
rtfDir
.
exists
()
&&
!
rtfDir
.
mkdir
(
rtfOutput
))
{
{
err
(
"Could not create output directory %s
\n
"
,
rtfOutput
.
data
());
err
(
"Could not create output directory %s
\n
"
,
rtfOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7705,6 +7761,8 @@ void parseInput()
...
@@ -7705,6 +7761,8 @@ void parseInput()
if
(
generateMan
&&
!
manDir
.
exists
()
&&
!
manDir
.
mkdir
(
manOutput
))
if
(
generateMan
&&
!
manDir
.
exists
()
&&
!
manDir
.
mkdir
(
manOutput
))
{
{
err
(
"Could not create output directory %s
\n
"
,
manOutput
.
data
());
err
(
"Could not create output directory %s
\n
"
,
manOutput
.
data
());
delete
root
;
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
...
@@ -7855,6 +7913,7 @@ void generateOutput()
...
@@ -7855,6 +7913,7 @@ void generateOutput()
* Initialize output generators *
* Initialize output generators *
**************************************************************************/
**************************************************************************/
outputList
=
new
OutputList
(
TRUE
);
outputList
=
new
OutputList
(
TRUE
);
if
(
Config_getBool
(
"GENERATE_HTML"
))
if
(
Config_getBool
(
"GENERATE_HTML"
))
{
{
...
@@ -7894,6 +7953,7 @@ void generateOutput()
...
@@ -7894,6 +7953,7 @@ void generateOutput()
err
(
"Error: cannot open tag file %s for writing
\n
"
,
err
(
"Error: cannot open tag file %s for writing
\n
"
,
generateTagFile
.
data
()
generateTagFile
.
data
()
);
);
cleanUpDoxygen
();
exit
(
1
);
exit
(
1
);
}
}
Doxygen
::
tagFile
.
setDevice
(
tag
);
Doxygen
::
tagFile
.
setDevice
(
tag
);
...
@@ -8069,5 +8129,6 @@ void generateOutput()
...
@@ -8069,5 +8129,6 @@ void generateOutput()
}
}
QDir
::
setCurrent
(
oldDir
);
QDir
::
setCurrent
(
oldDir
);
}
}
cleanUpDoxygen
();
}
}
src/doxygen.h
View file @
f781e6db
...
@@ -88,8 +88,6 @@ class Doxygen
...
@@ -88,8 +88,6 @@ class Doxygen
static
StringDict
tagDestinationDict
;
static
StringDict
tagDestinationDict
;
static
StringDict
aliasDict
;
static
StringDict
aliasDict
;
static
QIntDict
<
MemberGroupInfo
>
memGrpInfoDict
;
static
QIntDict
<
MemberGroupInfo
>
memGrpInfoDict
;
//static QIntDict<QCString> memberHeaderDict; // dictionary of the member groups heading
//static QIntDict<QCString> memberDocDict; // dictionary of the member groups heading
static
QDict
<
void
>
expandAsDefinedDict
;
static
QDict
<
void
>
expandAsDefinedDict
;
static
NamespaceDef
*
globalScope
;
static
NamespaceDef
*
globalScope
;
static
QDict
<
RefList
>
*
specialLists
;
// array of special lists: todo, test, bug, deprecated ...
static
QDict
<
RefList
>
*
specialLists
;
// array of special lists: todo, test, bug, deprecated ...
...
...
src/entry.h
View file @
f781e6db
...
@@ -103,7 +103,7 @@ class ArgumentList : public QList<Argument>
...
@@ -103,7 +103,7 @@ class ArgumentList : public QList<Argument>
ArgumentList
()
:
QList
<
Argument
>
(),
ArgumentList
()
:
QList
<
Argument
>
(),
constSpecifier
(
FALSE
),
constSpecifier
(
FALSE
),
volatileSpecifier
(
FALSE
),
volatileSpecifier
(
FALSE
),
pureSpecifier
(
FALSE
)
{}
pureSpecifier
(
FALSE
)
{
setAutoDelete
(
TRUE
);
}
/*! Destroys the argument list */
/*! Destroys the argument list */
~
ArgumentList
()
{}
~
ArgumentList
()
{}
bool
hasDocumentation
()
const
;
bool
hasDocumentation
()
const
;
...
...
src/filedef.cpp
View file @
f781e6db
...
@@ -73,6 +73,8 @@ FileDef::~FileDef()
...
@@ -73,6 +73,8 @@ FileDef::~FileDef()
delete
classSDict
;
delete
classSDict
;
delete
includeDict
;
delete
includeDict
;
delete
includeList
;
delete
includeList
;
delete
includedByDict
;
delete
includedByList
;
delete
namespaceSDict
;
delete
namespaceSDict
;
delete
srcDefDict
;
delete
srcDefDict
;
delete
srcMemberDict
;
delete
srcMemberDict
;
...
...
src/filename.cpp
View file @
f781e6db
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
FileName
::
FileName
(
const
char
*
fn
,
const
char
*
n
)
:
FileList
()
FileName
::
FileName
(
const
char
*
fn
,
const
char
*
n
)
:
FileList
()
{
{
setAutoDelete
(
TRUE
);
fName
=
fn
;
fName
=
fn
;
name
=
n
;
name
=
n
;
}
}
...
...
src/index.cpp
View file @
f781e6db
...
@@ -1399,7 +1399,7 @@ void writeAlphabeticalClassList(OutputList &ol)
...
@@ -1399,7 +1399,7 @@ void writeAlphabeticalClassList(OutputList &ol)
{
{
QCString
namesp
;
QCString
namesp
;
if
(
cd
->
getNamespaceDef
())
namesp
=
cd
->
getNamespaceDef
()
->
displayName
();
if
(
cd
->
getNamespaceDef
())
namesp
=
cd
->
getNamespaceDef
()
->
displayName
();
QCString
cname
=
cd
->
display
Name
();
QCString
cname
=
cd
->
class
Name
();
ol
.
writeObjectLink
(
cd
->
getReference
(),
ol
.
writeObjectLink
(
cd
->
getReference
(),
cd
->
getOutputFileBase
(),
0
,
cname
);
cd
->
getOutputFileBase
(),
0
,
cname
);
...
...
src/instdox.cpp
View file @
f781e6db
...
@@ -127,7 +127,7 @@ void writeInstallScript()
...
@@ -127,7 +127,7 @@ void writeInstallScript()
t
<<
"}
\n
"
;
t
<<
"}
\n
"
;
t
<<
"
\n
"
;
t
<<
"
\n
"
;
t
<<
"if ( ! @files ) {
\n
"
;
t
<<
"if ( ! @files ) {
\n
"
;
t
<<
" print STDERR
\"
Warning: No input files given and non found!
\\
n
\"
;
\n
"
;
t
<<
" print STDERR
\"
Warning: No input files given and non
e
found!
\\
n
\"
;
\n
"
;
t
<<
"}
\n
"
;
t
<<
"}
\n
"
;
t
<<
"
\n
"
;
t
<<
"
\n
"
;
t
<<
"foreach $f (@files)
\n
"
;
t
<<
"foreach $f (@files)
\n
"
;
...
...
src/membername.cpp
View file @
f781e6db
...
@@ -23,6 +23,7 @@
...
@@ -23,6 +23,7 @@
MemberName
::
MemberName
(
const
char
*
n
)
:
QList
<
MemberDef
>
()
MemberName
::
MemberName
(
const
char
*
n
)
:
QList
<
MemberDef
>
()
{
{
name
=
n
;
name
=
n
;
setAutoDelete
(
TRUE
);
}
}
MemberName
::~
MemberName
()
MemberName
::~
MemberName
()
...
...
src/page.h
View file @
f781e6db
...
@@ -115,7 +115,7 @@ class PageSDict : public SDict<PageInfo>
...
@@ -115,7 +115,7 @@ class PageSDict : public SDict<PageInfo>
{
{
public
:
public
:
PageSDict
(
int
size
)
:
SDict
<
PageInfo
>
(
size
)
{}
PageSDict
(
int
size
)
:
SDict
<
PageInfo
>
(
size
)
{}
~
PageSDict
()
{}
virtual
~
PageSDict
()
{}
int
compareItems
(
GCI
i1
,
GCI
i2
)
int
compareItems
(
GCI
i1
,
GCI
i2
)
{
{
return
stricmp
(((
PageInfo
*
)
i1
)
->
name
,((
PageInfo
*
)
i2
)
->
name
);
return
stricmp
(((
PageInfo
*
)
i1
)
->
name
,((
PageInfo
*
)
i2
)
->
name
);
...
...
src/pngenc.cpp
View file @
f781e6db
...
@@ -106,6 +106,7 @@ void PngEncoder::write(const char *name)
...
@@ -106,6 +106,7 @@ void PngEncoder::write(const char *name)
PNG_COLOR_TYPE_PALETTE
,
PNG_INTERLACE_NONE
,
PNG_COLOR_TYPE_PALETTE
,
PNG_INTERLACE_NONE
,
PNG_COMPRESSION_TYPE_BASE
,
PNG_FILTER_TYPE_BASE
PNG_COMPRESSION_TYPE_BASE
,
PNG_FILTER_TYPE_BASE
);
);
free
(
png_palette
);
ti
[
0
]
=
transIndex
;
ti
[
0
]
=
transIndex
;
png_set_tRNS
(
png_ptr
,
info_ptr
,
ti
,
1
,
NULL
);
png_set_tRNS
(
png_ptr
,
info_ptr
,
ti
,
1
,
NULL
);
rows
=
(
unsigned
char
**
)
calloc
(
sizeof
(
unsigned
char
*
),
height
);
rows
=
(
unsigned
char
**
)
calloc
(
sizeof
(
unsigned
char
*
),
height
);
...
...
src/pre.h
View file @
f781e6db
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
class
BufStr
;
class
BufStr
;
void
initPreprocessor
();
void
initPreprocessor
();
void
cleanUpPreprocessor
();
void
addSearchDir
(
const
char
*
dir
);
void
addSearchDir
(
const
char
*
dir
);
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
);
void
preprocessFile
(
const
char
*
fileName
,
BufStr
&
output
);
...
...
src/pre.l
View file @
f781e6db
...
@@ -1919,7 +1919,7 @@ void initPreprocessor()
...
@@ -1919,7 +1919,7 @@ void initPreprocessor()
g_fileDefineDict = new DefineDict(1009);
g_fileDefineDict = new DefineDict(1009);
}
}
void clean
u
pPreprocessor()
void clean
U
pPreprocessor()
{
{
//delete fileDefineCache;
//delete fileDefineCache;
delete g_fileDefineDict; g_fileDefineDict=0;
delete g_fileDefineDict; g_fileDefineDict=0;
...
...
src/scanner.l
View file @
f781e6db
...
@@ -2733,6 +2733,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -2733,6 +2733,13 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
lastCContext = YY_START;
lastCContext = YY_START;
BEGIN(SkipCxxComment);
BEGIN(SkipCxxComment);
}
}
<SkipInits>; {
warn(yyFileName,yyLineNr,
"Warning: Found ';' while parsing initializer list! "
"(doxygen could be confused by a macro call without semicolon)"
);
BEGIN( FindMembers );
}
<SkipInits,SkipCurly,SkipCurlyCpp>. {
<SkipInits,SkipCurly,SkipCurlyCpp>. {
//addToBody(yytext);
//addToBody(yytext);
}
}
...
...
src/sortdict.h
View file @
f781e6db
...
@@ -74,7 +74,7 @@ class SList : public QList<T>
...
@@ -74,7 +74,7 @@ class SList : public QList<T>
{
{
public
:
public
:
SList
(
SDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
SList
(
SDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
~
SList
()
{}
virtual
~
SList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
{
return
m_owner
->
compareItems
(
item1
,
item2
);
return
m_owner
->
compareItems
(
item1
,
item2
);
...
@@ -280,7 +280,7 @@ class SIntList : public QList<T>
...
@@ -280,7 +280,7 @@ class SIntList : public QList<T>
{
{
public
:
public
:
SIntList
(
SIntDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
SIntList
(
SIntDict
<
T
>
*
owner
)
:
m_owner
(
owner
)
{}
~
SIntList
()
{}
virtual
~
SIntList
()
{}
int
compareItems
(
GCI
item1
,
GCI
item2
)
int
compareItems
(
GCI
item1
,
GCI
item2
)
{
{
return
m_owner
->
compareItems
(
item1
,
item2
);
return
m_owner
->
compareItems
(
item1
,
item2
);
...
...
src/tagreader.cpp
View file @
f781e6db
...
@@ -186,6 +186,8 @@ class TagFileParser : public QXmlDefaultHandler
...
@@ -186,6 +186,8 @@ class TagFileParser : public QXmlDefaultHandler
m_endElementHandlers
(
17
),
m_endElementHandlers
(
17
),
m_tagName
(
tagName
)
m_tagName
(
tagName
)
{
{
m_startElementHandlers
.
setAutoDelete
(
TRUE
);
m_endElementHandlers
.
setAutoDelete
(
TRUE
);
}
}
void
startCompound
(
const
QXmlAttributes
&
attrib
)
void
startCompound
(
const
QXmlAttributes
&
attrib
)
...
@@ -305,7 +307,8 @@ class TagFileParser : public QXmlDefaultHandler
...
@@ -305,7 +307,8 @@ class TagFileParser : public QXmlDefaultHandler
void
endMember
()
void
endMember
()
{
{
m_state
=
*
m_stateStack
.
pop
();
m_state
=
*
m_stateStack
.
top
();
m_stateStack
.
remove
();
switch
(
m_state
)
switch
(
m_state
)
{
{
case
InClass
:
m_curClass
->
members
.
append
(
m_curMember
);
break
;
case
InClass
:
m_curClass
->
members
.
append
(
m_curMember
);
break
;
...
@@ -884,6 +887,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
...
@@ -884,6 +887,7 @@ void TagFileParser::buildMemberList(Entry *ce,QList<TagMemberInfo> &members)
me
->
args
=
tmi
->
arglist
;
me
->
args
=
tmi
->
arglist
;
if
(
!
me
->
args
.
isEmpty
())
if
(
!
me
->
args
.
isEmpty
())
{
{
delete
me
->
argList
;
me
->
argList
=
new
ArgumentList
;
me
->
argList
=
new
ArgumentList
;
stringToArgumentList
(
me
->
args
,
me
->
argList
);
stringToArgumentList
(
me
->
args
,
me
->
argList
);
}
}
...
@@ -1006,11 +1010,16 @@ void TagFileParser::buildLists(Entry *root)
...
@@ -1006,11 +1010,16 @@ void TagFileParser::buildLists(Entry *root)
// transfer base class list
// transfer base class list
if
(
tci
->
bases
)
if
(
tci
->
bases
)
{
{
delete
ce
->
extends
;
ce
->
extends
=
tci
->
bases
;
tci
->
bases
=
0
;
ce
->
extends
=
tci
->
bases
;
tci
->
bases
=
0
;
}
}
if
(
tci
->
templateArguments
)
if
(
tci
->
templateArguments
)
{
{
if
(
ce
->
tArgLists
==
0
)
ce
->
tArgLists
=
new
QList
<
ArgumentList
>
;
if
(
ce
->
tArgLists
==
0
)
{
ce
->
tArgLists
=
new
QList
<
ArgumentList
>
;
ce
->
tArgLists
->
setAutoDelete
(
TRUE
);
}
ArgumentList
*
al
=
new
ArgumentList
;
ArgumentList
*
al
=
new
ArgumentList
;
ce
->
tArgLists
->
append
(
al
);
ce
->
tArgLists
->
append
(
al
);
...
...
src/treeview.h
View file @
f781e6db
...
@@ -103,13 +103,20 @@
...
@@ -103,13 +103,20 @@
"
\n
"
"
\n
"
"function hideFolder()
\n
"
"function hideFolder()
\n
"
"{
\n
"
"{
\n
"
" if (browserVersion == 1 || browserVersion == 3) {
\n
"
" if (browserVersion == 1 || browserVersion == 3)
\n
"
" {
\n
"
" if (this.navObj.style.display ==
\"
none
\"
)
\n
"
" if (this.navObj.style.display ==
\"
none
\"
)
\n
"
" return
\n
"
" {
\n
"
" return
\n
"
" }
\n
"
" this.navObj.style.display =
\"
none
\"
\n
"
" this.navObj.style.display =
\"
none
\"
\n
"
" } else {
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" if (this.navObj.visibility ==
\"
hidden
\"
)
\n
"
" if (this.navObj.visibility ==
\"
hidden
\"
)
\n
"
" {
\n
"
" return
\n
"
" return
\n
"
" }
\n
"
" this.navObj.visibility =
\"
hidden
\"
\n
"
" this.navObj.visibility =
\"
hidden
\"
\n
"
" }
\n
"
" }
\n
"
"
\n
"
"
\n
"
...
@@ -118,11 +125,11 @@
...
@@ -118,11 +125,11 @@
"
\n
"
"
\n
"
"function initializeFolder(level, lastNode, leftSide)
\n
"
"function initializeFolder(level, lastNode, leftSide)
\n
"
"{
\n
"
"{
\n
"
"var j=0
\n
"
"
var j=0
\n
"
"var i=0
\n
"
"
var i=0
\n
"
"var numberOfFolders
\n
"
"
var numberOfFolders
\n
"
"var numberOfDocs
\n
"
"
var numberOfDocs
\n
"
"var nc
\n
"
"
var nc
\n
"
"
\n
"
"
\n
"
" nc = this.nChildren
\n
"
" nc = this.nChildren
\n
"
"
\n
"
"
\n
"
...
@@ -166,9 +173,12 @@
...
@@ -166,9 +173,12 @@
"
\n
"
"
\n
"
"function drawFolder(leftSide)
\n
"
"function drawFolder(leftSide)
\n
"
"{
\n
"
"{
\n
"
" if (browserVersion == 2) {
\n
"
" if (browserVersion == 2)
\n
"
" if (!doc.yPos)
\n
"
" {
\n
"
" if (!doc.yPos)
\n
"
" {
\n
"
" doc.yPos=8
\n
"
" doc.yPos=8
\n
"
" }
\n
"
" doc.write(
\"
<layer id='folder
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" doc.write(
\"
<layer id='folder
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" }
\n
"
" }
\n
"
" if (browserVersion == 3)
\n
"
" if (browserVersion == 3)
\n
"
...
@@ -178,7 +188,9 @@
...
@@ -178,7 +188,9 @@
"
\n
"
"
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" if (browserVersion == 1)
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" doc.write(
\"
id='folder
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" doc.write(
\"
id='folder
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" }
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\"
)
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\"
)
\n
"
" doc.write(
\"\\
n<tr><td>
\"
)
\n
"
" doc.write(
\"\\
n<tr><td>
\"
)
\n
"
" doc.write(leftSide)
\n
"
" doc.write(leftSide)
\n
"
...
@@ -192,7 +204,9 @@
...
@@ -192,7 +204,9 @@
" doc.write(this.desc +
\"
</a>
\"
)
\n
"
" doc.write(this.desc +
\"
</a>
\"
)
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" doc.write(this.desc)
\n
"
" doc.write(this.desc)
\n
"
" }
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" {
\n
"
" {
\n
"
" doc.write(
\"
[external]
\"
)
\n
"
" doc.write(
\"
[external]
\"
)
\n
"
...
@@ -200,23 +214,30 @@
...
@@ -200,23 +214,30 @@
" doc.write(
\"
</td>
\"
)
\n
"
" doc.write(
\"
</td>
\"
)
\n
"
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
"
\n
"
"
\n
"
" if (browserVersion == 2) {
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" }
\n
"
" }
\n
"
" if (browserVersion == 3) {
\n
"
" if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" }
\n
"
" }
\n
"
"
\n
"
"
\n
"
" if (browserVersion == 1) {
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" this.navObj = doc.all[
\"
folder
\"
+this.id]
\n
"
" this.navObj = doc.all[
\"
folder
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
folderIcon
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
folderIcon
\"
+this.id]
\n
"
" this.nodeImg = doc.all[
\"
nodeIcon
\"
+this.id]
\n
"
" this.nodeImg = doc.all[
\"
nodeIcon
\"
+this.id]
\n
"
" } else if (browserVersion == 2) {
\n
"
" }
\n
"
" else if (browserVersion == 2)
\n
"
" {
\n
"
" this.navObj = doc.layers[
\"
folder
\"
+this.id]
\n
"
" this.navObj = doc.layers[
\"
folder
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
folderIcon
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
folderIcon
\"
+this.id]
\n
"
" this.nodeImg = this.navObj.document.images[
\"
nodeIcon
\"
+this.id]
\n
"
" this.nodeImg = this.navObj.document.images[
\"
nodeIcon
\"
+this.id]
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" } else if (browserVersion == 3) {
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" this.navObj = doc.getElementById(
\"
folder
\"
+this.id)
\n
"
" this.navObj = doc.getElementById(
\"
folder
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
folderIcon
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
folderIcon
\"
+this.id)
\n
"
" this.nodeImg = doc.images.namedItem(
\"
nodeIcon
\"
+this.id)
\n
"
" this.nodeImg = doc.images.namedItem(
\"
nodeIcon
\"
+this.id)
\n
"
...
@@ -303,6 +324,7 @@
...
@@ -303,6 +324,7 @@
" this.createIndex()
\n
"
" this.createIndex()
\n
"
"
\n
"
"
\n
"
" if (level>0)
\n
"
" if (level>0)
\n
"
" {
\n
"
" if (lastNode) //the last 'brother' in the children array
\n
"
" if (lastNode) //the last 'brother' in the children array
\n
"
" {
\n
"
" {
\n
"
" this.renderOb(leftSide +
\"
<img src='ftv2lastnode.png' width=16 height=22>
\"
)
\n
"
" this.renderOb(leftSide +
\"
<img src='ftv2lastnode.png' width=16 height=22>
\"
)
\n
"
...
@@ -313,20 +335,29 @@
...
@@ -313,20 +335,29 @@
" this.renderOb(leftSide +
\"
<img src='ftv2node.png' width=16 height=22>
\"
)
\n
"
" this.renderOb(leftSide +
\"
<img src='ftv2node.png' width=16 height=22>
\"
)
\n
"
" leftSide = leftSide +
\"
<img src='ftv2vertline.png' width=16 height=22>
\"
\n
"
" leftSide = leftSide +
\"
<img src='ftv2vertline.png' width=16 height=22>
\"
\n
"
" }
\n
"
" }
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" this.renderOb(
\"\"
)
\n
"
" this.renderOb(
\"\"
)
\n
"
" }
\n
"
"}
\n
"
"}
\n
"
"
\n
"
"
\n
"
"function drawItem(leftSide)
\n
"
"function drawItem(leftSide)
\n
"
"{
\n
"
"{
\n
"
" if (browserVersion == 2)
\n
"
" if (browserVersion == 2)
\n
"
" doc.write(
\"
<layer id='item
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" {
\n
"
" if (browserVersion == 3)
\n
"
" doc.write(
\"
<layer id='item
\"
+ this.id +
\"
' top=
\"
+ doc.yPos +
\"
visibility=hidden>
\"
)
\n
"
" doc.write(
\"
<div id='item
\"
+ this.id +
\"
' style='display:block;'>
\"
)
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
<div id='item
\"
+ this.id +
\"
' style='display:block;'>
\"
)
\n
"
" }
\n
"
"
\n
"
"
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" doc.write(
\"\\
n<table
\"
)
\n
"
" if (browserVersion == 1)
\n
"
" if (browserVersion == 1)
\n
"
" doc.write(
\"
id='item
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" {
\n
"
" doc.write(
\"
id='item
\"
+ this.id +
\"
' style='position:block;'
\"
)
\n
"
" }
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\\
n
\"
)
\n
"
" doc.write(
\"
border=0 cellspacing=0 cellpadding=0>
\\
n
\"
)
\n
"
" doc.write(
\"
<tr><td>
\"
)
\n
"
" doc.write(
\"
<tr><td>
\"
)
\n
"
" doc.write(leftSide)
\n
"
" doc.write(leftSide)
\n
"
...
@@ -342,9 +373,13 @@
...
@@ -342,9 +373,13 @@
" }
\n
"
" }
\n
"
" doc.write(
\"
</td>
\\
n<td valign=middle nowrap>
\"
)
\n
"
" doc.write(
\"
</td>
\\
n<td valign=middle nowrap>
\"
)
\n
"
" if (USETEXTLINKS && this.link!=
\"\"
)
\n
"
" if (USETEXTLINKS && this.link!=
\"\"
)
\n
"
" {
\n
"
" doc.write(
\"
<a href=
\"
+ this.link +
\"
>
\"
+ this.desc +
\"
</a>
\"
)
\n
"
" doc.write(
\"
<a href=
\"
+ this.link +
\"
>
\"
+ this.desc +
\"
</a>
\"
)
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" {
\n
"
" doc.write(this.desc)
\n
"
" doc.write(this.desc)
\n
"
" }
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" if (this.tagName!=
\"\"
)
\n
"
" {
\n
"
" {
\n
"
" doc.write(
\"
[external]
\"
);
\n
"
" doc.write(
\"
[external]
\"
);
\n
"
...
@@ -352,18 +387,27 @@
...
@@ -352,18 +387,27 @@
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
" doc.write(
\"\\
n</table>
\\
n
\"
)
\n
"
"
\n
"
"
\n
"
" if (browserVersion == 2)
\n
"
" if (browserVersion == 2)
\n
"
" {
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" doc.write(
\"
</layer>
\"
)
\n
"
" if (browserVersion == 3)
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" doc.write(
\"
</div>
\"
)
\n
"
" }
\n
"
"
\n
"
"
\n
"
" if (browserVersion == 1) {
\n
"
" if (browserVersion == 1)
\n
"
" {
\n
"
" this.navObj = doc.all[
\"
item
\"
+this.id]
\n
"
" this.navObj = doc.all[
\"
item
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
itemIcon
\"
+this.id]
\n
"
" this.iconImg = doc.all[
\"
itemIcon
\"
+this.id]
\n
"
" } else if (browserVersion == 2) {
\n
"
" }
\n
"
" else if (browserVersion == 2)
\n
"
" {
\n
"
" this.navObj = doc.layers[
\"
item
\"
+this.id]
\n
"
" this.navObj = doc.layers[
\"
item
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
itemIcon
\"
+this.id]
\n
"
" this.iconImg = this.navObj.document.images[
\"
itemIcon
\"
+this.id]
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" doc.yPos=doc.yPos+this.navObj.clip.height
\n
"
" } else if (browserVersion == 3) {
\n
"
" }
\n
"
" else if (browserVersion == 3)
\n
"
" {
\n
"
" this.navObj = doc.getElementById(
\"
item
\"
+this.id)
\n
"
" this.navObj = doc.getElementById(
\"
item
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
itemIcon
\"
+this.id)
\n
"
" this.iconImg = doc.images.namedItem(
\"
itemIcon
\"
+this.id)
\n
"
" }
\n
"
" }
\n
"
...
@@ -376,9 +420,13 @@
...
@@ -376,9 +420,13 @@
"function display()
\n
"
"function display()
\n
"
"{
\n
"
"{
\n
"
" if (browserVersion == 1 || browserVersion == 3)
\n
"
" if (browserVersion == 1 || browserVersion == 3)
\n
"
" {
\n
"
" this.navObj.style.display =
\"
block
\"
\n
"
" this.navObj.style.display =
\"
block
\"
\n
"
" }
\n
"
" else
\n
"
" else
\n
"
" this.navObj.visibility =
\"
show
\"
\n
"
" {
\n
"
" this.navObj.visibility =
\"
show
\"\n
"
" }
\n
"
"}
\n
"
"}
\n
"
"
\n
"
"
\n
"
"function createEntryIndex()
\n
"
"function createEntryIndex()
\n
"
...
@@ -429,18 +477,49 @@
...
@@ -429,18 +477,49 @@
" clickedFolder.setState(!state) //open<->close
\n
"
" clickedFolder.setState(!state) //open<->close
\n
"
"}
\n
"
"}
\n
"
"
\n
"
"
\n
"
"function preLoadIcons()
\n
"
"{
\n
"
" var auxImg
\n
"
" auxImg = new Image();
\n
"
" auxImg.src =
\"
ftv2blank.png
\"
;
\n
"
" auxImg.src =
\"
ftv2doc.png
\"
;
\n
"
" auxImg.src =
\"
ftv2folderclosed.png
\"
;
\n
"
" auxImg.src =
\"
ftv2folderopen.png
\"
;
\n
"
" auxImg.src =
\"
ftv2lastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2link.png
\"
;
\n
"
" auxImg.src =
\"
ftv2mlastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2mnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2node.png
\"
;
\n
"
" auxImg.src =
\"
ftv2plastnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2pnode.png
\"
;
\n
"
" auxImg.src =
\"
ftv2vertline.png
\"
;
\n
"
"}
\n
"
"
\n
"
"function initializeDocument()
\n
"
"function initializeDocument()
\n
"
"{
\n
"
"{
\n
"
" doc = document;
\n
"
" preLoadIcons()
\n
"
" if (doc.all)
\n
"
"
\n
"
" browserVersion = 1 //IE4
\n
"
" var ua = window.navigator.userAgent.toLowerCase();
\n
"
" else
\n
"
" if ((ua.indexOf('msie')!=-1) && (navigator.version>=4))
\n
"
" if (doc.layers)
\n
"
" {
\n
"
" browserVersion = 2 //NS4
\n
"
" browserVersion = 1 // IE >= 4.x
\n
"
" else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1)
\n
"
" }
\n
"
" browserVersion = 3 //mozilla
\n
"
" else if (ua.indexOf('opera')!=-1)
\n
"
" else
\n
"
" {
\n
"
" browserVersion = 0 //other
\n
"
" browserVersion = 3; // Opera
\n
"
" }
\n
"
" else if (ua.indexOf('gecko')!=-1)
\n
"
" {
\n
"
" browserVersion = 3; // NS6 or Mozilla
\n
"
" }
\n
"
" else if (ua.indexOf('mozilla')!=-1)
\n
"
" {
\n
"
" browserVersion = 2; // NS4
\n
"
" }
\n
"
" else
\n
"
" {
\n
"
" browserVersion = 0; // unknown or old browser
\n
"
" }
\n
"
"
\n
"
"
\n
"
" foldersTree.initialize(0, 1,
\"\"
)
\n
"
" foldersTree.initialize(0, 1,
\"\"
)
\n
"
" foldersTree.display()
\n
"
" foldersTree.display()
\n
"
...
@@ -460,6 +539,7 @@
...
@@ -460,6 +539,7 @@
"// Auxiliary Functions for Folder-Treee backward compatibility
\n
"
"// Auxiliary Functions for Folder-Treee backward compatibility
\n
"
"// *********************************************************
\n
"
"// *********************************************************
\n
"
"
\n
"
"
\n
"
"
\n
"
"function gFld(description, tagName, hreference)
\n
"
"function gFld(description, tagName, hreference)
\n
"
"{
\n
"
"{
\n
"
" folder = new Folder(description, tagName, hreference)
\n
"
" folder = new Folder(description, tagName, hreference)
\n
"
...
@@ -492,9 +572,10 @@
...
@@ -492,9 +572,10 @@
"// Global variables
\n
"
"// Global variables
\n
"
"// ****************
\n
"
"// ****************
\n
"
"
\n
"
"
\n
"
"USETEXTLINKS = 1
\n
"
"var USETEXTLINKS = 1
\n
"
"indexOfEntries = new Array
\n
"
"var indexOfEntries = new Array
\n
"
"nEntries = 0
\n
"
"var nEntries = 0
\n
"
"doc = document
\n
"
"var doc = document
\n
"
"browserVersion = 0
\n
"
"var browserVersion = 0
\n
"
"selectedFolder=0
\n
"
"var selectedFolder=0
\n
"
"
\n
"
src/treeview.js
View file @
f781e6db
...
@@ -103,13 +103,20 @@ function propagateChangesInState(folder)
...
@@ -103,13 +103,20 @@ function propagateChangesInState(folder)
function
hideFolder
()
function
hideFolder
()
{
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
if
(
this
.
navObj
.
style
.
display
==
"none"
)
if
(
this
.
navObj
.
style
.
display
==
"none"
)
{
return
return
}
this
.
navObj
.
style
.
display
=
"none"
this
.
navObj
.
style
.
display
=
"none"
}
else
{
}
else
{
if
(
this
.
navObj
.
visibility
==
"hidden"
)
if
(
this
.
navObj
.
visibility
==
"hidden"
)
{
return
return
}
this
.
navObj
.
visibility
=
"hidden"
this
.
navObj
.
visibility
=
"hidden"
}
}
...
@@ -118,11 +125,11 @@ function hideFolder()
...
@@ -118,11 +125,11 @@ function hideFolder()
function
initializeFolder
(
level
,
lastNode
,
leftSide
)
function
initializeFolder
(
level
,
lastNode
,
leftSide
)
{
{
var
j
=
0
var
j
=
0
var
i
=
0
var
i
=
0
var
numberOfFolders
var
numberOfFolders
var
numberOfDocs
var
numberOfDocs
var
nc
var
nc
nc
=
this
.
nChildren
nc
=
this
.
nChildren
...
@@ -166,9 +173,12 @@ var nc
...
@@ -166,9 +173,12 @@ var nc
function
drawFolder
(
leftSide
)
function
drawFolder
(
leftSide
)
{
{
if
(
browserVersion
==
2
)
{
if
(
browserVersion
==
2
)
{
if
(
!
doc
.
yPos
)
if
(
!
doc
.
yPos
)
{
doc
.
yPos
=
8
doc
.
yPos
=
8
}
doc
.
write
(
"<layer id='folder"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
doc
.
write
(
"<layer id='folder"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
}
}
if
(
browserVersion
==
3
)
if
(
browserVersion
==
3
)
...
@@ -178,7 +188,9 @@ function drawFolder(leftSide)
...
@@ -178,7 +188,9 @@ function drawFolder(leftSide)
doc
.
write
(
"
\n
<table "
)
doc
.
write
(
"
\n
<table "
)
if
(
browserVersion
==
1
)
if
(
browserVersion
==
1
)
{
doc
.
write
(
" id='folder"
+
this
.
id
+
"' style='position:block;' "
)
doc
.
write
(
" id='folder"
+
this
.
id
+
"' style='position:block;' "
)
}
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>"
)
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>"
)
doc
.
write
(
"
\n
<tr><td>"
)
doc
.
write
(
"
\n
<tr><td>"
)
doc
.
write
(
leftSide
)
doc
.
write
(
leftSide
)
...
@@ -192,7 +204,9 @@ function drawFolder(leftSide)
...
@@ -192,7 +204,9 @@ function drawFolder(leftSide)
doc
.
write
(
this
.
desc
+
"</a>"
)
doc
.
write
(
this
.
desc
+
"</a>"
)
}
}
else
else
{
doc
.
write
(
this
.
desc
)
doc
.
write
(
this
.
desc
)
}
if
(
this
.
tagName
!=
""
)
if
(
this
.
tagName
!=
""
)
{
{
doc
.
write
(
" [external]"
)
doc
.
write
(
" [external]"
)
...
@@ -200,23 +214,30 @@ function drawFolder(leftSide)
...
@@ -200,23 +214,30 @@ function drawFolder(leftSide)
doc
.
write
(
"</td>"
)
doc
.
write
(
"</td>"
)
doc
.
write
(
"
\n
</table>
\n
"
)
doc
.
write
(
"
\n
</table>
\n
"
)
if
(
browserVersion
==
2
)
{
if
(
browserVersion
==
2
)
{
doc
.
write
(
"</layer>"
)
doc
.
write
(
"</layer>"
)
}
}
if
(
browserVersion
==
3
)
{
if
(
browserVersion
==
3
)
{
doc
.
write
(
"</div>"
)
doc
.
write
(
"</div>"
)
}
}
if
(
browserVersion
==
1
)
{
if
(
browserVersion
==
1
)
{
this
.
navObj
=
doc
.
all
[
"folder"
+
this
.
id
]
this
.
navObj
=
doc
.
all
[
"folder"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"folderIcon"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"folderIcon"
+
this
.
id
]
this
.
nodeImg
=
doc
.
all
[
"nodeIcon"
+
this
.
id
]
this
.
nodeImg
=
doc
.
all
[
"nodeIcon"
+
this
.
id
]
}
else
if
(
browserVersion
==
2
)
{
}
else
if
(
browserVersion
==
2
)
{
this
.
navObj
=
doc
.
layers
[
"folder"
+
this
.
id
]
this
.
navObj
=
doc
.
layers
[
"folder"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"folderIcon"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"folderIcon"
+
this
.
id
]
this
.
nodeImg
=
this
.
navObj
.
document
.
images
[
"nodeIcon"
+
this
.
id
]
this
.
nodeImg
=
this
.
navObj
.
document
.
images
[
"nodeIcon"
+
this
.
id
]
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
}
else
if
(
browserVersion
==
3
)
{
}
else
if
(
browserVersion
==
3
)
{
this
.
navObj
=
doc
.
getElementById
(
"folder"
+
this
.
id
)
this
.
navObj
=
doc
.
getElementById
(
"folder"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"folderIcon"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"folderIcon"
+
this
.
id
)
this
.
nodeImg
=
doc
.
images
.
namedItem
(
"nodeIcon"
+
this
.
id
)
this
.
nodeImg
=
doc
.
images
.
namedItem
(
"nodeIcon"
+
this
.
id
)
...
@@ -303,6 +324,7 @@ function initializeItem(level, lastNode, leftSide)
...
@@ -303,6 +324,7 @@ function initializeItem(level, lastNode, leftSide)
this
.
createIndex
()
this
.
createIndex
()
if
(
level
>
0
)
if
(
level
>
0
)
{
if
(
lastNode
)
//the last 'brother' in the children array
if
(
lastNode
)
//the last 'brother' in the children array
{
{
this
.
renderOb
(
leftSide
+
"<img src='ftv2lastnode.png' width=16 height=22>"
)
this
.
renderOb
(
leftSide
+
"<img src='ftv2lastnode.png' width=16 height=22>"
)
...
@@ -313,20 +335,29 @@ function initializeItem(level, lastNode, leftSide)
...
@@ -313,20 +335,29 @@ function initializeItem(level, lastNode, leftSide)
this
.
renderOb
(
leftSide
+
"<img src='ftv2node.png' width=16 height=22>"
)
this
.
renderOb
(
leftSide
+
"<img src='ftv2node.png' width=16 height=22>"
)
leftSide
=
leftSide
+
"<img src='ftv2vertline.png' width=16 height=22>"
leftSide
=
leftSide
+
"<img src='ftv2vertline.png' width=16 height=22>"
}
}
}
else
else
{
this
.
renderOb
(
""
)
this
.
renderOb
(
""
)
}
}
}
function
drawItem
(
leftSide
)
function
drawItem
(
leftSide
)
{
{
if
(
browserVersion
==
2
)
if
(
browserVersion
==
2
)
{
doc
.
write
(
"<layer id='item"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
doc
.
write
(
"<layer id='item"
+
this
.
id
+
"' top="
+
doc
.
yPos
+
" visibility=hidden>"
)
if
(
browserVersion
==
3
)
}
else
if
(
browserVersion
==
3
)
{
doc
.
write
(
"<div id='item"
+
this
.
id
+
"' style='display:block;'>"
)
doc
.
write
(
"<div id='item"
+
this
.
id
+
"' style='display:block;'>"
)
}
doc
.
write
(
"
\n
<table "
)
doc
.
write
(
"
\n
<table "
)
if
(
browserVersion
==
1
)
if
(
browserVersion
==
1
)
{
doc
.
write
(
" id='item"
+
this
.
id
+
"' style='position:block;' "
)
doc
.
write
(
" id='item"
+
this
.
id
+
"' style='position:block;' "
)
}
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>
\n
"
)
doc
.
write
(
" border=0 cellspacing=0 cellpadding=0>
\n
"
)
doc
.
write
(
"<tr><td>"
)
doc
.
write
(
"<tr><td>"
)
doc
.
write
(
leftSide
)
doc
.
write
(
leftSide
)
...
@@ -342,9 +373,13 @@ function drawItem(leftSide)
...
@@ -342,9 +373,13 @@ function drawItem(leftSide)
}
}
doc
.
write
(
"</td>
\n
<td valign=middle nowrap>"
)
doc
.
write
(
"</td>
\n
<td valign=middle nowrap>"
)
if
(
USETEXTLINKS
&&
this
.
link
!=
""
)
if
(
USETEXTLINKS
&&
this
.
link
!=
""
)
{
doc
.
write
(
"<a href="
+
this
.
link
+
">"
+
this
.
desc
+
"</a>"
)
doc
.
write
(
"<a href="
+
this
.
link
+
">"
+
this
.
desc
+
"</a>"
)
}
else
else
{
doc
.
write
(
this
.
desc
)
doc
.
write
(
this
.
desc
)
}
if
(
this
.
tagName
!=
""
)
if
(
this
.
tagName
!=
""
)
{
{
doc
.
write
(
" [external]"
);
doc
.
write
(
" [external]"
);
...
@@ -352,18 +387,27 @@ function drawItem(leftSide)
...
@@ -352,18 +387,27 @@ function drawItem(leftSide)
doc
.
write
(
"
\n
</table>
\n
"
)
doc
.
write
(
"
\n
</table>
\n
"
)
if
(
browserVersion
==
2
)
if
(
browserVersion
==
2
)
{
doc
.
write
(
"</layer>"
)
doc
.
write
(
"</layer>"
)
if
(
browserVersion
==
3
)
}
else
if
(
browserVersion
==
3
)
{
doc
.
write
(
"</div>"
)
doc
.
write
(
"</div>"
)
}
if
(
browserVersion
==
1
)
{
if
(
browserVersion
==
1
)
{
this
.
navObj
=
doc
.
all
[
"item"
+
this
.
id
]
this
.
navObj
=
doc
.
all
[
"item"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"itemIcon"
+
this
.
id
]
this
.
iconImg
=
doc
.
all
[
"itemIcon"
+
this
.
id
]
}
else
if
(
browserVersion
==
2
)
{
}
else
if
(
browserVersion
==
2
)
{
this
.
navObj
=
doc
.
layers
[
"item"
+
this
.
id
]
this
.
navObj
=
doc
.
layers
[
"item"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"itemIcon"
+
this
.
id
]
this
.
iconImg
=
this
.
navObj
.
document
.
images
[
"itemIcon"
+
this
.
id
]
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
doc
.
yPos
=
doc
.
yPos
+
this
.
navObj
.
clip
.
height
}
else
if
(
browserVersion
==
3
)
{
}
else
if
(
browserVersion
==
3
)
{
this
.
navObj
=
doc
.
getElementById
(
"item"
+
this
.
id
)
this
.
navObj
=
doc
.
getElementById
(
"item"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"itemIcon"
+
this
.
id
)
this
.
iconImg
=
doc
.
images
.
namedItem
(
"itemIcon"
+
this
.
id
)
}
}
...
@@ -376,9 +420,13 @@ function drawItem(leftSide)
...
@@ -376,9 +420,13 @@ function drawItem(leftSide)
function
display
()
function
display
()
{
{
if
(
browserVersion
==
1
||
browserVersion
==
3
)
if
(
browserVersion
==
1
||
browserVersion
==
3
)
{
this
.
navObj
.
style
.
display
=
"block"
this
.
navObj
.
style
.
display
=
"block"
}
else
else
{
this
.
navObj
.
visibility
=
"show"
this
.
navObj
.
visibility
=
"show"
}
}
}
function
createEntryIndex
()
function
createEntryIndex
()
...
@@ -429,18 +477,49 @@ function clickOnNode(folderId)
...
@@ -429,18 +477,49 @@ function clickOnNode(folderId)
clickedFolder
.
setState
(
!
state
)
//open<->close
clickedFolder
.
setState
(
!
state
)
//open<->close
}
}
function
preLoadIcons
()
{
var
auxImg
auxImg
=
new
Image
();
auxImg
.
src
=
"ftv2blank.png"
;
auxImg
.
src
=
"ftv2doc.png"
;
auxImg
.
src
=
"ftv2folderclosed.png"
;
auxImg
.
src
=
"ftv2folderopen.png"
;
auxImg
.
src
=
"ftv2lastnode.png"
;
auxImg
.
src
=
"ftv2link.png"
;
auxImg
.
src
=
"ftv2mlastnode.png"
;
auxImg
.
src
=
"ftv2mnode.png"
;
auxImg
.
src
=
"ftv2node.png"
;
auxImg
.
src
=
"ftv2plastnode.png"
;
auxImg
.
src
=
"ftv2pnode.png"
;
auxImg
.
src
=
"ftv2vertline.png"
;
}
function
initializeDocument
()
function
initializeDocument
()
{
{
doc
=
document
;
preLoadIcons
()
if
(
doc
.
all
)
browserVersion
=
1
//IE4
var
ua
=
window
.
navigator
.
userAgent
.
toLowerCase
();
else
if
((
ua
.
indexOf
(
'msie'
)
!=-
1
)
&&
(
navigator
.
version
>=
4
))
if
(
doc
.
layers
)
{
browserVersion
=
2
//NS4
browserVersion
=
1
// IE >= 4.x
else
if
(
navigator
.
userAgent
.
toLowerCase
().
indexOf
(
'gecko'
)
!=
-
1
)
}
browserVersion
=
3
//mozilla
else
if
(
ua
.
indexOf
(
'opera'
)
!=-
1
)
{
browserVersion
=
3
;
// Opera
}
else
if
(
ua
.
indexOf
(
'gecko'
)
!=-
1
)
{
browserVersion
=
3
;
// NS6 or Mozilla
}
else
if
(
ua
.
indexOf
(
'mozilla'
)
!=-
1
)
{
browserVersion
=
2
;
// NS4
}
else
else
browserVersion
=
0
//other
{
browserVersion
=
0
;
// unknown or old browser
}
foldersTree
.
initialize
(
0
,
1
,
""
)
foldersTree
.
initialize
(
0
,
1
,
""
)
foldersTree
.
display
()
foldersTree
.
display
()
...
@@ -460,6 +539,7 @@ function initializeDocument()
...
@@ -460,6 +539,7 @@ function initializeDocument()
// Auxiliary Functions for Folder-Treee backward compatibility
// Auxiliary Functions for Folder-Treee backward compatibility
// *********************************************************
// *********************************************************
function
gFld
(
description
,
tagName
,
hreference
)
function
gFld
(
description
,
tagName
,
hreference
)
{
{
folder
=
new
Folder
(
description
,
tagName
,
hreference
)
folder
=
new
Folder
(
description
,
tagName
,
hreference
)
...
@@ -492,9 +572,10 @@ function insDoc(parentFolder, document)
...
@@ -492,9 +572,10 @@ function insDoc(parentFolder, document)
// Global variables
// Global variables
// ****************
// ****************
USETEXTLINKS
=
1
var
USETEXTLINKS
=
1
indexOfEntries
=
new
Array
var
indexOfEntries
=
new
Array
nEntries
=
0
var
nEntries
=
0
doc
=
document
var
doc
=
document
browserVersion
=
0
var
browserVersion
=
0
selectedFolder
=
0
var
selectedFolder
=
0
src/util.cpp
View file @
f781e6db
...
@@ -766,6 +766,9 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
...
@@ -766,6 +766,9 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
// );
// );
// check if `word' is a documented class name
// check if `word' is a documented class name
if
(
!
word
.
isEmpty
()
&&
if
(
!
word
.
isEmpty
()
&&
!
(
isdigit
(
word
.
at
(
0
))
||
word
.
at
(
0
)
==
'-'
)
&&
// do not try to link digits
// (saves a lot of time for large arrays)
!
rightScopeMatch
(
word
,
searchName
)
&&
!
rightScopeMatch
(
word
,
searchName
)
&&
!
rightScopeMatch
(
scopeName
,
word
)
!
rightScopeMatch
(
scopeName
,
word
)
)
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment