diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2011-01-08 16:28:16 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2011-01-08 16:28:16 +0000 |
| commit | 2dc664935d8109767c2d107c6b644082fe06ac05 (patch) | |
| tree | 6e5e622962a1503161b86884cd3423cb2bba1ab1 /branch-3.0-2011/documentation/src/development.dox | |
| parent | f62a6a927a8ce7aa91b023e7aafad9b5ff96f755 (diff) | |
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'branch-3.0-2011/documentation/src/development.dox')
| -rw-r--r-- | branch-3.0-2011/documentation/src/development.dox | 404 |
1 files changed, 404 insertions, 0 deletions
diff --git a/branch-3.0-2011/documentation/src/development.dox b/branch-3.0-2011/documentation/src/development.dox new file mode 100644 index 000000000..11fe2c467 --- /dev/null +++ b/branch-3.0-2011/documentation/src/development.dox @@ -0,0 +1,404 @@ +/** + + \page development Developer Information + +This chapter describes FLTK development and documentation. + +\note documentation with doxygen will be described here. + + +<H2>Example</H2> + +\note + +In the following code example(s) "*" will be replaced by "#" +as a temporary solution. + +\code + + +/## \file + Fl_Clock, Fl_Clock_Output widgets . #/ + + +/## + \class Fl_Clock_Output + \brief This widget can be used to display a program-supplied time. + + The time shown on the clock is not updated. To display the current time, + use Fl_Clock instead. + + \image html clock.png + \image latex clock.png "" width=10cm + \image html round_clock.png + \image latex clock.png "" width=10cm + \image html round_clock.png "" width=10cm #/ + + /## + Returns the displayed time. + Returns the time in seconds since the UNIX epoch (January 1, 1970). + \see value(ulong) + #/ + ulong value() const {return value_;} + +/## + Set the displayed time. + Set the time in seconds since the UNIX epoch (January 1, 1970). + \param[in] v seconds since epoch + \see value() + #/ +void Fl_Clock_Output::value(ulong v) { + [...] +} + +/## + Create an Fl_Clock widget using the given position, size, and label string. + The default boxtype is \c FL_NO_BOX. + \param[in] X, Y, W, H position and size of the widget + \param[in] L widget label, default is no label + #/ +Fl_Clock::Fl_Clock(int X, int Y, int W, int H, const char #L) + : Fl_Clock_Output(X, Y, W, H, L) {} + +/## + Create an Fl_Clock widget using the given boxtype, position, size, and + label string. + \param[in] t boxtype + \param[in] X, Y, W, H position and size of the widget + \param[in] L widget label, default is no label + #/ +Fl_Clock::Fl_Clock(uchar t, int X, int Y, int W, int H, const char #L) + : Fl_Clock_Output(X, Y, W, H, L) { + type(t); + box(t==FL_ROUND_CLOCK ? FL_NO_BOX : FL_UP_BOX); +} + + +\endcode + + +\note + +From Duncan: (will be removed later, just for now as a reminder) + +5. I've just added comments for the fl_color_chooser() functions, and + in order to keep them and the general Function Reference information + for them together, I created a new doxygen group, and used \\ingroup + in the three comment blocks. This creates a new Modules page (which + may not be what we want) with links to it from the File Members and + Fl_Color_Chooser.H pages. It needs a bit more experimentation on my + part unless someone already knows how this should be handled. (Maybe + we can add it to a functions.dox file that defines a functions group + and do that for all of the function documentation?) + +\b Update: the trick is not to create duplicate entries in a new group, but + to move the function information into the doxygen comments for the + class, and use the navigation links provided. Simply using \\relatesalso + as the first doxygen command in the function's comment puts it in the + appropriate place. There is no need to have \\defgroup and \\ingroup as + well, and indeed they don't work. So, to summarize: +\code +Gizmo.H + /## \class Gizmo + A gizmo that does everything + #/ + class Gizmo { + etc + }; + extern int popup_gizmo(...); + +Gizmo.cxx: + /## \relatesalso Gizmo + Pops up a gizmo dialog with a Gizmo in it + #/ + int popup_gizmo(...); +\endcode + +<H3>Example comment:</H3> + +You can use HTML comment statements to embed comments in doxygen comment blocks. +These comments will not be visible in the generated document. + + The following text is a developer comment. + <!-- *** This *** is *** invisible *** --> + This will be visible again. + +\code + The following text is a developer comment. + <!-- *** This *** is *** invisible *** --> + This will be visible again. +\endcode + + +<H3>Different Headlines:</H3> + +\code + <H1>Headline in big text (H1)</H1> + <H2>Headline in big text (H2)</H2> + <H3>Headline in big text (H3)</H3> + <H4>Headline in big text (H4)</H4> +\endcode + + <H1>Headline in big text (H1)</H1> + <H2>Headline in big text (H2)</H2> + <H3>Headline in big text (H3)</H3> + <H4>Headline in big text (H4)</H4> + + +\section development_non-ascii Non-ASCII characters + + if you came here from below: back to \ref development_links + +\code + Doxygen understands many HTML quoting characters like + ", ü, ç, Ç, but not all HTML quoting characters. +\endcode + +This will appear in the document: + + Doxygen understands many HTML quoting characters like + ", ü, ç, Ç, but not all HTML quoting characters. + +For further informations about quoting see + \b http://www.stack.nl/~dimitri/doxygen/htmlcmds.html + +<H3>Example with UTF-8 encoded text</H3> + +\code + + <P>Assuming that the following source code was written on MS Windows, + this example will output the correct label on OS X and X11 as well. + Without the conversion call, the label on OS X would read + <tt>Fahrvergn¸gen</tt> with a deformed umlaut u ("cedille", + html "¸"). + \#code + btn = new Fl_Button(10, 10, 300, 25); + btn->copy_label(fl_latin1_to_local("Fahrvergnügen")); + \#endcode + + \note If your application uses characters that are not part of both + encodings, or it will be used in areas that commonly use different + code pages, you might consider upgrading to FLTK 2 which supports + UTF-8 encoding. + + \todo This is an example todo entry, please ignore ! + +\endcode + +This will appear in the document: + + <P>Assuming that the following source code was written on MS Windows, + this example will output the correct label on OS X and X11 as well. + Without the conversion call, the label on OS X would read + <tt>Fahrvergn¸gen</tt> with a deformed umlaut u ("cedille", + html "¸"). + \#code + btn = new Fl_Button(10, 10, 300, 25); + btn->copy_label(fl_latin1_to_local("Fahrvergnügen")); + \#endcode + + \note If your application uses characters that are not part of both + encodings, or it will be used in areas that commonly use different + code pages, you might consider upgrading to FLTK 2 which supports + UTF-8 encoding. + + \todo This is an example todo entry, please ignore ! + +\section development_structure Document Structure + + \li \b \\page creates a named page + \li \b \\section creates a named section within that page + \li \b \\subsection creates a named subsection within the current section + \li \b \\subsubsection creates a named subsubsection within the current subsection + +All these statements take a "name" as their first argument, and a title +as their second argument. The title can contain spaces. + +The page, section, and subsection titles are formatted in blue color and +a size like \b "<H1>", \b "<H2>", and \b "<H3>", and \b "<H4>", respectively. + +By <b>FLTK documentation convention</b>, a file like this one with a doxygen +documentation chapter has the name <b>"<chapter>.dox".</b> +The \b \\page statement at the top of the page is +<b>"\page <chapter> This is the title"</b>. +Sections within a documentation page must be called \b "<chapter>_<section>", +where \b "<chapter>" is the name part of the file, and \b "<section>" is a +unique section name within the page that can be referenced in links. The +same for subsections and subsubsections. + +These doxygen page and section commands work only in special documentation +chapters, not within normal source or header documentation blocks. However, +links \b from normal (e.g. class) documentation \b to documentation sections +\b do \b work. + +This page has + \code + \page development I - Developer Information + \endcode +at its top. + +This section is + \code + \section development_structure Document structure + \endcode + +The following section is + \code + \section development_links Creating Links + \endcode + + +\section development_links Creating Links + +Links to other documents and external links can be embedded with + +- doxygen \\ref links to other doxygen \\page, \\section, + \\subsection and \\anchor locations +- HTML links without markup - doxygen creates "http://..." + links automatically +- standard, non-Doxygen, HTML links + +\code + +- see chapter \ref unicode creates a link to the named chapter + unicode that has been created with a \page statement. + +- For further informations about quoting see + http://www.stack.nl/~dimitri/doxygen/htmlcmds.html + +- see <a href="http://www.nedit.org/">Nedit</a> creates + a standard HTML link + +\endcode + +appears as: + +- see chapter \ref unicode creates a link to the named chapter + unicode that has been created with a \\page statement. + +- For further informations about quoting see + http://www.stack.nl/~dimitri/doxygen/htmlcmds.html + +- see <a href="http://www.nedit.org/">Nedit</a> creates + a standard HTML link + + +\section development_paragraphs Paragraph Layout + +There is no real need to use HTML \<P\> and \</P\> tags within the text +to tell doxygen to start or stop a paragraph. In most cases, when doxygen +encounters a blank line or some, but not all, \b \\commands in the text it +knows that it as reached the start or end of a paragraph. Doxygen also +offers the \b \\par command for special paragraph handling. It can be used +to provide a paragraph title and also to indent a paragraph. Unfortunately +\b \\par won't do what you expect if you want to have doxygen links and +sometimes html tags don't work either. + + <!-- use verbatim rather than code to avoid links to code reference --> + \verbatim + \par Normal Paragraph with title + + This paragraph will have a title, but because there is a blank line + between the \par and the text, it will have the normal layout. + + \par Indented Paragraph with title + This paragraph will also have a title, but because there is no blank + line between the \par and the text, it will be indented. + + \par + It is also possible to have an indented paragraph without title. + This is how you indent subsequent paragraphs. + + \par No link to Fl_Widget::draw() + Note that the paragraph title is treated as plain text. + Doxygen type links will not work. + HTML characters and tags may or may not work. + + Fl_Widget::draw() links and "html" tags work<br> + \par + Use a single line ending with <br> for complicated paragraph titles. + \endverbatim + +The above code produces the following paragraphs: + + \par Normal Paragraph with title + + This paragraph will have a title, but because there is a blank line + between the \\par and the text, it will have the normal layout. + + \par Indented Paragraph with title + This paragraph will also have a title, but because there is no blank + line between the \\par and the text, it will be indented. + + \par + It is also possible to have an indented paragraph without title. + This is how you indent subsequent paragraphs. + + \par No link to Fl_Widget::draw() + Note that the paragraph title is treated as plain text. + Doxygen type links will not work. + HTML characters and tags may or may not work. + + Fl_Widget::draw() links and "html" tags work<br> + \par + Use a single line ending with \<br\> for complicated paragraph titles. + + +\section development_navigation_test Navigation Elements + +Each introduction (tutorial) page ends with navigation elements. These +elements must only be included in the html documentation, therefore +they must be separated with \\htmlonly and \\endhtmlonly. + +The following code gives the navigation bar at the bottom of this page: + +\verbatim +\htmlonly +<hr> +<table summary="navigation bar" width="100%" border="0"> +<tr> + <td width="45%" align="LEFT"> + <a class="el" href="migration_1_3.html"> + [Prev] + Migrating Code from FLTK 1.1 to 1.3 + </a> + </td> + <td width="10%" align="CENTER"> + <a class="el" href="main.html">[Index]</a> + </td> + <td width="45%" align="RIGHT"> + <a class="el" href="license.html"> + Software License + [Next] + </a> + </td> +</tr> +</table> +\endhtmlonly +\endverbatim + + +\htmlonly +<hr> +<table summary="navigation bar" width="100%" border="0"> +<tr> + <td width="45%" align="LEFT"> + <a class="el" href="migration_1_3.html"> + [Prev] + Migrating Code from FLTK 1.1 to 1.3 + </a> + </td> + <td width="10%" align="CENTER"> + <a class="el" href="main.html">[Index]</a> + </td> + <td width="45%" align="RIGHT"> + <a class="el" href="license.html"> + Software License + [Next] + </a> + </td> +</tr> +</table> +\endhtmlonly + +*/ |
