Commit 7a3de4c3 authored by dimitri's avatar dimitri

Release-1.5.9-20090522

parent c34e05f1
DOXYGEN Version 1.5.9 DOXYGEN Version 1.5.9-20090522
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 (30 April 2009) Dimitri van Heesch (22 May 2009)
DOXYGEN Version 1.5.9 DOXYGEN Version 1.5.9_20090522
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) (30 April 2009) Dimitri van Heesch (dimitri@stack.nl) (22 May 2009)
...@@ -8,8 +8,8 @@ const int messageTimeout = 5000; //!< status bar message timeout in millisec. ...@@ -8,8 +8,8 @@ const int messageTimeout = 5000; //!< status bar message timeout in millisec.
MainWindow &MainWindow::instance() MainWindow &MainWindow::instance()
{ {
static MainWindow theInstance; static MainWindow *theInstance = new MainWindow;
return theInstance; return *theInstance;
} }
MainWindow::MainWindow() MainWindow::MainWindow()
......
...@@ -181,9 +181,14 @@ documentation: ...@@ -181,9 +181,14 @@ documentation:
The following subsections provide a list of all commands that are recognized by The following subsections provide a list of all commands that are recognized by
doxygen. Unrecognized commands are treated as normal text. doxygen. Unrecognized commands are treated as normal text.
<h2>\htmlonly <center> --- \endhtmlonly
Structural indicators \htmlonly <center> \endhtmlonly
\htmlonly --- </center>\endhtmlonly</h2> <h2>
\htmlonly --- \endhtmlonly
Structural indicators
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center> \endhtmlonly
\section cmdaddtogroup \\addtogroup <name> [(title)] \section cmdaddtogroup \\addtogroup <name> [(title)]
\addindex \\addtogroup \addindex \\addtogroup
...@@ -383,6 +388,7 @@ doxygen. Unrecognized commands are treated as normal text. ...@@ -383,6 +388,7 @@ doxygen. Unrecognized commands are treated as normal text.
(e.g. C). (e.g. C).
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
...@@ -484,6 +490,7 @@ doxygen. Unrecognized commands are treated as normal text. ...@@ -484,6 +490,7 @@ doxygen. Unrecognized commands are treated as normal text.
(e.g. C). (e.g. C).
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
...@@ -581,6 +588,7 @@ doxygen. Unrecognized commands are treated as normal text. ...@@ -581,6 +588,7 @@ doxygen. Unrecognized commands are treated as normal text.
\ref cmdprivate "\\private". \ref cmdprivate "\\private".
The file \c manual.c in the example directory shows how to use this command. The file \c manual.c in the example directory shows how to use this command.
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen. for the corresponding HTML documentation that is generated by doxygen.
...@@ -856,9 +864,13 @@ doxygen. Unrecognized commands are treated as normal text. ...@@ -856,9 +864,13 @@ doxygen. Unrecognized commands are treated as normal text.
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly \htmlonly <center> \endhtmlonly
Section indicators <h2>
\htmlonly --- </center>\endhtmlonly</h2> \htmlonly --- \endhtmlonly
Section indicators
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center>\endhtmlonly
<hr> <hr>
\section cmdattention \\attention { attention text } \section cmdattention \\attention { attention text }
...@@ -1125,7 +1137,9 @@ class Example ...@@ -1125,7 +1137,9 @@ class Example
{ {
}; };
\endverbatim \endverbatim
<p>Where the following aliases are defined in the configuration file:<p>
Where the following aliases are defined in the configuration file:
\verbatim \verbatim
ALIASES = "english=\if english" \ ALIASES = "english=\if english" \
"endenglish=\endif" \ "endenglish=\endif" \
...@@ -1442,9 +1456,14 @@ void memcpy(void *dest, const void *src, size_t n); ...@@ -1442,9 +1456,14 @@ void memcpy(void *dest, const void *src, size_t n);
\\xrefitem command. \\xrefitem command.
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly
Commands to create links \htmlonly <center> \endhtmlonly
\htmlonly --- </center>\endhtmlonly</h2> <h2>
\htmlonly --- \endhtmlonly
Commands to create links
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center>\endhtmlonly
\section cmdaddindex \\addindex (text) \section cmdaddindex \\addindex (text)
...@@ -1617,9 +1636,13 @@ Make sure you have first read \ref intro "the introduction". ...@@ -1617,9 +1636,13 @@ Make sure you have first read \ref intro "the introduction".
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly \htmlonly <center> \endhtmlonly
Commands for displaying examples <h2>
\htmlonly --- </center>\endhtmlonly</h2> \htmlonly --- \endhtmlonly
Commands for displaying examples
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center>\endhtmlonly
\section cmddontinclude \\dontinclude <file-name> \section cmddontinclude \\dontinclude <file-name>
...@@ -1786,9 +1809,14 @@ Make sure you have first read \ref intro "the introduction". ...@@ -1786,9 +1809,14 @@ Make sure you have first read \ref intro "the introduction".
\ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file. \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file.
<hr> <hr>
<h2>\htmlonly <center> --- \endhtmlonly
Commands for visual enhancements \htmlonly <center> \endhtmlonly
\htmlonly --- </center>\endhtmlonly</h2> <h2>
\htmlonly --- \endhtmlonly
Commands for visual enhancements
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center>\endhtmlonly
\section cmda \\a <word> \section cmda \\a <word>
...@@ -2432,11 +2460,16 @@ class Receiver ...@@ -2432,11 +2460,16 @@ class Receiver
character has to be escaped in some cases, because it is used to character has to be escaped in some cases, because it is used to
prevent auto-linking to word that is also a documented class or struct. prevent auto-linking to word that is also a documented class or struct.
<h2>\htmlonly <center> --- \endhtmlonly
Commands included for Qt compatibility
\htmlonly --- </center>\endhtmlonly</h2>
<hr> <hr>
\htmlonly <center> \endhtmlonly
<h2>
\htmlonly --- \endhtmlonly
Commands included for Qt compatibility
\htmlonly --- \endhtmlonly
</h2>
\htmlonly </center>\endhtmlonly
The following commands are supported to remain compatible to the Qt class The following commands are supported to remain compatible to the Qt class
browser generator. Do \e not use these commands in your own documentation. browser generator. Do \e not use these commands in your own documentation.
<ul> <ul>
......
...@@ -135,7 +135,7 @@ that doxygen can generate: ...@@ -135,7 +135,7 @@ that doxygen can generate:
\htmlonly \htmlonly
Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a> Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a>
for the corresponding HTML documentation that is generated by doxygen<br> for the corresponding HTML documentation that is generated by doxygen<br/>
(<code>EXTRACT_ALL</code> = <code>YES</code> is used here). (<code>EXTRACT_ALL</code> = <code>YES</code> is used here).
\endhtmlonly \endhtmlonly
......
...@@ -18,8 +18,7 @@ ...@@ -18,8 +18,7 @@
\if logo_on \if logo_on
<center> <center>
\htmlonly \htmlonly
<img align=center lowsrc="doxygen_logo_low.gif" src="doxygen_logo.gif" <img src="doxygen_logo.gif" width="634" height="197" alt="doxygen"/><br/>
width=634 height=197 alt="doxygen"><br>
Version: $(VERSION) Version: $(VERSION)
\endhtmlonly \endhtmlonly
</center> </center>
...@@ -118,7 +117,7 @@ The third part provides information for developers: ...@@ -118,7 +117,7 @@ The third part provides information for developers:
\addindex license \addindex license
\addindex GPL \addindex GPL
Copyright &copy; 1997-2008 by Copyright &copy; 1997-2009 by
<a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p> <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p>
Permission to use, copy, modify, and distribute this software and its Permission to use, copy, modify, and distribute this software and its
...@@ -177,7 +176,6 @@ Thanks go to: ...@@ -177,7 +176,6 @@ Thanks go to:
given me a good start in writing doxygen. given me a good start in writing doxygen.
<li>All people at Qt Software, for creating a beautiful GUI Toolkit <li>All people at Qt Software, for creating a beautiful GUI Toolkit
(which is very useful as a Windows/Unix platform abstraction layer :-) (which is very useful as a Windows/Unix platform abstraction layer :-)
<li>Kevin McBride for maintaining the subversion reporsitory for doxygen.
<li>My brother Frank <li>My brother Frank
for rendering the logos. for rendering the logos.
<li>Harm van der Heijden for adding HTML help support. <li>Harm van der Heijden for adding HTML help support.
...@@ -187,8 +185,6 @@ Thanks go to: ...@@ -187,8 +185,6 @@ Thanks go to:
<li>Parker Waechter for adding the RTF output generator. <li>Parker Waechter for adding the RTF output generator.
<li>Joerg Baumann, for adding conditional documentation blocks, <li>Joerg Baumann, for adding conditional documentation blocks,
PDF links, and the configuration generator. PDF links, and the configuration generator.
<li>Matthias Andree for providing a .spec script for building rpms from the
sources.
<li>Tim Mensch for adding the todo command. <li>Tim Mensch for adding the todo command.
<li>Christian Hammond for redesigning the web-site. <li>Christian Hammond for redesigning the web-site.
<li>Ken Wong for providing the HTML tree view code. <li>Ken Wong for providing the HTML tree view code.
......
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.5.8), 38 languages Currently (version 1.5.9), 38 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese Afrikaans, Arabic, Brazilian Portuguese, Catalan, Chinese, Chinese
Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto, Traditional, Croatian, Czech, Danish, Dutch, English, Esperanto,
...@@ -39,16 +39,16 @@ was generated from sources and shows approximately the last version ...@@ -39,16 +39,16 @@ was generated from sources and shows approximately the last version
when the translator was updated. when the translator was updated.
\htmlonly \htmlonly
<table align=center cellspacing=0 cellpadding=0 border=0> <table align="center" cellspacing="0" cellpadding="0" border="0">
<tr bgcolor="#000000"> <tr bgcolor="#000000">
<td> <td>
<table cellspacing=1 cellpadding=2 border=0> <table cellspacing="1" cellpadding="2" border="0">
<tr bgcolor="#4040c0"> <tr bgcolor="#4040c0">
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size="+1" color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size="+1" color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size="+1" color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(replace the at and dot)</font></b></td> <font size="-2" color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size="+1" color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
...@@ -72,20 +72,20 @@ when the translator was updated. ...@@ -72,20 +72,20 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Catalan</td> <td>Catalan</td>
<td>Maximiliano Pin<br>Albert Mora</td> <td>Maximiliano Pin<br/>Albert Mora</td>
<td>max.pin at bitroit dot com<br>amora at iua dot upf dot es</td> <td>max.pin at bitroit dot com<br/>amora at iua dot upf dot es</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese</td> <td>Chinese</td>
<td>Li Daobing<br>Wei Liu</td> <td>Li Daobing<br/>Wei Liu</td>
<td>lidaobing at gmail dot com<br>liuwei at asiainfo dot com</td> <td>lidaobing at gmail dot com<br/>liuwei at asiainfo dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Chinese Traditional</td> <td>Chinese Traditional</td>
<td>Daniel YC Lin<br>Gary Lee</td> <td>Daniel YC Lin<br/>Gary Lee</td>
<td>dlin.tw at gmail dot com<br>garywlee at gmail dot com</td> <td>dlin.tw at gmail dot com<br/>garywlee at gmail dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -150,8 +150,8 @@ when the translator was updated. ...@@ -150,8 +150,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Hungarian</td> <td>Hungarian</td>
<td>&Aacute;kos Kiss<br>F&ouml;ldv&aacute;ri Gy&ouml;rgy</td> <td>&Aacute;kos Kiss<br/>F&ouml;ldv&aacute;ri Gy&ouml;rgy</td>
<td>akiss at users dot sourceforge dot net<br>foldvari lost at cyberspace</td> <td>akiss at users dot sourceforge dot net<br/>foldvari lost at cyberspace</td>
<td>1.4.6</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -162,15 +162,15 @@ when the translator was updated. ...@@ -162,15 +162,15 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Italian</td> <td>Italian</td>
<td>Alessandro Falappa<br>Ahmed Aldo Faisal</td> <td>Alessandro Falappa<br/>Ahmed Aldo Faisal</td>
<td>alessandro at falappa dot net<br>aaf23 at cam dot ac dot uk</td> <td>alessandro at falappa dot net<br/>aaf23 at cam dot ac dot uk</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Japanese</td> <td>Japanese</td>
<td>Ryunosuke Satoh<br>Kenji Nagamatsu<br>Iwasa Kazmi</td> <td>Hiroki Iseri<br/>Ryunosuke Satoh<br/>Kenji Nagamatsu<br/>Iwasa Kazmi</td>
<td>sun594 at hotmail dot com<br>naga at joyful dot club dot ne dot jp<br>iwasa at cosmo-system dot jp</td> <td>goyoki at gmail dot com<br/>sun594 at hotmail dot com<br/>naga at joyful dot club dot ne dot jp<br/>iwasa at cosmo-system dot jp</td>
<td>1.5.4</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>JapaneseEn</td> <td>JapaneseEn</td>
...@@ -180,8 +180,8 @@ when the translator was updated. ...@@ -180,8 +180,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Korean</td> <td>Korean</td>
<td>Kim Taedong<br>SooYoung Jung<br>Richard Kim</td> <td>Kim Taedong<br/>SooYoung Jung<br/>Richard Kim</td>
<td>fly1004 at gmail dot com<br>jung5000 at gmail dot com<br>ryk at dspwiz dot com</td> <td>fly1004 at gmail dot com<br/>jung5000 at gmail dot com<br/>ryk at dspwiz dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -192,8 +192,8 @@ when the translator was updated. ...@@ -192,8 +192,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Lithuanian</td> <td>Lithuanian</td>
<td>Tomas Simonaitis<br>Mindaugas Radzius<br>Aidas Berukstis</td> <td>Tomas Simonaitis<br/>Mindaugas Radzius<br/>Aidas Berukstis</td>
<td>haden at homelan dot lt<br>mindaugasradzius at takas dot lt<br>aidasber at takas dot lt</td> <td>haden at homelan dot lt<br/>mindaugasradzius at takas dot lt<br/>aidasber at takas dot lt</td>
<td>1.4.6</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -216,8 +216,8 @@ when the translator was updated. ...@@ -216,8 +216,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Polish</td> <td>Polish</td>
<td>Piotr Kaminski<br>Grzegorz Kowal</td> <td>Piotr Kaminski<br/>Grzegorz Kowal</td>
<td>Piotr.Kaminski at ctm dot gdynia dot pl<br>g_kowal at poczta dot onet dot pl</td> <td>Piotr.Kaminski at ctm dot gdynia dot pl<br/>g_kowal at poczta dot onet dot pl</td>
<td>1.4.6</td> <td>1.4.6</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -228,8 +228,8 @@ when the translator was updated. ...@@ -228,8 +228,8 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Romanian</td> <td>Romanian</td>
<td>Ionut Dumitrascu<br>Alexandru Iosup</td> <td>Ionut Dumitrascu<br/>Alexandru Iosup</td>
<td>reddumy at yahoo dot com<br>aiosup at yahoo dot com</td> <td>reddumy at yahoo dot com<br/>aiosup at yahoo dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
...@@ -264,15 +264,15 @@ when the translator was updated. ...@@ -264,15 +264,15 @@ when the translator was updated.
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Spanish</td> <td>Spanish</td>
<td>Bartomeu<br>Francisco Oltra Thennet<br>David Vaquero</td> <td>Bartomeu<br/>Francisco Oltra Thennet<br/>David Vaquero</td>
<td>bartomeu at loteria3cornella dot com<br>foltra at puc dot cl<br>david at grupoikusnet dot com</td> <td>bartomeu at loteria3cornella dot com<br/>foltra at puc dot cl<br/>david at grupoikusnet dot com</td>
<td>up-to-date</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Swedish</td> <td>Swedish</td>
<td>Mikael Hallin</td> <td>Mikael Hallin</td>
<td>mikaelhallin at yahoo dot se</td> <td>mikaelhallin at yahoo dot se</td>
<td>1.4.6</td> <td>up-to-date</td>
</tr> </tr>
<tr bgcolor="#ffffff"> <tr bgcolor="#ffffff">
<td>Turkish</td> <td>Turkish</td>
...@@ -350,7 +350,8 @@ when the translator was updated. ...@@ -350,7 +350,8 @@ when the translator was updated.
Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\ Italian & Alessandro Falappa & {\tt\tiny alessandro@falappa.net} & up-to-date \\
~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23@cam.ac.uk} & ~ \\
\hline \hline
Japanese & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & 1.5.4 \\ Japanese & Hiroki Iseri & {\tt\tiny goyoki@gmail.com} & up-to-date \\
~ & Ryunosuke Satoh & {\tt\tiny sun594@hotmail.com} & ~ \\
~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\ ~ & Kenji Nagamatsu & {\tt\tiny naga@joyful.club.ne.jp} & ~ \\
~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\ ~ & Iwasa Kazmi & {\tt\tiny iwasa@cosmo-system.jp} & ~ \\
\hline \hline
...@@ -394,7 +395,7 @@ when the translator was updated. ...@@ -394,7 +395,7 @@ when the translator was updated.
~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\ ~ & Francisco Oltra Thennet & {\tt\tiny foltra@puc.cl} & ~ \\
~ & David Vaquero & {\tt\tiny david@grupoikusnet.com} & ~ \\ ~ & David Vaquero & {\tt\tiny david@grupoikusnet.com} & ~ \\
\hline \hline
Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & 1.4.6 \\ Swedish & Mikael Hallin & {\tt\tiny mikaelhallin@yahoo.se} & up-to-date \\
\hline \hline
Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3@yahoo.com} & up-to-date \\ Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3@yahoo.com} & up-to-date \\
\hline \hline
...@@ -623,7 +624,9 @@ script was developed (located in \c doxygen/doc directory). ...@@ -623,7 +624,9 @@ script was developed (located in \c doxygen/doc directory).
It extracts the important information about obsolete and It extracts the important information about obsolete and
new methods from the source files for each of the languages. new methods from the source files for each of the languages.
The information is stored in the <em>translator report</em> ASCII file The information is stored in the <em>translator report</em> ASCII file
(translator_report.txt). \htmlonly If you compiled this documentation (translator_report.txt).
\htmlonly If you compiled this documentation
from sources and if you have also doxygen sources available the from sources and if you have also doxygen sources available the
link <a href="../doc/translator_report.txt" link <a href="../doc/translator_report.txt"
><code>doxygen/doc/translator_report.txt</code></a> should be valid.\endhtmlonly ><code>doxygen/doc/translator_report.txt</code></a> should be valid.\endhtmlonly
......
...@@ -255,7 +255,9 @@ script was developed (located in \c doxygen/doc directory). ...@@ -255,7 +255,9 @@ script was developed (located in \c doxygen/doc directory).
It extracts the important information about obsolete and It extracts the important information about obsolete and
new methods from the source files for each of the languages. new methods from the source files for each of the languages.
The information is stored in the <em>translator report</em> ASCII file The information is stored in the <em>translator report</em> ASCII file
(%(translatorReportFileName)s). \htmlonly If you compiled this documentation (%(translatorReportFileName)s).
\htmlonly If you compiled this documentation
from sources and if you have also doxygen sources available the from sources and if you have also doxygen sources available the
link %(translatorReportLink)s should be valid.\endhtmlonly link %(translatorReportLink)s should be valid.\endhtmlonly
......
...@@ -99,6 +99,7 @@ Ali Nadalizadeh: nadalizadeh@gmail.com ...@@ -99,6 +99,7 @@ Ali Nadalizadeh: nadalizadeh@gmail.com
TranslatorPolish TranslatorPolish
Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl Piotr Kaminski: Piotr.Kaminski@ctm.gdynia.pl
Grzegorz Kowal: g_kowal@poczta.onet.pl Grzegorz Kowal: g_kowal@poczta.onet.pl
Krzysztof Kral: krzysztof.kral@gmail.com
TranslatorPortuguese TranslatorPortuguese
Rui Godinho Lopes: ruiglopes@yahoo.com Rui Godinho Lopes: ruiglopes@yahoo.com
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
*/ */
/*! \page output Output Formats /*! \page output Output Formats
\section output Output Formats \section output_sec Output Formats
\addindex output formats \addindex output formats
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN 2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN
environment variable. When not found, then relatively to the script. environment variable. When not found, then relatively to the script.
2007/03/20 - The "translate me!" searched in comments and reported if found. 2007/03/20 - The "translate me!" searched in comments and reported if found.
2009/05/09 - Changed HTML output to make it confirm to XHTML DTD
""" """
from __future__ import generators from __future__ import generators
...@@ -1744,16 +1745,16 @@ class TrManager: ...@@ -1744,16 +1745,16 @@ class TrManager:
# Define templates for HTML table parts of the documentation. # Define templates for HTML table parts of the documentation.
htmlTableTpl = '''\ htmlTableTpl = '''\
\\htmlonly \\htmlonly
<table align=center cellspacing=0 cellpadding=0 border=0> <table align="center" cellspacing="0" cellpadding="0" border="0">
<tr bgcolor="#000000"> <tr bgcolor="#000000">
<td> <td>
<table cellspacing=1 cellpadding=2 border=0> <table cellspacing="1" cellpadding="2" border="0">
<tr bgcolor="#4040c0"> <tr bgcolor="#4040c0">
<td ><b><font size=+1 color="#ffffff"> Language </font></b></td> <td ><b><font size="+1" color="#ffffff"> Language </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Maintainer </font></b></td> <td ><b><font size="+1" color="#ffffff"> Maintainer </font></b></td>
<td ><b><font size=+1 color="#ffffff"> Contact address </font> <td ><b><font size="+1" color="#ffffff"> Contact address </font>
<font size=-2 color="#ffffff">(replace the at and dot)</font></b></td> <font size="-2" color="#ffffff">(replace the at and dot)</font></b></td>
<td ><b><font size=+1 color="#ffffff"> Status </font></b></td> <td ><b><font size="+1" color="#ffffff"> Status </font></b></td>
</tr> </tr>
<!-- table content begin --> <!-- table content begin -->
%s %s
...@@ -1792,20 +1793,20 @@ class TrManager: ...@@ -1792,20 +1793,20 @@ class TrManager:
if not mm and self.__maintainersDic.has_key(obj.classId): if not mm and self.__maintainersDic.has_key(obj.classId):
lm = [ m[0] for m in self.__maintainersDic[obj.classId] ] lm = [ m[0] for m in self.__maintainersDic[obj.classId] ]
mm = '<br>'.join(lm) mm = '<br/>'.join(lm)
le = [ m[1] for m in self.__maintainersDic[obj.classId] ] le = [ m[1] for m in self.__maintainersDic[obj.classId] ]
ee = '<br>'.join(le) ee = '<br/>'.join(le)
# Mangle the e-mail and replace the entity references. # Mangle the e-mail and replace the entity references.
if ee and ee != '&nbsp;': if ee and ee != '&nbsp;':
# More than one maintainer address separated by <br> can be used. # More than one maintainer address separated by <br> can be used.
emails = ee.split('<br>') emails = ee.split('<br/>')
mangled_list = [] mangled_list = []
for email in emails: for email in emails:
name, domain = email.split('@') name, domain = email.split('@')
domain = domain.replace('.', ' dot ') domain = domain.replace('.', ' dot ')
mangled_list.append(name + ' at ' + domain) mangled_list.append(name + ' at ' + domain)
ee = '<br>'.join(mangled_list) ee = '<br/>'.join(mangled_list)
if mm: if mm:
mm = mm.replace('&ccaron;', '&#x010d;') mm = mm.replace('&ccaron;', '&#x010d;')
......
(1.5.8) (1.5.9)
Doxygen supports the following 38 languages (sorted alphabetically): Doxygen supports the following 38 languages (sorted alphabetically):
...@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian, ...@@ -10,7 +10,7 @@ Persian, Polish, Portuguese, Romanian, Russian, Serbian,
SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian,
and Vietnamese. and Vietnamese.
Of them, 22 translators are up-to-date, 16 translators are based on Of them, 24 translators are up-to-date, 14 translators are based on
some adapter class, and 2 are English based. some adapter class, and 2 are English based.
---------------------------------------------------------------------- ----------------------------------------------------------------------
...@@ -31,6 +31,7 @@ still may be some details listed even for them: ...@@ -31,6 +31,7 @@ still may be some details listed even for them:
TranslatorFinnish TranslatorFinnish
TranslatorGerman TranslatorGerman
TranslatorItalian TranslatorItalian
TranslatorJapanese -- Remove the obsolete methods (never used).
TranslatorKorean TranslatorKorean
TranslatorMacedonian TranslatorMacedonian
TranslatorPersian TranslatorPersian
...@@ -39,6 +40,7 @@ still may be some details listed even for them: ...@@ -39,6 +40,7 @@ still may be some details listed even for them:
TranslatorSerbianCyrilic TranslatorSerbianCyrilic
TranslatorSerbian TranslatorSerbian
TranslatorSpanish TranslatorSpanish
TranslatorSwedish -- The "translate me!" found in a comment.
TranslatorTurkish TranslatorTurkish
TranslatorVietnamese TranslatorVietnamese
...@@ -48,11 +50,9 @@ obsolete at the end). The other info shows the estimation of Doxygen ...@@ -48,11 +50,9 @@ obsolete at the end). The other info shows the estimation of Doxygen
version when the class was last updated and number of methods that version when the class was last updated and number of methods that
must be implemented to become up-to-date: must be implemented to become up-to-date:
TranslatorJapanese 1.5.4 22 methods to implement
TranslatorGreek 1.5.4 22 methods to implement TranslatorGreek 1.5.4 22 methods to implement
TranslatorFrench 1.5.4 22 methods to implement TranslatorFrench 1.5.4 22 methods to implement
TranslatorDanish 1.5.4 22 methods to implement TranslatorDanish 1.5.4 22 methods to implement
TranslatorSwedish 1.4.6 24 methods to implement
TranslatorSlovene 1.4.6 24 methods to implement TranslatorSlovene 1.4.6 24 methods to implement
TranslatorPolish 1.4.6 23 methods to implement TranslatorPolish 1.4.6 23 methods to implement
TranslatorNorwegian 1.4.6 23 methods to implement TranslatorNorwegian 1.4.6 23 methods to implement
...@@ -349,35 +349,10 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 23 methods to implement ...@@ -349,35 +349,10 @@ TranslatorIndonesian (TranslatorAdapter_1_4_6) 23 methods to implement
virtual QCString trNoDescriptionAvailable() virtual QCString trNoDescriptionAvailable()
TranslatorJapanese (TranslatorAdapter_1_5_4) 22 methods to implement TranslatorJapanese (Translator)
------------------ ------------------
Implements 194 of the required methods. Implements 216 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
Obsolete methods (should be removed, never used): Obsolete methods (should be removed, never used):
...@@ -695,37 +670,10 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 24 methods to implement ...@@ -695,37 +670,10 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 24 methods to implement
virtual QCString trSubprogramDocumentation() virtual QCString trSubprogramDocumentation()
TranslatorSwedish (TranslatorAdapter_1_4_6) 24 methods to implement TranslatorSwedish (Translator)
----------------- -----------------
Implements 192 of the required methods. Implements 216 of the required methods.
Missing methods (should be implemented):
virtual QCString trCompoundMembersDescriptionFortran(bool extractAll)
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)
virtual QCString trSubprograms()
virtual QCString trModulesListDescription(bool extractAll)
virtual QCString trModulesList()
virtual QCString trTypeConstraints()
virtual QCString trMemberFunctionDocumentationFortran()
virtual QCString trCompoundListDescriptionFortran()
virtual QCString trTypeDocumentation()
virtual QCString trModuleReference(const char * namespaceName)
virtual QCString trModulesMemberDescription(bool extractAll)
virtual QCString trModulesMembers()
virtual QCString trModulesIndex()
virtual QCString trCompoundListFortran()
virtual QCString trDataTypes()
virtual QCString trCompoundIndexFortran()
virtual QCString trSubprogram(bool first_capital, bool singular)
virtual QCString trCallerGraph()
virtual QCString trEnumerationValueDocumentation()
virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate)
virtual QCString trType(bool first_capital, bool singular)
virtual QCString trModule(bool first_capital, bool singular)
virtual QCString trCompoundMembersFortran()
virtual QCString trSubprogramDocumentation()
TranslatorUkrainian (TranslatorAdapter_1_4_1) 24 methods to implement TranslatorUkrainian (TranslatorAdapter_1_4_1) 24 methods to implement
......
...@@ -844,7 +844,9 @@ void ClassDef::writeBriefDescription(OutputList &ol,bool exampleFlag) ...@@ -844,7 +844,9 @@ void ClassDef::writeBriefDescription(OutputList &ol,bool exampleFlag)
{ {
if (!briefDescription().isEmpty()) if (!briefDescription().isEmpty())
{ {
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.startParagraph();
ol.parseDoc(briefFile(),briefLine(),this,0,
briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.writeString(" \n"); ol.writeString(" \n");
...@@ -862,10 +864,11 @@ void ClassDef::writeBriefDescription(OutputList &ol,bool exampleFlag) ...@@ -862,10 +864,11 @@ void ClassDef::writeBriefDescription(OutputList &ol,bool exampleFlag)
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.pushGeneratorState(); //ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); //ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
ol.popGeneratorState(); //ol.popGeneratorState();
ol.endParagraph();
} }
ol.writeSynopsis(); ol.writeSynopsis();
} }
...@@ -903,7 +906,7 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType ...@@ -903,7 +906,7 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man); ol.disableAllBut(OutputGenerator::Man);
ol.writeString("\n\n"); ol.writeString("\n\n");
...@@ -912,7 +915,6 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType ...@@ -912,7 +915,6 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType
// write documentation // write documentation
if (!documentation().isEmpty()) if (!documentation().isEmpty())
{ {
//ol.newParagraph();
ol.parseDoc(docFile(),docLine(),this,0,documentation(),TRUE,FALSE); ol.parseDoc(docFile(),docLine(),this,0,documentation(),TRUE,FALSE);
} }
// write type constraints // write type constraints
...@@ -922,9 +924,11 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType ...@@ -922,9 +924,11 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType
if (exampleFlag && m_impl->exampleSDict) if (exampleFlag && m_impl->exampleSDict)
{ {
ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": "); ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": ");
ol.writeDescItem(); ol.startDescForItem();
ol.newParagraph(); ol.startParagraph();
writeExample(ol,m_impl->exampleSDict); writeExample(ol,m_impl->exampleSDict);
ol.endParagraph();
ol.endDescForItem();
ol.endSimpleSect(); ol.endSimpleSect();
} }
//ol.newParagraph(); //ol.newParagraph();
...@@ -972,7 +976,7 @@ void ClassDef::showUsedFiles(OutputList &ol) ...@@ -972,7 +976,7 @@ void ClassDef::showUsedFiles(OutputList &ol)
ol.startItemList(); ol.startItemList();
} }
ol.writeListItem(); ol.startItemListItem();
QCString path=fd->getPath(); QCString path=fd->getPath();
if (Config_getBool("FULL_PATH_NAMES")) if (Config_getBool("FULL_PATH_NAMES"))
{ {
...@@ -1015,8 +1019,9 @@ void ClassDef::showUsedFiles(OutputList &ol) ...@@ -1015,8 +1019,9 @@ void ClassDef::showUsedFiles(OutputList &ol)
{ {
ol.docify(fname); ol.docify(fname);
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.endItemListItem();
} }
file=m_impl->files.next(); file=m_impl->files.next();
} }
...@@ -1089,6 +1094,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) ...@@ -1089,6 +1094,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol)
if (m_impl->inherits && (count=m_impl->inherits->count())>0) if (m_impl->inherits && (count=m_impl->inherits->count())>0)
{ {
ol.startParagraph();
//parseText(ol,theTranslator->trInherits()+" "); //parseText(ol,theTranslator->trInherits()+" ");
QCString inheritLine = theTranslator->trInheritsList(m_impl->inherits->count()); QCString inheritLine = theTranslator->trInheritsList(m_impl->inherits->count());
...@@ -1147,12 +1153,13 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) ...@@ -1147,12 +1153,13 @@ void ClassDef::writeInheritanceGraph(OutputList &ol)
index=newIndex+matchLen; index=newIndex+matchLen;
} }
ol.parseText(inheritLine.right(inheritLine.length()-index)); ol.parseText(inheritLine.right(inheritLine.length()-index));
ol.newParagraph(); ol.endParagraph();
} }
// write subclasses // write subclasses
if (m_impl->inheritedBy && (count=m_impl->inheritedBy->count())>0) if (m_impl->inheritedBy && (count=m_impl->inheritedBy->count())>0)
{ {
ol.startParagraph();
QCString inheritLine = theTranslator->trInheritedByList(m_impl->inheritedBy->count()); QCString inheritLine = theTranslator->trInheritedByList(m_impl->inheritedBy->count());
QRegExp marker("@[0-9]+"); QRegExp marker("@[0-9]+");
int index=0,newIndex,matchLen; int index=0,newIndex,matchLen;
...@@ -1179,7 +1186,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol) ...@@ -1179,7 +1186,7 @@ void ClassDef::writeInheritanceGraph(OutputList &ol)
index=newIndex+matchLen; index=newIndex+matchLen;
} }
ol.parseText(inheritLine.right(inheritLine.length()-index)); ol.parseText(inheritLine.right(inheritLine.length()-index));
ol.newParagraph(); ol.endParagraph();
} }
if (renderDiagram) if (renderDiagram)
...@@ -1216,6 +1223,7 @@ void ClassDef::writeIncludeFiles(OutputList &ol) ...@@ -1216,6 +1223,7 @@ void ClassDef::writeIncludeFiles(OutputList &ol)
m_impl->incInfo->includeName.data(); m_impl->incInfo->includeName.data();
if (!nm.isEmpty()) if (!nm.isEmpty())
{ {
ol.startParagraph();
ol.startTypewriter(); ol.startTypewriter();
bool isIDLorJava = nm.right(4)==".idl" || bool isIDLorJava = nm.right(4)==".idl" ||
nm.right(5)==".pidl" || nm.right(5)==".pidl" ||
...@@ -1257,7 +1265,7 @@ void ClassDef::writeIncludeFiles(OutputList &ol) ...@@ -1257,7 +1265,7 @@ void ClassDef::writeIncludeFiles(OutputList &ol)
if (isIDLorJava) if (isIDLorJava)
ol.docify(";"); ol.docify(";");
ol.endTypewriter(); ol.endTypewriter();
ol.newParagraph(); ol.endParagraph();
} }
} }
} }
...@@ -1271,10 +1279,11 @@ void ClassDef::writeAllMembersLink(OutputList &ol) ...@@ -1271,10 +1279,11 @@ void ClassDef::writeAllMembersLink(OutputList &ol)
{ {
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.newParagraph(); ol.startParagraph();
ol.startTextLink(getMemberListFileName(),0); ol.startTextLink(getMemberListFileName(),0);
ol.parseText(theTranslator->trListOfAllMembers()); ol.parseText(theTranslator->trListOfAllMembers());
ol.endTextLink(); ol.endTextLink();
ol.endParagraph();
ol.enableAll(); ol.enableAll();
ol.popGeneratorState(); ol.popGeneratorState();
} }
...@@ -1663,7 +1672,7 @@ void ClassDef::writeMemberList(OutputList &ol) ...@@ -1663,7 +1672,7 @@ void ClassDef::writeMemberList(OutputList &ol)
ol.parseText(theTranslator->trIncludingInheritedMembers()); ol.parseText(theTranslator->trIncludingInheritedMembers());
//ol.startItemList(); //ol.startItemList();
ol.writeString("<p><table>\n"); ol.writeString("<table>\n");
//MemberNameInfo *mni=m_impl->allMemberNameInfoList->first(); //MemberNameInfo *mni=m_impl->allMemberNameInfoList->first();
MemberNameInfoSDict::Iterator mnii(*m_impl->allMemberNameInfoSDict); MemberNameInfoSDict::Iterator mnii(*m_impl->allMemberNameInfoSDict);
......
...@@ -63,12 +63,14 @@ static int g_lastCommentContext; ...@@ -63,12 +63,14 @@ static int g_lastCommentContext;
static bool g_inSpecialComment; static bool g_inSpecialComment;
static bool g_inRoseComment; static bool g_inRoseComment;
static int g_javaBlock; static int g_javaBlock;
static bool g_specialComment;
static QCString g_aliasString; static QCString g_aliasString;
static int g_blockCount; static int g_blockCount;
static int g_lastBlockContext; static int g_lastBlockContext;
static bool g_pythonDocString; static bool g_pythonDocString;
static SrcLangExt g_lang; static SrcLangExt g_lang;
static void replaceCommentMarker(const char *s,int len) static void replaceCommentMarker(const char *s,int len)
...@@ -341,7 +343,8 @@ void replaceComment(int offset); ...@@ -341,7 +343,8 @@ void replaceComment(int offset);
g_readLineCtx=YY_START; g_readLineCtx=YY_START;
BEGIN(ReadLine); BEGIN(ReadLine);
} }
<Scan>"/*" { /* start of a C comment */ <Scan>"/*"[*!]? { /* start of a C comment */
g_specialComment=yyleng==3;
copyToOutput(yytext,yyleng); copyToOutput(yytext,yyleng);
BEGIN(CComment); BEGIN(CComment);
} }
...@@ -640,6 +643,10 @@ void replaceComment(int offset); ...@@ -640,6 +643,10 @@ void replaceComment(int offset);
{ {
ADDCHAR('/'); ADDCHAR('/');
ADDCHAR('*'); ADDCHAR('*');
if (g_specialComment)
{
ADDCHAR('*');
}
} }
} }
} }
......
...@@ -819,6 +819,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName) ...@@ -819,6 +819,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
//printf("Read:\n`%s'\n\n",codeFragment.data()); //printf("Read:\n`%s'\n\n",codeFragment.data());
MemberDef *thisMd = 0; MemberDef *thisMd = 0;
if (definitionType()==TypeMember) thisMd = (MemberDef *)this; if (definitionType()==TypeMember) thisMd = (MemberDef *)this;
ol.startParagraph();
ol.startCodeFragment(); ol.startCodeFragment();
pIntf->parseCode(ol, // codeOutIntf pIntf->parseCode(ol, // codeOutIntf
scopeName, // scope scopeName, // scope
...@@ -832,7 +833,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName) ...@@ -832,7 +833,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
thisMd // memberDef thisMd // memberDef
); );
ol.endCodeFragment(); ol.endCodeFragment();
ol.newParagraph(); ol.endParagraph();
} }
} }
ol.popGeneratorState(); ol.popGeneratorState();
......
...@@ -175,9 +175,9 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,QCString relPath, ...@@ -175,9 +175,9 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,QCString relPath,
t << relPath; t << relPath;
} }
t << cd->getOutputFileBase() << Doxygen::htmlFileExtension << "\" "; t << cd->getOutputFileBase() << Doxygen::htmlFileExtension << "\" ";
t << "alt=\"" << cd->displayName(); t << "alt=\"" << convertToXML(cd->displayName());
t << "\" shape=\"rect\" coords=\"" << x << "," << y << ","; t << "\" shape=\"rect\" coords=\"" << x << "," << y << ",";
t << (x+w) << "," << (y+h) << "\">" << endl; t << (x+w) << "," << (y+h) << "\"/>" << endl;
} }
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
......
...@@ -134,7 +134,7 @@ void DirDef::writeDetailedDescription(OutputList &ol,const QCString &title) ...@@ -134,7 +134,7 @@ void DirDef::writeDetailedDescription(OutputList &ol,const QCString &title)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.newParagraph(); // ol.newParagraph(); // FIXME:PARA
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man); ol.disableAllBut(OutputGenerator::Man);
ol.writeString("\n\n"); ol.writeString("\n\n");
...@@ -153,6 +153,7 @@ void DirDef::writeBriefDescription(OutputList &ol) ...@@ -153,6 +153,7 @@ void DirDef::writeBriefDescription(OutputList &ol)
{ {
if (!briefDescription().isEmpty()) if (!briefDescription().isEmpty())
{ {
ol.startParagraph();
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE);
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
...@@ -170,10 +171,11 @@ void DirDef::writeBriefDescription(OutputList &ol) ...@@ -170,10 +171,11 @@ void DirDef::writeBriefDescription(OutputList &ol)
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.pushGeneratorState(); //ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); //ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph();
ol.popGeneratorState(); //ol.popGeneratorState();
ol.endParagraph();
} }
ol.writeSynopsis(); ol.writeSynopsis();
} }
...@@ -188,10 +190,11 @@ void DirDef::writeDirectoryGraph(OutputList &ol) ...@@ -188,10 +190,11 @@ void DirDef::writeDirectoryGraph(OutputList &ol)
{ {
msg("Generating dependency graph for directory %s\n",displayName().data()); msg("Generating dependency graph for directory %s\n",displayName().data());
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.startParagraph();
ol.startDirDepGraph(); ol.startDirDepGraph();
//TODO: ol.parseText(theTranslator->trDirDepGraph()); //TODO: ol.parseText(theTranslator->trDirDepGraph());
ol.endDirDepGraph(dirDep); ol.endDirDepGraph(dirDep);
ol.endParagraph();
ol.enableAll(); ol.enableAll();
} }
} }
...@@ -220,6 +223,7 @@ void DirDef::writeSubDirList(OutputList &ol) ...@@ -220,6 +223,7 @@ void DirDef::writeSubDirList(OutputList &ol)
} }
if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(), ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),
FALSE, // indexWords FALSE, // indexWords
...@@ -229,7 +233,7 @@ void DirDef::writeSubDirList(OutputList &ol) ...@@ -229,7 +233,7 @@ void DirDef::writeSubDirList(OutputList &ol)
TRUE // link from index TRUE // link from index
); );
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
dd=m_subdirs.next(); dd=m_subdirs.next();
} }
...@@ -282,6 +286,7 @@ void DirDef::writeFileList(OutputList &ol) ...@@ -282,6 +286,7 @@ void DirDef::writeFileList(OutputList &ol)
ol.endMemberItem(); ol.endMemberItem();
if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(briefFile(),briefLine(),fd,0,fd->briefDescription(), ol.parseDoc(briefFile(),briefLine(),fd,0,fd->briefDescription(),
FALSE, // indexWords FALSE, // indexWords
...@@ -291,7 +296,7 @@ void DirDef::writeFileList(OutputList &ol) ...@@ -291,7 +296,7 @@ void DirDef::writeFileList(OutputList &ol)
TRUE // link from index TRUE // link from index
); );
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
fd=m_fileList->next(); fd=m_fileList->next();
} }
......
...@@ -473,6 +473,7 @@ class DocFormula : public DocNode ...@@ -473,6 +473,7 @@ class DocFormula : public DocNode
int id() const { return m_id; } int id() const { return m_id; }
DocNode *parent() const { return m_parent; } DocNode *parent() const { return m_parent; }
void accept(DocVisitor *v) { v->visit(this); } void accept(DocVisitor *v) { v->visit(this); }
bool isInline() { return text().at(0)!='\\'; }
private: private:
DocNode *m_parent; DocNode *m_parent;
...@@ -574,6 +575,7 @@ class DocXRefItem : public CompAccept<DocXRefItem>, public DocNode ...@@ -574,6 +575,7 @@ class DocXRefItem : public CompAccept<DocXRefItem>, public DocNode
QString key() const { return m_key; } QString key() const { return m_key; }
void accept(DocVisitor *v) { CompAccept<DocXRefItem>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocXRefItem>::accept(this,v); }
bool parse(); bool parse();
const QList<DocNode> &children() const { return m_children; }
private: private:
DocNode *m_parent; DocNode *m_parent;
...@@ -838,6 +840,7 @@ class DocSecRefItem : public CompAccept<DocSecRefItem>, public DocNode ...@@ -838,6 +840,7 @@ class DocSecRefItem : public CompAccept<DocSecRefItem>, public DocNode
DocNode *parent() const { return m_parent; } DocNode *parent() const { return m_parent; }
void accept(DocVisitor *v) { CompAccept<DocSecRefItem>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocSecRefItem>::accept(this,v); }
void parse(); void parse();
const QList<DocNode> &children() const { return m_children; }
private: private:
DocNode *m_parent; DocNode *m_parent;
...@@ -929,6 +932,7 @@ class DocSimpleSect : public CompAccept<DocSimpleSect>, public DocNode ...@@ -929,6 +932,7 @@ class DocSimpleSect : public CompAccept<DocSimpleSect>, public DocNode
int parseRcs(); int parseRcs();
int parseXml(); int parseXml();
void appendLinkWord(const QString &word); void appendLinkWord(const QString &word);
const QList<DocNode> &children() const { return m_children; }
private: private:
DocNode * m_parent; DocNode * m_parent;
...@@ -1104,6 +1108,7 @@ class DocHtmlListItem : public CompAccept<DocHtmlListItem>, public DocNode ...@@ -1104,6 +1108,7 @@ class DocHtmlListItem : public CompAccept<DocHtmlListItem>, public DocNode
void accept(DocVisitor *v) { CompAccept<DocHtmlListItem>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocHtmlListItem>::accept(this,v); }
int parse(); int parse();
int parseXml(); int parseXml();
const QList<DocNode> &children() const { return m_children; }
private: private:
DocNode * m_parent; DocNode * m_parent;
...@@ -1122,6 +1127,7 @@ class DocHtmlDescData : public CompAccept<DocHtmlDescData>, public DocNode ...@@ -1122,6 +1127,7 @@ class DocHtmlDescData : public CompAccept<DocHtmlDescData>, public DocNode
DocNode *parent() const { return m_parent; } DocNode *parent() const { return m_parent; }
void accept(DocVisitor *v) { CompAccept<DocHtmlDescData>::accept(this,v); } void accept(DocVisitor *v) { CompAccept<DocHtmlDescData>::accept(this,v); }
int parse(); int parse();
const QList<DocNode> &children() const { return m_children; }
private: private:
DocNode * m_parent; DocNode * m_parent;
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#include <qtextstream.h> #include <qtextstream.h>
#include <md5.h> #include <md5.h>
#define MAP_CMD "cmap" #define MAP_CMD "cmapx"
//#define FONTNAME "FreeSans" //#define FONTNAME "FreeSans"
#define FONTNAME getDotFontName() #define FONTNAME getDotFontName()
...@@ -141,75 +141,78 @@ static bool convertMapFile(QTextStream &t,const char *mapName, ...@@ -141,75 +141,78 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
int numBytes = f.readLine(buf.data(),maxLineLen); int numBytes = f.readLine(buf.data(),maxLineLen);
buf[numBytes-1]='\0'; buf[numBytes-1]='\0';
// search for href="...", store ... part in link if (buf.left(5)=="<area")
int indexS = buf.find("href=\""), indexE;
if (indexS!=-1 && (indexE=buf.find('"',indexS+6))!=-1)
{ {
QCString link = buf.mid(indexS+6,indexE-indexS-6); // search for href="...", store ... part in link
QCString result; int indexS = buf.find("href=\""), indexE;
QCString *dest; if (indexS!=-1 && (indexE=buf.find('"',indexS+6))!=-1)
if (urlOnly) // for user defined dot graphs
{ {
if (link.left(5)=="\\ref ") // \ref url QCString link = buf.mid(indexS+6,indexE-indexS-6);
QCString result;
QCString *dest;
if (urlOnly) // for user defined dot graphs
{ {
result="href=\""; if (link.left(5)=="\\ref ") // \ref url
// fake ref node to resolve the url
DocRef *df = new DocRef( (DocNode*) 0, link.mid(5), context );
if (!df->ref().isEmpty())
{ {
if ((dest=Doxygen::tagDestinationDict[df->ref()])) result="href=\"";
result += *dest + "/"; // fake ref node to resolve the url
DocRef *df = new DocRef( (DocNode*) 0, link.mid(5), context );
if (!df->ref().isEmpty())
{
if ((dest=Doxygen::tagDestinationDict[df->ref()]))
result += *dest + "/";
}
else if (!relPath.isEmpty())
{
result += relPath;
}
if (!df->file().isEmpty())
result += df->file().data() + Doxygen::htmlFileExtension;
if (!df->anchor().isEmpty())
result += "#" + df->anchor();
delete df;
result += "\"";
} }
else if (!relPath.isEmpty()) else
{ {
result += relPath; result = "href=\"" + link + "\"";
} }
if (!df->file().isEmpty())
result += df->file().data() + Doxygen::htmlFileExtension;
if (!df->anchor().isEmpty())
result += "#" + df->anchor();
delete df;
result += "\"";
}
else
{
result = "href=\"" + link + "\"";
} }
} else // ref$url (external ref via tag file), or $url (local ref)
else // ref$url (external ref via tag file), or $url (local ref)
{
int marker = link.find('$');
if (marker!=-1)
{ {
QCString ref = link.left(marker); int marker = link.find('$');
QCString url = link.mid(marker+1); if (marker!=-1)
if (!ref.isEmpty())
{
result = "doxygen=\"" + ref + ":";
if ((dest=Doxygen::tagDestinationDict[ref])) result += *dest + "/";
result += "\" ";
}
result+= "href=\"";
if (!ref.isEmpty())
{ {
if ((dest=Doxygen::tagDestinationDict[ref])) result += *dest + "/"; QCString ref = link.left(marker);
QCString url = link.mid(marker+1);
if (!ref.isEmpty())
{
result = "doxygen=\"" + ref + ":";
if ((dest=Doxygen::tagDestinationDict[ref])) result += *dest + "/";
result += "\" ";
}
result+= "href=\"";
if (!ref.isEmpty())
{
if ((dest=Doxygen::tagDestinationDict[ref])) result += *dest + "/";
}
else if (!relPath.isEmpty())
{
result += relPath;
}
result+= url + "\"";
} }
else if (!relPath.isEmpty()) else // should not happen, but handle properly anyway
{ {
result += relPath; result = "href=\"" + link + "\"";
} }
result+= url + "\"";
}
else // should not happen, but handle properly anyway
{
result = "href=\"" + link + "\"";
} }
QCString leftPart = buf.left(indexS);
QCString rightPart = buf.mid(indexE+1);
buf = leftPart + result + rightPart;
} }
QCString leftPart = buf.left(indexS); t << buf;
QCString rightPart = buf.mid(indexE+1);
buf = leftPart + result + rightPart;
} }
t << buf;
} }
return TRUE; return TRUE;
} }
...@@ -1128,8 +1131,8 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const ...@@ -1128,8 +1131,8 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) const
// write image and map in a table row // write image and map in a table row
QCString mapLabel = convertNameToFile(n->m_label); QCString mapLabel = convertNameToFile(n->m_label);
out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" alt=\"\" usemap=\"#" out << "<tr><td><img src=\"" << imgName << "\" border=\"0\" alt=\"\" usemap=\"#"
<< mapLabel << "_map\">" << endl; << mapLabel << "_map\"/>" << endl;
out << "<map name=\"" << mapLabel << "_map\">" << endl; out << "<map name=\"" << mapLabel << "_map\" id=\"" << mapLabel << "\">" << endl;
convertMapFile(out,mapName,""); convertMapFile(out,mapName,"");
out << "</map></td></tr>" << endl; out << "</map></td></tr>" << endl;
//thisDir.remove(mapName); //thisDir.remove(mapName);
...@@ -1915,7 +1918,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out, ...@@ -1915,7 +1918,7 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
if (format==BITMAP && generateImageMap) // produce HTML to include the image if (format==BITMAP && generateImageMap) // produce HTML to include the image
{ {
QCString mapLabel = convertNameToFile(m_startNode->m_label+"_"+mapName); QCString mapLabel = convertNameToFile(m_startNode->m_label+"_"+mapName);
out << "<p><center><img src=\"" << relPath << baseName << "." out << "<center><img src=\"" << relPath << baseName << "."
<< imgExt << "\" border=\"0\" usemap=\"#" << imgExt << "\" border=\"0\" usemap=\"#"
<< mapLabel << "\" alt=\""; << mapLabel << "\" alt=\"";
switch (m_graphType) switch (m_graphType)
...@@ -1930,14 +1933,14 @@ QCString DotClassGraph::writeGraph(QTextStream &out, ...@@ -1930,14 +1933,14 @@ QCString DotClassGraph::writeGraph(QTextStream &out,
ASSERT(0); ASSERT(0);
break; break;
} }
out << "\"></center>" << endl; out << "\"/></center>" << endl;
QString tmpstr; QString tmpstr;
QTextOStream tmpout(&tmpstr); QTextOStream tmpout(&tmpstr);
tmpout.setEncoding(tmpout.UnicodeUTF8); tmpout.setEncoding(tmpout.UnicodeUTF8);
convertMapFile(tmpout,baseName+".map",relPath); convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty()) if (!tmpstr.isEmpty())
{ {
out << "<map name=\"" << mapLabel << "\">" << endl; out << "<map name=\"" << mapLabel << "\" id=\"" << mapLabel << "\">" << endl;
out << tmpstr; out << tmpstr;
out << "</map>" << endl; out << "</map>" << endl;
} }
...@@ -2245,10 +2248,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -2245,10 +2248,9 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
if (format==BITMAP && generateImageMap) if (format==BITMAP && generateImageMap)
{ {
out << "<p><center><img src=\"" << relPath << baseName << "." out << "<center><img src=\"" << relPath << baseName << "."
<< imgExt << "\" border=\"0\" usemap=\"#" << imgExt << "\" border=\"0\" usemap=\"#"
<< mapName << "_map\" alt=\""; << mapName << "_map\" alt=\"\"/>";
out << "\">";
out << "</center>" << endl; out << "</center>" << endl;
QString tmpstr; QString tmpstr;
QTextOStream tmpout(&tmpstr); QTextOStream tmpout(&tmpstr);
...@@ -2256,7 +2258,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out, ...@@ -2256,7 +2258,7 @@ QCString DotInclDepGraph::writeGraph(QTextStream &out,
convertMapFile(tmpout,baseName+".map",relPath); convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty()) if (!tmpstr.isEmpty())
{ {
out << "<map name=\"" << mapName << "_map\">" << endl; out << "<map name=\"" << mapName << "_map\" id=\"" << mapName << "\">" << endl;
out << tmpstr; out << tmpstr;
out << "</map>" << endl; out << "</map>" << endl;
} }
...@@ -2539,7 +2541,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, ...@@ -2539,7 +2541,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
if (format==BITMAP && generateImageMap) if (format==BITMAP && generateImageMap)
{ {
out << "<p><center><img src=\"" << relPath << baseName << "." out << "<center><img src=\"" << relPath << baseName << "."
<< imgExt << "\" border=\"0\" usemap=\"#" << imgExt << "\" border=\"0\" usemap=\"#"
<< mapName << "_map\" alt=\""; << mapName << "_map\" alt=\"";
out << "\">"; out << "\">";
...@@ -2550,7 +2552,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format, ...@@ -2550,7 +2552,7 @@ QCString DotCallGraph::writeGraph(QTextStream &out, GraphOutputFormat format,
convertMapFile(tmpout,baseName+".map",relPath); convertMapFile(tmpout,baseName+".map",relPath);
if (!tmpstr.isEmpty()) if (!tmpstr.isEmpty())
{ {
out << "<map name=\"" << mapName << "_map\">" << endl; out << "<map name=\"" << mapName << "_map\" id=\"" << mapName << "\">" << endl;
out << tmpstr; out << tmpstr;
out << "</map>" << endl; out << "</map>" << endl;
} }
...@@ -2681,11 +2683,11 @@ QCString DotDirDeps::writeGraph(QTextStream &out, ...@@ -2681,11 +2683,11 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
if (format==BITMAP && generateImageMap) if (format==BITMAP && generateImageMap)
{ {
out << "<p><center><img src=\"" << relPath << baseName << "." out << "<center><img src=\"" << relPath << baseName << "."
<< imgExt << "\" border=\"0\" usemap=\"#" << imgExt << "\" border=\"0\" usemap=\"#"
<< mapName << "_map\" alt=\""; << mapName << "_map\" alt=\"";
out << m_dir->displayName(); out << convertToXML(m_dir->displayName());
out << "\">"; out << "\"/>";
out << "</center>" << endl; out << "</center>" << endl;
QString tmpstr; QString tmpstr;
QTextOStream tmpout(&tmpstr); QTextOStream tmpout(&tmpstr);
...@@ -2693,7 +2695,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out, ...@@ -2693,7 +2695,7 @@ QCString DotDirDeps::writeGraph(QTextStream &out,
convertMapFile(tmpout,baseName+".map",relPath,TRUE); convertMapFile(tmpout,baseName+".map",relPath,TRUE);
if (!tmpstr.isEmpty()) if (!tmpstr.isEmpty())
{ {
out << "<map name=\"" << mapName << "_map\">" << endl; out << "<map name=\"" << mapName << "_map\" id=\"" << mapName << "\">" << endl;
out << tmpstr; out << tmpstr;
out << "</map>" << endl; out << "</map>" << endl;
} }
...@@ -3175,8 +3177,8 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo ...@@ -3175,8 +3177,8 @@ QCString DotGroupCollaboration::writeGraph( QTextStream &t, GraphOutputFormat fo
QCString mapLabel = convertNameToFile(baseName); QCString mapLabel = convertNameToFile(baseName);
t << "<center><table><tr><td><img src=\"" << relPath << imgName t << "<center><table><tr><td><img src=\"" << relPath << imgName
<< "\" border=\"0\" alt=\"\" usemap=\"#" << "\" border=\"0\" alt=\"\" usemap=\"#"
<< mapLabel << "_map\">" << endl; << mapLabel << "_map\"/>" << endl;
t << "<map name=\"" << mapLabel << "_map\">" << endl; t << "<map name=\"" << mapLabel << "_map\" id=\"" << mapLabel << "\">" << endl;
convertMapFile(t,mapName,relPath); convertMapFile(t,mapName,relPath);
t << "</map></td></tr></table></center>" << endl; t << "</map></td></tr></table></center>" << endl;
thisDir.remove(mapName); thisDir.remove(mapName);
......
/* The standard CSS for doxygen */
body, table, div, p, dl { body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px; font-size: 12px;
...@@ -18,12 +20,40 @@ h3 { ...@@ -18,12 +20,40 @@ h3 {
font-size: 100%; font-size: 100%;
} }
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd {
margin-top: 0px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
/* @end */ /* @end */
caption { caption {
font-weight: bold; font-weight: bold;
} }
span.legend {
font-size: 70%;
text-align: center;
}
div.qindex, div.navtab{ div.qindex, div.navtab{
background-color: #e8eef2; background-color: #e8eef2;
border: 1px solid #84b0c7; border: 1px solid #84b0c7;
...@@ -161,6 +191,15 @@ img.formulaInl { ...@@ -161,6 +191,15 @@ img.formulaInl {
vertical-align: middle; vertical-align: middle;
} }
img.center {
border: 0;
}
img.footer {
border: 0;
vertical-align: middle;
}
/* @group Code Colorization */ /* @group Code Colorization */
span.keyword { span.keyword {
...@@ -267,8 +306,13 @@ hr { ...@@ -267,8 +306,13 @@ hr {
border-top: 1px solid #ccc; border-top: 1px solid #ccc;
} }
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams { .memTemplParams {
color: #606060; color: #606060;
white-space: nowrap;
} }
/* @end */ /* @end */
...@@ -295,6 +339,7 @@ hr { ...@@ -295,6 +339,7 @@ hr {
.memitem { .memitem {
padding: 0; padding: 0;
margin-bottom: 10px;
} }
.memname { .memname {
...@@ -312,8 +357,11 @@ hr { ...@@ -312,8 +357,11 @@ hr {
font-weight: bold; font-weight: bold;
-webkit-border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-topleft: 8px; -moz-border-radius-topleft: 8px;
-moz-border-radius-topright: 8px; -moz-border-radius-topright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
} }
.memdoc { .memdoc {
...@@ -322,8 +370,10 @@ hr { ...@@ -322,8 +370,10 @@ hr {
border-top-width: 0; border-top-width: 0;
-webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px; -webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px; -moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
} }
.paramkey { .paramkey {
......
"/* The standard CSS for doxygen */\n"
"\n"
"body, table, div, p, dl {\n" "body, table, div, p, dl {\n"
" font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\n" " font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\n"
" font-size: 12px;\n" " font-size: 12px;\n"
...@@ -18,12 +20,40 @@ ...@@ -18,12 +20,40 @@
" font-size: 100%;\n" " font-size: 100%;\n"
"}\n" "}\n"
"\n" "\n"
"dt {\n"
" font-weight: bold;\n"
"}\n"
"\n"
"div.multicol {\n"
" -moz-column-gap: 1em;\n"
" -webkit-column-gap: 1em;\n"
" -moz-column-count: 3;\n"
" -webkit-column-count: 3;\n"
"}\n"
"\n"
"p.startli, p.startdd {\n"
" margin-top: 0px;\n"
"}\n"
"\n"
"p.endli {\n"
" margin-bottom: 0px;\n"
"}\n"
"\n"
"p.enddd {\n"
" margin-bottom: 4px;\n"
"}\n"
"\n"
"/* @end */\n" "/* @end */\n"
"\n" "\n"
"caption {\n" "caption {\n"
" font-weight: bold;\n" " font-weight: bold;\n"
"}\n" "}\n"
"\n" "\n"
"span.legend {\n"
" font-size: 70%;\n"
" text-align: center;\n"
"}\n"
"\n"
"div.qindex, div.navtab{\n" "div.qindex, div.navtab{\n"
" background-color: #e8eef2;\n" " background-color: #e8eef2;\n"
" border: 1px solid #84b0c7;\n" " border: 1px solid #84b0c7;\n"
...@@ -161,6 +191,15 @@ ...@@ -161,6 +191,15 @@
" vertical-align: middle;\n" " vertical-align: middle;\n"
"}\n" "}\n"
"\n" "\n"
"img.center {\n"
" border: 0;\n"
"}\n"
"\n"
"img.footer {\n"
" border: 0;\n"
" vertical-align: middle;\n"
"}\n"
"\n"
"/* @group Code Colorization */\n" "/* @group Code Colorization */\n"
"\n" "\n"
"span.keyword {\n" "span.keyword {\n"
...@@ -267,8 +306,13 @@ ...@@ -267,8 +306,13 @@
" border-top: 1px solid #ccc;\n" " border-top: 1px solid #ccc;\n"
"}\n" "}\n"
"\n" "\n"
".memItemLeft, .memTemplItemLeft {\n"
" white-space: nowrap;\n"
"}\n"
"\n"
".memTemplParams {\n" ".memTemplParams {\n"
" color: #606060;\n" " color: #606060;\n"
" white-space: nowrap;\n"
"}\n" "}\n"
"\n" "\n"
"/* @end */\n" "/* @end */\n"
...@@ -295,6 +339,7 @@ ...@@ -295,6 +339,7 @@
"\n" "\n"
".memitem {\n" ".memitem {\n"
" padding: 0;\n" " padding: 0;\n"
" margin-bottom: 10px;\n"
"}\n" "}\n"
"\n" "\n"
".memname {\n" ".memname {\n"
...@@ -312,8 +357,11 @@ ...@@ -312,8 +357,11 @@
" font-weight: bold;\n" " font-weight: bold;\n"
" -webkit-border-top-left-radius: 8px;\n" " -webkit-border-top-left-radius: 8px;\n"
" -webkit-border-top-right-radius: 8px;\n" " -webkit-border-top-right-radius: 8px;\n"
" -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n"
" -moz-border-radius-topleft: 8px;\n" " -moz-border-radius-topleft: 8px;\n"
" -moz-border-radius-topright: 8px;\n" " -moz-border-radius-topright: 8px;\n"
" -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n"
"\n"
"}\n" "}\n"
"\n" "\n"
".memdoc {\n" ".memdoc {\n"
...@@ -322,8 +370,10 @@ ...@@ -322,8 +370,10 @@
" border-top-width: 0;\n" " border-top-width: 0;\n"
" -webkit-border-bottom-left-radius: 8px;\n" " -webkit-border-bottom-left-radius: 8px;\n"
" -webkit-border-bottom-right-radius: 8px;\n" " -webkit-border-bottom-right-radius: 8px;\n"
" -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);\n"
" -moz-border-radius-bottomleft: 8px;\n" " -moz-border-radius-bottomleft: 8px;\n"
" -moz-border-radius-bottomright: 8px;\n" " -moz-border-radius-bottomright: 8px;\n"
" -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;\n"
"}\n" "}\n"
"\n" "\n"
".paramkey {\n" ".paramkey {\n"
......
...@@ -186,7 +186,7 @@ void FileDef::writeDetailedDescription(OutputList &ol,const QCString &title) ...@@ -186,7 +186,7 @@ void FileDef::writeDetailedDescription(OutputList &ol,const QCString &title)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.newParagraph(); // ol.newParagraph(); // FIXME:PARA
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man); ol.disableAllBut(OutputGenerator::Man);
ol.writeString("\n\n"); ol.writeString("\n\n");
...@@ -220,7 +220,9 @@ void FileDef::writeBriefDescription(OutputList &ol) ...@@ -220,7 +220,9 @@ void FileDef::writeBriefDescription(OutputList &ol)
{ {
if (!briefDescription().isEmpty()) if (!briefDescription().isEmpty())
{ {
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.startParagraph();
ol.parseDoc(briefFile(),briefLine(),this,0,
briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.writeString(" \n"); ol.writeString(" \n");
...@@ -236,11 +238,12 @@ void FileDef::writeBriefDescription(OutputList &ol) ...@@ -236,11 +238,12 @@ void FileDef::writeBriefDescription(OutputList &ol)
ol.endTextLink(); ol.endTextLink();
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.endParagraph();
ol.pushGeneratorState(); //ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); //ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph();
ol.popGeneratorState(); //ol.popGeneratorState();
} }
ol.writeSynopsis(); ol.writeSynopsis();
} }
...@@ -337,7 +340,6 @@ void FileDef::writeIncludeGraph(OutputList &ol) ...@@ -337,7 +340,6 @@ void FileDef::writeIncludeGraph(OutputList &ol)
{ {
ol.startTextBlock(); ol.startTextBlock();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.startInclDepGraph(); ol.startInclDepGraph();
ol.parseText(theTranslator->trInclDepGraph(name())); ol.parseText(theTranslator->trInclDepGraph(name()));
ol.endInclDepGraph(incDepGraph); ol.endInclDepGraph(incDepGraph);
...@@ -358,7 +360,6 @@ void FileDef::writeIncludedByGraph(OutputList &ol) ...@@ -358,7 +360,6 @@ void FileDef::writeIncludedByGraph(OutputList &ol)
{ {
ol.startTextBlock(); ol.startTextBlock();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.startInclDepGraph(); ol.startInclDepGraph();
ol.parseText(theTranslator->trInclByDepGraph()); ol.parseText(theTranslator->trInclByDepGraph());
ol.endInclDepGraph(incDepGraph); ol.endInclDepGraph(incDepGraph);
...@@ -376,10 +377,11 @@ void FileDef::writeSourceLink(OutputList &ol) ...@@ -376,10 +377,11 @@ void FileDef::writeSourceLink(OutputList &ol)
if (generateSourceFile()) if (generateSourceFile())
{ {
ol.disableAllBut(OutputGenerator::Html); ol.disableAllBut(OutputGenerator::Html);
ol.newParagraph(); ol.startParagraph();
ol.startTextLink(includeName(),0); ol.startTextLink(includeName(),0);
ol.parseText(theTranslator->trGotoSourceCode()); ol.parseText(theTranslator->trGotoSourceCode());
ol.endTextLink(); ol.endTextLink();
ol.endParagraph();
ol.enableAll(); ol.enableAll();
} }
} }
......
/****************************************************************************** /******************************************************************************
i
* *
* *
* Copyright (C) 1997-2008 by Dimitri van Heesch. * Copyright (C) 1997-2008 by Dimitri van Heesch.
......
...@@ -293,7 +293,7 @@ unsigned char ftv2vertline_png[] = { ...@@ -293,7 +293,7 @@ unsigned char ftv2vertline_png[] = {
FTVImageInfo image_info[] = FTVImageInfo image_info[] =
{ {
{ "&nbsp;", "ftv2blank.png",ftv2blank_png,174,16,22 }, { "&#160;", "ftv2blank.png",ftv2blank_png,174,16,22 },
{ "*", "ftv2doc.png",ftv2doc_png,255,24,22 }, { "*", "ftv2doc.png",ftv2doc_png,255,24,22 },
{ "+", "ftv2folderclosed.png",ftv2folderclosed_png,259,24,22 }, { "+", "ftv2folderclosed.png",ftv2folderclosed_png,259,24,22 },
{ "-", "ftv2folderopen.png",ftv2folderopen_png,261,24,22 }, { "-", "ftv2folderopen.png",ftv2folderopen_png,261,24,22 },
...@@ -585,9 +585,10 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -585,9 +585,10 @@ void FTVHelp::generateTreeView(QString* OutString)
#if QT_VERSION >= 200 #if QT_VERSION >= 200
t.setEncoding(QTextStream::UnicodeUTF8); t.setEncoding(QTextStream::UnicodeUTF8);
#endif #endif
t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\">\n"; //t << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\">\n";
t << "<html><head>"; t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">\n";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">\n"; t << "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n";
t << "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/>\n";
t << "<title>"; t << "<title>";
if (Config_getString("PROJECT_NAME").isEmpty()) if (Config_getString("PROJECT_NAME").isEmpty())
{ {
...@@ -597,12 +598,14 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -597,12 +598,14 @@ void FTVHelp::generateTreeView(QString* OutString)
{ {
t << Config_getString("PROJECT_NAME"); t << Config_getString("PROJECT_NAME");
} }
t << "</title></head>" << endl; t << "</title>\n</head>" << endl;
t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl; t << "<frameset cols=\"" << Config_getInt("TREEVIEW_WIDTH") << ",*\">" << endl;
t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\">" << endl; t << " <frame src=\"tree" << Doxygen::htmlFileExtension << "\" name=\"treefrm\"/>" << endl;
t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\">" << endl; t << " <frame src=\"main" << Doxygen::htmlFileExtension << "\" name=\"basefrm\"/>" << endl;
t << " <noframes>" << endl; t << " <noframes>" << endl;
t << " <body>" << endl;
t << " <a href=\"main" << Doxygen::htmlFileExtension << "\">Frames are disabled. Click here to go to the main page.</a>" << endl; t << " <a href=\"main" << Doxygen::htmlFileExtension << "\">Frames are disabled. Click here to go to the main page.</a>" << endl;
t << " </body>" << endl;
t << " </noframes>" << endl; t << " </noframes>" << endl;
t << "</frameset>" << endl; t << "</frameset>" << endl;
t << "</html>" << endl; t << "</html>" << endl;
...@@ -618,9 +621,10 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -618,9 +621,10 @@ void FTVHelp::generateTreeView(QString* OutString)
if (m_topLevelIndex) if (m_topLevelIndex)
{ {
t << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n"; t << "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n";
t << " <head>\n"; t << " <head>\n";
t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\" />\n"; t << " <meta http-equiv=\"Content-Type\" content=\"text/xhtml;charset=UTF-8\"/>\n";
t << " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n"; t << " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />\n";
t << " <meta http-equiv=\"Content-Language\" content=\"en\" />\n"; t << " <meta http-equiv=\"Content-Language\" content=\"en\" />\n";
t << " <link rel=\"stylesheet\" href=\""; t << " <link rel=\"stylesheet\" href=\"";
...@@ -638,7 +642,7 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -638,7 +642,7 @@ void FTVHelp::generateTreeView(QString* OutString)
} }
t << cssfi.fileName(); t << cssfi.fileName();
} }
t << "\">" << endl; t << "\"/>" << endl;
t << " <title>TreeView</title>\n"; t << " <title>TreeView</title>\n";
} }
t << " <script type=\"text/javascript\">\n"; t << " <script type=\"text/javascript\">\n";
...@@ -720,7 +724,7 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -720,7 +724,7 @@ void FTVHelp::generateTreeView(QString* OutString)
else else
{ {
t << " <div class=\"directory-alt\">\n"; t << " <div class=\"directory-alt\">\n";
t << " <br>\n"; t << " <br/>\n";
} }
t << " <div style=\"display: block;\">\n"; t << " <div style=\"display: block;\">\n";
...@@ -729,7 +733,7 @@ void FTVHelp::generateTreeView(QString* OutString) ...@@ -729,7 +733,7 @@ void FTVHelp::generateTreeView(QString* OutString)
t << " </div>\n"; t << " </div>\n";
t << " </div>\n"; t << " </div>\n";
if (!m_topLevelIndex) if (m_topLevelIndex)
{ {
t << " </body>\n"; t << " </body>\n";
t << "</html>\n"; t << "</html>\n";
......
...@@ -63,8 +63,8 @@ extern FTVImageInfo image_info[]; ...@@ -63,8 +63,8 @@ extern FTVImageInfo image_info[];
#define FTV_IMGATTRIBS(name) \ #define FTV_IMGATTRIBS(name) \
"src=\"" FTV_ICON_FILE(name) "\" " \ "src=\"" FTV_ICON_FILE(name) "\" " \
"alt=\"" << FTV_INFO(name).alt << "\" " \ "alt=\"" << FTV_INFO(name).alt << "\" " \
"width=" << FTV_INFO(name).width << " " \ "width=\"" << FTV_INFO(name).width << "\" " \
"height=" << FTV_INFO(name).height << " " "height=\"" << FTV_INFO(name).height << "\" "
/*! A class that generates a dynamic tree view side panel. /*! A class that generates a dynamic tree view side panel.
*/ */
......
...@@ -527,7 +527,7 @@ void GroupDef::writeDetailedDescription(OutputList &ol,const QCString &title) ...@@ -527,7 +527,7 @@ void GroupDef::writeDetailedDescription(OutputList &ol,const QCString &title)
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.newParagraph(); // ol.newParagraph(); // FIXME:PARA
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man); ol.disableAllBut(OutputGenerator::Man);
ol.writeString("\n\n"); ol.writeString("\n\n");
...@@ -552,7 +552,9 @@ void GroupDef::writeBriefDescription(OutputList &ol) ...@@ -552,7 +552,9 @@ void GroupDef::writeBriefDescription(OutputList &ol)
{ {
if (!briefDescription().isEmpty()) if (!briefDescription().isEmpty())
{ {
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.startParagraph();
ol.parseDoc(briefFile(),briefLine(),this,0,
briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.writeString(" \n"); ol.writeString(" \n");
...@@ -569,10 +571,11 @@ void GroupDef::writeBriefDescription(OutputList &ol) ...@@ -569,10 +571,11 @@ void GroupDef::writeBriefDescription(OutputList &ol)
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.pushGeneratorState(); //ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); //ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph();
ol.popGeneratorState(); //ol.popGeneratorState();
ol.endParagraph();
} }
} }
...@@ -586,10 +589,11 @@ void GroupDef::writeGroupGraph(OutputList &ol) ...@@ -586,10 +589,11 @@ void GroupDef::writeGroupGraph(OutputList &ol)
msg("Generating dependency graph for group %s\n",qualifiedName().data()); msg("Generating dependency graph for group %s\n",qualifiedName().data());
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.startParagraph();
ol.startGroupCollaboration(); ol.startGroupCollaboration();
ol.parseText(theTranslator->trCollaborationDiagram(title)); ol.parseText(theTranslator->trCollaborationDiagram(title));
ol.endGroupCollaboration(graph); ol.endGroupCollaboration(graph);
ol.endParagraph();
ol.popGeneratorState(); ol.popGeneratorState();
} }
} }
...@@ -618,10 +622,11 @@ void GroupDef::writeFiles(OutputList &ol,const QCString &title) ...@@ -618,10 +622,11 @@ void GroupDef::writeFiles(OutputList &ol,const QCString &title)
ol.endMemberItem(); ol.endMemberItem();
if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!fd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(briefFile(),briefLine(),fd,0,fd->briefDescription(),FALSE,FALSE); ol.parseDoc(briefFile(),briefLine(),fd,0,fd->briefDescription(),FALSE,FALSE);
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
fd=fileList->next(); fd=fileList->next();
} }
...@@ -659,10 +664,11 @@ void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title) ...@@ -659,10 +664,11 @@ void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title)
ol.endMemberItem(); ol.endMemberItem();
if (!gd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!gd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(briefFile(),briefLine(),gd,0,gd->briefDescription(),FALSE,FALSE); ol.parseDoc(briefFile(),briefLine(),gd,0,gd->briefDescription(),FALSE,FALSE);
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
gd=groupList->next(); gd=groupList->next();
} }
...@@ -693,10 +699,11 @@ void GroupDef::writeDirs(OutputList &ol,const QCString &title) ...@@ -693,10 +699,11 @@ void GroupDef::writeDirs(OutputList &ol,const QCString &title)
} }
if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!dd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),FALSE,FALSE); ol.parseDoc(briefFile(),briefLine(),dd,0,dd->briefDescription(),FALSE,FALSE);
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
dd=dirList->next(); dd=dirList->next();
} }
......
This diff is collapsed.
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <qstack.h> #include <qstack.h>
#include <qcstring.h> #include <qcstring.h>
class DocNode;
class QTextStream; class QTextStream;
class CodeOutputInterface; class CodeOutputInterface;
class QString; class QString;
...@@ -141,6 +142,9 @@ class HtmlDocVisitor : public DocVisitor ...@@ -141,6 +142,9 @@ class HtmlDocVisitor : public DocVisitor
void pushEnabled(); void pushEnabled();
void popEnabled(); void popEnabled();
void forceEndParagraph(DocNode *n);
void forceStartParagraph(DocNode *n);
//-------------------------------------- //--------------------------------------
// state variables // state variables
//-------------------------------------- //--------------------------------------
......
This diff is collapsed.
...@@ -63,10 +63,11 @@ class HtmlGenerator : public OutputGenerator ...@@ -63,10 +63,11 @@ class HtmlGenerator : public OutputGenerator
void startTitle() { t << "<h1>"; } void startTitle() { t << "<h1>"; }
void endTitle() { t << "</h1>"; } void endTitle() { t << "</h1>"; }
void newParagraph();
void startParagraph(); void startParagraph();
void endParagraph(); void endParagraph();
void writeString(const char *text); void writeString(const char *text);
void startIndexListItem();
void endIndexListItem();
void startIndexList(); void startIndexList();
void endIndexList(); void endIndexList();
void startIndexKey(); void startIndexKey();
...@@ -92,7 +93,8 @@ class HtmlGenerator : public OutputGenerator ...@@ -92,7 +93,8 @@ class HtmlGenerator : public OutputGenerator
void endTypewriter() { t << "</code>"; } void endTypewriter() { t << "</code>"; }
void startGroupHeader(); void startGroupHeader();
void endGroupHeader(); void endGroupHeader();
void writeListItem() { t << "<li>"; } void startItemListItem() { t << "<li>"; }
void endItemListItem() { t << "</li>\n"; }
void startMemberSections(); void startMemberSections();
void endMemberSections(); void endMemberSections();
...@@ -122,7 +124,7 @@ class HtmlGenerator : public OutputGenerator ...@@ -122,7 +124,7 @@ class HtmlGenerator : public OutputGenerator
void startMemberDescription(); void startMemberDescription();
void endMemberDescription(); void endMemberDescription();
void writeRuler() { t << "<hr>"; } void writeRuler() { t << "<hr/>"; }
void writeAnchor(const char *,const char *name) void writeAnchor(const char *,const char *name)
{ t << "<a name=\"" << name <<"\"></a>"; } { t << "<a name=\"" << name <<"\"></a>"; }
void startCodeFragment() { t << PREFRAG_START; } void startCodeFragment() { t << PREFRAG_START; }
...@@ -134,10 +136,12 @@ class HtmlGenerator : public OutputGenerator ...@@ -134,10 +136,12 @@ class HtmlGenerator : public OutputGenerator
void endEmphasis() { t << "</em>"; } void endEmphasis() { t << "</em>"; }
void startBold() { t << "<b>"; } void startBold() { t << "<b>"; }
void endBold() { t << "</b>"; } void endBold() { t << "</b>"; }
void startDescription() { t << endl << "<dl compact>" << endl; } void startDescription() { t << endl << "<dl>" << endl; }
void endDescription() { t << endl << "</dl>" << endl; } void endDescription() { t << endl << "</dl>\n" << endl; }
void startDescItem() { t << "<dt>"; } void startDescItem() { t << "<dt>"; }
void endDescItem() { t << "<dd>"; } void endDescItem() { t << "</dt>"; }
void startDescForItem() { t << "<dd>"; }
void endDescForItem() { t << "</dd>\n"; }
void lineBreak(const char *style); void lineBreak(const char *style);
void writeChar(char c); void writeChar(char c);
void startMemberDoc(const char *,const char *,const char *,const char *); void startMemberDoc(const char *,const char *,const char *,const char *);
...@@ -160,13 +164,13 @@ class HtmlGenerator : public OutputGenerator ...@@ -160,13 +164,13 @@ class HtmlGenerator : public OutputGenerator
void endCenter() { t << "</center>" << endl; } void endCenter() { t << "</center>" << endl; }
void startSmall() { t << "<small>" << endl; } void startSmall() { t << "<small>" << endl; }
void endSmall() { t << "</small>" << endl; } void endSmall() { t << "</small>" << endl; }
void startDescList(SectionTypes) { t << "<dl compact><dt><b>" << endl; } //void startDescList(SectionTypes) { t << "<dl compact><dt><b>" << endl; }
void endDescList() { t << "</dl>"; } //void endDescList() { t << "</dl>"; }
void startSimpleSect(SectionTypes,const char *,const char *,const char *); void startSimpleSect(SectionTypes,const char *,const char *,const char *);
void endSimpleSect(); void endSimpleSect();
void startParamList(ParamListTypes,const char *); void startParamList(ParamListTypes,const char *);
void endParamList(); void endParamList();
void writeDescItem() { t << "<dd>" << endl; } //void writeDescItem() { t << "<dd>" << endl; }
void startSection(const char *,const char *,SectionInfo::SectionType); void startSection(const char *,const char *,SectionInfo::SectionType);
void endSection(const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType);
void addIndexItem(const char *,const char *); void addIndexItem(const char *,const char *);
......
...@@ -336,6 +336,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level,F ...@@ -336,6 +336,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level,F
ftv->incContentsDepth(); ftv->incContentsDepth();
started=TRUE; started=TRUE;
} }
ol.startIndexListItem();
//printf("Passed...\n"); //printf("Passed...\n");
bool hasChildren = !cd->visited && !hideSuper && classHasVisibleChildren(cd); bool hasChildren = !cd->visited && !hideSuper && classHasVisibleChildren(cd);
//printf("tree4: Has children %s: %d\n",cd->name().data(),hasChildren); //printf("tree4: Has children %s: %d\n",cd->name().data(),hasChildren);
...@@ -371,6 +372,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level,F ...@@ -371,6 +372,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level,F
cd->visited=TRUE; cd->visited=TRUE;
writeClassTree(ol,cd->subClasses(),wasVisited,level+1,ftv); writeClassTree(ol,cd->subClasses(),wasVisited,level+1,ftv);
} }
ol.endIndexListItem();
} }
} }
if (started) if (started)
...@@ -500,6 +502,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT ...@@ -500,6 +502,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT
Doxygen::indexList.incContentsDepth(); Doxygen::indexList.incContentsDepth();
started=TRUE; started=TRUE;
} }
ol.startIndexListItem();
bool hasChildren = !cd->visited && classHasVisibleChildren(cd); bool hasChildren = !cd->visited && classHasVisibleChildren(cd);
//printf("list: Has children %s: %d\n",cd->name().data(),hasChildren); //printf("list: Has children %s: %d\n",cd->name().data(),hasChildren);
if (cd->isLinkable()) if (cd->isLinkable())
...@@ -533,6 +536,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT ...@@ -533,6 +536,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT
writeClassTree(ol,cd->subClasses(),cd->visited,1,ftv); writeClassTree(ol,cd->subClasses(),cd->visited,1,ftv);
cd->visited=TRUE; cd->visited=TRUE;
} }
ol.endIndexListItem();
} }
} }
} }
...@@ -617,10 +621,11 @@ void writeHierarchicalIndex(OutputList &ol) ...@@ -617,10 +621,11 @@ void writeHierarchicalIndex(OutputList &ol)
{ {
ol.disable(OutputGenerator::Latex); ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.startParagraph();
ol.startTextLink("inherits",0); ol.startTextLink("inherits",0);
ol.parseText(theTranslator->trGotoGraphicalHierarchy()); ol.parseText(theTranslator->trGotoGraphicalHierarchy());
ol.endTextLink(); ol.endTextLink();
ol.newParagraph(); ol.endParagraph();
ol.enable(OutputGenerator::Latex); ol.enable(OutputGenerator::Latex);
ol.enable(OutputGenerator::RTF); ol.enable(OutputGenerator::RTF);
} }
...@@ -665,10 +670,11 @@ void writeGraphicalClassHierarchy(OutputList &ol) ...@@ -665,10 +670,11 @@ void writeGraphicalClassHierarchy(OutputList &ol)
endTitle(ol,0,0); endTitle(ol,0,0);
ol.startTextBlock(); ol.startTextBlock();
Doxygen::indexList.addContentsItem(FALSE,theTranslator->trGraphicalHierarchy(),0,"inherits",0); Doxygen::indexList.addContentsItem(FALSE,theTranslator->trGraphicalHierarchy(),0,"inherits",0);
ol.startParagraph();
ol.startTextLink("hierarchy",0); ol.startTextLink("hierarchy",0);
ol.parseText(theTranslator->trGotoTextualHierarchy()); ol.parseText(theTranslator->trGotoTextualHierarchy());
ol.endTextLink(); ol.endTextLink();
ol.newParagraph(); ol.endParagraph();
//parseText(ol,theTranslator->trClassHierarchyDescription()); //parseText(ol,theTranslator->trClassHierarchyDescription());
//ol.newParagraph(); //ol.newParagraph();
ol.endTextBlock(); ol.endTextBlock();
...@@ -1080,6 +1086,25 @@ void writeAnnotatedClassList(OutputList &ol) ...@@ -1080,6 +1086,25 @@ void writeAnnotatedClassList(OutputList &ol)
ol.endIndexList(); ol.endIndexList();
} }
static QCString letterToLabel(char startLetter)
{
QCString s(5);
if (isId(startLetter))
{
s[0]=startLetter; s[1]=0;
}
else
{
const char hex[]="0123456789abcdef";
s[0]='0';
s[1]='x';
s[2]=hex[startLetter>>4];
s[3]=hex[startLetter&0xF];
s[4]=0;
}
return s;
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
class PrefixIgnoreClassList : public ClassList class PrefixIgnoreClassList : public ClassList
...@@ -1123,7 +1148,7 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1123,7 +1148,7 @@ void writeAlphabeticalClassList(OutputList &ol)
} }
} }
QCString alphaLinks = "<p><div class=\"qindex\">"; QCString alphaLinks = "<div class=\"qindex\">";
int l; int l;
for (l = 0; l < 256; l++) for (l = 0; l < 256; l++)
{ {
...@@ -1137,7 +1162,7 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1137,7 +1162,7 @@ void writeAlphabeticalClassList(OutputList &ol)
} }
} }
alphaLinks += "</div><p>\n"; alphaLinks += "</div>\n";
ol.writeString(alphaLinks); ol.writeString(alphaLinks);
ol.writeString("<table align=\"center\" width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n"); ol.writeString("<table align=\"center\" width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
...@@ -1236,7 +1261,7 @@ void writeAlphabeticalClassList(OutputList &ol) ...@@ -1236,7 +1261,7 @@ void writeAlphabeticalClassList(OutputList &ol)
//printf("head ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>"); //printf("head ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>");
int index = getPrefixIndex(cd->className()); int index = getPrefixIndex(cd->className());
startLetter=toupper(cd->className().at(index)); startLetter=toupper(cd->className().at(index));
char s[2]; s[0]=startLetter; s[1]=0; QCString s = letterToLabel(startLetter);
//ol.writeIndexHeading(s); //ol.writeIndexHeading(s);
ol.writeString("<a name=\"letter_"); ol.writeString("<a name=\"letter_");
ol.writeString(s); ol.writeString(s);
...@@ -1437,6 +1462,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page, ...@@ -1437,6 +1462,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
QCString prevDefName; QCString prevDefName;
bool first=TRUE; bool first=TRUE;
bool firstSection=TRUE; bool firstSection=TRUE;
bool firstItem=TRUE;
for (pi=startIndex; pi<=endIndex; pi++) // page==-1 => pi=[0..127], page!=-1 => pi=page for (pi=startIndex; pi<=endIndex; pi++) // page==-1 => pi=[0..127], page!=-1 => pi=page
{ {
MemberIndexList *ml = &memberLists[pi]; MemberIndexList *ml = &memberLists[pi];
...@@ -1457,16 +1483,20 @@ static void writeMemberList(OutputList &ol,bool useSections,int page, ...@@ -1457,16 +1483,20 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
tolower(name.at(startIndex))!=tolower(prevName.at(0))) && tolower(name.at(startIndex))!=tolower(prevName.at(0))) &&
useSections) // new section useSections) // new section
{ {
if (!firstItem) ol.endItemListItem();
if (!firstSection) ol.endItemList(); if (!firstSection) ol.endItemList();
char cs[2]; char cl[2];
cs[0]=tolower(name.at(startIndex));cs[1]='\0'; cl[0] = tolower(name.at(startIndex));
cl[1] = 0;
QCString cs = letterToLabel(cl[0]);
QCString anchor=(QCString)"index_"+cs; QCString anchor=(QCString)"index_"+cs;
QCString title=(QCString)"- "+cs+" -"; QCString title=(QCString)"- "+cl+" -";
ol.startSection(anchor,title,SectionInfo::Subsection); ol.startSection(anchor,title,SectionInfo::Subsection);
ol.docify(title); ol.docify(title);
ol.endSection(anchor,SectionInfo::Subsection); ol.endSection(anchor,SectionInfo::Subsection);
ol.startItemList(); ol.startItemList();
firstSection=FALSE; firstSection=FALSE;
firstItem=TRUE;
} }
else if (!useSections && first) else if (!useSections && first)
{ {
...@@ -1475,7 +1505,9 @@ static void writeMemberList(OutputList &ol,bool useSections,int page, ...@@ -1475,7 +1505,9 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
} }
// member name // member name
ol.writeListItem(); if (!firstItem) ol.endItemListItem();
ol.startItemListItem();
firstItem=FALSE;
ol.docify(name); ol.docify(name);
if (isFunc) ol.docify("()"); if (isFunc) ol.docify("()");
ol.writeString("\n"); ol.writeString("\n");
...@@ -1494,6 +1526,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page, ...@@ -1494,6 +1526,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
writeLinkForMemberMap[(int)type](ol,md,sep,prevDefName); writeLinkForMemberMap[(int)type](ol,md,sep,prevDefName);
} }
} }
if (!firstItem) ol.endItemListItem();
ol.endItemList(); ol.endItemList();
} }
...@@ -1848,7 +1881,7 @@ static void writeClassMemberIndexFiltered(OutputList &ol, ClassMemberHighlight h ...@@ -1848,7 +1881,7 @@ static void writeClassMemberIndexFiltered(OutputList &ol, ClassMemberHighlight h
// normal lists otherwise // normal lists otherwise
ol.writeString("&nbsp;"); ol.writeString("&nbsp;");
} }
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
writeMemberList(ol,quickIndex, writeMemberList(ol,quickIndex,
multiPageIndex?page:-1, multiPageIndex?page:-1,
g_memberIndexLetterUsed[hl], g_memberIndexLetterUsed[hl],
...@@ -1979,7 +2012,7 @@ static void writeFileMemberIndexFiltered(OutputList &ol, FileMemberHighlight hl) ...@@ -1979,7 +2012,7 @@ static void writeFileMemberIndexFiltered(OutputList &ol, FileMemberHighlight hl)
// normal lists otherwise // normal lists otherwise
ol.writeString("&nbsp;"); ol.writeString("&nbsp;");
} }
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
//writeFileMemberList(ol,quickIndex,hl,page); //writeFileMemberList(ol,quickIndex,hl,page);
writeMemberList(ol,quickIndex, writeMemberList(ol,quickIndex,
multiPageIndex?page:-1, multiPageIndex?page:-1,
...@@ -2107,7 +2140,7 @@ static void writeNamespaceMemberIndexFiltered(OutputList &ol, ...@@ -2107,7 +2140,7 @@ static void writeNamespaceMemberIndexFiltered(OutputList &ol,
// normal lists otherwise // normal lists otherwise
ol.writeString("&nbsp;"); ol.writeString("&nbsp;");
} }
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
//writeNamespaceMemberList(ol,quickIndex,hl,page); //writeNamespaceMemberList(ol,quickIndex,hl,page);
writeMemberList(ol,quickIndex, writeMemberList(ol,quickIndex,
...@@ -2164,7 +2197,7 @@ void writeExampleIndex(OutputList &ol) ...@@ -2164,7 +2197,7 @@ void writeExampleIndex(OutputList &ol)
PageDef *pd=0; PageDef *pd=0;
for (pdi.toFirst();(pd=pdi.current());++pdi) for (pdi.toFirst();(pd=pdi.current());++pdi)
{ {
ol.writeListItem(); ol.startItemListItem();
QCString n=pd->getOutputFileBase(); QCString n=pd->getOutputFileBase();
if (!pd->title().isEmpty()) if (!pd->title().isEmpty())
{ {
...@@ -2176,6 +2209,7 @@ void writeExampleIndex(OutputList &ol) ...@@ -2176,6 +2209,7 @@ void writeExampleIndex(OutputList &ol)
ol.writeObjectLink(0,n,0,pd->name()); ol.writeObjectLink(0,n,0,pd->name());
Doxygen::indexList.addContentsItem(FALSE,pd->name(),pd->getReference(),n,0); Doxygen::indexList.addContentsItem(FALSE,pd->name(),pd->getReference(),n,0);
} }
ol.endItemListItem();
ol.writeString("\n"); ol.writeString("\n");
} }
ol.endItemList(); ol.endItemList();
...@@ -2270,6 +2304,7 @@ void writePageIndex(OutputList &ol) ...@@ -2270,6 +2304,7 @@ void writePageIndex(OutputList &ol)
bool hasSubPages = pd->hasSubPages(); bool hasSubPages = pd->hasSubPages();
ol.startIndexListItem();
ol.startIndexItem(pd->getReference(),pd->getOutputFileBase()); ol.startIndexItem(pd->getReference(),pd->getOutputFileBase());
ol.parseText(pageTitle); ol.parseText(pageTitle);
ol.endIndexItem(pd->getReference(),pd->getOutputFileBase()); ol.endIndexItem(pd->getReference(),pd->getOutputFileBase());
...@@ -2282,6 +2317,7 @@ void writePageIndex(OutputList &ol) ...@@ -2282,6 +2317,7 @@ void writePageIndex(OutputList &ol)
ol.writeString("\n"); ol.writeString("\n");
Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,pd->getReference(),pd->getOutputFileBase(),0); Doxygen::indexList.addContentsItem(hasSubPages,pageTitle,pd->getReference(),pd->getOutputFileBase(),0);
writeSubPages(pd); writeSubPages(pd);
ol.endIndexListItem();
} }
} }
endIndexHierarchy(ol,0); endIndexHierarchy(ol,0);
...@@ -2379,7 +2415,6 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title) ...@@ -2379,7 +2415,6 @@ void writeGroupIndexItem(GroupDef *gd,MemberList *ml,const QCString &title)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
/*! /*!
* write groups as hierarchical trees * write groups as hierarchical trees
* \author KPW
*/ */
void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv) void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv)
{ {
...@@ -2437,6 +2472,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv) ...@@ -2437,6 +2472,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv)
//parseText(ol,gd->groupTitle()); //parseText(ol,gd->groupTitle());
//ol.endTextLink(); //ol.endTextLink();
ol.startIndexListItem();
ol.startIndexItem(gd->getReference(),gd->getOutputFileBase()); ol.startIndexItem(gd->getReference(),gd->getOutputFileBase());
ol.parseText(gd->groupTitle()); ol.parseText(gd->groupTitle());
ol.endIndexItem(gd->getReference(),gd->getOutputFileBase()); ol.endIndexItem(gd->getReference(),gd->getOutputFileBase());
...@@ -2572,6 +2608,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv) ...@@ -2572,6 +2608,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd, int level, FTVHelp* ftv)
Doxygen::indexList.decContentsDepth(); Doxygen::indexList.decContentsDepth();
} }
} }
ol.endIndexListItem();
Doxygen::indexList.decContentsDepth(); Doxygen::indexList.decContentsDepth();
if (ftv) if (ftv)
...@@ -2627,6 +2664,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv) ...@@ -2627,6 +2664,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv)
ftv->incContentsDepth(); ftv->incContentsDepth();
} }
ol.startIndexListItem();
ol.startIndexItem(dd->getReference(),dd->getOutputFileBase()); ol.startIndexItem(dd->getReference(),dd->getOutputFileBase());
ol.parseText(dd->shortName()); ol.parseText(dd->shortName());
ol.endIndexItem(dd->getReference(),dd->getOutputFileBase()); ol.endIndexItem(dd->getReference(),dd->getOutputFileBase());
...@@ -2664,6 +2702,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv) ...@@ -2664,6 +2702,7 @@ void writeDirTreeNode(OutputList &ol, DirDef *dd, int level, FTVHelp* ftv)
} }
} }
} }
ol.endIndexListItem();
Doxygen::indexList.decContentsDepth(); Doxygen::indexList.decContentsDepth();
if (ftv) if (ftv)
...@@ -2710,6 +2749,7 @@ void writeGroupIndex(OutputList &ol) ...@@ -2710,6 +2749,7 @@ void writeGroupIndex(OutputList &ol)
Doxygen::indexList.incContentsDepth(); Doxygen::indexList.incContentsDepth();
ol.parseText(theTranslator->trModulesDescription()); ol.parseText(theTranslator->trModulesDescription());
ol.endTextBlock(); ol.endTextBlock();
FTVHelp* ftv = NULL; FTVHelp* ftv = NULL;
QCString& TreeView=Config_getEnum("GENERATE_TREEVIEW"); QCString& TreeView=Config_getEnum("GENERATE_TREEVIEW");
if (TreeView=="HIERARCHIES" || TreeView=="ALL") if (TreeView=="HIERARCHIES" || TreeView=="ALL")
...@@ -2857,7 +2897,7 @@ void writeIndex(OutputList &ol) ...@@ -2857,7 +2897,7 @@ void writeIndex(OutputList &ol)
} }
} }
ol.endTitleHead(0,0); ol.endTitleHead(0,0);
ol.newParagraph(); // ol.newParagraph(); // FIXME:PARA
if (!Config_getString("PROJECT_NUMBER").isEmpty()) if (!Config_getString("PROJECT_NUMBER").isEmpty())
{ {
ol.startProjectNumber(); ol.startProjectNumber();
......
...@@ -412,6 +412,7 @@ static void writeDefaultStyleSheetPart3(QTextStream &t) ...@@ -412,6 +412,7 @@ static void writeDefaultStyleSheetPart3(QTextStream &t)
t << "\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n"; t << "\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n";
t << "\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n"; t << "\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n";
t << "\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n"; t << "\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n";
t << "\\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}\n";
} }
void LatexGenerator::writeHeaderFile(QFile &f) void LatexGenerator::writeHeaderFile(QFile &f)
......
...@@ -65,6 +65,8 @@ class LatexGenerator : public OutputGenerator ...@@ -65,6 +65,8 @@ class LatexGenerator : public OutputGenerator
void startParagraph(); void startParagraph();
void endParagraph(); void endParagraph();
void writeString(const char *text); void writeString(const char *text);
void startIndexListItem() {}
void endIndexListItem() {}
void startIndexList() { t << "\\begin{CompactList}" << endl; } void startIndexList() { t << "\\begin{CompactList}" << endl; }
void endIndexList() { t << "\\end{CompactList}" << endl; } void endIndexList() { t << "\\end{CompactList}" << endl; }
void startIndexKey(); void startIndexKey();
...@@ -90,7 +92,8 @@ class LatexGenerator : public OutputGenerator ...@@ -90,7 +92,8 @@ class LatexGenerator : public OutputGenerator
void endTypewriter() { t << "}"; } void endTypewriter() { t << "}"; }
void startGroupHeader(); void startGroupHeader();
void endGroupHeader(); void endGroupHeader();
void writeListItem() { t << "\\item " << endl; } void startItemListItem() { t << "\\item " << endl; }
void endItemListItem() {}
void startMemberSections() {} void startMemberSections() {}
void endMemberSections() {} void endMemberSections() {}
...@@ -161,7 +164,8 @@ class LatexGenerator : public OutputGenerator ...@@ -161,7 +164,8 @@ class LatexGenerator : public OutputGenerator
void endSimpleSect(); void endSimpleSect();
void startParamList(ParamListTypes,const char *title); void startParamList(ParamListTypes,const char *title);
void endParamList(); void endParamList();
void writeDescItem() { t << "\\par" << endl; } void startDescForItem() { t << "\\par" << endl; }
void endDescForItem() {}
void startSection(const char *,const char *,SectionInfo::SectionType); void startSection(const char *,const char *,SectionInfo::SectionType);
void endSection(const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType);
void addIndexItem(const char *,const char *); void addIndexItem(const char *,const char *);
......
...@@ -356,7 +356,7 @@ void ManGenerator::endTitle() ...@@ -356,7 +356,7 @@ void ManGenerator::endTitle()
t << "\""; t << "\"";
} }
void ManGenerator::writeListItem() void ManGenerator::startItemListItem()
{ {
if (!firstCol) t << endl; if (!firstCol) t << endl;
t << ".TP" << endl; t << ".TP" << endl;
...@@ -365,6 +365,10 @@ void ManGenerator::writeListItem() ...@@ -365,6 +365,10 @@ void ManGenerator::writeListItem()
col=0; col=0;
} }
void ManGenerator::endItemListItem()
{
}
void ManGenerator::startCodeFragment() void ManGenerator::startCodeFragment()
{ {
newParagraph(); newParagraph();
...@@ -476,7 +480,7 @@ void ManGenerator::startDescItem() ...@@ -476,7 +480,7 @@ void ManGenerator::startDescItem()
// paragraph=TRUE; // paragraph=TRUE;
//} //}
void ManGenerator::writeDescItem() void ManGenerator::startDescForItem()
{ {
if (!firstCol) t << endl; if (!firstCol) t << endl;
if (!paragraph) t << ".in -1c" << endl; if (!paragraph) t << ".in -1c" << endl;
...@@ -486,6 +490,10 @@ void ManGenerator::writeDescItem() ...@@ -486,6 +490,10 @@ void ManGenerator::writeDescItem()
col=0; col=0;
} }
void ManGenerator::endDescForItem()
{
}
void ManGenerator::endDescItem() void ManGenerator::endDescItem()
{ {
t << "\" 1c" << endl; t << "\" 1c" << endl;
...@@ -669,13 +677,14 @@ void ManGenerator::startConstraintList(const char *header) ...@@ -669,13 +677,14 @@ void ManGenerator::startConstraintList(const char *header)
void ManGenerator::startConstraintParam() void ManGenerator::startConstraintParam()
{ {
writeListItem(); startItemListItem();
startEmphasis(); startEmphasis();
} }
void ManGenerator::endConstraintParam() void ManGenerator::endConstraintParam()
{ {
endEmphasis(); endEmphasis();
endItemListItem();
t << " : "; t << " : ";
} }
......
...@@ -63,6 +63,8 @@ class ManGenerator : public OutputGenerator ...@@ -63,6 +63,8 @@ class ManGenerator : public OutputGenerator
void startParagraph(); void startParagraph();
void endParagraph(); void endParagraph();
void writeString(const char *text); void writeString(const char *text);
void startIndexListItem() {}
void endIndexListItem() {}
void startIndexList() {} void startIndexList() {}
void endIndexList() { newParagraph(); } void endIndexList() { newParagraph(); }
void startIndexKey() {} void startIndexKey() {}
...@@ -95,7 +97,9 @@ class ManGenerator : public OutputGenerator ...@@ -95,7 +97,9 @@ class ManGenerator : public OutputGenerator
void insertMemberAlign(bool) {} void insertMemberAlign(bool) {}
void startMemberSubtitle() {} void startMemberSubtitle() {}
void endMemberSubtitle() {} void endMemberSubtitle() {}
void writeListItem(); //void writeListItem();
void startItemListItem();
void endItemListItem();
void startMemberDocList() {} void startMemberDocList() {}
void endMemberDocList() {} void endMemberDocList() {}
void startMemberList(); void startMemberList();
...@@ -157,7 +161,9 @@ class ManGenerator : public OutputGenerator ...@@ -157,7 +161,9 @@ class ManGenerator : public OutputGenerator
void endSimpleSect(); void endSimpleSect();
void startParamList(ParamListTypes,const char *title); void startParamList(ParamListTypes,const char *title);
void endParamList(); void endParamList();
void writeDescItem(); //void writeDescItem();
void startDescForItem();
void endDescForItem();
void startSection(const char *,const char *,SectionInfo::SectionType); void startSection(const char *,const char *,SectionInfo::SectionType);
void endSection(const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType);
void addIndexItem(const char *,const char *) {} void addIndexItem(const char *,const char *) {}
...@@ -177,7 +183,7 @@ class ManGenerator : public OutputGenerator ...@@ -177,7 +183,7 @@ class ManGenerator : public OutputGenerator
void startDescTable() {} void startDescTable() {}
void endDescTable() {} void endDescTable() {}
void startDescTableTitle() { writeListItem(); startBold(); startEmphasis(); } void startDescTableTitle() { startItemListItem(); startBold(); startEmphasis(); endItemListItem(); }
void endDescTableTitle() { endEmphasis(); endBold(); } void endDescTableTitle() { endEmphasis(); endBold(); }
void startDescTableData() { t << endl; firstCol=TRUE; } void startDescTableData() { t << endl; firstCol=TRUE; }
void endDescTableData() {} void endDescTableData() {}
......
...@@ -140,9 +140,14 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -140,9 +140,14 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
//if (!md->isDefine()) ol.startParameter(TRUE); else ol.docify(" "); //if (!md->isDefine()) ol.startParameter(TRUE); else ol.docify(" ");
bool first=TRUE; bool first=TRUE;
bool paramTypeStarted=FALSE;
while (a) while (a)
{ {
if (md->isDefine() || first) ol.startParameterType(first,md->isObjCMethod()?"dummy":0); if (md->isDefine() || first)
{
ol.startParameterType(first,md->isObjCMethod()?"dummy":0);
paramTypeStarted=TRUE;
}
QRegExp re(")("),res("(.*\\*"); QRegExp re(")("),res("(.*\\*");
int vp=a->type.find(re); int vp=a->type.find(re);
int wp=a->type.find(res); int wp=a->type.find(res);
...@@ -179,7 +184,11 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -179,7 +184,11 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
} }
if (!md->isDefine()) if (!md->isDefine())
{ {
ol.endParameterType(); if (paramTypeStarted)
{
ol.endParameterType();
paramTypeStarted=FALSE;
}
ol.startParameterName(defArgList->count()<2); ol.startParameterName(defArgList->count()<2);
} }
if (hasFuncPtrType) if (hasFuncPtrType)
...@@ -236,7 +245,16 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd, ...@@ -236,7 +245,16 @@ static bool writeDefArgumentList(OutputList &ol,ClassDef *cd,
if (key!=",") key+=":"; // for normal keywords add colon if (key!=",") key+=":"; // for normal keywords add colon
} }
ol.endParameterName(FALSE,FALSE,!md->isObjCMethod()); ol.endParameterName(FALSE,FALSE,!md->isObjCMethod());
if (paramTypeStarted)
{
ol.endParameterType();
}
ol.startParameterType(FALSE,key); ol.startParameterType(FALSE,key);
paramTypeStarted=TRUE;
}
else
{
ol.endParameterName(FALSE,FALSE,TRUE);
} }
} }
first=FALSE; first=FALSE;
...@@ -1497,7 +1515,6 @@ void MemberDef::writeDeclaration(OutputList &ol, ...@@ -1497,7 +1515,6 @@ void MemberDef::writeDeclaration(OutputList &ol,
//ol.startEmphasis(); //ol.startEmphasis();
ol.popGeneratorState(); ol.popGeneratorState();
} }
//ol.newParagraph();
ol.endMemberDescription(); ol.endMemberDescription();
} }
warnIfUndocumented(); warnIfUndocumented();
...@@ -1926,10 +1943,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1926,10 +1943,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.endDoxyAnchor(cfname,memAnchor); ol.endDoxyAnchor(cfname,memAnchor);
ol.startIndent(); ol.startIndent();
ol.pushGeneratorState(); // FIXME:PARA
ol.disable(OutputGenerator::RTF); //ol.pushGeneratorState();
ol.newParagraph(); //ol.disable(OutputGenerator::RTF);
ol.popGeneratorState(); //ol.newParagraph();
//ol.popGeneratorState();
/* write multi-line initializer (if any) */ /* write multi-line initializer (if any) */
if (hasMultiLineInitializer() if (hasMultiLineInitializer()
...@@ -1969,8 +1987,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1969,8 +1987,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
) )
) )
{ {
ol.parseDoc(briefFile(),briefLine(),getOuterScope()?getOuterScope():container,this,brief,FALSE,FALSE); ol.startParagraph();
ol.newParagraph(); ol.parseDoc(briefFile(),briefLine(),
getOuterScope()?getOuterScope():container,this,
brief,FALSE,FALSE,0,TRUE,FALSE);
ol.endParagraph();
} }
/* write detailed description */ /* write detailed description */
...@@ -1980,8 +2001,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1980,8 +2001,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
ol.parseDoc(docFile(),docLine(),getOuterScope()?getOuterScope():container,this,detailed+"\n",TRUE,FALSE); ol.parseDoc(docFile(),docLine(),getOuterScope()?getOuterScope():container,this,detailed+"\n",TRUE,FALSE);
if (!inbodyDocumentation().isEmpty()) if (!inbodyDocumentation().isEmpty())
{ {
ol.newParagraph(); ol.startParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,inbodyDocumentation()+"\n",TRUE,FALSE); ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,inbodyDocumentation()+"\n",TRUE,FALSE);
ol.endParagraph();
} }
} }
else if (!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") || else if (!brief.isEmpty() && (Config_getBool("REPEAT_BRIEF") ||
...@@ -1989,7 +2011,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -1989,7 +2011,6 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{ {
if (!inbodyDocumentation().isEmpty()) if (!inbodyDocumentation().isEmpty())
{ {
ol.newParagraph();
ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,inbodyDocumentation()+"\n",TRUE,FALSE); ol.parseDoc(inbodyFile(),inbodyLine(),getOuterScope()?getOuterScope():container,this,inbodyDocumentation()+"\n",TRUE,FALSE);
} }
} }
...@@ -2068,9 +2089,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2068,9 +2089,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{ {
if (first) if (first)
{ {
//ol.newParagraph();
ol.startSimpleSect(BaseOutputDocInterface::EnumValues,0,0,theTranslator->trEnumerationValues()+": "); ol.startSimpleSect(BaseOutputDocInterface::EnumValues,0,0,theTranslator->trEnumerationValues()+": ");
ol.writeDescItem(); ol.startDescForItem();
ol.startDescTable(); ol.startDescTable();
} }
...@@ -2110,13 +2130,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2110,13 +2130,13 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (!fmd->briefDescription().isEmpty()) if (!fmd->briefDescription().isEmpty())
{ {
ol.parseDoc(fmd->briefFile(),fmd->briefLine(),getOuterScope()?getOuterScope():container,fmd,fmd->briefDescription(),TRUE,FALSE); ol.parseDoc(fmd->briefFile(),fmd->briefLine(),getOuterScope()?getOuterScope():container,fmd,fmd->briefDescription(),TRUE,FALSE);
//ol.newParagraph();
}
if (!fmd->briefDescription().isEmpty() &&
!fmd->documentation().isEmpty())
{
ol.newParagraph();
} }
// FIXME:PARA
//if (!fmd->briefDescription().isEmpty() &&
// !fmd->documentation().isEmpty())
//{
// ol.newParagraph();
//}
if (!fmd->documentation().isEmpty()) if (!fmd->documentation().isEmpty())
{ {
ol.parseDoc(fmd->docFile(),fmd->docLine(),getOuterScope()?getOuterScope():container,fmd,fmd->documentation()+"\n",TRUE,FALSE); ol.parseDoc(fmd->docFile(),fmd->docLine(),getOuterScope()?getOuterScope():container,fmd,fmd->documentation()+"\n",TRUE,FALSE);
...@@ -2130,6 +2150,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2130,6 +2150,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{ {
//ol.endItemList(); //ol.endItemList();
ol.endDescTable(); ol.endDescTable();
ol.endDescForItem();
ol.endSimpleSect(); ol.endSimpleSect();
ol.writeChar('\n'); ol.writeChar('\n');
} }
...@@ -2269,9 +2290,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2269,9 +2290,9 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if (hasExamples()) if (hasExamples())
{ {
ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": "); ol.startSimpleSect(BaseOutputDocInterface::Examples,0,0,theTranslator->trExamples()+": ");
ol.writeDescItem(); ol.startDescForItem();
writeExample(ol,m_impl->exampleSDict); writeExample(ol,m_impl->exampleSDict);
//ol.endDescItem(); ol.endDescForItem();
ol.endSimpleSect(); ol.endSimpleSect();
} }
...@@ -2296,10 +2317,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2296,10 +2317,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{ {
msg("Generating call graph for function %s\n",qualifiedName().data()); msg("Generating call graph for function %s\n",qualifiedName().data());
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.startParagraph();
ol.startCallGraph(); ol.startCallGraph();
ol.parseText(theTranslator->trCallGraph()); ol.parseText(theTranslator->trCallGraph());
ol.endCallGraph(callGraph); ol.endCallGraph(callGraph);
ol.endParagraph();
ol.enableAll(); ol.enableAll();
} }
} }
...@@ -2312,10 +2334,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, ...@@ -2312,10 +2334,11 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{ {
msg("Generating caller graph for function %s\n",qualifiedName().data()); msg("Generating caller graph for function %s\n",qualifiedName().data());
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.newParagraph(); ol.startParagraph();
ol.startCallGraph(); ol.startCallGraph();
ol.parseText(theTranslator->trCallerGraph()); ol.parseText(theTranslator->trCallerGraph());
ol.endCallGraph(callerGraph); ol.endCallGraph(callerGraph);
ol.endParagraph();
ol.enableAll(); ol.enableAll();
} }
} }
...@@ -2518,7 +2541,7 @@ void MemberDef::setAnchor(const char *a) ...@@ -2518,7 +2541,7 @@ void MemberDef::setAnchor(const char *a)
QCString sigStr(33); QCString sigStr(33);
MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig); MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.data(),33); MD5SigToString(md5_sig,sigStr.data(),33);
m_impl->anc = sigStr; m_impl->anc = "a"+sigStr;
} }
void MemberDef::setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri, void MemberDef::setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,
......
...@@ -81,7 +81,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,const QCString rel ...@@ -81,7 +81,7 @@ static bool convertMapFile(QTextStream &t,const char *mapName,const QCString rel
} }
t << "\" shape=\"rect\" coords=\"" t << "\" shape=\"rect\" coords=\""
<< x1 << "," << y1 << "," << x2 << "," << y2 << "\"" << x1 << "," << y1 << "," << x2 << "," << y2 << "\""
<< " alt=\"\">" << endl; << " alt=\"\"/>" << endl;
} }
} }
......
...@@ -257,7 +257,7 @@ void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title ...@@ -257,7 +257,7 @@ void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::Man); ol.disable(OutputGenerator::Man);
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.newParagraph(); //ol.newParagraph(); // FIXME:PARA
ol.enableAll(); ol.enableAll();
ol.disableAllBut(OutputGenerator::Man); ol.disableAllBut(OutputGenerator::Man);
ol.writeString("\n\n"); ol.writeString("\n\n");
...@@ -268,7 +268,6 @@ void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title ...@@ -268,7 +268,6 @@ void NamespaceDef::writeDetailedDescription(OutputList &ol,const QCString &title
ol.parseDoc(docFile(),docLine(),this,0,documentation()+"\n",TRUE,FALSE); ol.parseDoc(docFile(),docLine(),this,0,documentation()+"\n",TRUE,FALSE);
} }
ol.endTextBlock(); ol.endTextBlock();
ol.newParagraph();
} }
} }
...@@ -276,7 +275,9 @@ void NamespaceDef::writeBriefDescription(OutputList &ol) ...@@ -276,7 +275,9 @@ void NamespaceDef::writeBriefDescription(OutputList &ol)
{ {
if (!briefDescription().isEmpty()) if (!briefDescription().isEmpty())
{ {
ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.startParagraph();
ol.parseDoc(briefFile(),briefLine(),this,0,
briefDescription(),TRUE,FALSE,0,TRUE,FALSE);
ol.pushGeneratorState(); ol.pushGeneratorState();
ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::RTF);
ol.writeString(" \n"); ol.writeString(" \n");
...@@ -292,11 +293,13 @@ void NamespaceDef::writeBriefDescription(OutputList &ol) ...@@ -292,11 +293,13 @@ void NamespaceDef::writeBriefDescription(OutputList &ol)
ol.endTextLink(); ol.endTextLink();
} }
ol.popGeneratorState(); ol.popGeneratorState();
ol.endParagraph();
ol.pushGeneratorState(); // FIXME:PARA
ol.disable(OutputGenerator::RTF); //ol.pushGeneratorState();
ol.newParagraph(); //ol.disable(OutputGenerator::RTF);
ol.popGeneratorState(); //ol.newParagraph();
//ol.popGeneratorState();
} }
ol.writeSynopsis(); ol.writeSynopsis();
} }
...@@ -792,10 +795,11 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool loca ...@@ -792,10 +795,11 @@ void NamespaceSDict::writeDeclaration(OutputList &ol,const char *title,bool loca
ol.endMemberItem(); ol.endMemberItem();
if (!nd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC")) if (!nd->briefDescription().isEmpty() && Config_getBool("BRIEF_MEMBER_DESC"))
{ {
ol.startParagraph();
ol.startMemberDescription(); ol.startMemberDescription();
ol.parseDoc(nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription(),FALSE,FALSE); ol.parseDoc(nd->briefFile(),nd->briefLine(),nd,0,nd->briefDescription(),FALSE,FALSE);
ol.endMemberDescription(); ol.endMemberDescription();
ol.newParagraph(); ol.endParagraph();
} }
} }
} }
......
...@@ -101,7 +101,7 @@ class BaseOutputDocInterface : public CodeOutputInterface ...@@ -101,7 +101,7 @@ class BaseOutputDocInterface : public CodeOutputInterface
const QCString &,bool) {} const QCString &,bool) {}
virtual void parseText(const QCString &) {} virtual void parseText(const QCString &) {}
/*! Start of a bullet list: e.g. \c \<ul\> in html. writeListItem() is /*! Start of a bullet list: e.g. \c \<ul\> in html. startItemListItem() is
* Used for the bullet items. * Used for the bullet items.
*/ */
virtual void startItemList() = 0; virtual void startItemList() = 0;
...@@ -109,7 +109,12 @@ class BaseOutputDocInterface : public CodeOutputInterface ...@@ -109,7 +109,12 @@ class BaseOutputDocInterface : public CodeOutputInterface
/*! Writes a list item for a bullet or enumerated /*! Writes a list item for a bullet or enumerated
* list: e.g. \c \<li\> in html * list: e.g. \c \<li\> in html
*/ */
virtual void writeListItem() = 0; virtual void startItemListItem() = 0;
/*! Writes a list item for a bullet or enumerated
* list: e.g. \c \</li\> in html
*/
virtual void endItemListItem() = 0;
/*! Ends a bullet list: e.g. \c \</ul\> in html */ /*! Ends a bullet list: e.g. \c \</ul\> in html */
virtual void endItemList() = 0; virtual void endItemList() = 0;
...@@ -130,11 +135,11 @@ class BaseOutputDocInterface : public CodeOutputInterface ...@@ -130,11 +135,11 @@ class BaseOutputDocInterface : public CodeOutputInterface
virtual void writeString(const char *text) = 0; virtual void writeString(const char *text) = 0;
/*! Starts a new paragraph */ /*! Starts a new paragraph */
virtual void newParagraph() = 0; //virtual void newParagraph() = 0;
/*! Starts a new paragraph */ /*! Starts a new paragraph */
virtual void startParagraph() = 0; virtual void startParagraph() = 0;
/*! End a paragraph */ /*! Ends a paragraph */
virtual void endParagraph() = 0; virtual void endParagraph() = 0;
/*! Writes a link to an object in the documentation. /*! Writes a link to an object in the documentation.
...@@ -211,8 +216,11 @@ class BaseOutputDocInterface : public CodeOutputInterface ...@@ -211,8 +216,11 @@ class BaseOutputDocInterface : public CodeOutputInterface
/*! Starts an item of a description list: e.g. \c \<dt\> in HTML. */ /*! Starts an item of a description list: e.g. \c \<dt\> in HTML. */
virtual void startDescItem() = 0; virtual void startDescItem() = 0;
virtual void startDescForItem() = 0;
virtual void endDescForItem() = 0;
/*! Ends an item of a description list and starts the /*! Ends an item of a description list and starts the
* description itself: e.g. \c \<dd\> in HTML. * description itself: e.g. \c \</dt\> in HTML.
*/ */
virtual void endDescItem() = 0; virtual void endDescItem() = 0;
...@@ -227,7 +235,7 @@ class BaseOutputDocInterface : public CodeOutputInterface ...@@ -227,7 +235,7 @@ class BaseOutputDocInterface : public CodeOutputInterface
virtual void startParamList(ParamListTypes t,const char *title) = 0; virtual void startParamList(ParamListTypes t,const char *title) = 0;
virtual void endParamList() = 0; virtual void endParamList() = 0;
virtual void writeDescItem() = 0; //virtual void writeDescItem() = 0;
virtual void startTitle() = 0; virtual void startTitle() = 0;
virtual void endTitle() = 0; virtual void endTitle() = 0;
...@@ -303,6 +311,8 @@ class OutputGenerator : public BaseOutputDocInterface ...@@ -303,6 +311,8 @@ class OutputGenerator : public BaseOutputDocInterface
virtual void writeStyleInfo(int part) = 0; virtual void writeStyleInfo(int part) = 0;
virtual void startTitleHead(const char *) = 0; virtual void startTitleHead(const char *) = 0;
virtual void endTitleHead(const char *fileName,const char *name) = 0; virtual void endTitleHead(const char *fileName,const char *name) = 0;
virtual void startIndexListItem() = 0;
virtual void endIndexListItem() = 0;
virtual void startIndexList() = 0; virtual void startIndexList() = 0;
virtual void endIndexList() = 0; virtual void endIndexList() = 0;
virtual void startIndexKey() = 0; virtual void startIndexKey() = 0;
......
...@@ -97,14 +97,18 @@ class OutputList : public OutputDocInterface ...@@ -97,14 +97,18 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startTitle); } { forall(&OutputGenerator::startTitle); }
void endTitle() void endTitle()
{ forall(&OutputGenerator::endTitle); } { forall(&OutputGenerator::endTitle); }
void newParagraph() //void newParagraph()
{ forall(&OutputGenerator::newParagraph); } //{ forall(&OutputGenerator::newParagraph); }
void startParagraph() void startParagraph()
{ forall(&OutputGenerator::startParagraph); } { forall(&OutputGenerator::startParagraph); }
void endParagraph() void endParagraph()
{ forall(&OutputGenerator::endParagraph); } { forall(&OutputGenerator::endParagraph); }
void writeString(const char *text) void writeString(const char *text)
{ forall(&OutputGenerator::writeString,text); } { forall(&OutputGenerator::writeString,text); }
void startIndexListItem()
{ forall(&OutputGenerator::startIndexListItem); }
void endIndexListItem()
{ forall(&OutputGenerator::endIndexListItem); }
void startIndexList() void startIndexList()
{ forall(&OutputGenerator::startIndexList); } { forall(&OutputGenerator::startIndexList); }
void endIndexList() void endIndexList()
...@@ -157,8 +161,12 @@ class OutputList : public OutputDocInterface ...@@ -157,8 +161,12 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startGroupHeader); } { forall(&OutputGenerator::startGroupHeader); }
void endGroupHeader() void endGroupHeader()
{ forall(&OutputGenerator::endGroupHeader); } { forall(&OutputGenerator::endGroupHeader); }
void writeListItem() //void writeListItem()
{ forall(&OutputGenerator::writeListItem); } //{ forall(&OutputGenerator::writeListItem); }
void startItemListItem()
{ forall(&OutputGenerator::startItemListItem); }
void endItemListItem()
{ forall(&OutputGenerator::endItemListItem); }
void startMemberSections() void startMemberSections()
{ forall(&OutputGenerator::startMemberSections); } { forall(&OutputGenerator::startMemberSections); }
void endMemberSections() void endMemberSections()
...@@ -251,6 +259,10 @@ class OutputList : public OutputDocInterface ...@@ -251,6 +259,10 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startDescItem); } { forall(&OutputGenerator::startDescItem); }
void endDescItem() void endDescItem()
{ forall(&OutputGenerator::endDescItem); } { forall(&OutputGenerator::endDescItem); }
void startDescForItem()
{ forall(&OutputGenerator::startDescForItem); }
void endDescForItem()
{ forall(&OutputGenerator::endDescForItem); }
void startSubsection() void startSubsection()
{ forall(&OutputGenerator::startSubsection); } { forall(&OutputGenerator::startSubsection); }
void endSubsection() void endSubsection()
...@@ -286,8 +298,8 @@ class OutputList : public OutputDocInterface ...@@ -286,8 +298,8 @@ class OutputList : public OutputDocInterface
{ forall(&OutputGenerator::startParamList,t,title); } { forall(&OutputGenerator::startParamList,t,title); }
void endParamList() void endParamList()
{ forall(&OutputGenerator::endParamList); } { forall(&OutputGenerator::endParamList); }
void writeDescItem() //void writeDescItem()
{ forall(&OutputGenerator::writeDescItem); } //{ forall(&OutputGenerator::writeDescItem); }
void startIndent() void startIndent()
{ forall(&OutputGenerator::startIndent); } { forall(&OutputGenerator::startIndent); }
void endIndent() void endIndent()
......
...@@ -119,7 +119,7 @@ void PageDef::writeDocumentation(OutputList &ol) ...@@ -119,7 +119,7 @@ void PageDef::writeDocumentation(OutputList &ol)
(si=Doxygen::sectionDict.find(pageName))!=0) (si=Doxygen::sectionDict.find(pageName))!=0)
{ {
ol.startSection(si->label,si->title,si->type); ol.startSection(si->label,si->title,si->type);
ol.parseDoc(docFile(),docLine(),this,0,si->title,TRUE,FALSE); ol.parseDoc(docFile(),docLine(),this,0,si->title,TRUE,FALSE,0,TRUE,FALSE);
stringToSearchIndex(getOutputFileBase(), stringToSearchIndex(getOutputFileBase(),
theTranslator->trPage(TRUE,TRUE)+" "+si->title, theTranslator->trPage(TRUE,TRUE)+" "+si->title,
si->title); si->title);
......
...@@ -2210,22 +2210,24 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -2210,22 +2210,24 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
// Deal with file changes due to // Deal with file changes due to
// #include's within { .. } blocks // #include's within { .. } blocks
QCString lineStr; QCString lineStr(15+g_yyFileName.length());
lineStr.sprintf("# %d \"%s\" 2",g_yyLineNr,g_yyFileName.data()); lineStr.sprintf("# %d \"%s\" 2",g_yyLineNr,g_yyFileName.data());
outputArray(lineStr.data(),lineStr.length()); outputArray(lineStr.data(),lineStr.length());
delete fs; fs=0; delete fs; fs=0;
} }
} }
<*>"/*" { <*>"/*"[*]? {
outputChar('/');outputChar('*'); outputArray(yytext,yyleng);
g_lastCContext=YY_START; g_lastCContext=YY_START;
g_commentCount=1; g_commentCount=1;
if (yyleng==3) g_lastGuardName.resize(0); // reset guard in case the #define is documented!
BEGIN(SkipCComment); BEGIN(SkipCComment);
} }
<*>"//" { <*>"//"[/]? {
outputChar('/');outputChar('/'); outputArray(yytext,yyleng);
g_lastCPPContext=YY_START; g_lastCPPContext=YY_START;
if (yyleng==3) g_lastGuardName.resize(0); // reset guard in case the #define is documented!
BEGIN(SkipCPPComment); BEGIN(SkipCPPComment);
} }
<*>\n { <*>\n {
......
...@@ -972,9 +972,9 @@ void RTFGenerator::endItemList() ...@@ -972,9 +972,9 @@ void RTFGenerator::endItemList()
//} //}
/*! write bullet or enum item */ /*! write bullet or enum item */
void RTFGenerator::writeListItem() void RTFGenerator::startItemListItem()
{ {
DBG_RTF(t << "{\\comment (writeListItem)}" << endl) DBG_RTF(t << "{\\comment (startItemListItem)}" << endl)
newParagraph(); newParagraph();
t << rtf_Style_Reset; t << rtf_Style_Reset;
if (rtf_listItemInfo[m_listLevel].isEnum) if (rtf_listItemInfo[m_listLevel].isEnum)
...@@ -990,6 +990,11 @@ void RTFGenerator::writeListItem() ...@@ -990,6 +990,11 @@ void RTFGenerator::writeListItem()
m_omitParagraph = TRUE; m_omitParagraph = TRUE;
} }
void RTFGenerator::endItemListItem()
{
DBG_RTF(t << "{\\comment (endItemListItem)}" << endl)
}
void RTFGenerator::startIndexItem(const char *,const char *) void RTFGenerator::startIndexItem(const char *,const char *)
{ {
DBG_RTF(t << "{\\comment (startIndexItem)}" << endl) DBG_RTF(t << "{\\comment (startIndexItem)}" << endl)
...@@ -1582,9 +1587,14 @@ void RTFGenerator::startDescList(SectionTypes) ...@@ -1582,9 +1587,14 @@ void RTFGenerator::startDescList(SectionTypes)
// t << rtf_Style_Reset << rtf_DList_DepthStyle(); // t << rtf_Style_Reset << rtf_DList_DepthStyle();
//} //}
void RTFGenerator::writeDescItem() void RTFGenerator::startDescForItem()
{
DBG_RTF(t << "{\\comment (startDescForItem) }" << endl)
}
void RTFGenerator::endDescForItem()
{ {
DBG_RTF(t << "{\\comment (writeDescItem) }" << endl) DBG_RTF(t << "{\\comment (endDescForItem) }" << endl)
} }
//void RTFGenerator::endDescList() //void RTFGenerator::endDescList()
......
...@@ -63,6 +63,8 @@ class RTFGenerator : public OutputGenerator ...@@ -63,6 +63,8 @@ class RTFGenerator : public OutputGenerator
void startParagraph(); void startParagraph();
void endParagraph(); void endParagraph();
void writeString(const char *text); void writeString(const char *text);
void startIndexListItem() {}
void endIndexListItem() {}
void startIndexList(); void startIndexList();
void endIndexList(); void endIndexList();
void startIndexKey(); void startIndexKey();
...@@ -88,7 +90,9 @@ class RTFGenerator : public OutputGenerator ...@@ -88,7 +90,9 @@ class RTFGenerator : public OutputGenerator
void endTypewriter() { t << "}"; } void endTypewriter() { t << "}"; }
void startGroupHeader(); void startGroupHeader();
void endGroupHeader(); void endGroupHeader();
void writeListItem(); //void writeListItem();
void startItemListItem();
void endItemListItem();
void startMemberSections() {} void startMemberSections() {}
void endMemberSections() {} void endMemberSections() {}
...@@ -152,7 +156,9 @@ class RTFGenerator : public OutputGenerator ...@@ -152,7 +156,9 @@ class RTFGenerator : public OutputGenerator
void endSimpleSect(); void endSimpleSect();
void startParamList(ParamListTypes,const char *); void startParamList(ParamListTypes,const char *);
void endParamList(); void endParamList();
void writeDescItem(); //void writeDescItem();
void startDescForItem();
void endDescForItem();
void startSection(const char *,const char *,SectionInfo::SectionType); void startSection(const char *,const char *,SectionInfo::SectionType);
void endSection(const char *,SectionInfo::SectionType); void endSection(const char *,SectionInfo::SectionType);
void addIndexItem(const char *,const char *); void addIndexItem(const char *,const char *);
......
...@@ -1000,6 +1000,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -1000,6 +1000,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
lineCount() ; lineCount() ;
} }
<FindMembers>[\-+]{BN}* { <FindMembers>[\-+]{BN}* {
printf("Found - insideObj=%d\n",insideObjC);
if (!insideObjC) if (!insideObjC)
{ {
REJECT; REJECT;
...@@ -1477,7 +1478,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -1477,7 +1478,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
isTypedef=((QCString)yytext).find("typedef")!=-1; isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::CLASS_SEC ; current->section = Entry::CLASS_SEC ;
current->spec = Entry::Struct; current->spec = Entry::Struct;
current->objc = insideObjC = FALSE; // bug 582676: can be a struct nested in an interface so keep insideObjC state
//current->objc = insideObjC = FALSE;
addType( current ) ; addType( current ) ;
current->type += " struct" ; current->type += " struct" ;
current->fileName = yyFileName; current->fileName = yyFileName;
...@@ -1534,7 +1536,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?) ...@@ -1534,7 +1536,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("volatile"|"const"){BN}+)?)
isTypedef=((QCString)yytext).find("typedef")!=-1; isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::CLASS_SEC; current->section = Entry::CLASS_SEC;
current->spec = Entry::Union; current->spec = Entry::Union;
current->objc = insideObjC = FALSE; // bug 582676: can be a struct nested in an interface so keep insideObjC state
//current->objc = insideObjC = FALSE;
addType( current ) ; addType( current ) ;
current->type += " union" ; current->type += " union" ;
current->fileName = yyFileName; current->fileName = yyFileName;
......
...@@ -1042,30 +1042,33 @@ class TranslatorEnglish : public Translator ...@@ -1042,30 +1042,33 @@ class TranslatorEnglish : public Translator
"};\n" "};\n"
"\\endcode\n" "\\endcode\n"
"This will result in the following graph:" "This will result in the following graph:"
"<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center>\n" "<p><center><img alt=\"\" src=\"graph_legend."+Config_getEnum("DOT_IMAGE_FORMAT")+"\"></center></p>\n"
"<p>\n" "<p>\n"
"The boxes in the above graph have the following meaning:\n" "The boxes in the above graph have the following meaning:\n"
"</p>\n"
"<ul>\n" "<ul>\n"
"<li>%A filled gray box represents the struct or class for which the " "<li>%A filled gray box represents the struct or class for which the "
"graph is generated.\n" "graph is generated.</li>\n"
"<li>%A box with a black border denotes a documented struct or class.\n" "<li>%A box with a black border denotes a documented struct or class.</li>\n"
"<li>%A box with a grey border denotes an undocumented struct or class.\n" "<li>%A box with a grey border denotes an undocumented struct or class.</li>\n"
"<li>%A box with a red border denotes a documented struct or class for" "<li>%A box with a red border denotes a documented struct or class for"
"which not all inheritance/containment relations are shown. %A graph is " "which not all inheritance/containment relations are shown. %A graph is "
"truncated if it does not fit within the specified boundaries.\n" "truncated if it does not fit within the specified boundaries.</li>\n"
"</ul>\n" "</ul>\n"
"<p>\n"
"The arrows have the following meaning:\n" "The arrows have the following meaning:\n"
"</p>\n"
"<ul>\n" "<ul>\n"
"<li>%A dark blue arrow is used to visualize a public inheritance " "<li>%A dark blue arrow is used to visualize a public inheritance "
"relation between two classes.\n" "relation between two classes.</li>\n"
"<li>%A dark green arrow is used for protected inheritance.\n" "<li>%A dark green arrow is used for protected inheritance.</li>\n"
"<li>%A dark red arrow is used for private inheritance.\n" "<li>%A dark red arrow is used for private inheritance.</li>\n"
"<li>%A purple dashed arrow is used if a class is contained or used " "<li>%A purple dashed arrow is used if a class is contained or used "
"by another class. The arrow is labeled with the variable(s) " "by another class. The arrow is labeled with the variable(s) "
"through which the pointed class or struct is accessible.\n" "through which the pointed class or struct is accessible.</li>\n"
"<li>%A yellow dashed arrow denotes a relation between a template instance and " "<li>%A yellow dashed arrow denotes a relation between a template instance and "
"the template class it was instantiated from. The arrow is labeled with " "the template class it was instantiated from. The arrow is labeled with "
"the template parameters of the instance.\n" "the template parameters of the instance.</li>\n"
"</ul>\n"; "</ul>\n";
} }
/*! text for the link to the legend page */ /*! text for the link to the legend page */
......
This diff is collapsed.
...@@ -340,7 +340,7 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE) ...@@ -340,7 +340,7 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE)
while (!done) while (!done)
{ {
sp=p; sp=p;
while ((c=*p++) && c!='\n'); while ((c=*p++) && c!='\n') {}
if (c=='\n') if (c=='\n')
{ {
g_yyLineNr++; g_yyLineNr++;
...@@ -379,7 +379,7 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol, ...@@ -379,7 +379,7 @@ static void writeMultiLineCodeLink(CodeOutputInterface &ol,
{ {
char *sp=p; char *sp=p;
char c; char c;
while ((c=*p++) && c!='\n'); while ((c=*p++) && c!='\n') {}
if (c=='\n') if (c=='\n')
{ {
g_yyLineNr++; g_yyLineNr++;
......
...@@ -833,12 +833,13 @@ bool VhdlDocGen::compareString(const QCString& s1,const QCString& s2) ...@@ -833,12 +833,13 @@ bool VhdlDocGen::compareString(const QCString& s1,const QCString& s2)
bool VhdlDocGen::getSigTypeName(QList<QCString>& ql, const char* str,QCString& buffer) bool VhdlDocGen::getSigTypeName(QList<QCString>& ql, const char* str,QCString& buffer)
{ {
QCString temp(str); //QCString temp(str);
QStringList qlist=QStringList::split(" is ",temp,FALSE); //QStringList qlist=QStringList::split(" is ",temp,FALSE);
if (qlist.count()!=2) return FALSE; //if (qlist.count()!=2) return FALSE;
temp.resize(0); //temp.resize(0);
temp+=(QCString)qlist[0]+":"+(QCString)qlist[1]; //temp+=(QCString)qlist[0]+":"+(QCString)qlist[1];
return VhdlDocGen::getSigName(ql,temp.data(),buffer); //return VhdlDocGen::getSigName(ql,temp.data(),buffer);
return VhdlDocGen::getSigName(ql,str,buffer);
} }
/*! /*!
...@@ -1356,7 +1357,7 @@ bool VhdlDocGen::isNumber(const QCString& s) ...@@ -1356,7 +1357,7 @@ bool VhdlDocGen::isNumber(const QCString& s)
#endif #endif
}// isNumber }// isNumber
void VhdlDocGen::startFonts(const QCString& q, char *keyword,OutputList& ol) void VhdlDocGen::startFonts(const QCString& q, const char *keyword,OutputList& ol)
{ {
ol.startFontClass(keyword); ol.startFontClass(keyword);
ol.docify(q.data()); ol.docify(q.data());
...@@ -1650,10 +1651,12 @@ bool VhdlDocGen::isFunctionProto(QCString& ss) ...@@ -1650,10 +1651,12 @@ bool VhdlDocGen::isFunctionProto(QCString& ss)
QCString proc("procedure"); QCString proc("procedure");
QCString func("function"); QCString func("function");
name=name.stripWhiteSpace(); name=name.stripWhiteSpace();
QStringList ql=QStringList::split(" ",name,FALSE); QStringList ql=QStringList::split(QRegExp("[\\s]"),name,FALSE);
int j=ql.count(); int j=ql.count();
if (j<2) return FALSE; if (j<2) return FALSE;
QCString tt=(QCString)ql[0]; QCString tt=(QCString)ql[0].lower();
if (tt=="impure" || tt=="pure") tt=ql[1];
if (VhdlDocGen::compareString(tt,proc)!=0 && VhdlDocGen::compareString(tt,func)!=0) if (VhdlDocGen::compareString(tt,proc)!=0 && VhdlDocGen::compareString(tt,func)!=0)
return FALSE; return FALSE;
......
...@@ -262,7 +262,7 @@ class VhdlDocGen ...@@ -262,7 +262,7 @@ class VhdlDocGen
static void writeLink(const MemberDef* mdef,OutputList &ol); static void writeLink(const MemberDef* mdef,OutputList &ol);
static void adjustMemberName(QCString& nn); static void adjustMemberName(QCString& nn);
static bool membersHaveSpecificType(MemberList *ml,int type); static bool membersHaveSpecificType(MemberList *ml,int type);
static void startFonts(const QCString& q, char *keyword,OutputList& ol); static void startFonts(const QCString& q, const char *keyword,OutputList& ol);
static bool isNumber(const QCString& s); static bool isNumber(const QCString& s);
private: private:
......
...@@ -400,7 +400,7 @@ static void parseProcessProto() ...@@ -400,7 +400,7 @@ static void parseProcessProto()
static void parseFunctionProto() static void parseFunctionProto()
{ {
QCString name,ret,qcs; QCString name,ret,qcs,temp;
bool sem=FALSE; bool sem=FALSE;
QList<Argument> ql; QList<Argument> ql;
ql.setAutoDelete(TRUE); ql.setAutoDelete(TRUE);
...@@ -409,11 +409,18 @@ static void parseFunctionProto() ...@@ -409,11 +409,18 @@ static void parseFunctionProto()
return; // function without a prototype return; // function without a prototype
if (qcs.contains("function",FALSE)==0 && qcs.contains("procedure",FALSE)==0) if (qcs.contains("function",FALSE)==0 && qcs.contains("procedure",FALSE)==0)
return; return;
while (qcs.stripPrefix(" ")); qcs=qcs.stripWhiteSpace();
if (qcs.stripPrefix("impure")) temp=qcs.lower();
if (temp.stripPrefix("impure"))
{
current->exception="impure"; current->exception="impure";
else if (qcs.stripPrefix("pure")) qcs=qcs.remove(0,6);
}
else if (temp.stripPrefix("pure"))
{
current->exception="pure"; current->exception="pure";
qcs=qcs.remove(0,4);
}
VhdlDocGen::parseFuncProto(qcs.data(),ql,name,ret); VhdlDocGen::parseFuncProto(qcs.data(),ql,name,ret);
//printf("parseFuncProto(%s)=%s,%s\n",qcs.data(),name.data(),ret.data()); //printf("parseFuncProto(%s)=%s,%s\n",qcs.data(),name.data(),ret.data());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment