diff options
91 files changed, 3213 insertions, 2186 deletions
@@ -1,7 +1,7 @@ -DOXYGEN Version 1.8.0-20120409 +DOXYGEN Version 1.8.0-20120429 Please read the installation section of the manual (http://www.doxygen.org/install.html) for instructions. -------- -Dimitri van Heesch (09 April 2012) +Dimitri van Heesch (29 April 2012) @@ -1,4 +1,4 @@ -DOXYGEN Version 1.8.0_20120409 +DOXYGEN Version 1.8.0_20120429 Please read INSTALL for compilation instructions. @@ -26,4 +26,4 @@ forum. Enjoy, -Dimitri van Heesch (dimitri@stack.nl) (09 April 2012) +Dimitri van Heesch (dimitri@stack.nl) (29 April 2012) @@ -20,7 +20,7 @@ doxygen_version_minor=8 doxygen_version_revision=0 #NOTE: Setting version_mmn to "NO" will omit mmn info from the package. -doxygen_version_mmn=20120409 +doxygen_version_mmn=20120429 bin_dirs=`echo $PATH | sed -e "s/:/ /g"` @@ -180,6 +180,12 @@ if test -z "$f_platform"; then f_insttool=/usr/bin/install fi ;; + NetBSD:*) + f_platform=netbsd-g++ + if test "$f_insttool" = NO; then + f_insttool=/usr/bin/install + fi + ;; HP-UX:*) f_platform=hpux-g++ if test "$f_insttool" = NO; then diff --git a/doc/language.doc b/doc/language.doc index 4e93866..aa15fda 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -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 configuration file (with default name and known as Doxyfile). -Currently (version 1.7.6.1), 39 languages +Currently (version 1.8.0), 39 languages are supported (sorted alphabetically): Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Czech, Danish, Dutch, English, @@ -86,7 +86,7 @@ when the translator was updated. <td>Chinese</td> <td>Lian Yang<br/>Li Daobing<br/>Wei Liu</td> <td>lian dot yang dot cn at gmail dot com<br/>lidaobing at gmail dot com<br/>liuwei at asiainfo dot com</td> - <td>1.8.0</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Chinese Traditional</td> @@ -98,13 +98,13 @@ when the translator was updated. <td>Croatian</td> <td>Boris Bralo</td> <td>boris dot bralo at gmail dot com</td> - <td>1.8.0</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Czech</td> <td>Petr Přikryl</td> <td>prikrylp at skil dot cz</td> - <td>1.8.0</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Danish</td> @@ -128,7 +128,7 @@ when the translator was updated. <td>Esperanto</td> <td>Ander Martinez</td> <td>dwarfnauko at gmail dot com</td> - <td>1.7.5</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Finnish</td> @@ -146,7 +146,7 @@ when the translator was updated. <td>German</td> <td>Peter Grotrian<br/>Jens Seidel</td> <td>Peter dot Grotrian at pdv-FS dot de<br/>jensseidel at users dot sf dot net</td> - <td>1.8.0</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Greek</td> @@ -170,7 +170,7 @@ when the translator was updated. <td>Italian</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>1.7.5</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Japanese</td> @@ -224,7 +224,7 @@ when the translator was updated. <td>Polish</td> <td>Piotr Kaminski<br/>Grzegorz Kowal<br/>Krzysztof Kral</td> <td><span style="color: brown">[unreachable]</span><br/><span style="color: brown">[unreachable]</span><br/>krzysztof dot kral at gmail dot com</td> - <td>1.6.3</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Portuguese</td> @@ -260,7 +260,7 @@ when the translator was updated. <td>Slovak</td> <td>Kali+Laco Švec<br/>Petr Přikryl</td> <td>the Slovak language advisors<br/>prikrylp at skil dot cz</td> - <td>1.8.0</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Slovene</td> @@ -272,7 +272,7 @@ when the translator was updated. <td>Spanish</td> <td>Bartomeu<br/>Francisco Oltra Thennet<br/>David Vaquero</td> <td>bartomeu at loteria3cornella dot com<br/><span style="color: brown">[unreachable]</span><br/>david at grupoikusnet dot com</td> - <td>1.7.5</td> + <td>up-to-date</td> </tr> <tr bgcolor="#ffffff"> <td>Swedish</td> @@ -326,16 +326,16 @@ when the translator was updated. Catalan & Maximiliano Pin & {\tt\tiny max dot pin at bitroit dot com} & 1.8.0 \\ ~ & Albert Mora & {\tt\tiny [unreachable] amora at iua dot upf dot es} & ~ \\ \hline - Chinese & Lian Yang & {\tt\tiny lian dot yang dot cn at gmail dot com} & 1.8.0 \\ + Chinese & Lian Yang & {\tt\tiny lian dot yang dot cn at gmail dot com} & up-to-date \\ ~ & Li Daobing & {\tt\tiny lidaobing at gmail dot com} & ~ \\ ~ & Wei Liu & {\tt\tiny liuwei at asiainfo dot com} & ~ \\ \hline Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin dot tw at gmail dot com} & 1.8.0 \\ ~ & Gary Lee & {\tt\tiny garywlee at gmail dot com} & ~ \\ \hline - Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & 1.8.0 \\ + Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & up-to-date \\ \hline - Czech & Petr Přikryl & {\tt\tiny prikrylp at skil dot cz} & 1.8.0 \\ + Czech & Petr Přikryl & {\tt\tiny prikrylp at skil dot cz} & up-to-date \\ \hline Danish & Poul-Erik Hansen & {\tt\tiny pouhan at gnotometrics dot dk} & 1.8.0 \\ ~ & Erik Søe Sørensen & {\tt\tiny eriksoe+doxygen at daimi dot au dot dk} & ~ \\ @@ -344,14 +344,14 @@ when the translator was updated. \hline English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ \hline - Esperanto & Ander Martinez & {\tt\tiny dwarfnauko at gmail dot com} & 1.7.5 \\ + Esperanto & Ander Martinez & {\tt\tiny dwarfnauko at gmail dot com} & up-to-date \\ \hline Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\ \hline French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & 1.8.0 \\ ~ & Xavier Outhier & {\tt\tiny xouthier at yahoo dot fr} & ~ \\ \hline - German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.0 \\ + German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & up-to-date \\ ~ & Jens Seidel & {\tt\tiny jensseidel at users dot sf dot net} & ~ \\ \hline Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & 1.8.0 \\ @@ -361,7 +361,7 @@ when the translator was updated. \hline Indonesian & Hendy Irawan & {\tt\tiny ceefour at gauldong dot net} & 1.8.0 \\ \hline - Italian & Alessandro Falappa & {\tt\tiny alessandro at falappa dot net} & 1.7.5 \\ + Italian & Alessandro Falappa & {\tt\tiny alessandro at falappa dot net} & up-to-date \\ ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23 at cam dot ac dot uk} & ~ \\ \hline Japanese & Hiroki Iseri & {\tt\tiny goyoki at gmail dot com} & 1.6.0 \\ @@ -388,7 +388,7 @@ when the translator was updated. \hline Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh at gmail dot com} & 1.7.5 \\ \hline - Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & 1.6.3 \\ + Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & up-to-date \\ ~ & Grzegorz Kowal & {\tt\tiny [unreachable] g\_kowal at poczta dot onet dot pl} & ~ \\ ~ & Krzysztof Kral & {\tt\tiny krzysztof dot kral at gmail dot com} & ~ \\ \hline @@ -404,12 +404,12 @@ when the translator was updated. \hline SerbianCyrilic & Nedeljko Stefanovic & {\tt\tiny stenedjo at yahoo dot com} & 1.6.0 \\ \hline - Slovak & Kali+Laco Švec & {\tt\tiny the Slovak language advisors} & 1.8.0 \\ + Slovak & Kali+Laco Švec & {\tt\tiny the Slovak language advisors} & up-to-date \\ ~ & Petr Přikryl & {\tt\tiny prikrylp at skil dot cz} & ~ \\ \hline Slovene & Matjaž Ostroveršnik & {\tt\tiny matjaz dot ostroversnik at ostri dot org} & 1.4.6 \\ \hline - Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & 1.7.5 \\ + Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & up-to-date \\ ~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra at puc dot cl} & ~ \\ ~ & David Vaquero & {\tt\tiny david at grupoikusnet dot com} & ~ \\ \hline diff --git a/doc/lists.doc b/doc/lists.doc index 89b21e8..b79b2cd 100644 --- a/doc/lists.doc +++ b/doc/lists.doc @@ -6,7 +6,7 @@ Doxygen provides a number of ways to create lists of items. By putting a number of column-aligned minus (-) signs at the start of a line, a bullet list will automatically be generated. Instead of the minus -sign also plus (+) or asterix (\*) can be used. +sign also plus (+) or asterisk (\*) can be used. Numbered lists can also be generated by using a minus followed by a hash or by using a number followed by a dot. diff --git a/doc/markdown.doc b/doc/markdown.doc index d571eef..30fca62 100644 --- a/doc/markdown.doc +++ b/doc/markdown.doc @@ -515,7 +515,7 @@ Futhermore, a `*` or `_` only starts an emphasis if - it is preceded by a space, newline, or one the following characters `<{([,:;` An emphasis ends if -- it is not following by an alphanumerical character, and +- it is not followed by an alphanumerical character, and - it is not preceded by a space, newline, or one the following characters `({[<=+-\@` Lastly, the span of the emphasis is limited to a single paragraph. diff --git a/doc/translator_report.txt b/doc/translator_report.txt index 01a864a..cf7b205 100644 --- a/doc/translator_report.txt +++ b/doc/translator_report.txt @@ -1,4 +1,4 @@ -(1.7.6.1) +(1.8.0) Doxygen supports the following 39 languages (sorted alphabetically): @@ -10,17 +10,26 @@ Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, and Vietnamese. -Of them, 2 translators are up-to-date, 37 translators are based on +Of them, 11 translators are up-to-date, 28 translators are based on some adapter class, and 2 are English based. ---------------------------------------------------------------------- The following translator classes are up-to-date (sorted alphabetically). This means that they derive from the Translator class -and they implement all 233 of the required methods. Anyway, there +and they implement all 235 of the required methods. Anyway, there still may be some details listed even for them: + TranslatorChinese + TranslatorCroatian + TranslatorCzech TranslatorDutch TranslatorEnglish + TranslatorEsperanto + TranslatorGerman + TranslatorItalian + TranslatorPolish -- Remove the obsolete methods (never used). + TranslatorSlovak + TranslatorSpanish -- The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs() ---------------------------------------------------------------------- The following translator classes need some maintenance (the most @@ -28,75 +37,66 @@ obsolete at the end). The other info shows the estimation of Doxygen version when the class was last updated and number of methods that must be implemented to become up-to-date: - TranslatorSlovak 1.8.0 5 methods to implement (2 %) - TranslatorPortuguese 1.8.0 5 methods to implement (2 %) - TranslatorIndonesian 1.8.0 5 methods to implement (2 %) + TranslatorPortuguese 1.8.0 7 methods to implement (2 %) + TranslatorIndonesian 1.8.0 7 methods to implement (2 %) Note: Reimplementation using UTF-8 suggested. - TranslatorGreek 1.8.0 5 methods to implement (2 %) - TranslatorGerman 1.8.0 5 methods to implement (2 %) - TranslatorFrench 1.8.0 5 methods to implement (2 %) + TranslatorGreek 1.8.0 7 methods to implement (2 %) + TranslatorFrench 1.8.0 7 methods to implement (2 %) Note: Reimplementation using UTF-8 suggested. - TranslatorDanish 1.8.0 5 methods to implement (2 %) + TranslatorDanish 1.8.0 7 methods to implement (2 %) Note: Reimplementation using UTF-8 suggested. - TranslatorCzech 1.8.0 5 methods to implement (2 %) - TranslatorCroatian 1.8.0 5 methods to implement (2 %) - TranslatorChinese 1.8.0 5 methods to implement (2 %) - TranslatorChinesetraditional 1.8.0 5 methods to implement (2 %) + TranslatorChinesetraditional 1.8.0 7 methods to implement (2 %) Note: Reimplementation using UTF-8 suggested. - TranslatorCatalan 1.8.0 5 methods to implement (2 %) - TranslatorBrazilian 1.8.0 5 methods to implement (2 %) - TranslatorArmenian 1.8.0 5 methods to implement (2 %) - TranslatorTurkish 1.7.5 8 methods to implement (3 %) - TranslatorSpanish 1.7.5 8 methods to implement (3 %) - TranslatorRussian 1.7.5 8 methods to implement (3 %) + TranslatorCatalan 1.8.0 7 methods to implement (2 %) + TranslatorBrazilian 1.8.0 7 methods to implement (2 %) + TranslatorArmenian 1.8.0 7 methods to implement (2 %) + TranslatorTurkish 1.7.5 10 methods to implement (4 %) + TranslatorRussian 1.7.5 10 methods to implement (4 %) Note: Reimplementation using UTF-8 suggested. - TranslatorPersian 1.7.5 8 methods to implement (3 %) - TranslatorKorean 1.7.5 8 methods to implement (3 %) + TranslatorPersian 1.7.5 10 methods to implement (4 %) + TranslatorKorean 1.7.5 10 methods to implement (4 %) Note: Reimplementation using UTF-8 suggested. - TranslatorItalian 1.7.5 8 methods to implement (3 %) - TranslatorEsperanto 1.7.5 8 methods to implement (3 %) - TranslatorPolish 1.6.3 12 methods to implement (5 %) - TranslatorVietnamese 1.6.0 17 methods to implement (7 %) - TranslatorSwedish 1.6.0 17 methods to implement (7 %) + TranslatorVietnamese 1.6.0 19 methods to implement (8 %) + TranslatorSwedish 1.6.0 19 methods to implement (8 %) Note: Reimplementation using UTF-8 suggested. - TranslatorSerbian 1.6.0 17 methods to implement (7 %) + TranslatorSerbian 1.6.0 19 methods to implement (8 %) Note: Reimplementation using UTF-8 suggested. - TranslatorSerbianCyrilic 1.6.0 17 methods to implement (7 %) - TranslatorRomanian 1.6.0 17 methods to implement (7 %) + TranslatorSerbianCyrilic 1.6.0 19 methods to implement (8 %) + TranslatorRomanian 1.6.0 19 methods to implement (8 %) Note: Reimplementation using UTF-8 suggested. - TranslatorMacedonian 1.6.0 17 methods to implement (7 %) - TranslatorJapanese 1.6.0 17 methods to implement (7 %) + TranslatorMacedonian 1.6.0 19 methods to implement (8 %) + TranslatorJapanese 1.6.0 19 methods to implement (8 %) Note: Reimplementation using UTF-8 suggested. - TranslatorFinnish 1.6.0 17 methods to implement (7 %) - TranslatorAfrikaans 1.6.0 17 methods to implement (7 %) + TranslatorFinnish 1.6.0 19 methods to implement (8 %) + TranslatorAfrikaans 1.6.0 19 methods to implement (8 %) Note: Reimplementation using UTF-8 suggested. - TranslatorSlovene 1.4.6 41 methods to implement (17 %) + TranslatorSlovene 1.4.6 43 methods to implement (18 %) Note: Reimplementation using UTF-8 suggested. - TranslatorNorwegian 1.4.6 40 methods to implement (17 %) + TranslatorNorwegian 1.4.6 42 methods to implement (17 %) Note: Reimplementation using UTF-8 suggested. - TranslatorLithuanian 1.4.6 41 methods to implement (17 %) + TranslatorLithuanian 1.4.6 43 methods to implement (18 %) Note: Reimplementation using UTF-8 suggested. - TranslatorHungarian 1.4.6 41 methods to implement (17 %) + TranslatorHungarian 1.4.6 43 methods to implement (18 %) Note: Reimplementation using UTF-8 suggested. - TranslatorArabic 1.4.6 40 methods to implement (17 %) + TranslatorArabic 1.4.6 42 methods to implement (17 %) Note: Reimplementation using UTF-8 suggested. - TranslatorUkrainian 1.4.1 41 methods to implement (17 %) + TranslatorUkrainian 1.4.1 43 methods to implement (18 %) Note: Reimplementation using UTF-8 suggested. @@ -131,10 +131,10 @@ Details for translators (classes sorted alphabetically): -TranslatorAfrikaans (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorAfrikaans (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ------------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -150,14 +150,16 @@ TranslatorAfrikaans (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorArabic (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) +TranslatorArabic (TranslatorAdapter_1_4_6) 42 methods to implement (17 %) ---------------- Implements 193 of the required methods (82 %). @@ -191,7 +193,9 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -218,7 +222,7 @@ TranslatorArabic (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) virtual QCString trNoDescriptionAvailable() -TranslatorArmenian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorArmenian (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ------------------ Implements 228 of the required methods (97 %). @@ -229,10 +233,12 @@ TranslatorArmenian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorBrazilian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorBrazilian (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ------------------- Implements 228 of the required methods (97 %). @@ -243,10 +249,12 @@ TranslatorBrazilian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorCatalan (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorCatalan (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ----------------- Implements 228 of the required methods (97 %). @@ -257,24 +265,12 @@ TranslatorCatalan (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorChinese (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) ------------------ - - Implements 228 of the required methods (97 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trEnumReference(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ---------------------------- Implements 228 of the required methods (97 %). @@ -285,38 +281,12 @@ TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 5 methods to implement virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorCroatian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) ------------------- - - Implements 228 of the required methods (97 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trEnumReference(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorCzech (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) ---------------- - - Implements 228 of the required methods (97 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trEnumReference(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorDanish (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorDanish (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ---------------- Implements 228 of the required methods (97 %). @@ -327,30 +297,15 @@ TranslatorDanish (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorEsperanto (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) -------------------- - - Implements 225 of the required methods (96 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trDirDepGraph(const char * name) - virtual QCString trEnumReference(const char * name) - virtual QCString trCiteReferences() - virtual QCString trCopyright() - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorFinnish (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorFinnish (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ----------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -366,14 +321,16 @@ TranslatorFinnish (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorFrench (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorFrench (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) ---------------- Implements 228 of the required methods (97 %). @@ -384,24 +341,12 @@ TranslatorFrench (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorGerman (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) ----------------- - - Implements 228 of the required methods (97 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trEnumReference(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorGreek (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorGreek (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) --------------- Implements 228 of the required methods (97 %). @@ -412,13 +357,15 @@ TranslatorGreek (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorHungarian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) +TranslatorHungarian (TranslatorAdapter_1_4_6) 43 methods to implement (18 %) ------------------- - Implements 192 of the required methods (82 %). + Implements 192 of the required methods (81 %). Missing methods (should be implemented): @@ -449,7 +396,9 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -465,7 +414,7 @@ TranslatorHungarian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trSubprogramDocumentation() -TranslatorIndonesian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorIndonesian (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) -------------------- Implements 228 of the required methods (97 %). @@ -476,30 +425,15 @@ TranslatorIndonesian (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorItalian (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) ------------------ - - Implements 225 of the required methods (96 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trDirDepGraph(const char * name) - virtual QCString trEnumReference(const char * name) - virtual QCString trCiteReferences() - virtual QCString trCopyright() - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorJapanese (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorJapanese (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ------------------ - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -515,7 +449,9 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -534,7 +470,7 @@ TranslatorJapanese (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trNoDescriptionAvailable() -TranslatorJapaneseEn (TranslatorEnglish) 228 methods to implement (97 %) +TranslatorJapaneseEn (TranslatorEnglish) 230 methods to implement (97 %) -------------------- Implements 5 of the required methods (2 %). @@ -548,10 +484,10 @@ TranslatorJapaneseEn (TranslatorEnglish) 228 methods to implement (97 %) virtual QCString latexLanguageSupportCommand() -TranslatorKorean (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) +TranslatorKorean (TranslatorAdapter_1_7_5) 10 methods to implement (4 %) ---------------- - Implements 225 of the required methods (96 %). + Implements 225 of the required methods (95 %). Missing methods (should be implemented): @@ -560,12 +496,14 @@ TranslatorKorean (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) virtual QCString trAndMore(const QCString & number) virtual QCString trDirDepGraph(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trCopyright() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorKoreanEn (TranslatorEnglish) 228 methods to implement (97 %) +TranslatorKoreanEn (TranslatorEnglish) 230 methods to implement (97 %) ------------------ Implements 5 of the required methods (2 %). @@ -579,10 +517,10 @@ TranslatorKoreanEn (TranslatorEnglish) 228 methods to implement (97 %) virtual QCString latexLanguageSupportCommand() -TranslatorLithuanian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) +TranslatorLithuanian (TranslatorAdapter_1_4_6) 43 methods to implement (18 %) -------------------- - Implements 192 of the required methods (82 %). + Implements 192 of the required methods (81 %). Missing methods (should be implemented): @@ -613,7 +551,9 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -629,10 +569,10 @@ TranslatorLithuanian (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trSubprogramDocumentation() -TranslatorMacedonian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorMacedonian (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) -------------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -648,14 +588,16 @@ TranslatorMacedonian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorNorwegian (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) +TranslatorNorwegian (TranslatorAdapter_1_4_6) 42 methods to implement (17 %) ------------------- Implements 193 of the required methods (82 %). @@ -689,7 +631,9 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -716,10 +660,10 @@ TranslatorNorwegian (TranslatorAdapter_1_4_6) 40 methods to implement (17 %) virtual QCString trNoDescriptionAvailable() -TranslatorPersian (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) +TranslatorPersian (TranslatorAdapter_1_7_5) 10 methods to implement (4 %) ----------------- - Implements 225 of the required methods (96 %). + Implements 225 of the required methods (95 %). Missing methods (should be implemented): @@ -728,30 +672,17 @@ TranslatorPersian (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) virtual QCString trAndMore(const QCString & number) virtual QCString trDirDepGraph(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trCopyright() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorPolish (TranslatorAdapter_1_6_3) 12 methods to implement (5 %) +TranslatorPolish (Translator) ---------------- - Implements 221 of the required methods (94 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) - virtual QCString trFileIn(const char * name) - virtual QCString trAndMore(const QCString & number) - virtual QCString trDirDepGraph(const char * name) - virtual QCString trEnumReference(const char * name) - virtual QCString trCiteReferences() - virtual QCString trDirDependency(const char * name) - virtual QCString trCopyright() - virtual QCString trIncludesFileIn(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) + Implements 235 of the required methods (100 %). Obsolete methods (should be removed, never used): @@ -766,7 +697,7 @@ TranslatorPolish (TranslatorAdapter_1_6_3) 12 methods to implement (5 %) QCString trNoDescriptionAvailable() -TranslatorPortuguese (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) +TranslatorPortuguese (TranslatorAdapter_1_8_0) 7 methods to implement (2 %) -------------------- Implements 228 of the required methods (97 %). @@ -777,13 +708,15 @@ TranslatorPortuguese (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) virtual QCString trTemplateParameters() virtual QCString trAndMore(const QCString & number) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorRomanian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorRomanian (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ------------------ - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -799,17 +732,19 @@ TranslatorRomanian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorRussian (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) +TranslatorRussian (TranslatorAdapter_1_7_5) 10 methods to implement (4 %) ----------------- - Implements 225 of the required methods (96 %). + Implements 225 of the required methods (95 %). Missing methods (should be implemented): @@ -818,15 +753,17 @@ TranslatorRussian (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) virtual QCString trAndMore(const QCString & number) virtual QCString trDirDepGraph(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trCopyright() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorSerbian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorSerbian (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ----------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -842,17 +779,19 @@ TranslatorSerbian (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ------------------------ - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -868,31 +807,19 @@ TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 17 methods to implement (7 virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorSlovak (TranslatorAdapter_1_8_0) 5 methods to implement (2 %) ----------------- - - Implements 228 of the required methods (97 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trEnumReference(const char * name) - virtual QCString trEnumGeneratedFromFiles(bool single) - - -TranslatorSlovene (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) +TranslatorSlovene (TranslatorAdapter_1_4_6) 43 methods to implement (18 %) ----------------- - Implements 192 of the required methods (82 %). + Implements 192 of the required methods (81 %). Missing methods (should be implemented): @@ -923,7 +850,9 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -939,27 +868,16 @@ TranslatorSlovene (TranslatorAdapter_1_4_6) 41 methods to implement (17 %) virtual QCString trSubprogramDocumentation() -TranslatorSpanish (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) +TranslatorSpanish (Translator) ----------------- - Implements 225 of the required methods (96 %). - - Missing methods (should be implemented): - - virtual QCString trDetailLevel() - virtual QCString trTemplateParameters() - virtual QCString trAndMore(const QCString & number) - virtual QCString trDirDepGraph(const char * name) - virtual QCString trEnumReference(const char * name) - virtual QCString trCiteReferences() - virtual QCString trCopyright() - virtual QCString trEnumGeneratedFromFiles(bool single) + Implements 235 of the required methods (100 %). -TranslatorSwedish (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorSwedish (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) ----------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -975,17 +893,19 @@ TranslatorSwedish (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorTurkish (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) +TranslatorTurkish (TranslatorAdapter_1_7_5) 10 methods to implement (4 %) ----------------- - Implements 225 of the required methods (96 %). + Implements 225 of the required methods (95 %). Missing methods (should be implemented): @@ -994,15 +914,17 @@ TranslatorTurkish (TranslatorAdapter_1_7_5) 8 methods to implement (3 %) virtual QCString trAndMore(const QCString & number) virtual QCString trDirDepGraph(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trCopyright() virtual QCString trEnumGeneratedFromFiles(bool single) -TranslatorUkrainian (TranslatorAdapter_1_4_1) 41 methods to implement (17 %) +TranslatorUkrainian (TranslatorAdapter_1_4_1) 43 methods to implement (18 %) ------------------- - Implements 192 of the required methods (82 %). + Implements 192 of the required methods (81 %). Missing methods (should be implemented): @@ -1034,7 +956,9 @@ TranslatorUkrainian (TranslatorAdapter_1_4_1) 41 methods to implement (17 %) virtual QCString trCompoundListFortran() virtual QCString trDataTypes() virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) @@ -1061,10 +985,10 @@ TranslatorUkrainian (TranslatorAdapter_1_4_1) 41 methods to implement (17 %) virtual QCString trNoDescriptionAvailable() -TranslatorVietnamese (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) +TranslatorVietnamese (TranslatorAdapter_1_6_0) 19 methods to implement (8 %) -------------------- - Implements 216 of the required methods (92 %). + Implements 216 of the required methods (91 %). Missing methods (should be implemented): @@ -1080,7 +1004,9 @@ TranslatorVietnamese (TranslatorAdapter_1_6_0) 17 methods to implement (7 %) virtual QCString trDirDepGraph(const char * name) virtual QCString trDirRelation(const char * name) virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() virtual QCString trDirDependency(const char * name) virtual QCString trCopyright() virtual QCString trIncludesFileIn(const char * name) diff --git a/qtools/Doxyfile b/qtools/Doxyfile index 6774882..13f4d0e 100644 --- a/qtools/Doxyfile +++ b/qtools/Doxyfile @@ -260,7 +260,7 @@ PERL_PATH = /usr/bin/perl CLASS_DIAGRAMS = YES MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO +HAVE_DOT = YES DOT_NUM_THREADS = 0 DOT_FONTNAME = DOT_FONTSIZE = 10 diff --git a/qtools/qlist.doc b/qtools/qlist.doc index 98decd1..6b4278c 100644 --- a/qtools/qlist.doc +++ b/qtools/qlist.doc @@ -927,14 +927,12 @@ QStrList documentation *****************************************************************************/ -typedef QList<char> QStrList +//typedef QList<char> QStrList /*! \class QStrList qstrlist.h \brief The QStrList class provides a doubly linked list of \c char*. - \inherit QList - \ingroup collection \ingroup tools @@ -1039,8 +1037,6 @@ case insensitive compare. \class QStrListIterator qstrlist.h \brief The QStrListIterator class is an iterator for the QStrList and QStrIList classes. - \inherit QListIterator - \ingroup tools This class is a QListIterator\<char\> instance. diff --git a/src/classdef.cpp b/src/classdef.cpp index 499d1e6..ad33bd7 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -961,7 +961,7 @@ void ClassDef::writeDetailedDocumentationBody(OutputList &ol) } // write the detailed description for this class -void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType, bool exampleFlag, +void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &/*pageType*/, bool exampleFlag, const QCString &title,const QCString &anchor) { if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) || @@ -994,7 +994,7 @@ void ClassDef::writeDetailedDescription(OutputList &ol, const QCString &pageType } else { - writeTemplateSpec(ol,this,pageType); + //writeTemplateSpec(ol,this,pageType); } } @@ -1419,6 +1419,14 @@ void ClassDef::startMemberDeclarations(OutputList &ol) void ClassDef::endMemberDeclarations(OutputList &ol) { //printf("%s: ClassDef::endMemberDeclarations()\n",name().data()); + static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB"); + if (!inlineInheritedMembers && countAdditionalInheritedMembers()>0) + { + ol.startMemberHeader("inherited"); + ol.parseText(theTranslator->trAdditionalInheritedMembers()); + ol.endMemberHeader(); + writeAdditionalInheritedMembers(ol); + } ol.endMemberSections(); } @@ -1533,6 +1541,7 @@ void ClassDef::writeInlineDocumentation(OutputList &ol) ol.parseText(s); ol.endMemberDocName(); ol.endMemberDoc(FALSE); + ol.writeString("</div>"); ol.startIndent(); } ol.popGeneratorState(); @@ -2373,7 +2382,8 @@ bool ClassDef::hasNonReferenceSuperClass() /*! called from MemberDef::writeDeclaration() to (recusively) write the * definition of an anonymous struct, union or class. */ -void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) +void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup, + const char *inheritId) { //ol.insertMemberAlign(); //printf("ClassName=`%s' inGroup=%d\n",name().data(),inGroup); @@ -2413,47 +2423,21 @@ void ClassDef::writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup) for (;(mg=mgli.current());++mgli) { mg->setInGroup(inGroup); - mg->writePlainDeclarations(ol,this,0,0,0); + mg->writePlainDeclarations(ol,this,0,0,0,inheritId); + } + } + + QListIterator<LayoutDocEntry> eli( + LayoutDocManager::instance().docEntries(LayoutDocManager::Class)); + LayoutDocEntry *lde; + for (eli.toFirst();(lde=eli.current());++eli) + { + if (lde->kind()==LayoutDocEntry::MemberDecl) + { + LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; + writePlainMemberDeclaration(ol,lmd->type,inGroup,inheritId); } } - static bool extractPrivate = Config_getBool("EXTRACT_PRIVATE"); - static bool extractPackage = Config_getBool("EXTRACT_PACKAGE"); - - writePlainMemberDeclaration(ol,MemberList::pubTypes,inGroup); - writePlainMemberDeclaration(ol,MemberList::pubMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::pubAttribs,inGroup); - writePlainMemberDeclaration(ol,MemberList::pubSlots,inGroup); - writePlainMemberDeclaration(ol,MemberList::signals,inGroup); - writePlainMemberDeclaration(ol,MemberList::dcopMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::properties,inGroup); - writePlainMemberDeclaration(ol,MemberList::events,inGroup); - writePlainMemberDeclaration(ol,MemberList::pubStaticMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::pubStaticAttribs,inGroup); - writePlainMemberDeclaration(ol,MemberList::proTypes,inGroup); - writePlainMemberDeclaration(ol,MemberList::proMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::proAttribs,inGroup); - writePlainMemberDeclaration(ol,MemberList::proSlots,inGroup); - writePlainMemberDeclaration(ol,MemberList::proStaticMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::proStaticAttribs,inGroup); - if (extractPackage) - { - writePlainMemberDeclaration(ol,MemberList::pacTypes,inGroup); - writePlainMemberDeclaration(ol,MemberList::pacMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::pacAttribs,inGroup); - writePlainMemberDeclaration(ol,MemberList::pacStaticMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::pacStaticAttribs,inGroup); - } - if (extractPrivate) - { - writePlainMemberDeclaration(ol,MemberList::priTypes,inGroup); - writePlainMemberDeclaration(ol,MemberList::priMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::priAttribs,inGroup); - writePlainMemberDeclaration(ol,MemberList::priSlots,inGroup); - writePlainMemberDeclaration(ol,MemberList::priStaticMethods,inGroup); - writePlainMemberDeclaration(ol,MemberList::priStaticAttribs,inGroup); - } - writePlainMemberDeclaration(ol,MemberList::friends,inGroup); - writePlainMemberDeclaration(ol,MemberList::related,inGroup); } /*! a link to this class is possible within this project */ @@ -3682,21 +3666,349 @@ void ClassDef::sortMemberLists() } } +static void convertProtectionLevel( + MemberList::ListType inListType, + Protection inProt, + int *outListType1, + int *outListType2 + ) +{ + // default representing Public inheritance + *outListType1=inListType; + *outListType2=-1; + if (inProt==Public) + { + switch (inListType) // in the private section of the derived class, + // the private section of the base class should not + // be visible + { + case MemberList::priMethods: + case MemberList::priStaticMethods: + case MemberList::priSlots: + case MemberList::priAttribs: + case MemberList::priStaticAttribs: + case MemberList::priTypes: + *outListType1=-1; + *outListType2=-1; + break; + default: + break; + } + } + else if (inProt==Protected) // Protected inheritance + { + switch (inListType) // in the protected section of the derived class, + // both the public and protected members are shown + // as protected + { + case MemberList::pubMethods: + case MemberList::pubStaticMethods: + case MemberList::pubSlots: + case MemberList::pubAttribs: + case MemberList::pubStaticAttribs: + case MemberList::pubTypes: + case MemberList::priMethods: + case MemberList::priStaticMethods: + case MemberList::priSlots: + case MemberList::priAttribs: + case MemberList::priStaticAttribs: + case MemberList::priTypes: + *outListType1=-1; + *outListType2=-1; + break; + + case MemberList::proMethods: + *outListType1=MemberList::pubMethods; + *outListType2=MemberList::proMethods; + break; + case MemberList::proStaticMethods: + *outListType1=MemberList::pubStaticMethods; + *outListType2=MemberList::proStaticMethods; + break; + case MemberList::proSlots: + *outListType1=MemberList::pubSlots; + *outListType1=MemberList::proSlots; + break; + case MemberList::proAttribs: + *outListType1=MemberList::pubAttribs; + *outListType2=MemberList::proAttribs; + break; + case MemberList::proStaticAttribs: + *outListType1=MemberList::pubStaticAttribs; + *outListType2=MemberList::proStaticAttribs; + break; + case MemberList::proTypes: + *outListType1=MemberList::pubTypes; + *outListType2=MemberList::proTypes; + break; + default: + break; + } + } + else if (inProt==Private) + { + switch (inListType) // in the private section of the derived class, + // both the public and protected members are shown + // as private + { + case MemberList::pubMethods: + case MemberList::pubStaticMethods: + case MemberList::pubSlots: + case MemberList::pubAttribs: + case MemberList::pubStaticAttribs: + case MemberList::pubTypes: + case MemberList::proMethods: + case MemberList::proStaticMethods: + case MemberList::proSlots: + case MemberList::proAttribs: + case MemberList::proStaticAttribs: + case MemberList::proTypes: + *outListType1=-1; + *outListType2=-1; + break; + + case MemberList::priMethods: + *outListType1=MemberList::pubMethods; + *outListType2=MemberList::proMethods; + break; + case MemberList::priStaticMethods: + *outListType1=MemberList::pubStaticMethods; + *outListType2=MemberList::proStaticMethods; + break; + case MemberList::priSlots: + *outListType1=MemberList::pubSlots; + *outListType1=MemberList::proSlots; + break; + case MemberList::priAttribs: + *outListType1=MemberList::pubAttribs; + *outListType2=MemberList::proAttribs; + break; + case MemberList::priStaticAttribs: + *outListType1=MemberList::pubStaticAttribs; + *outListType2=MemberList::proStaticAttribs; + break; + case MemberList::priTypes: + *outListType1=MemberList::pubTypes; + *outListType2=MemberList::proTypes; + break; + default: + break; + } + } +} + +int ClassDef::countInheritedDecMembersRec(MemberList::ListType lt) +{ + int count=0; + if (m_impl->inherits) + { + BaseClassDef *ibcd=m_impl->inherits->first(); + while (ibcd) + { + ClassDef *icd=ibcd->classDef; + int lt1,lt2; + convertProtectionLevel(lt,ibcd->prot,<1,<2); + MemberList *ml = icd->getMemberList((MemberList::ListType)lt1); + if (ml) + { + ml->countDecMembers(); + count+=ml->numDecMembers(); + count+=icd->countInheritedDecMembersRec((MemberList::ListType)lt1); + } + if (lt2!=-1) + { + ml = icd->getMemberList((MemberList::ListType)lt2); + if (ml) + { + ml->countDecMembers(); + count+=ml->numDecMembers(); + count+=icd->countInheritedDecMembersRec((MemberList::ListType)lt2); + } + } + ibcd=m_impl->inherits->next(); + } + } + if (m_impl->memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*m_impl->memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section + { + count+=mg->countGroupedInheritedMembers(lt); + } + } + } + return count; +} + +int ClassDef::countInheritedDecMembers(MemberList::ListType lt) +{ + int count=0; + MemberList *ml = getMemberList(lt); + if (ml) + { + ml->countDecMembers(); + count = ml->numDecMembers(); + } + if (count==0) // for this class the member list is empty + { + count = countInheritedDecMembersRec(lt); + } + else // member list is not empty, so we will add the inherited members there + { + count=0; + } + return count; +} + +int ClassDef::countAdditionalInheritedMembers() +{ + int totalCount=0; + QListIterator<LayoutDocEntry> eli( + LayoutDocManager::instance().docEntries(LayoutDocManager::Class)); + LayoutDocEntry *lde; + for (eli.toFirst();(lde=eli.current());++eli) + { + if (lde->kind()==LayoutDocEntry::MemberDecl) + { + LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; + totalCount+=countInheritedDecMembers(lmd->type); + } + } + //printf("countAdditonalInheritedMembers()=%d\n",totalCount); + return totalCount; +} + +void ClassDef::writeAdditionalInheritedMembers(OutputList &ol) +{ + //printf("writeAdditionalInheritedMembers()\n"); + QListIterator<LayoutDocEntry> eli( + LayoutDocManager::instance().docEntries(LayoutDocManager::Class)); + LayoutDocEntry *lde; + for (eli.toFirst();(lde=eli.current());++eli) + { + if (lde->kind()==LayoutDocEntry::MemberDecl) + { + LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; + MemberList *ml = getMemberList(lmd->type); + if (ml==0 || ml->numDecMembers()==0) + { + QPtrDict<void> visited(17); + writeInheritedMemberDeclarations(ol,lmd->type,lmd->title,this,TRUE,&visited); + } + } + } +} + +int ClassDef::countMembersIncludingGrouped(MemberList::ListType lt) +{ + int count=0; + MemberList *ml = getMemberList(lt); + if (ml) + { + ml->countDecMembers(); + count=ml->numDecMembers(); + } + if (m_impl->memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*m_impl->memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section + { + count+=mg->countGroupedInheritedMembers(lt); + } + } + } + return count; +} + +void ClassDef::writeInheritedMemberDeclarations(OutputList &ol, + MemberList::ListType lt,const QCString &title, + ClassDef *inheritedFrom,bool invert, + QPtrDict<void> *visitedClasses) +{ + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + bool process = countMembersIncludingGrouped(lt)>0; + if (process^invert) + { + if (m_impl->inherits) + { + BaseClassDef *ibcd=m_impl->inherits->first(); + while (ibcd) + { + ClassDef *icd=ibcd->classDef; + int lt1,lt2; + convertProtectionLevel(lt,ibcd->prot,<1,<2); + //printf("%s:convert %d->(%d,%d)\n",icd->name().data(),lt,lt1,lt2); + if (visitedClasses->find(icd)!=0) return; + visitedClasses->insert(icd,icd); + if (lt1!=-1) + { + icd->writeMemberDeclarations(ol,(MemberList::ListType)lt1,title,QCString(),FALSE,inheritedFrom,lt2,visitedClasses); + } + ibcd=m_impl->inherits->next(); + } + } + } + ol.popGeneratorState(); +} + void ClassDef::writeMemberDeclarations(OutputList &ol,MemberList::ListType lt,const QCString &title, - const char *subTitle,bool showInline) + const char *subTitle,bool showInline,ClassDef *inheritedFrom,int lt2,QPtrDict<void> *visitedClasses) { - //printf("%s: ClassDef::writeMemberDeclarations\n",name().data()); + //printf("%s::writeMemberDeclarations(%s)\n",name().data(),title.data()); //static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); MemberList * ml = getMemberList(lt); if (ml) { + //printf("%s: ClassDef::writeMemberDeclarations for %s\n",name().data(),ml->listTypeAsString().data()); if (getLanguage()==SrcLangExt_VHDL) // use specific declarations function { VhdlDocGen::writeVhdlDeclarations(ml,ol,0,this,0,0); } else // use generic declaration function { - ml->writeDeclarations(ol,this,0,0,0,title,subTitle,FALSE,showInline); + ml->writeDeclarations(ol,this,0,0,0,title,subTitle,FALSE,showInline,inheritedFrom); + if (lt2!=-1) + { + MemberList * ml2 = getMemberList((MemberList::ListType)lt2); + if (ml2) + { + ml2->writeDeclarations(ol,this,0,0,0,0,0,FALSE,showInline,inheritedFrom); + } + } + + static bool inlineInheritedMembers = Config_getBool("INLINE_INHERITED_MEMB"); + if (!inlineInheritedMembers) // show inherited members as separate lists + { + QPtrDict<void> visited(17); + writeInheritedMemberDeclarations(ol,lt,title, + inheritedFrom ? inheritedFrom : this, + FALSE,visitedClasses==0 ? &visited: visitedClasses); + } + } + } +} + +void ClassDef::addGroupedInheritedMembers(OutputList &ol,MemberList::ListType lt,const QCString &inheritId) +{ + //printf("** %s::addGroupedInheritedMembers(%p) inheritId=%s\n",name().data(),m_impl->memberGroupSDict,inheritId.data()); + if (m_impl->memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*m_impl->memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + //printf(" candidate %s\n",mg->header().data()); + if (!mg->allMembersInSameSection() || !m_impl->subGrouping) // group is in its own section + { + mg->addGroupedInheritedMembers(ol,this,lt,inheritId); + } } } } @@ -3715,14 +4027,15 @@ void ClassDef::writeSimpleMemberDocumentation(OutputList &ol,MemberList::ListTyp if (ml) ml->writeSimpleDocumentation(ol,this); } -void ClassDef::writePlainMemberDeclaration(OutputList &ol,MemberList::ListType lt,bool inGroup) +void ClassDef::writePlainMemberDeclaration(OutputList &ol, + MemberList::ListType lt,bool inGroup,const char *inheritId) { //printf("%s: ClassDef::writePlainMemberDeclaration()\n",name().data()); MemberList * ml = getMemberList(lt); if (ml) { ml->setInGroup(inGroup); - ml->writePlainDeclarations(ol,this,0,0,0); + ml->writePlainDeclarations(ol,this,0,0,0,inheritId); } } diff --git a/src/classdef.h b/src/classdef.h index 205b437..f73b08c 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -21,6 +21,7 @@ #include "qtbc.h" #include <qlist.h> #include <qdict.h> +#include <qptrdict.h> #include <qstrlist.h> #include "util.h" @@ -330,7 +331,7 @@ class ClassDef : public Definition void writeDocumentationForInnerClasses(OutputList &ol); void writeMemberPages(OutputList &ol); void writeMemberList(OutputList &ol); - void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup); + void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup,const char *inheritId); void writeQuickMemberLinks(OutputList &ol,MemberDef *md) const; void writeSummaryLinks(OutputList &ol); void reclassifyMember(MemberDef *md,MemberDef::MemberType t); @@ -338,6 +339,8 @@ class ClassDef : public Definition void writeDeclarationLink(OutputList &ol,bool &found, const char *header,bool localNames); void removeMemberFromLists(MemberDef *md); + void addGroupedInheritedMembers(OutputList &ol,MemberList::ListType lt, + const QCString &inheritId); bool visited; @@ -354,11 +357,12 @@ class ClassDef : public Definition QCString getMemberListFileName() const; void addMemberToList(MemberList::ListType lt,MemberDef *md,bool isBrief); MemberList *createMemberList(MemberList::ListType lt); + void writeInheritedMemberDeclarations(OutputList &ol,MemberList::ListType lt,const QCString &title,ClassDef *inheritedFrom,bool invert,QPtrDict<void> *visitedClasses); void writeMemberDeclarations(OutputList &ol,MemberList::ListType lt,const QCString &title, - const char *subTitle=0,bool showInline=FALSE); + const char *subTitle=0,bool showInline=FALSE,ClassDef *inheritedFrom=0,int lt2=-1,QPtrDict<void> *visitedClasses=0); void writeMemberDocumentation(OutputList &ol,MemberList::ListType lt,const QCString &title,bool showInline=FALSE); void writeSimpleMemberDocumentation(OutputList &ol,MemberList::ListType lt); - void writePlainMemberDeclaration(OutputList &ol,MemberList::ListType lt,bool inGroup); + void writePlainMemberDeclaration(OutputList &ol,MemberList::ListType lt,bool inGroup,const char *inheritId); void writeBriefDescription(OutputList &ol,bool exampleFlag); void writeDetailedDescription(OutputList &ol,const QCString &pageType,bool exampleFlag, const QCString &title,const QCString &anchor=QCString()); @@ -377,6 +381,12 @@ class ClassDef : public Definition void writeMoreLink(OutputList &ol,const QCString &anchor); void writeDetailedDocumentationBody(OutputList &ol); + int countInheritedDecMembersRec(MemberList::ListType lt); + int countInheritedDecMembers(MemberList::ListType lt); + int countAdditionalInheritedMembers(); + void writeAdditionalInheritedMembers(OutputList &ol); + int countMembersIncludingGrouped(MemberList::ListType lt); + ClassDefImpl *m_impl; }; diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index 5d52557..c4379e3 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -75,6 +75,7 @@ CommandMap cmdMap[] = { "return", CMD_RETURN }, { "returns", CMD_RETURN }, { "retval", CMD_RETVAL }, + { "rtfonly", CMD_RTFONLY }, { "sa", CMD_SA }, { "secreflist", CMD_SECREFLIST }, { "section", CMD_SECTION }, @@ -117,6 +118,8 @@ CommandMap cmdMap[] = { "includelineno", CMD_INCWITHLINES }, { "inheritdoc", CMD_INHERITDOC }, { "mscfile", CMD_MSCFILE }, + { "rtfonly", CMD_RTFONLY }, + { "endrtfonly", CMD_ENDRTFONLY }, { 0, 0 }, }; diff --git a/src/cmdmapper.h b/src/cmdmapper.h index 04bb3ed..deb5f50 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -118,7 +118,9 @@ enum CommandType CMD_DCOLON = 84, CMD_COPYRIGHT = 85 | SIMPLESECT_BIT, CMD_CITE = 86, - CMD_SNIPPET = 87 + CMD_SNIPPET = 87, + CMD_RTFONLY = 88, + CMD_ENDRTFONLY = 89 }; enum HtmlTagType @@ -2378,6 +2378,13 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} codifyLines(yytext); endFontClass(); } +<Body>"*"{B}*")" { // end of cast? + g_code->codify(yytext); + g_theCallContext.popScope(); + g_bracketCount--; + g_parmType = g_name; + BEGIN(FuncCall); + } <Body>[\\|\)\+\-\/\%\~\!] { g_code->codify(yytext); g_name.resize(0);g_type.resize(0); @@ -2870,8 +2877,17 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} } g_code->codify(yytext); } -<MemberCall,MemberCall2,FuncCall>")" { - g_theVarContext.addVariable(g_parmType,g_parmName); +<MemberCall,MemberCall2,FuncCall>("*"{B}*)?")" { + if (yytext[0]==')') // no a pointer cast + { + //printf("addVariable(%s,%s)\n",g_parmType.data(),g_parmName.data()); + g_theVarContext.addVariable(g_parmType,g_parmName); + } + else + { + g_parmType.resize(0); + g_parmName.resize(0); + } g_theCallContext.popScope(); g_inForEachExpression = FALSE; //g_theCallContext.setClass(0); // commented out, otherwise a()->b() does not work for b(). diff --git a/src/compound.xsd b/src/compound.xsd index 1149266..406f6f5 100644 --- a/src/compound.xsd +++ b/src/compound.xsd @@ -365,6 +365,9 @@ <xsd:element name="center" type="docMarkupType" /> <xsd:element name="small" type="docMarkupType" /> <xsd:element name="htmlonly" type="xsd:string" /> + <xsd:element name="manonly" type="xsd:string" /> + <xsd:element name="xmlonly" type="xsd:string" /> + <xsd:element name="rtfonly" type="xsd:string" /> <xsd:element name="latexonly" type="xsd:string" /> <xsd:element name="dot" type="xsd:string" /> <xsd:element name="anchor" type="docAnchorType" /> diff --git a/src/compound_xsd.h b/src/compound_xsd.h index 6531857..5e04417 100644 --- a/src/compound_xsd.h +++ b/src/compound_xsd.h @@ -365,6 +365,9 @@ " <xsd:element name=\"center\" type=\"docMarkupType\" />\n" " <xsd:element name=\"small\" type=\"docMarkupType\" />\n" " <xsd:element name=\"htmlonly\" type=\"xsd:string\" />\n" +" <xsd:element name=\"manonly\" type=\"xsd:string\" />\n" +" <xsd:element name=\"xmlonly\" type=\"xsd:string\" />\n" +" <xsd:element name=\"rtfonly\" type=\"xsd:string\" />\n" " <xsd:element name=\"latexonly\" type=\"xsd:string\" />\n" " <xsd:element name=\"dot\" type=\"xsd:string\" />\n" " <xsd:element name=\"anchor\" type=\"docAnchorType\" />\n" diff --git a/src/config.xml b/src/config.xml index e3ea5bf..e42a3ae 100644 --- a/src/config.xml +++ b/src/config.xml @@ -888,11 +888,6 @@ If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML page will contain the date and time when the page was generated. Setting this to NO can help when comparing the output of multiple runs. ' defval='1' depends='GENERATE_HTML'/> - <option type='bool' id='HTML_ALIGN_MEMBERS' docs=' -If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -files or namespaces will be aligned in HTML using tables. If set to -NO a bullet list will be used. -' defval='1' depends='GENERATE_HTML'/> <option type='bool' id='HTML_DYNAMIC_SECTIONS' docs=' If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML documentation will contain sections that can be hidden and shown after the @@ -1630,5 +1625,6 @@ the various graphs. <option type='obsolete' id='EXT_DOC_PATHS'/> <option type='obsolete' id='USE_INLINE_TREES'/> <option type='obsolete' id='SHOW_DIRECTORIES'/> + <option type='obsolete' id='HTML_ALIGN_MEMBERS'/> </group> </doxygenconfig> diff --git a/src/configgen.py b/src/configgen.py index 2b06d9e..d02eafd 100755 --- a/src/configgen.py +++ b/src/configgen.py @@ -34,8 +34,10 @@ def parseOption(node): if type=='bool': if len(adefval)>0: enabled = adefval + elif defval=='1': + enabled = "TRUE" else: - enabled = "TRUE" if defval=='1' else "FALSE" + enabled = "FALSE" print " cb = cfg->addBool(" print " \"%s\"," % (name) print " \"%s\"," % (docC) diff --git a/src/configoptions.cpp b/src/configoptions.cpp index f314616..e075ac0 100644 --- a/src/configoptions.cpp +++ b/src/configoptions.cpp @@ -1275,15 +1275,6 @@ void addConfigOptions(Config *cfg) cb->addDependency("GENERATE_HTML"); //---- cb = cfg->addBool( - "HTML_ALIGN_MEMBERS", - "If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,\n" - "files or namespaces will be aligned in HTML using tables. If set to\n" - "NO a bullet list will be used.", - TRUE - ); - cb->addDependency("GENERATE_HTML"); - //---- - cb = cfg->addBool( "HTML_DYNAMIC_SECTIONS", "If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML\n" "documentation will contain sections that can be hidden and shown after the\n" @@ -2479,4 +2470,6 @@ void addConfigOptions(Config *cfg) cfg->addObsolete("USE_INLINE_TREES"); //---- cfg->addObsolete("SHOW_DIRECTORIES"); + //---- + cfg->addObsolete("HTML_ALIGN_MEMBERS"); } diff --git a/src/definition.cpp b/src/definition.cpp index 3807ec6..e1f7d60 100644 --- a/src/definition.cpp +++ b/src/definition.cpp @@ -1428,27 +1428,33 @@ QCString Definition::pathFragment() const return result; } -void Definition::writePathFragment(OutputList &ol) const +/*! Returns the string used in the footer for $navpath when + * GENERATE_TREEVIEW is enabled + */ +QCString Definition::navigationPathAsString() const { makeResident(); + QCString result; if (m_impl->outerScope && m_impl->outerScope!=Doxygen::globalScope) { - m_impl->outerScope->writePathFragment(ol); + result+=m_impl->outerScope->navigationPathAsString(); } else if (definitionType()==Definition::TypeFile && ((const FileDef*)this)->getDirDef()) { - ((const FileDef*)this)->getDirDef()->writePathFragment(ol); + result+=((const FileDef*)this)->getDirDef()->navigationPathAsString(); } - ol.writeString(" <li class=\"navelem\">"); + result+="<li class=\"navelem\">"; if (isLinkable()) { if (definitionType()==Definition::TypeGroup && ((const GroupDef*)this)->groupTitle()) { - ol.writeObjectLink(getReference(),getOutputFileBase(),0,((const GroupDef*)this)->groupTitle()); + result+="<a class=\"el\" href=\""+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ + ((const GroupDef*)this)->groupTitle()+"</a>"; } else if (definitionType()==Definition::TypePage && !((const PageDef*)this)->title().isEmpty()) { - ol.writeObjectLink(getReference(),getOutputFileBase(),0,((const PageDef*)this)->title()); + result+="<a class=\"el\" href=\""+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ + ((const PageDef*)this)->title()+"</a>"; } else if (definitionType()==Definition::TypeClass) { @@ -1457,46 +1463,34 @@ void Definition::writePathFragment(OutputList &ol) const { name = name.left(name.length()-2); } - ol.writeObjectLink(getReference(),getOutputFileBase(),0,name); + result+="<a class=\"el\" href=\""+getOutputFileBase()+Doxygen::htmlFileExtension; + if (!anchor().isEmpty()) result+="#"+anchor(); + result+="\">"+name+"</a>"; } else { - ol.writeObjectLink(getReference(),getOutputFileBase(),0,m_impl->localName); + result+="<a class=\"el\" href=\""+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ + m_impl->localName+"</a>"; } } else { - ol.startBold(); - ol.docify(m_impl->localName); - ol.endBold(); + result+="<b>"+m_impl->localName+"</b>"; } - ol.writeString(" </li>\n"); + result+="</li>"; + return result; } void Definition::writeNavigationPath(OutputList &ol) const { - static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); - ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Html); - if (generateTreeView) - { - ol.writeString("</div>\n"); - } - //if (showSearchInfo) - //{ - // ol.writeSearchInfo(); - //} - - ol.writeString(" <div id=\"nav-path\" class=\"navpath\">\n"); - ol.writeString(" <ul>\n"); - writePathFragment(ol); - if (!generateTreeView) - { - ol.writeString(" </ul>\n"); - ol.writeString(" </div>\n"); - } + ol.writeString("<div id=\"nav-path\" class=\"navpath\">\n"); + ol.writeString(" <ul>\n"); + ol.writeString(navigationPathAsString()); + ol.writeString(" </ul>\n"); + ol.writeString("</div>\n"); ol.popGeneratorState(); } diff --git a/src/definition.h b/src/definition.h index 635326d..116208c 100644 --- a/src/definition.h +++ b/src/definition.h @@ -317,8 +317,9 @@ class Definition : public DefinitionIntf, public LockableObj void writeSourceRefs(OutputList &ol,const char *scopeName); void writeSourceReffedBy(OutputList &ol,const char *scopeName); void makePartOfGroup(GroupDef *gd); - void writePathFragment(OutputList &ol) const; + //void writePathFragment(OutputList &ol) const; void writeNavigationPath(OutputList &ol) const; + QCString navigationPathAsString() const; virtual void writeQuickMemberLinks(OutputList &,MemberDef *) const {} virtual void writeSummaryLinks(OutputList &) {} QCString pathFragment() const; diff --git a/src/docparser.cpp b/src/docparser.cpp index 66b25cf..abf0943 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -1310,6 +1310,15 @@ reparsetoken: doctokenizerYYsetStatePara(); } break; + case CMD_RTFONLY: + { + doctokenizerYYsetStateRtfOnly(); + tok = doctokenizerYYlex(); + children.append(new DocVerbatim(parent,g_context,g_token->verb,DocVerbatim::RtfOnly,g_isExample,g_exampleName)); + if (tok==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"warning: rtfonly section ended without end marker"); + doctokenizerYYsetStatePara(); + } + break; case CMD_LATEXONLY: { doctokenizerYYsetStateLatexOnly(); @@ -5265,6 +5274,15 @@ int DocPara::handleCommand(const QCString &cmdName) doctokenizerYYsetStatePara(); } break; + case CMD_RTFONLY: + { + doctokenizerYYsetStateRtfOnly(); + retval = doctokenizerYYlex(); + m_children.append(new DocVerbatim(this,g_context,g_token->verb,DocVerbatim::RtfOnly,g_isExample,g_exampleName)); + if (retval==0) warn_doc_error(g_fileName,doctokenizerYYlineno,"warning: rtfonly section ended without end marker"); + doctokenizerYYsetStatePara(); + } + break; case CMD_LATEXONLY: { doctokenizerYYsetStateLatexOnly(); @@ -5313,6 +5331,7 @@ int DocPara::handleCommand(const QCString &cmdName) case CMD_ENDCODE: case CMD_ENDHTMLONLY: case CMD_ENDMANONLY: + case CMD_ENDRTFONLY: case CMD_ENDLATEXONLY: case CMD_ENDXMLONLY: case CMD_ENDLINK: diff --git a/src/docparser.h b/src/docparser.h index 8e2fae2..ad5dd03 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -372,7 +372,7 @@ class DocWhiteSpace : public DocNode class DocVerbatim : public DocNode { public: - enum Type { Code, HtmlOnly, ManOnly, LatexOnly, XmlOnly, Verbatim, Dot, Msc }; + enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc }; DocVerbatim(DocNode *parent,const QCString &context, const QCString &text, Type t,bool isExample, const QCString &exampleFile,const QCString &lang=QCString()); diff --git a/src/doctokenizer.h b/src/doctokenizer.h index e5ae26a..35fdbe2 100644 --- a/src/doctokenizer.h +++ b/src/doctokenizer.h @@ -134,6 +134,7 @@ void doctokenizerYYsetStateHtmlOnly(); void doctokenizerYYsetStateManOnly(); void doctokenizerYYsetStateLatexOnly(); void doctokenizerYYsetStateXmlOnly(); +void doctokenizerYYsetStateRtfOnly(); void doctokenizerYYsetStateVerbatim(); void doctokenizerYYsetStateDot(); void doctokenizerYYsetStateMsc(); diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 7f11aca..d9f845a 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -395,6 +395,7 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3} %x St_HtmlOnly %x St_ManOnly %x St_LatexOnly +%x St_RtfOnly %x St_XmlOnly %x St_Verbatim %x St_Dot @@ -708,9 +709,10 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3} return TK_NEWPARA; } } -<St_CodeOpt>"{"{LABELID}"}" { +<St_CodeOpt>{BLANK}*"{"(".")?{LABELID}"}" { g_token->name = yytext; - g_token->name = g_token->name.mid(1,g_token->name.length()-2); + int i=g_token->name.find('{'); + g_token->name = g_token->name.mid(i+1,g_token->name.length()-i-2); BEGIN(St_Code); } <St_CodeOpt>\n | @@ -745,6 +747,14 @@ REFWORD {LABELID}|{REFWORD2}|{REFWORD3} <St_ManOnly>. { g_token->verb+=yytext; } +<St_RtfOnly>{CMD}"endrtfonly" { + return RetVal_OK; + } +<St_RtfOnly>[^\\@\n$]+ | +<St_RtfOnly>\n | +<St_RtfOnly>. { + g_token->verb+=yytext; + } <St_LatexOnly>{CMD}"endlatexonly" { return RetVal_OK; } @@ -1199,6 +1209,12 @@ void doctokenizerYYsetStateManOnly() BEGIN(St_ManOnly); } +void doctokenizerYYsetStateRtfOnly() +{ + g_token->verb=""; + BEGIN(St_RtfOnly); +} + void doctokenizerYYsetStateXmlOnly() { g_token->verb=""; diff --git a/src/dot.cpp b/src/dot.cpp index 5a1c52c..78dc451 100644 --- a/src/dot.cpp +++ b/src/dot.cpp @@ -1593,9 +1593,9 @@ static void writeBoxMemberList(FTextStream &t, (skipNames==0 || skipNames->find(mma->name())==0)) { static int limit = Config_getInt("UML_LIMIT_NUM_FIELDS"); - if (limit==0 || (totalCount>=limit*3/2 && count>=limit)) + if (limit>0 && (totalCount>limit*3/2 && count>=limit)) { - t << theTranslator->trAndMore(QCString().sprintf("%d",totalCount-count-1)); + t << theTranslator->trAndMore(QCString().sprintf("%d",totalCount-count)); break; } else diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 7107844..f375717 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -8991,9 +8991,9 @@ int readDir(QFileInfo *fi, } else if (recursive && (!Config_getBool("EXCLUDE_SYMLINKS") || !cfi->isSymLink()) && - cfi->isDir() && cfi->fileName()!="." && + cfi->isDir() && !patternMatch(*cfi,exclPatList) && - cfi->fileName()!="..") + cfi->fileName().at(0)!='.') // skip "." ".." and ".dir" { cfi->setFile(cfi->absFilePath()); totalSize+=readDir(cfi,fnList,fnDict,exclDict, @@ -10399,11 +10399,11 @@ void parseInput() msg("Computing class relations...\n"); computeTemplateClassRelations(); flushUnresolvedRelations(); - computeClassRelations(); if (Config_getBool("OPTIMIZE_OUTPUT_VHDL")) { VhdlDocGen::computeVhdlComponentRelations(); } + computeClassRelations(); g_classEntries.clear(); msg("Add enum values to enums...\n"); diff --git a/src/doxygen.css b/src/doxygen.css index 33d8516..863c2c9 100644 --- a/src/doxygen.css +++ b/src/doxygen.css @@ -598,123 +598,68 @@ span.mlabel { /* @end */ -/* @group Directory (tree) */ - -/* for the tree view */ - -.ftvtree { - font-family: sans-serif; - margin: 0px; -} - -/* these are for tree view when used as main index */ - -.directory { - font-size: 9pt; - font-weight: bold; - margin: 5px; -} - -.directory h3 { - margin: 0px; - margin-top: 1em; - font-size: 11pt; -} - -/* -The following two styles can be used to replace the root node title -with an image of your choice. Simply uncomment the next two styles, -specify the name of your image and be sure to set 'height' to the -proper pixel height of your image. -*/ - -/* -.directory h3.swap { - height: 61px; - background-repeat: no-repeat; - background-image: url("yourimage.gif"); -} -.directory h3.swap span { - display: none; -} -*/ - -.directory > h3 { - margin-top: 0; -} - -.directory p { - margin: 0px; - white-space: nowrap; -} - -.directory div { - display: none; - margin: 0px; -} - -.directory img { - vertical-align: -30%; -} - /* these are for tree view when not used as main index */ -div.directoryalt { +div.directory { margin: 10px 0px; border-top: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; width: 100%; } -.directoryalt table { +.directory table { border-collapse:collapse; } -.directoryalt td { +.directory td { margin: 0px; padding: 0px; vertical-align: top; } -.directoryalt td.entry { +.directory td.entry { white-space: nowrap; padding-right: 6px; } -.directoryalt td.desc { +.directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; border-left: 1px solid rgba(0,0,0,0.05); } -.directoryalt tr.even { +.directory tr.even { padding-left: 6px; background-color: ##F8; } -.directoryalt img { +.directory img { vertical-align: -30%; } -.directoryalt .levels { +.directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } -.directoryalt .levels span { +.directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: ##50; } -/* @end */ - div.dynheader { margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } address { @@ -1102,6 +1047,30 @@ div.toc li.level4 { margin-left: 45px; } +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} @media print { diff --git a/src/doxygen_css.h b/src/doxygen_css.h index 9443298..b6e57e3 100644 --- a/src/doxygen_css.h +++ b/src/doxygen_css.h @@ -598,123 +598,68 @@ "\n" "/* @end */\n" "\n" -"/* @group Directory (tree) */\n" -"\n" -"/* for the tree view */\n" -"\n" -".ftvtree {\n" -" font-family: sans-serif;\n" -" margin: 0px;\n" -"}\n" -"\n" -"/* these are for tree view when used as main index */\n" -"\n" -".directory {\n" -" font-size: 9pt;\n" -" font-weight: bold;\n" -" margin: 5px;\n" -"}\n" -"\n" -".directory h3 {\n" -" margin: 0px;\n" -" margin-top: 1em;\n" -" font-size: 11pt;\n" -"}\n" -"\n" -"/*\n" -"The following two styles can be used to replace the root node title\n" -"with an image of your choice. Simply uncomment the next two styles,\n" -"specify the name of your image and be sure to set 'height' to the\n" -"proper pixel height of your image.\n" -"*/\n" -"\n" -"/*\n" -".directory h3.swap {\n" -" height: 61px;\n" -" background-repeat: no-repeat;\n" -" background-image: url(\"yourimage.gif\");\n" -"}\n" -".directory h3.swap span {\n" -" display: none;\n" -"}\n" -"*/\n" -"\n" -".directory > h3 {\n" -" margin-top: 0;\n" -"}\n" -"\n" -".directory p {\n" -" margin: 0px;\n" -" white-space: nowrap;\n" -"}\n" -"\n" -".directory div {\n" -" display: none;\n" -" margin: 0px;\n" -"}\n" -"\n" -".directory img {\n" -" vertical-align: -30%;\n" -"}\n" -"\n" "/* these are for tree view when not used as main index */\n" "\n" -"div.directoryalt {\n" +"div.directory {\n" " margin: 10px 0px;\n" " border-top: 1px solid #A8B8D9;\n" " border-bottom: 1px solid #A8B8D9;\n" " width: 100%;\n" "}\n" "\n" -".directoryalt table {\n" +".directory table {\n" " border-collapse:collapse;\n" "}\n" "\n" -".directoryalt td {\n" +".directory td {\n" " margin: 0px;\n" " padding: 0px;\n" " vertical-align: top;\n" "}\n" "\n" -".directoryalt td.entry {\n" +".directory td.entry {\n" " white-space: nowrap;\n" " padding-right: 6px;\n" "}\n" "\n" -".directoryalt td.desc {\n" +".directory td.desc {\n" " width: 100%;\n" " padding-left: 6px;\n" " padding-right: 6px;\n" " border-left: 1px solid rgba(0,0,0,0.05);\n" "}\n" "\n" -".directoryalt tr.even {\n" +".directory tr.even {\n" " padding-left: 6px;\n" " background-color: ##F8;\n" "}\n" "\n" -".directoryalt img {\n" +".directory img {\n" " vertical-align: -30%;\n" "}\n" "\n" -".directoryalt .levels {\n" +".directory .levels {\n" " white-space: nowrap;\n" " width: 100%;\n" " text-align: right;\n" " font-size: 9pt;\n" "}\n" "\n" -".directoryalt .levels span {\n" +".directory .levels span {\n" " cursor: pointer;\n" " padding-left: 2px;\n" " padding-right: 2px;\n" " color: ##50;\n" "}\n" "\n" -"/* @end */\n" -"\n" "div.dynheader {\n" " margin-top: 8px;\n" +" -webkit-touch-callout: none;\n" +" -webkit-user-select: none;\n" +" -khtml-user-select: none;\n" +" -moz-user-select: none;\n" +" -ms-user-select: none;\n" +" user-select: none;\n" "}\n" "\n" "address {\n" @@ -1102,6 +1047,30 @@ " margin-left: 45px;\n" "}\n" "\n" +".inherit_header {\n" +" font-weight: bold;\n" +" color: gray;\n" +" cursor: pointer;\n" +" -webkit-touch-callout: none;\n" +" -webkit-user-select: none;\n" +" -khtml-user-select: none;\n" +" -moz-user-select: none;\n" +" -ms-user-select: none;\n" +" user-select: none;\n" +"}\n" +"\n" +".inherit_header td {\n" +" padding: 6px 0px 2px 5px;\n" +"}\n" +"\n" +".inherit {\n" +" display: none;\n" +"}\n" +"\n" +"tr.heading h2 {\n" +" margin-top: 12px;\n" +" margin-bottom: 4px;\n" +"}\n" "\n" "@media print\n" "{\n" diff --git a/src/dynsections.js b/src/dynsections.js new file mode 100644 index 0000000..3c5c379 --- /dev/null +++ b/src/dynsections.js @@ -0,0 +1,78 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} +function toggleLevel(level) +{ + $('table.directory tr').each(function(){ + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l<level+1) { + i.attr('src','ftv2folderopen.png'); + a.attr('src','ftv2mnode.png'); + $(this).show(); + } else if (l==level+1) { + i.attr('src','ftv2folderclosed.png'); + a.attr('src','ftv2pnode.png'); + $(this).show(); + } else { + $(this).hide(); + } + }); + updateStripes(); +} +function toggleFolder(id) +{ + var n = $('[id^=row_'+id+']'); + var i = $('[id^=img_'+id+']'); + var a = $('[id^=arr_'+id+']'); + var c = n.slice(1); + if (c.filter(':first').is(':visible')===true) { + i.attr('src','ftv2folderclosed.png'); + a.attr('src','ftv2pnode.png'); + c.hide(); + } else { + i.attr('src','ftv2folderopen.png'); + a.attr('src','ftv2mnode.png'); + c.show(); + } + updateStripes(); +} + +function toggleInherit(id) +{ + var rows = $('tr.inherit.'+id); + var img = $('tr.inherit_header.'+id+' img'); + var src = $(img).attr('src'); + if (rows.filter(':first').is(':visible')===true) { + rows.hide(); + $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + rows.show(); + $(img).attr('src',src.substring(0,src.length-10)+'open.png'); + } +} + diff --git a/src/dynsections_js.h b/src/dynsections_js.h new file mode 100644 index 0000000..ac507a4 --- /dev/null +++ b/src/dynsections_js.h @@ -0,0 +1,78 @@ +"function toggleVisibility(linkObj)\n" +"{\n" +" var base = $(linkObj).attr('id');\n" +" var summary = $('#'+base+'-summary');\n" +" var content = $('#'+base+'-content');\n" +" var trigger = $('#'+base+'-trigger');\n" +" var src=$(trigger).attr('src');\n" +" if (content.is(':visible')===true) {\n" +" content.hide();\n" +" summary.show();\n" +" $(linkObj).addClass('closed').removeClass('opened');\n" +" $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');\n" +" } else {\n" +" content.show();\n" +" summary.hide();\n" +" $(linkObj).removeClass('closed').addClass('opened');\n" +" $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');\n" +" } \n" +" return false;\n" +"}\n" +"\n" +"function updateStripes()\n" +"{\n" +" $('table.directory tr').\n" +" removeClass('even').filter(':visible:even').addClass('even');\n" +"}\n" +"function toggleLevel(level)\n" +"{\n" +" $('table.directory tr').each(function(){ \n" +" var l = this.id.split('_').length-1;\n" +" var i = $('#img'+this.id.substring(3));\n" +" var a = $('#arr'+this.id.substring(3));\n" +" if (l<level+1) {\n" +" i.attr('src','ftv2folderopen.png');\n" +" a.attr('src','ftv2mnode.png');\n" +" $(this).show();\n" +" } else if (l==level+1) {\n" +" i.attr('src','ftv2folderclosed.png');\n" +" a.attr('src','ftv2pnode.png');\n" +" $(this).show();\n" +" } else {\n" +" $(this).hide();\n" +" }\n" +" });\n" +" updateStripes();\n" +"}\n" +"function toggleFolder(id) \n" +"{\n" +" var n = $('[id^=row_'+id+']');\n" +" var i = $('[id^=img_'+id+']');\n" +" var a = $('[id^=arr_'+id+']');\n" +" var c = n.slice(1);\n" +" if (c.filter(':first').is(':visible')===true) {\n" +" i.attr('src','ftv2folderclosed.png');\n" +" a.attr('src','ftv2pnode.png');\n" +" c.hide();\n" +" } else {\n" +" i.attr('src','ftv2folderopen.png');\n" +" a.attr('src','ftv2mnode.png');\n" +" c.show();\n" +" }\n" +" updateStripes();\n" +"}\n" +"\n" +"function toggleInherit(id)\n" +"{\n" +" var rows = $('tr.inherit.'+id);\n" +" var img = $('tr.inherit_header.'+id+' img');\n" +" var src = $(img).attr('src');\n" +" if (rows.filter(':first').is(':visible')===true) {\n" +" rows.hide();\n" +" $(img).attr('src',src.substring(0,src.length-8)+'closed.png');\n" +" } else {\n" +" rows.show();\n" +" $(img).attr('src',src.substring(0,src.length-10)+'open.png');\n" +" }\n" +"}\n" +"\n" diff --git a/src/footer.html b/src/footer.html index c93cb56..80222ad 100644 --- a/src/footer.html +++ b/src/footer.html @@ -1,9 +1,13 @@ +<!-- start footer part --> <!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath <li class="footer">$generatedby <a href="http://www.doxygen.org/index.html"> - <img class="footer" src="doxygen.png" alt="doxygen"/></a> $doxygenversion </li> - </ul> - </div> + <img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion </li> + </ul> +</div> <!--END GENERATE_TREEVIEW--> <!--BEGIN !GENERATE_TREEVIEW--> <hr class="footer"/><address class="footer"><small> diff --git a/src/footer_html.h b/src/footer_html.h index 86a2e91..b193c41 100644 --- a/src/footer_html.h +++ b/src/footer_html.h @@ -1,9 +1,13 @@ +"<!-- start footer part -->\n" "<!--BEGIN GENERATE_TREEVIEW-->\n" +"<div id=\"nav-path\" class=\"navpath\"><!-- id is needed for treeview function! -->\n" +" <ul>\n" +" $navpath\n" " <li class=\"footer\">$generatedby\n" " <a href=\"http://www.doxygen.org/index.html\">\n" -" <img class=\"footer\" src=\"doxygen.png\" alt=\"doxygen\"/></a> $doxygenversion </li>\n" -" </ul>\n" -" </div>\n" +" <img class=\"footer\" src=\"$relpath$doxygen.png\" alt=\"doxygen\"/></a> $doxygenversion </li>\n" +" </ul>\n" +"</div>\n" "<!--END GENERATE_TREEVIEW-->\n" "<!--BEGIN !GENERATE_TREEVIEW-->\n" "<hr class=\"footer\"/><address class=\"footer\"><small>\n" diff --git a/src/fortrancode.l b/src/fortrancode.l index ca42e04..d7b9295 100644 --- a/src/fortrancode.l +++ b/src/fortrancode.l @@ -526,35 +526,37 @@ static bool getLink(UseSDict *usedict, // dictonary with used modules static void generateLink(CodeOutputInterface &ol, char *lname) { ClassDef *cd=0; + QCString tmp = lname; + tmp = tmp.lower(); - // check if lname is a linkable type or interface - if ( (getFortranTypeDefs(lname, currentModule, cd, useMembers)) && cd->isLinkable() ) + // check if lowercase lname is a linkable type or interface + if ( (getFortranTypeDefs(tmp, currentModule, cd, useMembers)) && cd->isLinkable() ) { if ( (cd->compoundType() == ClassDef::Class) && // was Entry::INTERFACE_SEC) && - (getGenericProcedureLink(cd, lname, ol)) ) + (getGenericProcedureLink(cd, tmp, ol)) ) { //cout << "=== generic procedure resolved" << endl; } else { // write type or interface link - ol.linkableSymbol(g_yyLineNr, lname, cd, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); - writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),lname); - addToSearchIndex(lname); + ol.linkableSymbol(g_yyLineNr, tmp, cd, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); + writeMultiLineCodeLink(ol,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),tmp); + addToSearchIndex(tmp.data()); } } // check for function/variable - else if (getLink(useMembers, lname, ol, lname)) + else if (getLink(useMembers, tmp, ol, tmp)) { - //cout << "=== found link for " << lname << endl; + //cout << "=== found link for lowercase " << lname << endl; } else { // nothing found, just write out the word - ol.linkableSymbol(g_yyLineNr, lname, 0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); + ol.linkableSymbol(g_yyLineNr, tmp, 0, g_currentMemberDef?g_currentMemberDef:g_currentDefinition); //startFontClass("charliteral"); //test - codifyLines(lname); + codifyLines(tmp); //endFontClass(); //test - addToSearchIndex(lname); + addToSearchIndex(tmp.data()); } } @@ -838,9 +840,15 @@ IGNORE (CALL) endFontClass(); } <Declaration>{ID} { // local var - g_code->codify(yytext); - if (g_currentMemberDef && g_currentMemberDef->isFunction()) - addLocalVar(yytext); + if (g_currentMemberDef && !g_currentMemberDef->isFunction()) + { + g_code->codify(yytext); + addLocalVar(yytext); + } + else + { + generateLink(*g_code, yytext); + } } <Declaration>[(] { // start of array specification bracketCount++; diff --git a/src/fortranscanner.l b/src/fortranscanner.l index f570690..7ceb29f 100644 --- a/src/fortranscanner.l +++ b/src/fortranscanner.l @@ -767,6 +767,7 @@ private { //cout << "5=========> got variable: " << argType << "::" << yytext << endl; /* work around for bug in QCString.replace (QCString works) */ QCString name=yytext; + name = name.lower(); /* remember attributes for the symbol */ modifiers[current_root][name.lower()] |= currentModifiers; argName= name; @@ -853,7 +854,7 @@ private { QCString name(argName); QCString attr("dimension"); attr += yytext; - modifiers[current_root][name] |= attr; + modifiers[current_root][name.lower()] |= attr; } <Variable>{COMMA} { //printf("COMMA: %d<=..<=%d\n", yyColNr-yyleng, yyColNr); // locate !< comment @@ -963,7 +964,7 @@ private { <Subprog>{BS} { /* ignore white space */ } <Subprog>{ID} { current->name = yytext; //cout << "1a==========> got " << current->type << " " << yytext << " " << yyLineNr << endl; - modifiers[current_root][current->name.lower()].returnName = current->name; + modifiers[current_root][current->name.lower()].returnName = current->name.lower(); if (ifType == IF_ABSTRACT || ifType == IF_SPECIFIC) { @@ -1893,6 +1894,7 @@ static void initEntry() static void addCurrentEntry() { //printf("===Adding entry %s to %s\n", current->name.data(), current_root->name.data()); + current->name = current->name.lower(); current_root->addSubEntry(current); last_entry = current; current = new Entry ; diff --git a/src/ftvhelp.cpp b/src/ftvhelp.cpp index 3b7b5d6..31c1a5b 100644 --- a/src/ftvhelp.cpp +++ b/src/ftvhelp.cpp @@ -841,22 +841,6 @@ void FTVHelp::generateLink(FTextStream &t,FTVNode *n) } } -void FTVHelp::generateJSLink(FTextStream &t,FTVNode *n) -{ - if (n->file.isEmpty()) // no link - { - t << "\"" << convertToJSString(n->name) << "\", null, "; - } - else // link into other page - { - // TODO: use m_topLevelIndex - t << "\"" << convertToJSString(n->name) << "\", \""; - t << externalRef("",n->ref,TRUE); - t << node2URL(n); - t << "\", "; - } -} - static void generateBriefDoc(FTextStream &t,Definition *def) { QCString brief = def->briefDescription(TRUE); @@ -888,27 +872,31 @@ void FTVHelp::generateTree(FTextStream &t, const QList<FTVNode> &nl,int level,in generateIndent(t,n,0); if (n->isDir) { - t << "<img "; if (n->def && n->def->definitionType()==Definition::TypeGroup) { - t << FTV_IMGATTRIBS(mo); + //t << FTV_IMGATTRIBS(mo); } else if (n->def && n->def->definitionType()==Definition::TypeNamespace) { + t << "<img "; t << FTV_IMGATTRIBS(ns); + t << "/>"; } else if (n->def && n->def->definitionType()==Definition::TypeClass) { + t << "<img "; t << FTV_IMGATTRIBS(cl); + t << "/>"; } else { + t << "<img "; t << "id=\"img_" << generateIndentLabel(n,0) << "\" " << FTV_IMGATTRIBS(folderopen) << "onclick=\"toggleFolder('" << generateIndentLabel(n,0) << "')\""; + t << "/>"; } - t << "/>"; generateLink(t,n); //t << "</p>\n"; //t << spaces << "<div id=\"folder" << folderId << "\">\n"; @@ -936,24 +924,30 @@ void FTVHelp::generateTree(FTextStream &t, const QList<FTVNode> &nl,int level,in << Doxygen::htmlFileExtension << "\">"; } - t << "<img "; if (n->def && n->def->definitionType()==Definition::TypeGroup) { - t << FTV_IMGATTRIBS(mo); + //t << "<img "; + //t << FTV_IMGATTRIBS(mo); + //t << "/>"; } else if (n->def && n->def->definitionType()==Definition::TypeNamespace) { + t << "<img "; t << FTV_IMGATTRIBS(ns); + t << "/>"; } else if (n->def && n->def->definitionType()==Definition::TypeClass) { + t << "<img "; t << FTV_IMGATTRIBS(cl); + t << "/>"; } else { + t << "<img "; t << FTV_IMGATTRIBS(doc); + t << "/>"; } - t << "/>"; //t << "</p>\n"; if (srcRef) { @@ -970,6 +964,8 @@ void FTVHelp::generateTree(FTextStream &t, const QList<FTVNode> &nl,int level,in } } +//----------------------------------------------------------- + static void writePathToNode(FTextStream &tidx,FTVNode *leaf,FTVNode *n) { if (n->parent) @@ -980,23 +976,30 @@ static void writePathToNode(FTextStream &tidx,FTVNode *leaf,FTVNode *n) if (leaf!=n) tidx << ","; } -bool childOfHierarchy(const FTVNode *n) -{ - if (n==0) return FALSE; - if (n->file=="hierarchy") - return TRUE; - else - return childOfHierarchy(n->parent); -} - -bool dupOfParent(const FTVNode *n) +static bool dupOfParent(const FTVNode *n) { if (n->parent==0) return FALSE; if (n->file==n->parent->file) return TRUE; return FALSE; } -bool FTVHelp::generateJSTree(FTextStream &tidx,FTextStream &t, const QList<FTVNode> &nl,int level,bool &first) +static void generateJSLink(FTextStream &t,FTVNode *n) +{ + if (n->file.isEmpty()) // no link + { + t << "\"" << convertToJSString(n->name) << "\", null, "; + } + else // link into other page + { + // TODO: use m_topLevelIndex + t << "\"" << convertToJSString(n->name) << "\", \""; + t << externalRef("",n->ref,TRUE); + t << node2URL(n); + t << "\", "; + } +} + +static bool generateJSTree(FTextStream &tidx,FTextStream &t, const QList<FTVNode> &nl,int level,bool &first) { QCString indentStr; indentStr.fill(' ',level*2); @@ -1016,7 +1019,6 @@ bool FTVHelp::generateJSTree(FTextStream &tidx,FTextStream &t, const QList<FTVNo } found=TRUE; - //if (!n->file.isEmpty() && !childOfHierarchy(n->parent)) if (n->addToNavIndex) { tidx << "," << endl << "\"" << node2URL(n) << "\":["; @@ -1068,67 +1070,75 @@ bool FTVHelp::generateJSTree(FTextStream &tidx,FTextStream &t, const QList<FTVNo return found; } -// new style images -void FTVHelp::generateTreeViewImages() -{ - QCString dname=Config_getString("HTML_OUTPUT"); - writeColoredImgData(dname,ftv_image_data); -} - -// new style scripts -void FTVHelp::generateTreeViewScripts() +static void generateJSNavTree(const QList<FTVNode> &nodeList) { - // generate navtree.js + QCString htmlOutput = Config_getString("HTML_OUTPUT"); + QFile f(htmlOutput+"/navtree.js"); + QFile fidx(htmlOutput+"/navtreeindex.js"); + if (f.open(IO_WriteOnly) && fidx.open(IO_WriteOnly)) { - QCString htmlOutput = Config_getString("HTML_OUTPUT"); - QFile f(htmlOutput+"/navtree.js"); - QFile fidx(htmlOutput+"/navtreeindex.js"); - if (f.open(IO_WriteOnly) && fidx.open(IO_WriteOnly)) + FTextStream tidx(&fidx); + tidx << "var NAVTREEINDEX =" << endl; + tidx << "{" << endl; + FTextStream t(&f); + t << "var NAVTREE =" << endl; + t << "[" << endl; + t << " [ "; + QCString &projName = Config_getString("PROJECT_NAME"); + if (projName.isEmpty()) { - FTextStream tidx(&fidx); - tidx << "var NAVTREEINDEX =" << endl; - tidx << "{" << endl; - FTextStream t(&f); - t << "var NAVTREE =" << endl; - t << "[" << endl; - t << " [ "; - QCString &projName = Config_getString("PROJECT_NAME"); - if (projName.isEmpty()) + if (Doxygen::mainPage && !Doxygen::mainPage->title().isEmpty()) // Use title of main page as root { - if (Doxygen::mainPage && !Doxygen::mainPage->title().isEmpty()) // Use title of main page as root - { - t << "\"" << convertToJSString(Doxygen::mainPage->title()) << "\", "; - } - else // Use default section title as root - { - LayoutNavEntry *lne = LayoutDocManager::instance().rootNavEntry()->find(LayoutNavEntry::MainPage); - t << "\"" << convertToJSString(lne->title()) << "\", "; - } + t << "\"" << convertToJSString(Doxygen::mainPage->title()) << "\", "; } - else // use PROJECT_NAME as root tree element + else // Use default section title as root { - t << "\"" << convertToJSString(projName) << "\", "; + LayoutNavEntry *lne = LayoutDocManager::instance().rootNavEntry()->find(LayoutNavEntry::MainPage); + t << "\"" << convertToJSString(lne->title()) << "\", "; } - t << "\"index" << Doxygen::htmlFileExtension << "\", "; + } + else // use PROJECT_NAME as root tree element + { + t << "\"" << convertToJSString(projName) << "\", "; + } + t << "\"index" << Doxygen::htmlFileExtension << "\", "; - tidx << "\"index" << Doxygen::htmlFileExtension << "\":[]"; + tidx << "\"index" << Doxygen::htmlFileExtension << "\":[]"; - bool first=TRUE; - generateJSTree(tidx,t,m_indentNodes[0],1,first); + bool first=TRUE; + generateJSTree(tidx,t,nodeList,1,first); - if (first) - t << "]" << endl; - else - t << endl << " ] ]" << endl; - t << "];" << endl; - t << endl << navtree_script; + if (first) + t << "]" << endl; + else + t << endl << " ] ]" << endl; + t << "];" << endl; + t << endl << navtree_script; - tidx << endl << "};" << endl; - } + tidx << endl << "};" << endl; } +} + +//----------------------------------------------------------- + +// new style images +void FTVHelp::generateTreeViewImages() +{ + QCString dname=Config_getString("HTML_OUTPUT"); + writeColoredImgData(dname,ftv_image_data); +} + +// new style scripts +void FTVHelp::generateTreeViewScripts() +{ + QCString htmlOutput = Config_getString("HTML_OUTPUT"); + + // generate navtree.js & navtreeindex.js + generateJSNavTree(m_indentNodes[0]); + // generate resize.js { - QFile f(Config_getString("HTML_OUTPUT")+"/resize.js"); + QFile f(htmlOutput+"/resize.js"); if (f.open(IO_WriteOnly)) { FTextStream t(&f); @@ -1137,7 +1147,7 @@ void FTVHelp::generateTreeViewScripts() } // generate navtree.css { - QFile f(Config_getString("HTML_OUTPUT")+"/navtree.css"); + QFile f(htmlOutput+"/navtree.css"); if (f.open(IO_WriteOnly)) { FTextStream t(&f); @@ -1146,122 +1156,11 @@ void FTVHelp::generateTreeViewScripts() } } -// old style script (used for inline trees) -void FTVHelp::generateScript(FTextStream &t) -{ - t << "<script type=\"text/javascript\">\n"; - t << "<!-- // Hide script from old browsers\n"; -#if 0 - - /* User has clicked on a node (folder or +/-) in the tree */ - t << " function toggleFolder(id, imageNode) \n"; - t << " {\n"; - t << " var folder = document.getElementById(id);\n"; - t << " var l = imageNode.src.length;\n"; - /* If the user clicks on the book icon, we move left one image so - * the code (below) will also adjust the '+' icon. - */ - t << " if (imageNode.src.substring(l-20,l)==\"" FTV_ICON_FILE(folderclosed) "\" || \n"; - t << " imageNode.src.substring(l-18,l)==\"" FTV_ICON_FILE(folderopen) "\")\n"; - t << " {\n"; - t << " imageNode = imageNode.previousSibling;\n"; - t << " l = imageNode.src.length;\n"; - t << " }\n"; - t << " if (folder == null) \n"; - t << " {\n"; - t << " } \n"; - /* Node controls a open section, we need to close it */ - t << " else if (folder.style.display == \"none\") \n"; - t << " {\n"; - t << " if (imageNode != null) \n"; - t << " {\n"; - t << " imageNode.nextSibling.src = \"" FTV_ICON_FILE(folderopen) "\";\n"; - t << " if (imageNode.src.substring(l-13,l) == \"" FTV_ICON_FILE(pnode) "\")\n"; - t << " {\n"; - t << " imageNode.src = \"" FTV_ICON_FILE(mnode) "\";\n"; - t << " }\n"; - t << " else if (imageNode.src.substring(l-17,l) == \"" FTV_ICON_FILE(plastnode) "\")\n"; - t << " {\n"; - t << " imageNode.src = \"" FTV_ICON_FILE(mlastnode) "\";\n"; - t << " }\n"; - t << " }\n"; - t << " folder.style.display = \"block\";\n"; - t << " }\n"; - t << " else \n"; /* section is closed, we need to open it */ - t << " {\n"; - t << " if (imageNode != null) \n"; - t << " {\n"; - t << " imageNode.nextSibling.src = \"" FTV_ICON_FILE(folderclosed) "\";\n"; - t << " if (imageNode.src.substring(l-13,l) == \"" FTV_ICON_FILE(mnode) "\")\n"; - t << " {\n"; - t << " imageNode.src = \"" FTV_ICON_FILE(pnode) "\";\n"; - t << " }\n"; - t << " else if (imageNode.src.substring(l-17,l) == \"" FTV_ICON_FILE(mlastnode) "\")\n"; - t << " {\n"; - t << " imageNode.src = \"" FTV_ICON_FILE(plastnode) "\";\n"; - t << " }\n"; - t << " }\n"; - t << " folder.style.display = \"none\";\n"; - t << " } \n"; - t << " }\n"; - t << "\n"; -#endif - - t << "function updateStripes()\n"; - t << "{\n"; - t << " $('table.directoryalt tr').\n"; - t << " removeClass('even').filter(':visible:even').addClass('even');\n"; - t << "}\n"; - - t << "function toggleLevel(level)\n"; - t << "{\n"; - t << " $('table.directoryalt tr').each(function(){ \n"; - t << " var l = this.id.split('_').length-1;\n"; - t << " var i = $('#img'+this.id.substring(3));\n"; - t << " var a = $('#arr'+this.id.substring(3));\n"; - t << " if (l<level+1) {\n"; - t << " i.attr('src','" FTV_ICON_FILE(folderopen) "');\n"; - t << " a.attr('src','" FTV_ICON_FILE(mnode) "');\n"; - t << " $(this).show();\n"; - t << " } else if (l==level+1) {\n"; - t << " i.attr('src','" FTV_ICON_FILE(folderclosed) "');\n"; - t << " a.attr('src','" FTV_ICON_FILE(pnode) "');\n"; - t << " $(this).show();\n"; - t << " } else {\n"; - t << " $(this).hide();\n"; - t << " }\n"; - t << " });\n"; - t << " updateStripes();\n"; - t << "}\n"; - - t << "function toggleFolder(id) \n"; - t << "{\n"; - t << " var n = $('[id^=row_'+id+']');\n"; // select parent + children - t << " var i = $('[id^=img_'+id+']');\n"; // i = dir imagess - t << " var a = $('[id^=arr_'+id+']');\n"; // a = arrow images - t << " var c = n.slice(1);\n"; // c = array of children - t << " if (c.filter(':first').is(':visible')===true) {\n"; - t << " i.attr('src','" FTV_ICON_FILE(folderclosed) "');\n"; - t << " a.attr('src','" FTV_ICON_FILE(pnode) "');\n"; - t << " c.hide();\n"; - t << " } else {\n"; - t << " i.attr('src','" FTV_ICON_FILE(folderopen) "');\n"; - t << " a.attr('src','" FTV_ICON_FILE(mnode) "');\n"; - t << " c.show();\n"; - t << " }\n"; - t << " updateStripes();\n"; - t << "}\n"; - - t << " // End script hiding --> \n"; - t << "</script>\n"; - -} - // write tree inside page void FTVHelp::generateTreeViewInline(FTextStream &t) { - generateScript(t); - t << "<div class=\"directoryalt\">\n"; + //generateScript(t); + t << "<div class=\"directory\">\n"; QListIterator<FTVNode> li(m_indentNodes[0]); FTVNode *n; @@ -1289,7 +1188,7 @@ void FTVHelp::generateTreeViewInline(FTextStream &t) // t << " <br/>\n"; // t << " <div style=\"display: block;\">\n"; - t << "<table class=\"directoryalt\">\n"; + t << "<table class=\"directory\">\n"; int index=0; generateTree(t,m_indentNodes[0],0,index); diff --git a/src/ftvhelp.h b/src/ftvhelp.h index 9c8f85c..e72c9e0 100644 --- a/src/ftvhelp.h +++ b/src/ftvhelp.h @@ -62,14 +62,13 @@ class FTVHelp : public IndexIntf static void generateTreeViewImages(); void generateTreeViewScripts(); private: - void generateScript(FTextStream &t); void generateTree(FTextStream &t,const QList<FTVNode> &nl,int level,int &index); - bool generateJSTree(FTextStream &tidx,FTextStream &t,const QList<FTVNode> &nl,int level,bool &first); + //bool generateJSTree(FTextStream &tidx,FTextStream &t,const QList<FTVNode> &nl,int level,bool &first); //bool generateJSTreeTopLevel(FTextStream &tidx,FTextStream &t,const QList<FTVNode> &nl,int level,bool &first); QCString generateIndentLabel(FTVNode *n,int level); void generateIndent(FTextStream &t,FTVNode *n,int level); void generateLink(FTextStream &t,FTVNode *n); - void generateJSLink(FTextStream &t,FTVNode *n); + //void generateJSLink(FTextStream &t,FTVNode *n); QList<FTVNode> *m_indentNodes; int m_indent; bool m_topLevelIndex; diff --git a/src/groupdef.cpp b/src/groupdef.cpp index 57d04f7..77b706b 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -694,6 +694,10 @@ void GroupDef::writeNestedGroups(OutputList &ol,const QCString &title) ol.parseText(title); ol.endMemberHeader(); ol.startMemberList(); + if (Config_getBool("SORT_GROUP_NAMES")) + { + groupList->sort(); + } GroupDef *gd=groupList->first(); while (gd) { diff --git a/src/header.html b/src/header.html index 76e9553..3d17125 100644 --- a/src/header.html +++ b/src/header.html @@ -6,13 +6,15 @@ <!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> <!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> <link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/> -<link href="$relpath$$stylesheet" rel="stylesheet" type="text/css" /> +<script type="text/javascript" src="$relpath$jquery.js"></script> +<script type="text/javascript" src="$relpath$dynsections.js"></script> $treeview $search $mathjax +<link href="$relpath$$stylesheet" rel="stylesheet" type="text/css" /> </head> <body> -<div id="top"><!-- do not remove this div! --> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> <!--BEGIN TITLEAREA--> <div id="titlearea"> @@ -47,3 +49,4 @@ $mathjax </table> </div> <!--END TITLEAREA--> +<!-- end header part --> diff --git a/src/header_html.h b/src/header_html.h index 4ed2e02..46b5a92 100644 --- a/src/header_html.h +++ b/src/header_html.h @@ -6,13 +6,15 @@ "<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->\n" "<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->\n" "<link href=\"$relpath$tabs.css\" rel=\"stylesheet\" type=\"text/css\"/>\n" -"<link href=\"$relpath$$stylesheet\" rel=\"stylesheet\" type=\"text/css\" />\n" +"<script type=\"text/javascript\" src=\"$relpath$jquery.js\"></script>\n" +"<script type=\"text/javascript\" src=\"$relpath$dynsections.js\"></script>\n" "$treeview\n" "$search\n" "$mathjax\n" +"<link href=\"$relpath$$stylesheet\" rel=\"stylesheet\" type=\"text/css\" />\n" "</head>\n" "<body>\n" -"<div id=\"top\"><!-- do not remove this div! -->\n" +"<div id=\"top\"><!-- do not remove this div, it is closed by doxygen! -->\n" "\n" "<!--BEGIN TITLEAREA-->\n" "<div id=\"titlearea\">\n" @@ -47,3 +49,4 @@ "</table>\n" "</div>\n" "<!--END TITLEAREA-->\n" +"<!-- end header part -->\n" diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp index d7dfb62..c242aa9 100644 --- a/src/htmldocvisitor.cpp +++ b/src/htmldocvisitor.cpp @@ -363,6 +363,7 @@ void HtmlDocVisitor::visit(DocVerbatim *s) case DocVerbatim::ManOnly: case DocVerbatim::LatexOnly: case DocVerbatim::XmlOnly: + case DocVerbatim::RtfOnly: /* nothing */ break; @@ -1054,11 +1055,11 @@ void HtmlDocVisitor::visitPre(DocSection *s) { if (m_hide) return; forceEndParagraph(s); - m_t << "<h" << s->level()+1 << ">"; + m_t << "<h" << s->level() << ">"; m_t << "<a class=\"anchor\" id=\"" << s->anchor(); m_t << "\"></a>" << endl; filter(convertCharEntitiesToUTF8(s->title().data())); - m_t << "</h" << s->level()+1 << ">\n"; + m_t << "</h" << s->level() << ">\n"; } void HtmlDocVisitor::visitPost(DocSection *s) @@ -1480,9 +1481,9 @@ void HtmlDocVisitor::visitPre(DocParamSect *s) default: ASSERT(0); } - m_t << "<dl class=\"" << className << "\"><dt><b>"; + m_t << "<dl class=\"" << className << "\"><dt>"; m_t << heading << ":"; - m_t << "</b></dt><dd>" << endl; + m_t << "</dt><dd>" << endl; m_t << " <table class=\"" << className << "\">" << endl; } diff --git a/src/htmlgen.cpp b/src/htmlgen.cpp index 237f320..fcf821c0 100644 --- a/src/htmlgen.cpp +++ b/src/htmlgen.cpp @@ -40,6 +40,8 @@ #include "vhdldocgen.h" #include "layout.h" #include "image.h" +#include "ftvhelp.h" +#include "bufstr.h" //#define DBG_HTML(x) x; @@ -93,6 +95,10 @@ static const char svgpan_script[]= #include "svgpan_js.h" ; +static const char dynsections_script[]= +#include "dynsections_js.h" +; + static QCString g_header; static QCString g_footer; @@ -927,9 +933,37 @@ static QCString getSearchBox(bool serverSide, QCString relPath, bool highlightSe return QCString(result); } +static QCString removeEmptyLines(const QCString &s) +{ + BufStr out(s.length()+1); + char *p=s.data(); + char c; + while ((c=*p++)) + { + if (c=='\n') + { + char *e = p; + while (*e==' ' || *e=='\t') e++; + if (*e=='\n') + { + p=e; + } + else out.addChar(c); + } + else + { + out.addChar(c); + } + } + out.addChar('\0'); + //printf("removeEmptyLines(%s)=%s\n",s.data(),out.data()); + return out.data(); +} -static QCString substituteHtmlKeywords(const QCString &s,const char *title, - const QCString &relPath) +static QCString substituteHtmlKeywords(const QCString &s, + const QCString &title, + const QCString &relPath, + const QCString &navPath=QCString()) { // Build CSS/Javascript tags depending on treeview, search engine settings QCString cssFile; @@ -980,7 +1014,6 @@ static QCString substituteHtmlKeywords(const QCString &s,const char *title, if (treeView) { treeViewCssJs = "<link href=\"$relpath$navtree.css\" rel=\"stylesheet\" type=\"text/css\"/>\n" - "<script type=\"text/javascript\" src=\"$relpath$jquery.js\"></script>\n" "<script type=\"text/javascript\" src=\"$relpath$resize.js\"></script>\n" "<script type=\"text/javascript\" src=\"$relpath$navtree.js\"></script>\n" "<script type=\"text/javascript\">\n" @@ -991,10 +1024,6 @@ static QCString substituteHtmlKeywords(const QCString &s,const char *title, if (searchEngine) { searchCssJs = "<link href=\"$relpath$search/search.css\" rel=\"stylesheet\" type=\"text/css\"/>\n"; - if (!Config_getBool("GENERATE_TREEVIEW")) - { - searchCssJs += "<script type=\"text/javascript\" src=\"$relpath$jquery.js\"></script>\n"; - } searchCssJs += "<script type=\"text/javascript\" src=\"$relpath$search/search.js\"></script>\n"; if (!serverBasedSearch) @@ -1057,6 +1086,7 @@ static QCString substituteHtmlKeywords(const QCString &s,const char *title, convertToHtml(Config_getString("PROJECT_BRIEF"))); // additional HTML only keywords + result = substitute(result,"$navpath",navPath); result = substitute(result,"$stylesheet",cssFile); result = substitute(result,"$treeview",treeViewCssJs); result = substitute(result,"$searchbox",searchBox); @@ -1075,6 +1105,8 @@ static QCString substituteHtmlKeywords(const QCString &s,const char *title, result = selectBlock(result,"PROJECT_BRIEF",hasProjectBrief); result = selectBlock(result,"PROJECT_LOGO",hasProjectLogo); + result = removeEmptyLines(result); + return result; } @@ -1158,55 +1190,12 @@ void HtmlGenerator::init() } } - if (Config_getBool("HTML_DYNAMIC_SECTIONS")) { QFile f(dname+"/dynsections.js"); if (f.open(IO_WriteOnly)) { FTextStream t(&f); - t << - "var showTriggers = new Array();\n" - "\n" - "function registerShow(sectId,showFunc) {\n" - " showTriggers[sectId] = showFunc;\n" - "}\n" - "\n" - "function hasClass(ele,cls) {\n" - " return ele.className.match(new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)'));\n" - "}\n" - "\n" - "function addClass(ele,cls) {\n" - " if (!this.hasClass(ele,cls)) ele.className += \" \"+cls;\n" - "}\n" - "\n" - "function removeClass(ele,cls) {\n" - " if (hasClass(ele,cls)) {\n" - " var reg = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n" - " ele.className=ele.className.replace(reg,' ');\n" - " }\n" - "}\n" - "\n" - "function toggleVisibility(linkObj) {\n" - " var base = linkObj.getAttribute('id');\n" - " var summary = document.getElementById(base + '-summary');\n" - " var content = document.getElementById(base + '-content');\n" - " var trigger = document.getElementById(base + '-trigger');\n" - " if ( hasClass(linkObj,'closed') ) {\n" - " summary.style.display = 'none';\n" - " content.style.display = 'block';\n" - " trigger.src = trigger.src.substring(0,trigger.src.length-10)+'open.png';\n" - " removeClass(linkObj,'closed');\n" - " addClass(linkObj,'opened');\n" - " if (showTriggers[base]) { showTriggers[base](); }\n" - " } else if ( hasClass(linkObj,'opened') ) {\n" - " summary.style.display = 'block';\n" - " content.style.display = 'none';\n" - " trigger.src = trigger.src.substring(0,trigger.src.length-8)+'closed.png';\n" - " removeClass(linkObj,'opened');\n" - " addClass(linkObj,'closed');\n" - " }\n" - " return false;\n" - "}\n"; + t << dynsections_script; } } } @@ -1276,14 +1265,11 @@ void HtmlGenerator::writeFooterFile(QFile &file) t << contents; } -static void generateDynamicSections(FTextStream &t,const QCString &relPath) -{ - if (Config_getBool("HTML_DYNAMIC_SECTIONS")) - { - t << "<script type=\"text/javascript\" src=\"" << relPath - << "dynsections.js\"></script>\n"; - } -} +//static void generateDynamicSections(FTextStream &t,const QCString &relPath) +//{ +// t << "<script type=\"text/javascript\" src=\"" << relPath +// << "dynsections.js\"></script>\n"; +//} void HtmlGenerator::startFile(const char *name,const char *, @@ -1319,7 +1305,7 @@ void HtmlGenerator::startFile(const char *name,const char *, << relPath<< "search\",false,'" << theTranslator->trSearch() << "');\n"; t << "</script>\n"; } - generateDynamicSections(t,relPath); + //generateDynamicSections(t,relPath); m_sectionCount=0; } @@ -1383,14 +1369,15 @@ void HtmlGenerator::writeLogo() t << writeLogoAsString(relPath); } -void HtmlGenerator::writePageFooter(FTextStream &t,const QCString &lastTitle,const QCString &relPath) +void HtmlGenerator::writePageFooter(FTextStream &t,const QCString &lastTitle, + const QCString &relPath,const QCString &navPath) { - t << substituteHtmlKeywords(g_footer,convertToHtml(lastTitle),relPath); + t << substituteHtmlKeywords(g_footer,convertToHtml(lastTitle),relPath,navPath); } -void HtmlGenerator::writeFooter() +void HtmlGenerator::writeFooter(const char *navPath) { - writePageFooter(t,lastTitle,relPath); + writePageFooter(t,lastTitle,relPath,navPath); } void HtmlGenerator::endFile() @@ -1873,42 +1860,47 @@ void HtmlGenerator::endClassDiagram(const ClassDiagram &d, void HtmlGenerator::startMemberList() { DBG_HTML(t << "<!-- startMemberList -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { - } - else - { - t << "<ul>" << endl; - } + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ + //} + //else + //{ + // t << "<ul>" << endl; + //} } void HtmlGenerator::endMemberList() { DBG_HTML(t << "<!-- endMemberList -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { - } - else - { - t << "</ul>" << endl; - } + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ + //} + //else + //{ + // t << "</ul>" << endl; + //} } // anonymous type: // 0 = single column right aligned // 1 = double column left aligned // 2 = single column left aligned -void HtmlGenerator::startMemberItem(const char *anchor,int annoType) +void HtmlGenerator::startMemberItem(const char *anchor,int annoType,const char *inheritId) { DBG_HTML(t << "<!-- startMemberItem() -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ if (m_emptySection) { t << "<table class=\"memberdecls\">" << endl; m_emptySection=FALSE; } - t << "<tr class=\"memitem:" << anchor << "\">"; + t << "<tr class=\"memitem:" << anchor; + if (inheritId) + { + t << " inherit " << inheritId; + } + t << "\">"; switch(annoType) { case 0: t << "<td class=\"memItemLeft\" align=\"right\" valign=\"top\">"; break; @@ -1916,20 +1908,20 @@ void HtmlGenerator::startMemberItem(const char *anchor,int annoType) case 2: t << "<td class=\"memItemLeft\" valign=\"top\">"; break; default: t << "<td class=\"memTemplParams\" colspan=\"2\">"; break; } - } - else - { - t << "<li>"; - } + //} + //else + //{ + // t << "<li>"; + //} } void HtmlGenerator::endMemberItem() { //DBG_HTML(t << "<!-- endMemberItem(" << (int)inGroup << "," << fileName << "," << headerName << " -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ t << "</td></tr>"; - } + //} t << endl; } @@ -1939,94 +1931,104 @@ void HtmlGenerator::startMemberTemplateParams() void HtmlGenerator::endMemberTemplateParams(const char *anchor) { - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ t << "</td></tr>" << endl; t << "<tr class=\"memitem:" << anchor << "\"><td class=\"memTemplItemLeft\" align=\"right\" valign=\"top\">"; - } + //} } void HtmlGenerator::insertMemberAlign(bool templ) { DBG_HTML(t << "<!-- insertMemberAlign -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ QCString className = templ ? "memTemplItemRight" : "memItemRight"; t << " </td><td class=\"" << className << "\" valign=\"bottom\">"; - } + //} } -void HtmlGenerator::startMemberDescription(const char *anchor) +void HtmlGenerator::startMemberDescription(const char *anchor,const char *inheritId) { DBG_HTML(t << "<!-- startMemberDescription -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ if (m_emptySection) { t << "<table class=\"memberdecls\">" << endl; m_emptySection=FALSE; } - t << "<tr class=\"memdesc:" << anchor << "\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">"; - } - else - { - t << "<dl class=\"el\"><dd class=\"mdescRight\">"; - } + t << "<tr class=\"memdesc:" << anchor; + if (inheritId) + { + t << " inherit " << inheritId; + } + t << "\"><td class=\"mdescLeft\"> </td><td class=\"mdescRight\">"; + //} + //else + //{ + // t << "<dl class=\"el\"><dd class=\"mdescRight\">"; + //} } void HtmlGenerator::endMemberDescription() { DBG_HTML(t << "<!-- endMemberDescription -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ t << "<br/></td></tr>" << endl; - } - else - { - t << "<br/></dl>"; - } + //} + //else + //{ + // t << "<br/></dl>"; + //} } void HtmlGenerator::startMemberSections() { DBG_HTML(t << "<!-- startMemberSections -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ m_emptySection=TRUE; // we postpone writing <table> until we actually // write a row to prevent empty tables, which // are not valid XHTML! - } + //} } void HtmlGenerator::endMemberSections() { DBG_HTML(t << "<!-- endMemberSections -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ if (!m_emptySection) { t << "</table>" << endl; } - } + //} } void HtmlGenerator::startMemberHeader(const char *anchor) { DBG_HTML(t << "<!-- startMemberHeader -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ + if (!m_emptySection) + { + t << "</table>"; + m_emptySection=TRUE; + } if (m_emptySection) { t << "<table class=\"memberdecls\">" << endl; m_emptySection=FALSE; } - t << "<tr><td colspan=\"2\"><h2>"; - } - else - { - startGroupHeader(FALSE); - } + t << "<tr class=\"heading\"><td colspan=\"2\"><h2>"; + //} + //else + //{ + // startGroupHeader(FALSE); + //} if (anchor) { t << "<a name=\"" << anchor << "\"></a>" << endl; @@ -2036,26 +2038,28 @@ void HtmlGenerator::startMemberHeader(const char *anchor) void HtmlGenerator::endMemberHeader() { DBG_HTML(t << "<!-- endMemberHeader -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) - { + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + //{ t << "</h2></td></tr>" << endl; - } - else - { - endGroupHeader(FALSE); - } + //} + //else + //{ + // endGroupHeader(FALSE); + //} } void HtmlGenerator::startMemberSubtitle() { DBG_HTML(t << "<!-- startMemberSubtitle -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) t << "<tr><td class=\"ititle\" colspan=\"2\">"; + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + t << "<tr><td class=\"ititle\" colspan=\"2\">"; } void HtmlGenerator::endMemberSubtitle() { DBG_HTML(t << "<!-- endMemberSubtitle -->" << endl) - if (Config_getBool("HTML_ALIGN_MEMBERS")) t << "</td></tr>" << endl; + //if (Config_getBool("HTML_ALIGN_MEMBERS")) + t << "</td></tr>" << endl; } void HtmlGenerator::startIndexList() @@ -2702,7 +2706,7 @@ static void writeDefaultQuickLinks(FTextStream &t,bool compact, void HtmlGenerator::endQuickIndices() { - t << "</div>" << endl; + t << "</div><!-- top -->" << endl; } QCString HtmlGenerator::writeSplitBarAsString(const char *name,const char *relpath) @@ -2723,10 +2727,10 @@ QCString HtmlGenerator::writeSplitBarAsString(const char *name,const char *relpa " </div>\n" "</div>\n" "<script type=\"text/javascript\">\n" - " initNavTree('") + + "$(document).ready(function(){initNavTree('") + QCString(name) + Doxygen::htmlFileExtension + QCString("','") + relpath + - QCString("');\n" + QCString("');});\n" "</script>\n" "<div id=\"doc-content\">\n"); } @@ -2846,11 +2850,12 @@ void HtmlGenerator::writeSearchPage() // Write empty navigation path, to make footer connect properly if (generateTreeView) { - t << "</div><div id=\"nav-path\" class=\"navpath\">\n"; - t << " <ul>\n"; + t << "</div><!-- doc-contents -->\n"; + //t << "<div id=\"nav-path\" class=\"navpath\">\n"; + //t << " <ul>\n"; } - writePageFooter(t,"Search",""); + writePageFooter(t,"Search","",""); } QCString scriptName = Config_getString("HTML_OUTPUT")+"/search/search.js"; QFile sf(scriptName); @@ -3052,4 +3057,19 @@ void HtmlGenerator::endLabels() t << "</span>"; } +void HtmlGenerator::writeInheritedSectionTitle(const char *id, + const char *file,const char *anchor,const char *title, + const char *name) +{ + DBG_HTML(t << "<!-- writeInheritedSectionTitle -->" << endl;) + QCString a = anchor; + if (!a.isEmpty()) a.prepend("#"); + QCString classLink = QCString("<a class=\"el\" href=\"")+correctURL(file,relPath)+Doxygen::htmlFileExtension+a+"\">"+name+"</a>"; + t << "<tr class=\"inherit_header " << id << "\">" + << "<td colspan=\"2\" onclick=\"javascript:toggleInherit('" << id << "')\">" + << "<img src=\"" << relPath << "closed.png\" alt=\"-\"/> " + << theTranslator->trInheritedFrom(title,classLink) + << "</td></tr>" << endl; +} + diff --git a/src/htmlgen.h b/src/htmlgen.h index 0946454..8667c9c 100644 --- a/src/htmlgen.h +++ b/src/htmlgen.h @@ -55,7 +55,7 @@ class HtmlGenerator : public OutputGenerator void printDoc(DocNode *,const char *); void startFile(const char *name,const char *manName,const char *title); - void writeFooter(); + void writeFooter(const char *navPath); void endFile(); void clearBuffer(); void writeSearchInfo(); @@ -120,7 +120,7 @@ class HtmlGenerator : public OutputGenerator void endInlineHeader(); void startAnonTypeScope(int) {} void endAnonTypeScope(int) {} - void startMemberItem(const char *anchor,int); + void startMemberItem(const char *anchor,int,const char *inheritId); void endMemberItem(); void startMemberTemplateParams(); void endMemberTemplateParams(const char *anchor); @@ -133,8 +133,10 @@ class HtmlGenerator : public OutputGenerator void endMemberGroup(bool); void insertMemberAlign(bool); - void startMemberDescription(const char *anchor); + void startMemberDescription(const char *anchor,const char *inheritId); void endMemberDescription(); + void writeInheritedSectionTitle(const char *id,const char *file, + const char *anchor,const char *title,const char *name); void writeRuler() { t << "<hr/>"; } void writeAnchor(const char *,const char *name) @@ -276,7 +278,7 @@ class HtmlGenerator : public OutputGenerator //static void generateSectionImages(); private: - static void writePageFooter(FTextStream &t,const QCString &,const QCString &); + static void writePageFooter(FTextStream &t,const QCString &,const QCString &,const QCString &); QCString lastTitle; QCString lastFile; QCString relPath; diff --git a/src/index.cpp b/src/index.cpp index 46e425b..2dd1768 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -253,7 +253,8 @@ void startFile(OutputList &ol,const char *name,const char *manName, ol.writeSearchInfo(); } -void endFile(OutputList &ol,bool skipNavIndex,bool skipEndContents) +void endFile(OutputList &ol,bool skipNavIndex,bool skipEndContents, + const QCString &navPath) { static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); ol.pushGeneratorState(); @@ -263,12 +264,10 @@ void endFile(OutputList &ol,bool skipNavIndex,bool skipEndContents) if (!skipEndContents) ol.endContents(); if (generateTreeView) { - ol.writeString("</div>\n"); - ol.writeString(" <div id=\"nav-path\" class=\"navpath\">\n"); - ol.writeString(" <ul>\n"); + ol.writeString("</div><!-- doc-content -->\n"); } } - ol.writeFooter(); // write the footer + ol.writeFooter(navPath); // write the footer ol.popGeneratorState(); ol.endFile(); } @@ -276,11 +275,13 @@ void endFile(OutputList &ol,bool skipNavIndex,bool skipEndContents) void endFileWithNavPath(Definition *d,OutputList &ol) { static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); + QCString navPath; if (generateTreeView) { - d->writeNavigationPath(ol); + ol.writeString("</div><!-- doc-content -->\n"); + navPath = d->navigationPathAsString(); } - endFile(ol,generateTreeView,TRUE); + endFile(ol,generateTreeView,TRUE,navPath); } //---------------------------------------------------------------------- @@ -389,6 +390,11 @@ static void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int for ( ; bcli.current() ; ++bcli) { ClassDef *cd=bcli.current()->classDef; + if (cd->getLanguage()==SrcLangExt_VHDL && (VhdlDocGen::VhdlClasses)cd->protection()!=VhdlDocGen::ENTITYCLASS) + { + continue; + } + bool b; if (cd->getLanguage()==SrcLangExt_VHDL) { @@ -436,7 +442,14 @@ static void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int } if (ftv) { - ftv->addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE,cd); + if (cd->getLanguage()==SrcLangExt_VHDL) + { + ftv->addContentsItem(hasChildren,bcli.current()->usedName,cd->getReference(),cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE,cd); + } + else + { + ftv->addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE,cd); + } } } else @@ -716,7 +729,10 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started,FT } if (ftv) { - ftv->addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE,cd); + if (cd->getLanguage()!=SrcLangExt_VHDL) // prevents double insertion in Design Unit List + { + ftv->addContentsItem(hasChildren,cd->displayName(),cd->getReference(),cd->getOutputFileBase(),cd->anchor(),FALSE,FALSE,cd); + } } } else @@ -1175,6 +1191,21 @@ void writeClassTree(ClassSDict *clDict,FTVHelp *ftv,bool addToIndex,bool globalO ClassDef *cd; for (;(cd=cli.current());++cli) { + if (cd->getLanguage()==SrcLangExt_VHDL) + { + if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKAGECLASS || + (VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKBODYCLASS + )// no architecture + { + continue; + } + if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ARCHITECTURECLASS) + { + QCString n=cd->name(); + cd->setClassName(n.data()); + } + } + if (!globalOnly || cd->getOuterScope()==0 || cd->getOuterScope()==Doxygen::globalScope @@ -1257,15 +1288,23 @@ static void writeNamespaceTree(NamespaceSDict *nsDict,FTVHelp *ftv, count+=classCount; } - ftv->addContentsItem(count>0,nd->localName(),nd->getReference(), - nd->getOutputFileBase(),0,FALSE,TRUE,nd); + if (nd->getLanguage()==SrcLangExt_VHDL) + { + QCString q=nd->getOutputFileBase().replace(0,strlen("namespace"),"class"); + ftv->addContentsItem(count>0,nd->localName(),nd->getReference(),q,0,FALSE,TRUE,nd); + } + else + { + ftv->addContentsItem(count>0,nd->localName(),nd->getReference(), + nd->getOutputFileBase(),0,FALSE,TRUE,nd); + } if (addToIndex) { if (nd->getLanguage()==SrcLangExt_VHDL) // UGLY HACK { - ClassDef* ccd=getClass(nd->displayName().data()); - if (ccd) Doxygen::indexList.addContentsItem(FALSE,ccd->displayName(),ccd->getReference(),ccd->getOutputFileBase(),0); + QCString q=nd->getOutputFileBase().replace(0,strlen("namespace"),"class"); + Doxygen::indexList.addContentsItem(count>0,nd->localName(),nd->getReference(),q,QCString(),count>0,showClasses); } else { @@ -1332,8 +1371,7 @@ static void writeNamespaceIndex(OutputList &ol) ol.startIndexKey(); if (nd->getLanguage()==SrcLangExt_VHDL) { - ClassDef* ccd=getClass(nd->displayName()); - if (ccd) ol.writeObjectLink(0,ccd->getOutputFileBase(),0,nd->displayName()); + ol.writeObjectLink(0, nd->getOutputFileBase().replace(0,strlen("namespace"),"class"),0,nd->displayName()); } else { @@ -1379,7 +1417,11 @@ static void writeNamespaceIndex(OutputList &ol) Doxygen::indexList.incContentsDepth(); } FTVHelp* ftv = new FTVHelp(FALSE); - writeNamespaceTree(Doxygen::namespaceSDict,ftv,TRUE,FALSE,addToIndex); + static bool optimizeOutputVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); + if (!optimizeOutputVhdl) // prevents double insertions (Packages/Design Unit List) + { + writeNamespaceTree(Doxygen::namespaceSDict,ftv,TRUE,FALSE,addToIndex); + } QGString outStr; FTextStream t(&outStr); ftv->generateTreeViewInline(t); @@ -1433,8 +1475,13 @@ static void writeAnnotatedClassList(OutputList &ol) for (cli.toFirst();(cd=cli.current());++cli) { - if (cd->getLanguage()==SrcLangExt_VHDL &&(!(VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS )) + if (cd->getLanguage()==SrcLangExt_VHDL && + ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKAGECLASS || + (VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::PACKBODYCLASS) + ) // no architecture + { continue; + } ol.pushGeneratorState(); if (cd->isEmbeddedInOuterScope()) diff --git a/src/index.h b/src/index.h index 6149744..9bb98b6 100644 --- a/src/index.h +++ b/src/index.h @@ -259,7 +259,8 @@ void endTitle(OutputList &ol,const char *fileName,const char *name); void startFile(OutputList &ol,const char *name,const char *manName, const char *title,HighlightedItem hli=HLI_None, bool additionalIndices=FALSE,const char *altSidebarName=0); -void endFile(OutputList &ol,bool skipNavIndex=FALSE,bool skipEndContents=FALSE); +void endFile(OutputList &ol,bool skipNavIndex=FALSE,bool skipEndContents=FALSE, + const QCString &navPath=QCString()); void endFileWithNavPath(Definition *d,OutputList &ol); void initClassMemberIndices(); diff --git a/src/latexdocvisitor.cpp b/src/latexdocvisitor.cpp index f0dafb9..13a2182 100644 --- a/src/latexdocvisitor.cpp +++ b/src/latexdocvisitor.cpp @@ -378,7 +378,6 @@ void LatexDocVisitor::visit(DocStyleChange *s) void LatexDocVisitor::visit(DocVerbatim *s) { - //static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); if (m_hide) return; QCString lang = m_langExt; if (!s->language().isEmpty()) // explicit language setting @@ -404,6 +403,7 @@ void LatexDocVisitor::visit(DocVerbatim *s) case DocVerbatim::HtmlOnly: case DocVerbatim::XmlOnly: case DocVerbatim::ManOnly: + case DocVerbatim::RtfOnly: /* nothing */ break; case DocVerbatim::LatexOnly: diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 08b94da..cdee85b 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -501,7 +501,7 @@ static void writeDefaultStyleSheetPart2(FTextStream &t) static void writeDefaultStyleSheetPart3(FTextStream &t) { - static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); + //static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); t << "}}\n"; //t << "\\cfoot{}\n\n"; t << "\\fancyfoot[CO]{\\fancyplain{}{}}\n"; @@ -557,25 +557,25 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) "}\n\n"; t << "% Used by @code ... @endcode\n" "\\newenvironment{DoxyCode}{%\n"; - if (latexSourceCode) - { + //if (latexSourceCode) + //{ t << "\n\n\\begin{scriptsize}\\begin{alltt}%" << endl; - } - else - { - t << " \\footnotesize%\n" - " \\verbatim%\n"; - } + //} + //else + //{ + // t << " \\footnotesize%\n" + // " \\verbatim%\n"; + //} t << "}{%\n"; - if (latexSourceCode) - { + //if (latexSourceCode) + //{ t << "\\end{alltt}\\end{scriptsize}%" << endl; - } - else - { - t << " \\endverbatim%\n" - " \\normalsize%\n"; - } + //} + //else + //{ + // t << " \\endverbatim%\n" + // " \\normalsize%\n"; + //} t << "}\n\n"; t << "% Used by @example, @include, @includelineno and @dontinclude\n" "\\newenvironment{DoxyCodeInclude}{%\n" @@ -1656,7 +1656,7 @@ void LatexGenerator::writeCodeLink(const char *ref,const char *f, t << "\n "; col=0; } - if (m_prettyCode && !disableLinks && !ref && usePDFLatex && pdfHyperlinks) + if (/*m_prettyCode &&*/ !disableLinks && !ref && usePDFLatex && pdfHyperlinks) { t << "\\hyperlink{"; if (f) t << stripPath(f); @@ -2030,14 +2030,14 @@ void LatexGenerator::codify(const char *str) } } result[i]=0; // add terminator - if (m_prettyCode) - { + //if (m_prettyCode) + //{ filterLatexString(t,result,insideTabbing,TRUE); - } - else - { - t << result; - } + //} + //else + //{ + // t << result; + //} break; } } @@ -2102,7 +2102,7 @@ void LatexGenerator::endMemberTemplateParams(const char *) } } -void LatexGenerator::startMemberItem(const char *,int annoType) +void LatexGenerator::startMemberItem(const char *,int annoType,const char *) { //printf("LatexGenerator::startMemberItem(%d)\n",annType); if (!insideTabbing) @@ -2122,7 +2122,7 @@ void LatexGenerator::endMemberItem() t << endl; } -void LatexGenerator::startMemberDescription(const char *) +void LatexGenerator::startMemberDescription(const char *,const char *) { if (!insideTabbing) { @@ -2528,13 +2528,13 @@ void LatexGenerator::endCodeLine() void LatexGenerator::startFontClass(const char *name) { - if (!m_prettyCode) return; + //if (!m_prettyCode) return; t << "\\textcolor{" << name << "}{"; } void LatexGenerator::endFontClass() { - if (!m_prettyCode) return; + //if (!m_prettyCode) return; t << "}"; } @@ -2542,7 +2542,7 @@ void LatexGenerator::startCodeAnchor(const char *name) { static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); - if (!m_prettyCode) return; + //if (!m_prettyCode) return; if (usePDFLatex && pdfHyperlinks) { t << "\\hypertarget{" << stripPath(name) << "}{}"; diff --git a/src/latexgen.h b/src/latexgen.h index c055c83..270fd67 100644 --- a/src/latexgen.h +++ b/src/latexgen.h @@ -48,7 +48,7 @@ class LatexGenerator : public OutputGenerator void startFile(const char *name,const char *manName,const char *title); void writeSearchInfo() {} - void writeFooter() {} + void writeFooter(const char *) {} void endFile(); void clearBuffer(); @@ -113,7 +113,7 @@ class LatexGenerator : public OutputGenerator void endInlineHeader(); void startAnonTypeScope(int); void endAnonTypeScope(int); - void startMemberItem(const char *,int); + void startMemberItem(const char *,int,const char *); void endMemberItem(); void startMemberTemplateParams(); void endMemberTemplateParams(const char *); @@ -162,8 +162,10 @@ class LatexGenerator : public OutputGenerator void endCenter() { t << "\\end{center}" << endl; } void startSmall() { t << "\\footnotesize "; } void endSmall() { t << "\\normalsize "; } - void startMemberDescription(const char *); + void startMemberDescription(const char *,const char *); void endMemberDescription(); + void writeInheritedSectionTitle(const char *,const char *, + const char *,const char *,const char *) {} void startDescList(SectionTypes) { t << "\\begin{Desc}\n\\item["; } void endDescList() { t << "\\end{Desc}" << endl; } void startSimpleSect(SectionTypes,const char *,const char *,const char *); diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 108e73a..ca6fec6 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -71,6 +71,7 @@ HEADERS = arguments.h \ jquery_ui_js.h \ jquery_fx_js.h \ svgpan_js.h \ + dynsections_js.h \ language.h \ latexdocvisitor.h \ latexgen.h \ diff --git a/src/libdoxygen.t.in b/src/libdoxygen.t.in index 23f5990..2ffb5cb 100644 --- a/src/libdoxygen.t.in +++ b/src/libdoxygen.t.in @@ -171,6 +171,9 @@ navtree_css.h: navtree.css svgpan_js.h: svgpan.js cat svgpan.js | $(TO_C_CMD) >svgpan_js.h +dynsections_js.h: dynsections.js + cat dynsections.js | $(TO_C_CMD) >dynsections_js.h + doxygen_bst.h: doxygen.bst cat doxygen.bst | $(TO_C_CMD) >doxygen_bst.h diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp index 7d7241d..3b0192d 100644 --- a/src/mandocvisitor.cpp +++ b/src/mandocvisitor.cpp @@ -219,6 +219,7 @@ void ManDocVisitor::visit(DocVerbatim *s) case DocVerbatim::HtmlOnly: case DocVerbatim::XmlOnly: case DocVerbatim::LatexOnly: + case DocVerbatim::RtfOnly: case DocVerbatim::Dot: case DocVerbatim::Msc: /* nothing */ diff --git a/src/mangen.cpp b/src/mangen.cpp index 2afc683..2179ee5 100644 --- a/src/mangen.cpp +++ b/src/mangen.cpp @@ -524,7 +524,7 @@ void ManGenerator::endAnonTypeScope(int indentLevel) } -void ManGenerator::startMemberItem(const char *,int) +void ManGenerator::startMemberItem(const char *,int,const char *) { if (firstCol && !insideTabbing) t << ".in +1c\n"; t << "\n.ti -1c\n.RI \""; diff --git a/src/mangen.h b/src/mangen.h index f006a67..cf161f5 100644 --- a/src/mangen.h +++ b/src/mangen.h @@ -45,7 +45,7 @@ class ManGenerator : public OutputGenerator static void init(); void startFile(const char *name,const char *manName,const char *title); void writeSearchInfo() {} - void writeFooter() {} + void writeFooter(const char *) {} void endFile(); void clearBuffer(); @@ -111,7 +111,7 @@ class ManGenerator : public OutputGenerator void endInlineHeader(); void startAnonTypeScope(int); void endAnonTypeScope(int); - void startMemberItem(const char *,int); + void startMemberItem(const char *,int,const char *); void endMemberItem(); void startMemberTemplateParams() {} void endMemberTemplateParams(const char *) {} @@ -158,8 +158,10 @@ class ManGenerator : public OutputGenerator void endCenter() {} void startSmall() {} void endSmall() {} - void startMemberDescription(const char *) { t << "\n.RI \"\\fI"; firstCol=FALSE; } + void startMemberDescription(const char *,const char *) { t << "\n.RI \"\\fI"; firstCol=FALSE; } void endMemberDescription() { t << "\\fP\""; firstCol=FALSE; } + void writeInheritedSectionTitle(const char *,const char *, + const char *,const char *,const char *) {} void startDescList(SectionTypes); void endDescList() {} void startSimpleSect(SectionTypes,const char *,const char *,const char *); diff --git a/src/marshal.h b/src/marshal.h index 0360dca..3728339 100644 --- a/src/marshal.h +++ b/src/marshal.h @@ -31,10 +31,10 @@ class QGString; class SectionDict; class MemberSDict; class GroupList; +class MemberList; struct BodyInfo; struct DocInfo; struct BriefInfo; -class MemberList; class ExampleSDict; class Entry; diff --git a/src/memberdef.cpp b/src/memberdef.cpp index 97178f7..052ae95 100644 --- a/src/memberdef.cpp +++ b/src/memberdef.cpp @@ -710,8 +710,6 @@ MemberDef::~MemberDef() void MemberDef::setReimplements(MemberDef *md) { makeResident(); - //if (redefines==0) redefines = new MemberList; - //if (redefines->find(md)==-1) redefines->inSort(md); m_impl->redefines = md; } @@ -1231,7 +1229,7 @@ bool MemberDef::isBriefSectionVisible() const void MemberDef::writeDeclaration(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, - bool inGroup + bool inGroup,const char *inheritId ) { //printf("%s MemberDef::writeDeclaration() inGroup=%d\n",name().data(),inGroup); @@ -1321,7 +1319,10 @@ void MemberDef::writeDeclaration(OutputList &ol, // start a new member declaration bool isAnonymous = annoClassDef || m_impl->annMemb || m_impl->annEnumType; ///printf("startMemberItem for %s\n",name().data()); - ol.startMemberItem( anchor(), isAnonymous ? 1 : m_impl->tArgList ? 3 : 0); + ol.startMemberItem(anchor(), + isAnonymous ? 1 : m_impl->tArgList ? 3 : 0, + inheritId + ); // If there is no detailed description we need to write the anchor here. bool detailsVisible = isDetailedSectionLinkable(); @@ -1378,9 +1379,9 @@ void MemberDef::writeDeclaration(OutputList &ol, int ir=i+l; //printf("<<<<<<<<<<<<<<\n"); ol.startAnonTypeScope(s_indentLevel++); - annoClassDef->writeDeclaration(ol,m_impl->annMemb,inGroup); + annoClassDef->writeDeclaration(ol,m_impl->annMemb,inGroup,inheritId); //printf(">>>>>>>>>>>>>> startMemberItem(2)\n"); - ol.startMemberItem(anchor(),2); + ol.startMemberItem(anchor(),2,inheritId); int j; for (j=0;j< s_indentLevel-1;j++) { @@ -1443,7 +1444,7 @@ void MemberDef::writeDeclaration(OutputList &ol, ); } bool htmlOn = ol.isEnabled(OutputGenerator::Html); - if (htmlOn && Config_getBool("HTML_ALIGN_MEMBERS") && !ltype.isEmpty()) + if (htmlOn && /*Config_getBool("HTML_ALIGN_MEMBERS") &&*/ !ltype.isEmpty()) { ol.disable(OutputGenerator::Html); } @@ -1646,7 +1647,7 @@ void MemberDef::writeDeclaration(OutputList &ol, /* && !annMemb */ ) { - ol.startMemberDescription(anchor()); + ol.startMemberDescription(anchor(),inheritId); ol.parseDoc(briefFile(),briefLine(), getOuterScope()?getOuterScope():d,this,briefDescription(), TRUE,FALSE,0,TRUE,FALSE); @@ -1939,7 +1940,7 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol, if ((isVariable() || isTypedef()) && (i=r.match(ldef,0,&l))!=-1) { // find enum type and insert it in the definition - MemberListIterator vmli(*ml); + QListIterator<MemberDef> vmli(*ml); MemberDef *vmd; bool found=FALSE; for ( ; (vmd=vmli.current()) && !found ; ++vmli) @@ -3173,7 +3174,7 @@ void MemberDef::writeEnumDeclaration(OutputList &typeDecl, int enumMemCount=0; - QList<MemberDef> *fmdl=m_impl->enumFields; + MemberList *fmdl=m_impl->enumFields; uint numVisibleEnumValues=0; if (fmdl) { diff --git a/src/memberdef.h b/src/memberdef.h index e1fad51..c7fa92f 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -184,7 +184,7 @@ class MemberDef : public Definition bool isDocumentedFriendClass() const; MemberDef *reimplements() const; - LockingPtr<MemberList> reimplementedBy() const; + LockingPtr< MemberList > reimplementedBy() const; //int inbodyLine() const; //QCString inbodyFile() const; @@ -196,7 +196,7 @@ class MemberDef : public Definition MemberDef *getAnonymousEnumType() const; bool isDocsForDefinition() const; MemberDef *getEnumScope() const; - LockingPtr<MemberList> enumFieldList() const; + LockingPtr< MemberList > enumFieldList() const; bool hasExamples(); LockingPtr<ExampleSDict> getExamples() const; @@ -348,7 +348,7 @@ class MemberDef : public Definition // output generation void writeDeclaration(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, - bool inGroup); + bool inGroup,const char *inheritId=0); void writeDocumentation(MemberList *ml,OutputList &ol, const char *scopeName,Definition *container, bool inGroup,bool showEnumValues=FALSE,bool diff --git a/src/membergroup.cpp b/src/membergroup.cpp index 6f9cbe7..f73eb6e 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -117,11 +117,12 @@ void MemberGroup::writeDeclarations(OutputList &ol, } void MemberGroup::writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + const char *inheritId ) { //printf("MemberGroup::writePlainDeclarations() memberList->count()=%d\n",memberList->count()); - memberList->writePlainDeclarations(ol,cd,nd,fd,gd); + memberList->writePlainDeclarations(ol,cd,nd,fd,gd,inheritId); } void MemberGroup::writeDocumentation(OutputList &ol,const char *scopeName, @@ -136,6 +137,42 @@ void MemberGroup::writeDocumentationPage(OutputList &ol,const char *scopeName, memberList->writeDocumentationPage(ol,scopeName,container); } +void MemberGroup::addGroupedInheritedMembers(OutputList &ol,ClassDef *cd, + MemberList::ListType lt,const QCString &inheritId) +{ + //printf("** addGroupedInheritedMembers()\n"); + MemberListIterator li(*memberList); + MemberDef *md; + for (li.toFirst();(md=li.current());++li) + { + //printf("matching %d == %d\n",lt,md->getSectionList(m_parent)->listType()); + if (lt==md->getSectionList(m_parent)->listType()) + { + MemberList ml(lt); + ml.append(md); + ml.writePlainDeclarations(ol,cd,0,0,0,inheritId); + } + } +} + +int MemberGroup::countGroupedInheritedMembers(MemberList::ListType lt) +{ + //printf("** countGroupedInheritedMembers()\n"); + int count=0; + MemberListIterator li(*memberList); + MemberDef *md; + for (li.toFirst();(md=li.current());++li) + { + //printf("matching %d == %d\n",lt,md->getSectionList(m_parent)->listType()); + if (lt==md->getSectionList(m_parent)->listType()) + { + count++; + } + } + return count; +} + + /*! Add this group as a subsection of the declaration section, instead * of rendering it in its own section */ diff --git a/src/membergroup.h b/src/membergroup.h index 12d1383..d93e90c 100644 --- a/src/membergroup.h +++ b/src/membergroup.h @@ -22,6 +22,7 @@ #include <qlist.h> #include <qfile.h> #include "sortdict.h" +#include "memberlist.h" #define DOX_NOGROUP -1 @@ -29,7 +30,6 @@ class MemberDef; class ClassDef; class NamespaceDef; class FileDef; -class MemberList; class GroupDef; class OutputList; class Definition; @@ -48,20 +48,24 @@ class MemberGroup void insertMember(MemberDef *md); void setAnchors(ClassDef *); void writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd); + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + const char *inheritId); void writeDeclarations(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, bool showInline=FALSE); - void writeDocumentation(OutputList &ol,const char *scopeName, Definition *container,bool showEnumValues,bool showInline); void writeDocumentationPage(OutputList &ol,const char *scopeName, Definition *container); + void addGroupedInheritedMembers(OutputList &ol,ClassDef *cd, + MemberList::ListType lt,const QCString &inheritId); + QCString documentation() { return doc; } bool allMembersInSameSection() { return inSameSection; } void addToDeclarationSection(); int countDecMembers(GroupDef *gd=0); int countDocMembers(); + int countGroupedInheritedMembers(MemberList::ListType lt); void distributeMemberGroupDocumentation(); void findSectionsInDocumentation(); int varCount() const; diff --git a/src/memberlist.cpp b/src/memberlist.cpp index 8cfad19..3a06aeb 100644 --- a/src/memberlist.cpp +++ b/src/memberlist.cpp @@ -30,6 +30,9 @@ MemberList::MemberList() { + memberGroupList=0; + m_numDecMembers=-1; // special value indicating that value needs to be computed + m_numDocMembers=-1; // special value indicating that value needs to be computed } MemberList::MemberList(ListType lt) : m_listType(lt) @@ -248,7 +251,8 @@ bool MemberList::declVisible() const } void MemberList::writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + const char *inheritId ) { //printf("----- writePlainDeclaration() ----\n"); @@ -286,7 +290,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, case MemberDef::Event: { if (first) ol.startMemberList(),first=FALSE; - md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup); + md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritId); break; } case MemberDef::Enumeration: @@ -319,7 +323,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, ol.startMemberList(); first=FALSE; } - ol.startMemberItem(md->anchor(),0); + ol.startMemberItem(md->anchor(),0,inheritId); ol.writeString("enum "); ol.insertMemberAlign(); md->writeEnumDeclaration(ol,cd,nd,fd,gd); @@ -356,7 +360,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, ol.startMemberList(); first=FALSE; } - md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup); + md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritId); break; } case MemberDef::EnumValue: @@ -365,7 +369,7 @@ void MemberList::writePlainDeclarations(OutputList &ol, { //printf("EnumValue!\n"); if (first) ol.startMemberList(),first=FALSE; - md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup); + md->writeDeclaration(ol,cd,nd,fd,gd,m_inGroup,inheritId); } } break; @@ -410,10 +414,11 @@ void MemberList::writePlainDeclarations(OutputList &ol, void MemberList::writeDeclarations(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, const char *title,const char *subtitle, bool showEnumValues, - bool showInline) + bool showInline,ClassDef *inheritedFrom) { - //printf("----- writeDeclaration() this=%p ----\n",this); + //printf("----- writeDeclaration() this=%p ---- inheritedFrom=%p\n",this,inheritedFrom); static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL"); + QCString inheritId; countDecMembers(showEnumValues,gd); // count members shown in this section Definition *ctx = cd; @@ -421,87 +426,120 @@ void MemberList::writeDeclarations(OutputList &ol, if (ctx==0 && gd) ctx = gd; if (ctx==0 && fd) ctx = fd; - if (numDecMembers()==0) return; //printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n", - // this,title,subtitle,numDecMembers()); - if (title) + // this,title,subtitle,numDecMembers()); + + int num = numDecMembers(); + if (inheritedFrom) { - if (showInline) - { - ol.startInlineHeader(); - } - else + if (cd && !optimizeVhdl) { - ol.startMemberHeader(listTypeAsString()); + ol.pushGeneratorState(); + ol.disableAllBut(OutputGenerator::Html); + inheritId = substitute(listTypeAsString(),"-","_")+"_"+ + stripPath(cd->getOutputFileBase()); + if (title) + { + ol.writeInheritedSectionTitle(inheritId,cd->getOutputFileBase(), + cd->anchor(),title,cd->displayName()); + } + ol.popGeneratorState(); } - ol.parseText(title); - if (showInline) + } + else if (num>0) + { + if (title) { - ol.endInlineHeader(); + if (showInline) + { + ol.startInlineHeader(); + } + else + { + ol.startMemberHeader(listTypeAsString()); + } + ol.parseText(title); + if (showInline) + { + ol.endInlineHeader(); + } + else + { + ol.endMemberHeader(); + } } - else + if (subtitle) { - ol.endMemberHeader(); + QCString st=subtitle; + st = st.stripWhiteSpace(); + if (!st.isEmpty()) + { + ol.startMemberSubtitle(); + ol.parseDoc("[generated]",-1,ctx,0,subtitle,FALSE,FALSE,0,FALSE,FALSE); + ol.endMemberSubtitle(); + } } } - if (subtitle) + if (num>0) { - QCString st=subtitle; - st = st.stripWhiteSpace(); - if (!st.isEmpty()) + // TODO: Two things need to be worked out for proper VHDL output: + // 1. Signals and types under the group need to be + // formatted to associate them with the group somehow + // indentation, or at the very least, extra space after + // the group is done + // 2. This might need to be repeated below for memberGroupLists + if (optimizeVhdl) // use specific declarations function { - ol.startMemberSubtitle(); - ol.parseDoc("[generated]",-1,ctx,0,subtitle,FALSE,FALSE,0,FALSE,FALSE); - ol.endMemberSubtitle(); + VhdlDocGen::writeVhdlDeclarations(this,ol,0,cd,0,0); + } + else + { + writePlainDeclarations(ol,cd,nd,fd,gd,inheritId); } - } - // TODO: Two things need to be worked out for proper VHDL output: - // 1. Signals and types under the group need to be - // formatted to associate them with the group somehow - // indentation, or at the very least, extra space after - // the group is done - // 2. This might need to be repeated below for memberGroupLists - if (optimizeVhdl) // use specific declarations function - { - VhdlDocGen::writeVhdlDeclarations(this,ol,0,cd,0,0); - } - else - { - writePlainDeclarations(ol,cd,nd,fd,gd); - } - - //printf("memberGroupList=%p\n",memberGroupList); - if (memberGroupList) - { - MemberGroupListIterator mgli(*memberGroupList); - MemberGroup *mg; - while ((mg=mgli.current())) + //printf("memberGroupList=%p\n",memberGroupList); + if (memberGroupList) { - bool hasHeader=!mg->header().isEmpty() && mg->header()!="[NOHEADER]"; - //printf("mg->header=%s hasHeader=%d\n",mg->header().data(),hasHeader); - ol.startMemberGroupHeader(hasHeader); - if (hasHeader) + MemberGroupListIterator mgli(*memberGroupList); + MemberGroup *mg; + while ((mg=mgli.current())) { - ol.parseText(mg->header()); - } - ol.endMemberGroupHeader(); - if (!mg->documentation().isEmpty()) - { - //printf("Member group has docs!\n"); - ol.startMemberGroupDocs(); - ol.parseDoc("[generated]",-1,ctx,0,mg->documentation()+"\n",FALSE,FALSE); - ol.endMemberGroupDocs(); + bool hasHeader=!mg->header().isEmpty() && mg->header()!="[NOHEADER]"; + if (inheritId.isEmpty()) + { + //printf("mg->header=%s hasHeader=%d\n",mg->header().data(),hasHeader); + ol.startMemberGroupHeader(hasHeader); + if (hasHeader) + { + ol.parseText(mg->header()); + } + ol.endMemberGroupHeader(); + if (!mg->documentation().isEmpty()) + { + //printf("Member group has docs!\n"); + ol.startMemberGroupDocs(); + ol.parseDoc("[generated]",-1,ctx,0,mg->documentation()+"\n",FALSE,FALSE); + ol.endMemberGroupDocs(); + } + ol.startMemberGroup(); + } + //printf("--- mg->writePlainDeclarations ---\n"); + mg->writePlainDeclarations(ol,cd,nd,fd,gd,inheritId); + if (inheritId.isEmpty()) + { + ol.endMemberGroup(hasHeader); + } + ++mgli; } - ol.startMemberGroup(); - //printf("--- mg->writePlainDeclarations ---\n"); - mg->writePlainDeclarations(ol,cd,nd,fd,gd); - ol.endMemberGroup(hasHeader); - ++mgli; } } + if (inheritedFrom && cd) + { + // also add members that of this list type, that are grouped together + // in a separate list in class 'inheritedFrom' + cd->addGroupedInheritedMembers(ol,m_listType,inheritId); + } //printf("----- end writeDeclaration() ----\n"); - } void MemberList::writeDocumentation(OutputList &ol, diff --git a/src/memberlist.h b/src/memberlist.h index e832ad5..1fa66d3 100644 --- a/src/memberlist.h +++ b/src/memberlist.h @@ -137,10 +137,13 @@ class MemberList : public QList<MemberDef> void countDecMembers(bool countEnumValues=FALSE,GroupDef *gd=0); void countDocMembers(bool countEnumValues=FALSE); void writePlainDeclarations(OutputList &ol, - ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd); + ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, + const char *inheritId); void writeDeclarations(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd, - const char *title,const char *subtitle,bool showEnumValues=FALSE,bool showInline=FALSE); + const char *title,const char *subtitle, + bool showEnumValues=FALSE,bool showInline=FALSE, + ClassDef *inheritedFrom=0); void writeDocumentation(OutputList &ol,const char *scopeName, Definition *container,const char *title,bool showEnumValues=FALSE,bool showInline=FALSE); void writeSimpleDocumentation(OutputList &ol,Definition *container); diff --git a/src/navtree.css b/src/navtree.css index 2166b6f..a72869c 100644 --- a/src/navtree.css +++ b/src/navtree.css @@ -51,8 +51,6 @@ #nav-tree .selected a { text-decoration:none; - padding:2px; - margin:0px; color:#fff; } diff --git a/src/navtree.js b/src/navtree.js index 0f68c86..a70e854 100644 --- a/src/navtree.js +++ b/src/navtree.js @@ -297,7 +297,7 @@ function showNode(o, node, index) showNode(o,node,index); // retry with child node expanded },true); } else { - if (o.toroot=="index.html" || n.childrenData) { + if (o.toroot=="index.html" /*|| n.childrenData*/) { expandNode(o, n, true, true); } selectAndHighlight(n); diff --git a/src/navtree_css.h b/src/navtree_css.h index 82955e2..957ffe6 100644 --- a/src/navtree_css.h +++ b/src/navtree_css.h @@ -51,8 +51,6 @@ "\n" "#nav-tree .selected a {\n" " text-decoration:none;\n" -" padding:2px;\n" -" margin:0px;\n" " color:#fff;\n" "}\n" "\n" diff --git a/src/navtree_js.h b/src/navtree_js.h index 84f20b7..8c513d2 100644 --- a/src/navtree_js.h +++ b/src/navtree_js.h @@ -297,7 +297,7 @@ " showNode(o,node,index); // retry with child node expanded\n" " },true);\n" " } else {\n" -" if (o.toroot==\"index.html\" || n.childrenData) {\n" +" if (o.toroot==\"index.html\" /*|| n.childrenData*/) {\n" " expandNode(o, n, true, true);\n" " }\n" " selectAndHighlight(n);\n" diff --git a/src/outputgen.h b/src/outputgen.h index f8bc89f..9d1c5de 100644 --- a/src/outputgen.h +++ b/src/outputgen.h @@ -302,7 +302,7 @@ class OutputGenerator : public BaseOutputDocInterface virtual void startFile(const char *name,const char *manName, const char *title) = 0; virtual void writeSearchInfo() = 0; - virtual void writeFooter() = 0; + virtual void writeFooter(const char *navPath) = 0; virtual void endFile() = 0; virtual void startIndexSection(IndexSections) = 0; virtual void endIndexSection(IndexSections) = 0; @@ -340,7 +340,7 @@ class OutputGenerator : public BaseOutputDocInterface virtual void endInlineHeader() = 0; virtual void startAnonTypeScope(int) = 0; virtual void endAnonTypeScope(int) = 0; - virtual void startMemberItem(const char *,int) = 0; + virtual void startMemberItem(const char *,int,const char *) = 0; virtual void endMemberItem() = 0; virtual void startMemberTemplateParams() = 0; virtual void endMemberTemplateParams(const char *) = 0; @@ -362,8 +362,11 @@ class OutputGenerator : public BaseOutputDocInterface virtual void writeStartAnnoItem(const char *type,const char *file, const char *path,const char *name) = 0; virtual void writeEndAnnoItem(const char *name) = 0; - virtual void startMemberDescription(const char *anchor) = 0; + virtual void startMemberDescription(const char *anchor,const char *inheritId) = 0; virtual void endMemberDescription() = 0; + virtual void writeInheritedSectionTitle(const char *id, + const char *file,const char *anchor, + const char *title,const char *name) = 0; virtual void startIndent() = 0; virtual void endIndent() = 0; virtual void writeSynopsis() = 0; @@ -419,6 +422,7 @@ class OutputGenerator : public BaseOutputDocInterface virtual void startInlineMemberDoc() = 0; virtual void endInlineMemberDoc() = 0; + virtual void startLabels() = 0; virtual void writeLabel(const char *,bool) = 0; virtual void endLabels() = 0; diff --git a/src/outputlist.cpp b/src/outputlist.cpp index cb1bba1..8a1947c 100644 --- a/src/outputlist.cpp +++ b/src/outputlist.cpp @@ -304,6 +304,7 @@ FORALL3(bool a1,bool a2,bool a3,a1,a2,a3) FORALL3(const ClassDiagram &a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,bool a3,a1,a2,a3) +FORALL3(const char *a1,int a2,const char *a3,a1,a2,a3) FORALL3(const char *a1,const char *a2,SectionInfo::SectionType a3,a1,a2,a3) FORALL3(uchar a1,uchar a2,uchar a3,a1,a2,a3) FORALL4(SectionTypes a1,const char *a2,const char *a3,const char *a4,a1,a2,a3,a4) diff --git a/src/outputlist.h b/src/outputlist.h index ad73220..863b4aa 100644 --- a/src/outputlist.h +++ b/src/outputlist.h @@ -87,8 +87,8 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startFile,name,manName,title); } void writeSearchInfo() { forall(&OutputGenerator::writeSearchInfo); } - void writeFooter() - { forall(&OutputGenerator::writeFooter); } + void writeFooter(const char *navPath) + { forall(&OutputGenerator::writeFooter,navPath); } void endFile() { forall(&OutputGenerator::endFile); } void startTitleHead(const char *fileName) @@ -201,8 +201,8 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startAnonTypeScope,i1); } void endAnonTypeScope(int i1) { forall(&OutputGenerator::endAnonTypeScope,i1); } - void startMemberItem(const char *anchor,int i1) - { forall(&OutputGenerator::startMemberItem,anchor,i1); } + void startMemberItem(const char *anchor,int i1,const char *id=0) + { forall(&OutputGenerator::startMemberItem,anchor,i1,id); } void endMemberItem() { forall(&OutputGenerator::endMemberItem); } void startMemberTemplateParams() @@ -295,10 +295,13 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startBold); } void endBold() { forall(&OutputGenerator::endBold); } - void startMemberDescription(const char *anchor) - { forall(&OutputGenerator::startMemberDescription,anchor); } + void startMemberDescription(const char *anchor,const char *inheritId=0) + { forall(&OutputGenerator::startMemberDescription,anchor,inheritId); } void endMemberDescription() { forall(&OutputGenerator::endMemberDescription); } + void writeInheritedSectionTitle(const char *id,const char *file, + const char *anchor,const char *title,const char *name) + { forall(&OutputGenerator::writeInheritedSectionTitle,id,file,anchor,title,name); } void startSimpleSect(SectionTypes t,const char *file,const char *anchor, const char *title) { forall(&OutputGenerator::startSimpleSect,t,file,anchor,title); } @@ -308,8 +311,6 @@ class OutputList : public OutputDocInterface { forall(&OutputGenerator::startParamList,t,title); } void endParamList() { forall(&OutputGenerator::endParamList); } - //void writeDescItem() - //{ forall(&OutputGenerator::writeDescItem); } void startIndent() { forall(&OutputGenerator::startIndent); } void endIndent() @@ -508,6 +509,7 @@ class OutputList : public OutputDocInterface FORALLPROTO3(bool,HighlightedItem,const char *); FORALLPROTO3(bool,bool,bool); FORALLPROTO3(const char *,const char *,bool); + FORALLPROTO3(const char *,int,const char *); FORALLPROTO3(const char *,const char *,SectionInfo::SectionType); FORALLPROTO3(uchar,uchar,uchar); FORALLPROTO3(const char *,const char *,const char *); diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 9a906bd..4a0123f 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -640,6 +640,7 @@ void PerlModDocVisitor::visit(DocVerbatim *s) return; case DocVerbatim::Verbatim: type = "preformatted"; break; case DocVerbatim::HtmlOnly: type = "htmlonly"; break; + case DocVerbatim::RtfOnly: type = "rtfonly"; break; case DocVerbatim::ManOnly: type = "manonly"; break; case DocVerbatim::LatexOnly: type = "latexonly"; break; case DocVerbatim::XmlOnly: type = "xmlonly"; break; diff --git a/src/printdocvisitor.h b/src/printdocvisitor.h index cd9ba7b..b84d0e1 100644 --- a/src/printdocvisitor.h +++ b/src/printdocvisitor.h @@ -149,6 +149,7 @@ class PrintDocVisitor : public DocVisitor case DocVerbatim::Code: printf("<code>"); break; case DocVerbatim::Verbatim: printf("<verbatim>"); break; case DocVerbatim::HtmlOnly: printf("<htmlonly>"); break; + case DocVerbatim::RtfOnly: printf("<rtfonly>"); break; case DocVerbatim::ManOnly: printf("<manonly>"); break; case DocVerbatim::LatexOnly: printf("<latexonly>"); break; case DocVerbatim::XmlOnly: printf("<xmlonly>"); break; @@ -161,6 +162,7 @@ class PrintDocVisitor : public DocVisitor case DocVerbatim::Code: printf("</code>"); break; case DocVerbatim::Verbatim: printf("</verbatim>"); break; case DocVerbatim::HtmlOnly: printf("</htmlonly>"); break; + case DocVerbatim::RtfOnly: printf("</rtfonly>"); break; case DocVerbatim::ManOnly: printf("</manonly>"); break; case DocVerbatim::LatexOnly: printf("</latexonly>"); break; case DocVerbatim::XmlOnly: printf("</xmlonly>"); break; diff --git a/src/rtfdocvisitor.cpp b/src/rtfdocvisitor.cpp index 56976c7..b4dedf1 100644 --- a/src/rtfdocvisitor.cpp +++ b/src/rtfdocvisitor.cpp @@ -371,6 +371,9 @@ void RTFDocVisitor::visit(DocVerbatim *s) //m_t << "\\par" << endl; m_t << "}" << endl; break; + case DocVerbatim::RtfOnly: + m_t << s->text(); + break; case DocVerbatim::HtmlOnly: case DocVerbatim::LatexOnly: case DocVerbatim::XmlOnly: diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp index 475b203..63049a8 100644 --- a/src/rtfgen.cpp +++ b/src/rtfgen.cpp @@ -1571,7 +1571,7 @@ void RTFGenerator::endDescItem() newParagraph(); } -void RTFGenerator::startMemberDescription(const char *) +void RTFGenerator::startMemberDescription(const char *,const char *) { DBG_RTF(t << "{\\comment (startMemberDescription)}" << endl) t << "{" << endl; @@ -1837,7 +1837,7 @@ void RTFGenerator::endClassDiagram(const ClassDiagram &d, // t << text; //} -void RTFGenerator::startMemberItem(const char *,int) +void RTFGenerator::startMemberItem(const char *,int,const char *) { DBG_RTF(t <<"{\\comment startMemberItem }" << endl) t << rtf_Style_Reset << rtf_BList_DepthStyle() << endl; // set style to apropriate depth diff --git a/src/rtfgen.h b/src/rtfgen.h index 34d2bd9..3a16763 100644 --- a/src/rtfgen.h +++ b/src/rtfgen.h @@ -44,7 +44,7 @@ class RTFGenerator : public OutputGenerator void startFile(const char *name,const char *manName,const char *title); void writeSearchInfo() {} - void writeFooter() {} + void writeFooter(const char *) {} void endFile(); void clearBuffer(); //void postProcess(QByteArray &); @@ -111,7 +111,7 @@ class RTFGenerator : public OutputGenerator void endInlineHeader(); void startAnonTypeScope(int) {} void endAnonTypeScope(int) {} - void startMemberItem(const char *,int); + void startMemberItem(const char *,int,const char *); void endMemberItem(); void startMemberTemplateParams() {} void endMemberTemplateParams(const char *) {} @@ -154,8 +154,10 @@ class RTFGenerator : public OutputGenerator void startSmall() { t << "{\\sub "; } void endSmall() { t << "}"; } - void startMemberDescription(const char *); + void startMemberDescription(const char *,const char *); void endMemberDescription(); + void writeInheritedSectionTitle(const char *,const char *, + const char *,const char *,const char *) {} void startDescList(SectionTypes); void startSimpleSect(SectionTypes,const char *,const char *,const char *); void endSimpleSect(); diff --git a/src/search_functions.php b/src/search_functions.php index 10dabf2..f5c3688 100644 --- a/src/search_functions.php +++ b/src/search_functions.php @@ -17,14 +17,14 @@ function end_form($value) function end_page() { - global $config; - global $translator; - if ($config['GENERATE_TREEVIEW']) - { - echo "</div>\n<div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"footer\">"; - echo $translator['logo']; - echo "</li>\n </ul>\n</div>"; - } + //global $config; + //global $translator; + //if ($config['GENERATE_TREEVIEW']) + //{ + // echo "</div>\n<div id=\"nav-path\" class=\"navpath\">\n <ul>\n <li class=\"footer\">"; + // echo $translator['logo']; + // echo "</li>\n </ul>\n</div>"; + //} echo "</body></html>"; } diff --git a/src/search_functions_php.h b/src/search_functions_php.h index 27c722c..1b72ae7 100644 --- a/src/search_functions_php.h +++ b/src/search_functions_php.h @@ -17,14 +17,14 @@ "\n" "function end_page()\n" "{\n" -" global $config;\n" -" global $translator;\n" -" if ($config['GENERATE_TREEVIEW'])\n" -" {\n" -" echo \"</div>\\n<div id=\\\"nav-path\\\" class=\\\"navpath\\\">\\n <ul>\\n <li class=\\\"footer\\\">\";\n" -" echo $translator['logo'];\n" -" echo \"</li>\\n </ul>\\n</div>\";\n" -" }\n" +" //global $config;\n" +" //global $translator;\n" +" //if ($config['GENERATE_TREEVIEW'])\n" +" //{\n" +" // echo \"</div>\\n<div id=\\\"nav-path\\\" class=\\\"navpath\\\">\\n <ul>\\n <li class=\\\"footer\\\">\";\n" +" // echo $translator['logo'];\n" +" // echo \"</li>\\n </ul>\\n</div>\";\n" +" //}\n" " echo \"</body></html>\";\n" "}\n" "\n" diff --git a/src/tclscanner.l b/src/tclscanner.l index 4975b8f..0749012 100644 --- a/src/tclscanner.l +++ b/src/tclscanner.l @@ -54,23 +54,23 @@ //! Application error. #define tcl_err \ - printf("Error %d %s() in %s line %d! ",__LINE__,__FUNCTION__,tcl.file_name.data(),yylineno); \ + printf("Error %d %s() at line %d! ",__LINE__,tcl.file_name.data(),yylineno); \ yy_push_state(ERROR); \ yyless(0); \ printf //! Application warning. #define tcl_war \ - printf("Warning %d %s() in %s line %d: ",__LINE__,__FUNCTION__,tcl.file_name.data(),yylineno); \ + printf("Warning %d %s() at line %d: ",__LINE__,tcl.file_name.data(),yylineno); \ printf //! Application message. #define tcl_inf \ - if (0) printf("--- %.4d %s() %d@%d: ",__LINE__,__FUNCTION__,yylineno,yy_start_stack_ptr) && printf + if (0) printf("--- %.4d %d@%d: ",__LINE__,yylineno,yy_start_stack_ptr) && printf //! Debug message. #define D\ - if (0) printf("--- %.4d %s() %d@%d: %s\n",__LINE__,__FUNCTION__,yylineno,yy_start_stack_ptr,yytext); + if (0) printf("--- %.4d %d@%d: %s\n",__LINE__,yylineno,yy_start_stack_ptr,yytext); // BEGIN of copy from tclUtil.c // - Tcl_Interp removed diff --git a/src/translator_cn.h b/src/translator_cn.h index 814c43e..6e0a2fd 100644 --- a/src/translator_cn.h +++ b/src/translator_cn.h @@ -22,17 +22,17 @@ If you want insert a space whenever Chinese meets English charactors, set CN_SPC to " ", else null. */ -#define CN_SPC +#define CN_SPC " " -class TranslatorChinese : public TranslatorAdapter_1_8_0 +class TranslatorChinese : public Translator { public: - /*! Used for identification of the language. The identification - * should not be translated. It should be replaced by the name - * of the language in English using lower-case characters only - * (e.g. "czech", "japanese", "russian", etc.). It sould be equal to - * the identification used in the language.cpp. - */ + /*! Used for identification of the language. The identification + * should not be translated. It should be replaced by the name + * of the language in English using lower-case characters only + * (e.g. "czech", "japanese", "russian", etc.). It sould be equal to + * the identification used in the language.cpp. + */ virtual QCString idLanguage() { return "chinese"; } @@ -57,146 +57,146 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 } - /*! return the language charset. This will be used for the HTML output */ + /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { return "UTF-8"; } - /*! used in the compound documentation before a list of related functions. - */ + /*! used in the compound documentation before a list of related functions. + */ virtual QCString trRelatedFunctions() { return "相关函数"; } - /*! subscript for the related functions. */ + /*! subscript for the related functions. */ virtual QCString trRelatedSubscript() - { return "(注意:这些不是成员函数。)"; } + { return "(请注意: 这些不是成员函数.)"; } - /*! header that is put before the detailed description of files, - * classes and namespaces. - */ + /*! header that is put before the detailed description of files, + * classes and namespaces. + */ virtual QCString trDetailedDescription() { return "详细描述"; } - /*! header that is put before the list of typedefs. */ + /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() - { return "成员类型定义文档"; } + { return "成员类型定义说明"; } - /*! header that is put before the list of enumerations. */ + /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() - { return "成员枚举类型文档"; } + { return "成员枚举类型说明"; } - /*! header that is put before the list of member function. */ + /*! header that is put before the list of member function. */ virtual QCString trMemberFunctionDocumentation() - { return "成员函数文档"; } + { return "成员函数说明"; } - /*! header that is put before the list of member attributes. */ + /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "字段文档"; - } - else { - return "成员数据文档"; - } - } - - /*! this is the text of a link put after brief descriptions. */ + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "结构体成员变量说明"; + } + else + { + return "类成员变量说明"; + } + } + + /*! this is the text of a link put after brief descriptions. */ virtual QCString trMore() { return "更多..."; } - /*! put in the class documention */ + /*! put in the class documention */ virtual QCString trListOfAllMembers() - { return "所有成员的列表。"; } + { return "所有成员列表."; } - /*! used as the title of the "list of all members" page of a class */ + /*! used as the title of the "list of all members" page of a class */ virtual QCString trMemberList() { return "成员列表"; } - /*! this is the first part of a sentence that is followed by a class name */ + /*! this is the first part of a sentence that is followed by a class name */ virtual QCString trThisIsTheListOfAllMembers() { return "成员的完整列表,这些成员属于"CN_SPC; } - /*! this is the remainder of the sentence after the class name */ + /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() - { return ",包括所有继承而来的成员"; } + { return ",包括所有继承而来的类成员"; } - /*! this is put at the author sections at the bottom of man pages. - * parameter s is name of the project name. - */ + /*! this is put at the author sections at the bottom of man pages. + * parameter s is name of the project name. + */ virtual QCString trGeneratedAutomatically(const char *s) - { - QCString result; - if (s) result=(QCString)"为"CN_SPC+s+","; - result+="由"CN_SPC"Doyxgen"CN_SPC"通过分析源代码自动生成。"; + { QCString result; + result = "由"CN_SPC"Doyxgen"CN_SPC"通过分析"CN_SPC; + if (s) result += ((QCString)s+CN_SPC"的"CN_SPC); + result+= "源代码自动生成."; return result; } - /*! put after an enum name in the list of all members */ + /*! put after an enum name in the list of all members */ virtual QCString trEnumName() { return "枚举名称"; } - /*! put after an enum value in the list of all members */ + /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() { return "枚举值"; } - /*! put after an undocumented member in the list of all members */ + /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return "定义于"CN_SPC; } - // quick reference sections + // quick reference sections - - /*! This is put above each page as a link to the list of all groups of - * compounds or files (see the \\group command). - */ + /*! This is put above each page as a link to the list of all groups of + * compounds or files (see the \\group command). + */ virtual QCString trModules() { return "模块"; } - /*! This is put above each page as a link to the class hierarchy */ - virtual QCString trClassHierarchy() + /*! This is put above each page as a link to the class hierarchy */ + virtual QCString trClassHierarchy() { return "类继承关系"; } - /*! This is put above each page as a link to the list of annotated class */ - virtual QCString trCompoundList() + /*! This is put above each page as a link to the list of annotated class */ + virtual QCString trCompoundList() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "数据结构"; - } - else { - return "组合类型列表"; - } - } - - /*! This is put above each page as a link to the list of documented files */ + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "结构体"; + } + else { + return "类列表"; + } + } + + /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() { return "文件列表"; } - /*! This is put above each page as a link to all members of compounds. */ + /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "数据字段"; - } - else { - return "组合类型成员"; - } - } - - /*! This is put above each page as a link to all member of files. */ + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "成员变量"; + } + else { + return "类成员"; + } + } + + /*! This is put above each page as a link to all member of files. */ virtual QCString trFileMembers() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "全局定义"; - } else { - return "文件成员"; - } - } - - /*! This is put above each page as a link to all related pages. */ + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + return "全局定义"; + } else { + return "文件成员"; + } + } + + /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() { return "相关页面"; } - /*! This is put above each page as a link to all examples. */ + /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() { return "示例"; } @@ -204,89 +204,87 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 { return "搜索"; } virtual QCString trClassHierarchyDescription() - { return "此列表基本按字典顺序排序:"; } + { return "此继承关系列表按字典顺序粗略的排序:"CN_SPC; } virtual QCString trFileListDescription(bool extractAll) { - QCString result="这里列出所有"; + QCString result="这里列出了所有"; if (!extractAll) result+="文档化的"; - result+="文件,附带简要说明:"; + result+="文件,并附带简要说明:"; return result; } virtual QCString trCompoundListDescription() { - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "这里列出所有数据结构,附带简要说明:"; - } - else - { - return "这里列出所有类、结构、联合以及接口定义,附带简要说明:"; - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "这里列出了所有结构体,并附带简要说明:"; + } + else + { + return "这里列出了所有类、结构、联合以及接口定义等,并附带简要说明:"; + } } virtual QCString trCompoundMembersDescription(bool extractAll) { - QCString result="这里列出所有"; + QCString result="这里列出了所有"; if (!extractAll) { - result+="文档化的"; - } - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="结构和联合的成员,附带"; - } - else { - result+="类成员,附带"; - } - + result+="文档化的"; + } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="结构体和联合体的成员变量,并附带"; + } + else { + result+="类成员,并附带"; + } + //result+=" with links to "; if (extractAll) { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="所在结构/联合的文档的链接:"; - } - else { - result+="所在类的文档的链接:"; - } - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="结构体或联合的详细说明:"; + } + else { + result+="类的详细说明:"; + } + } else { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result+="所属结构/联合的链接:"; - } - else { - result+="所属类的链接:"; - } - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result+="结构或联合所属的文件:"; + } + else { + result+="类所属的文件:"; + } + } return result; } virtual QCString trFileMembersDescription(bool extractAll) { - QCString result="这里列出所有"; + QCString result="这里列出了所有"; if (!extractAll) - result +="文档化的"; - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - result +="函数,变量,宏,枚举和类型定义,附带"; - } - else { - result +="文件成员,附带"; - } + result +="文档化的"; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { + result +="函数,变量,宏,枚举和类型定义等,并附带"; + } + else { + result +="文件成员,并附带"; + } if (extractAll) - result+="所在文件的文档的链接:"; + result+="其所属的文件:"; else - result+="所在文件的链接:"; + result+="其详细说明:"; return result; } virtual QCString trExamplesDescription() - { return "这里列出所有示例:"; } + { return "这里列出了所有示例:"; } virtual QCString trRelatedPagesDescription() - { return "这里列出所有相关的页面:"; } + { return "这里列出了所有相关页面:"; } virtual QCString trModulesDescription() - { return "这里列出所有模块"; } + { return "这里列出了所有模块:"; } virtual QCString trDocumentation() { return "文档"; } @@ -299,40 +297,40 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 virtual QCString trCompoundIndex() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "数据结构索引"; - } - else { - return "组合类型索引"; - } - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "结构体索引"; + } + else { + return "类索引"; + } + } virtual QCString trFileIndex() { return "文件索引"; } virtual QCString trModuleDocumentation() - { return "模块文档"; } + { return "模块说明"; } virtual QCString trClassDocumentation() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "数据结构文档"; - } - else { - return "类文档"; - } - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "结构体说明"; + } + else { + return "类说明"; + } + } virtual QCString trFileDocumentation() - { return "文件文档"; } + { return "文件说明"; } virtual QCString trExampleDocumentation() - { return "示例文档"; } + { return "示例说明"; } virtual QCString trPageDocumentation() - { return "页面文档"; } + { return "页面说明"; } virtual QCString trReferenceManual() { return "参考手册"; } @@ -359,184 +357,181 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 { return "枚举值"; } - virtual QCString trDefineDocumentation() - { return "宏定义文档"; } + virtual QCString trDefineDocumentation() + { return "宏定义说明"; } - virtual QCString trFunctionPrototypeDocumentation() - { return "函数原型文档"; } + virtual QCString trFunctionPrototypeDocumentation() + { return "函数原型说明"; } - virtual QCString trTypedefDocumentation() - { return "类型定义文档"; } + virtual QCString trTypedefDocumentation() + { return "类型定义说明"; } - virtual QCString trEnumerationTypeDocumentation() - { return "枚举类型文档"; } + virtual QCString trEnumerationTypeDocumentation() + { return "枚举类型说明"; } - virtual QCString trFunctionDocumentation() - { return "函数文档"; } + virtual QCString trFunctionDocumentation() + { return "函数说明"; } - virtual QCString trVariableDocumentation() - { return "变量文档"; } + virtual QCString trVariableDocumentation() + { return "变量说明"; } - virtual QCString trCompounds() + virtual QCString trCompounds() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "数据结构"; - } - else { - return "组合类型"; - } - } - - virtual QCString trGeneratedAt(const char *date,const char *projName) - { - QCString result=(QCString)"Generated at "+date; - if (projName) result+=(QCString)" for "+projName; - result+=(QCString)" by"; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "结构体"; + } + else { + return "类"; + } + } + + virtual QCString trGeneratedAt(const char *date,const char *projName) + { QCString result=(QCString)"生成于"CN_SPC+date; + if (projName) result+=(QCString)CN_SPC", 为"CN_SPC+projName; + result+=(QCString)"使用"CN_SPC; return result; } - virtual QCString trWrittenBy() + virtual QCString trWrittenBy() { - return "written by"; + return "作者"; } - virtual QCString trClassDiagram(const char *clName) + virtual QCString trClassDiagram(const char *clName) { - return (QCString)"类"CN_SPC+clName+CN_SPC"继承关系图:"; + return (QCString)"类"CN_SPC+clName+CN_SPC"继承关系图:"; } - virtual QCString trForInternalUseOnly() - { return "仅限内部使用。"; } + virtual QCString trForInternalUseOnly() + { return "仅限内部使用."; } - virtual QCString trWarning() + virtual QCString trWarning() { return "警告"; } - virtual QCString trVersion() + virtual QCString trVersion() { return "版本"; } - virtual QCString trDate() + virtual QCString trDate() { return "日期"; } - virtual QCString trReturns() + virtual QCString trReturns() { return "返回"; } - virtual QCString trSeeAlso() + virtual QCString trSeeAlso() { return "参见"; } - virtual QCString trParameters() + virtual QCString trParameters() { return "参数"; } - virtual QCString trExceptions() + virtual QCString trExceptions() { return "异常"; } - virtual QCString trGeneratedBy() + virtual QCString trGeneratedBy() { return "制作者"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - virtual QCString trNamespaceList() + virtual QCString trNamespaceList() { return "命名空间列表"; } - virtual QCString trNamespaceListDescription(bool extractAll) + virtual QCString trNamespaceListDescription(bool extractAll) { - QCString result="这里列出所有"; + QCString result="这里列出了所有"; if (!extractAll) result+="文档化的"; - result+="命名空间定义,附带简要说明:"; + result+="命名空间定义,附带简要说明:"; return result; } - virtual QCString trFriends() + virtual QCString trFriends() { return "友元"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - virtual QCString trRelatedFunctionDocumentation() + virtual QCString trRelatedFunctionDocumentation() { return "友元及相关函数文档"; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// - virtual QCString trCompoundReference(const char *clName, + virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) // used as the title of the HTML page of a class/struct/union { - QCString result=(QCString)clName; + QCString result=(QCString)clName; if (isTemplate) result+=CN_SPC"模板"; switch(compType) { case ClassDef::Class: result+="类"; break; - case ClassDef::Struct: result+="结构"; break; - case ClassDef::Union: result+="联合"; break; + case ClassDef::Struct: result+="结构体"; break; + case ClassDef::Union: result+="联合体"; break; case ClassDef::Interface: result+="接口"; break; case ClassDef::Protocol: result+="协议"; break; case ClassDef::Category: result+="分类"; break; case ClassDef::Exception: result+="异常"; break; } - result+="参考"; + result+=CN_SPC"参考"; return result; } - virtual QCString trFileReference(const char *fileName) - // used as the title of the HTML page of a file + /*! used as the title of the HTML page of a file */ + virtual QCString trFileReference(const char *fileName) { - QCString result=fileName; + QCString result=fileName; result+=CN_SPC"文件参考"; return result; } - virtual QCString trNamespaceReference(const char *namespaceName) - // used as the title of the HTML page of a namespace - { - QCString result=namespaceName; + /*! used as the title of the HTML page of a namespace */ + virtual QCString trNamespaceReference(const char *namespaceName) + { QCString result=namespaceName; result+=CN_SPC"命名空间参考"; return result; } // these are for the member sections of a class, struct or union - virtual QCString trPublicMembers() - { return "公有成员"; } + virtual QCString trPublicMembers() + { return "Public 成员函数"; } - virtual QCString trPublicSlots() - { return "公有槽"; } + virtual QCString trPublicSlots() + { return "Public 槽"; } - virtual QCString trSignals() + virtual QCString trSignals() { return "信号"; } - virtual QCString trStaticPublicMembers() - { return "静态公有成员"; } - - virtual QCString trProtectedMembers() - { return "保护成员"; } - - virtual QCString trProtectedSlots() - { return "保护槽"; } - - virtual QCString trStaticProtectedMembers() - { return "静态保护成员"; } - - virtual QCString trPrivateMembers() - { return "私有成员"; } - - virtual QCString trPrivateSlots() - { return "私有槽"; } - - virtual QCString trStaticPrivateMembers() - { return "静态私有成员"; } - - // end of member sections + virtual QCString trStaticPublicMembers() + { return "静态 Public 成员函数"; } + + virtual QCString trProtectedMembers() + { return "Protected 成员函数"; } + + virtual QCString trProtectedSlots() + { return "Protected 槽"; } + + virtual QCString trStaticProtectedMembers() + { return "静态 Protected 成员函数"; } + + virtual QCString trPrivateMembers() + { return "Private 成员函数"; } - virtual QCString trWriteList(int numEntries) + virtual QCString trPrivateSlots() + { return "Private 槽"; } + + virtual QCString trStaticPrivateMembers() + { return "静态 Private 成员函数"; } + + // end of member sections + virtual QCString trWriteList(int numEntries) { // this function is used to produce a comma-separated list of items. // use generateMarker(i) to indicate where item i should be put. - QCString result; + QCString result; int i; // the inherits list contain `numEntries' classes for (i=0;i<numEntries;i++) @@ -548,67 +543,71 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 if (i!=numEntries-1) // not the last entry, so we need a separator { if (i<numEntries-2) // not the fore last entry - result+="、"; + result+=","; else // the fore last entry - result+=CN_SPC"及"CN_SPC; + result+=CN_SPC", 以及"CN_SPC; } } return result; } - virtual QCString trInheritsList(int numEntries) - // used in class documentation to produce a list of base classes, - // if class diagrams are disabled. - { - return "继承自"CN_SPC+trWriteList(numEntries)+"。"; - } + /*! used in class documentation to produce a list of base classes, + * if class diagrams are disabled. + */ + virtual QCString trInheritsList(int numEntries) + { return "继承自"CN_SPC+trWriteList(numEntries)+CN_SPC"."; } - virtual QCString trInheritedByList(int numEntries) - // used in class documentation to produce a list of super classes, - // if class diagrams are disabled. + /*! used in class documentation to produce a list of super classes, + * if class diagrams are disabled. + */ + virtual QCString trInheritedByList(int numEntries) { return "被"CN_SPC+trWriteList(numEntries)+CN_SPC"继承."; } - - virtual QCString trReimplementedFromList(int numEntries) - // used in member documentation blocks to produce a list of - // members that are hidden by this one. + + /*! used in member documentation blocks to produce a list of + * members that are hidden by this one. + */ + virtual QCString trReimplementedFromList(int numEntries) { - return "重载"CN_SPC+trWriteList(numEntries)+"。"; + return "重载"CN_SPC+trWriteList(numEntries)+CN_SPC"."; } - - virtual QCString trReimplementedInList(int numEntries) + + /*! used in member documentation blocks to produce a list of + * all member that overwrite the implementation of this member. + */ + virtual QCString trReimplementedInList(int numEntries) { - // used in member documentation blocks to produce a list of - // all member that overwrite the implementation of this member. - return "被"CN_SPC+trWriteList(numEntries)+CN_SPC"重载。"; + return "被"CN_SPC+trWriteList(numEntries)+CN_SPC"重载."; } - virtual QCString trNamespaceMembers() - // This is put above each page as a link to all members of namespaces. + /*! This is put above each page as a link to all members of namespaces. */ + virtual QCString trNamespaceMembers() { return "命名空间成员"; } - - virtual QCString trNamespaceMemberDescription(bool extractAll) - // This is an introduction to the page with all namespace members + + /*! This is an introduction to the page with all namespace members */ + virtual QCString trNamespaceMemberDescription(bool extractAll) { - QCString result="这里列出了所有"; + QCString result="这里列出了所有"; if (!extractAll) result+="文档化的"; - result+="命名空间成员,附带"; + result+="命名空间成员,并附带"; if (extractAll) - result+="所在类的文档的链接:"; + result+="其说明文档:"; else - result+="所在类的链接:"; + result+="其所属的文件:"; return result; } - virtual QCString trNamespaceIndex() - // This is used in LaTeX as the title of the chapter with the - // index of all namespaces. + /*! This is used in LaTeX as the title of the chapter with the + * index of all namespaces. + */ + virtual QCString trNamespaceIndex() { return "命名空间索引"; } - virtual QCString trNamespaceDocumentation() - // This is used in LaTeX as the title of the chapter containing - // the documentation of all namespaces. + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all namespaces. + */ + virtual QCString trNamespaceDocumentation() { return "命名空间文档"; } ////////////////////////////////////////////////////////////////////////// @@ -618,9 +617,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! This is used in the documentation before the list of all * namespaces in a file. */ - virtual QCString trNamespaces() + virtual QCString trNamespaces() { - // return "Namespaces"; return "命名空间"; } @@ -631,29 +629,29 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! This is put at the bottom of a class documentation page and is * followed by a list of files that were used to generate the page. */ - virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, + virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool) { // here s is one of " Class", " Struct" or " Union" // single is true implies a single file - QCString result=(QCString)"该"; + QCString result=(QCString)"该"; switch(compType) { case ClassDef::Class: result+="类"; break; - case ClassDef::Struct: result+="结构"; break; - case ClassDef::Union: result+="联合"; break; + case ClassDef::Struct: result+="结构体"; break; + case ClassDef::Union: result+="联合体"; break; case ClassDef::Interface: result+="接口"; break; case ClassDef::Protocol: result+="协议"; break; case ClassDef::Category: result+="分类"; break; case ClassDef::Exception: result+="异常"; break; } - result+="的文档由以下文件生成:"; + result+="的文档由以下文件生成:"; return result; } /*! This is in the (quick) index as a link to the alphabetical compound * list. */ - virtual QCString trAlphabeticalList() + virtual QCString trAlphabeticalList() { return "按字典顺序排序的列表"; } ////////////////////////////////////////////////////////////////////////// @@ -661,41 +659,41 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// /*! This is used as the heading text for the retval command. */ - virtual QCString trReturnValues() + virtual QCString trReturnValues() { return "返回值"; } /*! This is in the (quick) index as a link to the main page (index.html) */ - virtual QCString trMainPage() + virtual QCString trMainPage() { return "首页"; } /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. */ - virtual QCString trPageAbbreviation() + virtual QCString trPageAbbreviation() { return "p."; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-991106 ////////////////////////////////////////////////////////////////////////// - virtual QCString trDefinedAtLineInSourceFile() + virtual QCString trDefinedAtLineInSourceFile() { - return "在文件"CN_SPC"@1"CN_SPC"第"CN_SPC"@0"CN_SPC"行定义。"; + return "在文件"CN_SPC"@1"CN_SPC"第"CN_SPC"@0"CN_SPC"行定义."; } - virtual QCString trDefinedInSourceFile() + virtual QCString trDefinedInSourceFile() { - return "在文件"CN_SPC"@0"CN_SPC"中定义。"; + return "在文件"CN_SPC"@0"CN_SPC"中定义."; } ////////////////////////////////////////////////////////////////////////// // new since 0.49-991205 ////////////////////////////////////////////////////////////////////////// - virtual QCString trDeprecated() + virtual QCString trDeprecated() { - return "Deprecated"; + return "弃用"; } ////////////////////////////////////////////////////////////////////////// @@ -703,81 +701,81 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// /*! this text is put before a collaboration diagram */ - virtual QCString trCollaborationDiagram(const char *clName) + virtual QCString trCollaborationDiagram(const char *clName) { - return (QCString)clName+CN_SPC"合作图:"; + return (QCString)clName+CN_SPC"的协作图:"; } /*! this text is put before an include dependency graph */ - virtual QCString trInclDepGraph(const char *fName) + virtual QCString trInclDepGraph(const char *fName) { - return (QCString)fName+CN_SPC"包含/依赖关系图:"; + return (QCString)fName+CN_SPC"的引用(Include)关系图:"; } /*! header that is put before the list of constructor/destructors. */ - virtual QCString trConstructorDocumentation() + virtual QCString trConstructorDocumentation() { - return "构造及析构函数文档"; + return "构造及析构函数说明"; } /*! Used in the file documentation to point to the corresponding sources. */ - virtual QCString trGotoSourceCode() + virtual QCString trGotoSourceCode() { - return "浏览该文件的源代码。"; + return "浏览源代码."; } /*! Used in the file sources to point to the corresponding documentation. */ - virtual QCString trGotoDocumentation() + virtual QCString trGotoDocumentation() { - return "浏览该文件的文档。"; + return "浏览该文件的文档."; } /*! Text for the \\pre command */ - virtual QCString trPrecondition() + virtual QCString trPrecondition() { return "前置条件"; } /*! Text for the \\post command */ - virtual QCString trPostcondition() + virtual QCString trPostcondition() { return "后置条件"; } /*! Text for the \\invariant command */ - virtual QCString trInvariant() + virtual QCString trInvariant() { return "不变性"; } /*! Text shown before a multi-line variable/enum initialization */ - virtual QCString trInitialValue() + virtual QCString trInitialValue() { - return "初始化序列:"; + return "初始值:"; } /*! Text used the source code in the file index */ - virtual QCString trCode() + virtual QCString trCode() { return "代码"; } - virtual QCString trGraphicalHierarchy() + virtual QCString trGraphicalHierarchy() { return "类继承关系图"; } - virtual QCString trGotoGraphicalHierarchy() + virtual QCString trGotoGraphicalHierarchy() { return "浏览类继承关系图"; } - virtual QCString trGotoTextualHierarchy() + virtual QCString trGotoTextualHierarchy() { return "浏览类继承关系表"; } - virtual QCString trPageIndex() + virtual QCString trPageIndex() { return "页面索引"; } @@ -786,60 +784,60 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 // new since 1.1.0 ////////////////////////////////////////////////////////////////////////// - virtual QCString trNote() + virtual QCString trNote() { return "注解"; } - virtual QCString trPublicTypes() + virtual QCString trPublicTypes() { - return "公有类型"; + return "Public 类型"; } - virtual QCString trPublicAttribs() + virtual QCString trPublicAttribs() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "数据成员"; - } - else { - return "公有属性"; - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "成员变量"; + } + else { + return "Public 属性"; + } } - virtual QCString trStaticPublicAttribs() + virtual QCString trStaticPublicAttribs() { - return "静态公有属性"; + return "静态 Public 属性"; } - virtual QCString trProtectedTypes() + virtual QCString trProtectedTypes() { - return "保护类型"; + return "Protected 类型"; } - virtual QCString trProtectedAttribs() + virtual QCString trProtectedAttribs() { - return "保护属性"; + return "Protected 属性"; } - virtual QCString trStaticProtectedAttribs() + virtual QCString trStaticProtectedAttribs() { - return "静态保护属性"; + return "静态 Protected 属性"; } - virtual QCString trPrivateTypes() + virtual QCString trPrivateTypes() { - return "私有类型"; + return "Private 类型"; } - virtual QCString trPrivateAttribs() + virtual QCString trPrivateAttribs() { - return "私有属性"; + return "Private 属性"; } - virtual QCString trStaticPrivateAttribs() + virtual QCString trStaticPrivateAttribs() { - return "静态私有属性"; + return "静态 Private 属性"; } @@ -848,42 +846,42 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// /*! Used as a marker that is put before a todo item */ - virtual QCString trTodo() + virtual QCString trTodo() { - return "TODO"; + return "待办事项"; } /*! Used as the header of the todo list */ - virtual QCString trTodoList() + virtual QCString trTodoList() { - return "TODO"CN_SPC"列表"; + return "待办事项列表"; } ////////////////////////////////////////////////////////////////////////// // new since 1.1.4 ////////////////////////////////////////////////////////////////////////// - virtual QCString trReferencedBy() + virtual QCString trReferencedBy() { return "参考自"; } - virtual QCString trRemarks() + virtual QCString trRemarks() { - return "评论"; + return "备注"; } - virtual QCString trAttention() + virtual QCString trAttention() { return "注意"; } - virtual QCString trInclByDepGraph() + virtual QCString trInclByDepGraph() { - return "此图展示直接或间接包含该文件的文件:"; + return "此图展示该文件直接或间接的被哪些文件引用了:"; } - virtual QCString trSince() + virtual QCString trSince() { return "自从"; } @@ -893,35 +891,34 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// /*! title of the graph legend page */ - virtual QCString trLegendTitle() + virtual QCString trLegendTitle() { return "图例"; } /*! page explaining how the dot graph's should be interpreted */ - virtual QCString trLegendDocs() + virtual QCString trLegendDocs() { - return - "本页向您展示如何理解由"CN_SPC"Doxygen"CN_SPC"生成的图形。<p>\n" - "请考虑如下示例:\n" + return "本页将向您解释如何理解由"CN_SPC"doxygen"CN_SPC"生成的图.<p>\n" + "考虑如下例子:\n" "\\code\n" - "/*! 由于截取而使该类不可见 */\n" + "/*! 由于截断而使 Invisible 不可见 */\n" "class Invisible { };\n\n" - "/*! 被截取的类,继承关系被隐藏起来了 */\n" + "/*! Truncated 的继承关系将被隐藏 */\n" "class Truncated : public Invisible { };\n\n" - "/* 没有被"CN_SPC"doxygen"CN_SPC"的注释文档化的类 */\n" + "/* 没有被doxygen文档化的类 */\n" "class Undocumented { };\n\n" - "/*! 被公有继承的类 */\n" + "/*! public 继承关系的类 */\n" "class PublicBase : public Truncated { };\n\n" - "/*! A template class */\n" + "/*! 一个模板类 */\n" "template<class T> class Templ { };\n\n" - "/*! 被保护继承的类 */\n" + "/*! protected 继承关系的类 */\n" "class ProtectedBase { };\n\n" - "/*! 被私有继承的类 */\n" + "/*! private 继承关系的类 */\n" "class PrivateBase { };\n\n" - "/*! 被使用的类 */\n" + "/*! 被 Inherited 使用的类 */\n" "class Used { };\n\n" - "/*! 继承了若干其它类的类 */\n" + "/*! 继承自其它若干类的超级类 */\n" "class Inherited : public PublicBase,\n" " protected ProtectedBase,\n" " private PrivateBase,\n" @@ -932,28 +929,32 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 " Used *m_usedClass;\n" "};\n" "\\endcode\n" - "Doxygen将生成如下的图形:" - "<p><center><img 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" - "以上图形中的矩形有如下的含义:\n" + "上图中的矩形有如下意义:\n" + "</p>\n" "<ul>\n" - "<li>被黑色填充的矩形代表当前的类或结构。\n" - "<li>黑色边框的矩形代表<i>文档化</i>的类或结构。\n" - "<li>灰色边框的矩形代表没有<i>文档化</i>的类或结构。\n" - "<li>红色边框的矩形代表继承/包含关系没有被完整显示出的类或结构。如果一幅图像的尺" - "寸大于指定尺寸,它将被截取。" + "<li>%灰色填充的矩形 表示上图是由该结构体或类生成.</li>\n" + "<li>%黑色边框的矩形 表示已经被文档化的结构体或类.</li>\n" + "<li>%灰色边框的矩形 表示未被文档化的结构体或类.</li>\n" + "<li>%红色边框的矩形 表示该结构体或类的关系没有被完全显示." + "%如果生成的图不能调整到制定的尺寸,有一些关系就会被截断而不显示出来.</li>\n" "</ul>\n" - "各个箭头有如下的含义:\n" + "<p>\n" + "箭头有如下意义:\n" + "</p>\n" "<ul>\n" - "<li>深蓝色的箭头用于显示两个类之间的公有继承关系。\n" - "<li>深绿色的箭头用于显示保护继承关系。\n" - "<li>深红色的箭头用于显示私有继承关系。\n" - "<li>紫色点状线条的箭头用于显示两个类之间包含或者使用的关系。通过箭头旁边的变量可以" - "访问到箭头所指的类或结构。\n" + "<li>%深蓝色的箭头被用于展示 public 的继承关系.</li>\n" + "<li>%深绿色的箭头表示 protected 的继承关系.</li>\n" + "<li>%深红色的箭头说明了是 privated 的继承关系.</li>\n" + "<li>%紫色虚线箭头用来表示两个类之间的聚合关系. 被箭头指向的类的类型的变量,可以通过箭头旁标明的变量去访问.</li>\n" + "<li>%黄色虚线箭头表示模板类实例和模板类之间的关系. 箭头旁边标明了模板类实例化的参数.</li>\n" "</ul>\n"; } + /*! text for the link to the legend page */ - virtual QCString trLegend() + virtual QCString trLegend() { return "图例"; } @@ -977,27 +978,27 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// //// new since 1.2.1 //////////////////////////////////////////////////////////////////////////// - /*! Used as a section header for KDE-2 IDL methods */ - virtual QCString trDCOPMethods() - { - return "DCOP"CN_SPC"方法"; - } + /*! Used as a section header for KDE-2 IDL methods */ + virtual QCString trDCOPMethods() + { + return "DCOP"CN_SPC"成员函数"; + } ////////////////////////////////////////////////////////////////////////// //// new since 1.2.2 //////////////////////////////////////////////////////////////////////////// - /*! Used as a section header for IDL properties */ - virtual QCString trProperties() - { - return "属性"; - } + /*! Used as a section header for IDL properties */ + virtual QCString trProperties() + { + return "属性"; + } - /*! Used as a section header for IDL property documentation */ - virtual QCString trPropertyDocumentation() - { - return "属性文档"; - } + /*! Used as a section header for IDL property documentation */ + virtual QCString trPropertyDocumentation() + { + return "属性说明"; + } ////////////////////////////////////////////////////////////////////////// // new since 1.2.4 @@ -1006,22 +1007,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! Used for Java classes in the summary section of Java packages */ virtual QCString trClasses() { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "数据结构"; - } - else - { - return "类"; - } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "结构体"; + } + else + { + return "类"; + } } /*! Used as the title of a Java package */ virtual QCString trPackage(const char *name) { - return (QCString)"包 "+name; + return (QCString)"包"CN_SPC+name; } - + /*! Title of the package index page */ virtual QCString trPackageList() { @@ -1031,7 +1032,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! The description of the package index page */ virtual QCString trPackageListDescription() { - return "这里列出所有的包,附带简要说明(如果有的话):"; + return "这里列出所有的包,附带简要说明(如果有的话):"; } /*! The link name in the Quick links header for each page */ @@ -1043,21 +1044,21 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! Text shown before a multi-line define */ virtual QCString trDefineValue() { - return "值:"; + return "值:"; } //////////////////////////////////////////////////////////////////////////// //// new since 1.2.6 //////////////////////////////////////////////////////////////////////////// - virtual QCString trBug () - { - return "缺陷"; - } + virtual QCString trBug () + { + return "Bug"; + } - virtual QCString trBugList () - { - return "缺陷列表"; - } + virtual QCString trBugList () + { + return "Bug"CN_SPC"列表"; + } ////////////////////////////////////////////////////////////////////////// // new since 1.2.6 @@ -1115,12 +1116,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trClass(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Class" : "class")); + /* + QCString result((first_capital ? "Class" : "class")); if (!singular) result+="es"; return result; - */ - return "类"; + */ + return "类"; } /*! This is used for translation of the word that will possibly @@ -1129,12 +1130,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trFile(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "File" : "file")); + /* + QCString result((first_capital ? "File" : "file")); if (!singular) result+="s"; return result; - */ - return "文件"; + */ + return "文件"; } @@ -1144,12 +1145,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trNamespace(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Namespace" : "namespace")); + /* + QCString result((first_capital ? "Namespace" : "namespace")); if (!singular) result+="s"; return result; - */ - return "命名空间"; + */ + return "命名空间"; } /*! This is used for translation of the word that will possibly @@ -1158,12 +1159,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trGroup(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Group" : "group")); + /* + QCString result((first_capital ? "Group" : "group")); if (!singular) result+="s"; return result; - */ - return "组"; + */ + return "组"; } /*! This is used for translation of the word that will possibly @@ -1172,12 +1173,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trPage(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Page" : "page")); + /* + QCString result((first_capital ? "Page" : "page")); if (!singular) result+="s"; return result; - */ - return "页"; + */ + return "页"; } /*! This is used for translation of the word that will possibly @@ -1186,12 +1187,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trMember(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Member" : "member")); + /* + QCString result((first_capital ? "Member" : "member")); if (!singular) result+="s"; return result; - */ - return "成员"; + */ + return "成员"; } /*! This is used for translation of the word that will possibly @@ -1200,12 +1201,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trGlobal(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Global" : "global")); + /* + QCString result((first_capital ? "Global" : "global")); if (!singular) result+="s"; return result; - */ - return "全局定义"; + */ + return "全局"; } ////////////////////////////////////////////////////////////////////////// @@ -1216,12 +1217,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 * for the author section in man pages. */ virtual QCString trAuthor(bool /*first_capital*/, bool /*singular*/) { - /* - QCString result((first_capital ? "Author" : "author")); + /* + QCString result((first_capital ? "Author" : "author")); if (!singular) result+="s"; return result; - */ - return "作者"; + */ + return "作者"; } ////////////////////////////////////////////////////////////////////////// @@ -1245,7 +1246,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 virtual QCString trImplementedFromList(int numEntries) { /* return "Implements "+trWriteList(numEntries)+"."; */ - return "实现了"CN_SPC+trWriteList(numEntries)+"。"; + return "实现了"CN_SPC+trWriteList(numEntries)+"."; } /*! used in member documentation blocks to produce a list of @@ -1254,7 +1255,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 virtual QCString trImplementedInList(int numEntries) { /* return "Implemented in "+trWriteList(numEntries)+"."; */ - return "在"CN_SPC+trWriteList(numEntries)+CN_SPC"内被实现。"; + return "在"CN_SPC+trWriteList(numEntries)+CN_SPC"内被实现."; } ////////////////////////////////////////////////////////////////////////// @@ -1279,8 +1280,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trDeprecatedList() { -/* return "Deprecated List"; */ - return "过时列表"; + return "弃用列表"; } ////////////////////////////////////////////////////////////////////////// @@ -1292,14 +1292,13 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trEvents() { - /* return "Events"; */ return "事件"; } + /*! Header used for the documentation section of a class' events. */ virtual QCString trEventDocumentation() { - /* return "Event Documentation"; */ - return "事件文档"; + return "事件说明"; } ////////////////////////////////////////////////////////////////////////// @@ -1310,40 +1309,39 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trPackageTypes() { - /* return "Package Types"; */ - return "模块类型"; + return "包类型"; } + /*! Used as a heading for a list of Java class functions with package * scope. */ virtual QCString trPackageMembers() { - /* return "Package Functions"; */ - return "模块函数"; + return "包函数"; } + /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() { - /* return "Static Package Functions"; */ - return "静态模块函数"; + return "静态包函数"; } + /*! Used as a heading for a list of Java class variables with package * scope. */ virtual QCString trPackageAttribs() { - /* return "Package Attributes"; */ - return "模块属性"; + return "包属性"; } + /*! Used as a heading for a list of static Java class variables with * package scope. */ virtual QCString trStaticPackageAttribs() - { - /* return "Static Package Attributes"; */ - return "静态模块属性"; + { + return "静态包属性"; } ////////////////////////////////////////////////////////////////////////// @@ -1355,13 +1353,12 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trAll() { - /* return "All"; */ return "全部"; } + /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { - /* return "Here is the call graph for this function:"; */ return "函数调用图:"; } @@ -1375,17 +1372,16 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trSearchForIndex() { - /* return "Search for"; */ - return "搜索"; + return "搜索"CN_SPC; } /*! This string is used as the title for the page listing the search * results. */ virtual QCString trSearchResultsTitle() { - /* return "Search Results"; */ return "搜索结果"; } + /*! This string is put just before listing the search results. The * text can be different depending on the number of documents found. * Inside the text you can put the special marker $num to insert @@ -1398,20 +1394,16 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 { if (numDocuments==0) { - /* return "Sorry, no documents matching your query."; */ - return "对不起,找不到与你的查询相符的文档。"; + return "抱歉,未找到与您查询相符的文档."; } else if (numDocuments==1) { - /* return "Found <b>1</b> document matching your query."; */ - return "找到<b>1</b>篇与你的查询相符的文档。"; + return "找到<b>1</b>篇与您查询相符的文档."; } else { - /* return "Found <b>$num</b> documents matching your query. " - "Showing best matches first."; */ - return "找到<b>$num</b>篇与你的查询相符的文档。" - "先显示最吻合的文档。"; + return "找到<b>$num</b>篇与您查询相符的文档." + "优先显示最符合的文档."; } } /*! This string is put before the list of matched words, for each search @@ -1419,7 +1411,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trSearchMatches() { - /* return "Matches:"; */ return "符合的结果:"; } @@ -1442,7 +1433,6 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 * hierarchy. */ virtual QCString trDirIndex() - /* { return "Directory Hierarchy"; } */ { return "目录结构"; } @@ -1451,36 +1441,28 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 * of the directories. */ virtual QCString trDirDocumentation() - /* { return "Directory Documentation"; } */ { - return "目录文档"; + return "目录说明"; } - /*! This is used as the title of the directory index and also in the - * Quick links of a HTML page, to link to the directory hierarchy. + /*! This is used as the title of the directory index and also in the + * Quick links of an HTML page, to link to the directory hierarchy. */ virtual QCString trDirectories() - /* { return "Directories"; } */ - { - return "目录"; - } + { return "目录"; } /*! This returns a sentences that introduces the directory hierarchy. * and the fact that it is sorted alphabetically per level */ virtual QCString trDirDescription() -/* { return "This directory hierarchy is sorted roughly, " */ -/* "but not completely, alphabetically:"; */ -/* } */ { - return "目录结构仅经过粗略的排序"; + return "此继承关系列表按字典顺序粗略的排序:"CN_SPC; } /*! This returns the title of a directory page. The name of the * directory is passed via \a dirName. */ virtual QCString trDirReference(const char *dirName) - /* { QCString result=dirName; result+=" Directory Reference"; return result; } */ { QCString result=dirName; result+=CN_SPC"目录参考"; @@ -1490,11 +1472,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! This returns the word directory with or without starting capital * (\a first_capital) and in sigular or plural form (\a singular). */ - virtual QCString trDir(bool, bool) + virtual QCString trDir(bool /*first_capital*/, bool /*singular*/) { - /* QCString result((first_capital ? "Director" : "director")); */ - /* if (singular) result+="y"; else result+="ies"; */ - /* return result; */ return "目录"; } @@ -1507,11 +1486,8 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trOverloadText() { - /* return "This is an overloaded member function, " - "provided for convenience. It differs from the above " - "function only in what argument(s) it accepts."; */ - return "这是为便于使用而提供的一个重载成员函数。" - "与上面的函数相比,它接受不同类型的参数。"; + return "这是为便于使用而提供的一个重载成员函数." + "与上面的函数相比,它接受不同类型的参数."; } ////////////////////////////////////////////////////////////////////////// @@ -1521,8 +1497,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! This is used to introduce a caller (or called-by) graph */ virtual QCString trCallerGraph() { - /* return "Here is the caller graph for this function:"; */ - return "这是这个函数的调用图:"; + return "这是这个函数的调用关系图:"; } /*! This is used in the documentation of a file/namespace before the list @@ -1530,8 +1505,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trEnumerationValueDocumentation() { - /* return "Enumerator Documentation"; */ - return "枚举变量文档"; + return "枚举变量说明"; } ////////////////////////////////////////////////////////////////////////// @@ -1540,56 +1514,45 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! header that is put before the list of member subprograms (Fortran). */ virtual QCString trMemberFunctionDocumentationFortran() - // { return "Member Function/Subroutine Documentation"; } - { return "成员函数及过程文档"; } + { return "成员函数/子程序说明"; } /*! This is put above each page as a link to the list of annotated data types (Fortran). */ virtual QCString trCompoundListFortran() - // { return "Data Types List"; } { return "数据类型列表"; } /*! This is put above each page as a link to all members of compounds (Fortran). */ virtual QCString trCompoundMembersFortran() - // { return "Data Fields"; } { return "数据项"; } /*! This is an introduction to the annotated compound list (Fortran). */ virtual QCString trCompoundListDescriptionFortran() - // { return "Here are the data types with brief descriptions:"; } { return "带简要描述的数据类型列表:"; } /*! This is an introduction to the page with all data types (Fortran). */ virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) { - // QCString result="Here is a list of all "; - // if (!extractAll) - // { - // result+="documented "; - // } - // result+="data types members"; - // result+=" with links to "; - // if (!extractAll) - // { - // result+="the data structure documentation for each member"; - // } - // else - // { - // result+="the data types they belong to:"; - // } - // return result; - if(!extractAll) { - return "这里是有文档的数据类型成员列表,含有到每个成员的数据结构文档的链接"; - } else { - return "这里是数据类型成员列表,含有到成员所属的数据类型的链接:"; + QCString result="这里列出了所有"; + if (!extractAll) + { + result+="文档化的"; } - + result+="数据类型成员,并附带"; + //result+=" with links to "; + if (!extractAll) + { + result+="其说明文档:"; + } + else + { + result+="其所属的文件:"; + } + return result; } /*! This is used in LaTeX as the title of the chapter with the * annotated compound index (Fortran). */ virtual QCString trCompoundIndexFortran() - // { return "Data Type Index"; } { return "数据类型索引"; } @@ -1597,48 +1560,38 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 * the documentation of all data types (Fortran). */ virtual QCString trTypeDocumentation() - // { return "Data Type Documentation"; } { return "数据类型文档"; } /*! This is used in the documentation of a file as a header before the * list of (global) subprograms (Fortran). */ virtual QCString trSubprograms() - //{ return "Functions/Subroutines"; } - { return "函数/过程"; } + { return "函数/子程序"; } /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for subprograms (Fortran) */ virtual QCString trSubprogramDocumentation() - //{ return "Function/Subroutine Documentation"; } - { return "函数/过程文档"; } + { return "函数/子程序说明"; } /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds (Fortran) */ virtual QCString trDataTypes() - // { return "Data Types"; } { return "数据类型"; } /*! used as the title of page containing all the index of all modules (Fortran). */ virtual QCString trModulesList() - // { return "Modules List"; } { return "模块列表"; } /*! used as an introduction to the modules list (Fortran) */ virtual QCString trModulesListDescription(bool extractAll) { - // QCString result="Here is a list of all "; - // if (!extractAll) result+="documented "; - // result+="modules with brief descriptions:"; - // return result; - if(!extractAll) { - return "带简要描述的有文档的模块列表:"; - } else { - return "带简要描述的模块列表:"; - } + QCString result="这里列出了所有"; + if (!extractAll) result+="文档化的"; + result+="模块,并附带简要说明:"; + return result; } /*! used as the title of the HTML page of a module/type (Fortran) */ @@ -1646,47 +1599,32 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 ClassDef::CompoundType compType, bool isTemplate) { - // QCString result=(QCString)clName; - // switch(compType) - // { - // case ClassDef::Class: result+=" Module"; break; - // case ClassDef::Struct: result+=" Type"; break; - // case ClassDef::Union: result+=" Union"; break; - // case ClassDef::Interface: result+=" Interface"; break; - // case ClassDef::Protocol: result+=" Protocol"; break; - // case ClassDef::Category: result+=" Category"; break; - // case ClassDef::Exception: result+=" Exception"; break; - // } - // if (isTemplate) result+=" Template"; - // result+=" Reference"; - // return result; QCString result=(QCString)clName; switch(compType) { case ClassDef::Class: result+=CN_SPC"模块"; break; case ClassDef::Struct: result+=CN_SPC"类型"; break; - case ClassDef::Union: result+=CN_SPC"联合"; break; - case ClassDef::Interface: result+=CN_SPC"界面"; break; - case ClassDef::Protocol: result+=CN_SPC"接口"; break; + case ClassDef::Union: result+=CN_SPC"联合体"; break; + case ClassDef::Interface: result+=CN_SPC"接口"; break; + case ClassDef::Protocol: result+=CN_SPC"协议"; break; case ClassDef::Category: result+=CN_SPC"目录"; break; case ClassDef::Exception: result+=CN_SPC"异常"; break; } - if (isTemplate) result+="模板"; + if (isTemplate) result+="模板"CN_SPC; result+="参考手册"; return result; } + /*! used as the title of the HTML page of a module (Fortran) */ virtual QCString trModuleReference(const char *namespaceName) { - QCString result=namespaceName; - // result+=" Module Reference"; + QCString result=namespaceName; result += CN_SPC"模块参考手册"; return result; } /*! This is put above each page as a link to all members of modules. (Fortran) */ virtual QCString trModulesMembers() - // { return "Module Members"; } { return "模块成员"; } /*! This is an introduction to the page with all modules members (Fortran) */ @@ -1705,7 +1643,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 // } // return result; if(!extractAll) { - return "这里是有文档的模块成员列表,含有到每个成员所在模块的文档的链接"; + return "这里是有文档的模块成员列表,含有到每个成员所在模块的文档的链接:"; } else { return "这里是模块成员列表,含有到成员所属的模块的链接:"; } @@ -1734,36 +1672,22 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 */ virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool) - { // here s is one of " Module", " Struct" or " Union" - // single is true implies a single file - // QCString result=(QCString)"The documentation for this "; - // switch(compType) - // { - // case ClassDef::Class: result+="module"; break; - // case ClassDef::Struct: result+="type"; break; - // case ClassDef::Union: result+="union"; break; - // case ClassDef::Interface: result+="interface"; break; - // case ClassDef::Protocol: result+="protocol"; break; - // case ClassDef::Category: result+="category"; break; - // case ClassDef::Exception: result+="exception"; break; - // } - // result+=" was generated from the following file"; - // if (single) result+=":"; else result+="s:"; - // return result; + { QCString result="该"; switch(compType) { case ClassDef::Class: result+=CN_SPC"模块"; break; - case ClassDef::Struct: result+=CN_SPC"类型"; break; - case ClassDef::Union: result+=CN_SPC"联合"; break; - case ClassDef::Interface: result+=CN_SPC"界面"; break; - case ClassDef::Protocol: result+=CN_SPC"接口"; break; + case ClassDef::Struct: result+=CN_SPC"结构体"; break; + case ClassDef::Union: result+=CN_SPC"联合体"; break; + case ClassDef::Interface: result+=CN_SPC"接口"; break; + case ClassDef::Protocol: result+=CN_SPC"协议"; break; case ClassDef::Category: result+=CN_SPC"目录"; break; case ClassDef::Exception: result+=CN_SPC"异常"; break; } - result+="的文档由以下文件生成:"; + result+=CN_SPC"的文档由以下文件生成:"; return result; } + /*! This is used for translation of the word that will possibly * be followed by a single name or by a list of names * of the category. @@ -1772,6 +1696,7 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 { return "类型"; } + /*! This is used for translation of the word that will possibly * be followed by a single name or by a list of names * of the category. @@ -1786,81 +1711,75 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 { return "类型限制"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.6.0 ////////////////////////////////////////////////////////////////////////// - virtual QCString trDirRelation(const char *name) - { - // return QCString(name)+" Relation"; - // unsure - return QCString(name)+CN_SPC"关系"; - } - + virtual QCString trDirRelation(const char *name) + { + // return QCString(name)+" Relation"; + // unsure + return QCString(name)+CN_SPC"关系"; + } + virtual QCString trLoading() - { - return "载入中..."; - } + { + return "载入中..."; + } - virtual QCString trGlobalNamespace() - { - return "全局命名空间"; - } - + virtual QCString trGlobalNamespace() + { + return "全局命名空间"; + } + virtual QCString trSearching() - { - return "搜索中..."; - } + { + return "搜索中..."; + } - virtual QCString trNoMatches() - { - return "未找到"; - } + virtual QCString trNoMatches() + { + return "未找到"; + } ////////////////////////////////////////////////////////////////////////// // new since 1.6.3 ////////////////////////////////////////////////////////////////////////// - virtual QCString trDirDependency(const char *name) - { - // return (QCString)"Directory dependency graph for "+name; - // unsure - return QCString(name)+CN_SPC"的目录依赖关系图"; - } + virtual QCString trDirDependency(const char *name) + { + return QCString(name)+CN_SPC"的目录依赖关系图"; + } - virtual QCString trFileIn(const char *name) - { - // return (QCString)"File in "+name; - // unsure - return (QCString)"文件在"+CN_SPC+name; - } - - virtual QCString trIncludesFileIn(const char *name) - { - // return (QCString)"Includes file in "+name; - // unsure - return (QCString)"在"CN_SPC+name+CN_SPC"中引用"; - } - - virtual QCString trDateTime(int year,int month,int day,int dayOfWeek, + virtual QCString trFileIn(const char *name) + { + return (QCString)"文件在"+CN_SPC+name; + } + + virtual QCString trIncludesFileIn(const char *name) + { + return (QCString)"在"CN_SPC+name+CN_SPC"中引用"; + } + + virtual QCString trDateTime(int year,int month,int day,int dayOfWeek, int hour,int minutes,int seconds, bool includeTime) - { - static const char *days[] = { "一","二","三","四","五","六","日" }; + { + static const char *days[] = { "一","二","三","四","五","六","日" }; static const char *months[] = { "一","二","三","四","五","六","七","八","九","十","十一","十二" }; - QCString sdate; + QCString sdate; - sdate.sprintf("%d年%s月%d日 星期%s",year, months[month-1], day, days[dayOfWeek-1]); + sdate.sprintf("%d年"CN_SPC"%s月"CN_SPC"%d日"CN_SPC"星期%s",year, months[month-1], day, days[dayOfWeek-1]); - if (includeTime) - { - QCString stime; - stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds); - sdate+=stime; - } - return sdate; - } + if (includeTime) + { + QCString stime; + stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds); + sdate+=stime; + } + return sdate; + } ////////////////////////////////////////////////////////////////////////// // new since 1.7.5 @@ -1877,9 +1796,44 @@ class TranslatorChinese : public TranslatorAdapter_1_8_0 /*! Header for the graph showing the directory dependencies */ virtual QCString trDirDepGraph(const char *name) { - //unsure - return QCString(name)+CN_SPC"的目录依赖关系图"; - } + return QCString(name)+CN_SPC"的目录依赖关系图"; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "详情级别"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "模板参数"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "和"CN_SPC+number+CN_SPC"更多..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool /*single*/) + { return "枚举说明文档从下列文件生成:"; } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return QCString(name)+CN_SPC"枚举类型参考"; } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+CN_SPC"继承自"CN_SPC+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "额外继承的成员函数"; } + +////////////////////////////////////////////////////////////////////////// }; #endif diff --git a/src/translator_cz.h b/src/translator_cz.h index 04c49bc..93e6a94 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2012 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -20,6 +20,7 @@ // Updates: // -------- +// 2012/04/10 - Updates for "new since 1.8.0". // 2011/07/28 - Updates for "new since 1.7.5". // 2010/06/01 - typo // 2010/04/28 - Updates for "new since 1.6.3". @@ -30,19 +31,19 @@ // 2006/06/13 - translation of the trEnumerationValueDocumentation(). // and clear in the Czech language. // modified trCallGraph() to make the meaning unambiguous -// 2006/05/10 - Update for "new since 1.4.6" -- trCallerGraph(), -// 2005/03/08 - Update for "new since 1.4.1" (trOverloadText()) +// 2006/05/10 - Update for "new since 1.4.6" -- trCallerGraph(), +// 2005/03/08 - Update for "new since 1.4.1" (trOverloadText()) // 2005/02/11 - The "never used" methods removed. -// 2004/09/14 - The new methods "since 1.3.9" implemented. -// 2004/06/16 - The new method "since 1.3.8" implemented. +// 2004/09/14 - The new methods "since 1.3.9" implemented. +// 2004/06/16 - The new method "since 1.3.8" implemented. // 2004/02/27 - Text inside the trCallGraph() corrected. // 2004/02/26 - trLegendDocs() updated. -// 2003/08/13 - Four new methods "since 1.3.3" implemented. +// 2003/08/13 - Four new methods "since 1.3.3" implemented. // 2003/06/10 - Two new methods "since 1.3.1" implemented. // 2003/04/28 - Five new methods "since 1.3" implemented. // 2002/10/15 - The new trEvents() and trEventDocumentation() implemented. // 2002/07/29 - The new trDeprecatedList() implemented. -// 2002/07/08 - The new trRTFTableOfContents() implemented. (my birthday! ;) +// 2002/07/08 - The new trRTFTableOfContents() implemented. (my birthday! ;) // 2002/03/05 - ... forgot to replace TranslatorAdapter... by Translator. // 2002/01/23 - Two new methods "since 1.2.13" implemented. // 2001/11/06 - trReferences() implemented. @@ -59,7 +60,7 @@ // 2001/02/26 - Update for "new since 1.2.5" version (trBug(), trBugList()). // 2001/02/15 - trMore() now returns only "..." (ellipsis). // 2001/01/09 - Update for "new since 1.2.4" version. -// 2000/10/17 - Update for "new since 1.2.2" version. +// 2000/10/17 - Update for "new since 1.2.2" version. // 2000/09/11 - Update for "new since 1.2.1" version. // 2000/09/06 - Reimplementation of trInheritsList(). // 2000/08/31 - ISOToWin() and WinToISO() moved to the base class. @@ -69,20 +70,20 @@ // 2000/07/19 - Updates for "new since 1.1.5"; encoding conversion separated. // 2000/07/10 - Update to 1.1.5; conditionally decoding to iso-8859-2 for UNIX. // 2000/06/20 - Prototype: with diacritics; based on ver. 1.1.4 (from scratch). -// +// // The first translation from English to Czech was started by -// Vlastimil Havran (1999--2000). The prototype version of Czech strings -// with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz), +// Vlastimil Havran (1999--2000). The prototype version of Czech strings +// with diacritics was implemented by Petr Prikryl (prikrylp@skil.cz), // 2000/06/20. Vlastimil agreed that Petr be the new maintainer. // Todo // ---- -// - The trReimplementedFromList() should pass the kind of the -// reimplemented element. It can be method, typedef or possibly +// - The trReimplementedFromList() should pass the kind of the +// reimplemented element. It can be method, typedef or possibly // something else. It is difficult to find the general translation // for all kinds in the Czech language. -class TranslatorCzech : public TranslatorAdapter_1_8_0 +class TranslatorCzech : public Translator { public: // --- Language control methods ------------------- @@ -91,11 +92,11 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "czech"; } virtual QCString latexLanguageSupportCommand() - { + { return "\\usepackage[T2A]{fontenc}\n" "\\usepackage[czech]{babel}\n"; } - + /*! return the language charset. This will be used for the HTML output */ virtual QCString idLanguageCharset() { @@ -119,21 +120,21 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() { return "Dokumentace k členským typům"; } - + /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return "Dokumentace k členským výčtům"; } - + /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return "Dokumentace k metodám"; } - + /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Dokumentace k položkám"; + return "Dokumentace k položkám"; } else { @@ -142,7 +143,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 } /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() + virtual QCString trMore() { return "..."; } /*! put in the class documentation */ @@ -160,7 +161,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() { return ", včetně všech zděděných členů."; } - + /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ @@ -168,74 +169,74 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { QCString result("Generováno automaticky programem Doxygen " "ze zdrojových textů"); if (s) result += QCString(" projektu ") + s; - result += "."; + result += "."; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() { return "jméno výčtu"; } - + /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() { return "hodnota výčtu"; } - + /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return "definován v"; } // quick reference sections - /*! This is put above each page as a link to the list of all groups of + /*! This is put above each page as a link to the list of all groups of * compounds or files (see the \\group command). */ virtual QCString trModules() { return "Moduly"; } - + /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return "Hierarchie tříd"; } - + /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datové struktury"; } else - { - return "Seznam tříd"; + { + return "Seznam tříd"; } } - + /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() { return "Seznam souborů"; } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Datové položky"; + return "Datové položky"; } else { - return "Seznam členů tříd"; + return "Seznam členů tříd"; } } - + /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Globální symboly"; + return "Globální symboly"; } else { - return "Symboly v souborech"; + return "Symboly v souborech"; } } @@ -268,11 +269,11 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Následující seznam obsahuje identifikace datových " - "struktur a jejich stručné popisy:"; + "struktur a jejich stručné popisy:"; } else { @@ -288,11 +289,11 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trCompoundMembersDescription(bool extractAll) { QCString result= "Zde naleznete seznam všech "; - if (!extractAll) + if (!extractAll) { result += "dokumentovaných "; } - + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result += "položek struktur (struct) a unií (union) "; @@ -301,9 +302,9 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { result += "členů tříd "; } - - result += "s odkazy na "; - + + result += "s odkazy na "; + if (extractAll) { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) @@ -326,7 +327,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 result+="třídy, ke kterým příslušejí:"; } } - + return result; } @@ -346,12 +347,12 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 result+="symbolů, které jsou definovány na úrovni svých souborů. " "Pro každý symbol je uveden odkaz na "; } - - if (extractAll) + + if (extractAll) result+="soubory, ke kterým příslušejí:"; - else + else result+="dokumentaci:"; - + return result; } @@ -367,44 +368,44 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trModulesDescription() { return "Zde naleznete seznam všech modulů:"; } - // index titles (the project name is prepended for these) + // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() { return "Dokumentace"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() { return "Rejstřík modulů"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() { return "Rejstřík hierarchie tříd"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + { return "Rejstřík datových struktur"; } else { - return "Rejstřík tříd"; + return "Rejstřík tříd"; } } - + /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - virtual QCString trFileIndex() + virtual QCString trFileIndex() { return "Rejstřík souborů"; } /*! This is used in LaTeX as the title of the chapter containing @@ -417,15 +418,15 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Dokumentace datových struktur"; + return "Dokumentace datových struktur"; } else { - return "Dokumentace tříd"; - } + return "Dokumentace tříd"; + } } /*! This is used in LaTeX as the title of the chapter containing @@ -449,108 +450,108 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() { return "Referenční příručka"; } - - /*! This is used in the documentation of a file as a header before the + + /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return "Definice maker"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return "Prototypy"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() { return "Definice typů"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return "Výčty"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return "Funkce"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() { return "Proměnné"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return "Hodnoty výčtu"; } - + /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() { return "Dokumentace k definicím maker"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() { return "Dokumentace prototypů"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() { return "Dokumentace definic typů"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return "Dokumentace výčtových typů"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return "Dokumentace funkcí"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return "Dokumentace proměnných"; } - /*! This is used in the documentation of a file/namespace/group before + /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + { return "Datové struktry"; } else { - return "Třídy"; + return "Třídy"; } } - - /*! This is used in the standard footer of each page and indicates when - * the page was generated + + /*! This is used in the standard footer of each page and indicates when + * the page was generated */ virtual QCString trGeneratedAt(const char *date,const char *projName) - { + { QCString result("Generováno "); result += date; - if (projName) + if (projName) result += QCString(" pro projekt ") + projName; result += " programem"; return result; @@ -567,7 +568,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return QCString("Diagram dědičnosti pro třídu ") + clName; } - + /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() { return "Pouze pro vnitřní použití."; } @@ -599,13 +600,13 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return "Výjimky"; } - + /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return "Generováno programem"; } // new since 0.49-990307 - + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return "Seznam prostorů jmen"; } @@ -624,17 +625,17 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 */ virtual QCString trFriends() { return "Friends"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + /*! used in the class documentation as a header before the list of all - * related classes + * related classes */ virtual QCString trRelatedFunctionDocumentation() { return "Dokumentace k friends"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// @@ -664,7 +665,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trFileReference(const char *fileName) { QCString result("Dokumentace souboru "); - result+=fileName; + result+=fileName; return result; } @@ -675,9 +676,9 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 result+=namespaceName; return result; } - - /* - * these are for the member sections of a class, struct or union + + /* + * these are for the member sections of a class, struct or union */ virtual QCString trPublicMembers() { return "Veřejné metody"; } @@ -699,7 +700,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "Privátní sloty"; } virtual QCString trStaticPrivateMembers() { return "Statické privátní metody"; } - + /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ @@ -708,23 +709,23 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 QCString result; int i; // the inherits list contain `numEntries' classes - for (i=0;i<numEntries;i++) + for (i=0;i<numEntries;i++) { // use generateMarker to generate placeholders for the class links! - result+=generateMarker(i); // generate marker for entry i in the list + result+=generateMarker(i); // generate marker for entry i in the list // (order is left to right) - + if (i!=numEntries-1) // not the last entry, so we need a separator { - if (i<numEntries-2) // not the fore last entry + if (i<numEntries-2) // not the fore last entry result+=", "; else // the fore last entry result+=" a "; } } - return result; + return result; } - + /*! used in class documentation to produce a list of base classes, * if class diagrams are disabled. */ @@ -747,7 +748,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 return result; } - /*! used in member documentation blocks to produce a list of + /*! used in member documentation blocks to produce a list of * members that are hidden by this one. */ virtual QCString trReimplementedFromList(int numEntries) @@ -773,18 +774,18 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) - { + { QCString result="Zde naleznete seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="symbolů, které jsou definovány ve svých prostorech jmen. " "U každého je uveden odkaz na "; - if (extractAll) + if (extractAll) result+="dokumentaci příslušného prostoru jmen:"; - else + else result+="příslušný prostor jmen:"; return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ virtual QCString trNamespaceIndex() @@ -829,7 +830,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 case ClassDef::Exception: result+="tuto výjimku"; break; } result+=" byla generována z "; - if (single) result+="následujícího souboru:"; + if (single) result+="následujícího souboru:"; else result+="následujících souborů:"; return result; } @@ -853,7 +854,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trMainPage() { return "Hlavní stránka"; } - /*! This is used in references to page that are put in the LaTeX + /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() @@ -899,7 +900,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Dokumentace konstruktoru a destruktoru"; + return "Dokumentace konstruktoru a destruktoru"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() @@ -956,7 +957,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// // new since 1.1.0 ////////////////////////////////////////////////////////////////////////// - + virtual QCString trNote() { return "Poznámka"; @@ -1124,7 +1125,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 "nebo kdy je používána jinou třídou. Je označena identifikátorem " "jedné nebo více proměných, přes které\n" "je třída nebo struktura zpřístupněna.\n" - "<li>Žlutá šipka kreslená čárkovaně vyjadřuje vztah mezi instancí šablony " + "<li>Žlutá šipka kreslená čárkovaně vyjadřuje vztah mezi instancí šablony " "a šablonou třídy, na základě které byla\n" "instance šablony vytvořena. V popisu šipky jsou uvedeny příslušné" " parametry šablony.\n" @@ -1139,13 +1140,13 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a test item */ virtual QCString trTest() { return "Test"; } - + /*! Used as the header of the test list */ virtual QCString trTestList() { @@ -1215,7 +1216,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 ////////////////////////////////////////////////////////////////////////// // new since 1.2.5 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a \\bug item */ virtual QCString trBug() { @@ -1236,7 +1237,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "1250"; } - + /*! Used as ansicpg for RTF fcharset */ virtual QCString trRTFCharSet() { @@ -1248,83 +1249,83 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "Rejstřík"; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trClass(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Tříd" : "tříd")); result += singular ? "a" : "y"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trFile(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Soubor" : "soubor")); if (!singular) result+="y"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trNamespace(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Prostor" : "prostor")); if (!singular) result+="y"; result+=" jmen"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trGroup(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Skupin" : "skupin")); result += singular ? "a" : "y"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trPage(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Stránk" : "stránk")); result += singular ? "a" : "y"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trMember(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Člen" : "člen")); - if (!singular) + if (!singular) result += "y"; - return result; + return result; } - + /*! ??? Jak to prelozit? Bylo by dobre, kdyby se ozval nekdo, * kdo to pouziva. */ virtual QCString trGlobal(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Global" : "global")); - if (!singular) result+="s"; - return result; + if (!singular) result+="s"; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1334,10 +1335,10 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! This text is generated when the \\author command is used and * for the author section in man pages. */ virtual QCString trAuthor(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Auto" : "auto")); result += (singular) ? "r" : "ři"; - return result; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1355,7 +1356,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 // new since 1.2.13 ////////////////////////////////////////////////////////////////////////// - /*! used in member documentation blocks to produce a list of + /*! used in member documentation blocks to produce a list of * members that are implemented by this one. */ virtual QCString trImplementedFromList(int numEntries) @@ -1387,8 +1388,8 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 // new since 1.2.17 ////////////////////////////////////////////////////////////////////////// - /*! Used as the header of the list of item that have been - * flagged deprecated + /*! Used as the header of the list of item that have been + * flagged deprecated */ virtual QCString trDeprecatedList() { @@ -1399,7 +1400,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 // new since 1.2.18 ////////////////////////////////////////////////////////////////////////// - /*! Used as a header for declaration section of the events found in + /*! Used as a header for declaration section of the events found in * a C# program */ virtual QCString trEvents() @@ -1419,35 +1420,35 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! Used as a heading for a list of Java class types with package scope. */ virtual QCString trPackageTypes() - { + { return "Typy v balíku"; } - /*! Used as a heading for a list of Java class functions with package - * scope. + /*! Used as a heading for a list of Java class functions with package + * scope. */ virtual QCString trPackageMembers() - { + { return "Funkce v balíku"; } - /*! Used as a heading for a list of static Java class functions with + /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() - { + { return "Statické funkce v balíku"; } - /*! Used as a heading for a list of Java class variables with package + /*! Used as a heading for a list of Java class variables with package * scope. */ virtual QCString trPackageAttribs() - { + { return "Atributy balíku"; } - /*! Used as a heading for a list of static Java class variables with + /*! Used as a heading for a list of static Java class variables with * package scope. */ virtual QCString trStaticPackageAttribs() - { + { return "Statické atributy balíku"; } @@ -1455,7 +1456,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 // new since 1.3.1 ////////////////////////////////////////////////////////////////////////// - /*! Used in the quick index of a class/file/namespace member list page + /*! Used in the quick index of a class/file/namespace member list page * to link to the unfiltered list of all members. */ virtual QCString trAll() @@ -1467,13 +1468,13 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "Tato funkce volá..."; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.3.3 ////////////////////////////////////////////////////////////////////////// - /*! When the search engine is enabled this text is put in the index - * of each page before the search field. + /*! When the search engine is enabled this text is put in the index + * of each page before the search field. */ virtual QCString trSearchForIndex() { @@ -1490,7 +1491,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 * text can be different depending on the number of documents found. * Inside the text you can put the special marker $num to insert * the number representing the actual number of search results. - * The @a numDocuments parameter can be either 0, 1 or 2, where the + * The @a numDocuments parameter can be either 0, 1 or 2, where the * value 2 represents 2 or more matches. HTML markup is allowed inside * the returned string. */ @@ -1504,21 +1505,21 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return "Nalezen jediný dokument, který vyhovuje vašemu dotazu."; } - else + else { return "Nalezeno <b>$num</b> dokumentů, které vyhovují vašemu " "dotazu. Nejlépe odpovídající dokumenty jsou zobrazeny " "jako první."; } } - /*! This string is put before the list of matched words, for each search + /*! This string is put before the list of matched words, for each search * result. What follows is the list of words that matched the query. */ virtual QCString trSearchMatches() { return "Nalezená slova:"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.3.8 ////////////////////////////////////////////////////////////////////////// @@ -1529,8 +1530,8 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 { return QCString("Zdrojový soubor ") + filename; } - - + + ////////////////////////////////////////////////////////////////////////// // new since 1.3.9 ////////////////////////////////////////////////////////////////////////// @@ -1554,34 +1555,34 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trDirectories() { return "Adresáře"; } - /*! This returns a sentences that introduces the directory hierarchy. + /*! This returns a sentences that introduces the directory hierarchy. * and the fact that it is sorted alphabetically per level */ virtual QCString trDirDescription() - { + { return "Následující hierarchie adresářů je zhruba, " - "ale ne úplně, řazena podle abecedy:"; + "ale ne úplně, řazena podle abecedy:"; } /*! This returns the title of a directory page. The name of the * directory is passed via \a dirName. */ virtual QCString trDirReference(const char *dirName) - { - QCString result = "Reference k adresáři "; - result += dirName; - return result; + { + QCString result = "Reference k adresáři "; + result += dirName; + return result; } /*! This returns the word directory with or without starting capital * (\a first_capital) and in sigular or plural form (\a singular). */ virtual QCString trDir(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Adresář" : "adresář")); - if ( ! singular) + if ( ! singular) result += "e"; - return result; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1608,23 +1609,23 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() - { - return "Dokumentace výčtových hodnot"; + { + return "Dokumentace výčtových hodnot"; } ////////////////////////////////////////////////////////////////////////// // new since 1.5.4 (mainly for Fortran) ////////////////////////////////////////////////////////////////////////// - + /*! header that is put before the list of member subprograms (Fortran). */ virtual QCString trMemberFunctionDocumentationFortran() { return "Dokumentace členských funkcí/podprogramů"; } - /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ virtual QCString trCompoundListFortran() { return "Seznam datových typů"; } @@ -1647,18 +1648,18 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 } result+="složek datových typů"; result+=" s odkazy na "; - if (!extractAll) + if (!extractAll) { result+="dokumentaci datové struktury pro každou složku:"; } - else + else { result+="příslušné datové typy:"; } return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * annotated compound index (Fortran). */ virtual QCString trCompoundIndexFortran() @@ -1670,24 +1671,24 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trTypeDocumentation() { return "Dokumentace k datovým typům"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) subprograms (Fortran). */ virtual QCString trSubprograms() { return "Funkce/podprogramy"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for subprograms (Fortran) */ virtual QCString trSubprogramDocumentation() { return "Dokumentace funkce/podprogramu"; } - /*! This is used in the documentation of a file/namespace/group before + /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds (Fortran) */ virtual QCString trDataTypes() { return "Datové typy"; } - + /*! used as the title of page containing all the index of all modules (Fortran). */ virtual QCString trModulesList() { return "Seznam modulů"; } @@ -1726,46 +1727,46 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 virtual QCString trModuleReference(const char *namespaceName) { QCString result="Dokumentace modulu "; - result += namespaceName; + result += namespaceName; return result; } - + /*! This is put above each page as a link to all members of modules. (Fortran) */ virtual QCString trModulesMembers() { return "Části modulu"; } /*! This is an introduction to the page with all modules members (Fortran) */ virtual QCString trModulesMemberDescription(bool extractAll) - { + { QCString result="Následuje seznam všech "; if (!extractAll) result+="dokumentovaných "; result+="částí modulů s odkazy "; - if (extractAll) + if (extractAll) { result+="na dokumentaci modulu pro danou část:"; } - else + else { result+="na moduly, ke kterým část patří:"; } return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all modules (Fortran). */ virtual QCString trModulesIndex() { return "Rejstřík modulů"; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trModule(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Modul" : "modul")); if (!singular) result+="y"; - return result; + return result; } /*! This is put at the bottom of a module documentation page and is * followed by a list of files that were used to generate the page. @@ -1786,29 +1787,29 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 case ClassDef::Exception: result+="k této výjimce"; break; } result+=" byla vygenerována z "; - if (single) result+="následujícího souboru:"; + if (single) result+="následujícího souboru:"; else result+="následujících souborů:"; return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trType(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Typ" : "typ")); if (!singular) result+="y"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trSubprogram(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Podprogram" : "podprogram")); if (!singular) result+="y"; - return result; + return result; } /*! C# Type Contraint list */ @@ -1879,7 +1880,7 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 return (QCString)"Vkládá (include) soubor z "+name; } - /** Compiles a date string. + /** Compiles a date string. * @param year Year in 4 digits * @param month Month of the year: 1=January * @param day Day of the Month: 1..31 @@ -1921,6 +1922,48 @@ class TranslatorCzech : public TranslatorAdapter_1_8_0 /*! Header for the graph showing the directory dependencies */ virtual QCString trDirDepGraph(const char *name) { return QCString("Graf závislosti na adresářích pro ")+name+":"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "úroveň detailů"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametry šablon"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "a "+number+" další(ch)..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "Dokumentace pro tento výčet byla generována z "; + if (single) + result += "následujícího souboru:"; + else + result += "následujících souborů:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return "Reference k výčtu "+QCString(name); } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" dědí se z "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Další zděděné členy"; } + +////////////////////////////////////////////////////////////////////////// }; #endif // TRANSLATOR_CZ_H diff --git a/src/translator_de.h b/src/translator_de.h index ed28450..28e70fe 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -123,13 +123,17 @@ // - Changed file encoding to utf-8, adapted idLanguageCharset() // - New German orthography (ngerman) is now default in LaTeX // +// 2012/04/11 Peter Grotrian +// - Updated for "new since 1.8.0" version +// - Some small corrections +// // Todo: // - see FIXME #ifndef TRANSLATOR_DE_H #define TRANSLATOR_DE_H -class TranslatorGerman : public TranslatorAdapter_1_8_0 +class TranslatorGerman : public Translator { public: @@ -222,11 +226,11 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 /*! put after an enum name in the list of all members */ virtual QCString trEnumName() - { return "enum Bezeichner"; } + { return "enum-Bezeichner"; } /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() - { return "enum Wert"; } + { return "enum-Wert"; } /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() @@ -950,7 +954,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 /*! Text for the \\invariant command */ virtual QCString trInvariant() { - return "Invariant"; + return "Invariante"; } /*! Text shown before a multi-line variable/enum initialization */ @@ -1029,7 +1033,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 virtual QCString trStaticProtectedAttribs() { - return "Statische geschützte Attribute"; + return "Statische, geschützte Attribute"; } virtual QCString trPrivateTypes() @@ -1044,7 +1048,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 virtual QCString trStaticPrivateAttribs() { - return "Statische private Attribute"; + return "Statische, private Attribute"; } ////////////////////////////////////////////////////////////////////////// @@ -1170,8 +1174,8 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 "Pfeil stehen die Variable(n), mit deren Hilfe auf die Struktur oder " "Klasse an der Pfeilspitze zugegriffen werden kann.</li>\n" "<li>Ein gestrichelter gelber Pfeil kennzeichnet eine Verknüpfung " - "zwischen einer Template Instanz und der Template Klasse von welcher " - "es abstammt. Neben dem Pfeil sind die Template Parameter aufgeführt.</li>\n" + "zwischen einer Template-Instanz und der Template-Klasse von welcher " + "es abstammt. Neben dem Pfeil sind die Template-Parameter aufgeführt.</li>\n" "</ul>\n"; } @@ -1531,7 +1535,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 /*! Put in front of the call graph for a function. */ virtual QCString trCallGraph() { - return "Hier ist ein Graph der zeigt, was diese Funktion aufruft:"; + return "Hier ist ein Graph, der zeigt, was diese Funktion aufruft:"; } ////////////////////////////////////////////////////////////////////////// @@ -1670,7 +1674,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() - { return "Enumerator-Dokumentation"; } + { return "Dokumentation der Aufzählungswerte"; } ////////////////////////////////////////////////////////////////////////// // new since 1.5.4 (mainly for Fortran) @@ -1981,6 +1985,47 @@ class TranslatorGerman : public TranslatorAdapter_1_8_0 virtual QCString trDirDepGraph(const char *name) { return QCString("Diagramm der Verzeichnisabhängigkeiten für ")+name+":"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "Detailebene"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Template-Parameter"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "und "+number+" mehr ..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "Die Dokumentation für diesen enum wurde aus "; + if (single) + result += "der folgenden Datei"; + else + result += "den folgenden Dateien"; + result+=" generiert:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return QCString(name)+" Enum-Referenz"; } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" geerbt von "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Weitere Geerbte Elemente"; } + }; #endif diff --git a/src/translator_eo.h b/src/translator_eo.h index c273791..25d15fe 100644 --- a/src/translator_eo.h +++ b/src/translator_eo.h @@ -1,12 +1,12 @@ /****************************************************************************** * - * + * * * Copyright (C) 1997-2012 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its - * documentation under the terms of the GNU General Public License is hereby - * granted. No representations are made about the suitability of this software + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * @@ -14,13 +14,13 @@ * input used in their production; they are not affected by this license. * */ - + /* Tradukita kaj ĝisdatigata de Ander Martinez. */ #ifndef TRANSLATOR_EO_H #define TRANSLATOR_EO_H -/*! +/*! When defining a translator class for the new language, follow the description in the documentation. One of the steps says that you should copy the translator_en.h (this) file to your @@ -42,24 +42,24 @@ Translator class (by the local maintainer) when the localized translator is made up-to-date again. */ -class TranslatorEsperanto : public TranslatorAdapter_1_7_5 +class TranslatorEsperanto : public Translator { public: // --- Language control methods ------------------- - - /*! Used for identification of the language. The identification - * should not be translated. It should be replaced by the name + + /*! Used for identification of the language. The identification + * should not be translated. It should be replaced by the name * of the language in English using lower-case characters only - * (e.g. "czech", "japanese", "russian", etc.). It should be equal to + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to * the identification used in language.cpp. */ virtual QCString idLanguage() { return "esperanto"; } - - /*! Used to get the LaTeX command(s) for the language support. + + /*! Used to get the LaTeX command(s) for the language support. * This method should return string with commands that switch - * LaTeX to the desired language. For example + * LaTeX to the desired language. For example * <pre>"\\usepackage[german]{babel}\n" * </pre> * or @@ -67,7 +67,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 * "\\usepackage[latin2]{inputenc}\n" * "\\usepackage[T1]{fontenc}\n" * </pre> - * + * * The English LaTeX does not use such commands. Because of this * the empty string is returned in this implementation. */ @@ -99,30 +99,30 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! header that is put before the list of typedefs. */ virtual QCString trMemberTypedefDocumentation() { return "Dokumentado de la Membraj Tipodifinoj"; } - + /*! header that is put before the list of enumerations. */ virtual QCString trMemberEnumerationDocumentation() { return "Dokumentado de la Membraj Enumeracioj"; } - + /*! header that is put before the list of member functions. */ virtual QCString trMemberFunctionDocumentation() { return "Dokumentado de la Membraj Funkcioj"; } - + /*! header that is put before the list of member attributes. */ virtual QCString trMemberDataDocumentation() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Kampa Dokumentado"; + return "Kampa Dokumentado"; } else { - return "Dokumentado de la Membraj Datumoj"; + return "Dokumentado de la Membraj Datumoj"; } } /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() + virtual QCString trMore() { return "Pli..."; } /*! put in the class documentation */ @@ -140,81 +140,81 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! this is the remainder of the sentence after the class name */ virtual QCString trIncludingInheritedMembers() { return ", inkluzive ĉiujn hereditajn membrojn."; } - + /*! this is put at the author sections at the bottom of man pages. * parameter s is name of the project name. */ virtual QCString trGeneratedAutomatically(const char *s) { QCString result="Generita aŭtomate de Doxygen"; if (s) result+=(QCString)" por "+s; - result+=" el la fontkodo."; + result+=" el la fontkodo."; return result; } /*! put after an enum name in the list of all members */ virtual QCString trEnumName() { return "enum nomo"; } - + /*! put after an enum value in the list of all members */ virtual QCString trEnumValue() { return "enum valoro"; } - + /*! put after an undocumented member in the list of all members */ virtual QCString trDefinedIn() { return "difinita en"; } // quick reference sections - /*! This is put above each page as a link to the list of all groups of + /*! This is put above each page as a link to the list of all groups of * compounds or files (see the \\group command). */ virtual QCString trModules() { return "Moduloj"; } - + /*! This is put above each page as a link to the class hierarchy */ virtual QCString trClassHierarchy() { return "Klasa Hierarkio"; } - + /*! This is put above each page as a link to the list of annotated classes */ virtual QCString trCompoundList() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { return "Datumstruktoroj"; } else { - return "Klasaro"; + return "Klasaro"; } } - + /*! This is put above each page as a link to the list of documented files */ virtual QCString trFileList() { return "Dosieraro"; } /*! This is put above each page as a link to all members of compounds. */ virtual QCString trCompoundMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Datumkampoj"; + return "Datumkampoj"; } else { - return "Klasaj membroj"; + return "Klasaj membroj"; } } /*! This is put above each page as a link to all members of files. */ virtual QCString trFileMembers() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Mallokalaĵoj"; + return "Mallokalaĵoj"; } else { - return "Dosieraj Membroj"; + return "Dosieraj Membroj"; } } @@ -247,16 +247,16 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! This is an introduction to the annotated compound list. */ virtual QCString trCompoundListDescription() - { - + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Jen datumstrukturoj kun mallongaj priskriboj:"; + return "Jen datumstrukturoj kun mallongaj priskriboj:"; } else { return "Jen la klasoj, strukturoj, kunigoj kaj interfacoj " - "kun mallongaj priskriboj:"; + "kun mallongaj priskriboj:"; } } @@ -277,7 +277,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 result+="klasaj membroj"; } result+=" kun ligiloj al "; - if (!extractAll) + if (!extractAll) { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { @@ -288,7 +288,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 result+="la klasa dokumentado por ĉiu membro:"; } } - else + else { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { @@ -307,7 +307,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { QCString result="Jen listo de ĉiuj "; if (!extractAll) result+="dokumentitaj "; - + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { result+="funkcioj, variabloj, difinoj, enumeracioj kaj tipodifinoj"; @@ -317,9 +317,9 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 result+="dosieraj membroj"; } result+=" kun ligiloj al "; - if (extractAll) + if (extractAll) result+="la dosieroj al kiuj ili apartenas:"; - else + else result+="la dokumentado:"; return result; } @@ -336,43 +336,43 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trModulesDescription() { return "Jen listo de ĉiuj la moduloj:"; } - // index titles (the project name is prepended for these) + // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ virtual QCString trDocumentation() { return "Dokumentado"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ virtual QCString trModuleIndex() { return "Modula Indekso"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ virtual QCString trHierarchicalIndex() { return "Hierarkia Indekso"; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * annotated compound index. */ virtual QCString trCompoundIndex() { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { + { return "Datumstruktura Indekso"; } else { - return "Klasa Indekso"; + return "Klasa Indekso"; } } /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - virtual QCString trFileIndex() + virtual QCString trFileIndex() { return "Dosiera Indekso"; } /*! This is used in LaTeX as the title of the chapter containing @@ -385,14 +385,14 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 * the documentation of all classes, structs and unions. */ virtual QCString trClassDocumentation() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Datumstruktura Dokumentado"; + return "Datumstruktura Dokumentado"; } else { - return "Klasa Dokumentado"; + return "Klasa Dokumentado"; } } @@ -417,105 +417,105 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! This is used in LaTeX as the title of the document */ virtual QCString trReferenceManual() { return "Referenca Manlibro"; } - - /*! This is used in the documentation of a file as a header before the + + /*! This is used in the documentation of a file as a header before the * list of defines */ virtual QCString trDefines() { return "Difinoj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of function prototypes */ virtual QCString trFuncProtos() { return "Funkciaj Prototipoj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of typedefs */ virtual QCString trTypedefs() { return "Tipdifinoj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of enumerations */ virtual QCString trEnumerations() { return "Enumeracioj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) functions */ virtual QCString trFunctions() { return "Funkcioj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trVariables() { return "Variabloj"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) variables */ virtual QCString trEnumerationValues() { return "Enumeraciilo"; } - + /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ virtual QCString trDefineDocumentation() { return "Difina Dokumentado"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ virtual QCString trFunctionPrototypeDocumentation() { return "Dokumentado de Funkciaj Prototipoj"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ virtual QCString trTypedefDocumentation() { return "Tipdifina Dokumentado"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ virtual QCString trEnumerationTypeDocumentation() { return "Enumeracitipa Dokumentado"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ virtual QCString trFunctionDocumentation() { return "Funkcia Dokumentado"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ virtual QCString trVariableDocumentation() { return "Variabla Dokumentado"; } - /*! This is used in the documentation of a file/namespace/group before + /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds */ virtual QCString trCompounds() - { + { if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) { - return "Datumstrukturoj"; + return "Datumstrukturoj"; } else { - return "Klasoj"; + return "Klasoj"; } } - /*! This is used in the standard footer of each page and indicates when - * the page was generated + /*! This is used in the standard footer of each page and indicates when + * the page was generated */ virtual QCString trGeneratedAt(const char *date,const char *projName) - { + { QCString result=(QCString)"Generita la "+date; if (projName) result+=(QCString)" por "+projName; result+=(QCString)" de"; @@ -533,7 +533,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return (QCString)"Heredada diagramo por "+clName+":"; } - + /*! this text is generated when the \\internal command is used. */ virtual QCString trForInternalUseOnly() { return "Nur por ena uzado."; } @@ -565,7 +565,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! this text is generated when the \\exception command is used. */ virtual QCString trExceptions() { return "Esceptoj"; } - + /*! this text is used in the title page of a LaTeX document. */ virtual QCString trGeneratedBy() { return "Generita de"; } @@ -573,7 +573,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// - + /*! used as the title of page containing all the index of all namespaces. */ virtual QCString trNamespaceList() { return "Nomspacaro"; } @@ -592,17 +592,17 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 */ virtual QCString trFriends() { return "Amikoj"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 ////////////////////////////////////////////////////////////////////////// - + /*! used in the class documentation as a header before the list of all - * related classes + * related classes */ virtual QCString trRelatedFunctionDocumentation() { return "Dokumentado pri amikoj kaj rilatitaj funkcioj"; } - + ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 ////////////////////////////////////////////////////////////////////////// @@ -632,7 +632,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trFileReference(const char *fileName) { QCString result=fileName; - result+=" Dosiera referenco"; + result+=" Dosiera referenco"; return result; } @@ -643,7 +643,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 result+=" Nomspaca referenco"; return result; } - + virtual QCString trPublicMembers() { return "Publikaj Membraj Funkcioj"; } virtual QCString trPublicSlots() @@ -664,7 +664,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "Privataj Ingoj"; } virtual QCString trStaticPrivateMembers() { return "Statikaj Privataj Membraj Funkcioj"; } - + /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ @@ -673,23 +673,23 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 QCString result; int i; // the inherits list contain `numEntries' classes - for (i=0;i<numEntries;i++) + for (i=0;i<numEntries;i++) { // use generateMarker to generate placeholders for the class links! - result+=generateMarker(i); // generate marker for entry i in the list + result+=generateMarker(i); // generate marker for entry i in the list // (order is left to right) - + if (i!=numEntries-1) // not the last entry, so we need a separator { - if (i<numEntries-2) // not the fore last entry + if (i<numEntries-2) // not the fore last entry result+=", "; else // the fore last entry result+=", kaj "; } } - return result; + return result; } - + /*! used in class documentation to produce a list of base classes, * if class diagrams are disabled. */ @@ -706,7 +706,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 return "Heredita de "+trWriteList(numEntries)+"."; } - /*! used in member documentation blocks to produce a list of + /*! used in member documentation blocks to produce a list of * members that are hidden by this one. */ virtual QCString trReimplementedFromList(int numEntries) @@ -728,17 +728,17 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! This is an introduction to the page with all namespace members */ virtual QCString trNamespaceMemberDescription(bool extractAll) - { + { QCString result="Jen listo de ĉiuj "; if (!extractAll) result+="dokumentitaj "; result+="nomspacaj membroj kun ligiloj al "; - if (extractAll) + if (extractAll) result+="la nomspaca dokumentado de ĉiu membro:"; - else + else result+="la nomspacoj al kiuj ili apartenas:"; return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all namespaces. */ virtual QCString trNamespaceIndex() @@ -782,7 +782,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 case ClassDef::Exception: result+="escepto"; break; } result+=" generitas el la "; - if (single) result+="sekva dosiero:"; + if (single) result+="sekva dosiero:"; else result+="sekvaj dosieroj:"; return result; } @@ -806,7 +806,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trMainPage() { return "Ĉefa Paĝo"; } - /*! This is used in references to page that are put in the LaTeX + /*! This is used in references to page that are put in the LaTeX * documentation. It should be an abbreviation of the word page. */ virtual QCString trPageAbbreviation() @@ -851,7 +851,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! header that is put before the list of constructor/destructors. */ virtual QCString trConstructorDocumentation() { - return "Konstruila kaj Detruila Dokumentado"; + return "Konstruila kaj Detruila Dokumentado"; } /*! Used in the file documentation to point to the corresponding sources. */ virtual QCString trGotoSourceCode() @@ -908,7 +908,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 ////////////////////////////////////////////////////////////////////////// // new since 1.1.0 ////////////////////////////////////////////////////////////////////////// - + virtual QCString trNote() { return "Noto"; @@ -997,7 +997,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "De"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.1.5 ////////////////////////////////////////////////////////////////////////// @@ -1007,12 +1007,12 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "Diagrama Klarigeto"; } - /*! page explaining how the dot graph's should be interpreted + /*! page explaining how the dot graph's should be interpreted * The %A in the text below are to prevent link to classes called "A". */ virtual QCString trLegendDocs() { - return + return "Tiu ĉi paĝo klarigas kiel interpreti la diagramojn generitajn " "de doxygen.<p>\n" "Konsideru la sekvan ekzemplon:\n" @@ -1076,11 +1076,11 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "klarigeto"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a test item */ virtual QCString trTest() { @@ -1158,11 +1158,11 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "Valoro:"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.2.5 ////////////////////////////////////////////////////////////////////////// - + /*! Used as a marker that is put before a \\bug item */ virtual QCString trBug() { @@ -1178,9 +1178,9 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 // new since 1.2.6 ////////////////////////////////////////////////////////////////////////// - /*! Used as ansicpg for RTF file - * - * The following table shows the correlation of Charset name, Charset Value and + /*! Used as ansicpg for RTF file + * + * The following table shows the correlation of Charset name, Charset Value and * <pre> * Codepage number: * Charset Name Charset Value(hex) Codepage number @@ -1201,15 +1201,15 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 * GB2313_CHARSET 134 (x86) 936 * CHINESEBIG5_CHARSET 136 (x88) 950 * </pre> - * + * */ virtual QCString trRTFansicp() { return ""; } - - /*! Used as ansicpg for RTF fcharset + + /*! Used as ansicpg for RTF fcharset * \see trRTFansicp() for a table of possible values. */ virtual QCString trRTFCharSet() @@ -1222,82 +1222,82 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "Indekso"; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trClass(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Klaso" : "klaso")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trFile(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Dosiero" : "dosiero")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trNamespace(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Nomspaco" : "nomspaco")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trGroup(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Grupo" : "grupo")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trPage(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Paĝo" : "paĝo")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trMember(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Membro" : "membro")); if (!singular) result+="j"; - return result; + return result; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trGlobal(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Mallokalaĵo" : "mallokalaĵo")); if (!singular) result+="j"; - return result; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1307,10 +1307,10 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! This text is generated when the \\author command is used and * for the author section in man pages. */ virtual QCString trAuthor(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Aŭtoro" : "aŭtoro")); if (!singular) result+="j"; - return result; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1328,7 +1328,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 // new since 1.2.13 ////////////////////////////////////////////////////////////////////////// - /*! used in member documentation blocks to produce a list of + /*! used in member documentation blocks to produce a list of * members that are implemented by this one. */ virtual QCString trImplementedFromList(int numEntries) @@ -1360,8 +1360,8 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 // new since 1.2.17 ////////////////////////////////////////////////////////////////////////// - /*! Used as the header of the list of item that have been - * flagged deprecated + /*! Used as the header of the list of item that have been + * flagged deprecated */ virtual QCString trDeprecatedList() { @@ -1372,7 +1372,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 // new since 1.2.18 ////////////////////////////////////////////////////////////////////////// - /*! Used as a header for declaration section of the events found in + /*! Used as a header for declaration section of the events found in * a C# program */ virtual QCString trEvents() @@ -1392,43 +1392,43 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 /*! Used as a heading for a list of Java class types with package scope. */ virtual QCString trPackageTypes() - { + { return "Pakaĵaj Tipoj"; } - /*! Used as a heading for a list of Java class functions with package - * scope. + /*! Used as a heading for a list of Java class functions with package + * scope. */ virtual QCString trPackageMembers() - { + { return "Pakaĵaj Funkcioj"; } - /*! Used as a heading for a list of static Java class functions with + /*! Used as a heading for a list of static Java class functions with * package scope. */ virtual QCString trStaticPackageMembers() - { + { return "Statikaj Pakaĵaj Funkcioj"; } - /*! Used as a heading for a list of Java class variables with package + /*! Used as a heading for a list of Java class variables with package * scope. */ virtual QCString trPackageAttribs() - { + { return "Pakaĵaj Atributoj"; } - /*! Used as a heading for a list of static Java class variables with + /*! Used as a heading for a list of static Java class variables with * package scope. */ virtual QCString trStaticPackageAttribs() - { + { return "Statikaj Pakaĵaj Atributoj"; } - + ////////////////////////////////////////////////////////////////////////// // new since 1.3.1 ////////////////////////////////////////////////////////////////////////// - /*! Used in the quick index of a class/file/namespace member list page + /*! Used in the quick index of a class/file/namespace member list page * to link to the unfiltered list of all members. */ virtual QCString trAll() @@ -1445,9 +1445,9 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 // new since 1.3.3 ////////////////////////////////////////////////////////////////////////// - /*! When the search engine is enabled this text is put in the header - * of each page before the field where one can enter the text to search - * for. + /*! When the search engine is enabled this text is put in the header + * of each page before the field where one can enter the text to search + * for. */ virtual QCString trSearchForIndex() { @@ -1464,7 +1464,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 * text can be different depending on the number of documents found. * Inside the text you can put the special marker $num to insert * the number representing the actual number of search results. - * The @a numDocuments parameter can be either 0, 1 or 2, where the + * The @a numDocuments parameter can be either 0, 1 or 2, where the * value 2 represents 2 or more matches. HTML markup is allowed inside * the returned string. */ @@ -1478,13 +1478,13 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 { return "Trafita <b>unu</b> dokumenton kongruantan vian peton."; } - else + else { return "Trafitaj <b>$num</b> dokumentojn kongruantajn vian peton. " "Montriĝos plej bonaj kongruoj unue."; } } - /*! This string is put before the list of matched words, for each search + /*! This string is put before the list of matched words, for each search * result. What follows is the list of words that matched the query. */ virtual QCString trSearchMatches() @@ -1525,7 +1525,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trDirectories() { return "Dosierujoj"; } - /*! This returns a sentences that introduces the directory hierarchy. + /*! This returns a sentences that introduces the directory hierarchy. * and the fact that it is sorted alphabetically per level */ virtual QCString trDirDescription() @@ -1543,10 +1543,10 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 * (\a first_capital) and in sigular or plural form (\a singular). */ virtual QCString trDir(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Dosierujo" : "dosierujo")); if (!singular) result+="j"; - return result; + return result; } ////////////////////////////////////////////////////////////////////////// @@ -1573,7 +1573,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 return "Jen la vokdiagramo por tiu ĉi funkcio:"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ virtual QCString trEnumerationValueDocumentation() @@ -1582,12 +1582,12 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 ////////////////////////////////////////////////////////////////////////// // new since 1.5.4 (mainly for Fortran) ////////////////////////////////////////////////////////////////////////// - + /*! header that is put before the list of member subprograms (Fortran). */ virtual QCString trMemberFunctionDocumentationFortran() { return "Dokumentado de Membraj Funkcioj/Subrutinoj"; } - /*! This is put above each page as a link to the list of annotated data types (Fortran). */ + /*! This is put above each page as a link to the list of annotated data types (Fortran). */ virtual QCString trCompoundListFortran() { return "Datumtipa Listo"; } @@ -1609,18 +1609,18 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 } result+="datumtipaj membroj"; result+=" kun ligiloj al "; - if (!extractAll) + if (!extractAll) { result+="la datumstruktura dokumentado de ĉiu membro"; } - else + else { result+="la datumtipoj al kiuj ili apartenas:"; } return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * annotated compound index (Fortran). */ virtual QCString trCompoundIndexFortran() @@ -1632,24 +1632,24 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trTypeDocumentation() { return "Datumtipa Dokumentado"; } - /*! This is used in the documentation of a file as a header before the + /*! This is used in the documentation of a file as a header before the * list of (global) subprograms (Fortran). */ virtual QCString trSubprograms() { return "Funkcioj/Subrutinoj"; } - /*! This is used in the documentation of a file/namespace before the list + /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for subprograms (Fortran) */ virtual QCString trSubprogramDocumentation() { return "Funkcia/Subrutina Dokumentado"; } - /*! This is used in the documentation of a file/namespace/group before + /*! This is used in the documentation of a file/namespace/group before * the list of links to documented compounds (Fortran) */ virtual QCString trDataTypes() { return "Datumtipoj"; } - + /*! used as the title of page containing all the index of all modules (Fortran). */ virtual QCString trModulesList() { return "Modula Listo"; } @@ -1687,46 +1687,46 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 virtual QCString trModuleReference(const char *namespaceName) { QCString result=namespaceName; - result+=" Modula Referenco"; + result+=" Modula Referenco"; return result; } - + /*! This is put above each page as a link to all members of modules. (Fortran) */ virtual QCString trModulesMembers() { return "Modulaj Membroj"; } /*! This is an introduction to the page with all modules members (Fortran) */ virtual QCString trModulesMemberDescription(bool extractAll) - { + { QCString result="Jen listo de ĉiuj "; if (!extractAll) result+="dokumentitaj "; result+="modulaj membroj kun ligiloj al la "; - if (extractAll) + if (extractAll) { result+="modula dokumentado de ĉiu membro:"; } - else + else { result+="moduloj al kiuj ili apartenas:"; } return result; } - /*! This is used in LaTeX as the title of the chapter with the + /*! This is used in LaTeX as the title of the chapter with the * index of all modules (Fortran). */ virtual QCString trModulesIndex() { return "Indekso de Moduloj"; } - + /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trModule(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Modulo" : "modulo")); if (!singular) result+="j"; - return result; + return result; } /*! This is put at the bottom of a module documentation page and is * followed by a list of files that were used to generate the page. @@ -1751,24 +1751,24 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trType(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Tipo" : "tipo")); if (!singular) result+="j"; - return result; + return result; } /*! This is used for translation of the word that will possibly - * be followed by a single name or by a list of names + * be followed by a single name or by a list of names * of the category. */ virtual QCString trSubprogram(bool first_capital, bool singular) - { + { QCString result((first_capital ? "Subprogramo" : "subprogramo")); if (!singular) result+="j"; - return result; + return result; } /*! C# Type Constraint list */ @@ -1839,7 +1839,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 return (QCString)"Inkluzivas dosieron en "+name; } - /** Compiles a date string. + /** Compiles a date string. * @param year Year in 4 digits * @param month Month of the year: 1=January * @param day Day of the Month: 1..31 @@ -1856,7 +1856,7 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 static const char *days[] = { "lundo","mardo","merkredo", "ĵaŭdo","vendredo","sabato", "dimanĉo" }; - + static const char *months[] = { "Januaro", "Februaro", "Marto", "Aprilo", "Majo", "Junio", "Julio", "Aŭgusto", "Septembro", @@ -1874,6 +1874,61 @@ class TranslatorEsperanto : public TranslatorAdapter_1_7_5 return sdate; } +////////////////////////////////////////////////////////////////////////// +// new since 1.7.5 +////////////////////////////////////////////////////////////////////////// + + /*! Header for the page with bibliographic citations */ + virtual QCString trCiteReferences() + { return "Bibliografiaj Referencoj"; } + + /*! Text for copyright paragraph */ + virtual QCString trCopyright() + { return "Kopirajto"; } + + /*! Header for the graph showing the directory dependencies */ + virtual QCString trDirDepGraph(const char *name) + { return QCString("Dosieruja dependa diagramo por ")+name+":"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "detala nivelo"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametroj de ŝablonoj"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "kaj "+number+" pli..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "La dokumentaro por tiu ĉi enum estis generita el la sekva dosiero"; + if (!single) result += "s"; + result+=":"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return QCString(name)+" Enum Referenco"; } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" heredita el "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Kromaj Hereditaj Membroj"; } + +////////////////////////////////////////////////////////////////////////// }; diff --git a/src/translator_es.h b/src/translator_es.h index eebfddd..506a5d8 100644 --- a/src/translator_es.h +++ b/src/translator_es.h @@ -15,7 +15,10 @@ * */ -/* +#ifndef TRANSLATOR_ES_H +#define TRANSLATOR_ES_H + +/*! * translator_es.h modified by Lucas Cruz (7-julio-2000) * Some notes: * - It's posible that some sentences haven't got meaning because @@ -26,12 +29,11 @@ * Updated to 1.5.8 by Bartomeu Creus Navarro (10-abril-2009) * Updated to 1.6.3 by Bartomeu Creus Navarro (3-marzo-2010) * Updated to 1.6.4 by Bartomeu Creus Navarro (26-mayo-2010) [(16-jun-2010) grabado en UTF-8] + * Updated to 1.8.0 by Bartomeu Creus Navarro (11-abril-2012) */ -#ifndef TRANSLATOR_ES_H -#define TRANSLATOR_ES_H -class TranslatorSpanish : public TranslatorAdapter_1_7_5 +class TranslatorSpanish : public Translator { public: @@ -1929,6 +1931,63 @@ class TranslatorSpanish : public TranslatorAdapter_1_7_5 return sdate; } +////////////////////////////////////////////////////////////////////////// +// new since 1.7.5 +////////////////////////////////////////////////////////////////////////// + + /*! Header for the page with bibliographic citations */ + virtual QCString trCiteReferences() + { return "Referencias bibliográficas"; } + + /*! Text for copyright paragraph */ + virtual QCString trCopyright() + { return "Copyright"; } + + /*! Header for the graph showing the directory dependencies */ + virtual QCString trDirDepGraph(const char *name) + { return QCString("Gráfico de dependencias de directorios para ")+name+":"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "detalle nivel"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parámetros del template"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "y "+number+" más..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "La documentación para este enum ha sido generada a partir de"; + if (single) + result += "l siguiente fichero:"; + else + result += " los siguientes ficheros:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return QCString("Referencia del enum ") + QCString(name); } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" heredados desde "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Otros miembros heredados"; } + +////////////////////////////////////////////////////////////////////////// }; diff --git a/src/translator_hr.h b/src/translator_hr.h index 88bf6f5..b875868 100644 --- a/src/translator_hr.h +++ b/src/translator_hr.h @@ -78,10 +78,12 @@ // // 2010/05/27 // - Updates for 1.6.3 +// 2012/04/12 +// - Updates for 1.8.0 #ifndef TRANSLATOR_HR_H #define TRANSLATOR_HR_H -class TranslatorCroatian : public TranslatorAdapter_1_8_0 +class TranslatorCroatian : public Translator { private: @@ -1565,6 +1567,46 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_0 virtual QCString trDirDepGraph(const char *name) { return QCString("Direktoriji o kojima ovisi ")+name+":"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "razina detalja"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametri predloška"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "i još "+number+" ..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "Dokumatacija za ovu enumeraciju je generirana iz "; + if (!single) result += "datoteka:"; + else result += "datoteke:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return "Opis enumeracije " + QCString(name); } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" naslijeđeni od "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Dodatni naslijeđeni članovi"; } + +////////////////////////////////////////////////////////////////////////// + }; #endif diff --git a/src/translator_it.h b/src/translator_it.h index 037d408..9ef1d22 100644 --- a/src/translator_it.h +++ b/src/translator_it.h @@ -19,6 +19,7 @@ * * Revision history * + * 2012/04: updated translation of new items used since version 1.7.5 and 1.8.0 * 2010/08: updated translation of new items used since version 1.6.0 and 1.6.3 * completely reviewed the translation in the trLegendDocs() function * corrected some typos all around @@ -84,7 +85,7 @@ #ifndef TRANSLATOR_IT_H #define TRANSLATOR_IT_H -class TranslatorItalian : public TranslatorAdapter_1_7_5 +class TranslatorItalian : public Translator { public: @@ -1847,7 +1848,63 @@ class TranslatorItalian : public TranslatorAdapter_1_7_5 return sdate; } +////////////////////////////////////////////////////////////////////////// +// new since 1.7.5 +////////////////////////////////////////////////////////////////////////// + + /*! Header for the page with bibliographic citations */ + virtual QCString trCiteReferences() + { return "Riferimenti bibliografici"; } + + /*! Text for copyright paragraph */ + virtual QCString trCopyright() + { return "Copyright"; } + + /*! Header for the graph showing the directory dependencies */ + virtual QCString trDirDepGraph(const char *name) + { return QCString("Grafo di dipendenza delle directory per ")+name+":"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "livello di dettaglio"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametri dei template"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "e altri "+number+" ..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "La documentazione per questo tipo enumerato è stata generata"; + if (!single) result += " dai seguenti"; + else result += " dal seguente"; + result+=" file:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return QCString("Riferimenti per il tipo enumerato ") + QCString(name); } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" ereditati da "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Altri membri ereditati"; } + }; #endif + diff --git a/src/translator_pl.h b/src/translator_pl.h index 038bd5e..6dd8f0e 100644 --- a/src/translator_pl.h +++ b/src/translator_pl.h @@ -15,12 +15,14 @@ * * Polish translation was updated to version 1.3.9 by * Piotr Kaminski (Piotr.Kaminski@ctm.gdynia.pl) + * Polish translation was updated since version 1.4.6 by + * Krzysztof Kral (krzysztof.kral@gmail.com) */ #ifndef TRANSLATOR_PL_H #define TRANSLATOR_PL_H -class TranslatorPolish : public TranslatorAdapter_1_6_3 +class TranslatorPolish : public Translator { public: @@ -1799,6 +1801,116 @@ class TranslatorPolish : public TranslatorAdapter_1_6_3 return "Brak dopasowań"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.6.3 (missing items for the directory pages) +////////////////////////////////////////////////////////////////////////// + + /*! introduction text for the directory dependency graph */ + virtual QCString trDirDependency(const char *name) + { + return (QCString)"Wykres zależności katalogu dla "+name; + } + + /*! when clicking a directory dependency label, a page with a + * table is shown. The heading for the first column mentions the + * source file that has a relation to another file. + */ + virtual QCString trFileIn(const char *name) + { + return (QCString)"Plik w "+name; + } + + /*! when clicking a directory dependency label, a page with a + * table is shown. The heading for the second column mentions the + * destination file that is included. + */ + virtual QCString trIncludesFileIn(const char *name) + { + return (QCString)"Zawiera plik w "+name; + } + + /** Compiles a date string. + * @param year Year in 4 digits + * @param month Month of the year: 1=January + * @param day Day of the Month: 1..31 + * @param dayOfWeek Day of the week: 1=Monday..7=Sunday + * @param hour Hour of the day: 0..23 + * @param minutes Minutes in the hour: 0..59 + * @param seconds Seconds within the minute: 0..59 + * @param includeTime Include time in the result string? + */ + virtual QCString trDateTime(int year,int month,int day,int dayOfWeek, + int hour,int minutes,int seconds, + bool includeTime) + { + static const char *days[] = { "Pn","Wt","Śr","Cz","Pt","So","N" }; + static const char *months[] = { "sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru" }; + QCString sdate; + sdate.sprintf("%s, %d %s %d",days[dayOfWeek-1],day,months[month-1],year); + if (includeTime) + { + QCString stime; + stime.sprintf(" %.2d:%.2d:%.2d",hour,minutes,seconds); + sdate+=stime; + } + return sdate; + } + +////////////////////////////////////////////////////////////////////////// +// new since 1.7.5 +////////////////////////////////////////////////////////////////////////// + + /*! Header for the page with bibliographic citations */ + virtual QCString trCiteReferences() + { return "Odwołania do literatury"; } + + /*! Text for copyright paragraph */ + virtual QCString trCopyright() + { return "Copyright"; } + + /*! Header for the graph showing the directory dependencies */ + virtual QCString trDirDepGraph(const char *name) + { return QCString("Wykres zależności katalogu dla ")+name+":"; } + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "poziom szczegółów"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametry Szablonu"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { return "i "+number+" więcej..."; } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "Dokumentacja dla tego wyliczenia została wygenerowana z plik"; + if (single) result+="u:"; else result+="ów:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { QCString result="Dokumentacja wyliczenia "; result+=name; return result; } + + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" dziedziczone z "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Dodatkowe Dziedziczone Składowe"; } + +////////////////////////////////////////////////////////////////////////// + }; #endif diff --git a/src/translator_sk.h b/src/translator_sk.h index e5c0cae..5881c88 100644 --- a/src/translator_sk.h +++ b/src/translator_sk.h @@ -17,6 +17,7 @@ // Updates: // -------- +// 2012/04/18 - Updates for "new since 1.8.0". // 2011/07/28 - Updates for "new since 1.7.5". // 2010/06/04 - big leap from 1.2.18 to 1.6.3+ // @@ -29,7 +30,7 @@ #ifndef TRANSLATOR_SK_H #define TRANSLATOR_SK_H -class TranslatorSlovak : public TranslatorAdapter_1_8_0 +class TranslatorSlovak : public Translator { public: // --- Language control methods ------------------- @@ -1848,7 +1849,52 @@ class TranslatorSlovak : public TranslatorAdapter_1_8_0 virtual QCString trDirDepGraph(const char *name) { return QCString("Graf závislosti na priečinkoch pre ")+name+":"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.8.0 +////////////////////////////////////////////////////////////////////////// + + /*! Detail level selector shown for hierarchical indices */ + virtual QCString trDetailLevel() + { return "úroveň detailov"; } + + /*! Section header for list of template parameters */ + virtual QCString trTemplateParameters() + { return "Parametry šablón"; } + + /*! Used in dot graph when UML_LOOK is enabled and there are many fields */ + virtual QCString trAndMore(const QCString &number) + { + QCString result("a " + number + " ďaľší"); + if (atoi(number) >= 5) + result += "ch"; + return result + "..."; + } + + /*! Used file list for a Java enum */ + virtual QCString trEnumGeneratedFromFiles(bool single) + { QCString result = "Dokumentácia pre tuto enumeráciu bola generovaná z "; + if (single) + result += "nasledujúceho súboru:"; + else + result += "nasledujúcich súborov:"; + return result; + } + + /*! Header of a Java enum page (Java enums are represented as classes). */ + virtual QCString trEnumReference(const char *name) + { return "Referencia k enumerácii "+QCString(name); } + /*! Used for a section containing inherited members */ + virtual QCString trInheritedFrom(const char *members,const char *what) + { return QCString(members)+" dedí sa z "+what; } + + /*! Header of the sections with inherited members specific for the + * base class(es) + */ + virtual QCString trAdditionalInheritedMembers() + { return "Ďaľšie zdedené členy"; } + +////////////////////////////////////////////////////////////////////////// }; #endif // TRANSLATOR_SK_H diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp index 605a659..04c1135 100644 --- a/src/vhdldocgen.cpp +++ b/src/vhdldocgen.cpp @@ -532,8 +532,6 @@ void VhdlDocGen::writeInlineClassLink(const ClassDef* cd ,OutputList& ol) type+=" >> "; ol.disable(OutputGenerator::RTF); ol.disable(OutputGenerator::Man); - ol.lineBreak(); - ol.lineBreak(); if (ii==VhdlDocGen::PACKAGE_BODY) { @@ -1403,7 +1401,6 @@ void VhdlDocGen::writeVHDLTypeDocumentation(const MemberDef* mdef, const Definit ol.docify(" "); ol.startBold(); - //ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),0,mdef->typeString()); writeLink(memdef,ol); ol.endBold(); ol.docify(" "); @@ -1421,11 +1418,8 @@ void VhdlDocGen::writeVHDLTypeDocumentation(const MemberDef* mdef, const Definit if (mdef->isVariable()) { - //ol.docify(mdef->name().data()); - // QCString ttype; if (VhdlDocGen::isConstraint(mdef)) { - writeLink(mdef,ol); ol.docify(" "); @@ -1436,8 +1430,11 @@ void VhdlDocGen::writeVHDLTypeDocumentation(const MemberDef* mdef, const Definit else { writeLink(mdef,ol); + if (VhdlDocGen::isLibrary(mdef) || VhdlDocGen::isPackage(mdef)) + { + return; + } ol.docify(" "); - // ttype=mdef->typeString(); } // QCString largs=mdef->argsString(); @@ -1793,7 +1790,7 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol, } bool htmlOn = ol.isEnabled(OutputGenerator::Html); - if (htmlOn && Config_getBool("HTML_ALIGN_MEMBERS") && !ltype.isEmpty()) + if (htmlOn && /*Config_getBool("HTML_ALIGN_MEMBERS") &&*/ !ltype.isEmpty()) { ol.disable(OutputGenerator::Html); } @@ -2676,24 +2673,28 @@ void VhdlDocGen::computeVhdlComponentRelations() static void addInstance(ClassDef* classEntity, ClassDef* ar, ClassDef *cd , Entry *cur,ClassDef* /*archBind*/) { - if (classEntity==cd) return; - QCString bName=classEntity->name(); - //bName+="::"+cur->name; - cd->insertBaseClass(classEntity,bName,Public,Normal,0); + QCString bName=classEntity->name(); + //printf("addInstance %s to %s\n", cd->name().data(), classEntity->name().data()); + QCString n1=cur->type; - QCString n1=cur->name+"::"+cur->type; - // n1+="::"+cur->name; - // classEntity->setName(n1.data()); - // classEntity->_setSymbolName(n1.data()); + if (!cd->isBaseClass(classEntity, true, 0)) + { + cd->insertBaseClass(classEntity,n1,Public,Normal,0); + } + else + { + VhdlDocGen::addBaseClass(cd,classEntity); + } - // if (archBind) - // cd->insertSubClass(archBind,Public,Normal,0); - // else - classEntity->insertSubClass(cd,Public,Normal,0); + if (!VhdlDocGen::isSubClass(classEntity,cd,true,0)) + { + classEntity->insertSubClass(cd,Public,Normal,0); + } if (ar==0) return; + QCString uu=cur->name; MemberDef *md=new MemberDef( ar->getDefFileName(), cur->startLine, @@ -2702,16 +2703,30 @@ static void addInstance(ClassDef* classEntity, ClassDef* ar, MemberDef::Variable, 0, 0); + + if (ar->getOutputFileBase()) + { + TagInfo tg; + tg.anchor = 0; + tg.fileName = ar->getOutputFileBase(); + tg.tagName = 0; + md->setTagInfo(&tg); + } + + //fprintf(stderr,"\n%s%s%s\n",md->name().data(),cur->brief.data(),cur->doc.data()); + md->setLanguage(SrcLangExt_VHDL); md->setMemberSpecifiers(VhdlDocGen::INSTANTIATION); md->setBriefDescription(cur->brief,cur->briefFile,cur->briefLine); md->setBodySegment(cur->startLine,-1) ; + md->setDocumentation(cur->doc.data(),cur->docFile.data(),cur->docLine); FileDef *fd=ar->getFileDef(); md->setBodyDef(fd); ar->insertMember(md); - // printf("\nMemberreference [%p]",md); + // printf("\nMemberreference [%p]",md); } + void VhdlDocGen::writeRecorUnit(QCString & largs,OutputList& ol ,const MemberDef *mdef) { QStringList ql=QStringList::split("#",largs,FALSE); @@ -2776,3 +2791,73 @@ void VhdlDocGen::writeCodeFragment(OutputList& ol,int start, QCString & codeFrag ol.endCodeFragment(); } +bool VhdlDocGen::isSubClass(ClassDef* cd,ClassDef *scd, bool followInstances,int level) +{ + bool found=FALSE; + //printf("isBaseClass(cd=%s) looking for %s\n",name().data(),bcd->name().data()); + if (level>255) + { + err("Possible recursive class relation while inside %s and looking for %s\n",qPrint(cd->name()),qPrint(scd->name())); + abort(); + return FALSE; + } + + if (cd->subClasses()) + { + // Beware: trying to optimise the iterator away using ->first() & ->next() + // causes bug 625531 + BaseClassListIterator bcli(*cd->subClasses()); + for ( ; bcli.current() && !found ; ++bcli) + { + ClassDef *ccd=bcli.current()->classDef; + if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster(); + //printf("isSubClass() subclass %s\n",ccd->name().data()); + if (ccd==scd) + { + found=TRUE; + } + else + { + if (level <256) + { + found=ccd->isBaseClass(scd,followInstances,level+1); + } + } + } + } + return found; +} + +void VhdlDocGen::addBaseClass(ClassDef* cd,ClassDef *ent) +{ + if (cd->baseClasses()) + { + BaseClassListIterator bcli(*cd->baseClasses()); + for ( ; bcli.current() ; ++bcli) + { + ClassDef *ccd=bcli.current()->classDef; + if (ccd==ent) + { + QCString n = bcli.current()->usedName; + int i = n.find('('); + if(i<0) + { + bcli.current()->usedName.append("(2)"); + return; + } + static QRegExp reg("[0-9]+"); + QCString s=n.left(i); + QCString r=n.right(n.length()-i); + QCString t=r; + VhdlDocGen::deleteAllChars(r,')'); + VhdlDocGen::deleteAllChars(r,'('); + r.setNum(r.toInt()+1); + t.replace(reg,r.data()); + s.append(t.data()); + bcli.current()->usedName=s; + bcli.current()->templSpecifiers=t; + } + } + } +} + diff --git a/src/vhdldocgen.h b/src/vhdldocgen.h index ec51f6a..19d1a9b 100644 --- a/src/vhdldocgen.h +++ b/src/vhdldocgen.h @@ -97,6 +97,8 @@ class VhdlDocGen static QCString convertFileNameToClassName(QCString name); // --- used by vhdlscanner.l ----------- + static bool isSubClass(ClassDef* cd,ClassDef *scd, bool followInstances,int level); + static QCString getIndexWord(const char* ,int index); static bool foundInsertedComponent(const QCString& name,Entry* root); static bool deleteCharRev(QCString &s,char c); @@ -272,6 +274,7 @@ class VhdlDocGen static QCString parseForConfig(QCString & entity,QCString & arch); static QCString parseForBinding(QCString & entity,QCString & arch); + static void addBaseClass(ClassDef* cd,ClassDef *ent); private: static void findAllArchitectures(QList<QCString>& ql,const ClassDef *cd); diff --git a/src/vhdlparser.y b/src/vhdlparser.y index 8d6280d..d4223c0 100644 --- a/src/vhdlparser.y +++ b/src/vhdlparser.y @@ -115,7 +115,6 @@ static bool isFuncProcProced(); static void initEntry(Entry *e); static void addProto(const char *s1,const char *s2,const char *s3, const char *s4,const char *s5,const char *s6); -static bool findInstant(QCString inst); static void createFunction(const QCString &impure,int spec, const QCString &fname); @@ -2115,12 +2114,13 @@ static void addCompInst(char *n, char* instName, char* comp,int iLine) if (lastCompound) { current->args=lastCompound->name; - if (!findInstant(current->type)) + if (true) // !findInstant(current->type)) { initEntry(current); instFiles.append(new Entry(*current)); } - current->reset(); + delete current; + current=new Entry; } else { @@ -2205,6 +2205,7 @@ static void initEntry(Entry *e) { e->fileName = s_str.fileName; e->lang=SrcLangExt_VHDL; + isVhdlDocPending(); initGroupInfo(e); } @@ -2250,21 +2251,6 @@ static void addProto(const char *s1,const char *s2,const char *s3, } } -static bool findInstant(QCString inst) -{ - QListIterator<Entry> eli(instFiles); - Entry *cur; - - for (eli.toFirst();(cur=eli.current());++eli) - { - if (stricmp(inst.data(),cur->type.data())==0) - { - return TRUE; - } - } - return FALSE; -}//findInst - static void createFunction(const QCString &impure,int spec, const QCString &fname) { diff --git a/src/vhdlscanner.h b/src/vhdlscanner.h index bca6460..fe75539 100644 --- a/src/vhdlscanner.h +++ b/src/vhdlscanner.h @@ -128,4 +128,5 @@ QList<Entry> & getVhdlInstList(); // returns the list of found configurations QList<ConfNode>& getVhdlConfiguration(); +void isVhdlDocPending(); #endif diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l index 9ca68db..d757ea2 100644 --- a/src/vhdlscanner.l +++ b/src/vhdlscanner.l @@ -108,10 +108,18 @@ static void handleCommentBlock(const QCString &doc,bool brief); static void mapLibPackage(const Entry* ce); static Entry* getEntryAtLine(const Entry* ce,int line); static bool addLibUseClause(const QCString &type); - -static bool varr=false; +static Entry* oldEntry; +static bool varr=FALSE; static QCString varName; +static struct +{ + QCString doc; + bool brief; + bool pending; + int iDocLine; +} str_doc; + #define YY_NEVER_INTERACTIVE 1 #define YY_USER_ACTION num_chars += vhdlScanYYleng; @@ -537,7 +545,7 @@ BR [ \t\n\r] . { /* unknown characters */ } -<*>{B}*"--!"[^{}\n][^\n]*\n/{B}*"--!" { // multi line comment +<*>{BR}*"--!"[^{}\n][^\n]*\n/{B}*"--!" { // multi line comment if (iDocLine==-1) iDocLine=yyLineNr; QCString qc(vhdlScanYYtext); int len=qc.contains('\n')+yyLineNr-1; @@ -572,7 +580,7 @@ BR [ \t\n\r] if (index>0) { startCodeBlock(index); - doxComment=true; + doxComment=TRUE; } lineCount(); BEGIN(Comment); @@ -596,7 +604,7 @@ BR [ \t\n\r] } strComment.resize(0);; unput(*vhdlScanYYtext); - doxComment=false; + doxComment=FALSE; BEGIN(g_lastCommentContext); } @@ -745,7 +753,7 @@ bool VHDLLanguageScanner::needsPreprocessing(const QCString & /*extension*/) void VHDLLanguageScanner::parsePrototype(const char *text) { varName=text; - varr=true; + varr=TRUE; } // do parsing @@ -914,12 +922,28 @@ static bool addLibUseClause(const QCString &type) static void handleCommentBlock(const QCString &doc,bool brief) { int position=0; + + // empty comment --! + if (doc.isEmpty()) return; + bool needsEntry=FALSE; Protection protection=Public; int lineNr = iDocLine; Entry* current=getCurrentVhdlEntry(); + if (oldEntry==current) + { + //printf("\n find pending message < %s > at line: %d \n ",doc.data(),iDocLine); + str_doc.doc=doc; + str_doc.iDocLine=iDocLine; + str_doc.brief=brief; + str_doc.pending=TRUE; + return; + } + + oldEntry=current; + if (brief) current->briefLine = iDocLine; else @@ -948,7 +972,7 @@ static void handleCommentBlock(const QCString &doc,bool brief) { if(varr) { - varr=false; + varr=FALSE; current->name=varName; current->section=Entry::VARIABLEDOC_SEC; varName=""; @@ -988,4 +1012,13 @@ int getParsedLine(int object) return lineIndex [object]; } +void isVhdlDocPending() +{ + if (!str_doc.pending) + return; + iDocLine=str_doc.iDocLine; + handleCommentBlock(str_doc.doc,str_doc.brief); + iDocLine=-1; + str_doc.pending=FALSE; +} diff --git a/src/xmldocvisitor.cpp b/src/xmldocvisitor.cpp index 3a79103..506a484 100644 --- a/src/xmldocvisitor.cpp +++ b/src/xmldocvisitor.cpp @@ -194,6 +194,11 @@ void XmlDocVisitor::visit(DocVerbatim *s) filter(s->text()); m_t << "</htmlonly>"; break; + case DocVerbatim::RtfOnly: + m_t << "<rtfonly>"; + filter(s->text()); + m_t << "</rtfonly>"; + break; case DocVerbatim::ManOnly: m_t << "<manonly>"; filter(s->text()); diff --git a/winbuild/Doxygen.vcproj b/winbuild/Doxygen.vcproj index 24f61c8..fd8a0a6 100644 --- a/winbuild/Doxygen.vcproj +++ b/winbuild/Doxygen.vcproj @@ -40,6 +40,7 @@ /> <Tool Name="Lex" + CommandLine="flex [AllOptions] [AdditionalOptions] [inputs]" /> <Tool Name="VCXMLDataGeneratorTool" @@ -88,6 +89,7 @@ SuppressStartupBanner="true" AdditionalLibraryDirectories="Debug" GenerateManifest="false" + IgnoreDefaultLibraryNames="libcmt.lib" GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug/Doxygen.pdb" SubSystem="1" @@ -154,7 +156,7 @@ /> <Tool Name="VCCLCompilerTool" - AdditionalOptions="/Zm200 " + AdditionalOptions="/Zm200 /bigobj" Optimization="0" AdditionalIncludeDirectories="..\src,..\qtools,..\libpng,..\libmd5,." PreprocessorDefinitions="_CONSOLE;WIN32;_DEBUG; _CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;LIBICONV_STATIC;CHARSET_STATIC" @@ -239,6 +241,7 @@ /> <Tool Name="Lex" + CommandLine="flex [AllOptions] [AdditionalOptions] [inputs]" /> <Tool Name="VCXMLDataGeneratorTool" @@ -4049,6 +4052,10 @@ > </File> <File + RelativePath="..\src\translator_eo.h" + > + </File> + <File RelativePath="..\src\translator_es.h" > </File> |