From f7c8264049868843f3ee7e8ce8f418c0e1c31374 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Mon, 30 Apr 2001 17:28:34 +0000 Subject: Release-1.2.7 --- INSTALL | 4 +- README | 4 +- VERSION | 2 +- doc/autolink.doc | 2 +- doc/commands.doc | 36 +- doc/config.doc | 4 +- doc/docblocks.doc | 2 +- doc/htmlcmds.doc | 6 +- doc/index.doc | 1 + doc/install.doc | 2 +- doc/language.doc | 71 +- examples/group.cpp | 14 + examples/group/html/annotated.html | 23 - examples/group/html/class_c1.html | 25 - examples/group/html/class_c2.html | 25 - examples/group/html/class_c3.html | 25 - examples/group/html/class_c4.html | 25 - examples/group/html/class_c5.html | 25 - examples/group/html/class_c6.html | 27 - examples/group/html/doxygen.css | 16 - examples/group/html/doxygen.gif | Bin 3536 -> 0 bytes examples/group/html/files.html | 22 - examples/group/html/group.cpp.html | 28 - examples/group/html/group_group1.html | 22 - examples/group/html/group_group2.html | 22 - examples/group/html/group_group3.html | 25 - examples/group/html/index.html | 17 - examples/group/html/modules.html | 25 - examples/group/html/null.gif | Bin 43 -> 0 bytes packages/rpm/doxygen.spec | 2 +- src/classdef.cpp | 9 +- src/doc.l | 2 +- src/doxygen.cpp | 68 +- src/doxysearch.cpp | 18 +- src/entry.h | 3 +- src/groupdef.cpp | 2 +- src/index.cpp | 8 +- src/language.cpp | 8 +- src/latexgen.cpp | 16 +- src/libdoxygen.pro.in | 153 +++- src/mangen.cpp | 45 +- src/mangen.h | 26 +- src/scanner.l | 37 +- src/translator.h | 1080 ++++++++------------------- src/translator_adapter.h | 463 ++++++++++++ src/translator_br.h | 4 +- src/translator_cn.h | 16 +- src/translator_cz.h | 158 +++- src/translator_de.h | 4 +- src/translator_en.h | 1288 +++++++++++++++++++++++++++++++++ src/translator_es.h | 24 +- src/translator_fi.h | 4 +- src/translator_fr.h | 26 +- src/translator_hr.h | 46 +- src/translator_hu.h | 24 +- src/translator_it.h | 26 +- src/translator_jp.h | 26 +- src/translator_kr.h | 30 +- src/translator_nl.h | 18 +- src/translator_no.h | 20 +- src/translator_pl.h | 26 +- src/translator_pt.h | 26 +- src/translator_ro.h | 27 +- src/translator_ru.h | 203 ++---- src/translator_se.h | 4 +- src/translator_si.h | 16 +- 66 files changed, 2909 insertions(+), 1547 deletions(-) delete mode 100644 examples/group/html/annotated.html delete mode 100644 examples/group/html/class_c1.html delete mode 100644 examples/group/html/class_c2.html delete mode 100644 examples/group/html/class_c3.html delete mode 100644 examples/group/html/class_c4.html delete mode 100644 examples/group/html/class_c5.html delete mode 100644 examples/group/html/class_c6.html delete mode 100644 examples/group/html/doxygen.css delete mode 100644 examples/group/html/doxygen.gif delete mode 100644 examples/group/html/files.html delete mode 100644 examples/group/html/group.cpp.html delete mode 100644 examples/group/html/group_group1.html delete mode 100644 examples/group/html/group_group2.html delete mode 100644 examples/group/html/group_group3.html delete mode 100644 examples/group/html/index.html delete mode 100644 examples/group/html/modules.html delete mode 100644 examples/group/html/null.gif create mode 100644 src/translator_adapter.h create mode 100644 src/translator_en.h diff --git a/INSTALL b/INSTALL index f11b8bd..1343964 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ -DOXYGEN Version 1.2.6-20010422 +DOXYGEN Version 1.2.7 Please read the installation section of the manual for instructions. -------- -Dimitri van Heesch (22 April 2001) +Dimitri van Heesch (30 April 2001) diff --git a/README b/README index dbc2ab2..28fc233 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -DOXYGEN Version 1.2.6_20010422 +DOXYGEN Version 1.2.7 Please read INSTALL for compilation instructions. @@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at Enjoy, -Dimitri van Heesch (22 April 2001) +Dimitri van Heesch (30 April 2001) diff --git a/VERSION b/VERSION index 3339dbc..c04c650 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.6-20010422 +1.2.7 diff --git a/doc/autolink.doc b/doc/autolink.doc index 5b69020..ee0cd09 100644 --- a/doc/autolink.doc +++ b/doc/autolink.doc @@ -115,7 +115,7 @@ typedef struct StructName TypeName \par Example: \verbinclude restypedef.cpp \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by Doxygen. \endhtmlonly */ diff --git a/doc/commands.doc b/doc/commands.doc index 21f0b6e..bdbbbae 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -45,6 +45,7 @@ documentation: \endlatexonly
  • \refitem cmda \a
  • \refitem cmdaddindex \addindex +
  • \refitem cmdaddtogroup \addtogroup
  • \refitem cmdanchor \anchor
  • \refitem cmdarg \arg
  • \refitem cmdattention \attention @@ -148,6 +149,35 @@ Doxygen. Unrecognized commands are treated as normal text. Structural indicators \htmlonly --- \endhtmlonly +\subsection cmdaddtogroup \addtogroup + \addindex \addtogroup + Add extra documentation to a group \ that was previously defined + using \\defgroup. This command can also be used to add a number of + entities to an existing group using \@{ and \@} like this: + +\verbatim + /*! \addtogroup mygrp + * Additional documentation for group `mygrp' + * @{ + */ + + /*! + * A function + */ + void func1() + { + } + + /*! Another function */ + void func2() + { + } + + /*! @} */ +\endverbatim + + See also \ref cmddefgroup "\\defgroup" and \ref cmdingroup "\\ingroup". + \subsection cmdclass \class [] [] \addindex \class @@ -180,7 +210,7 @@ Doxygen. Unrecognized commands are treated as normal text. \par Example: \verbinclude define.h \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by Doxygen. \endhtmlonly @@ -271,7 +301,7 @@ Doxygen. Unrecognized commands are treated as normal text. \par Example: \verbinclude file.h \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by Doxygen. \endhtmlonly @@ -547,7 +577,7 @@ Public/Protected/Private/... section. \par Example: \verbinclude author.cpp \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by Doxygen. \endhtmlonly diff --git a/doc/config.doc b/doc/config.doc index b819f53..b41c9af 100644 --- a/doc/config.doc +++ b/doc/config.doc @@ -758,10 +758,10 @@ followed by the descriptions of the tags grouped by category. doxygen generates three additional HTML index files: \c index.hhp, \c index.hhc, and \c index.hhk. The \c index.hhp is a project file that can be read by - + Microsoft HTML help workshop \latexonly - (see http://msdn.microsoft.com/workshop/author/htmlhelp) + (see http://msdn.microsoft.com/library/tools/htmlhelp/wkshp/download\_main.htm) \endlatexonly on Windows. diff --git a/doc/docblocks.doc b/doc/docblocks.doc index d2df482..547e617 100644 --- a/doc/docblocks.doc +++ b/doc/docblocks.doc @@ -159,7 +159,7 @@ Here is an example of a C header named \c structcmd.h that is documented using structural commands: \verbinclude structcmd.h \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly diff --git a/doc/htmlcmds.doc b/doc/htmlcmds.doc index 6cc320c..7e7f4b6 100644 --- a/doc/htmlcmds.doc +++ b/doc/htmlcmds.doc @@ -64,10 +64,8 @@ documentation. Note that all attributes of a HTML tag are ignored
  • \c Ends a numbered item list.
  • \c

    Starts a new paragraph.

  • \c

    Does not generate any output. -
  • \c
     starts a code fragment, 
    -             equivalent to the command \\code (see section \ref cmdcode).
    -
  • \c
  • ends a code fragment, - equivalent to the command \\endcode (see section \ref cmdendcode). +
  • \c
     starts a preformatted fragment.
    +
  • \c
  • ends a preformatted fragment.
  • \c starts a section of text displayed in a smaller font.
  • \c ends a \c section.
  • \c starts a section of bold text. diff --git a/doc/index.doc b/doc/index.doc index 9c89f8b..cb1b9c3 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -159,6 +159,7 @@ Thanks go to:
  • My brother Frank for rendering the logos.
  • Harm van der Heijden for adding HTML help support. +
  • Wouter Slegers for registering the www.doxygen.org domain.
  • Parker Waerchter for adding the RTF output generator.
  • Joerg Baumann, for adding conditional documentation blocks, PDF links, and the configuration generator. diff --git a/doc/install.doc b/doc/install.doc index 52011a9..70d625a 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -425,7 +425,7 @@ Here is what is required: (see \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP") in the config file, then you need the Microsoft HTML help workshop. You can download it at: - http://msdn.microsoft.com/workshop/author/htmlhelp + http://msdn.microsoft.com/library/tools/htmlhelp/wkshp/download_main.htm
  • If you used WinZip to extract the tar archive it will (apparently) not create empty folders, so you have to add the folders diff --git a/doc/language.doc b/doc/language.doc index d7b3a53..41e346e 100644 --- a/doc/language.doc +++ b/doc/language.doc @@ -18,13 +18,12 @@

    Support for multiple languages

    -Doxygen has support for multiple languages. This means that the text fragments that -doxygen generates can changed into languages other than English -(the default) at configuration time. +Doxygen has support for multiple languages. This means +that the text fragments that doxygen generates can changed into languages +other than English (the default) at configuration time.

    -Currently, supported languages are English, French, Czech, Dutch, Spannish, -Swedish, Russian, Czech, Croatian, Italian, Hungarian, Finnish, German and Japanese, -and Korean. +Currently, supported for over 20 languages is available. + Here is a list of the languages and their current maintainers:

    @@ -269,7 +268,7 @@ let them (or me) know. If you want to add support for a language that is not yet listed please see the next section. -

    Language HOWTO

    +

    Adding a new language to doxygen

    This short HOWTO explains how to add support for a new language to Doxygen: @@ -278,7 +277,7 @@ Just follow these steps:
  • Tell me for which language you want to add support. If no one else is already working on support for that language, you will be assigned as the maintainer for the language. -
  • Create a copy of translator_nl.h and name it +
  • Create a copy of translator_en.h and name it translator_.h I'll use xx in the rest of this document.
  • Edit language.cpp: @@ -294,35 +293,63 @@ Just follow these steps: } \endverbatim after the if { ... } -
  • Edit doxygen.pro and add \c translator_xx.h to +
  • Edit libdoxygen.pro.in and add \c translator_xx.h to the \c HEADERS line in the file doxygen.pro.
  • Edit translator_xx.h:
      -
    • Rename TRANSLATOR_NL_H to TRANSLATOR_XX_H twice. -
    • Rename TranslatorDutch to TranslatorYourLanguage -
    • In the member latexBabelPackage() change "dutch" into the name of the - latex package that adds support for your language. -
    • Edit all the strings that are returned by the members that start - with tr. - Look at the corresponding member in translator.h for the english text - that is returned and translate that into your language. +
    • Rename TRANSLATOR_EN_H to TRANSLATOR_XX_H twice. +
    • Rename TranslatorEnglish to TranslatorYourLanguage +
    • In the member idLanguage() change "english" into the + name of the your language (use lower case characters only). Depending + on the language you may also wish to change the member functions + latexLanguageSupportCommand() and idLanguageCharset(). +
    • Edit all the strings that are returned by the member functions that + start with tr. Try to match punctuation and capitals! To enter special characters (with accents) you can:
      • Enter them directly if your keyboard supports that and you are using a Latin-1 font. Doxygen will translate the characters to proper Latex and - leave the Html and man output for what it is. + leave the Html and man output for what it is (which is fine, if + idLanguageCharset() is set correctly).
      • Use html codes like \ä for an a with an umlaut (i.e. ä). See the HTML specification for the codes.
    -
  • Recompile everything (do this from the root of the distribution, - because the Makefile.dox* have to be regenerated!) +
  • Run configure and make again from the root of the distribution, + in order to regenerated the Makefiles.
  • Now you can use OUTPUT_LANGUAGE = your_language_name in the config file to generate output in your language. -
  • Send translator_xx.h or a diff -u of the changes - to me so I can add it to doxygen. +
  • Send translator_xx.h to me so I can add it to doxygen. + +

    Maintaining a language

    + +As new versions of doxygen appear, new sentences will be +added to the Translator interface class. Of course these need to be translated +as well (otherwise doxygen wouldn't even compile!). + +Waiting until all language maintainers have translated these new sentences +and sent the results would not be very practical for me. + +Instead, a new class TranslatorAdapter_x_y_z will be added to +translator_adapter.h (here x,y, and z correspond to the current +version of doxygen). And all translators that previous derived from +Translator will now derive from this adapter class. + +The Adapter class contains the new sentences with +default translations using the English translator (which is always up to date). +Instead of deriving your TranslatorXX class directly from Translator it will +derive from the intermediate class TranslatorAdapter_x_y_z. + +Thus, if a translator class inherits from a adapter class +maintenance is needed. By looking at the adapter class itself (and its base +classes) you can easily see which methods need to be updated. + +To update a language simply make your translator class derive from +TranslatorAdapterBase and provide translations for the methods that +were previously provided by the adapter class (and its base classes). + */ diff --git a/examples/group.cpp b/examples/group.cpp index 0993cc2..e3a1b40 100644 --- a/examples/group.cpp +++ b/examples/group.cpp @@ -72,3 +72,17 @@ namespace N1 {}; /** @} */ +/** @addtogroup group1 + * + * More documentation for the first group. + * @{ + */ + +/** another function in group 1 */ +void func2() {} + +/** yet another function in group 1 */ +void func3() {} + +/** @} */ + diff --git a/examples/group/html/annotated.html b/examples/group/html/annotated.html deleted file mode 100644 index 4561934..0000000 --- a/examples/group/html/annotated.html +++ /dev/null @@ -1,23 +0,0 @@ - - -Annotated Index - - - -
    -Main Page   Modules   Compound List   File List  
    -

    Grouping Compound List

    Here are the classes, structs, unions and interfaces with brief descriptions:
      -
    • C1 (Class C1 in group 1) -
    • C2 (Class C2 in group 1) -
    • C3 (Class C3 in group 2) -
    • C4 (Class C4 in group 2) -
    • C5 (Class C5 in the third group) -
    • C6 (Class C6 in all groups) -
    -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c1.html b/examples/group/html/class_c1.html deleted file mode 100644 index 4b4a7d3..0000000 --- a/examples/group/html/class_c1.html +++ /dev/null @@ -1,25 +0,0 @@ - - -C1 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C1 Class Reference

    class C1 in group 1. -More... -

    - -
    -


    Detailed Description

    -class C1 in group 1. -

    -


    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c2.html b/examples/group/html/class_c2.html deleted file mode 100644 index 24ce9a9..0000000 --- a/examples/group/html/class_c2.html +++ /dev/null @@ -1,25 +0,0 @@ - - -C2 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C2 Class Reference

    class C2 in group 1. -More... -

    - -
    -


    Detailed Description

    -class C2 in group 1. -

    -


    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c3.html b/examples/group/html/class_c3.html deleted file mode 100644 index 75a6ecb..0000000 --- a/examples/group/html/class_c3.html +++ /dev/null @@ -1,25 +0,0 @@ - - -C3 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C3 Class Reference

    class C3 in group 2. -More... -

    - -
    -


    Detailed Description

    -class C3 in group 2. -

    -


    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c4.html b/examples/group/html/class_c4.html deleted file mode 100644 index 30333b2..0000000 --- a/examples/group/html/class_c4.html +++ /dev/null @@ -1,25 +0,0 @@ - - -C4 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C4 Class Reference

    class C4 in group 2. -More... -

    - -
    -


    Detailed Description

    -class C4 in group 2. -

    -


    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c5.html b/examples/group/html/class_c5.html deleted file mode 100644 index 665b7f6..0000000 --- a/examples/group/html/class_c5.html +++ /dev/null @@ -1,25 +0,0 @@ - - -C5 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C5 Class Reference

    class C5 in the third group. -More... -

    - -
    -


    Detailed Description

    -class C5 in the third group. -

    -


    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/class_c6.html b/examples/group/html/class_c6.html deleted file mode 100644 index fc611ca..0000000 --- a/examples/group/html/class_c6.html +++ /dev/null @@ -1,27 +0,0 @@ - - -C6 Class Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    C6 Class Reference

    class C6 in all groups. -More... -

    - -
    -


    Detailed Description

    -class C6 in all groups. -

    -

    -See also:
    - The first group, The Second Group, The Third Group

    The documentation for this class was generated from the following file: -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/doxygen.css b/examples/group/html/doxygen.css deleted file mode 100644 index 9055b44..0000000 --- a/examples/group/html/doxygen.css +++ /dev/null @@ -1,16 +0,0 @@ -H1 { text-align: center } -A.qindex {} -A.qindexRef {} -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code { text-decoration: none; font-weight: normal; color: #4444ee } -A.codeRef { font-weight: normal; color: #4444ee } -A.gl:link { color: #ffffff } -A.gl:visited { color: #ffffff } -A.gl { text-decoration: none; font-weight: bold; background-color: #ff8080 } -DL.el { margin-left: -1cm } -DIV.fragment { width: 100%; border: none; background-color: #eeeeee } -DIV.in { margin-left: 16 } -DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 } -TD.md { background-color: #f2f2ff } - diff --git a/examples/group/html/doxygen.gif b/examples/group/html/doxygen.gif deleted file mode 100644 index 30ebbca..0000000 Binary files a/examples/group/html/doxygen.gif and /dev/null differ diff --git a/examples/group/html/files.html b/examples/group/html/files.html deleted file mode 100644 index 3618009..0000000 --- a/examples/group/html/files.html +++ /dev/null @@ -1,22 +0,0 @@ - - -File Index - - - -
    -Main Page   Modules   Compound List   File List  
    -

    Grouping File List

    -

    -Here is a list of all documented files with brief descriptions: -

    -

    -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/group.cpp.html b/examples/group/html/group.cpp.html deleted file mode 100644 index 7ac0db1..0000000 --- a/examples/group/html/group.cpp.html +++ /dev/null @@ -1,28 +0,0 @@ - - -group.cpp File Reference - - - -
    -Main Page   Modules   Compound List   File List  
    -

    group.cpp File Reference

    this file in group 3. -More... -

    - - - - - - - - -

    Compounds

    class  C1
    class  C2
    class  C3
    class  C4
    class  C5
    class  C6
    -


    Detailed Description

    -this file in group 3.
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/group_group1.html b/examples/group/html/group_group1.html deleted file mode 100644 index 1d95e41..0000000 --- a/examples/group/html/group_group1.html +++ /dev/null @@ -1,22 +0,0 @@ - - -The First Group - - - -
    -Main Page   Modules   Compound List   File List  
    -

    The First Group


    Compounds

    - -

    Detailed Description

    -This is the first group
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/group_group2.html b/examples/group/html/group_group2.html deleted file mode 100644 index c177aad..0000000 --- a/examples/group/html/group_group2.html +++ /dev/null @@ -1,22 +0,0 @@ - - -The Second Group - - - -
    -Main Page   Modules   Compound List   File List  
    -

    The Second Group


    Compounds

    - -

    Detailed Description

    -This is the second group
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/group_group3.html b/examples/group/html/group_group3.html deleted file mode 100644 index 0b15a88..0000000 --- a/examples/group/html/group_group3.html +++ /dev/null @@ -1,25 +0,0 @@ - - -The Third Group - - - -
    -Main Page   Modules   Compound List   File List  
    -

    The Third Group


    Files

    - -

    Compounds

    - -

    Detailed Description

    -This is the third group
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/index.html b/examples/group/html/index.html deleted file mode 100644 index b711d54..0000000 --- a/examples/group/html/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - -Main Index - - - -
    -Main Page   Modules   Compound List   File List  
    -

    Grouping Documentation

    -

    -


    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/modules.html b/examples/group/html/modules.html deleted file mode 100644 index d5332c8..0000000 --- a/examples/group/html/modules.html +++ /dev/null @@ -1,25 +0,0 @@ - - -Module Index - - - -
    -Main Page   Modules   Compound List   File List  
    -

    Grouping Modules

    Here is a list of all modules: -
    -
    The First Group
    -

    -

    The Second Group
    -

    -

    The Third Group
    -

    - -

    -
    Generated at Sat Dec 4 22:01:06 1999 for Grouping by - -doxygen 0.49-991106 written by Dimitri van Heesch, - © 1997-1999
    - - diff --git a/examples/group/html/null.gif b/examples/group/html/null.gif deleted file mode 100644 index 1d11fa9..0000000 Binary files a/examples/group/html/null.gif and /dev/null differ diff --git a/packages/rpm/doxygen.spec b/packages/rpm/doxygen.spec index 803b24c..0bbe68d 100644 --- a/packages/rpm/doxygen.spec +++ b/packages/rpm/doxygen.spec @@ -1,5 +1,5 @@ Name: doxygen -Version: 1.2.6_20010422 +Version: 1.2.7 Summary: documentation system for C, C++ and IDL Release: 2 Source: doxygen_%{version}.src.tar.gz diff --git a/src/classdef.cpp b/src/classdef.cpp index 743ff4f..58b0e65 100644 --- a/src/classdef.cpp +++ b/src/classdef.cpp @@ -1842,7 +1842,14 @@ QCString ClassDef::compoundTypeString() const QCString ClassDef::getOutputFileBase() const { - return convertNameToFile(fileName); + if (isReference()) + { + return fileName; + } + else + { + return convertNameToFile(fileName); + } } QCString ClassDef::getFileBase() const diff --git a/src/doc.l b/src/doc.l index 2f6dc97..d04a17f 100644 --- a/src/doc.l +++ b/src/doc.l @@ -2161,7 +2161,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG}) insideHtmlLink=FALSE; } } -"<"{A} { BEGIN(DocHtmlLink); } +"<"{A}{BN}+ { BEGIN(DocHtmlLink); } "<"{BOLD}{ATTR}">" { outDoc->startBold(); } "" { outDoc->endBold(); } "<"{P}{ATTR}">" { diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 73c765c..6f41dfd 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -438,6 +438,30 @@ static void organizeSubGroups(Entry *root) } } +static void addToGroupSections(Entry *root) +{ + if (root->section==Entry::ADDGRPDOC_SEC && !root->name.isEmpty()) + { + GroupDef *gd = Doxygen::groupDict[root->name]; + if (gd) + { + gd->setDocumentation(gd->documentation()+"

    "+root->brief+root->doc); + } + else + { + warn(root->fileName,root->startLine, + "Warning: ignoring addtogroup command for undefined " + "group `%s'.",root->name.data()); + } + } + EntryListIterator eli(*root->sublist); + Entry *e; + for (;(e=eli.current());++eli) + { + addToGroupSections(e); + } +} + //---------------------------------------------------------------------- static void buildFileList(Entry *root) @@ -2564,7 +2588,10 @@ static void addTodoTestBugReferences() ClassDef *cd=Doxygen::classList.first(); while (cd) { - addRefItem(cd->todoId(),cd->testId(),cd->bugId(),"class",cd->getOutputFileBase(),cd->name()); + addRefItem(cd->todoId(),cd->testId(),cd->bugId(), + theTranslator->trClass(TRUE,TRUE), + cd->getOutputFileBase(),cd->name() + ); cd=Doxygen::classList.next(); } FileName *fn=Doxygen::inputNameList.first(); @@ -2573,7 +2600,9 @@ static void addTodoTestBugReferences() FileDef *fd=fn->first(); while (fd) { - addRefItem(fd->todoId(),fd->testId(),fd->bugId(),"file",fd->getOutputFileBase(),fd->name()); + addRefItem(fd->todoId(),fd->testId(),fd->bugId(), + theTranslator->trFile(TRUE,TRUE), + fd->getOutputFileBase(),fd->name()); fd=fn->next(); } fn=Doxygen::inputNameList.next(); @@ -2581,20 +2610,26 @@ static void addTodoTestBugReferences() NamespaceDef *nd=Doxygen::namespaceList.first(); while (nd) { - addRefItem(nd->todoId(),nd->testId(),nd->bugId(),"namespace",nd->getOutputFileBase(),nd->name()); + addRefItem(nd->todoId(),nd->testId(),nd->bugId(), + theTranslator->trNamespace(TRUE,TRUE), + nd->getOutputFileBase(),nd->name()); nd=Doxygen::namespaceList.next(); } GroupDef *gd=Doxygen::groupList.first(); while (gd) { - addRefItem(gd->todoId(),gd->testId(),gd->bugId(),"group",gd->getOutputFileBase(),gd->groupTitle()); + addRefItem(gd->todoId(),gd->testId(),gd->bugId(), + theTranslator->trGroup(TRUE,TRUE), + gd->getOutputFileBase(),gd->groupTitle()); gd=Doxygen::groupList.next(); } PageSDictIterator pdi(*Doxygen::pageSDict); PageInfo *pi=0; for (pdi.toFirst();(pi=pdi.current());++pdi) { - addRefItem(pi->todoId,pi->testId,pi->bugId,"page",pi->name,pi->title); + addRefItem(pi->todoId,pi->testId,pi->bugId, + theTranslator->trPage(TRUE,TRUE), + pi->name,pi->title); } MemberNameListIterator mnli(Doxygen::memberNameList); MemberName *mn=0; @@ -2610,8 +2645,15 @@ static void addTodoTestBugReferences() if (d==0) d=md->getGroupDef(); if (d==0) d=md->getFileDef(); // TODO: i18n this - QCString memLabel="member"; - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) memLabel="field"; + QCString memLabel; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + memLabel=theTranslator->trField(TRUE,TRUE); + } + else + { + memLabel=theTranslator->trMember(TRUE,TRUE); + } if (d) { addRefItem(md->todoId(),md->testId(),md->bugId(),memLabel,d->getOutputFileBase()+":"+md->anchor(),scopeName+"::"+md->name(),md->argsString()); @@ -2631,8 +2673,15 @@ static void addTodoTestBugReferences() if (d==0) d=md->getGroupDef(); if (d==0) d=md->getFileDef(); // TODO: i18n this - QCString memLabel="member"; - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) memLabel="global"; + QCString memLabel; + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + memLabel=theTranslator->trGlobal(TRUE,TRUE); + } + else + { + memLabel=theTranslator->trMember(TRUE,TRUE); + } if (d) { addRefItem(md->todoId(),md->testId(),md->bugId(),memLabel,d->getOutputFileBase()+":"+md->anchor(),md->name(),md->argsString()); @@ -6294,6 +6343,7 @@ void parseInput() msg("Building group list...\n"); buildGroupList(root); organizeSubGroups(root); + addToGroupSections(root); msg("Building namespace list...\n"); buildNamespaceList(root); diff --git a/src/doxysearch.cpp b/src/doxysearch.cpp index c4e69b3..3b5b227 100644 --- a/src/doxysearch.cpp +++ b/src/doxysearch.cpp @@ -55,11 +55,12 @@ struct FileInfo { - FileInfo() { f=0; url=0; } + FileInfo() { name[0]='\0'; f=0; url=0; } ~FileInfo() { if (f) fclose(f); delete[] url; } FILE *f; + char name[MAXSTRLEN]; int index; int refOffset; char *url; @@ -396,8 +397,11 @@ void searchIndex(const char *word,SearchResults *results) FileInfo *fi=fileList.first; while (fi) { + fi->f = fopen(fi->name, "rb"); fseek(fi->f,8,SEEK_SET); searchRecursive(results,fi,word); + fclose(fi->f); + fi->f=0; fi=fi->next; } @@ -516,6 +520,10 @@ void generateResults(SearchResults *sr) if (skipEntries == 0) { SearchDoc *d=docPtrArray[i]; + if (d->fileInfo->f == 0) + { + d->fileInfo->f = fopen(d->fileInfo->name, "rb"); + } FILE *f=d->fileInfo->f; fseek(f,d->fileInfo->refOffset+d->index*4,SEEK_SET); int offset=readInt(f); @@ -531,6 +539,11 @@ void generateResults(SearchResults *sr) rank*2+55, 255-rank*2, rank, d->fileInfo->url, htmlName, linkName); pageEntries--; + if (d->fileInfo->f != 0) + { + fclose(d->fileInfo->f); + d->fileInfo->f = 0; + } } else { @@ -946,6 +959,7 @@ int main(int argc,char **argv) FileInfo *fi=fileList.add(); FILE *g; + strcpy(fi->name,indexFile); if ((fi->f=fopen(indexFile,"rb"))==NULL) { message("Error: could not open index file %s\n",indexFile); @@ -982,6 +996,8 @@ int main(int argc,char **argv) } // read and store the offset to the link index fi->refOffset=readInt(fi->f); + fclose(fi->f); + fi->f = 0; } char *word; diff --git a/src/entry.h b/src/entry.h index 1dd7f91..0417b40 100644 --- a/src/entry.h +++ b/src/entry.h @@ -176,7 +176,8 @@ class Entry MAINPAGEDOC_SEC = 0x01200000, MEMBERGRP_SEC = 0x01300000, USINGDECL_SEC = 0x01400000, - PACKAGE_SEC = 0x01500000 + PACKAGE_SEC = 0x01500000, + ADDGRPDOC_SEC = 0x01600000 }; enum MemberSpecifier { diff --git a/src/groupdef.cpp b/src/groupdef.cpp index ccb81de..18f616a 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -357,7 +357,7 @@ void GroupDef::writeDocumentation(OutputList &ol) if (fileList->count()>0) { ol.startMemberHeader(); - parseText(ol,theTranslator->trFiles()); + parseText(ol,theTranslator->trFile(TRUE,FALSE)); ol.endMemberHeader(); ol.startMemberList(); FileDef *fd=fileList->first(); diff --git a/src/index.cpp b/src/index.cpp index f7aa869..1c0c3c4 100644 --- a/src/index.cpp +++ b/src/index.cpp @@ -2350,14 +2350,18 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel) { if(htmlHelp) { - htmlHelp->addContentsItem(TRUE, convertToHtml(theTranslator->trFiles()), gd->getOutputFileBase(), 0); + htmlHelp->addContentsItem(TRUE, + convertToHtml(theTranslator->trFile(TRUE,FALSE)), + gd->getOutputFileBase(), 0); htmlHelp->incContentsDepth(); } if(ftvHelp) { - ftvHelp->addContentsItem(TRUE, gd->getReference(), gd->getOutputFileBase(), 0, theTranslator->trFiles()); + ftvHelp->addContentsItem(TRUE, gd->getReference(), + gd->getOutputFileBase(), 0, + theTranslator->trFile(TRUE,FALSE)); ftvHelp->incContentsDepth(); } diff --git a/src/language.cpp b/src/language.cpp index d8b2b86..35e92bd 100644 --- a/src/language.cpp +++ b/src/language.cpp @@ -17,6 +17,7 @@ #include "message.h" #include "language.h" +#include "translator_en.h" #if !defined(ENGLISH_ONLY) #include "translator_nl.h" #include "translator_se.h" @@ -48,7 +49,7 @@ bool setTranslator(const char *langName) { if (L_EQUAL("english")) { - theTranslator=new Translator; + theTranslator=new TranslatorEnglish; } #if !defined(ENGLISH_ONLY) else if (L_EQUAL("dutch")) @@ -134,8 +135,11 @@ bool setTranslator(const char *langName) #endif else // use the default language (i.e. english) { - theTranslator=new Translator; + theTranslator=new TranslatorEnglish; return FALSE; } + + QCString msg = theTranslator->updateNeededMessage(); + if (!msg.isEmpty()) warn_cont(msg); return TRUE; } diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 761845f..00f12e9 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -249,21 +249,10 @@ static void writeDefaultHeaderPart1(QTextStream &t) if (!sLanguageSupportCommand.isEmpty()) { - // The command is not empty. The language does - // not want to use the babel package. Use this - // command instead. + // The command is not empty. Put it to the output. + // if the command is empty, no output is needed. t << sLanguageSupportCommand; } - else - { - if (!theTranslator->latexBabelPackage().isEmpty()) - { - // The result of the LatexLanguageSupportCommand() - // is empty, which means that the language prefers - // the babel package, or no package is needed at all. - t << "\\usepackage[" << theTranslator->latexBabelPackage() << "]{babel}\n"; - } - } QStrList &extraPackages = Config_getList("EXTRA_PACKAGES"); const char *s=extraPackages.first(); @@ -280,7 +269,6 @@ static void writeDefaultHeaderPart1(QTextStream &t) "\\vspace*{7cm}\n" "\\begin{center}\n" "{\\Large "; - } static void writeDefaultHeaderPart2(QTextStream &t) diff --git a/src/libdoxygen.pro.in b/src/libdoxygen.pro.in index 60bfef6..a371d00 100644 --- a/src/libdoxygen.pro.in +++ b/src/libdoxygen.pro.in @@ -16,30 +16,135 @@ TEMPLATE = libdoxygen.t CONFIG = console warn_on staticlib $extraopts -HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \ - membername.h index.h memberlist.h definition.h \ - entry.h logos.h instdox.h message.h code.h \ - filedef.h util.h cppvalue.h constexp.h \ - outputgen.h outputlist.h htmlgen.h latexgen.h \ - filename.h defargs.h groupdef.h gifenc.h diagram.h image.h \ - namespacedef.h version.h language.h translator.h \ - translator_nl.h translator_se.h translator_cz.h translator_fr.h \ - translator_it.h formula.h debug.h membergroup.h htmlhelp.h \ - translator_ru.h translator_pl.h dot.h rtfgen.h \ - reflist.h page.h sortdict.h translator_hu.h translator_kr.h \ - translator_ro.h translator_si.h translator_cn.h ftvhelp.h \ - treeview.h tagreader.h packagedef.h -SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \ - memberdef.cpp membername.cpp index.cpp memberlist.cpp \ - entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \ - filedef.cpp util.cpp groupdef.cpp \ - outputgen.cpp outputlist.cpp htmlgen.cpp latexgen.cpp mangen.cpp \ - cppvalue.cpp ce_lex.cpp ce_parse.cpp pre.cpp \ - filename.cpp declinfo.cpp defargs.cpp define.cpp \ - diagram.cpp gifenc.cpp image.cpp namespacedef.cpp \ - version.cpp language.cpp definition.cpp formula.cpp debug.cpp \ - membergroup.cpp htmlhelp.cpp dot.cpp rtfgen.cpp \ - reflist.cpp ftvhelp.cpp tagreader.cpp packagedef.cpp +HEADERS = bufstr.h \ + classdef.h \ + classlist.h \ + code.h \ + config.h \ + constexp.h \ + cppvalue.h \ + debug.h \ + doxygen.h \ + scanner.h \ + doc.h \ + dot.h \ + doxygen.h \ + entry.h \ + example.h \ + filedef.h \ + filename.h \ + formula.h \ + ftvhelp.h \ + gifenc.h \ + groupdef.h \ + htmlgen.h \ + htmlhelp.h \ + image.h \ + index.h \ + instdox.h \ + language.h \ + latexgen.h \ + logos.h \ + mangen.h \ + memberdef.h \ + membergroup.h \ + memberlist.h \ + membername.h \ + message.h \ + namespacedef.h \ + outputgen.h \ + outputlist.h \ + packagedef.h \ + page.h \ + pre.h \ + qtbc.h \ + reflist.h \ + rtfgen.h \ + scanner.h \ + searchindex.h \ + section.h \ + sortdict.h \ + suffixtree.h \ + tagreader.h \ + translator.h \ + translator_adapter.h \ + translator_br.h \ + translator_cn.h \ + translator_cz.h \ + translator_de.h \ + translator_en.h \ + translator_es.h \ + translator_fi.h \ + translator_fr.h \ + translator_hr.h \ + translator_hu.h \ + translator_it.h \ + translator_jp.h \ + translator_kr.h \ + translator_nl.h \ + translator_no.h \ + translator_pl.h \ + translator_pt.h \ + translator_ro.h \ + translator_ru.h \ + translator_se.h \ + translator_si.h \ + treeview.h \ + unistd.h \ + util.h \ + version.h +SOURCES = ce_lex.cpp \ + ce_parse.cpp \ + classdef.cpp \ + classlist.cpp \ + code.cpp \ + config.cpp \ + cppvalue.cpp \ + debug.cpp \ + declinfo.cpp \ + defargs.cpp \ + define.cpp \ + definition.cpp \ + diagram.cpp \ + doc.cpp \ + dot.cpp \ + doxygen.cpp \ + entry.cpp \ + filedef.cpp \ + filename.cpp \ + formula.cpp \ + ftvhelp.cpp \ + gifenc.cpp \ + groupdef.cpp \ + htmlgen.cpp \ + htmlhelp.cpp \ + image.cpp \ + index.cpp \ + instdox.cpp \ + language.cpp \ + latexgen.cpp \ + logos.cpp \ + main.cpp \ + mangen.cpp \ + memberdef.cpp \ + membergroup.cpp \ + memberlist.cpp \ + membername.cpp \ + message.cpp \ + namespacedef.cpp \ + outputgen.cpp \ + outputlist.cpp \ + packagedef.cpp \ + pre.cpp \ + reflist.cpp \ + rtfgen.cpp \ + scanner.cpp \ + searchindex.cpp \ + suffixtree.cpp \ + tagreader.cpp \ + util.cpp \ + version.cpp + win32:TMAKE_CXXFLAGS += -DQT_NODLL INCLUDEPATH += ../qtools win32:INCLUDEPATH += . diff --git a/src/mangen.cpp b/src/mangen.cpp index 68a59ed..758be75 100644 --- a/src/mangen.cpp +++ b/src/mangen.cpp @@ -15,6 +15,9 @@ * */ +/* http://www.cubic.org/source/archive/fileform/txt/man/ has some + nice introductions to groff and man pages. */ + #include #include "qtbc.h" @@ -187,14 +190,14 @@ void ManGenerator::writeMailLink(const char *url) void ManGenerator::startGroupHeader() { if (!firstCol) t << endl; - t << ".SH "; + t << ".SH \""; upperCase=TRUE; firstCol=FALSE; } void ManGenerator::endGroupHeader() { - t << "\n.PP " << endl; + t << "\"\n.PP " << endl; firstCol=TRUE; paragraph=TRUE; upperCase=FALSE; @@ -203,12 +206,12 @@ void ManGenerator::endGroupHeader() void ManGenerator::startMemberHeader() { if (!firstCol) t << endl; - t << ".SS "; + t << ".SS \""; } void ManGenerator::endMemberHeader() { - t << "\n"; + t << "\"\n"; firstCol=TRUE; paragraph=FALSE; } @@ -225,6 +228,7 @@ void ManGenerator::docify(const char *str) { case '\\': t << "\\\\"; col++; break; case '\n': t << "\n"; col=0; break; + case '\"': c = '\''; // no break! default: t << c; col++; break; } } @@ -254,6 +258,7 @@ void ManGenerator::codify(const char *str) break; case '\n': t << "\n"; firstCol=TRUE; col=0; break; case '\\': t << "\\"; col++; break; + case '\"': c = '\''; // no break! default: t << c; firstCol=FALSE; col++; break; } } @@ -269,6 +274,7 @@ void ManGenerator::writeChar(char c) switch (c) { case '\\': t << "\\\\"; break; + case '\"': c = '\''; // no break! default: t << c; break; } //printf("%c",c);fflush(stdout); @@ -288,11 +294,16 @@ void ManGenerator::startDescList() void ManGenerator::startTitle() { if (!firstCol) t << endl; - t << ".SH "; + t << ".SH \""; firstCol=FALSE; paragraph=FALSE; } +void ManGenerator::endTitle() +{ + t << "\""; +} + void ManGenerator::writeListItem() { if (!firstCol) t << endl; @@ -322,27 +333,43 @@ void ManGenerator::endCodeFragment() void ManGenerator::startMemberDoc(const char *,const char *,const char *,const char *) { if (!firstCol) t << endl; - t << ".SS "; + t << ".SS \""; firstCol=FALSE; paragraph=FALSE; } +void ManGenerator::endMemberDoc() +{ + t << "\""; +} + void ManGenerator::startSubsection() { if (!firstCol) t << endl; - t << ".SS "; + t << ".SS \""; firstCol=FALSE; paragraph=FALSE; } +void ManGenerator::endSubsection() +{ + t << "\""; +} + + void ManGenerator::startSubsubsection() { if (!firstCol) t << endl; - t << "\n.SS "; + t << "\n.SS \""; firstCol=FALSE; paragraph=FALSE; } +void ManGenerator::endSubsubsection() +{ + t << "\""; +} + void ManGenerator::writeSynopsis() { if (!firstCol) t << endl; @@ -420,7 +447,7 @@ void ManGenerator::startMemberGroupHeader(bool) void ManGenerator::endMemberGroupHeader() { - t << "\\fR\"\n.br\n"; + t << "\\fP\"\n.br\n"; firstCol=TRUE; } diff --git a/src/mangen.h b/src/mangen.h index c606115..dec3159 100644 --- a/src/mangen.h +++ b/src/mangen.h @@ -54,16 +54,16 @@ class ManGenerator : public OutputGenerator void startTitleHead(const char *) {} void endTitleHead(const char *,const char *); void startTitle(); - void endTitle() {} + void endTitle(); void newParagraph(); void writeString(const char *text); void startIndexList() {} - void endIndexList() {} + void endIndexList() { newParagraph(); } void startItemList() {} - void endItemList() {} + void endItemList() { newParagraph(); } void startEnumList() {} - void endEnumList() {} + void endEnumList() { newParagraph(); } void startAlphabeticalIndexList() {} void endAlphabeticalIndexList() {} void writeIndexHeading(const char *) {} @@ -80,7 +80,7 @@ class ManGenerator : public OutputGenerator void endHtmlLink(); void writeMailLink(const char *url); void startTypewriter() { t << "\\fC"; firstCol=FALSE; } - void endTypewriter() { t << "\\fR"; firstCol=FALSE; } + void endTypewriter() { t << "\\fP"; firstCol=FALSE; } void startGroupHeader(); void endGroupHeader(); void startMemberSections() {} @@ -112,11 +112,11 @@ class ManGenerator : public OutputGenerator void startCodeLine() {} void endCodeLine() { codify("\n"); col=0; } //void writeBoldString(const char *text) - // { t << "\\fB"; docify(text); t << "\\fR"; firstCol=FALSE; } + // { t << "\\fB"; docify(text); t << "\\fP"; firstCol=FALSE; } void startEmphasis() { t << "\\fI"; firstCol=FALSE; } - void endEmphasis() { t << "\\fR"; firstCol=FALSE; } + void endEmphasis() { t << "\\fP"; firstCol=FALSE; } void startBold() { t << "\\fB"; firstCol=FALSE; } - void endBold() { t << "\\fR"; firstCol=FALSE; } + void endBold() { t << "\\fP"; firstCol=FALSE; } void startDescription() {} void endDescription() {} void startDescItem(); @@ -124,7 +124,7 @@ class ManGenerator : public OutputGenerator void lineBreak() { t << "\n.br" << endl; } void writeChar(char c); void startMemberDoc(const char *,const char *,const char *,const char *); - void endMemberDoc() {} + void endMemberDoc(); void startDoxyAnchor(const char *,const char *,const char *) {} void endDoxyAnchor(const char *,const char *) {} void startCodeAnchor(const char *) {} @@ -135,9 +135,9 @@ class ManGenerator : public OutputGenerator const char *path,const char *name); void writeEndAnnoItem(const char *) { t << endl; firstCol=TRUE; } void startSubsection(); - void endSubsection() {} + void endSubsection(); void startSubsubsection(); - void endSubsubsection() {} + void endSubsubsection(); void startCenter() {} void endCenter() {} void startSmall() {} @@ -153,7 +153,7 @@ class ManGenerator : public OutputGenerator void nextTableColumn() {} void endTableColumn() {} void writeCopyright() { t << "(c)"; firstCol=FALSE; } - void writeQuote() { t << "\""; firstCol=FALSE; } + void writeQuote() { t << "`"; firstCol=FALSE; } void writeUmlaut(char c) { t << c << "\\*'"; firstCol=FALSE; } void writeAcute(char c) { t << c << "\\*`"; firstCol=FALSE; } void writeGrave(char c) { t << c << "\\*:"; firstCol=FALSE; } @@ -168,7 +168,7 @@ class ManGenerator : public OutputGenerator void writeCCedil(char c) { t << c; /* TODO: fix this */ firstCol=FALSE; } void startMemberDescription() { t << "\n.RI \"\\fI"; firstCol=FALSE; } - void endMemberDescription() { t << "\\fR\""; firstCol=FALSE; } + void endMemberDescription() { t << "\\fP\""; firstCol=FALSE; } void startDescList(); void endDescList() {} void startParamList() { startDescList(); } diff --git a/src/scanner.l b/src/scanner.l index 2a38b43..6f81966 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -474,6 +474,7 @@ TITLE [tT][iI][tT][lL][eE] %x DocBaseClass %x CppQuote %x EndCppQuote +%x AddGroupDocArg1 %x GroupDocArg1 %x GroupDocArg2 %x GroupName @@ -2686,6 +2687,12 @@ TITLE [tT][iI][tT][lL][eE] current->startLine = yyLineNr; BEGIN( GroupDocArg1 ); } +{B}*{CMD}"addtogroup"{B}+ { + current->section = Entry::ADDGRPDOC_SEC; + current->fileName = yyFileName; + current->startLine = yyLineNr; + BEGIN( AddGroupDocArg1 ); + } {B}*{CMD}"namespace"{B}+ { current->section = Entry::NAMESPACEDOC_SEC; current->fileName = yyFileName; @@ -2940,6 +2947,27 @@ TITLE [tT][iI][tT][lL][eE] yyLineNr++; } +{ID} { + current->name = yytext; + lastDefGroup = yytext; + newDocState(); + } +"\n" { + warn(yyFileName,yyLineNr, + "Warning: missing argument after " + "\\addtogroup." + ); + yyLineNr++; + BEGIN( Doc ); + } +"*/" { + unput('/');unput('*'); + warn(yyFileName,yyLineNr, + "Warning: missing argument after " + "\\addtogroup." + ); + BEGIN( Doc ); + } {ID}(".html"?) { current->name = yytext; lastDefGroup = yytext; @@ -3213,7 +3241,9 @@ TITLE [tT][iI][tT][lL][eE] BEGIN( GroupName ); } {CMD}"{" { - if (current->section == Entry::GROUPDOC_SEC) + if (current->section==Entry::GROUPDOC_SEC || + current->section==Entry::ADDGRPDOC_SEC + ) { autoGroupNameStack.push(new QCString(current->name)); } @@ -3636,9 +3666,12 @@ TITLE [tT][iI][tT][lL][eE] unput('/');unput('*'); BEGIN( tmpDocType ); } -^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { +^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { current->doc += yytext; } +^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ { + current->brief += "-"; + } ^{B}*(("//"{B}*)?)"*"+/[^/] ^{B}*(("//"{B}*)?)"*"+{B}+ { current->doc+=' '; diff --git a/src/translator.h b/src/translator.h index d40e379..5125717 100644 --- a/src/translator.h +++ b/src/translator.h @@ -28,13 +28,19 @@ class Translator protected: /*! Returns the string converted from windows-1250 to iso-8859-2. */ /* The method was designed initially for translator_cz.h. - It is used for on-line encoding conversion related to conditional - compilation in Unix/MS Windows environments (both use different - encoding). Later, the translator_hr.h (by Boris Bralo) used and - improved the same style. As the method with the translation table - was the same, the decision to move it to this base class was made. - The same holds for ISO88592ToWin1250() method. It is recommended - for possibly other similar methods in future. + * It is used for on-line encoding conversion related to + * conditional compilation in Unix/MS Windows environments + * (both use different encoding). Later, the translator_hr.h + * (by Boris Bralo) used and improved the same style. As the + * method with the translation table was the same, the + * decision to move it to this base class was made. The same + * holds for ISO88592ToWin1250() method. + * + * Alexandr Chelpanov used the same approach for + * Koi8RToWindows1251() and Windows1251ToKoi8R() methods. Notice, + * that he uses Unicode tables. + * + * It is recommended for possibly other similar methods in future. */ QCString Win1250ToISO88592(const QCString & sInput) { @@ -107,10 +113,97 @@ class Translator return result; } - + /*! Returns the string converted from koi8-r to windows-1251. */ + /* The method was designed initially for translator_cz.h. + It is used for on-line encoding conversion related to conditional + compilation in Unix/MS Windows environments (both use different + encoding). + Encoding table got from QT:qtextcodec.cpp + */ + QCString Koi8RToWindows1251( const QCString & sInput ) + { + static Q_UINT16 koi8_r[128] = + { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, + 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, + 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219/**/, 0x221A, 0x2248, + 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, + 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, + 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E, + 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, + 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, + 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, + 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, + 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A + }; + + QString result; + int len = sInput.length(); + + result.setUnicode(0, len); + QChar* uc = (QChar*)result.unicode(); // const_cast + const unsigned char * c = (const unsigned char *)(const char*)sInput; + for( int i=0; i 127 ) + uc[i] = koi8_r[c[i]-128]; + else + uc[i] = c[i]; + } + return result.local8Bit(); + } + /*! returns the string converted from Windows-1251 to koi8-r */ + /* See the comments of the Koi8RToWindows1251() method for details. + Encoding table got from QT:qtextcodec.cpp */ + QCString Windows1251ToKoi8R( const QCString & sInput ) + { + static Q_UINT16 windows_1251[128] = + { 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, + 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, + 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0xFFFD, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, + 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, + 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, + 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, + 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F + }; + + QString result; + int len = sInput.length(); + + result.setUnicode(0, len); + QChar* uc = (QChar*)result.unicode(); // const_cast + const unsigned char * c = (const unsigned char *)(const char*)sInput; + for( int i=0; i 127 ) + uc[i] = windows_1251[c[i]-128]; + else + uc[i] = c[i]; + } + return result.local8Bit(); + } + public: - // --- Language contol methods ------------------- + /*! This method is used to provide warning message that is displayed + * if the user chooses a language whose translation is not up to date. + * It is implemented by the adapter classes. + */ + virtual QCString updateNeededMessage() { return ""; } + + + // --- Language control methods ------------------- /*! Used for identification of the language. May resemble * the string returned by latexBabelPackage(), but it is not used @@ -119,578 +212,330 @@ class Translator * (e.g. Czech, Japanese, Russian, etc.). It should be equal to * the identification in language.cpp. */ - virtual QCString idLanguage() - { return "english"; } + virtual QCString idLanguage() = 0; + /*! Used to get the command(s) for the language support. This method * was designed for languages which do not prefer babel package. * If this methods returns empty string, then the latexBabelPackage() * method is used to generate the command for using the babel package. */ - virtual QCString latexLanguageSupportCommand() - { - return ""; - } - /*! returns the name of the package that is included by LaTeX */ - virtual QCString latexBabelPackage() - { return ""; } + virtual QCString latexLanguageSupportCommand() = 0; /*! return the language charset. This will be used for the HTML output */ - virtual QCString idLanguageCharset() - { - return "iso-8859-1"; - } + virtual QCString idLanguageCharset() = 0; // --- Language translation methods ------------------- /*! used in the compound documentation before a list of related functions. */ - virtual QCString trRelatedFunctions() - { return "Related Functions"; } + virtual QCString trRelatedFunctions() = 0; /*! subscript for the related functions. */ - virtual QCString trRelatedSubscript() - { return "(Note that these are not member functions.)"; } + virtual QCString trRelatedSubscript() = 0; /*! header that is put before the detailed description of files, classes and namespaces. */ - virtual QCString trDetailedDescription() - { return "Detailed Description"; } + virtual QCString trDetailedDescription() = 0; /*! header that is put before the list of typedefs. */ - virtual QCString trMemberTypedefDocumentation() - { return "Member Typedef Documentation"; } + virtual QCString trMemberTypedefDocumentation() = 0; /*! header that is put before the list of enumerations. */ - virtual QCString trMemberEnumerationDocumentation() - { return "Member Enumeration Documentation"; } + virtual QCString trMemberEnumerationDocumentation() = 0; /*! header that is put before the list of member functions. */ - virtual QCString trMemberFunctionDocumentation() - { return "Member Function Documentation"; } + virtual QCString trMemberFunctionDocumentation() = 0; /*! header that is put before the list of member attributes. */ - virtual QCString trMemberDataDocumentation() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Field Documentation"; - } - else - { - return "Member Data Documentation"; - } - } + virtual QCString trMemberDataDocumentation() = 0; /*! this is the text of a link put after brief descriptions. */ - virtual QCString trMore() - { return "More..."; } + virtual QCString trMore() = 0; /*! put in the class documentation */ - virtual QCString trListOfAllMembers() - { return "List of all members."; } + virtual QCString trListOfAllMembers() = 0; /*! used as the title of the "list of all members" page of a class */ - virtual QCString trMemberList() - { return "Member List"; } + virtual QCString trMemberList() = 0; /*! this is the first part of a sentence that is followed by a class name */ - virtual QCString trThisIsTheListOfAllMembers() - { return "This is the complete list of members for "; } + virtual QCString trThisIsTheListOfAllMembers() = 0; /*! this is the remainder of the sentence after the class name */ - virtual QCString trIncludingInheritedMembers() - { return ", including all inherited members."; } + virtual QCString trIncludingInheritedMembers() = 0; /*! 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="Generated automatically by Doxygen"; - if (s) result+=(QCString)" for "+s; - result+=" from the source code."; - return result; - } + virtual QCString trGeneratedAutomatically(const char *s) = 0; /*! put after an enum name in the list of all members */ - virtual QCString trEnumName() - { return "enum name"; } + virtual QCString trEnumName() = 0; /*! put after an enum value in the list of all members */ - virtual QCString trEnumValue() - { return "enum value"; } + virtual QCString trEnumValue() = 0; /*! put after an undocumented member in the list of all members */ - virtual QCString trDefinedIn() - { return "defined in"; } + virtual QCString trDefinedIn() = 0; - // TODO: trVerbatimText is no longer used => remove! - /*! put as in introduction in the verbatim header file of a class. - * parameter f is the name of the include file. - */ - virtual QCString trVerbatimText(const char *f) - { return (QCString)"This is the verbatim text of the "+f+" include file."; } - // 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). */ - virtual QCString trModules() - { return "Modules"; } + virtual QCString trModules() = 0; /*! This is put above each page as a link to the class hierarchy */ - virtual QCString trClassHierarchy() - { return "Class Hierarchy"; } + virtual QCString trClassHierarchy() = 0; /*! 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 "Data Structures"; - } - else - { - return "Compound List"; - } - } + virtual QCString trCompoundList() = 0; /*! This is put above each page as a link to the list of documented files */ - virtual QCString trFileList() - { return "File List"; } + virtual QCString trFileList() = 0; /*! This is put above each page as a link to the list of all verbatim headers */ - virtual QCString trHeaderFiles() - { return "Header Files"; } + virtual QCString trHeaderFiles() = 0; /*! 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 "Data Fields"; - } - else - { - return "Compound Members"; - } - } + virtual QCString trCompoundMembers() = 0; /*! 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 "Globals"; - } - else - { - return "File Members"; - } - } + virtual QCString trFileMembers() = 0; /*! This is put above each page as a link to all related pages. */ - virtual QCString trRelatedPages() - { return "Related Pages"; } + virtual QCString trRelatedPages() = 0; /*! This is put above each page as a link to all examples. */ - virtual QCString trExamples() - { return "Examples"; } + virtual QCString trExamples() = 0; /*! This is put above each page as a link to the search engine. */ - virtual QCString trSearch() - { return "Search"; } + virtual QCString trSearch() = 0; /*! This is an introduction to the class hierarchy. */ - virtual QCString trClassHierarchyDescription() - { return "This inheritance list is sorted roughly, " - "but not completely, alphabetically:"; - } + virtual QCString trClassHierarchyDescription() = 0; /*! This is an introduction to the list with all files. */ - virtual QCString trFileListDescription(bool extractAll) - { - QCString result="Here is a list of all "; - if (!extractAll) result+="documented "; - result+="files with brief descriptions:"; - return result; - } + virtual QCString trFileListDescription(bool extractAll) = 0; /*! This is an introduction to the annotated compound list. */ - virtual QCString trCompoundListDescription() - { - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Here are the data structures with brief descriptions:"; - } - else - { - return "Here are the classes, structs, " - "unions and interfaces with brief descriptions:"; - } - } + virtual QCString trCompoundListDescription() = 0; /*! This is an introduction to the page with all class members. */ - virtual QCString trCompoundMembersDescription(bool extractAll) - { - QCString result="Here is a list of all "; - if (!extractAll) - { - result+="documented "; - } - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="struct and union fields"; - } - else - { - result+="class members"; - } - result+=" with links to "; - if (extractAll) - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="the struct/union documentation for each field:"; - } - else - { - result+="the class documentation for each member:"; - } - } - else - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="the structures/unions they belong to:"; - } - else - { - result+="the classes they belong to:"; - } - } - return result; - } + virtual QCString trCompoundMembersDescription(bool extractAll) = 0; /*! This is an introduction to the page with all file members. */ - virtual QCString trFileMembersDescription(bool extractAll) - { - QCString result="Here is a list of all "; - if (!extractAll) result+="documented "; - - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - result+="functions, variables, defines, enums, and typedefs"; - } - else - { - result+="file members"; - } - result+=" with links to "; - if (extractAll) - result+="the files they belong to:"; - else - result+="the documentation:"; - return result; - } + virtual QCString trFileMembersDescription(bool extractAll) = 0; /*! This is an introduction to the page with the list of all header files. */ - virtual QCString trHeaderFilesDescription() - { return "Here are the header files that make up the API:"; } + virtual QCString trHeaderFilesDescription() = 0; /*! This is an introduction to the page with the list of all examples */ - virtual QCString trExamplesDescription() - { return "Here is a list of all examples:"; } + virtual QCString trExamplesDescription() = 0; /*! This is an introduction to the page with the list of related pages */ - virtual QCString trRelatedPagesDescription() - { return "Here is a list of all related documentation pages:"; } + virtual QCString trRelatedPagesDescription() = 0; /*! This is an introduction to the page with the list of class/file groups */ - virtual QCString trModulesDescription() - { return "Here is a list of all modules:"; } + virtual QCString trModulesDescription() = 0; /*! This sentences is used in the annotated class/file lists if no brief * description is given. */ - virtual QCString trNoDescriptionAvailable() - { return "No description available"; } + virtual QCString trNoDescriptionAvailable() = 0; // index titles (the project name is prepended for these) /*! This is used in HTML as the title of index.html. */ - virtual QCString trDocumentation() - { return "Documentation"; } + virtual QCString trDocumentation() = 0; /*! This is used in LaTeX as the title of the chapter with the * index of all groups. */ - virtual QCString trModuleIndex() - { return "Module Index"; } + virtual QCString trModuleIndex() = 0; /*! This is used in LaTeX as the title of the chapter with the * class hierarchy. */ - virtual QCString trHierarchicalIndex() - { return "Hierarchical Index"; } + virtual QCString trHierarchicalIndex() = 0; /*! 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 "Data Structure Index"; - } - else - { - return "Compound Index"; - } - } + virtual QCString trCompoundIndex() = 0; /*! This is used in LaTeX as the title of the chapter with the * list of all files. */ - virtual QCString trFileIndex() - { return "File Index"; } + virtual QCString trFileIndex() = 0; /*! This is used in LaTeX as the title of the chapter containing * the documentation of all groups. */ - virtual QCString trModuleDocumentation() - { return "Module Documentation"; } + virtual QCString trModuleDocumentation() = 0; /*! This is used in LaTeX as the title of the chapter containing * the documentation of all classes, structs and unions. */ - virtual QCString trClassDocumentation() - { return "Class Documentation"; } + virtual QCString trClassDocumentation() = 0; /*! This is used in LaTeX as the title of the chapter containing * the documentation of all files. */ - virtual QCString trFileDocumentation() - { return "File Documentation"; } + virtual QCString trFileDocumentation() = 0; /*! This is used in LaTeX as the title of the chapter containing * the documentation of all examples. */ - virtual QCString trExampleDocumentation() - { return "Example Documentation"; } + virtual QCString trExampleDocumentation() = 0; /*! This is used in LaTeX as the title of the chapter containing * the documentation of all related pages. */ - virtual QCString trPageDocumentation() - { return "Page Documentation"; } + virtual QCString trPageDocumentation() = 0; /*! This is used in LaTeX as the title of the document */ - virtual QCString trReferenceManual() - { return "Reference Manual"; } + virtual QCString trReferenceManual() = 0; /*! This is used in the documentation of a file as a header before the * list of defines */ - virtual QCString trDefines() - { return "Defines"; } + virtual QCString trDefines() = 0; /*! This is used in the documentation of a file as a header before the * list of function prototypes */ - virtual QCString trFuncProtos() - { return "Function Prototypes"; } + virtual QCString trFuncProtos() = 0; /*! This is used in the documentation of a file as a header before the * list of typedefs */ - virtual QCString trTypedefs() - { return "Typedefs"; } + virtual QCString trTypedefs() = 0; /*! This is used in the documentation of a file as a header before the * list of enumerations */ - virtual QCString trEnumerations() - { return "Enumerations"; } + virtual QCString trEnumerations() = 0; /*! This is used in the documentation of a file as a header before the * list of (global) functions */ - virtual QCString trFunctions() - { return "Functions"; } + virtual QCString trFunctions() = 0; /*! This is used in the documentation of a file as a header before the * list of (global) variables */ - virtual QCString trVariables() - { return "Variables"; } + virtual QCString trVariables() = 0; /*! This is used in the documentation of a file as a header before the * list of (global) variables */ - virtual QCString trEnumerationValues() - { return "Enumeration values"; } + virtual QCString trEnumerationValues() = 0; /*! This is used in man pages as the author section. */ - virtual QCString trAuthor() - { return "Author"; } + virtual QCString trAuthor() = 0; /*! This is used in the documentation of a file before the list of * documentation blocks for defines */ - virtual QCString trDefineDocumentation() - { return "Define Documentation"; } + virtual QCString trDefineDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for function prototypes */ - virtual QCString trFunctionPrototypeDocumentation() - { return "Function Prototype Documentation"; } + virtual QCString trFunctionPrototypeDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for typedefs */ - virtual QCString trTypedefDocumentation() - { return "Typedef Documentation"; } + virtual QCString trTypedefDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration types */ - virtual QCString trEnumerationTypeDocumentation() - { return "Enumeration Type Documentation"; } + virtual QCString trEnumerationTypeDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for enumeration values */ - virtual QCString trEnumerationValueDocumentation() - { return "Enumeration Value Documentation"; } + virtual QCString trEnumerationValueDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for functions */ - virtual QCString trFunctionDocumentation() - { return "Function Documentation"; } + virtual QCString trFunctionDocumentation() = 0; /*! This is used in the documentation of a file/namespace before the list * of documentation blocks for variables */ - virtual QCString trVariableDocumentation() - { return "Variable Documentation"; } + virtual QCString trVariableDocumentation() = 0; /*! 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 "Data Structures"; - } - else - { - return "Compounds"; - } - } - - /*! This is used in the documentation of a group before the list of - * links to documented files - */ - virtual QCString trFiles() - { return "Files"; } + virtual QCString trCompounds() = 0; /*! 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)"Generated at "+date; - if (projName) result+=(QCString)" for "+projName; - result+=(QCString)" by"; - return result; - } + virtual QCString trGeneratedAt(const char *date,const char *projName) = 0; + /*! This is part of the sentence used in the standard footer of each page. */ - virtual QCString trWrittenBy() - { - return "written by"; - } + virtual QCString trWrittenBy() = 0; /*! this text is put before a class diagram */ - virtual QCString trClassDiagram(const char *clName) - { - return (QCString)"Inheritance diagram for "+clName+":"; - } + virtual QCString trClassDiagram(const char *clName) = 0; /*! this text is generated when the \\internal command is used. */ - virtual QCString trForInternalUseOnly() - { return "For internal use only."; } + virtual QCString trForInternalUseOnly() = 0; /*! this text is generated when the \\reimp command is used. */ - virtual QCString trReimplementedForInternalReasons() - { return "Reimplemented for internal reasons; the API is not affected."; } + virtual QCString trReimplementedForInternalReasons() = 0; /*! this text is generated when the \\warning command is used. */ - virtual QCString trWarning() - { return "Warning"; } + virtual QCString trWarning() = 0; /*! this text is generated when the \\bug command is used. */ - virtual QCString trBugsAndLimitations() - { return "Bugs and limitations"; } + virtual QCString trBugsAndLimitations() = 0; /*! this text is generated when the \\version command is used. */ - virtual QCString trVersion() - { return "Version"; } + virtual QCString trVersion() = 0; /*! this text is generated when the \\date command is used. */ - virtual QCString trDate() - { return "Date"; } + virtual QCString trDate() = 0; /*! this text is generated when the \\author command is used. */ - virtual QCString trAuthors() - { return "Author(s)"; } + virtual QCString trAuthors() = 0; /*! this text is generated when the \\return command is used. */ - virtual QCString trReturns() - { return "Returns"; } + virtual QCString trReturns() = 0; /*! this text is generated when the \\sa command is used. */ - virtual QCString trSeeAlso() - { return "See also"; } + virtual QCString trSeeAlso() = 0; /*! this text is generated when the \\param command is used. */ - virtual QCString trParameters() - { return "Parameters"; } + virtual QCString trParameters() = 0; /*! this text is generated when the \\exception command is used. */ - virtual QCString trExceptions() - { return "Exceptions"; } + virtual QCString trExceptions() = 0; /*! this text is used in the title page of a LaTeX document. */ - virtual QCString trGeneratedBy() - { return "Generated by"; } + virtual QCString trGeneratedBy() = 0; ////////////////////////////////////////////////////////////////////////// // new since 0.49-990307 ////////////////////////////////////////////////////////////////////////// /*! used as the title of page containing all the index of all namespaces. */ - virtual QCString trNamespaceList() - { return "Namespace List"; } + virtual QCString trNamespaceList() = 0; /*! used as an introduction to the namespace list */ - virtual QCString trNamespaceListDescription(bool extractAll) - { - QCString result="Here is a list of all "; - if (!extractAll) result+="documented "; - result+="namespaces with brief descriptions:"; - return result; - } + virtual QCString trNamespaceListDescription(bool extractAll) = 0; /*! used in the class documentation as a header before the list of all * friends of a class */ - virtual QCString trFriends() - { return "Friends"; } + virtual QCString trFriends() = 0; ////////////////////////////////////////////////////////////////////////// // new since 0.49-990405 @@ -699,8 +544,7 @@ class Translator /*! used in the class documentation as a header before the list of all * related classes */ - virtual QCString trRelatedFunctionDocumentation() - { return "Friends And Related Function Documentation"; } + virtual QCString trRelatedFunctionDocumentation() = 0; ////////////////////////////////////////////////////////////////////////// // new since 0.49-990425 @@ -709,143 +553,65 @@ class Translator /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, - bool isTemplate) - { - QCString result=(QCString)clName+" "; - switch(compType) - { - case ClassDef::Class: result+=" Class"; break; - case ClassDef::Struct: result+=" Struct"; break; - case ClassDef::Union: result+=" Union"; break; - case ClassDef::Interface: result+=" Interface"; break; - case ClassDef::Exception: result+=" Exception"; break; - } - if (isTemplate) result+=" Template"; - result+=" Reference"; - return result; - } + bool isTemplate) = 0; /*! used as the title of the HTML page of a file */ - virtual QCString trFileReference(const char *fileName) - { - QCString result=fileName; - result+=" File Reference"; - return result; - } + virtual QCString trFileReference(const char *fileName) = 0; /*! used as the title of the HTML page of a namespace */ - virtual QCString trNamespaceReference(const char *namespaceName) - { - QCString result=namespaceName; - result+=" Namespace Reference"; - return result; - } + virtual QCString trNamespaceReference(const char *namespaceName) = 0; - virtual QCString trPublicMembers() - { return "Public Methods"; } - virtual QCString trPublicSlots() - { return "Public Slots"; } - virtual QCString trSignals() - { return "Signals"; } - virtual QCString trStaticPublicMembers() - { return "Static Public Methods"; } - virtual QCString trProtectedMembers() - { return "Protected Methods"; } - virtual QCString trProtectedSlots() - { return "Protected Slots"; } - virtual QCString trStaticProtectedMembers() - { return "Static Protected Methods"; } - virtual QCString trPrivateMembers() - { return "Private Methods"; } - virtual QCString trPrivateSlots() - { return "Private Slots"; } - virtual QCString trStaticPrivateMembers() - { return "Static Private Methods"; } + virtual QCString trPublicMembers() = 0; + virtual QCString trPublicSlots() = 0; + virtual QCString trSignals() = 0; + virtual QCString trStaticPublicMembers() = 0; + virtual QCString trProtectedMembers() = 0; + virtual QCString trProtectedSlots() = 0; + virtual QCString trStaticProtectedMembers() = 0; + virtual QCString trPrivateMembers() = 0; + virtual QCString trPrivateSlots() = 0; + virtual QCString trStaticPrivateMembers() = 0; /*! this function is used to produce a comma-separated list of items. * use generateMarker(i) to indicate where item i should be put. */ - virtual QCString trWriteList(int numEntries) - { - QCString result; - int i; - // the inherits list contain `numEntries' classes - for (i=0;i

    \n" - "

    \n" - "The boxes in the above graph have the following meaning:\n" - "

      \n" - "
    • A filled black box represents the struct or class for which the " - "graph is generated.\n" - "
    • A box with a black border denotes a documented struct or class.\n" - "
    • A box with a grey border denotes an undocumented struct or class.\n" - "
    • A box with a red border denotes a documented struct or class for\n" - "which not all inheritance/containment relations are shown. A graph is " - "truncated if it does not fit within the specified boundaries." - "
    \n" - "The arrows have the following meaning:\n" - "
      \n" - "
    • A dark blue arrow is used to visualize a public inheritance " - "relation between two classes.\n" - "
    • A dark green arrow is used for protected inheritance.\n" - "
    • A dark red arrow is used for private inheritance.\n" - "
    • A purple dashed arrow is used if a class is contained or used " - "by another class. The arrow is labeled with the variable(s) " - "through which the pointed class or struct is accessible. \n" - "
    \n"; - } + virtual QCString trLegendDocs() = 0; + /*! text for the link to the legend page */ - virtual QCString trLegend() - { - return "legend"; - } + virtual QCString trLegend() = 0; ////////////////////////////////////////////////////////////////////////// // new since 1.2.0 ////////////////////////////////////////////////////////////////////////// /*! Used as a marker that is put before a test item */ - virtual QCString trTest() - { - return "Test"; - } + virtual QCString trTest() = 0; + /*! Used as the header of the test list */ - virtual QCString trTestList() - { - return "Test List"; - } + virtual QCString trTestList() = 0; ////////////////////////////////////////////////////////////////////////// // new since 1.2.1 ////////////////////////////////////////////////////////////////////////// /*! Used as a section header for KDE-2 IDL methods */ - virtual QCString trDCOPMethods() - { - return "DCOP Methods"; - } + virtual QCString trDCOPMethods() = 0; ////////////////////////////////////////////////////////////////////////// // new since 1.2.2 ////////////////////////////////////////////////////////////////////////// /*! Used as a section header for IDL properties */ - virtual QCString trProperties() - { - return "Properties"; - } + virtual QCString trProperties() = 0; + /*! Used as a section header for IDL property documentation */ - virtual QCString trPropertyDocumentation() - { - return "Property Documentation"; - } + virtual QCString trPropertyDocumentation() = 0; ////////////////////////////////////////////////////////////////////////// // new since 1.2.4 ////////////////////////////////////////////////////////////////////////// /*! Used for Java interfaces in the summary section of Java packages */ - virtual QCString trInterfaces() - { - return "Interfaces"; - } + virtual QCString trInterfaces() = 0; + /*! Used for Java classes in the summary section of Java packages */ - virtual QCString trClasses() - { - if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) - { - return "Data Structures"; - } - else - { - return "Classes"; - } - } + virtual QCString trClasses() = 0; + /*! Used as the title of a Java package */ - virtual QCString trPackage(const char *name) - { - return (QCString)"Package "+name; - } + virtual QCString trPackage(const char *name) = 0; + /*! Title of the package index page */ - virtual QCString trPackageList() - { - return "Package List"; - } + virtual QCString trPackageList() = 0; + /*! The description of the package index page */ - virtual QCString trPackageListDescription() - { - return "Here are the packages with brief descriptions (if available):"; - } + virtual QCString trPackageListDescription() = 0; + /*! The link name in the Quick links header for each page */ - virtual QCString trPackages() - { - return "Packages"; - } + virtual QCString trPackages() = 0; + /*! Used as a chapter title for Latex & RTF output */ - virtual QCString trPackageDocumentation() - { - return "Package Documentation"; - } + virtual QCString trPackageDocumentation() = 0; + /*! Text shown before a multi-line define */ - virtual QCString trDefineValue() - { - return "Value:"; - } + virtual QCString trDefineValue() = 0; ////////////////////////////////////////////////////////////////////////// // new since 1.2.5 ////////////////////////////////////////////////////////////////////////// /*! Used as a marker that is put before a \\bug item */ - virtual QCString trBug() - { - return "Bug"; - } + virtual QCString trBug() = 0; + /*! Used as the header of the bug list */ - virtual QCString trBugList() - { - return "Bug List"; - } + virtual QCString trBugList() = 0; ////////////////////////////////////////////////////////////////////////// -// new since 1.2.? +// new since 1.2.6 ////////////////////////////////////////////////////////////////////////// + /*! Used as ansicpg for RTF file */ - virtual QCString trRTFansicp() - { - return "1252"; - } + virtual QCString trRTFansicp() = 0; + /*! Used as ansicpg for RTF fcharset */ - virtual QCString trRTFCharSet() - { - return "0"; - } + virtual QCString trRTFCharSet() = 0; + /*! Used as header RTF general index */ - virtual QCString trRTFGeneralIndex() - { - return "Index"; - } + virtual QCString trRTFGeneralIndex() = 0; + + /*! The following are used for translation of the word that will + * possibly be followed by a single name or by a list of names + * of the category. + */ + virtual QCString trClass(bool first_capital, bool singular) = 0; + virtual QCString trFile(bool first_capital, bool singular) = 0; + virtual QCString trNamespace(bool first_capital, bool singular) = 0; + virtual QCString trGroup(bool first_capital, bool singular) = 0; + virtual QCString trPage(bool first_capital, bool singular) = 0; + virtual QCString trMember(bool first_capital, bool singular) = 0; + virtual QCString trField(bool first_capital, bool singular) = 0; + virtual QCString trGlobal(bool first_capital, bool singular) = 0; }; #endif diff --git a/src/translator_adapter.h b/src/translator_adapter.h new file mode 100644 index 0000000..04d35d4 --- /dev/null +++ b/src/translator_adapter.h @@ -0,0 +1,463 @@ +#ifndef TRANSLATOR_ADAPTER_H +#define TRANSLATOR_ADAPTER_H + +#include "translator_en.h" + +/*! A function to generate a warning message to signal the user + * that the translation of his/her language of choice needs updating + * \relates TranslatorAdapterBase + */ +inline QCString createUpdateNeededMessage(const char *languageName, + const char *versionString) +{ + return (QCString)"Warning: The selected output language \""+languageName+ + "\" has not been updated\nsince release "+versionString+ + ". As a result some sentences may appear in English.\n"; +} + +/*! \brief Base of the translator adapter tree + * + * This class provides access to the english translations, to be used + * as a substitute for real translations. + */ +class TranslatorAdapterBase : public Translator +{ + protected: + TranslatorEnglish english; +}; + +/*! \brief Translator adapter class for release 1.2.6 + * + * Translator adapter for dealing with translator changes since + * release 1.2.6 + */ +class TranslatorAdapter_1_2_6 : public TranslatorAdapterBase +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.6"); } + + /*! Used as ansicpg for RTF file */ + QCString trRTFansicp() + { + return "1252"; + } + + /*! Used as ansicpg for RTF fcharset */ + QCString trRTFCharSet() + { + return "0"; + } + + /*! Used as header RTF general index */ + QCString trRTFGeneralIndex() + { + return "Index"; + } + + ////////////////////////////////////////////////////////////////// + // The following methods were replaced by newer equivalent, but + // the obsolete method may be localized. Let's use the localized + // result if possible. + + + /*! This is the default implementation of the obsolete method + * used in the documentation of a group before the list of + * links to documented files. This is possibly localized. + */ + QCString trFiles() + { return "Files"; } + + /*! This is the localized implementation of newer equivalent + * using the obsolete method trFiles(). + */ + QCString trFile(bool first_capital, bool singular) + { + if (first_capital && !singular) + return trFiles(); // possibly localized + else + return english.trFile(first_capital, singular); + } + + /*! The latexBabelPackage() was superceeded by + * latexLanguageSupportCommand(). The default implementation + * of the obsolete method follows. + */ + QCString latexBabelPackage() + { return ""; } + + /*! Default implementation of the newer method. */ + QCString latexLanguageSupportCommand() + { + QCString result(latexBabelPackage()); + if (!result.isEmpty()) + { + result = "\\usepackage[" + result; + result += "]{babel}\n"; + } + return result; + } + + QCString idLanguageCharset() + { return english.idLanguageCharset(); } + + QCString trClass(bool first_capital, bool singular) + { return english.trClass(first_capital,singular); } + + QCString trNamespace(bool first_capital, bool singular) + { return english.trNamespace(first_capital,singular); } + + QCString trGroup(bool first_capital, bool singular) + { return english.trGroup(first_capital,singular); } + + QCString trPage(bool first_capital, bool singular) + { return english.trPage(first_capital,singular); } + + QCString trMember(bool first_capital, bool singular) + { return english.trMember(first_capital,singular); } + + QCString trField(bool first_capital, bool singular) + { return english.trField(first_capital,singular); } + + QCString trGlobal(bool first_capital, bool singular) + { return english.trGlobal(first_capital,singular); } + +}; + +/*! \brief Translator adapter class for release 1.2.5 + * + * Translator adapter for dealing with translator changes since + * release 1.2.5 + */ +class TranslatorAdapter_1_2_5 : public TranslatorAdapter_1_2_6 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.5"); } + + QCString trBug() + { return english.trBug(); } + + QCString trBugList() + { return english.trBugList(); } +}; + +/*! \brief Translator adapter class for release 1.2.4 + * + * Translator adapter for dealing with translator changes since + * release 1.2.4 + */ +class TranslatorAdapter_1_2_4 : public TranslatorAdapter_1_2_5 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.4"); } + + QCString trInterfaces() + { return english.trInterfaces(); } + + QCString trClasses() + { return english.trClasses(); } + + QCString trPackage(const char *name) + { return english.trPackage(name); } + + QCString trPackageList() + { return english.trPackageList(); } + + QCString trPackageListDescription() + { return english.trPackageListDescription(); } + + QCString trPackages() + { return english.trPackages(); } + + QCString trPackageDocumentation() + { return english.trPackageDocumentation(); } + + QCString trDefineValue() + { return english.trDefineValue(); } + +}; + +/*! \brief Translator adapter class for release 1.2.2 + * + * Translator adapter for dealing with translator changes since + * release 1.2.2 + */ +class TranslatorAdapter_1_2_2 : public TranslatorAdapter_1_2_4 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.2"); } + + QCString trProperties() + { return english.trProperties(); } + + QCString trPropertyDocumentation() + { return english.trPropertyDocumentation(); } +}; + +/*! \brief Translator adapter class for release 1.2.1 + * + * Translator adapter for dealing with translator changes since + * release 1.2.1 + */ +class TranslatorAdapter_1_2_1 : public TranslatorAdapter_1_2_2 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.1"); } + + QCString trDCOPMethods() + { return english.trDCOPMethods(); } +}; + +/*! \brief Translator adapter class for release 1.2.0 + * + * Translator adapter for dealing with translator changes since + * release 1.2.0 + */ +class TranslatorAdapter_1_2_0 : public TranslatorAdapter_1_2_1 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.2.0"); } + + QCString trTest() + { return english.trTest(); } + + QCString trTestList() + { return english.trTestList(); } + +}; + +/*! \brief Translator adapter class for release 1.1.5 + * + * Translator adapter for dealing with translator changes since + * release 1.1.5 + */ +class TranslatorAdapter_1_1_5 : public TranslatorAdapter_1_2_0 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.1.5"); } + + QCString trLegendTitle() + { return english.trLegendTitle(); } + + QCString trLegendDocs() + { return english.trLegendDocs(); } + + QCString trLegend() + { return english.trLegend(); } +}; + +/*! \brief Translator adapter class for release 1.1.4 + * + * Translator adapter for dealing with translator changes since + * release 1.1.4 + */ +class TranslatorAdapter_1_1_4 : public TranslatorAdapter_1_1_5 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.1.4"); } + + QCString trReferencedBy() + { return english.trReferencedBy(); } + + QCString trRemarks() + { return english.trRemarks(); } + + QCString trAttention() + { return english.trAttention(); } + + QCString trInclByDepGraph() + { return english.trInclByDepGraph(); } + + QCString trSince() + { return english.trSince(); } +}; + +/*! \brief Translator adapter class for release 1.1.3 + * + * Translator adapter for dealing with translator changes since + * release 1.1.3 + */ +class TranslatorAdapter_1_1_3 : public TranslatorAdapter_1_1_4 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.1.3"); } + + QCString trTodo() + { return english.trTodo(); } + + QCString trTodoList() + { return english.trTodoList(); } +}; + +/*! \brief Translator adapter class for release 1.1.0 + * + * Translator adapter for dealing with translator changes since + * release 1.1.0 + */ +class TranslatorAdapter_1_1_0 : public TranslatorAdapter_1_1_3 +{ + public: + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.1.0"); } + + QCString trNote() + { return english.trNote(); } + + QCString trPublicTypes() + { return english.trPublicTypes(); } + + QCString trPublicAttribs() + { return english.trPublicAttribs(); } + + QCString trStaticPublicAttribs() + { return english.trStaticPublicAttribs(); } + + QCString trProtectedTypes() + { return english.trProtectedTypes(); } + + QCString trProtectedAttribs() + { return english.trProtectedAttribs(); } + + QCString trStaticProtectedAttribs() + { return english.trStaticProtectedAttribs(); } + + QCString trPrivateTypes() + { return english.trPrivateTypes(); } + + QCString trPrivateAttribs() + { return english.trPrivateAttribs(); } + + QCString trStaticPrivateAttribs() + { return english.trStaticPrivateAttribs(); } + + QCString trEnumerationValueDocumentation() + { return english.trEnumerationValueDocumentation(); } +}; + +/*! \brief Translator adapter class for release 1.0.0 + * + * Translator adapter for dealing with translator changes since + * release 1.0.0 + */ +class TranslatorAdapter_1_0_0 : public TranslatorAdapter_1_1_0 +{ + QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"1.0.0"); } + + QCString trIncludingInheritedMembers() + { return english.trIncludingInheritedMembers(); } + + QCString trFuncProtos() + { return english.trFuncProtos(); } + + QCString trNamespaces() + { return english.trNamespaces(); } + + QCString trGeneratedFromFiles(ClassDef::CompoundType compType, + bool single) + { return english.trGeneratedFromFiles(compType, single); } + + QCString trAlphabeticalList() + { return english.trAlphabeticalList(); } + + QCString trReturnValues() + { return english.trReturnValues(); } + + QCString trMainPage() + { return english.trMainPage(); } + + QCString trPageAbbreviation() + { return english.trPageAbbreviation(); } + + QCString trSources() + { return english.trSources(); } + + QCString trStaticProtectedMembers() + { return english.trStaticProtectedMembers(); } + + QCString trDefinedAtLineInSourceFile() + { return english.trDefinedAtLineInSourceFile(); } + + QCString trDefinedInSourceFile() + { return english.trDefinedInSourceFile(); } + + QCString trDeprecated() + { return english.trDeprecated(); } + + QCString trCollaborationDiagram(const char *clName) + { return english.trCollaborationDiagram(clName); } + + QCString trInclDepGraph(const char *fName) + { return english.trInclDepGraph(fName); } + + QCString trConstructorDocumentation() + { return english.trConstructorDocumentation(); } + + QCString trGotoSourceCode() + { return english.trGotoSourceCode(); } + + QCString trGotoDocumentation() + { return english.trGotoDocumentation(); } + + QCString trPrecondition() + { return english.trPrecondition(); } + + QCString trPostcondition() + { return english.trPostcondition(); } + + QCString trInvariant() + { return english.trInvariant(); } + + QCString trInitialValue() + { return english.trInitialValue(); } + + QCString trCode() + { return english.trCode(); } + + QCString trGraphicalHierarchy() + { return english.trGraphicalHierarchy(); } + + QCString trGotoGraphicalHierarchy() + { return english.trGotoGraphicalHierarchy(); } + + QCString trGotoTextualHierarchy() + { return english.trGotoTextualHierarchy(); } + + QCString trPageIndex() + { return english.trPageIndex(); } + + QCString trReimplementedForInternalReasons() + { return english.trReimplementedForInternalReasons(); } + + QCString trClassHierarchyDescription() + { return english.trClassHierarchyDescription(); } + + QCString trNoDescriptionAvailable() + { return english.trNoDescriptionAvailable(); } + + QCString trEnumerationValues() + { return english.trEnumerationValues(); } + + QCString trFunctionPrototypeDocumentation() + { return english.trFunctionPrototypeDocumentation(); } + + QCString trEnumerationTypeDocumentation() + { return english.trEnumerationTypeDocumentation(); } + + QCString trFunctionDocumentation() + { return english.trFunctionDocumentation(); } + + QCString trRelatedFunctionDocumentation() + { return english.trRelatedFunctionDocumentation(); } + +}; + +#endif diff --git a/src/translator_br.h b/src/translator_br.h index ae8ed73..a2f748f 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -18,9 +18,9 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -#include "translator.h" +#include "translator_adapter.h" -class TranslatorBrazilian: public Translator +class TranslatorBrazilian: public TranslatorAdapter_1_2_6 { public: diff --git a/src/translator_cn.h b/src/translator_cn.h index ebc0652..f534346 100644 --- a/src/translator_cn.h +++ b/src/translator_cn.h @@ -18,7 +18,7 @@ #ifndef TRANSLATOR_CN_H #define TRANSLATOR_CN_H -#include "translator.h" +#include "translator_adapter.h" /*! If you want insert a space whenever Chinese meets English charactors, set @@ -26,7 +26,7 @@ */ #define CN_SPC -class TranslatorChinese : public Translator +class TranslatorChinese : public TranslatorAdapter_1_2_1 { public: QCString idLanguage() @@ -389,6 +389,18 @@ class TranslatorChinese : public Translator { return "цЭцШ©у╪Днд╣╣"; } ////////////////////////////////////////////////////////////////////////// +// new since 0.49-990522 +////////////////////////////////////////////////////////////////////////// + + /*! This is used in the documentation before the list of all + * namespaces in a file. + */ + QCString trNamespaces() + { + return "Namespaces"; + } + +////////////////////////////////////////////////////////////////////////// // new since 0.49-990728 ////////////////////////////////////////////////////////////////////////// diff --git a/src/translator_cz.h b/src/translator_cz.h index 41187da..479eba6 100644 --- a/src/translator_cz.h +++ b/src/translator_cz.h @@ -18,7 +18,6 @@ #ifndef TRANSLATOR_CZ_H #define TRANSLATOR_CZ_H -#include "translator.h" // The first translation from English to Czech was started by // Vlastimil Havran. He wrote: @@ -32,76 +31,83 @@ // The prototype version of Czech strings with diacritics was // implemented by Petr Prikryl (prikrylp@skil.cz), 2000/06/20. As // Vlastimil was quite busy at the time, he agreed that Petr be the -// second maintainer. +// maintainer for a while (from 2000/06/20). // // Updates: // -------- -// 2000/06/20 (Petr Prikryl) +// 2000/06/20 // - The prototype version of Czech strings with diacritics. The // translation was based on translator.h of Doxygen version // 1.1.4 (from scratch). // -// 2000/07/10 (Petr Prikryl) +// 2000/07/10 // - Updated version based on 1.1.5 sources (including important updates // of the up-to-1.1.4 strings). Czech strings in this file were written // in windows-1250 encoding. On-line decoding into iso-8859-2 ensured // via conditional compilation if the sources are compiled under UNIX. // -// 2000/07/19 (Petr Prikryl) +// 2000/07/19 // - Encoding conversion tables moved to the methods that use them. // - Updates for "new since 1.1.5". // // 2000/08/02 (Petr Prikryl) // - Updated for 1.2.0 // -// 2000/08/24 (Petr Prikryl) +// 2000/08/24 // - Changed trTodo() text from "Udelat" to "Planovane upravy" // which seems more appropriate in the document context. // - Typo corrected in trMemberTypedefDocumentation(). // -// 2000/08/30 (Petr Prikryl) +// 2000/08/30 // - Macro DECODE replaced by the inline Decode() (proposed by // Boris Bralo in translator_hr.h). // -// 2000/08/31 (Petr Prikryl) +// 2000/08/31 // - Methods ISOToWin() and WinToISO() renamed and moved to the // base class (in translator.h) to be shared with the Croatian // translator. // -// 2000/09/06 (Petr Prikryl) +// 2000/09/06 // - Reimplementation of the method trInheritsList() which takes // into account quantity of base classes. // -// 2000/09/11 (Petr Prikryl) +// 2000/09/11 // - Update for "new since 1.2.1" version. The text of trDCOPMethods() // was translated rather blindly (not knowing what exactly // the DCOP means). // -// 2000/10/17 (Petr Prikryl) +// 2000/10/17 // - Update for "new since 1.2.2" version. // -// 2001/01/09 (Petr Prikryl) +// 2001/01/09 // - Update for "new since 1.2.4" version. As I do not use Java, // I tried my best to guess the Czech terminology for the Java. // Let me know if some wording should be changed/improved. // -// 2001/02/15 (Petr Prikryl) +// 2001/02/15 // - trMore() now returns only "..." (ellipsis). The Czech replacement // of "(more)" was too much visible. The previous "(...)" did not // look well. // -// 2001/02/26 (Petr Prikryl) +// 2001/02/26 // - Update for "new since 1.2.5" version (trBug(), trBugList()). // -// 2001/03/12 (Petr Prikryl) +// 2001/03/12 // - Minor correction of comments which copied the same // corrections in translator.h (doubled backslash) just after // 1.2.6 release. // -// 2001/04/10 (Petr Prikryl) +// 2001/04/10 // - Update for OPTIMIZE_OUTPUT_FOR_C (1.2.6-20010408). // - Removed implementation of latexBabelPackage(). // - Removed implementation of trVerbatimText(). +// +// 2001/04/20 +// - Update for "new since 1.2.6-20010422". Experimental version +// introducing TranslatorAdapter class and the abstract base +// class Translator. The English translator is now on the same +// level as other translators. +// // // Notices: // -------- @@ -114,7 +120,9 @@ // Windows version. The version which does not call the function is // probably slightly faster. -class TranslatorCzech : public Translator +#include "translator_adapter.h" + +class TranslatorCzech : public TranslatorAdapterBase { private: /*! The Decode() inline assumes the source written in the @@ -291,7 +299,7 @@ class TranslatorCzech : public Translator /*! This is put above each page as a link to all related pages. */ virtual QCString trRelatedPages() - { return Decode("SouvisejМcМ strАnky"); } + { return Decode("OstatnМ strАnky"); } /*! This is put above each page as a link to all examples. */ virtual QCString trExamples() @@ -416,8 +424,9 @@ class TranslatorCzech : public Translator /*! This is an introduction to the page with the list of related pages */ virtual QCString trRelatedPagesDescription() - { return Decode("Zde naleznete seznam v ech souvisejМcМch strАnek " - "dokumentace:"); } + { return Decode("NАsledujМcМ seznam odkazuje na dal М strАnky projektu, " + "kterИ majМ charakter uspoЬАdanЩch seznamЫ informacМ, " + "posbМranЩch z rЫznЩch mМst ve zdrojovЩch souborech:"); } /*! This is an introduction to the page with the list of class/file groups */ virtual QCString trModulesDescription() @@ -1314,6 +1323,115 @@ class TranslatorCzech : public Translator return Decode("Seznam chyb"); } +////////////////////////////////////////////////////////////////////////// +// new since 1.2.6-20010422 +////////////////////////////////////////////////////////////////////////// + + /*! Used as ansicpg for RTF file */ + virtual QCString trRTFansicp() + { + return "1250"; + } + + /*! Used as ansicpg for RTF fcharset */ + virtual QCString trRTFCharSet() + { + return "0"; //??? + } + + /*! Used as header RTF general index */ + virtual QCString trRTFGeneralIndex() + { + return "Index"; //??? + } + + /*! 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. + */ + virtual QCString trClass(bool first_capital, bool singular) + { + QCString result((first_capital ? "TЬМd" : "tЬМd")); + result+=(singular ? "a" : "y"); + return Decode(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. + */ + virtual QCString trFile(bool first_capital, bool singular) + { + QCString result((first_capital ? "Soubor" : "soubor")); + if (!singular) result+="y"; + return Decode(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. + */ + virtual QCString trNamespace(bool first_capital, bool singular) + { + QCString result((first_capital ? "Prostor" : "prostor")); + if (!singular) result+="y"; + result+=" jmen"; + return Decode(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. + */ + virtual QCString trGroup(bool first_capital, bool singular) + { + QCString result((first_capital ? "Skupin" : "skupin")); + result+=(singular ? "a" : "y"); + return Decode(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. + */ + virtual QCString trPage(bool first_capital, bool singular) + { + QCString result((first_capital ? "StrАnk" : "strАnk")); + result+=(singular ? "a" : "y"); + return Decode(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. + */ + virtual QCString trMember(bool first_capital, bool singular) + { + QCString result((first_capital ? "хlen" : "Хlen")); + if (!singular) result+="y"; + return Decode(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. + */ + virtual QCString trField(bool first_capital, bool singular) + { + QCString result((first_capital ? "Polo·k" : "polo·k")); + result+=(singular ? "a" : "y"); + return Decode(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; + } }; #endif // TRANSLATOR_CZ_H diff --git a/src/translator_de.h b/src/translator_de.h index 3d157ff..9a65fe2 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -50,9 +50,9 @@ #ifndef TRANSLATOR_DE_H #define TRANSLATOR_DE_H -#include "translator.h" +#include "translator_adapter.h" -class TranslatorGerman : public Translator +class TranslatorGerman : public TranslatorAdapter_1_2_6 { public: QCString idLanguage() diff --git a/src/translator_en.h b/src/translator_en.h new file mode 100644 index 0000000..f914bdd --- /dev/null +++ b/src/translator_en.h @@ -0,0 +1,1288 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2001 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 + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#ifndef TRANSLATOR_EN_H +#define TRANSLATOR_EN_H + +#include "translator.h" + +class TranslatorEnglish : 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 + * of the language in English using lower-case characters only + * (e.g. "czech", "japanese", "russian", etc.). It should be equal to + * the identification used in language.cpp. + */ + virtual QCString idLanguage() + { return "english"; } + + /*! Used to get the LaTeX command(s) for the language support. This method + * was designed for languages which do wish to use a babel package. + */ + virtual QCString latexLanguageSupportCommand() + { + return ""; + } + + /*! return the language charset. This will be used for the HTML output */ + virtual QCString idLanguageCharset() + { + return "iso-8859-1"; + } + + // --- Language translation methods ------------------- + + /*! used in the compound documentation before a list of related functions. */ + virtual QCString trRelatedFunctions() + { return "Related Functions"; } + + /*! subscript for the related functions. */ + virtual QCString trRelatedSubscript() + { return "(Note that these are not member functions.)"; } + + /*! header that is put before the detailed description of files, classes and namespaces. */ + virtual QCString trDetailedDescription() + { return "Detailed Description"; } + + /*! header that is put before the list of typedefs. */ + virtual QCString trMemberTypedefDocumentation() + { return "Member Typedef Documentation"; } + + /*! header that is put before the list of enumerations. */ + virtual QCString trMemberEnumerationDocumentation() + { return "Member Enumeration Documentation"; } + + /*! header that is put before the list of member functions. */ + virtual QCString trMemberFunctionDocumentation() + { return "Member Function Documentation"; } + + /*! header that is put before the list of member attributes. */ + virtual QCString trMemberDataDocumentation() + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Field Documentation"; + } + else + { + return "Member Data Documentation"; + } + } + + /*! this is the text of a link put after brief descriptions. */ + virtual QCString trMore() + { return "More..."; } + + /*! put in the class documentation */ + virtual QCString trListOfAllMembers() + { return "List of all members."; } + + /*! used as the title of the "list of all members" page of a class */ + virtual QCString trMemberList() + { return "Member List"; } + + /*! this is the first part of a sentence that is followed by a class name */ + virtual QCString trThisIsTheListOfAllMembers() + { return "This is the complete list of members for "; } + + /*! this is the remainder of the sentence after the class name */ + virtual QCString trIncludingInheritedMembers() + { return ", including all inherited members."; } + + /*! 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="Generated automatically by Doxygen"; + if (s) result+=(QCString)" for "+s; + result+=" from the source code."; + return result; + } + + /*! put after an enum name in the list of all members */ + virtual QCString trEnumName() + { return "enum name"; } + + /*! put after an enum value in the list of all members */ + virtual QCString trEnumValue() + { return "enum value"; } + + /*! put after an undocumented member in the list of all members */ + virtual QCString trDefinedIn() + { return "defined in"; } + + // 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). + */ + virtual QCString trModules() + { return "Modules"; } + + /*! This is put above each page as a link to the class hierarchy */ + virtual QCString trClassHierarchy() + { return "Class Hierarchy"; } + + /*! 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 "Data Structures"; + } + else + { + return "Compound List"; + } + } + + /*! This is put above each page as a link to the list of documented files */ + virtual QCString trFileList() + { return "File List"; } + + /*! This is put above each page as a link to the list of all verbatim headers */ + virtual QCString trHeaderFiles() + { return "Header Files"; } + + /*! 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 "Data Fields"; + } + else + { + return "Compound Members"; + } + } + + /*! 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 "Globals"; + } + else + { + return "File Members"; + } + } + + /*! This is put above each page as a link to all related pages. */ + virtual QCString trRelatedPages() + { return "Related Pages"; } + + /*! This is put above each page as a link to all examples. */ + virtual QCString trExamples() + { return "Examples"; } + + /*! This is put above each page as a link to the search engine. */ + virtual QCString trSearch() + { return "Search"; } + + /*! This is an introduction to the class hierarchy. */ + virtual QCString trClassHierarchyDescription() + { return "This inheritance list is sorted roughly, " + "but not completely, alphabetically:"; + } + + /*! This is an introduction to the list with all files. */ + virtual QCString trFileListDescription(bool extractAll) + { + QCString result="Here is a list of all "; + if (!extractAll) result+="documented "; + result+="files with brief descriptions:"; + return result; + } + + /*! This is an introduction to the annotated compound list. */ + virtual QCString trCompoundListDescription() + { + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + return "Here are the data structures with brief descriptions:"; + } + else + { + return "Here are the classes, structs, " + "unions and interfaces with brief descriptions:"; + } + } + + /*! This is an introduction to the page with all class members. */ + virtual QCString trCompoundMembersDescription(bool extractAll) + { + QCString result="Here is a list of all "; + if (!extractAll) + { + result+="documented "; + } + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="struct and union fields"; + } + else + { + result+="class members"; + } + result+=" with links to "; + if (extractAll) + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="the struct/union documentation for each field:"; + } + else + { + result+="the class documentation for each member:"; + } + } + else + { + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="the structures/unions they belong to:"; + } + else + { + result+="the classes they belong to:"; + } + } + return result; + } + + /*! This is an introduction to the page with all file members. */ + virtual QCString trFileMembersDescription(bool extractAll) + { + QCString result="Here is a list of all "; + if (!extractAll) result+="documented "; + + if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C")) + { + result+="functions, variables, defines, enums, and typedefs"; + } + else + { + result+="file members"; + } + result+=" with links to "; + if (extractAll) + result+="the files they belong to:"; + else + result+="the documentation:"; + return result; + } + + /*! This is an introduction to the page with the list of all header files. */ + virtual QCString trHeaderFilesDescription() + { return "Here are the header files that make up the API:"; } + + /*! This is an introduction to the page with the list of all examples */ + virtual QCString trExamplesDescription() + { return "Here is a list of all examples:"; } + + /*! This is an introduction to the page with the list of related pages */ + virtual QCString trRelatedPagesDescription() + { return "Here is a list of all related documentation pages:"; } + + /*! This is an introduction to the page with the list of class/file groups */ + virtual QCString trModulesDescription() + { return "Here is a list of all modules:"; } + + /*! This sentences is used in the annotated class/file lists if no brief + * description is given. + */ + virtual QCString trNoDescriptionAvailable() + { return "No description available"; } + + // index titles (the project name is prepended for these) + + + /*! This is used in HTML as the title of index.html. */ + virtual QCString trDocumentation() + { return "Documentation"; } + + /*! This is used in LaTeX as the title of the chapter with the + * index of all groups. + */ + virtual QCString trModuleIndex() + { return "Module Index"; } + + /*! This is used in LaTeX as the title of the chapter with the + * class hierarchy. + */ + virtual QCString trHierarchicalIndex() + { return "Hierarchical Index"; } + + /*! 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 "Data Structure Index"; + } + else + { + return "Compound Index"; + } + } + + /*! This is used in LaTeX as the title of the chapter with the + * list of all files. + */ + virtual QCString trFileIndex() + { return "File Index"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all groups. + */ + virtual QCString trModuleDocumentation() + { return "Module Documentation"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all classes, structs and unions. + */ + virtual QCString trClassDocumentation() + { return "Class Documentation"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all files. + */ + virtual QCString trFileDocumentation() + { return "File Documentation"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all examples. + */ + virtual QCString trExampleDocumentation() + { return "Example Documentation"; } + + /*! This is used in LaTeX as the title of the chapter containing + * the documentation of all related pages. + */ + virtual QCString trPageDocumentation() + { return "Page Documentation"; } + + /*! This is used in LaTeX as the title of the document */ + virtual QCString trReferenceManual() + { return "Reference Manual"; } + + /*! This is used in the documentation of a file as a header before the + * list of defines + */ + virtual QCString trDefines() + { return "Defines"; } + + /*! This is used in the documentation of a file as a header before the + * list of function prototypes + */ + virtual QCString trFuncProtos() + { return "Function Prototypes"; } + + /*! This is used in the documentation of a file as a header before the + * list of typedefs + */ + virtual QCString trTypedefs() + { return "Typedefs"; } + + /*! This is used in the documentation of a file as a header before the + * list of enumerations + */ + virtual QCString trEnumerations() + { return "Enumerations"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) functions + */ + virtual QCString trFunctions() + { return "Functions"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trVariables() + { return "Variables"; } + + /*! This is used in the documentation of a file as a header before the + * list of (global) variables + */ + virtual QCString trEnumerationValues() + { return "Enumeration values"; } + + /*! This is used in man pages as the author section. */ + virtual QCString trAuthor() + { return "Author"; } + + /*! This is used in the documentation of a file before the list of + * documentation blocks for defines + */ + virtual QCString trDefineDocumentation() + { return "Define Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for function prototypes + */ + virtual QCString trFunctionPrototypeDocumentation() + { return "Function Prototype Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for typedefs + */ + virtual QCString trTypedefDocumentation() + { return "Typedef Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration types + */ + virtual QCString trEnumerationTypeDocumentation() + { return "Enumeration Type Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for enumeration values + */ + virtual QCString trEnumerationValueDocumentation() + { return "Enumeration Value Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for functions + */ + virtual QCString trFunctionDocumentation() + { return "Function Documentation"; } + + /*! This is used in the documentation of a file/namespace before the list + * of documentation blocks for variables + */ + virtual QCString trVariableDocumentation() + { return "Variable Documentation"; } + + /*! 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 "Data Structures"; + } + else + { + return "Compounds"; + } + } + + /*! 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)"Generated at "+date; + if (projName) result+=(QCString)" for "+projName; + result+=(QCString)" by"; + return result; + } + /*! This is part of the sentence used in the standard footer of each page. + */ + virtual QCString trWrittenBy() + { + return "written by"; + } + + /*! this text is put before a class diagram */ + virtual QCString trClassDiagram(const char *clName) + { + return (QCString)"Inheritance diagram for "+clName+":"; + } + + /*! this text is generated when the \\internal command is used. */ + virtual QCString trForInternalUseOnly() + { return "For internal use only."; } + + /*! this text is generated when the \\reimp command is used. */ + virtual QCString trReimplementedForInternalReasons() + { return "Reimplemented for internal reasons; the API is not affected."; } + + /*! this text is generated when the \\warning command is used. */ + virtual QCString trWarning() + { return "Warning"; } + + /*! this text is generated when the \\bug command is used. */ + virtual QCString trBugsAndLimitations() + { return "Bugs and limitations"; } + + /*! this text is generated when the \\version command is used. */ + virtual QCString trVersion() + { return "Version"; } + + /*! this text is generated when the \\date command is used. */ + virtual QCString trDate() + { return "Date"; } + + /*! this text is generated when the \\author command is used. */ + virtual QCString trAuthors() + { return "Author(s)"; } + + /*! this text is generated when the \\return command is used. */ + virtual QCString trReturns() + { return "Returns"; } + + /*! this text is generated when the \\sa command is used. */ + virtual QCString trSeeAlso() + { return "See also"; } + + /*! this text is generated when the \\param command is used. */ + virtual QCString trParameters() + { return "Parameters"; } + + /*! this text is generated when the \\exception command is used. */ + virtual QCString trExceptions() + { return "Exceptions"; } + + /*! this text is used in the title page of a LaTeX document. */ + virtual QCString trGeneratedBy() + { return "Generated by"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990307 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of page containing all the index of all namespaces. */ + virtual QCString trNamespaceList() + { return "Namespace List"; } + + /*! used as an introduction to the namespace list */ + virtual QCString trNamespaceListDescription(bool extractAll) + { + QCString result="Here is a list of all "; + if (!extractAll) result+="documented "; + result+="namespaces with brief descriptions:"; + return result; + } + + /*! used in the class documentation as a header before the list of all + * friends of a class + */ + 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 + */ + virtual QCString trRelatedFunctionDocumentation() + { return "Friends And Related Function Documentation"; } + +////////////////////////////////////////////////////////////////////////// +// new since 0.49-990425 +////////////////////////////////////////////////////////////////////////// + + /*! used as the title of the HTML page of a class/struct/union */ + virtual QCString trCompoundReference(const char *clName, + ClassDef::CompoundType compType, + bool isTemplate) + { + QCString result=(QCString)clName+" "; + switch(compType) + { + case ClassDef::Class: result+=" Class"; break; + case ClassDef::Struct: result+=" Struct"; break; + case ClassDef::Union: result+=" Union"; break; + case ClassDef::Interface: result+=" Interface"; break; + case ClassDef::Exception: result+=" Exception"; break; + } + if (isTemplate) result+=" Template"; + result+=" Reference"; + return result; + } + + /*! used as the title of the HTML page of a file */ + virtual QCString trFileReference(const char *fileName) + { + QCString result=fileName; + result+=" File Reference"; + return result; + } + + /*! used as the title of the HTML page of a namespace */ + virtual QCString trNamespaceReference(const char *namespaceName) + { + QCString result=namespaceName; + result+=" Namespace Reference"; + return result; + } + + virtual QCString trPublicMembers() + { return "Public Methods"; } + virtual QCString trPublicSlots() + { return "Public Slots"; } + virtual QCString trSignals() + { return "Signals"; } + virtual QCString trStaticPublicMembers() + { return "Static Public Methods"; } + virtual QCString trProtectedMembers() + { return "Protected Methods"; } + virtual QCString trProtectedSlots() + { return "Protected Slots"; } + virtual QCString trStaticProtectedMembers() + { return "Static Protected Methods"; } + virtual QCString trPrivateMembers() + { return "Private Methods"; } + virtual QCString trPrivateSlots() + { return "Private Slots"; } + virtual QCString trStaticPrivateMembers() + { return "Static Private Methods"; } + + /*! this function is used to produce a comma-separated list of items. + * use generateMarker(i) to indicate where item i should be put. + */ + virtual QCString trWriteList(int numEntries) + { + QCString result; + int i; + // the inherits list contain `numEntries' classes + for (i=0;i