diff options
| -rw-r--r-- | doc/footer.html | 20 | ||||
| -rw-r--r-- | doc/header.html | 47 | ||||
| -rw-r--r-- | doc/layout.xml | 193 | ||||
| -rw-r--r-- | doc/mainpage.md | 43 | ||||
| -rw-r--r-- | doc/reference.doxygen.in (renamed from Doxyfile.in) | 220 | ||||
| -rw-r--r-- | doc/style.css | 744 | ||||
| -rw-r--r-- | pugl/pugl.h | 49 | ||||
| -rw-r--r-- | pugl/pugl.hpp | 4 | ||||
| -rw-r--r-- | wscript | 7 | 
9 files changed, 1212 insertions, 115 deletions
diff --git a/doc/footer.html b/doc/footer.html new file mode 100644 index 0000000..0dc6919 --- /dev/null +++ b/doc/footer.html @@ -0,0 +1,20 @@ +<!-- HTML footer for doxygen 1.8.15--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> +  <ul> +    $navpath +    <li class="footer">$generatedby +      <a href="http://www.doxygen.org/index.html">Doxygen $doxygenversion</li> +  </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> +<div id="footer"> +  <address class="footer">$generatedby +    <a href="http://www.doxygen.org/">Doxygen</a> $doxygenversion +  </address> +</div> +<!--END !GENERATE_TREEVIEW--> +</body> +</html> diff --git a/doc/header.html b/doc/header.html new file mode 100644 index 0000000..07d4076 --- /dev/null +++ b/doc/header.html @@ -0,0 +1,47 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +  <head> +    <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +    <!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> +    <!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> +    <link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" /> +    $extrastylesheet +  </head> +  <body> +    <div id="top"><!-- do not remove this div, it is closed by doxygen! --> + +      <!--BEGIN TITLEAREA--> +      <div id="titlearea"> +        <div id="header"> +          <div id="titlebox"> +            <!--BEGIN PROJECT_LOGO--> +            <div id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></div> +            <!--END PROJECT_LOGO--> +            <!--BEGIN PROJECT_NAME--> +            <h1 id="title">$projectname</h1> +            <!--END PROJECT_NAME--> +            <!--BEGIN PROJECT_BRIEF--> +            <div id="shortdesc">$projectbrief</div> +            <!--END PROJECT_BRIEF--> +          </div> +          <div id="metabox"> +            <table id="meta"> +              <!--BEGIN PROJECT_NUMBER--> +              <tr><th>Version</th><td>$projectnumber</td></tr> +              <!--END PROJECT_NUMBER--> +            </table> +          </div> +        </div> +      </div> +      <!--END TITLEAREA--> +      <!-- end header part --> + +      <!-- Fake static menu from Doxygen 1.8.15 --> +      <div id="staticnavrow" class="tabs"> +        <ul class="tablist"> +          <li><a href="index.html"><span>Main Page</span></a></li> +          <li><a href="modules.html"><span>Modules</span></a></li> +          <li><a href="annotated.html"><span>Data Structures</span></a></li> +          <li><a href="files.html"><span>Files</span></a></li> +        </ul> +      </div> diff --git a/doc/layout.xml b/doc/layout.xml new file mode 100644 index 0000000..f752de1 --- /dev/null +++ b/doc/layout.xml @@ -0,0 +1,193 @@ +<doxygenlayout version="1.0"> +  <!-- Generated by doxygen 1.8.13 --> +  <!-- Navigation index tabs for HTML output --> +  <navindex> +    <tab type="mainpage" visible="yes" title=""/> +    <tab type="pages" visible="yes" title="" intro=""/> +    <tab type="modules" visible="yes" title="" intro=""/> +    <tab type="namespaces" visible="yes" title=""> +      <tab type="namespacelist" visible="yes" title="" intro=""/> +      <tab type="namespacemembers" visible="yes" title="" intro=""/> +    </tab> +    <tab type="classes" visible="yes" title=""> +      <tab type="classlist" visible="yes" title="" intro=""/> +      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/> +      <tab type="hierarchy" visible="yes" title="" intro=""/> +      <tab type="classmembers" visible="yes" title="" intro=""/> +    </tab> +    <tab type="files" visible="yes" title=""> +      <tab type="filelist" visible="yes" title="" intro=""/> +      <tab type="globals" visible="yes" title="" intro=""/> +    </tab> +    <tab type="examples" visible="yes" title="" intro=""/> +  </navindex> + +  <!-- Layout definition for a class page --> +  <class> +    <briefdescription visible="yes"/> +    <includes visible="$SHOW_INCLUDE_FILES"/> +    <inheritancegraph visible="$CLASS_GRAPH"/> +    <collaborationgraph visible="$COLLABORATION_GRAPH"/> +    <memberdecl> +      <nestedclasses visible="yes" title=""/> +      <publictypes title=""/> +      <services title=""/> +      <interfaces title=""/> +      <publicslots title=""/> +      <signals title=""/> +      <publicmethods title=""/> +      <publicstaticmethods title=""/> +      <publicattributes title=""/> +      <publicstaticattributes title=""/> +      <protectedtypes title=""/> +      <protectedslots title=""/> +      <protectedmethods title=""/> +      <protectedstaticmethods title=""/> +      <protectedattributes title=""/> +      <protectedstaticattributes title=""/> +      <packagetypes title=""/> +      <packagemethods title=""/> +      <packagestaticmethods title=""/> +      <packageattributes title=""/> +      <packagestaticattributes title=""/> +      <properties title=""/> +      <events title=""/> +      <privatetypes title=""/> +      <privateslots title=""/> +      <privatemethods title=""/> +      <privatestaticmethods title=""/> +      <privateattributes title=""/> +      <privatestaticattributes title=""/> +      <friends title=""/> +      <related title="" subtitle=""/> +      <membergroups visible="yes"/> +    </memberdecl> +    <memberdef> +      <inlineclasses title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <services title=""/> +      <interfaces title=""/> +      <constructors title=""/> +      <functions title=""/> +      <related title=""/> +      <variables title=""/> +      <properties title=""/> +      <events title=""/> +    </memberdef> +    <allmemberslink visible="yes"/> +    <usedfiles visible="$SHOW_USED_FILES"/> +    <authorsection visible="yes"/> +  </class> + +  <!-- Layout definition for a namespace page --> +  <namespace> +    <briefdescription visible="yes"/> +    <memberdecl> +      <nestednamespaces visible="yes" title=""/> +      <constantgroups visible="yes" title=""/> +      <classes visible="yes" title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <functions title=""/> +      <variables title=""/> +      <membergroups visible="yes"/> +    </memberdecl> +    <detaileddescription title=""/> +    <memberdef> +      <inlineclasses title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <functions title=""/> +      <variables title=""/> +    </memberdef> +    <authorsection visible="yes"/> +  </namespace> + +  <!-- Layout definition for a file page --> +  <file> +    <briefdescription visible="yes"/> +    <includes visible="$SHOW_INCLUDE_FILES"/> +    <includegraph visible="$INCLUDE_GRAPH"/> +    <includedbygraph visible="$INCLUDED_BY_GRAPH"/> +    <sourcelink visible="yes"/> +    <memberdecl> +      <classes visible="yes" title=""/> +      <namespaces visible="yes" title=""/> +      <constantgroups visible="yes" title=""/> +      <defines title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <functions title=""/> +      <variables title=""/> +      <membergroups visible="yes"/> +    </memberdecl> +    <detaileddescription title=""/> +    <memberdef> +      <inlineclasses title=""/> +      <defines title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <functions title=""/> +      <variables title=""/> +    </memberdef> +    <authorsection/> +  </file> + +  <!-- Layout definition for a group page --> +  <group> +    <briefdescription visible="yes"/> +    <detaileddescription title=""/> +    <groupgraph visible="$GROUP_GRAPHS"/> +    <memberdecl> +      <nestedgroups visible="yes" title=""/> +      <dirs visible="yes" title=""/> +      <files visible="yes" title=""/> +      <namespaces visible="yes" title=""/> +      <classes visible="yes" title=""/> +      <defines title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <enumvalues title=""/> +      <functions title=""/> +      <variables title=""/> +      <signals title=""/> +      <publicslots title=""/> +      <protectedslots title=""/> +      <privateslots title=""/> +      <events title=""/> +      <properties title=""/> +      <friends title=""/> +      <membergroups visible="yes"/> +    </memberdecl> +    <memberdef> +      <pagedocs/> +      <inlineclasses title=""/> +      <defines title=""/> +      <typedefs title=""/> +      <enums title=""/> +      <enumvalues title=""/> +      <functions title=""/> +      <variables title=""/> +      <signals title=""/> +      <publicslots title=""/> +      <protectedslots title=""/> +      <privateslots title=""/> +      <events title=""/> +      <properties title=""/> +      <friends title=""/> +    </memberdef> +    <authorsection visible="yes"/> +  </group> + +  <!-- Layout definition for a directory page --> +  <directory> +    <briefdescription visible="yes"/> +    <directorygraph visible="yes"/> +    <memberdecl> +      <dirs visible="yes"/> +      <files visible="yes"/> +    </memberdecl> +    <detaileddescription title=""/> +  </directory> +</doxygenlayout> diff --git a/doc/mainpage.md b/doc/mainpage.md new file mode 100644 index 0000000..b16551a --- /dev/null +++ b/doc/mainpage.md @@ -0,0 +1,43 @@ +This is the API documentation for Pugl. +The complete C API is documented in the [Pugl](@ref pugl) group, +and the C++ wrapper in the [Puglmm](@ref puglmm) group. + +The Pugl API revolves around two main objects: +the [World](@ref world) and the [View](@ref view). +An application creates a single world to manage system-level state, +then creates one or more views to display. + +## View creation + +Creating a visible view is a multi-step process. +A new view allocated with #puglNewView does not yet represent a "real" system window. +To display, it must first have a [backend set](@ref puglSetBackend), +and be configured by [setting hints](@ref puglSetViewHint) +and [configuring the frame](@ref frame). + +Once the view is configured, +the corresponding window can be [created](@ref puglCreateWindow) +and [shown](@ref puglShowWindow). + +Note that a view does not necessary correspond to a top-level system window. +To create a view within another window, +call #puglSetParentWindow before #puglCreateWindow. + +## Interaction + +Interaction with the user and system happens via [events](@ref interaction). +Before creating a window, +a view must have an [event handler](@ref PuglEventFunc) set with #puglSetEventFunc. +This handler is called whenever something happens that the view must respond to. +This includes user interaction like mouse and keyboard input, +and system events like window resizing and exposure (drawing). + +## Event Loop + +Two functions are used to drive the event loop: + + * #puglPollEvents waits for events to become available. + * #puglDispatchEvents processes all pending events. + +Redrawing is accomplished by calling #puglPostRedisplay, +which posts an expose event to the queue. diff --git a/Doxyfile.in b/doc/reference.doxygen.in index b332116..eb64d58 100644 --- a/Doxyfile.in +++ b/doc/reference.doxygen.in @@ -1,4 +1,4 @@ -# Doxyfile 1.8.13 +# Doxyfile 1.8.15  # This file describes the settings to be used by the documentation system  # doxygen (www.doxygen.org) for a project. @@ -17,11 +17,11 @@  # Project related configuration options  #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings.  # The default value is: UTF-8.  DOXYFILE_ENCODING      = UTF-8 @@ -44,7 +44,7 @@ PROJECT_NUMBER         = @PUGL_VERSION@  # for a project that appears at the top of each page and should give viewer a  # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF          = +PROJECT_BRIEF          = "A minimal portable API for embeddable GUIs"  # With the PROJECT_LOGO tag one can specify a logo or an icon that is included  # in the documentation. The maximum height of the logo should not exceed 55 @@ -58,7 +58,7 @@ PROJECT_LOGO           =  # entered, it will be relative to the location where doxygen was started. If  # left blank the current directory will be used. -OUTPUT_DIRECTORY       = doc +OUTPUT_DIRECTORY       = .  # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-  # directories (in 2 levels) under the output directory of each output format and @@ -93,6 +93,14 @@ ALLOW_UNICODE_NAMES    = NO  OUTPUT_LANGUAGE        = English +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION  = None +  # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member  # descriptions after the members that are listed in the file and class  # documentation (similar to Javadoc). Set to NO to disable this. @@ -226,7 +234,12 @@ TAB_SIZE               = 4  # will allow you to put the command \sideeffect (or @sideeffect) in the  # documentation, which will result in a user-defined paragraph with heading  # "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\})  ALIASES                = @@ -264,17 +277,26 @@ OPTIMIZE_FOR_FORTRAN   = NO  OPTIMIZE_OUTPUT_VHDL   = NO +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE  = NO +  # Doxygen selects the parser to use depending on the extension of the files it  # parses. With this tag you can assign which parser to use for a given  # extension. Doxygen has a built-in mapping, but you can override or extend it  # using this tag. The format is ext=language, where ext is a file extension, and  # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is +# Fortran), use: inc=Fortran f=C.  #  # Note: For files without extension you can use no_extension as a placeholder.  # @@ -285,7 +307,7 @@ EXTENSION_MAPPING      =  # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments  # according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. +# documentation. See https://daringfireball.net/projects/markdown/ for details.  # The output of markdown processing is further processed by doxygen, so you can  # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in  # case of backward compatibilities issues. @@ -327,7 +349,7 @@ BUILTIN_STL_SUPPORT    = NO  CPP_CLI_SUPPORT        = NO  # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen  # will parse them like normal C++ but will assume all classes use public instead  # of private inheritance when no explicit protection keyword is present.  # The default value is: NO. @@ -693,12 +715,12 @@ FILE_VERSION_FILTER    =  # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE  # tag is left empty. -LAYOUT_FILE            = +LAYOUT_FILE            = @PUGL_SRCDIR@/doc/layout.xml  # The CITE_BIB_FILES tag can be used to specify one or more bib files containing  # the reference definitions. This must be a list of .bib files. The .bib  # extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.  # For LaTeX the style of the bibliography can be controlled using  # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the  # search path. See also \cite for info how to create references. @@ -743,7 +765,8 @@ WARN_IF_DOC_ERROR      = YES  # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that  # are documented, but have no documentation for their parameters or return  # value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled.  # The default value is: NO.  WARN_NO_PARAMDOC       = YES @@ -780,12 +803,13 @@ WARN_LOGFILE           =  # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING  # Note: If this tag is empty the current directory is searched. -INPUT                  = @PUGL_SRCDIR@/pugl +INPUT                  = @PUGL_SRCDIR@/pugl/ \ +                         @PUGL_SRCDIR@/doc/mainpage.md  # This tag can be used to specify the character encoding of the source files  # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses  # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of  # possible encodings.  # The default value is: UTF-8. @@ -803,9 +827,9 @@ INPUT_ENCODING         = UTF-8  # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,  # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,  # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. -FILE_PATTERNS          = +FILE_PATTERNS          = *.h *.hpp  # The RECURSIVE tag can be used to specify whether or not subdirectories should  # be searched for input files as well. @@ -929,7 +953,7 @@ FILTER_SOURCE_PATTERNS =  # (index.html). This can be useful if you have a project on for instance GitHub  # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = @PUGL_SRCDIR@/doc/mainpage.md  #---------------------------------------------------------------------------  # Configuration options related to source browsing @@ -958,7 +982,7 @@ INLINE_SOURCES         = NO  STRIP_CODE_COMMENTS    = YES  # If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. +# entity all documented functions referencing it will be listed.  # The default value is: NO.  REFERENCED_BY_RELATION = NO @@ -967,7 +991,7 @@ REFERENCED_BY_RELATION = NO  # all documented entities called/used by that function will be listed.  # The default value is: NO. -REFERENCES_RELATION    = NO +REFERENCES_RELATION    = YES  # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set  # to YES then the hyperlinks from functions in REFERENCES_RELATION and @@ -985,17 +1009,17 @@ REFERENCES_LINK_SOURCE = YES  # The default value is: YES.  # This tag requires that the tag SOURCE_BROWSER is set to YES. -SOURCE_TOOLTIPS        = YES +SOURCE_TOOLTIPS        = NO  # If the USE_HTAGS tag is set to YES then the references to source code will  # point to the HTML generated by the htags(1) tool instead of doxygen built-in  # source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version +# (see https://www.gnu.org/software/global/global.html). You will need version  # 4.8.6 or higher.  #  # To use it do the following:  # - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file  # - Make sure the INPUT points to the root of the source tree  # - Run doxygen as normal  # @@ -1085,7 +1109,7 @@ HTML_FILE_EXTENSION    = .html  # of the possible markers and block names see the documentation.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER            = +HTML_HEADER            = @PUGL_SRCDIR@/doc/header.html  # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each  # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1095,7 +1119,7 @@ HTML_HEADER            =  # that doxygen normally uses.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER            = +HTML_FOOTER            = @PUGL_SRCDIR@/doc/footer.html  # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style  # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1107,7 +1131,7 @@ HTML_FOOTER            =  # obsolete.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET        = +HTML_STYLESHEET        = @PUGL_SRCDIR@/doc/style.css  # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined  # cascading style sheets that are included after the standard style sheets @@ -1135,13 +1159,13 @@ HTML_EXTRA_FILES       =  # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen  # will adjust the colors in the style sheet and background images according to  # this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value  # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300  # purple, and 360 is red again.  # Minimum value: 0, maximum value: 359, default value: 220.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_HUE    = 130 +HTML_COLORSTYLE_HUE    = 160  # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors  # in the HTML output. For a value of 0 the output will use grayscales only. A @@ -1149,7 +1173,7 @@ HTML_COLORSTYLE_HUE    = 130  # Minimum value: 0, maximum value: 255, default value: 100.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_SAT    = 30 +HTML_COLORSTYLE_SAT    = 100  # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the  # luminance component of the colors in the HTML output. Values below 100 @@ -1160,7 +1184,7 @@ HTML_COLORSTYLE_SAT    = 30  # Minimum value: 40, maximum value: 240, default value: 80.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_GAMMA  = 100 +HTML_COLORSTYLE_GAMMA  = 80  # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML  # page will contain the date and time when the page was generated. Setting this @@ -1171,13 +1195,24 @@ HTML_COLORSTYLE_GAMMA  = 100  HTML_TIMESTAMP         = NO +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS     = NO +  # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML  # documentation will contain sections that can be hidden and shown after the  # page has loaded.  # The default value is: NO.  # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_DYNAMIC_SECTIONS  = YES +HTML_DYNAMIC_SECTIONS  = NO  # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries  # shown in the various tree structured indices initially; the user can expand @@ -1194,13 +1229,13 @@ HTML_INDEX_NUM_ENTRIES = 100  # If the GENERATE_DOCSET tag is set to YES, additional index files will be  # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a  # Makefile in the HTML output directory. Running make will produce the docset in  # that directory and running make install will install the docset in  # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information.  # The default value is: NO.  # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1239,7 +1274,7 @@ DOCSET_PUBLISHER_NAME  = Publisher  # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three  # additional HTML index files: index.hhp, index.hhc, and index.hhk. The  # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on  # Windows.  #  # The HTML Help Workshop contains a compiler that can convert all HTML output @@ -1315,7 +1350,7 @@ QCH_FILE               =  # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help  # Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).  # The default value is: org.doxygen.Project.  # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1323,7 +1358,7 @@ QHP_NAMESPACE          =  # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt  # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# Folders (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-  # folders).  # The default value is: doc.  # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1332,7 +1367,7 @@ QHP_VIRTUAL_FOLDER     = doc  # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom  # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-  # filters).  # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1340,7 +1375,7 @@ QHP_CUST_FILTER_NAME   =  # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the  # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# Filters (see: http://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-  # filters).  # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1348,7 +1383,7 @@ QHP_CUST_FILTER_ATTRS  =  # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this  # project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# http://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).  # This tag requires that the tag GENERATE_QHP is set to YES.  QHP_SECT_FILTER_ATTRS  = @@ -1389,7 +1424,7 @@ ECLIPSE_DOC_ID         = org.doxygen.Project  # The default value is: NO.  # This tag requires that the tag GENERATE_HTML is set to YES. -DISABLE_INDEX          = YES +DISABLE_INDEX          = NO  # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index  # structure should be generated to display hierarchical information. If the tag @@ -1441,7 +1476,7 @@ EXT_LINKS_IN_WINDOW    = NO  FORMULA_FONTSIZE       = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images  # generated for formulas are transparent PNGs. Transparent PNGs are not  # supported properly for IE 6.0, but are supported on all modern browsers.  # @@ -1453,7 +1488,7 @@ FORMULA_FONTSIZE       = 10  FORMULA_TRANSPARENT    = YES  # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering +# https://www.mathjax.org) which uses client side Javascript for the rendering  # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX  # installed or if you want to formulas look prettier in the HTML output. When  # enabled you may also need to install MathJax separately and configure the path @@ -1480,8 +1515,8 @@ MATHJAX_FORMAT         = HTML-CSS  # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax  # Content Delivery Network so you can quickly see the result without installing  # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/.  # This tag requires that the tag USE_MATHJAX is set to YES.  MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest @@ -1542,7 +1577,7 @@ SERVER_BASED_SEARCH    = NO  #  # Doxygen ships with an example indexer (doxyindexer) and search engine  # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). +# Xapian (see: https://xapian.org/).  #  # See the section "External Indexing and Searching" for details.  # The default value is: NO. @@ -1555,7 +1590,7 @@ EXTERNAL_SEARCH        = NO  #  # Doxygen ships with an example indexer (doxyindexer) and search engine  # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). See the section "External Indexing and +# Xapian (see: https://xapian.org/). See the section "External Indexing and  # Searching" for details.  # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1607,21 +1642,34 @@ LATEX_OUTPUT           = latex  # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be  # invoked.  # -# Note that when enabling USE_PDFLATEX this option is only used for generating -# bitmaps for formulas in the HTML output, but not in the Makefile that is -# written to the output directory. -# The default file is: latex. +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language.  # This tag requires that the tag GENERATE_LATEX is set to YES.  LATEX_CMD_NAME         = latex  # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate  # index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex).  # The default file is: makeindex.  # This tag requires that the tag GENERATE_LATEX is set to YES.  MAKEINDEX_CMD_NAME     = makeindex +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: \makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD    = \makeindex +  # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX  # documents. This may be useful for small projects and may help to save some  # trees in general. @@ -1742,7 +1790,7 @@ LATEX_SOURCE_CODE      = NO  # The LATEX_BIB_STYLE tag can be used to specify the style to use for the  # bibliography, e.g. plainnat, or ieeetr. See -# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.  # The default value is: plain.  # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1756,6 +1804,14 @@ LATEX_BIB_STYLE        = plain  LATEX_TIMESTAMP        = NO +# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) +# path from which the emoji images will be read. If a relative path is entered, +# it will be relative to the LATEX_OUTPUT directory. If left blank the +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY  = +  #---------------------------------------------------------------------------  # Configuration options related to the RTF output  #--------------------------------------------------------------------------- @@ -1795,9 +1851,9 @@ COMPACT_RTF            = NO  RTF_HYPERLINKS         = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's config -# file, i.e. a series of assignments. You only have to provide replacements, -# missing definitions are set to their default value. +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value.  #  # See also section "Doxygen usage" for information on how to generate the  # default style sheet that doxygen normally uses. @@ -1806,8 +1862,8 @@ RTF_HYPERLINKS         = NO  RTF_STYLESHEET_FILE    =  # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's config file. A template extensions file can be generated -# using doxygen -e rtf extensionFile. +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile.  # This tag requires that the tag GENERATE_RTF is set to YES.  RTF_EXTENSIONS_FILE    = @@ -1893,6 +1949,13 @@ XML_OUTPUT             = xml  XML_PROGRAMLISTING     = YES +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO +  #---------------------------------------------------------------------------  # Configuration options related to the DOCBOOK output  #--------------------------------------------------------------------------- @@ -1925,9 +1988,9 @@ DOCBOOK_PROGRAMLISTING = NO  #---------------------------------------------------------------------------  # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sf.net) file that captures the -# structure of the code including all documentation. Note that this feature is -# still experimental and incomplete at the moment. +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment.  # The default value is: NO.  GENERATE_AUTOGEN_DEF   = NO @@ -2094,12 +2157,6 @@ EXTERNAL_GROUPS        = YES  EXTERNAL_PAGES         = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -PERL_PATH              = /usr/bin/perl -  #---------------------------------------------------------------------------  # Configuration options related to the dot tool  #--------------------------------------------------------------------------- @@ -2113,15 +2170,6 @@ PERL_PATH              = /usr/bin/perl  CLASS_DIAGRAMS         = NO -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH            = -  # You can include diagrams made with dia in doxygen documentation. Doxygen will  # then run dia to produce the diagram and insert it in the documentation. The  # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2140,7 +2188,7 @@ HIDE_UNDOC_RELATIONS   = YES  # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent  # Bell Labs. The other options in this section have no effect if this option is  # set to NO -# The default value is: YES. +# The default value is: NO.  HAVE_DOT               = NO @@ -2296,9 +2344,7 @@ DIRECTORY_GRAPH        = NO  # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order  # to make the SVG files visible in IE 9+ (other browsers do not have this  # requirement). -# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, -# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, -# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, +# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,  # png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and  # png:gdiplus:gdiplus.  # The default value is: png. diff --git a/doc/style.css b/doc/style.css new file mode 100644 index 0000000..fa366af --- /dev/null +++ b/doc/style.css @@ -0,0 +1,744 @@ +body { +	background: #FFF; +	color: #222; +	font-style: normal; +	line-height: 1.6em; +	margin-left: auto; +	margin-right: auto; +    padding: 1em; +	max-width: 60em; +    font-family: "DejaVu Serif",Palatino,serif; +    text-rendering: optimizeLegibility; +} + +h1, .title, #projectname, h2, h3, h4, h5, h6 { +	line-height: 1.0125em; +    color: #444; +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +    margin: 1em 0 0.5em 0; +} + +h1, .titlearea .header .titlebox, #projectname { +	font-size: 300%; +	font-weight: 400; +    margin-bottom: 0.25em; +    margin-top: 0; +} + +.header .headertitle .title { +	font-size: 180%; +	font-weight: 400; +    margin: 0.75em 0.25em 0.5em 0; +} + +.ingroups { +    display: inline; +} +.title .ingroups a { +    font-size: small; +    margin-left: 1em; +} + +#titlebox, #metabox { +	display: inline-block; +} +#titlebox{ +	display: inline-block; +	width: 75%; +	left: 0; +	top: 0; +} + +#title { +    margin-bottom: 0.25em; +} + +#shortdesc { +	margin: 0; +    color: #666; +    display: inline-block; +    font-style: italic; +    padding: 0; +} + +#titlearea { +	margin: 0.25em auto 0.25em auto; +    padding: 0; +	position: relative; +    clear: both; +    line-height: 1.0em; +} + +h2 { +	font-size: 160%; +	font-weight: 400; +} + +h3 { +	font-size: 140%; +	font-weight: 400; +} + +h4 { +	font-size: 120%; +	font-weight: 500; +} + +h5, h6 { +	font-size: 110%; +	font-weight: 600; +} + +h1 a, h1 a:link, h1 a:visited , +h2 a, h2 a:link, h2 a:visited , +h3 a, h3 a:link, h3 a:visited , +h4 a, h4 a:link, h4 a:visited , +h5 a, h5 a:link, h5 a:visited , +h6 a, h6 a:link, h6 a:visited { +    color: #444; +} + +p { +	margin: 0.5em 0 0.5em 0; +} + +dt { +	font-weight: 700; +} + +dd { +    margin-left: 2em; +} + +caption { +	font-weight: 700; +} + +span.legend { +	font-size: small; +	text-align: center; +} + +h3.version { +	font-size: small; +	text-align: center; +} + +div.qindex,div.navtab { +	background-color: #EBEFF6; +	border: 1px solid #A3B4D7; +	text-align: center; +	margin: 2px; +	padding: 2px; +} + +div.navtab { +	margin-right: 15px; +} + +/* @group Link Styling */ +a { +	color: #546E00; +	text-decoration: none; +} + +.contents a:visited { +	color: #344E00; +} + +a:hover { +	text-decoration: underline; +} + +a.qindexHL { +	background-color: #9CAFD4; +	color: #FFF; +	border: 1px double #869DCA; +} + +code { +	color: #444; +} + +/* @end */ +dl.el { +	margin-left: -1cm; +} + +.fragment { +    font-family: "DejaVu Sans Mono",monospace,fixed; +} + +pre.fragment { +	border: 1px solid #C4C4C4; +	background-color: #F9F9F9; +	padding: 0.5em; +	overflow: auto; +} + +div.ah { +	background-color: #000; +	font-weight: 700; +	color: #FFF; +	margin-bottom: 3px; +	margin-top: 3px; +	padding: .2em; +	border: thin solid #333; +} + +div.groupHeader { +	margin-left: 16px; +	margin-top: 12px; +	margin-bottom: 6px; +	font-weight: 700; +} + +a + h2.groupheader { +	display: none; +} + +div.groupText { +	margin-left: 16px; +	font-style: italic; +} + +div.contents, #content { +    padding: 0 0.25em 0 0.25em; +    max-width: 60em; +	margin-left: auto; +	margin-right: auto; +} + +td.indexkey { +	background-color: #EBEFF6; +	font-weight: 700; +	border: 1px solid #C4CFE5; +	margin: 2px 0; +	padding: 2px 10px; +} + +td.indexvalue { +	background-color: #EBEFF6; +	border: 1px solid #C4CFE5; +	padding: 2px 10px; +	margin: 2px 0; +} + +table.memname { +    font-family: "DejaVu Sans Mono",monospace,fixed; +} + +tr.memlist { +	background-color: #EEF1F7; +} + +p.formulaDsp { +	text-align: center; +} + +img.formulaInl { +	vertical-align: middle; +} + +div.center { +	text-align: center; +	margin-top: 0; +	margin-bottom: 0; +	padding: 0; +} + +div.center img { +	border: 0; +} + +address.footer { +	text-align: right; +} + +img.footer { +	border: 0; +	vertical-align: middle; +} + +/* @group Code Colorization */ +span.keyword { +    color: #586E75; +} + +span.keywordtype { +	color: #546E00; +} + +span.keywordflow { +	color: #586E75; +} + +span.comment { +	color: #6C71C4; +} + +span.preprocessor { +	color: #D33682; +} + +span.stringliteral { +	color: #CB4B16; +} + +span.charliteral { +	color: #CB4B16; +} + +/* @end */ +td.tiny { +	font-size: x-small; +} + +.dirtab { +	padding: 4px; +	border-collapse: collapse; +	border: 1px solid #A3B4D7; +} + +th.dirtab { +	background: #EBEFF6; +	font-weight: 700; +} + +hr { +	height: 0; +	border: none; +	border-top: 1px solid #DDD; +	margin: 2em 0 1em; +} + +#footer { +	bottom: 0; +	clear: both; +	font-size: x-small; +	margin: 2em 0 0; +	padding: 0 1em 1em 1em; +	vertical-align: top; +	color: #888; +} + +/* @group Member Descriptions */ +table.memberdecls { +	border-spacing: 0.125em; +    line-height: 1.3em; +} + +.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,.memTemplItemLeft,.memTemplItemRight,.memTemplParams { +	margin: 0; +	padding: 0; +} + +.mdescLeft,.mdescRight { +	color: #555; +} + +.memItemLeft,.memItemRight,.memTemplParams { +	border: 0; +    font-family: "DejaVu Sans Mono",monospace,fixed; +} + +.memItemLeft,.memTemplItemLeft { +	white-space: nowrap; +	padding-left: 2em; +	padding-right: 1em; +} + +.memItemLeft a.el { +	font-weight: bold; +} + +.memTemplParams { +	color: #464646; +	white-space: nowrap; +} + +td.memSeparator { +	display: none; +} + +td.mlabels-right { +	vertical-align: top; +	padding-top: 4px; +	color: #B4C342; +} + +.memtitle { +	display: none; +} + +/* @end */ +/* @group Member Details */ +/* Styles for detailed member documentation */ +.memtemplate { +	color: #888; +    font-style: italic; +    font-family: "DejaVu Sans Mono",monospace,fixed; +    font-size: small; +} + +.memnav { +	background-color: #EEE; +	border: 1px solid #B4C342; +	text-align: center; +	margin: 2px; +	margin-right: 15px; +	padding: 2px; +} + +.memitem { +	padding: 0.25em 0.5em 0.25em 0.5em; +	margin: 0 0 1em 0; +	border-radius: 6px; +    border: 1px solid #DDD; +} + +.memproto { +	font-size: 110%; +	font-weight: 400; +    line-height: 1em; +    color: #000; +} + +.memproto .paramname { +	font-style: normal; +} + +.memdoc { +	padding: 0 0.25em 0 0.25em; +} + +.paramkey { +	text-align: right; +} + +.paramtype { +	color: #666; +    padding-right: 0.5em; +	white-space: nowrap; +} + +.paramname { +	color: #111; +	white-space: nowrap; +    font-family: "DejaVu Sans Mono",monospace,fixed; +    font-style: italic; +    padding-right: 0.5em; +} + +.fieldname { +	color: #000; +} + +.fieldtable { +    padding-top: 0.25em; +    border-top: 1px dashed #DDD; +} + +.fieldtable tbody tr:first-child { +    display: none; +} + +td.fieldname { +	padding: 0 0.5em 0 0.25em; +	vertical-align: top; +    font-family: "DejaVu Sans Mono",monospace,fixed; +} + +td.fieldtype { +	color: #666; +	padding: 0 0.5em 0 0; +	vertical-align: top; +    font-family: "DejaVu Sans Mono",monospace,fixed; +} + +td.fielddoc p { +	margin: 0; +	vertical-align: top; +	padding: 0 0.5em 0 0; +} + +p.reference { +    font-size: x-small; +    font-style: italic; +} + +/* @end */ +/* @group Directory (tree) */ +/* for the tree view */ +.ftvtree { +	font-family: sans-serif; +	margin: 0; +} + +/* these are for tree view when used as main index */ +.directory { +	font-size: small; +	margin: 0.5em; +} + +.directory h3 { +	margin: 0; +	margin-top: 1em; +	font-size: 11pt; +} + +.directory > h3 { +	margin-top: 0; +} + +.directory p { +	margin: 0; +	white-space: nowrap; +} + +.directory div { +	display: none; +	margin: 0; +} + +.directory img { +	vertical-align: -30%; +} + +td.entry { +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +    font-weight: 400; +    padding-right: 1em; +} + +td.entry .arrow { +    display: none; +} + +td.entry b { +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +    font-weight: 400; +    font-size: 130%; +} + +/* these are for tree view when not used as main index */ +.directory-alt { +	font-size: 100%; +	font-weight: bold; +} + +.directory-alt h3 { +	margin: 0; +	margin-top: 1em; +	font-size: 11pt; +} + +.directory-alt > h3 { +	margin-top: 0; +} + +.directory-alt p { +	margin: 0; +	white-space: nowrap; +} + +.directory-alt div { +	display: none; +	margin: 0; +} + +.directory-alt img { +	vertical-align: -30%; +} + +/* @end */ +div.dynheader { +	margin-top: 8px; +} + +address { +	font-style: normal; +	color: #444; +} + +table.doxtable { +	border-collapse: collapse; +	margin: 0.5em; +} + +table.doxtable td,table.doxtable th { +	border: 1px solid #DDD; +	padding: 3px 7px 2px; +} + +table.doxtable th { +	background-color: #F3F3F3; +	color: #000; +	padding-bottom: 4px; +	padding-top: 5px; +	text-align: left; +	font-weight: bold; +} + +.tabsearch { +	top: 0; +	left: 10px; +	height: 36px; +	z-index: 101; +	overflow: hidden; +	font-size: 13px; +} + +div.navpath { +    color: #DDD; +} + +.navpath ul { +	overflow: hidden; +	margin: 0; +	padding: 0; +} + +.navpath li { +	float: left; +	padding-left: 0; +    margin-left: 0.5em; +	padding-right: 1em; +} + +.navpath a { +	display: block; +	text-decoration: none; +	outline: none; +} + +div.summary { +	font-size: small; +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +    margin: 0; +    color: #FFF; /* Hide separator bars */ +    border-bottom: 1px solid #DDD; +	padding: 0.25em 0; +} + +div.summary a { +	white-space: nowrap; +} + +/* Metadata box (right aligned next to title) */ + +#metabox { +	display: inline-block; +	font-size: x-small; +	margin: 0 0 0.25em 0; +	position: absolute; +	right: 0; +	top: 0; +    color: #666; +    font-style: italic; +    padding: 0 1em; +} + +#meta { +	border-style: hidden; +    margin-right: 0.25em; +} + +#meta tr, #meta th, #meta td { +	background-color: transparent; +	border: 0; +    margin: 0; +	font-weight: normal; +} + +#meta th { +	text-align: right; +} + +#meta th:after { +	content: ":"; +} + +div.line { +    font-family: "DejaVu Sans Mono",monospace,fixed; +	line-height: 1.4em; +	white-space: pre-wrap; +} + +.glow { +	background-color: #2AA198; +	box-shadow: 0 0 10px #2AA198; +} + +span.lineno { +	padding-right: 4px; +	text-align: right; +	border-right: 2px solid #546E00; +	background-color: #E8E8E8; +	white-space: pre; +} +span.lineno a { +	background-color: #D8D8D8; +} + +span.lineno a:hover { +	background-color: #C8C8C8; +} + +.tabs, .tabs2, .navpath { +	padding: 0.25em 0; +    border-bottom: 1px solid #DDD; +    font-size: small; +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +    margin: 0; +} + +th { +	text-align: left; +    font-size: 110%; +    font-weight: 500; +} + +.mlabel { +	padding: 0.125em; +} + +#navrow1 { +	/* Disable menu from Doxygen 1.8.15, it is faked in the template */ +	display: none; +} + +/* tabs*/ + +.tablist { +	margin: 0; +	padding: 0; +	display: table; +} + +.tablist li { +	display: table-cell; +	line-height: 2em; +	list-style: none; +	border-bottom: 0; +} + +.tablist a { +	display: block; +	padding: 0 1em 0 0; +    font-family: "DejaVu Sans",Helvetica,Arial,sans-serif; +	text-decoration: none; +	outline: none; +} + +.tabs3 .tablist a { +	padding: 0 10px; +} + +.tablist li.current a { +	color: #222; +} + +span.icon { +	display: none; +} diff --git a/pugl/pugl.h b/pugl/pugl.h index 067d780..5e816f0 100644 --- a/pugl/pugl.h +++ b/pugl/pugl.h @@ -15,7 +15,7 @@  */  /** -   @file pugl.h Public Pugl API. +   @file pugl.h Public C API.  */  #ifndef PUGL_H_INCLUDED @@ -48,30 +48,11 @@ extern "C" {  /**     @defgroup pugl Pugl -   A minimal portable API for OpenGL. +   Pugl C API.     @{  */  /** -   A Pugl view. -*/ -typedef struct PuglViewImpl PuglView; - -/** -   Graphics backend interface. -*/ -typedef struct PuglBackendImpl PuglBackend; - -/** -   A native window handle. - -   On X11, this is a Window. -   On OSX, this is an NSView*. -   On Windows, this is a HWND. -*/ -typedef intptr_t PuglNativeWindow; - -/**     Handle for opaque user data.  */  typedef void* PuglHandle; @@ -428,6 +409,7 @@ typedef union {  } PuglEvent;  /** +   @anchor world     @name World     The top level context of a Pugl application.     @{ @@ -507,6 +489,7 @@ puglDispatchEvents(PuglWorld* world);  /**     @} +   @anchor view     @name View     A view is a drawing region that receives events, which may correspond to a     top-level window or be embedded in some other window. @@ -514,6 +497,11 @@ puglDispatchEvents(PuglWorld* world);  */  /** +   A Pugl view. +*/ +typedef struct PuglViewImpl PuglView; + +/**     Create a new view.     A view represents a window, but a window will not be shown until configured @@ -571,6 +559,7 @@ puglPostRedisplay(PuglView* view);  /**     @} +   @anchor frame     @name Frame     Functions for working with the position and size of a view.     @{ @@ -617,6 +606,15 @@ puglSetAspectRatio(PuglView* view, int minX, int minY, int maxX, int maxY);  */  /** +   A native window handle. + +   On X11, this is a Window. +   On OSX, this is an NSView*. +   On Windows, this is a HWND. +*/ +typedef intptr_t PuglNativeWindow; + +/**     Set the title of the window.     This only makes sense for non-embedded views that will have a corresponding @@ -678,6 +676,11 @@ puglGetNativeWindow(PuglView* view);  */  /** +   Graphics backend interface. +*/ +typedef struct PuglBackendImpl PuglBackend; + +/**     OpenGL extension function.  */  typedef void (*PuglGlFunc)(void); @@ -738,7 +741,9 @@ puglLeaveContext(PuglView* view, bool drawing);  /**     @} -   @name Event Handling +   @anchor interaction +   @name Interaction +   Interacting with the system and user with events.     @{  */ diff --git a/pugl/pugl.hpp b/pugl/pugl.hpp index c2602dd..dee8c17 100644 --- a/pugl/pugl.hpp +++ b/pugl/pugl.hpp @@ -15,7 +15,7 @@  */  /** -   @file pugl.hpp Public Pugl C++ API wrapper. +   @file pugl.hpp Pugl C++ API wrapper.  */  #ifndef PUGL_HPP_INCLUDED @@ -25,7 +25,7 @@  /**     @defgroup puglmm Puglmm -   C++ API wrapper for Pugl. +   Pugl C++ API wrapper.     @{  */ @@ -275,15 +275,14 @@ def build(bld):      if bld.env.DOCS:          bld(features     = 'subst', -            source       = 'Doxyfile.in', -            target       = 'Doxyfile', +            source       = 'doc/reference.doxygen.in', +            target       = 'doc/reference.doxygen',              install_path = '', -            name         = 'Doxyfile',              PUGL_VERSION = PUGL_VERSION,              PUGL_SRCDIR  = os.path.abspath(bld.path.srcpath()))          bld(features = 'doxygen', -            doxyfile = 'Doxyfile') +            doxyfile = 'doc/reference.doxygen')  def test(tst):  | 
