diff --git a/.github/workflows/build.yaml b/.github/workflows/pack.yml similarity index 51% rename from .github/workflows/build.yaml rename to .github/workflows/pack.yml index aa80740..f2713c6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/pack.yml @@ -1,12 +1,16 @@ name: Build documentation and pack on: workflow_dispatch: - push: - branches: [ main ] pull_request: - branches: [ main ] + push: + branches: [main] release: types: [published] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: pack: name: Generate pack @@ -17,17 +21,16 @@ jobs: fetch-depth: 0 - name: Fetch tags - if: ${{ github.event_name == 'release' }} + if: github.event_name == 'release' run: | git fetch --tags --force - uses: Open-CMSIS-Pack/gen-pack-action@main with: - doxygen-version: 1.9.6 # default - packchk-version: 1.3.95 # default - gen-doc-script: ./DoxyGen/gen_doc.sh # skipped by default - check-links-script: ./DoxyGen/check_links.sh # skipped by default - doc-path: ./Documentation/html # skipped by default - gen-pack-script: ./gen_pack.sh --no-preprocess # skipped by default - gen-pack-output: ./output # skipped by default - gh-pages-branch: gh-pages # default + doxygen-version: 1.13.2 # required version of DoxyGen + packchk-version: 1.4.4 # required version of PackChk + gen-doc-script: ./Documentation/Doxygen/gen_doc.sh # path to documentation generator script + doc-path: ./Documentation/html # path to generated documentation + gen-pack-script: ./gen_pack.sh --no-preprocess # path to pack generator script + gen-pack-output: ./output # path to folder with generated pack archive(s) + gh-pages-branch: gh-pages # branch name to deploy generated documentation to diff --git a/DoxyGen/CMSIS_DV.dxy.in b/Documentation/Doxygen/cmsis_dv.dxy.in similarity index 74% rename from DoxyGen/CMSIS_DV.dxy.in rename to Documentation/Doxygen/cmsis_dv.dxy.in index 1684ea4..14c9ae6 100644 --- a/DoxyGen/CMSIS_DV.dxy.in +++ b/Documentation/Doxygen/cmsis_dv.dxy.in @@ -1,7 +1,7 @@ -# Doxyfile 1.9.2 +# Doxyfile 1.13.2 # This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. @@ -12,6 +12,16 @@ # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use Doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use Doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] #--------------------------------------------------------------------------- # Project related configuration options @@ -41,7 +51,7 @@ PROJECT_NAME = "CMSIS-Driver Validation" PROJECT_NUMBER = "Version {projectNumber}" # Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a +# for a project that appears at the top of each page and should give viewers a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Driver Validation" @@ -51,26 +61,44 @@ PROJECT_BRIEF = "Driver Validation" # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = templates/cmsis_logo_white_small.png +PROJECT_LOGO = ./style_template/cmsis_logo_white_small.png + +# With the PROJECT_ICON tag one can specify an icon that is included in the tabs +# when the HTML document is shown. Doxygen will copy the logo to the output +# directory. + +PROJECT_ICON = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If +# entered, it will be relative to the location where Doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = ../Documentation/ +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 -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding Doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise cause +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. # The default value is: NO. CREATE_SUBDIRS = NO -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. @@ -79,35 +107,35 @@ CREATE_SUBDIRS = NO ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this +# documentation generated by Doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# 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. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. -REPEAT_BRIEF = NO +REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found @@ -131,13 +159,13 @@ ABBREVIATE_BRIEF = "The $name class" \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief +# Doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. @@ -145,7 +173,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -155,11 +183,11 @@ FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to +# If left blank the directory from which Doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. +# will be relative from the directory where Doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = @@ -173,41 +201,42 @@ STRIP_FROM_PATH = STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't +# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but +# less readable) file names. This can be useful if your file system doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the +# first line (until the first dot, question mark or exclamation mark) of a +# Javadoc-style comment as the brief description. If set to NO, the Javadoc- +# style will behave just like regular Qt-style comments (thus requiring an +# explicit @brief command for a brief description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# If the JAVADOC_BANNER tag is set to YES then Doxygen will interpret a line # such as # /*************** # as being the beginning of a Javadoc-style comment "banner". If set to NO, the # Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. +# interpreted by Doxygen. # The default value is: NO. JAVADOC_BANNER = NO -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will interpret the first +# line (until the first dot, question mark or exclamation mark) of a Qt-style +# comment as the brief description. If set to NO, the Qt-style will behave just +# like regular Qt-style comments (thus requiring an explicit \brief command for +# a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this @@ -217,12 +246,12 @@ QT_AUTOBRIEF = NO # not recognized any more. # The default value is: NO. -MULTILINE_CPP_IS_BRIEF = NO +MULTILINE_CPP_IS_BRIEF = YES -# By default Python docstrings are displayed as preformatted text and doxygen's +# By default Python docstrings are displayed as preformatted text and Doxygen's # special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. +# Doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as Doxygen documentation. # The default value is: YES. PYTHON_DOCSTRING = NO @@ -233,7 +262,7 @@ PYTHON_DOCSTRING = NO INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. @@ -263,8 +292,6 @@ TAB_SIZE = 2 ALIASES = "token{1}=\1" - - # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all @@ -305,30 +332,30 @@ OPTIMIZE_OUTPUT_SLICE = NO # 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, +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, # Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, # VHDL, 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). For instance to make doxygen treat .inc files +# default for Fortran type files). 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. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. When specifying no_extension you should add +# the files are not read by Doxygen. When specifying no_extension you should add # * to the FILE_PATTERNS. # # Note see also the list of default file extension mappings. EXTENSION_MAPPING = -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# 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 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 +# 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. # The default value is: YES. @@ -338,25 +365,45 @@ MARKDOWN_SUPPORT = YES # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. +# Minimum value: 0, maximum value: 99, default value: 6. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 5 -# When enabled doxygen tries to link words that correspond to documented +# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to +# generate identifiers for the Markdown headings. Note: Every identifier is +# unique. +# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a +# sequence number starting at 0 and GITHUB use the lower case version of title +# with any whitespace replaced by '-' and punctuation characters removed. +# The default value is: DOXYGEN. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +MARKDOWN_ID_STYLE = DOXYGEN + +# When enabled Doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. +# globally by setting AUTOLINK_SUPPORT to NO. Words listed in the +# AUTOLINK_IGNORE_WORDS tag are excluded from automatic linking. # The default value is: YES. AUTOLINK_SUPPORT = YES +# This tag specifies a list of words that, when matching the start of a word in +# the documentation, will suppress auto links generation, if it is enabled via +# AUTOLINK_SUPPORT. This list does not affect affect links explicitly created +# using \# or the \link or commands. +# This tag requires that the tag AUTOLINK_SUPPORT is set to YES. + +AUTOLINK_IGNORE_WORDS = + # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and +# tag to YES in order to let Doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. +# versus func(std::string) {}). This also makes the inheritance and +# collaboration diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO @@ -368,16 +415,16 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# 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. +# https://www.riverbankcomputing.com/software) 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. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. +# Doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. @@ -386,7 +433,7 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES then Doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. @@ -444,18 +491,18 @@ TYPEDEF_HIDES_STRUCT = YES # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest +# symbols. At the end of a run Doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of +# The NUM_PROC_THREADS specifies the number of threads Doxygen is allowed to use +# during processing. When set to 0 Doxygen will based this on the number of # cores available in the system. You can set it explicitly to a value larger # than 0 to get more control over the balance between CPU load and processing # speed. At this moment only the input processing can be done using multiple @@ -467,11 +514,19 @@ LOOKUP_CACHE_SIZE = 0 NUM_PROC_THREADS = 1 +# If the TIMESTAMP tag is set different from NO then each generated page will +# contain the date or date and time when the page was generated. Setting this to +# NO can help when comparing the output of multiple runs. +# Possible values are: YES, NO, DATETIME and DATE. +# The default value is: NO. + +TIMESTAMP = YES + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -537,7 +592,7 @@ EXTRACT_ANON_NSPACES = NO RESOLVE_UNNAMED_PARAMS = YES -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. @@ -545,22 +600,31 @@ RESOLVE_UNNAMED_PARAMS = YES HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# If the HIDE_UNDOC_NAMESPACES tag is set to YES, Doxygen will hide all +# undocumented namespaces that are normally visible in the namespace hierarchy. +# If set to NO, these namespaces will be included in the various overviews. This +# option has no effect if EXTRACT_ALL is enabled. +# The default value is: YES. + +HIDE_UNDOC_NAMESPACES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend # declarations. If set to NO, these declarations will be included in the # documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -574,30 +638,31 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO -# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be # able to match the capabilities of the underlying filesystem. In case the # filesystem is case sensitive (i.e. it supports files in the same directory # whose names only differ in casing), the option must be set to YES to properly # deal with such files in case they appear in the input. For filesystems that -# are not case sensitive the option should be be set to NO to properly deal with +# are not case sensitive the option should be set to NO to properly deal with # output files written for symbols that only differ in casing, such as for two # classes, one named CLASS and the other named Class, and to also support # references to files without having to specify the exact matching casing. On -# Windows (including Cygwin) and MacOS, users should typically set this option +# Windows (including Cygwin) and macOS, users should typically set this option # to NO, whereas on Linux or other Unix flavors it should typically be set to # YES. -# The default value is: system dependent. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. @@ -610,7 +675,7 @@ HIDE_COMPOUND_REFERENCE= NO SHOW_HEADERFILE = YES -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -623,7 +688,7 @@ SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. @@ -635,14 +700,14 @@ FORCE_LOCAL_INCLUDES = NO INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = NO -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. @@ -650,7 +715,7 @@ SORT_MEMBER_DOCS = NO SORT_BRIEF_DOCS = NO -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. @@ -662,7 +727,7 @@ SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = NO -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. @@ -679,11 +744,11 @@ SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = NO -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. @@ -693,7 +758,7 @@ STRICT_PROTO_MATCHING = NO # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. -GENERATE_TODOLIST = NO +GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. @@ -753,28 +818,28 @@ SHOW_FILES = NO SHOW_NAMESPACES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from +# Doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file +# by Doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated +# by Doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can +# that represents Doxygen's defaults, run Doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. See also section "Changing the # layout of pages" for information. # -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = ./templates/Layout_forUser.xml +LAYOUT_FILE = ./style_template/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 @@ -786,19 +851,35 @@ LAYOUT_FILE = ./templates/Layout_forUser.xml CITE_BIB_FILES = +# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH +# environment variable) so that external tools such as latex and gs can be +# found. +# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the +# path already specified by the PATH variable, and are added in the order +# specified. +# Note: This option is particularly useful for macOS version 14 (Sonoma) and +# higher, when running Doxygen from Doxywizard, because in this case any user- +# defined changes to the PATH are ignored. A typical example on macOS is to set +# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin +# together with the standard path, the full search path used by doxygen when +# launching external tools will then become +# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +EXTERNAL_TOOL_PATH = + #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the +# standard output by Doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -806,14 +887,14 @@ QUIET = YES WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for # potential errors in the documentation, such as documenting some parameters in # a documented function twice, or documenting parameters that don't exist or # using markup commands wrongly. @@ -821,8 +902,8 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES -# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete -# function parameter documentation. If set to NO, doxygen will accept that some +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some # parameters have no documentation without warning. # The default value is: YES. @@ -830,7 +911,7 @@ WARN_IF_INCOMPLETE_DOC = 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 parameter +# value. If set to NO, Doxygen will only warn about wrong parameter # documentation, but not about the absence of documentation. If EXTRACT_ALL is # set to YES then this flag will automatically be disabled. See also # WARN_IF_INCOMPLETE_DOC @@ -838,28 +919,65 @@ WARN_IF_INCOMPLETE_DOC = YES WARN_NO_PARAMDOC = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If WARN_LAYOUT_FILE option is set to YES, Doxygen will warn about issues found +# while parsing the user defined layout file, such as missing or wrong elements. +# See also LAYOUT_FILE for details. If set to NO, problems with the layout file +# will be suppressed. +# The default value is: YES. + +WARN_LAYOUT_FILE = YES + +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when # a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. # The default value is: NO. WARN_AS_ERROR = NO -# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of Doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard -# error (stderr). +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). WARN_LOGFILE = @@ -874,6 +992,7 @@ WARN_LOGFILE = # Note: If this tag is empty the current directory is searched. INPUT = ./src/DriverValidation.txt \ + ./src/history.txt \ ./src/DV_CAN.txt \ ./src/DV_ETH.txt \ ./src/DV_GPIO.txt \ @@ -884,35 +1003,45 @@ INPUT = ./src/DriverValidation.txt \ ./src/DV_USBD.txt \ ./src/DV_USBH.txt \ ./src/DV_WiFi.txt \ - ./src/history.txt \ - ../Source + ../../Source # 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 +# 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: # https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING # The default value is: UTF-8. INPUT_ENCODING = UTF-8 +# This tag can be used to specify the character encoding of the source files +# that Doxygen parses. The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). +# See also: INPUT_ENCODING for further information on supported encodings. + +INPUT_FILE_ENCODING = + # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. +# read by Doxygen. # # Note the list of default checked file patterns might differ from the list of # default file extension mappings. # -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, -# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C -# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, +# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.ixx, *.l, *.cs, *.d, +# *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to +# be provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. FILE_PATTERNS = *.c \ *.cc \ @@ -965,13 +1094,13 @@ FILE_PATTERNS = *.c \ # be searched for input files as well. # The default value is: NO. -RECURSIVE = YES +RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # -# Note that relative paths are relative to the directory from which doxygen is +# Note that relative paths are relative to the directory from which Doxygen is # run. EXCLUDE = @@ -996,10 +1125,7 @@ EXCLUDE_PATTERNS = # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* +# ANamespace::AClass, ANamespace::*Test EXCLUDE_SYMBOLS = event @@ -1029,7 +1155,7 @@ EXAMPLE_RECURSIVE = NO IMAGE_PATH = src/images -# The INPUT_FILTER tag can be used to specify a program that doxygen should +# The INPUT_FILTER tag can be used to specify a program that Doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # @@ -1044,9 +1170,14 @@ IMAGE_PATH = src/images # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # +# Note that Doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. INPUT_FILTER = @@ -1059,7 +1190,7 @@ INPUT_FILTER = # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. +# properly processed by Doxygen. FILTER_PATTERNS = @@ -1081,10 +1212,28 @@ FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (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. +# and want to reuse the introduction page also for the Doxygen output. USE_MDFILE_AS_MAINPAGE = +# If the IMPLICIT_DIR_DOCS tag is set to YES, any README.md file found in sub- +# directories of the project's root, is used as the documentation for that sub- +# directory, except when the README.md starts with a \dir, \page or \mainpage +# command. If set to NO, the README.md file needs to start with an explicit \dir +# command in order to be used as directory documentation. +# The default value is: YES. + +IMPLICIT_DIR_DOCS = YES + +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- @@ -1099,12 +1248,13 @@ USE_MDFILE_AS_MAINPAGE = SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. +# multi-line macros, enums or list initialized variables directly into the +# documentation. # The default value is: NO. INLINE_SOURCES = NO -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. @@ -1142,7 +1292,7 @@ REFERENCES_LINK_SOURCE = YES SOURCE_TOOLTIPS = YES # 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 +# 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 https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. @@ -1156,14 +1306,14 @@ SOURCE_TOOLTIPS = YES # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # -# The result: instead of the source browser generated by doxygen, the links to +# The result: instead of the source browser generated by Doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. @@ -1171,19 +1321,19 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# If the CLANG_ASSISTED_PARSING tag is set to YES then Doxygen will use the # clang parser (see: # http://clang.llvm.org/) for more accurate parsing at the cost of reduced # performance. This can be particularly helpful with template rich C++ code for -# which doxygen's built-in parser lacks the necessary type information. -# Note: The availability of this option depends on whether or not doxygen was +# which Doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. # The default value is: NO. CLANG_ASSISTED_PARSING = NO # If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS -# tag is set to YES then doxygen will add the directory of each input to the +# tag is set to YES then Doxygen will add the directory of each input to the # include path. # The default value is: YES. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. @@ -1192,7 +1342,7 @@ CLANG_ADD_INC_PATHS = YES # If clang assisted parsing is enabled you can provide the compiler with command # line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories +# the include paths will already be set by Doxygen for the files and directories # specified with INPUT and INCLUDE_PATH. # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. @@ -1206,7 +1356,7 @@ CLANG_OPTIONS = # specifying the -p option to a clang tool, such as clang-check. These options # will then be passed to the parser. Any options specified with CLANG_OPTIONS # will be added as well. -# Note: The availability of this option depends on whether or not doxygen was +# Note: The availability of this option depends on whether or not Doxygen was # generated with the -Duse_libclang=ON option for CMake. CLANG_DATABASE_PATH = @@ -1222,10 +1372,11 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = NO -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = @@ -1234,7 +1385,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1255,40 +1406,40 @@ HTML_OUTPUT = html HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a +# each generated HTML page. If the tag is left blank Doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. +# that Doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally +# for information on how to generate the default header that Doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description +# default header when upgrading to a newer version of Doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = ./templates/header.html +HTML_HEADER = ./style_template/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 +# generated HTML page. If the tag is left blank Doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. +# that Doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = ./templates/footer.html +HTML_FOOTER = ./style_template/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 -# the HTML output. If left blank doxygen will generate a default style sheet. +# the HTML output. If left blank Doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. +# sheet that Doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. @@ -1298,16 +1449,25 @@ HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. +# created by Doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = ./templates/extra_stylesheet.css +HTML_EXTRA_STYLESHEET = ./style_template/extra_stylesheet.css \ + ./style_template/extra_navtree.css \ + ./style_template/extra_search.css \ + ./style_template/extra_tabs.css \ + ./style_template/version.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1317,14 +1477,24 @@ HTML_EXTRA_STYLESHEET = ./templates/extra_stylesheet.css # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = ./templates/tabs.css \ - ./templates/search.css \ - ./templates/navtree.css \ - ./templates/tab_b.png \ - ./templates/navtree.js \ - ./templates/version.css \ - ./templates/dropdown.png \ - ../LICENSE.txt +HTML_EXTRA_FILES = ./style_template/tab_b.png \ + ./style_template/tabs.js \ + ./style_template/darkmode_toggle.js \ + ./style_template/navtree.js \ + ./style_template/dropdown.png + +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generates light mode output, DARK always +# generates dark mode output, AUTO_LIGHT automatically sets the mode according +# to the user preference, uses light mode if no preference is set (the default), +# AUTO_DARK automatically sets the mode according to the user preference, uses +# dark mode if no preference is set and TOGGLE allows a user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = TOGGLE # 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 @@ -1356,15 +1526,6 @@ HTML_COLORSTYLE_SAT = 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 -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = YES - # 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 @@ -1384,6 +1545,33 @@ HTML_DYNAMIC_MENUS = NO HTML_DYNAMIC_SECTIONS = NO +# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be +# dynamically folded and expanded in the generated HTML source code. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_CODE_FOLDING = YES + +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in +# the top right corner of code and text fragments that allows the user to copy +# its content to the clipboard. Note this only works if supported by the browser +# and the web page is served via a secure context (see: +# https://www.w3.org/TR/secure-contexts/), i.e. using the https: or file: +# protocol. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COPY_CLIPBOARD = YES + +# Doxygen stores a couple of settings persistently in the browser (via e.g. +# cookies). By default these settings apply to all HTML pages generated by +# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# the settings under a project specific key, such that the user preferences will +# be stored separately. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_PROJECT_COOKIE = + # 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 # and collapse entries dynamically later on. Doxygen will expand the tree to @@ -1401,7 +1589,7 @@ HTML_INDEX_NUM_ENTRIES = 100 # generated that can be used as input for Apple's Xcode 3 integrated development # 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 +# 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 @@ -1420,6 +1608,13 @@ GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. @@ -1442,18 +1637,18 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher DOCSET_PUBLISHER_NAME = Publisher -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# 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 # on Windows. In the beginning of 2021 Microsoft took the original page, with -# a.o. the download links, offline the HTML help workshop was already many years -# in maintenance mode). You can download the HTML help workshop from the web -# archives at Installation executable (see: +# a.o. the download links, offline (the HTML help workshop was already many +# years in maintenance mode). You can download the HTML help workshop from the +# web archives at Installation executable (see: # http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo # ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). # # The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for @@ -1473,7 +1668,7 @@ CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. +# Doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1507,6 +1702,16 @@ BINARY_TOC = NO TOC_EXPAND = NO +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help @@ -1565,7 +1770,7 @@ QHP_CUST_FILTER_ATTRS = QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location (absolute path -# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to # run qhelpgenerator on the generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1597,7 +1802,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. +# The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = YES @@ -1610,11 +1815,11 @@ DISABLE_INDEX = YES # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine tune the look of the index (see "Fine-tuning the output"). As an -# example, the default style sheet generated by doxygen has an example that +# example, the default style sheet generated by Doxygen has an example that # shows how to put an image at the root of the tree instead of the PROJECT_NAME. # Since the tree basically has the same information as the tab index, you could # consider setting DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. +# The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES @@ -1624,7 +1829,7 @@ GENERATE_TREEVIEW = YES # area (value NO) or if it should extend to the full height of the window (value # YES). Setting this to YES gives a layout similar to # https://docs.readthedocs.io with more room for contents, but less room for the -# project logo, title, and description. If either GENERATOR_TREEVIEW or +# project logo, title, and description. If either GENERATE_TREEVIEW or # DISABLE_INDEX is set to NO, this option has no effect. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1632,7 +1837,7 @@ GENERATE_TREEVIEW = YES FULL_SIDEBAR = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. +# Doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. @@ -1641,6 +1846,12 @@ FULL_SIDEBAR = NO ENUM_VALUES_PER_LINE = 1 +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = NO + # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. @@ -1648,14 +1859,21 @@ ENUM_VALUES_PER_LINE = 1 TREEVIEW_WIDTH = 250 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg # tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see # https://inkscape.org) to generate formulas as SVG images instead of PNGs for # the HTML output. These images will generally look nicer at scaled resolutions. @@ -1668,24 +1886,13 @@ HTML_FORMULA_FORMAT = png # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML +# Doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 -# 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. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. @@ -1723,7 +1930,7 @@ MATHJAX_VERSION = MathJax_2 # Possible values are: HTML-CSS (which is slower, but has the best # compatibility. This is the name for Mathjax version 2, for MathJax version 3 # this will be translated into chtml), NativeMML (i.e. MathML. Only supported -# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# for MathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This # is the name for Mathjax version 3, for MathJax version 2 this will be # translated into HTML-CSS) and SVG. # The default value is: HTML-CSS. @@ -1757,7 +1964,7 @@ MATHJAX_RELPATH = MATHJAX_EXTENSIONS = -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: # http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an @@ -1766,12 +1973,12 @@ MATHJAX_EXTENSIONS = MATHJAX_CODEFILE = -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then +# For large projects the JavaScript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically @@ -1788,9 +1995,9 @@ MATHJAX_CODEFILE = SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a web server instead of a web client using Javascript. There +# implemented using a web server instead of a web client using JavaScript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and +# setting. When disabled, Doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. @@ -1799,7 +2006,7 @@ SEARCHENGINE = YES SERVER_BASED_SEARCH = NO -# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# When EXTERNAL_SEARCH tag is enabled Doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the @@ -1844,7 +2051,7 @@ SEARCHDATA_FILE = searchdata.xml EXTERNAL_SEARCH_ID = -# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through Doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of @@ -1858,7 +2065,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, Doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1903,7 +2110,7 @@ MAKEINDEX_CMD_NAME = makeindex LATEX_MAKEINDEX_CMD = makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# 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. # The default value is: NO. @@ -1934,15 +2141,15 @@ EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a user-defined LaTeX header for # the generated LaTeX document. The header should contain everything until the -# first chapter. If it is left blank doxygen will generate a standard header. It +# first chapter. If it is left blank Doxygen will generate a standard header. It # is highly recommended to start with a default header using # doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty # and then modify the file new_header.tex. See also section "Doxygen usage" for -# information on how to generate the default header that doxygen normally uses. +# information on how to generate the default header that Doxygen normally uses. # # Note: Only use a user-defined header if you know what you are doing! # Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. The following +# default header when upgrading to a newer version of Doxygen. The following # commands have a special meaning inside the header (and footer): For a # description of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1951,10 +2158,10 @@ LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a user-defined LaTeX footer for # the generated LaTeX document. The footer should contain everything after the -# last chapter. If it is left blank doxygen will generate a standard footer. See +# last chapter. If it is left blank Doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what # special commands can be used inside the footer. See also section "Doxygen -# usage" for information on how to generate the default footer that doxygen +# usage" for information on how to generate the default footer that Doxygen # normally uses. Note: Only use a user-defined footer if you know what you are # doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1963,7 +2170,7 @@ LATEX_FOOTER = # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined # LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# by Doxygen. Using this option one can overrule certain style aspects. Doxygen # will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the @@ -1989,7 +2196,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as +# If the USE_PDFLATEX tag is set to YES, Doxygen will use the engine as # specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX # files. Set this option to YES, to get a higher quality PDF documentation. # @@ -1999,15 +2206,22 @@ PDF_HYPERLINKS = YES USE_PDFLATEX = YES -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode -# command to the generated LaTeX files. This will instruct LaTeX to keep running -# if errors occur, instead of asking the user for help. +# The LATEX_BATCHMODE tag signals the behavior of LaTeX in case of an error. +# Possible values are: NO same as ERROR_STOP, YES same as BATCH, BATCH In batch +# mode nothing is printed on the terminal, errors are scrolled as if is +# hit at every error; missing files that TeX tries to input or request from +# keyboard input (\read on a not open input stream) cause the job to abort, +# NON_STOP In nonstop mode the diagnostic message will appear on the terminal, +# but there is no possibility of user interaction just like in batch mode, +# SCROLL In scroll mode, TeX will stop only for missing files to input or if +# keyboard input is necessary and ERROR_STOP In errorstop mode, TeX will stop at +# each error, asking for user intervention. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BATCHMODE = NO -# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# If the LATEX_HIDE_INDICES tag is set to YES then Doxygen will not include the # index chapters (such as File Index, Compound Index, etc.) in the output. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -2017,19 +2231,11 @@ LATEX_HIDE_INDICES = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. -# The default value is: plain. +# The default value is: plainnat. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -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 @@ -2042,7 +2248,7 @@ LATEX_EMOJI_DIRECTORY = # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, Doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -2057,7 +2263,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, Doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -2077,28 +2283,36 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's +# 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. +# default style sheet that Doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's configuration file. A template extensions file can be +# 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 = +# The RTF_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the RTF_OUTPUT output directory. +# Note that the files will be copied as-is; there are no commands or markers +# available. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTRA_FILES = + #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, Doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -2129,7 +2343,7 @@ MAN_EXTENSION = .3 MAN_SUBDIR = -# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without # them the man command would be unable to find the correct page. @@ -2142,7 +2356,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, Doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -2156,7 +2370,7 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, Doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -2165,7 +2379,7 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# 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. @@ -2176,7 +2390,7 @@ XML_NS_MEMB_FILE_SCOPE = NO # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, Doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -2194,19 +2408,45 @@ DOCBOOK_OUTPUT = docbook # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# If the GENERATE_AUTOGEN_DEF tag is set to YES, Doxygen will generate an +# AutoGen Definitions (see https://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 +#--------------------------------------------------------------------------- +# Configuration options related to Sqlite3 output +#--------------------------------------------------------------------------- + +# If the GENERATE_SQLITE3 tag is set to YES Doxygen will generate a Sqlite3 +# database with symbols found by Doxygen stored in tables. +# The default value is: NO. + +GENERATE_SQLITE3 = NO + +# The SQLITE3_OUTPUT tag is used to specify where the Sqlite3 database will be +# put. If a relative path is entered the value of OUTPUT_DIRECTORY will be put +# in front of it. +# The default directory is: sqlite3. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_OUTPUT = sqlite3 + +# The SQLITE3_RECREATE_DB tag is set to YES, the existing doxygen_sqlite3.db +# database file will be recreated with each Doxygen run. If set to NO, Doxygen +# will warn if a database file is already found and not modify it. +# The default value is: YES. +# This tag requires that the tag GENERATE_SQLITE3 is set to YES. + +SQLITE3_RECREATE_DB = YES + #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, Doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -2214,7 +2454,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, Doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -2244,13 +2484,13 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, Doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# If the MACRO_EXPANSION tag is set to YES, Doxygen will expand all macro names # in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. @@ -2276,7 +2516,8 @@ SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the -# preprocessor. +# preprocessor. Note that the INCLUDE_PATH is not recursive, so the setting of +# RECURSIVE has no effect here. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = @@ -2308,7 +2549,7 @@ PREDEFINED = __DOXYGEN__ EXPAND_AS_DEFINED = -# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# If the SKIP_FUNCTION_MACROS tag is set to YES then Doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not @@ -2332,26 +2573,26 @@ SKIP_FUNCTION_MACROS = YES # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include -# the path). If a tag file is not located in the directory in which doxygen is +# the path). If a tag file is not located in the directory in which Doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# When a file name is specified after GENERATE_TAGFILE, Doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES, all external classes and namespaces +# will be listed in the class and namespace index. If set to NO, only the +# inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# in the topic index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. @@ -2365,42 +2606,26 @@ EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to diagram generator tools #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - -# 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. -# If left empty dia is assumed to be found in the default search path. - -DIA_PATH = - # If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. HIDE_UNDOC_RELATIONS = YES -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# If you set the HAVE_DOT tag to YES then Doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: -# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# https://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: NO. HAVE_DOT = NO -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed -# to run in parallel. When set to 0 doxygen will base this on the number of +# The DOT_NUM_THREADS specifies the number of dot invocations Doxygen is allowed +# to run in parallel. When set to 0 Doxygen will base this on the number of # processors available in the system. You can set it explicitly to a value # larger than 0 to get control over the balance between CPU load and processing # speed. @@ -2409,55 +2634,83 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. +# DOT_COMMON_ATTR is common attributes for nodes, edges and labels of +# subgraphs. When you want a differently looking font in the dot files that +# Doxygen generates you can specify fontname, fontcolor and fontsize attributes. +# For details please see Node, +# Edge and Graph Attributes specification You need to make sure dot is able +# to find the font, which can be done by putting it in a standard location or by +# setting the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. Default graphviz fontsize is 14. +# The default value is: fontname=Helvetica,fontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = Helvetica +DOT_COMMON_ATTR = "fontname=Helvetica,fontsize=10" -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. +# DOT_EDGE_ATTR is concatenated with DOT_COMMON_ATTR. For elegant style you can +# add 'arrowhead=open, arrowtail=open, arrowsize=0.5'. Complete documentation about +# arrows shapes. +# The default value is: labelfontname=Helvetica,labelfontsize=10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTSIZE = 10 +DOT_EDGE_ATTR = "labelfontname=Helvetica,labelfontsize=10" -# By default doxygen will tell dot to use the default font as specified with -# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set -# the path where dot can find it using this tag. +# DOT_NODE_ATTR is concatenated with DOT_COMMON_ATTR. For view without boxes +# around nodes set 'shape=plain' or 'shape=plaintext' Shapes specification +# The default value is: shape=box,height=0.2,width=0.4. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NODE_ATTR = "shape=box,height=0.2,width=0.4" + +# You can set the path where dot can find font specified with fontname in +# DOT_COMMON_ATTR and others dot attributes. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = -# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for -# each documented class showing the direct and indirect inheritance relations. -# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# If the CLASS_GRAPH tag is set to YES or GRAPH or BUILTIN then Doxygen will +# generate a graph for each documented class showing the direct and indirect +# inheritance relations. In case the CLASS_GRAPH tag is set to YES or GRAPH and +# HAVE_DOT is enabled as well, then dot will be used to draw the graph. In case +# the CLASS_GRAPH tag is set to YES and HAVE_DOT is disabled or if the +# CLASS_GRAPH tag is set to BUILTIN, then the built-in generator will be used. +# If the CLASS_GRAPH tag is set to TEXT the direct and indirect inheritance +# relations will be shown as texts / links. Explicit enabling an inheritance +# graph or choosing a different representation for an inheritance graph of a +# specific class, can be accomplished by means of the command \inheritancegraph. +# Disabling an inheritance graph can be accomplished by means of the command +# \hideinheritancegraph. +# Possible values are: NO, YES, TEXT, GRAPH and BUILTIN. # The default value is: YES. -# This tag requires that the tag HAVE_DOT is set to YES. CLASS_GRAPH = NO -# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# If the COLLABORATION_GRAPH tag is set to YES then Doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the -# class with other documented classes. +# class with other documented classes. Explicit enabling a collaboration graph, +# when COLLABORATION_GRAPH is set to NO, can be accomplished by means of the +# command \collaborationgraph. Disabling a collaboration graph can be +# accomplished by means of the command \hidecollaborationgraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. COLLABORATION_GRAPH = NO -# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for -# groups, showing the direct groups dependencies. +# If the GROUP_GRAPHS tag is set to YES then Doxygen will generate a graph for +# groups, showing the direct groups dependencies. Explicit enabling a group +# dependency graph, when GROUP_GRAPHS is set to NO, can be accomplished by means +# of the command \groupgraph. Disabling a directory graph can be accomplished by +# means of the command \hidegroupgraph. See also the chapter Grouping in the +# manual. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GROUP_GRAPHS = NO -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, Doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2478,10 +2731,10 @@ UML_LOOK = NO UML_LIMIT_NUM_FIELDS = 10 -# If the DOT_UML_DETAILS tag is set to NO, doxygen will show attributes and +# If the DOT_UML_DETAILS tag is set to NO, Doxygen will show attributes and # methods without types and arguments in the UML graphs. If the DOT_UML_DETAILS -# tag is set to YES, doxygen will add type and arguments for attributes and -# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, doxygen +# tag is set to YES, Doxygen will add type and arguments for attributes and +# methods in the UML graphs. If the DOT_UML_DETAILS tag is set to NONE, Doxygen # will not generate fields with class member information in the UML graphs. The # class diagrams will look similar to the default class diagrams but using UML # notation for the relationships. @@ -2493,8 +2746,8 @@ DOT_UML_DETAILS = NO # The DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters # to display on a single line. If the actual line length exceeds this threshold -# significantly it will wrapped across multiple lines. Some heuristics are apply -# to avoid ugly line breaks. +# significantly it will be wrapped across multiple lines. Some heuristics are +# applied to avoid ugly line breaks. # Minimum value: 0, maximum value: 1000, default value: 17. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2509,24 +2762,29 @@ DOT_WRAP_THRESHOLD = 17 TEMPLATE_RELATIONS = NO # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to -# YES then doxygen will generate a graph for each documented file showing the +# YES then Doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an include graph, when INCLUDE_GRAPH is is set to NO, +# can be accomplished by means of the command \includegraph. Disabling an +# include graph can be accomplished by means of the command \hideincludegraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDE_GRAPH = YES # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are -# set to YES then doxygen will generate a graph for each documented file showing +# set to YES then Doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented -# files. +# files. Explicit enabling an included by graph, when INCLUDED_BY_GRAPH is set +# to NO, can be accomplished by means of the command \includedbygraph. Disabling +# an included by graph can be accomplished by means of the command +# \hideincludedbygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDED_BY_GRAPH = YES -# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# If the CALL_GRAPH tag is set to YES then Doxygen will generate a call # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2538,7 +2796,7 @@ INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO -# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# If the CALLER_GRAPH tag is set to YES then Doxygen will generate a caller # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. @@ -2550,44 +2808,59 @@ CALL_GRAPH = NO CALLER_GRAPH = NO -# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# If the GRAPHICAL_HIERARCHY tag is set to YES then Doxygen will graphical # hierarchy of all classes instead of a textual one. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = YES -# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# If the DIRECTORY_GRAPH tag is set to YES then Doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the -# files in the directories. +# files in the directories. Explicit enabling a directory graph, when +# DIRECTORY_GRAPH is set to NO, can be accomplished by means of the command +# \directorygraph. Disabling a directory graph can be accomplished by means of +# the command \hidedirectorygraph. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. DIRECTORY_GRAPH = YES +# The DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of levels +# of child directories generated in directory dependency graphs by dot. +# Minimum value: 1, maximum value: 25, default value: 1. +# This tag requires that the tag DIRECTORY_GRAPH is set to YES. + +DIR_GRAPH_MAX_DEPTH = 1 + # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. For an explanation of the image formats see the section # output formats in the documentation of the dot tool (Graphviz (see: -# http://www.graphviz.org/)). -# 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). +# https://www.graphviz.org/)). +# +# Note the formats svg:cairo and svg:cairo:cairo cannot be used in combination +# with INTERACTIVE_SVG (the INTERACTIVE_SVG will be set to NO). # 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. +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus, +# png:gdiplus:gdiplus, svg:cairo, svg:cairo:cairo, svg:svg, svg:svg:core, +# gif:cairo, gif:cairo:gd, gif:cairo:gdiplus, gif:gdiplus, gif:gdiplus:gdiplus, +# gif:gd, gif:gd:gd, jpg:cairo, jpg:cairo:gd, jpg:cairo:gdiplus, jpg:gd, +# jpg:gd:gd, jpg:gdiplus and jpg:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. DOT_IMAGE_FORMAT = png -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. +# If DOT_IMAGE_FORMAT is set to svg or svg:svg or svg:svg:core, then this option +# can be set to YES to enable generation of interactive SVG images that allow +# zooming and panning. # # Note that this requires a modern browser other than Internet Explorer. Tested # and working are Firefox, Chrome, Safari, and Opera. -# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make -# the SVG files visible. Older versions of IE do not have SVG support. +# +# Note This option will be automatically disabled when DOT_IMAGE_FORMAT is set +# to svg:cairo or svg:cairo:cairo. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2606,11 +2879,12 @@ DOT_PATH = DOTFILE_DIRS = -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the \mscfile -# command). +# 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. +# If left empty dia is assumed to be found in the default search path. -MSCFILE_DIRS = +DIA_PATH = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile @@ -2618,28 +2892,34 @@ MSCFILE_DIRS = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. +# When using PlantUML, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file or to the filename of jar file +# to be used. If left blank, it is assumed PlantUML is not used or called during +# a preprocessing step. Doxygen will generate a warning when it encounters a +# \startuml command in this case and will not generate output for the diagram. PLANTUML_JAR_PATH = -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a -# configuration file for plantuml. +# When using PlantUML, the PLANTUML_CFG_FILE tag can be used to specify a +# configuration file for PlantUML. PLANTUML_CFG_FILE = -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. +# When using PlantUML, the specified paths are searched for files specified by +# the !include statement in a PlantUML block. PLANTUML_INCLUDE_PATH = +# The PLANTUMLFILE_DIRS tag can be used to specify one or more directories that +# contain PlantUml files that are included in the documentation (see the +# \plantumlfile command). + +PLANTUMLFILE_DIRS = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes -# larger than this value, doxygen will truncate the graph, which is visualized -# by representing a node as a red box. Note that doxygen if the number of direct +# larger than this value, Doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. @@ -2660,18 +2940,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support @@ -2681,15 +2949,17 @@ DOT_TRANSPARENT = NO DOT_MULTI_TARGETS = NO -# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. +# Note: This tag requires that UML_LOOK isn't set, i.e. the Doxygen internal +# graphical representation for inheritance and collaboration diagrams is used. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate +# If the DOT_CLEANUP tag is set to YES, Doxygen will remove the intermediate # files that are used to generate the various graphs. # # Note: This setting is not only used for dot files but also for msc temporary @@ -2697,3 +2967,19 @@ GENERATE_LEGEND = YES # The default value is: YES. DOT_CLEANUP = YES + +# You can define message sequence charts within Doxygen comments using the \msc +# command. If the MSCGEN_TOOL tag is left empty (the default), then Doxygen will +# use a built-in version of mscgen tool to produce the charts. Alternatively, +# the MSCGEN_TOOL tag can also specify the name an external tool. For instance, +# specifying prog as the value, Doxygen will call the tool as prog -T +# -o . The external tool should support +# output file formats "png", "eps", "svg", and "ismap". + +MSCGEN_TOOL = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = diff --git a/Documentation/Doxygen/gen_doc.sh b/Documentation/Doxygen/gen_doc.sh new file mode 100755 index 0000000..c64af67 --- /dev/null +++ b/Documentation/Doxygen/gen_doc.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash +# Version: 3.0 +# Date: 2025-10-21 +# This bash script generates CMSIS-Driver documentation +# +# Pre-requisites: +# - bash shell (for Windows: install git for Windows) +# - doxygen 1.13.2 +# - linkchecker (can be skipped with -s) + +set -o pipefail + +# Set version of gen pack library +# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags. +# Use the tag name without the prefix "v", e.g., 0.7.0 +REQUIRED_GEN_PACK_LIB="0.11.3" + +DIRNAME=$(dirname "$(readlink -f "$0")") +GENDIR=../html +REQ_DXY_VERSION="1.13.2" + +RUN_LINKCHECKER=1 +COMPONENTS=() + +function usage() { + echo "Usage: $(basename "$0") [-h] [-s] [-c ]" + echo " -h,--help Show usage" + echo " -s,--no-linkcheck Skip linkcheck" + echo " -c,--component Select component to generate documentation for. " + echo " Can be given multiple times. Defaults to all components." +} + +while [[ $# -gt 0 ]]; do + case $1 in + '-h'|'help') + usage + exit 1 + ;; + '-s'|'--no-linkcheck') + RUN_LINKCHECKER=0 + ;; + '-c'|'--component') + shift + COMPONENTS+=("$1") + ;; + *) + echo "Invalid command line argument: $1" >&2 + usage + exit 1 + ;; + esac + shift # past argument +done + +############ DO NOT EDIT BELOW ########### + +# Set GEN_PACK_LIB_PATH to use a specific gen-pack library root +# ... instead of bootstrap based on REQUIRED_GEN_PACK_LIB +if [[ -f "${GEN_PACK_LIB_PATH}/gen-pack" ]]; then + . "${GEN_PACK_LIB_PATH}/gen-pack" +else + . <(curl -sL "https://raw.githubusercontent.com/Open-CMSIS-Pack/gen-pack/main/bootstrap") +fi + +find_git +find_doxygen "${REQ_DXY_VERSION}" +[[ ${RUN_LINKCHECKER} != 0 ]] && find_linkchecker + +if [ -z "${VERSION_FULL}" ]; then + VERSION_FULL=$(git_describe) +fi + +pushd "${DIRNAME}" > /dev/null + +echo "Generating documentation ..." + +projectName=$(grep -E "PROJECT_NAME\s+=" cmsis_dv.dxy.in | sed -r -e 's/[^"]*"([^"]+)".*/\1/') +projectNumberFull="${VERSION_FULL}" +projectNumber="${projectNumberFull%+*}" +datetime=$(date -u +'%a %b %e %Y %H:%M:%S') +year=$(date -u +'%Y') + +sed -e "s/{projectNumber}/${projectNumber}/" cmsis_dv.dxy.in > cmsis_dv.dxy + +git_changelog -f html > src/history.txt + +echo "\"${UTILITY_DOXYGEN}\" cmsis_dv.dxy" +"${UTILITY_DOXYGEN}" cmsis_dv.dxy + +mkdir -p "${DIRNAME}/${GENDIR}/search/" +cp -f "${DIRNAME}/style_template/search.css" "${DIRNAME}/${GENDIR}/search/" +cp -f "${DIRNAME}/style_template/navtree.js" "${DIRNAME}/${GENDIR}/" +cp -f "${DIRNAME}/style_template/resize.js" "${DIRNAME}/${GENDIR}/" + +sed -e "s/{datetime}/${datetime}/" "${DIRNAME}/style_template/footer.js.in" \ + | sed -e "s/{year}/${year}/" \ + | sed -e "s/{projectName}/${projectName}/" \ + | sed -e "s/{projectNumber}/${projectNumber}/" \ + | sed -e "s/{projectNumberFull}/${projectNumberFull}/" \ + > "${DIRNAME}/${GENDIR}/footer.js" + +popd > /dev/null + +[[ ${RUN_LINKCHECKER} != 0 ]] && check_links "${DIRNAME}/../html/index.html" "${DIRNAME}" + + +exit 0 diff --git a/Documentation/Doxygen/linkchecker.rc b/Documentation/Doxygen/linkchecker.rc new file mode 100644 index 0000000..ee99ad2 --- /dev/null +++ b/Documentation/Doxygen/linkchecker.rc @@ -0,0 +1,16 @@ +[output] +ignoreerrors= + mag.svg + mag_sel.svg + mag_d.svg + mag_seld.svg + ../tab_a.png + ../tab_ad.png + minus.svg + plus.svg + minusd.svg + plusd.svg + +[filtering] +ignorewarnings= + http-redirected diff --git a/DoxyGen/src/DV_CAN.txt b/Documentation/Doxygen/src/DV_CAN.txt similarity index 100% rename from DoxyGen/src/DV_CAN.txt rename to Documentation/Doxygen/src/DV_CAN.txt diff --git a/DoxyGen/src/DV_ETH.txt b/Documentation/Doxygen/src/DV_ETH.txt similarity index 100% rename from DoxyGen/src/DV_ETH.txt rename to Documentation/Doxygen/src/DV_ETH.txt diff --git a/DoxyGen/src/DV_GPIO.txt b/Documentation/Doxygen/src/DV_GPIO.txt similarity index 100% rename from DoxyGen/src/DV_GPIO.txt rename to Documentation/Doxygen/src/DV_GPIO.txt diff --git a/DoxyGen/src/DV_I2C.txt b/Documentation/Doxygen/src/DV_I2C.txt similarity index 100% rename from DoxyGen/src/DV_I2C.txt rename to Documentation/Doxygen/src/DV_I2C.txt diff --git a/DoxyGen/src/DV_MCI.txt b/Documentation/Doxygen/src/DV_MCI.txt similarity index 100% rename from DoxyGen/src/DV_MCI.txt rename to Documentation/Doxygen/src/DV_MCI.txt diff --git a/DoxyGen/src/DV_SPI.txt b/Documentation/Doxygen/src/DV_SPI.txt similarity index 100% rename from DoxyGen/src/DV_SPI.txt rename to Documentation/Doxygen/src/DV_SPI.txt diff --git a/DoxyGen/src/DV_USART.txt b/Documentation/Doxygen/src/DV_USART.txt similarity index 100% rename from DoxyGen/src/DV_USART.txt rename to Documentation/Doxygen/src/DV_USART.txt diff --git a/DoxyGen/src/DV_USBD.txt b/Documentation/Doxygen/src/DV_USBD.txt similarity index 100% rename from DoxyGen/src/DV_USBD.txt rename to Documentation/Doxygen/src/DV_USBD.txt diff --git a/DoxyGen/src/DV_USBH.txt b/Documentation/Doxygen/src/DV_USBH.txt similarity index 100% rename from DoxyGen/src/DV_USBH.txt rename to Documentation/Doxygen/src/DV_USBH.txt diff --git a/DoxyGen/src/DV_WiFi.txt b/Documentation/Doxygen/src/DV_WiFi.txt similarity index 100% rename from DoxyGen/src/DV_WiFi.txt rename to Documentation/Doxygen/src/DV_WiFi.txt diff --git a/DoxyGen/src/DriverValidation.txt b/Documentation/Doxygen/src/DriverValidation.txt similarity index 98% rename from DoxyGen/src/DriverValidation.txt rename to Documentation/Doxygen/src/DriverValidation.txt index 642cd19..bc49d71 100644 --- a/DoxyGen/src/DriverValidation.txt +++ b/Documentation/Doxygen/src/DriverValidation.txt @@ -51,12 +51,19 @@ This manual contains the following chapters: - \ref debugging - Describes procedure for debugging of the interface drivers using the CMSIS-Driver Validation. - \ref resource_requirements - Lists memory and CMSIS-RTOS2 requirements. - \ref examples - Contains information about several example projects including the required hardware setup. - - Reference - Explains the configuration and tests for the various CMSIS-Driver interfaces. + - Reference - Explains the configuration and tests for the various CMSIS-Driver interfaces. \section License License The CMSIS Driver example implementations are provided free of charge under Apache 2.0 license. -See the Apache 2.0 License. +See the Apache 2.0 License. + +*/ +/*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/ +/** +\page rev_hist Revision History + +The table below provides information about the changes delivered with specific versions of CMSIS-Driver Validation. */ /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/ @@ -100,7 +107,7 @@ Each interface has a related DV_interface_Config.h file, where For example for Serial Peripheral Interface (SPI) related config file name is DV_SPI_Config.h. For details on interface specific configuration and test selection please check the Configuration section in the -Reference of the related interface. +Reference of the related interface. \section step5 Step 5: Configure the Heap memory diff --git a/DoxyGen/src/images/SockMonitor.png b/Documentation/Doxygen/src/images/SockMonitor.png similarity index 100% rename from DoxyGen/src/images/SockMonitor.png rename to Documentation/Doxygen/src/images/SockMonitor.png diff --git a/DoxyGen/src/images/SockServer.png b/Documentation/Doxygen/src/images/SockServer.png similarity index 100% rename from DoxyGen/src/images/SockServer.png rename to Documentation/Doxygen/src/images/SockServer.png diff --git a/DoxyGen/src/images/b-l475e-iot01a.png b/Documentation/Doxygen/src/images/b-l475e-iot01a.png similarity index 100% rename from DoxyGen/src/images/b-l475e-iot01a.png rename to Documentation/Doxygen/src/images/b-l475e-iot01a.png diff --git a/DoxyGen/src/images/cmsis_dv.png b/Documentation/Doxygen/src/images/cmsis_dv.png similarity index 100% rename from DoxyGen/src/images/cmsis_dv.png rename to Documentation/Doxygen/src/images/cmsis_dv.png diff --git a/DoxyGen/src/images/dv_can_config_h.png b/Documentation/Doxygen/src/images/dv_can_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_can_config_h.png rename to Documentation/Doxygen/src/images/dv_can_config_h.png diff --git a/DoxyGen/src/images/dv_eth_config_h.png b/Documentation/Doxygen/src/images/dv_eth_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_eth_config_h.png rename to Documentation/Doxygen/src/images/dv_eth_config_h.png diff --git a/DoxyGen/src/images/dv_gpio_config_h.png b/Documentation/Doxygen/src/images/dv_gpio_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_gpio_config_h.png rename to Documentation/Doxygen/src/images/dv_gpio_config_h.png diff --git a/DoxyGen/src/images/dv_i2c_config_h.png b/Documentation/Doxygen/src/images/dv_i2c_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_i2c_config_h.png rename to Documentation/Doxygen/src/images/dv_i2c_config_h.png diff --git a/DoxyGen/src/images/dv_mci_config_h.png b/Documentation/Doxygen/src/images/dv_mci_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_mci_config_h.png rename to Documentation/Doxygen/src/images/dv_mci_config_h.png diff --git a/DoxyGen/src/images/dv_spi_config_h.png b/Documentation/Doxygen/src/images/dv_spi_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_spi_config_h.png rename to Documentation/Doxygen/src/images/dv_spi_config_h.png diff --git a/DoxyGen/src/images/dv_usart_config_h.png b/Documentation/Doxygen/src/images/dv_usart_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_usart_config_h.png rename to Documentation/Doxygen/src/images/dv_usart_config_h.png diff --git a/DoxyGen/src/images/dv_usbd_config_h.png b/Documentation/Doxygen/src/images/dv_usbd_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_usbd_config_h.png rename to Documentation/Doxygen/src/images/dv_usbd_config_h.png diff --git a/DoxyGen/src/images/dv_usbh_config_h.png b/Documentation/Doxygen/src/images/dv_usbh_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_usbh_config_h.png rename to Documentation/Doxygen/src/images/dv_usbh_config_h.png diff --git a/DoxyGen/src/images/dv_wifi_config_h.png b/Documentation/Doxygen/src/images/dv_wifi_config_h.png similarity index 100% rename from DoxyGen/src/images/dv_wifi_config_h.png rename to Documentation/Doxygen/src/images/dv_wifi_config_h.png diff --git a/DoxyGen/src/images/esp32_wroom_sparkfun.png b/Documentation/Doxygen/src/images/esp32_wroom_sparkfun.png similarity index 100% rename from DoxyGen/src/images/esp32_wroom_sparkfun.png rename to Documentation/Doxygen/src/images/esp32_wroom_sparkfun.png diff --git a/DoxyGen/src/images/esp8266_sparkfun.png b/Documentation/Doxygen/src/images/esp8266_sparkfun.png similarity index 100% rename from DoxyGen/src/images/esp8266_sparkfun.png rename to Documentation/Doxygen/src/images/esp8266_sparkfun.png diff --git a/DoxyGen/src/images/ethernet_loopback.png b/Documentation/Doxygen/src/images/ethernet_loopback.png similarity index 100% rename from DoxyGen/src/images/ethernet_loopback.png rename to Documentation/Doxygen/src/images/ethernet_loopback.png diff --git a/DoxyGen/src/images/gpio_loopback.png b/Documentation/Doxygen/src/images/gpio_loopback.png similarity index 100% rename from DoxyGen/src/images/gpio_loopback.png rename to Documentation/Doxygen/src/images/gpio_loopback.png diff --git a/DoxyGen/src/images/image001.png b/Documentation/Doxygen/src/images/image001.png similarity index 100% rename from DoxyGen/src/images/image001.png rename to Documentation/Doxygen/src/images/image001.png diff --git a/DoxyGen/src/images/image002.png b/Documentation/Doxygen/src/images/image002.png similarity index 100% rename from DoxyGen/src/images/image002.png rename to Documentation/Doxygen/src/images/image002.png diff --git a/DoxyGen/src/images/image003.png b/Documentation/Doxygen/src/images/image003.png similarity index 100% rename from DoxyGen/src/images/image003.png rename to Documentation/Doxygen/src/images/image003.png diff --git a/DoxyGen/src/images/image004.png b/Documentation/Doxygen/src/images/image004.png similarity index 100% rename from DoxyGen/src/images/image004.png rename to Documentation/Doxygen/src/images/image004.png diff --git a/DoxyGen/src/images/image005.png b/Documentation/Doxygen/src/images/image005.png similarity index 100% rename from DoxyGen/src/images/image005.png rename to Documentation/Doxygen/src/images/image005.png diff --git a/DoxyGen/src/images/image006.png b/Documentation/Doxygen/src/images/image006.png similarity index 100% rename from DoxyGen/src/images/image006.png rename to Documentation/Doxygen/src/images/image006.png diff --git a/DoxyGen/src/images/lpcxpresso55s69.png b/Documentation/Doxygen/src/images/lpcxpresso55s69.png similarity index 100% rename from DoxyGen/src/images/lpcxpresso55s69.png rename to Documentation/Doxygen/src/images/lpcxpresso55s69.png diff --git a/DoxyGen/src/images/mcbstm32f400.png b/Documentation/Doxygen/src/images/mcbstm32f400.png similarity index 100% rename from DoxyGen/src/images/mcbstm32f400.png rename to Documentation/Doxygen/src/images/mcbstm32f400.png diff --git a/DoxyGen/src/images/mimxrt1064evk.png b/Documentation/Doxygen/src/images/mimxrt1064evk.png similarity index 100% rename from DoxyGen/src/images/mimxrt1064evk.png rename to Documentation/Doxygen/src/images/mimxrt1064evk.png diff --git a/DoxyGen/src/images/spi_bus_master_ss_hw_ctrl_out.png b/Documentation/Doxygen/src/images/spi_bus_master_ss_hw_ctrl_out.png similarity index 100% rename from DoxyGen/src/images/spi_bus_master_ss_hw_ctrl_out.png rename to Documentation/Doxygen/src/images/spi_bus_master_ss_hw_ctrl_out.png diff --git a/DoxyGen/src/images/spi_loopback_pin_connections.png b/Documentation/Doxygen/src/images/spi_loopback_pin_connections.png similarity index 100% rename from DoxyGen/src/images/spi_loopback_pin_connections.png rename to Documentation/Doxygen/src/images/spi_loopback_pin_connections.png diff --git a/DoxyGen/src/images/spi_server_config_h.png b/Documentation/Doxygen/src/images/spi_server_config_h.png similarity index 100% rename from DoxyGen/src/images/spi_server_config_h.png rename to Documentation/Doxygen/src/images/spi_server_config_h.png diff --git a/DoxyGen/src/images/spi_server_pin_connections.png b/Documentation/Doxygen/src/images/spi_server_pin_connections.png similarity index 100% rename from DoxyGen/src/images/spi_server_pin_connections.png rename to Documentation/Doxygen/src/images/spi_server_pin_connections.png diff --git a/DoxyGen/src/images/src/DV.vsd b/Documentation/Doxygen/src/images/src/DV.vsd similarity index 100% rename from DoxyGen/src/images/src/DV.vsd rename to Documentation/Doxygen/src/images/src/DV.vsd diff --git a/DoxyGen/src/images/src/Driver Validation Suite.pptx b/Documentation/Doxygen/src/images/src/Driver Validation Suite.pptx similarity index 100% rename from DoxyGen/src/images/src/Driver Validation Suite.pptx rename to Documentation/Doxygen/src/images/src/Driver Validation Suite.pptx diff --git a/DoxyGen/src/images/src/GPIO_pin_connection.pptx b/Documentation/Doxygen/src/images/src/GPIO_pin_connection.pptx similarity index 100% rename from DoxyGen/src/images/src/GPIO_pin_connection.pptx rename to Documentation/Doxygen/src/images/src/GPIO_pin_connection.pptx diff --git a/DoxyGen/src/images/src/SPI_pin_connection.pptx b/Documentation/Doxygen/src/images/src/SPI_pin_connection.pptx similarity index 100% rename from DoxyGen/src/images/src/SPI_pin_connection.pptx rename to Documentation/Doxygen/src/images/src/SPI_pin_connection.pptx diff --git a/DoxyGen/src/images/src/USART_pin_connection.pptx b/Documentation/Doxygen/src/images/src/USART_pin_connection.pptx similarity index 100% rename from DoxyGen/src/images/src/USART_pin_connection.pptx rename to Documentation/Doxygen/src/images/src/USART_pin_connection.pptx diff --git a/DoxyGen/src/images/stm32f746g-disco.png b/Documentation/Doxygen/src/images/stm32f746g-disco.png similarity index 100% rename from DoxyGen/src/images/stm32f746g-disco.png rename to Documentation/Doxygen/src/images/stm32f746g-disco.png diff --git a/DoxyGen/src/images/target_dialog.png b/Documentation/Doxygen/src/images/target_dialog.png similarity index 100% rename from DoxyGen/src/images/target_dialog.png rename to Documentation/Doxygen/src/images/target_dialog.png diff --git a/DoxyGen/src/images/usart_bus_async_send.png b/Documentation/Doxygen/src/images/usart_bus_async_send.png similarity index 100% rename from DoxyGen/src/images/usart_bus_async_send.png rename to Documentation/Doxygen/src/images/usart_bus_async_send.png diff --git a/DoxyGen/src/images/usart_loopback_pin_connections.png b/Documentation/Doxygen/src/images/usart_loopback_pin_connections.png similarity index 100% rename from DoxyGen/src/images/usart_loopback_pin_connections.png rename to Documentation/Doxygen/src/images/usart_loopback_pin_connections.png diff --git a/DoxyGen/src/images/usart_server_config_h.png b/Documentation/Doxygen/src/images/usart_server_config_h.png similarity index 100% rename from DoxyGen/src/images/usart_server_config_h.png rename to Documentation/Doxygen/src/images/usart_server_config_h.png diff --git a/DoxyGen/src/images/usart_server_pin_connections.png b/Documentation/Doxygen/src/images/usart_server_pin_connections.png similarity index 100% rename from DoxyGen/src/images/usart_server_pin_connections.png rename to Documentation/Doxygen/src/images/usart_server_pin_connections.png diff --git a/DoxyGen/src/images/usart_server_pin_connections_async.png b/Documentation/Doxygen/src/images/usart_server_pin_connections_async.png similarity index 100% rename from DoxyGen/src/images/usart_server_pin_connections_async.png rename to Documentation/Doxygen/src/images/usart_server_pin_connections_async.png diff --git a/DoxyGen/src/images/usart_server_pin_connections_single_wire.png b/Documentation/Doxygen/src/images/usart_server_pin_connections_single_wire.png similarity index 100% rename from DoxyGen/src/images/usart_server_pin_connections_single_wire.png rename to Documentation/Doxygen/src/images/usart_server_pin_connections_single_wire.png diff --git a/DoxyGen/src/images/usbd_command_verifier.png b/Documentation/Doxygen/src/images/usbd_command_verifier.png similarity index 100% rename from DoxyGen/src/images/usbd_command_verifier.png rename to Documentation/Doxygen/src/images/usbd_command_verifier.png diff --git a/DoxyGen/src/images/usbd_dev_location.png b/Documentation/Doxygen/src/images/usbd_dev_location.png similarity index 100% rename from DoxyGen/src/images/usbd_dev_location.png rename to Documentation/Doxygen/src/images/usbd_dev_location.png diff --git a/DoxyGen/src/images/usbd_dev_manager.png b/Documentation/Doxygen/src/images/usbd_dev_manager.png similarity index 100% rename from DoxyGen/src/images/usbd_dev_manager.png rename to Documentation/Doxygen/src/images/usbd_dev_manager.png diff --git a/DoxyGen/src/images/usbd_select_device.png b/Documentation/Doxygen/src/images/usbd_select_device.png similarity index 100% rename from DoxyGen/src/images/usbd_select_device.png rename to Documentation/Doxygen/src/images/usbd_select_device.png diff --git a/DoxyGen/src/images/wizfi360-evb.png b/Documentation/Doxygen/src/images/wizfi360-evb.png similarity index 100% rename from DoxyGen/src/images/wizfi360-evb.png rename to Documentation/Doxygen/src/images/wizfi360-evb.png diff --git a/DoxyGen/src/images/xmc4500.png b/Documentation/Doxygen/src/images/xmc4500.png similarity index 100% rename from DoxyGen/src/images/xmc4500.png rename to Documentation/Doxygen/src/images/xmc4500.png diff --git a/DoxyGen/templates/cmsis_logo_white_small.png b/Documentation/Doxygen/style_template/cmsis_logo_white_small.png similarity index 100% rename from DoxyGen/templates/cmsis_logo_white_small.png rename to Documentation/Doxygen/style_template/cmsis_logo_white_small.png diff --git a/Documentation/Doxygen/style_template/darkmode_toggle.js b/Documentation/Doxygen/style_template/darkmode_toggle.js new file mode 100644 index 0000000..b2bd94f --- /dev/null +++ b/Documentation/Doxygen/style_template/darkmode_toggle.js @@ -0,0 +1,281 @@ +/** + +The code below is based on the Doxygen Awesome project with some minor modifications +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +class DarkModeToggle extends HTMLElement { + static icon = '' + static icond = '' + static title = "Toggle Light/Dark Mode" + + static prefersLightModeInDarkModeKey = "prefers-light-mode-in-dark-mode" + static prefersDarkModeInLightModeKey = "prefers-dark-mode-in-light-mode" + + static _staticConstructor = function() { + DarkModeToggle.enableDarkMode(DarkModeToggle.userPreference) + // Update the color scheme when the browsers preference changes + // without user interaction on the website. + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { + DarkModeToggle.onSystemPreferenceChanged() + }) + // Update the color scheme when the tab is made visible again. + // It is possible that the appearance was changed in another tab + // while this tab was in the background. + document.addEventListener("visibilitychange", visibilityState => { + if (document.visibilityState === 'visible') { + DarkModeToggle.onSystemPreferenceChanged() + } + }); + }() + + static addButton() { + + var tbuttons = document.getElementsByTagName("dark-mode-toggle"); + var toggleButton; + var titleArea = document.getElementById("titlearea"); + var searchBox = document.getElementById("MSearchBox"); + var mainMenu = document.getElementById("main-menu"); + var navRow1 = document.getElementById("navrow1"); + var mainMenuVisible = false; + if (!tbuttons.length){ + toggleButton = document.createElement('dark-mode-toggle') + toggleButton.title = DarkModeToggle.title + } else {toggleButton=tbuttons[0]} + + + if (DarkModeToggle.darkModeEnabled){ + toggleButton.innerHTML=DarkModeToggle.icond + } else { + toggleButton.innerHTML=DarkModeToggle.icon + } + + if (mainMenu) { + var menuStyle = window.getComputedStyle(mainMenu); + mainMenuVisible = menuStyle.display!=='none' + } + var searchBoxPos1 = document.getElementById("searchBoxPos1"); + if (searchBox) { // (1) search box visible + searchBox.parentNode.appendChild(toggleButton) + } else if (navRow1) { // (2) no search box, static menu bar + var li = document.createElement('li'); + li.style = 'float: right;' + li.appendChild(toggleButton); + toggleButton.style = 'width: 24px; height: 25px; padding-top: 11px; float: right;'; + var row = document.querySelector('#navrow1 > ul:first-of-type'); + row.appendChild(li) + } else if (mainMenu && mainMenuVisible) { // (3) no search box + dynamic menu bar expanded + var li = document.createElement('li'); + li.style = 'float: right;' + li.appendChild(toggleButton); + toggleButton.style = 'width: 14px; height: 36px; padding-top: 10px; float: right;'; + mainMenu.appendChild(li) + } else if (searchBoxPos1) { // (4) no search box + dynamic menu bar collapsed + toggleButton.style = 'width: 24px; height: 36px; padding-top: 10px; float: right;'; + searchBoxPos1.style = 'top: 0px;' + searchBoxPos1.appendChild(toggleButton); + } else if (titleArea) { // (5) no search box and no navigation tabs + toggleButton.style = 'width: 24px; height: 24px; position: absolute; right: 0px; top: 34px;'; + titleArea.append(toggleButton); + } + } + + static init() { + $(function() { + $(document).ready(function() { + + $(document).ready(function(){ + DarkModeToggle.addButton(); + }) + $(window).resize(function(){ + DarkModeToggle.addButton(); + }) + DarkModeToggle.setDarkModeVisibility(DarkModeToggle.darkModeEnabled) + }) + }) + } + + constructor() { + super(); + this.onclick=this.toggleDarkMode + } + + + static createCookie(name, value, days) { + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + var expires = "; expires=" + date.toGMTString(); + } + else var expires = ""; + + document.cookie = name + "=" + value + expires + "; path=/"; + } + + static readCookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') c = c.substring(1, c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); + } + return null; + } + + static eraseCookie(name) { + DarkModeToggle.createCookie(name, "", -1); + } + + /** + * @returns `true` for dark-mode, `false` for light-mode system preference + */ + static get systemPreference() { + return window.matchMedia('(prefers-color-scheme: dark)').matches + } + + static get prefersDarkModeInLightMode() { + if (window.chrome) { // Chrome supports localStorage in combination with file:// but not cookies + return localStorage.getItem(DarkModeToggle.prefersDarkModeInLightModeKey) + } else { // Other browsers support cookies in combination with file:// but not localStorage + return DarkModeToggle.readCookie('doxygen_prefers_dark')=='1' + } + } + + static set prefersDarkModeInLightMode(preference) { + if (window.chrome) { + if (preference) { + localStorage.setItem(DarkModeToggle.prefersDarkModeInLightModeKey, true) + } else { + localStorage.removeItem(DarkModeToggle.prefersDarkModeInLightModeKey) + } + } else { + if (preference) { + DarkModeToggle.createCookie('doxygen_prefers_dark','1',365) + } else { + DarkModeToggle.eraseCookie('doxygen_prefers_dark') + } + } + } + + static get prefersLightModeInDarkMode() { + if (window.chrome) { // Chrome supports localStorage in combination with file:// but not cookies + return localStorage.getItem(DarkModeToggle.prefersLightModeInDarkModeKey) + } else { // Other browsers support cookies in combination with file:// but not localStorage + return DarkModeToggle.readCookie('doxygen_prefers_light')=='1' + } + } + + static set prefersLightModeInDarkMode(preference) { + if (window.chrome) { + if (preference) { + localStorage.setItem(DarkModeToggle.prefersLightModeInDarkModeKey, true) + } else { + localStorage.removeItem(DarkModeToggle.prefersLightModeInDarkModeKey) + } + } else { + if (preference) { + DarkModeToggle.createCookie('doxygen_prefers_light','1',365) + } else { + DarkModeToggle.eraseCookie('doxygen_prefers_light') + } + } + } + + + /** + * @returns `true` for dark-mode, `false` for light-mode user preference + */ + static get userPreference() { + return (!DarkModeToggle.systemPreference && DarkModeToggle.prefersDarkModeInLightMode) || + (DarkModeToggle.systemPreference && !DarkModeToggle.prefersLightModeInDarkMode) + } + + static set userPreference(userPreference) { + DarkModeToggle.darkModeEnabled = userPreference + if (!userPreference) { + if (DarkModeToggle.systemPreference) { + DarkModeToggle.prefersLightModeInDarkMode = true + } else { + DarkModeToggle.prefersDarkModeInLightMode = false + } + } else { + if (!DarkModeToggle.systemPreference) { + DarkModeToggle.prefersDarkModeInLightMode = true + } else { + DarkModeToggle.prefersLightModeInDarkMode = false + } + } + DarkModeToggle.onUserPreferenceChanged() + } + + static setDarkModeVisibility(enable) { + var darkModeStyle, lightModeStyle; + if(enable) { + darkModeStyle = 'inline-block'; + lightModeStyle = 'none' + } else { + darkModeStyle = 'none'; + lightModeStyle = 'inline-block' + } + document.querySelectorAll('.dark-mode-visible').forEach(function(el) { + el.style.display = darkModeStyle; + }); + document.querySelectorAll('.light-mode-visible').forEach(function(el) { + el.style.display = lightModeStyle; + }); + } + static enableDarkMode(enable) { + if(enable) { + DarkModeToggle.darkModeEnabled = true + document.documentElement.classList.add("dark-mode") + document.documentElement.classList.remove("light-mode") + } else { + DarkModeToggle.darkModeEnabled = false + document.documentElement.classList.remove("dark-mode") + document.documentElement.classList.add("light-mode") + } + DarkModeToggle.setDarkModeVisibility(enable) + } + + static onSystemPreferenceChanged() { + DarkModeToggle.darkModeEnabled = DarkModeToggle.userPreference + DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled) + } + + static onUserPreferenceChanged() { + DarkModeToggle.enableDarkMode(DarkModeToggle.darkModeEnabled) + } + + toggleDarkMode() { + DarkModeToggle.userPreference = !DarkModeToggle.userPreference + DarkModeToggle.addButton(); + } +} + +customElements.define("dark-mode-toggle", DarkModeToggle); + +DarkModeToggle.init(); diff --git a/DoxyGen/templates/dropdown.png b/Documentation/Doxygen/style_template/dropdown.png similarity index 100% rename from DoxyGen/templates/dropdown.png rename to Documentation/Doxygen/style_template/dropdown.png diff --git a/DoxyGen/templates/navtree.css b/Documentation/Doxygen/style_template/extra_navtree.css similarity index 91% rename from DoxyGen/templates/navtree.css rename to Documentation/Doxygen/style_template/extra_navtree.css index 1e8b995..87272cc 100644 --- a/DoxyGen/templates/navtree.css +++ b/Documentation/Doxygen/style_template/extra_navtree.css @@ -29,6 +29,9 @@ } #nav-tree .selected { + background-image: none; + background-repeat:no-repeat; + text-shadow: none; border: 1.5px solid var(--arm_blue); border-left-width: 5px; margin-left:-10px; /*correction to place selection border on the edge screen edge */ @@ -42,6 +45,7 @@ } #nav-tree a { + color: var(--nav-text-normal-color); text-decoration:none; padding:0px; padding-left:0px; @@ -62,7 +66,6 @@ #nav-tree .label a { padding-left:6px; line-height: 30px; - color: var(--arm_black); } #nav-tree .selected a { @@ -82,7 +85,6 @@ #nav-tree { padding: 0px 0px; padding-left: 10px; /*correction to add space before the first arrow in nav-tree */ - background-color: #FAFAFF; overflow:auto; } @@ -100,7 +102,7 @@ display:block; position: absolute; left: 0px; - width: 310px; + width: 330px; } .ui-resizable .ui-resizable-handle { @@ -108,14 +110,14 @@ } .ui-resizable-e { - background-color: var(--arm_light_gray); + background-color: var(--nav-splitbar-color); background-repeat:repeat-y; background-attachment: scroll; cursor:ew-resize; height:100%; right:0; top:0; - width:2px; + width:1px; } .ui-resizable-handle { @@ -130,7 +132,7 @@ } #nav-tree { - background-color: white; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ } @@ -139,14 +141,15 @@ top:5px; right:24px; z-index:0; + opacity:0; } #nav-sync img { - opacity:0.0; + opacity:0; } #nav-sync img:hover { - opacity:0.0; + opacity:0; } #nav-tree a:hover { diff --git a/Documentation/Doxygen/style_template/extra_search.css b/Documentation/Doxygen/style_template/extra_search.css new file mode 100644 index 0000000..58f12de --- /dev/null +++ b/Documentation/Doxygen/style_template/extra_search.css @@ -0,0 +1,49 @@ + +dark-mode-toggle { + position: absolute; + right: 205px; + padding-top: 3px; + color: var(--arm_light_gray); +} + +.tablist .MSearchBox { + pointer-events: none; + display: inline-block; + white-space : nowrap; + background: none; + border-radius: 0.0em; + height: 0em; + width: 0em; + line-height: 0px; +} + +.tablist .MSearchField { + pointer-events: none; + display: inline-block; + vertical-align: middle; + width: 0em; + height: 0px; + margin: 0 0; + padding: 0; + line-height: 0em; + border:none; + outline: none; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +.tablist .MSearchBoxInactive { + pointer-events: none; + opacity:0.0; +} + +.tablist .MSearchBoxActive { + pointer-events: none; + opacity:0.0; +} + +.tablist .MSearchBoxInactive:hover { + pointer-events: none; + opacity:0.0; +} \ No newline at end of file diff --git a/Documentation/Doxygen/style_template/extra_stylesheet.css b/Documentation/Doxygen/style_template/extra_stylesheet.css new file mode 100644 index 0000000..75c840e --- /dev/null +++ b/Documentation/Doxygen/style_template/extra_stylesheet.css @@ -0,0 +1,1744 @@ +/* The standard CSS for doxygen 1.9.6*/ +:root { + --arm_light_blue: #00C1DE; + --arm_blue: #11809F; + --arm_blue1: #0091BD; + --arm_dark_blue: #002B49; + --arm_light_gray: #E5ECEB; + --arm_light_gray1: #EFF5F4; + --arm_light_gray2: #EBEBEB; + --arm_light_gray3: #F7F7F7; + --arm_dark_gray: #7D868C; + --arm_dark_gray1: #6F777C; + --arm_dark_gray2:#383b40; + --arm_black: #333E48; + --arm_black1: #1f2023; + --arm_black2: #2d2f34; + --arm_orange: #FF6B00; + --max_content_width: 1200px; + --max_textblock_width: 950px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + --toc-sticky-top: var(--spacing-medium); + --toc-width: 250px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + --toc-font-size: 14px; + --toc-header-font-size: 15px; + +} + +html { + /* page base colors */ + --page-background-color: white; + --page-foreground-color: black; + --page-link-color: var(--arm_blue); + --page-visited-link-color: var(--arm_blue); + + /* index */ + --index-odd-item-bg-color: #F7F8FB; + --index-even-item-bg-color: var(--page-background-color); + --index-header-color: black; + --index-separator-color: #A0A0A0; + + /* header */ + --header-background-color: var(--page-background-color); + --header-separator-color: var(--page-background-color); + --header-gradient-image: none; + --group-header-separator-color: var(--arm_light_gray3); + --group-header-color: var(--page-foreground-color); + --inherit-header-color: gray; + + --footer-foreground-color: #2A3D61; + --footer-logo-width: 104px; + --citation-label-color: #334975; + --glow-color: cyan; + + --title-background-color: white; + --title-separator-color: #5373B4; + --directory-separator-color: #9CAFD4; + --separator-color:var(--nav-splitbar-color); + + --blockquote-background-color: #F7F8FB; + --blockquote-border-color: var(--separator-color); + + --scrollbar-thumb-color: #9CAFD4; + --scrollbar-background-color: #F9FAFC; + + --icon-background-color: #728DC1; + --icon-foreground-color: white; + --icon-doc-image: url('doc.svg'); + + /* brief member declaration list */ + --memdecl-background-color:#F9FAFC; + --memdecl-separator-color: #DEE4F0; + --memdecl-foreground-color: var(--page-foreground-color); + --memdecl-template-color: #4665A2; + + /* detailed member list */ + --memdef-border-color: var(--arm_dark_gray); + --memdef-title-background-color: var(--arm_light_gray2); + --memdef-title-gradient-image: none; + --memdef-table-header-background-color: var(--arm_light_gray1); + --memdef-proto-background-color: var(--arm_light_gray2); + --memdef-proto-text-color: var(--arm_black); + --memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + --memdef-doc-background-color: var(--page-background-color); + --memdef-param-name-color: #602020; + --memdef-template-color: #4665A2; + + /* tables */ + --table-cell-border-color: var(--arm_light_gray); + --table-header-background-color: var(--arm_blue); + --table-header-foreground-color: white; + --table-even-cell-color: var(--arm_light_gray3);; + --table-odd-cell-color: #white; + + + /* labels */ + --label-background-color: #728DC1; + --label-left-top-border-color: #5373B4; + --label-right-bottom-border-color: #C4CFE5; + --label-foreground-color: white; + + /** navigation bar/tree/menu */ + --nav-background-color: var(--page-background-color); + --nav-foreground-color: var(--page-foreground-color); + --nav-gradient-image: none; + --nav-gradient-hover-image: none; + --nav-gradient-active-image: none; + --nav-gradient-active-image-parent: none; + --nav-separator-image: none; + --nav-breadcrumb-image: none; + --nav-breadcrumb-border-color: #C2CDE4; + --nav-splitbar-image: none; + --nav-splitbar-color: var(--arm_light_gray); + --nav-font-size-level1: 13px; + --nav-font-size-level2: 10px; + --nav-font-size-level3: 9px; + --nav-text-normal-color:var(--arm_black); + --nav-text-hover-color: var(--arm_orange); + --nav-text-active-color: var(--arm_black); + --nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + --nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + --nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + --nav-menu-button-color: #364D7C; + --nav-menu-background-color: white; + --nav-menu-foreground-color: #555555; + --nav-menu-toggle-color: rgba(255, 255, 255, 0.5); + --nav-arrow-color: var(--arm_blue); + --nav-arrow-selected-color: var(--arm_blue); + --nav_tabs-text-color:var(--arm_dark_gray); + --nav_tabs-text-active-color:white; + --nav_tabs-background-color:var(--arm_black2); + --nav_tabs-background-active-color:var(--arm_dark_gray); + --nav_tabs-border-color:var(--arm_dark_gray); + + /* table of contents */ + --toc-background-color: var(--nav-background-color); + --toc-foreground-color: var(--nav-foreground-color); + --toc-active-color: var(--arm_dark_blue); + --toc-border-color: #D8DFEE; + --toc-header-color: #4665A2; + + /** search field */ + --search-background-color: white; + --search-foreground-color: #909090; + --search-magnification-image: url('mag.svg'); + --search-magnification-select-image: url('mag_sel.svg'); + --search-active-color: black; + --search-filter-background-color: #F9FAFC; + --search-filter-foreground-color: black; + --search-filter-border-color: #90A5CE; + --search-filter-highlight-text-color: white; + --search-filter-highlight-bg-color: #3D578C; + --search-results-foreground-color: #425E97; + --search-results-background-color: #EEF1F7; + --search-results-border-color: black; + --search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + + /** code fragments */ + --code-keyword-color: #008000; + --code-type-keyword-color: #604020; + --code-flow-keyword-color: #E08000; + --code-comment-color: #800000; + --code-preprocessor-color: #806020; + --code-string-literal-color: #002080; + --code-char-literal-color: #008080; + --code-vhdl-digit-color: #FF00FF; + --code-vhdl-char-color: #000000; + --code-vhdl-keyword-color: #700070; + --code-vhdl-logic-color: #FF0000; + --code-link-color: var(--arm_blue); + --code-external-link-color: #4665A2; + --fragment-foreground-color: black; + --fragment-background-color: var(--arm_light_gray2); + --fragment-border-color: #C4CFE5; + --fragment-lineno-border-color: #00FF00; + --fragment-lineno-background-color: #E8E8E8; + --fragment-lineno-foreground-color: black; + --fragment-lineno-link-fg-color: #4665A2; + --fragment-lineno-link-bg-color: #D8D8D8; + --fragment-lineno-link-hover-fg-color: #4665A2; + --fragment-lineno-link-hover-bg-color: #C8C8C8; + --tooltip-foreground-color: black; + --tooltip-background-color: white; + --tooltip-border-color: gray; + --tooltip-doc-color: grey; + --tooltip-declaration-color: #006318; + --tooltip-link-color: #4665A2; + --tooltip-shadow: 1px 1px 7px gray; + --tile-background-color: #F9FAFC; + --tile-shadow-color:rgba(0, 0, 0, 0.2); + --tile-hover-border-color: #C8C8C8; + + + /** font-family */ + --font-family-normal: Lato, Calibri, sans-serif; + --font-family-monospace: monospace,fixed; + --font-family-nav: Lato, Calibri, sans-serif; + --font-family-title: Lato, Calibri, sans-serif; + --font-family-toc: Lato, Calibri, sans-serif; + --font-family-search: Lato, Calibri, sans-serif; + --font-family-icon: Arial,Helvetica; + --font-family-tooltip: Lato, Calibri, sans-serif; + + } + +html.dark-mode { + + /* page base colors */ + --page-background-color: var(--arm_black2); + --page-foreground-color: var(--arm_light_gray); + --page-link-color: var(--arm_light_blue); + --page-visited-link-color: var(--arm_light_blue); + + /* index */ + --index-odd-item-bg-color: var(--nav-background-color); + --index-even-item-bg-color: var(--page-background-color); + --index-header-color: #C4CFE5; + --index-separator-color: #334975; + + /* header */ + --header-background-color: var(--page-background-color); + --header-separator-color: var(--page-background-color); + --header-gradient-image: none; + --group-header-separator-color: var(--arm_dark_gray2); + --group-header-color: var(--page-foreground-color); + --inherit-header-color: #A0A0A0; + + --footer-foreground-color: #5B7AB7; + --footer-logo-width: 60px; + --citation-label-color: #90A5CE; + --glow-color: cyan; + + --title-background-color: #090D16; + --title-separator-color: #354C79; + --directory-separator-color: #283A5D; + --separator-color: var(--nav-splitbar-color); + --blockquote-background-color: var(--arm_black); + --blockquote-border-color: var(--separator-color); + + --scrollbar-thumb-color: #283A5D; + --scrollbar-background-color: #070B11; + + --icon-background-color: #334975; + --icon-foreground-color: #C4CFE5; + --icon-doc-image: url('docd.svg'); + + /* brief member declaration list */ + --memdecl-background-color:var(--page-background-color); + --memdecl-separator-color: #2C3F65; + --memdecl-foreground-color:var(--page-foreground-color); + --memdecl-template-color: #7C95C6; + + /* detailed member list */ + --memdef-border-color: var(--arm_dark_gray); + --memdef-title-background-color: var(--arm_black); + --memdef-title-gradient-image: none; + --memdef-table-header-background-color: var(--arm_dark_gray2); + --memdef-proto-background-color: var(--memdef-title-background-color); + --memdef-proto-text-color: var(--page-foreground-color); + --memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); + --memdef-doc-background-color: var(--page-background-color); + --memdef-param-name-color: #D28757; + --memdef-template-color: #7C95C6; + + /* tables */ + --table-cell-border-color: var(--arm_dark_gray1); + --table-header-background-color: var(--arm_blue); + --table-header-foreground-color: var(--page-forground-color); + --table-odd-cell-color: var(--arm_dark_gray2); + --table-even-cell-color: var(--page-background-color); + + + /* labels */ + --label-background-color: #354C7B; + --label-left-top-border-color: #4665A2; + --label-right-bottom-border-color: #283A5D; + --label-foreground-color: #CCCCCC; + + /** navigation bar/tree/menu */ + --nav-background-color: var(--arm_dark_gray2); + --nav-foreground-color: var(--page-foreground-color); + --nav-gradient-image: none; + --nav-gradient-hover-image: none; + --nav-gradient-active-image: none; + --nav-gradient-active-image-parent: none; + --nav-separator-image: none; + --nav-breadcrumb-image: none; + --nav-breadcrumb-border-color: #2A3D61; + --nav-splitbar-image: none; + --nav-splitbar-color: var(--arm_dark_gray); + --nav-font-size-level1: 13px; + --nav-font-size-level2: 10px; + --nav-font-size-level3: 9px; + --nav-text-normal-color: var(--page-foreground-color); + --nav-text-hover-color: var(--arm_orange); + --nav-text-active-color:var(--page-foreground-color); + --nav-text-normal-shadow: 0px 1px 1px black; + --nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + --nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + --nav-menu-button-color: #B6C4DF; + --nav-menu-background-color: #05070C; + --nav-menu-foreground-color: #BBBBBB; + --nav-menu-toggle-color: rgba(255, 255, 255, 0.2); + --nav-arrow-color: var(--arm_blue); + --nav-arrow-selected-color: var(--arm_blue); + --nav_tabs-text-color:var(--arm_dark_gray); + --nav_tabs-text-active-color:white; + --nav_tabs-background-color:var(--arm_black2); + --nav_tabs-background-active-color:var(--arm_dark_gray); + --nav_tabs-border-color:var(--arm_dark_gray); + + /* table of contents */ + --toc-background-color: var(--nav-background-color); + --toc-active-color: #4665A2; + --toc-foreground-color: var(--nav-foreground-color); + --toc-border-color: #202E4A; + --toc-header-color: #A3B4D7; + + /** search field */ + --search-background-color: black; + --search-foreground-color: #C5C5C5; + --search-magnification-image: url('mag_d.svg'); + --search-magnification-select-image: url('mag_seld.svg'); + --search-active-color: #C5C5C5; + --search-filter-background-color: #101826; + --search-filter-foreground-color: #90A5CE; + --search-filter-border-color: #7C95C6; + --search-filter-highlight-text-color: #BCC9E2; + --search-filter-highlight-bg-color: #283A5D; + --search-results-background-color: #101826; + --search-results-foreground-color: #90A5CE; + --search-results-border-color: #7C95C6; + --search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + + /** code fragments */ + --code-keyword-color: #CC99CD; + --code-type-keyword-color: #AB99CD; + --code-flow-keyword-color: #E08000; + --code-comment-color: #717790; + --code-preprocessor-color: #65CABE; + --code-string-literal-color: #7EC699; + --code-char-literal-color: #00E0F0; + --code-vhdl-digit-color: #FF00FF; + --code-vhdl-char-color: #000000; + --code-vhdl-keyword-color: #700070; + --code-vhdl-logic-color: #FF0000; + --code-link-color: #79C0FF; + --code-external-link-color: #79C0FF; + --fragment-foreground-color: #C9D1D9; + --fragment-background-color: var(--arm_black); + --fragment-border-color: #30363D; + --fragment-lineno-border-color: #30363D; + --fragment-lineno-background-color: black; + --fragment-lineno-foreground-color: #6E7681; + --fragment-lineno-link-fg-color: #6E7681; + --fragment-lineno-link-bg-color: #303030; + --fragment-lineno-link-hover-fg-color: #8E96A1; + --fragment-lineno-link-hover-bg-color: #505050; + --tooltip-foreground-color: #C9D1D9; + --tooltip-background-color: #202020; + --tooltip-border-color: #C9D1D9; + --tooltip-doc-color: #D9E1E9; + --tooltip-declaration-color: #20C348; + --tooltip-link-color: #79C0FF; + --tooltip-shadow: none; + --tile-background-color: var(--arm_dark_gray2); + --tile-shadow-color:rgba(192, 192, 192, 0.2); + --tile-hover-border-color: var(--arm_dark_gray1); + + /** font-family */ + --font-family-normal: Lato, Calibri, sans-serif; + --font-family-monospace: monospace,fixed; + --font-family-nav: Lato, Calibri, sans-serif; + --font-family-title: Lato, Calibri, sans-serif; + --font-family-toc: Lato, Calibri, sans-serif; + --font-family-search: Lato, Calibri, sans-serif; + --font-family-icon: Arial,Helvetica; + --font-family-tooltip: Lato, Calibri, sans-serif; +} + +body, table, div, p, dl { + font-family: var(--font-family-normal); + font-size: 16px; + line-height: 22px; +} + + +.tiles { + width: 1100; + font-size: 0; + margin: 0 auto; +} + +.tile { + width: calc(1000px / 5); + height: 130px; + display: inline-grid; + padding-inline: 5px; + padding-bottom: 10px; + padding-top: 5px; + vertical-align:text-top; + text-align:center; + margin: 2px; + margin-right: 10px; + /* background-color: var(--group-header-separator-color); */ + background-color: var(--tile-background-color); + box-shadow: 0px 4px 6px 0px var(--tile-shadow-color); + transition: 0.0s; + border-radius: 10px; + /* rounded corners */ + flex: 50%; +} + +.tile:hover { + border-color: var(--tile-hover-border-color); + box-shadow: 0 8px 12px 0 var(--tile-shadow-color); + border-style: solid; + border-width: 1px; + height: 130px; + margin:1px; + margin-right: 9px; + cursor: pointer; +} + +.tile h2 { + font-size: 17px; + margin-top:5px; + margin-bottom:0px; + text-align:center; +} + +.tile .tileh { + font-size: 17px; + font-weight:bold; + margin-top:5px; + margin-bottom:0px; + text-align:center; + color:var(--page-link-color); +} + +.tiletxt { + font-size: 15px; + color:var(--page-foreground-color); + margin:0px; + padding:0px; +} + +.tilelinks { + font-size: 14px; + align-self: end; +} + + +/* styles */ + +.style1 { + text-align: center; +} +.style2 { + color: var(--arm_blue); + font-weight: normal; +} +.style3 { + text-align: left; +} +.style4 { + color: #008000; +} +.style5 { + color: #0000FF; +} +.style6 { + color: #000000; + font-style:italic; +} +.mand { + color: #0000FF; +} +.opt { + color: #008000; +} +.cond { + color: var(--arm_orange); +} + +.choice +{ + background-color:#F7F9D0; +} +.seq +{ + background-color:#C9DECB; +} +.group1 +{ + background-color:#F8F1F1; +} +.group2 +{ + background-color:#DCEDEA; +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 100%; + width: 16px; + height: 22px; + display: inline-block; +} + +.main-menu { + margin: 0; + padding: 0; + display: table; + line-height: 24px; +} + +ul { + list-style-type: disc; + padding-left: 2em; + margin-block-start: 0em; +} + +li { + margin-top: 0.25em; + line-height: 24px; +} + +ul ul { + list-style-type: circle; +} + +ul ul ul { + list-style-type: square; +} + +ul.hierarchy { + color: green; +} + +em { + font-style:italic; +} + +code { + font-family: monospace; + font-size: 85%; + line-height: 1.6; + background-color: var(--fragment-background-color); + border-radius: 6px; + padding: 0.2em 0.4em; +} + +/* Tables */ +table.cmtab1 { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--arm_dark_gray); + text-align: justify; + width:70%; +} + +th.cmtab1 { + background: var(--arm_light_gray3); + font-weight: bold; + height: 28px; +} + +td.cmtab1 { + padding:1px; + text-align: left; +} + +table.cmtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.cmtable td, table.cmtable th { + border: 1px solid var(--arm_dark_gray); + padding: 3px 7px 2px; +} + +table.cmtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 100%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +table.cmtable th a { + color: var(--table-header-foreground-color); + text-decoration: underline; +} + +table.cmtable th a:visited { + color: var(--table-header-foreground-color); + text-decoration: underline; +} + +table.cmtable th a:hover { + color: var(--arm_yellow); + text-decoration: underline; +} + +td.MonoTxt { + font-family:"Arial monospaced for SAP"; +} + +td.XML-Token +{ + azimuth: 180; + font-style:italic; + color: var(--code-flow-keyword-color); + z-index:20; +} + +span.XML-Token +{ + azimuth: 180; + font-style:italic; + color: var(--code-flow-keyword-color); + z-index:20; +} + +span.h2 +{ + font-size: 120%; + font-weight: bold; +} + +div.new +{ + background-color:#ccffcc; /* light green */ +} + +div.mod +{ + background-color:#ffe6cc; /* light amber */ +} + +div.del +{ + background-color:#ffcccc; /* light red */ +} + +div.contents { + margin-top: 10px; +/* margin-left: 12px; + margin-right: 8px; +*/ +} + +@media screen and (min-width: 1510px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: block; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock, div.contents .memberdecls, div.contents .memitem, div.contents .directory{ + min-width: 200px; + max-width: var(--max_textblock_width); + flex-grow: 1; + } + + div.contents p, div.contents ul, div.contents .image, div.contents .markdownTable, div.contents .fragment, div.contents hr, div.contents h1 { + max-width: var(--max_textblock_width); + } + + div.contents hr { + margin-left: 0; + } + + div.content .toc { + overflow-x: overlay; + overflow-wrap: normal; + } + + div.toc { + max-height: var(--toc-max-height); + max-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--nav-splitbar-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + float: right; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 0 0 var(--spacing-large); + margin: 0 0 0 var(--spacing-large); + } +} + +@media screen and (max-width:1510px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: block; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock, div.contents .memberdecls, div.contents .memitem, div.contents .directory{ + min-width: 200px; + max-width: var(--max_textblock_width); + flex-grow: 1; + } + + div.contents p, div.contents ul, div.contents .image, div.contents .markdownTable, div.contents .fragment{ + max-width: var(--max_textblock_width); + } + + div.toc { + max-height: 0px; + line-height: 0px; + overflow-y: hidden; + min-width: var(--toc-width); + border: 0; + border-radius: 0; + background-color: transparent; + box-shadow: none; + padding: 0;; + margin: 0; + } +} + + +.memberdecls heading { + font-weight: bold; +} + +div.contents, div.header .headertitle, div.header .summary { + max-width: var(--max_content_width); +} + +div.contents, div.header .headertitle { + margin-left: 3%; + margin-right: auto; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; + border-top-color: var(--group-header-separator-color); + border-top-width: 2px; + border-top-style: solid; + padding: 1em 0 0; + margin-top: 0.5em; + margin-bottom: 0.75em; +} +/* +h1:before { + margin-bottom: 1em; + content: ""; + background-color: var(--arm_light_gray3); + height: 2px; + display: block; + width: 100%; +} +*/ +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 0px; +} + +h2, h2.groupheader { + border: 0px; + font-size: 120%; + font-weight: bold; + margin-top: 1.25em; + margin-bottom: 0.25em; +} + +h3 { + font-size: 100%; + margin-top: 1.25em; + margin-bottom: 0.25em; +} + +h4 { + font-size: 100%; + color: #505050; +} + + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p { + margin-block-start: 1em; + margin-block-end: 0.5em; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9AAED5; + color: #ffffff; + border: 1px double #849CCC; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +pre.fragment { + font-family: monospace; + background-color: var(--fragment-background-color); + border-radius: 6px; + padding: 0.2em 0.4em; + font-size: 85%; + line-height: 1.45; + margin: 0.5em 0px; +} + +div.fragment { + font-family: monospace; + background-color: var(--fragment-background-color); + border-radius: 6px; + padding: 0.2em 0.4em; + font-size: 85%; + line-height: 1.45; +} + +div.line { + font-family: monospace; + font-size: 100%; + line-height: 1.45; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} + +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + margin: 0; +} + +body a:hover{ + text-decoration: underline; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C3CFE6; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C3CFE6; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EDF1F7; +} + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +.memSeparator { + line-height: 22px; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid var(--arm_light_gray);/*#C3CFE6;*/ +} + +a:-webkit-any-link { + color: var(--page-link-color); + cursor: pointer; + text-decoration: none; +} + +.a:hover { + text-decoration: underline; +} + + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + display: inline-block; + padding: 8px; + padding-bottom: 12px; + padding-right: 12px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 600; + float: none; +} + +.permalink +{ + color: var(--arm_blue); + font-size: 100%; + display: inline-block; + vertical-align: middle; + padding-bottom:6px; +} + +.memtemplate { + font-size: 80%; + color: #4464A5; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A2B4D8; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + /*box-shadow: 0 0 15px cyan; */ +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + background-color: var(--memdef-proto-background-color); + border-top-right-radius: 4px; + border-top-left-radius: 0px; + /* firefox specific markup */ + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 0px; + /* webkit specific markup */ + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 0px; +} + +.memdoc, dl.reflist dd { + border: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #708CC4; + border-top:1px solid #5072B7; + border-left:1px solid #5072B7; + border-right:1px solid #C3CFE6; + border-bottom:1px solid #C3CFE6; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--arm_dark_gray); + border-bottom: 1px solid var(--arm_dark_gray); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + padding: 0px 10px 10px 0px; + vertical-align: middle; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top:10px; +} + +.directory td.entry a { + outline:none; + padding-left: 6px; + padding-top:10px; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top:10px; + border-left: 0px solid rgba(0,0,0,0.05); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3A568E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #293C63; +} + +blockquote.doxtable { + margin-left:-7px; + margin-bottom: 6px; + padding-left: 8px; + border-left:4px solid; + border-color: #D0C000; + background-color: var(--page-background-color); +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 7px 10px 5px; + text-align:left; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); +} + +table.doxtable tr:nth-child(odd) { + background-color: var(--table-odd-cell-color); +} + +table.doxtable tr:nth-child(even) { + background-color: var(--table-even-cell-color); +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid var(--arm_dark_gray); + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, td.fieldoc{ + white-space: nowrap; + border-right: 1px solid var(--arm_dark_gray); + border-bottom: 1px solid var(--arm_dark_gray); + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--arm_dark_gray); + width: 100%; +} + +.fieldtable td.fielddoc p { + margin-top: 0px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-color: var(--memdef-table-header-background-color); + font-size: 100%; + font-weight: bold; +} + + +/* @group Markdown */ + + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 7px 10px 5px; + text-align:left; +} + +table.markdownTable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); +} + +table.markdownTable tr:nth-child(odd) { + background-color: var(--table-odd-cell-color); +} + +table.markdownTable tr:nth-child(even) { + background-color: var(--table-even-cell-color); +} + +/* for hyperlinks in table head rows */ +table.markdownTable th a{ + color: var(--table-header-foreground-color); + text-decoration: underline; +} + +table.markdownTable th a:visited{ + color: var(--table-header-foreground-color); +} + +table.markdownTable th a:hover{ + color: var(--arm_yellow); +} + +table.markdownTable th.markdownTableHeadLeft, table.markdownTable td.markdownTableBodyLeft { + text-align: left +} + +table.markdownTable th.markdownTableHeadRight, table.markdownTable td.markdownTableBodyRight { + text-align: right +} + +table.markdownTable th.markdownTableHeadCenter, table.markdownTable td.markdownTableBodyCenter { + text-align: center +} + + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + font-size: 100%; +} + +/* @end */ + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-color:var(--arm_black); + height:30px; + line-height:30px; + color:white; + border:solid 1px #C1CDE5; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + color:#344D7E; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6583BF; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + color:var(--arm_white); + font-size: 8pt; +} + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + margin: 0px; +} + +div.headertitle +{ + padding: 5px 5px 5px 0px; + margin-top: 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #C08050; +} + +dl.safety +{ + margin-left:-7px; + padding-left: 8px; + border-left:4px solid; + border-color: #008000; +} + + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: middle; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 270% 'Lato Lite', Lato, Caibri, sans-serif; + font-weight: 600; + margin: 0px; + color: white; + padding: 2px 0px; +} + +#projectbrief +{ + font: 140% "Lato Lite", Lato, Caibri, sans-serif; + margin: 0px; + color: white; + padding: 4px 0px 4px; +} + +#projectnumber +{ + font: 50% "Lato Lite", Lato, Caibri, sans-serif; + margin: 0px; + color: white; + padding: 0px; +} + +#top +{ + border-bottom: 1px solid var(--arm_dark_gray); +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--arm_dark_gray); + background-color: var(--arm_black); +} + +.image +{ + text-align: left; + display: grid; + justify-content: center; + align-items: center; + justify-items: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; + font-size: 80%; +} + +div.zoom +{ + border: 1px solid #8EA4D0; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#314877; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + + +div.toc li { + background: none; + font-family: var(--font-family-toc); + font-size: var(--toc-font-size); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--toc-header-font-size); + font-weight: normal; + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a.active { + font-weight: bold; + color: var(--toc-active-color) !important; +} + +div.toc li a:hover { + color: var(--nav-text-hover-color) !important; +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--nav-foreground-color) !important; + text-decoration: none; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} diff --git a/DoxyGen/templates/tabs.css b/Documentation/Doxygen/style_template/extra_tabs.css similarity index 68% rename from DoxyGen/templates/tabs.css rename to Documentation/Doxygen/style_template/extra_tabs.css index 2229e0a..2008446 100644 --- a/DoxyGen/templates/tabs.css +++ b/Documentation/Doxygen/style_template/extra_tabs.css @@ -1,17 +1,3 @@ -:root { - --arm_light_blue: #00C1DE; - --arm_blue: #11809F; - --arm_blue1: #0091BD; - --arm_dark_blue: #002B49; - --arm_light_gray: #E5ECEB; - --arm_light_gray1: #EFF5F4; - --arm_light_gray2: #EBEBEB; - --arm_light_gray3: #F7F7F7; - --arm_dark_gray: #7D868C; - --arm_black: #333E48; - --arm_orange: #FF6B00; - --arm_yellow: #FFC700; -} /* in Doxygen 1.9.2 'tabs' is assigned to second navigation row (navrow1) with 'Main Page', 'Namespaces', etc */ @@ -31,8 +17,15 @@ font-size: 16px; } +.tabs1 a { + color:while; +} + .tabs { - background-color: var(--arm_light_gray); + background-color: var(--nav_tabs-background-color); + border-top-style:solid; + border-top-width:1px; + border-top-color:var(--nav_tabs-border-color); } .tablist, .main-menu { @@ -45,23 +38,14 @@ .tablist li { float: left; display: table-cell; - background-color: var(--arm_light_gray); + background-color: var(--nav_tabs-background-color); border-right-style:solid; border-right-width:1px; - border-right-color:var(--arm_dark_gray); + border-right-color:var(--nav_tabs-border-color); list-style: none; margin:0px; } -.tablist .MSearchBoxInactive { - opacity:0.75; -} - -.tablist .MSearchBoxInactive:hover { - opacity:1.0; -} - - .tabs1 .tablist li { background-color: var(--arm_black); font-weight: 1000; @@ -90,14 +74,23 @@ background-color: var(--arm_blue); } -.tablist a:hover { - color: var(--arm_orange); +.tabs .tablist a { + background-color: var(--nav_tabs-background-color); + color: var(--nav_tabs-text-color); +} +.tabs .tablist li.current a { + background-color: var(--nav_tabs-background-active-color); + color: var(--nav_tabs-text-active-color); } -.tabs1 a:hover { - color: var(--arm_yellow); +.tabs a:hover { + color: var(--arm_orange); } -.tablist li.current :hover { +.tabs li.current a:hover { color: white; } + +.tabs1 a:hover { + color: var(--arm_yellow); +} diff --git a/DoxyGen/templates/footer.html b/Documentation/Doxygen/style_template/footer.html similarity index 96% rename from DoxyGen/templates/footer.html rename to Documentation/Doxygen/style_template/footer.html index b149f3c..db027d5 100644 --- a/DoxyGen/templates/footer.html +++ b/Documentation/Doxygen/style_template/footer.html @@ -8,7 +8,7 @@ - + diff --git a/DoxyGen/templates/footer.js.in b/Documentation/Doxygen/style_template/footer.js.in similarity index 100% rename from DoxyGen/templates/footer.js.in rename to Documentation/Doxygen/style_template/footer.js.in diff --git a/DoxyGen/templates/header.html b/Documentation/Doxygen/style_template/header.html similarity index 73% rename from DoxyGen/templates/header.html rename to Documentation/Doxygen/style_template/header.html index 82c778c..967e565 100644 --- a/DoxyGen/templates/header.html +++ b/Documentation/Doxygen/style_template/header.html @@ -1,27 +1,28 @@ - + - + $projectname: $title $title - - + + + $treeview $search $mathjax +$darkmode $extrastylesheet - @@ -37,35 +38,35 @@ - Logo + Logo
$projectname - 
$projectbrief
- + $searchbox - $searchbox + - $searchbox + $searchbox @@ -73,3 +74,10 @@ +
+
    + +
+
diff --git a/DoxyGen/templates/Layout_forUser.xml b/Documentation/Doxygen/style_template/layout.xml similarity index 96% rename from DoxyGen/templates/Layout_forUser.xml rename to Documentation/Doxygen/style_template/layout.xml index 72022e9..c19a4cf 100644 --- a/DoxyGen/templates/Layout_forUser.xml +++ b/Documentation/Doxygen/style_template/layout.xml @@ -1,10 +1,10 @@ - + - + @@ -82,7 +82,7 @@ - + @@ -188,10 +188,11 @@ + - - + + @@ -212,7 +213,8 @@ - + + diff --git a/DoxyGen/templates/navtree.js b/Documentation/Doxygen/style_template/navtree.js similarity index 98% rename from DoxyGen/templates/navtree.js rename to Documentation/Doxygen/style_template/navtree.js index c7a300d..f6b1154 100644 --- a/DoxyGen/templates/navtree.js +++ b/Documentation/Doxygen/style_template/navtree.js @@ -443,6 +443,10 @@ function navTo(o,root,hash,relpath) } else { getScript(relpath+'navtreeindex'+i,function(){ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + /* ensures first section is expanded when opening index */ + if ((root=="index.html") && (!navTreeSubIndices[i]["index.html"].length)) { + navTreeSubIndices[i]["index.html"]=[0]; + } if (navTreeSubIndices[i]) { gotoNode(o,i,root,hash,relpath); } diff --git a/Documentation/Doxygen/style_template/resize.js b/Documentation/Doxygen/style_template/resize.js new file mode 100644 index 0000000..34a0c1e --- /dev/null +++ b/Documentation/Doxygen/style_template/resize.js @@ -0,0 +1,155 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 0; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/Documentation/Doxygen/style_template/search.css b/Documentation/Doxygen/style_template/search.css new file mode 100644 index 0000000..9ca12c5 --- /dev/null +++ b/Documentation/Doxygen/style_template/search.css @@ -0,0 +1,297 @@ +/*---------------- Search Box */ + +.titlearea table { + width: 100%; +} + +dark-mode-toggle { + position: absolute; + right: 5px; + padding-top: 3px; +} + +#MSearchBox { + position: absolute; + right: 34px; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Documentation/Doxygen/style_template/search.js b/Documentation/Doxygen/style_template/search.js new file mode 100644 index 0000000..1ee75a3 --- /dev/null +++ b/Documentation/Doxygen/style_template/search.js @@ -0,0 +1,823 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e
' + this.tabTxt + ''; + this.listItem = '
  • ' + this.tabTxt + '
  • '; +}; + +// array of objects +var arr = []; + +// fill array (not needed in case of a single tab) +// arr.push( new tabElement( "id", "folderName", "tabTxt")); + +// write tabs +// called from the header file. +function writeComponentTabs() { + for ( var i=0; i < arr.length; i++ ) { + str = "/" + arr[i].folderName + "/" + if (strgURL.search(str) > 0) { // if this is the current folder + document.write(arr[i].currentListItem); // then print and highlight the tab + } else { + document.write(arr[i].listItem); // else, print the tab + } + } +}; diff --git a/DoxyGen/templates/version.css b/Documentation/Doxygen/style_template/version.css similarity index 93% rename from DoxyGen/templates/version.css rename to Documentation/Doxygen/style_template/version.css index 8013bed..31cc37a 100644 --- a/DoxyGen/templates/version.css +++ b/Documentation/Doxygen/style_template/version.css @@ -24,11 +24,6 @@ cursor: pointer; } -/* Dropdown button on hover & focus */ -#.dropbtn:hover, .dropbtn:focus { -# background-size: 0.7em; -#} - /* The container
    - needed to position the dropdown content */ .dropdown { position: relative; diff --git a/Documentation/version.js b/Documentation/version.js new file mode 100644 index 0000000..884724c --- /dev/null +++ b/Documentation/version.js @@ -0,0 +1 @@ +function writeVersionDropdown() {} diff --git a/DoxyGen/check_links.sh b/DoxyGen/check_links.sh deleted file mode 100755 index 2b4fc90..0000000 --- a/DoxyGen/check_links.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -set -o pipefail - -DIRNAME=$(dirname $(realpath $0)) -REQUIRED_GEN_PACK_LIB="0.4.0" - -############ gen-pack library ########### - -function install_lib() { - local URL="https://github.com/Open-CMSIS-Pack/gen-pack/archive/refs/tags/v$1.tar.gz" - echo "Downloading gen_pack lib to '$2'" - mkdir -p "$2" - curl -L "${URL}" -s | tar -xzf - --strip-components 1 -C "$2" || exit 1 -} - -function load_lib() { - local GLOBAL_LIB="/usr/local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - local USER_LIB="${HOME}/.local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - if [[ ! -d "${GLOBAL_LIB}" && ! -d "${USER_LIB}" ]]; then - echo "Required gen-pack lib not found!" >&2 - install_lib "${REQUIRED_GEN_PACK_LIB}" "${USER_LIB}" - fi - - if [[ -d "${GLOBAL_LIB}" ]]; then - . "${GLOBAL_LIB}/gen-pack" - elif [[ -d "${USER_LIB}" ]]; then - . "${USER_LIB}/gen-pack" - else - echo "Required gen-pack lib is not installed!" >&2 - exit 1 - fi -} - -load_lib -find_linkchecker - -######################################### - -check_links "${DIRNAME}/../Documentation/index.html" "${DIRNAME}" diff --git a/DoxyGen/gen_doc.sh b/DoxyGen/gen_doc.sh deleted file mode 100755 index 7e85f21..0000000 --- a/DoxyGen/gen_doc.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/bash -# Version: 1.1 -# Date: 2022-11-07 -# This bash script generates CMSIS-Driver Documentation: -# -# Pre-requisites: -# - bash shell (for Windows: install git for Windows) -# - doxygen 1.9.6 -# - git - -set -o pipefail - -DIRNAME=$(dirname $(realpath $0)) -DOXYGEN=$(which doxygen) -REQ_DXY_VERSION="1.9.6" -REQUIRED_GEN_PACK_LIB="0.6.1" - -############ gen-pack library ########### - -function install_lib() { - local URL="https://github.com/Open-CMSIS-Pack/gen-pack/archive/refs/tags/v$1.tar.gz" - echo "Downloading gen_pack lib to '$2'" - mkdir -p "$2" - curl -L "${URL}" -s | tar -xzf - --strip-components 1 -C "$2" || exit 1 -} - -function load_lib() { - if [[ -d ${GEN_PACK_LIB} ]]; then - . "${GEN_PACK_LIB}/gen-pack" - return 0 - fi - local GLOBAL_LIB="/usr/local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - local USER_LIB="${HOME}/.local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - if [[ ! -d "${GLOBAL_LIB}" && ! -d "${USER_LIB}" ]]; then - echo "Required gen-pack lib not found!" >&2 - install_lib "${REQUIRED_GEN_PACK_LIB}" "${USER_LIB}" - fi - - if [[ -d "${GLOBAL_LIB}" ]]; then - . "${GLOBAL_LIB}/gen-pack" - elif [[ -d "${USER_LIB}" ]]; then - . "${USER_LIB}/gen-pack" - else - echo "Required gen-pack lib is not installed!" >&2 - exit 1 - fi -} - -load_lib -find_git - -######################################### - -if [[ ! -f "${DOXYGEN}" ]]; then - echo "Doxygen not found!" >&2 - echo "Did you miss to add it to PATH?" - exit 1 -else - version=$("${DOXYGEN}" --version | sed -E 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/') - echo "DOXYGEN is ${DOXYGEN} at version ${version}" - if [[ "${version}" != "${REQ_DXY_VERSION}" ]]; then - echo " >> Version is different from ${REQ_DXY_VERSION} !" >&2 - fi -fi - -if [ -z "$VERSION" ]; then - VERSION_FULL=$(git_describe) - VERSION=${VERSION_FULL%+*} -else - VERSION_FULL=${VERSION} -fi - -echo "Generating documentation ..." - -pushd $DIRNAME > /dev/null - -rm -rf ${DIRNAME}/../Documentation/html -sed -e "s/{projectNumber}/${VERSION}/" "${DIRNAME}/CMSIS_DV.dxy.in" \ - > "${DIRNAME}/CMSIS_DV.dxy" - -PACK_CHANGELOG_MODE="tag" -DEV=$(pdsc_release_desc "${DIRNAME}/../ARM.CMSIS-Driver_Validation.pdsc") -git_changelog -f html -d "${DEV}" > src/history.txt - -echo "${DOXYGEN} CMSIS_DV.dxy" -"${DOXYGEN}" CMSIS_DV.dxy -popd > /dev/null - -if [[ $2 != 0 ]]; then - cp -f "${DIRNAME}/templates/search.css" "${DIRNAME}/../Documentation/html/search/" -fi - -projectName=$(grep -E "PROJECT_NAME\s+=" "${DIRNAME}/CMSIS_DV.dxy" | sed -r -e 's/[^"]*"([^"]+)"/\1/') -datetime=$(date -u +'%a %b %e %Y %H:%M:%S') -year=$(date -u +'%Y') -if [[ "${year}" != "2022" ]]; then - year="2022-${year}" -fi -sed -e "s/{datetime}/${datetime}/" "${DIRNAME}/templates/footer.js.in" \ - | sed -e "s/{year}/${year}/" \ - | sed -e "s/{projectName}/${projectName}/" \ - | sed -e "s/{projectNumber}/${VERSION}/" \ - | sed -e "s/{projectNumberFull}/${VERSION_FULL}/" \ - > "${DIRNAME}/../Documentation/html/footer.js" - -exit 0 \ No newline at end of file diff --git a/DoxyGen/templates/extra_stylesheet.css b/DoxyGen/templates/extra_stylesheet.css deleted file mode 100644 index 52d3123..0000000 --- a/DoxyGen/templates/extra_stylesheet.css +++ /dev/null @@ -1,1414 +0,0 @@ -/* The standard CSS for doxygen */ -:root { - --arm_light_blue: #00C1DE; - --arm_blue: #11809F; - --arm_blue1: #0091BD; - --arm_dark_blue: #002B49; - --arm_light_gray: #E5ECEB; - --arm_light_gray1: #EFF5F4; - --arm_light_gray2: #EBEBEB; - --arm_light_gray3: #F7F7F7; - --arm_dark_gray: #7D868C; - --arm_black: #333E48; - --arm_orange: #FF6B00; -} - -body, table, div, p, dl { - font-family: Lato, Calibri, sans-serif; - font-size: 16px; - line-height: 22px; -} - -/* styles */ - -.style1 { - text-align: center; -} -.style2 { - color: var(--arm_blue); - font-weight: normal; -} -.style3 { - text-align: left; -} -.style4 { - color: #008000; -} -.style5 { - color: #0000FF; -} -.style6 { - color: #000000; - font-style:italic; -} -.mand { - color: #0000FF; -} -.opt { - color: #008000; -} -.cond { - color: var(--arm_orange); -} - -.choice -{ - background-color:#F7F9D0; -} -.seq -{ - background-color:#C9DECB; -} -.group1 -{ - background-color:#F8F1F1; -} -.group2 -{ - background-color:#DCEDEA; -} - -.arrow { - color: var(--arm_blue); - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 100%; - width: 16px; - height: 22px; - display: inline-block; -} - -.main-menu { - margin: 0; - padding: 0; - display: table; - line-height: 24px; -} - -ul { - list-style-type: disc; - padding-left: 2em; - margin-block-start: 0em; -} - -li { - margin-top: 0.25em; - line-height: 24px; -} - -ul ul { - list-style-type: circle; -} - -ul ul ul { - list-style-type: square; -} - -ul.hierarchy { - color: green; -} - -em { - font-style:italic; -} - -code { - font-family: monospace; - font-size: 85%; - line-height: 1.6; - background-color: var(--arm_light_gray2); - border-radius: 6px; - padding: 0.2em 0.4em; -} - -/* Tables */ -table.cmtab1 { - padding: 4px; - border-collapse: collapse; - border: 1px solid var(--arm_dark_gray); - text-align: justify; - width:70%; -} - -th.cmtab1 { - background: var(--arm_light_gray3); - font-weight: bold; - height: 28px; -} - -td.cmtab1 { - padding:1px; - text-align: left; -} - -table.cmtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.cmtable td, table.cmtable th { - border: 1px solid var(--arm_light_gray); - padding: 7px 10px 5px; - text-align:left; -} - -table.cmtable th { - background-color: var(--arm_blue); - color: white; -} - -table.cmtable tr:nth-child(even) { - background-color: var(--arm_light_gray3); -} - -td.MonoTxt { - font-family:"Arial monospaced for SAP"; -} - -td.XML-Token -{ - azimuth: 180; - font-style:italic; - color:Maroon; - z-index:20; -} - -span.XML-Token -{ - azimuth: 180; - font-style:italic; - color:Maroon; - z-index:20; -} - -span.h2 -{ - font-size: 120%; - font-weight: bold; -} - -div.new -{ - background-color:#ccffcc; /* light green */ -} - -div.mod -{ - background-color:#ffe6cc; /* light amber */ -} - -div.del -{ - background-color:#ffcccc; /* light red */ -} - -/* @group Heading Levels */ - -h1 { - font-size: 150%; - border-top-color: var(--arm_light_gray3); - border-top-width: 2px; - border-top-style: solid; - padding: 1em 0 0; - margin-top: 0.5em; - margin-bottom: 0.75em; -} -/* -h1:before { - margin-bottom: 1em; - content: ""; - background-color: var(--arm_light_gray3); - height: 2px; - display: block; - width: 100%; -} -*/ -.title { - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2 { - font-size: 120%; - margin-top: 1.25em; - margin-bottom: 0.25em; -} - -h3 { - font-size: 100%; - margin-top: 1.25em; - margin-bottom: 0.25em; -} - -h4 { - font-size: 100%; - color: #505050; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p { - margin-block-start: 1em; - margin-block-end: 0.5em; -} - -p.startli, p.startdd, p.starttd { - margin-top: 2px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A2B4D8; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: var(--arm_blue); - text-decoration: none; -} - -.contents a:visited { - color: var(--arm_blue); -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9AAED5; - color: #ffffff; - border: 1px double #849CCC; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - - -pre.fragment { - font-family: monospace; - background-color: var(--arm_light_gray2); - border-radius: 6px; - padding: 0.2em 0.4em; - font-size: 85%; - line-height: 1.45; - margin: 0.5em 0px; -} - -div.fragment { - font-family: monospace; - background-color: var(--arm_light_gray2); - border-radius: 6px; - padding: 0.2em 0.4em; - font-size: 85%; - line-height: 1.45; -} - -div.line { - font-family: monospace; - font-size: 100%; - line-height: 1.45; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; -} - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C3CFE6; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C3CFE6; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EDF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9AAED5; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A2B4D8; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4769AD; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow { - background-color: cyan; - /*box-shadow: 0 0 15px cyan; */ -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid var(--arm_light_gray);/*#C3CFE6;*/ -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4464A5; - white-space: nowrap; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - display: inline-block; - padding: 8px; - padding-bottom: 12px; - padding-right: 12px; - border-top: 1px solid var(--arm_dark_gray); - border-left: 1px solid var(--arm_dark_gray); - border-right: 1px solid var(--arm_dark_gray); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-color: var(--arm_light_gray2); - line-height: 1.25; - font-weight: 600; - float:top; -} - -.permalink -{ - font-size: 100%; - display: inline-block; - vertical-align: middle; - padding-bottom:6px; -} - -.memtemplate { - font-size: 80%; - color: #4464A5; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A2B4D8; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; -} - -.memitem.glow { - /*box-shadow: 0 0 15px cyan; */ -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid var(--arm_dark_gray); - border-left: 1px solid var(--arm_dark_gray); - border-right: 1px solid var(--arm_dark_gray); - padding: 6px 0px 6px 0px; - color: var(--arm_black); - font-weight: bold; - background-color: var(--arm_light_gray2); - border-top-right-radius: 4px; - border-top-left-radius: 0px; - /* firefox specific markup */ - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 0px; - /* webkit specific markup */ - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 0px; -} - -.memdoc, dl.reflist dd { - border: 1px solid var(--arm_dark_gray); - padding: 6px 10px 2px 10px; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #708CC4; - border-top:1px solid #5072B7; - border-left:1px solid #5072B7; - border-right:1px solid #C3CFE6; - border-bottom:1px solid #C3CFE6; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; -} - - - -/* @end */ - -/* these are for tree view when not used as main index */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid var(--arm_dark_gray); - border-bottom: 1px solid var(--arm_dark_gray); - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px 0px 15px 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; -} - -.directory td.entry a { - outline:none; - padding-left: 6px; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3A568E; -} - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #293C63; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid var(--arm_light_gray); - padding: 7px 10px 5px; - text-align:left; -} - -table.doxtable th { - background-color: var(--arm_blue); - color: white; -} - -table.doxtable tr:nth-child(even) { - background-color: #F9FAFC; /*var(--arm_light_gray3); */ -} - -table.fieldtable { - width: 100%; - margin-bottom: 10px; - border: 1px solid var(--arm_dark_gray); - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname, td.fieldoc{ - white-space: nowrap; - border-right: 1px solid var(--arm_dark_gray); - border-bottom: 1px solid var(--arm_dark_gray); - vertical-align: top; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid var(--arm_dark_gray); - width: 100%; -} - -.fieldtable td.fielddoc p { - margin-top: 0px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-color: var(--arm_light_gray1); - font-size: 100%; - color: var(--arm_black); - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid var(--arm_dark_gray); -} - - -/* @group Markdown */ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid var(--arm_light_gray); - padding: 7px 10px 5px; - text-align:left; -} - -table.markdownTable th { - background-color: var(--arm_blue); - color: white; -} - -table.markdownTable tr:nth-child(even) { - background-color: var(--arm_light_gray3); -} - -/* for hyperlinks in table head rows */ -table.markdownTable th a{ - color: white; - text-decoration: underline; -} - -table.markdownTable th a:visited{ - color: white; -} - -table.markdownTable th a:hover{ - color: var(--arm_yellow); -} - -/* @end */ - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-color:var(--arm_black); - height:30px; - line-height:30px; - color:white; - border:solid 1px #C1CDE5; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - color:#344D7E; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; -} - -.navpath li.navelem a:hover -{ - color:#6583BF; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - color:var(--arm_white); - font-size: 8pt; -} - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - margin-left: 5px; - font-size: 8pt; - padding-left: 5px; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-color: white; - margin: 0px; -} - -div.headertitle -{ - padding: 5px 5px 5px 7px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.safety -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #008000; -} - - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: middle; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectname -{ - font: 270% 'Lato Lite', Lato, Caibri, sans-serif; - font-weight: 600; - margin: 0px; - color: white; - padding: 2px 0px; -} - -#projectbrief -{ - font: 140% "Lato Lite", Lato, Caibri, sans-serif; - margin: 0px; - color: white; - padding: 4px 0px 4px; -} - -#projectnumber -{ - font: 50% "Lato Lite", Lato, Caibri, sans-serif; - margin: 0px; - color: white; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid var(--arm_dark_gray); - background-color: var(--arm_black); -} - -.image -{ - text-align: left; - display: grid; - justify-content: start; - align-items: baseline; - justify-items: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; - font-size: 80%; -} - -div.zoom -{ - border: 1px solid #8EA4D0; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#314877; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D7DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4464A5; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - diff --git a/DoxyGen/templates/search.css b/DoxyGen/templates/search.css deleted file mode 100644 index da3b509..0000000 --- a/DoxyGen/templates/search.css +++ /dev/null @@ -1,240 +0,0 @@ -/*---------------- Search Box */ - -#FSearchBox { - float: left; -} - -#searchli { - float: right; - display: block; - width: 170px; - height: 24px; -} - -#MSearchBox { - white-space : nowrap; - position: absolute; - float: none; - display: inline; - margin-top: 3px; - right: 0px; - width: 170px; - z-index: 102; -} - -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; -} - -#MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; -} - -#MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; - border:none; - width:116px; - margin-left:20px; - padding-left:4px; - color: #909090; - outline: none; - font: 9pt Arial, Verdana, sans-serif; -} - -#FSearchBox #MSearchField { - margin-left:15px; -} - -#MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:0px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; -} - -#MSearchClose { - display: none; - position: absolute; - top: 4px; - background : none; - border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; - outline: none; -} - -.left #MSearchClose { - left: 6px; -} - -.right #MSearchClose { - right: 2px; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 1; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; -} - -.SRResult { - display: none; -} - -DIV.searchresults { - margin-left: 10px; - margin-right: 10px; -} diff --git a/gen_pack.sh b/gen_pack.sh index 50c3df1..5ed65c2 100755 --- a/gen_pack.sh +++ b/gen_pack.sh @@ -1,24 +1,33 @@ -#!/bin/bash -# Version: 2.3 -# Date: 2022-09-28 -# This bash script generates a CMSIS-Driver Software Pack +#!/usr/bin/env bash +# Version: 3.1 +# Date: 2024-04-17 +# This bash script generates a CMSIS Software Pack: CMSIS-Driver_Validation # set -o pipefail # Set version of gen pack library -REQUIRED_GEN_PACK_LIB="0.6.1" +# For available versions see https://github.com/Open-CMSIS-Pack/gen-pack/tags. +# Use the tag name without the prefix "v", e.g., 0.7.0 +REQUIRED_GEN_PACK_LIB="0.11.3" # Set default command line arguments DEFAULT_ARGS=(-c "") # Pack warehouse directory - destination -PACK_OUTPUT=./output +# Default: ./output +# +# PACK_OUTPUT=./output # Temporary pack build directory -PACK_BUILD=./build +# Default: ./build +# +# PACK_BUILD=./build # Specify directory names to be added to pack base directory +# An empty list defaults to all folders next to this script. +# Default: empty (all folders) +# PACK_DIRS=" Boards Config @@ -29,21 +38,35 @@ PACK_DIRS=" " # Specify file names to be added to pack base directory +# Default: empty +# PACK_BASE_FILES=" LICENSE.txt README.md " # Specify file names to be deleted from pack build directory -PACK_DELETE_FILES="" +# Default: empty +# +PACK_DELETE_FILES=" + Documentation/Doxygen +" # Specify patches to be applied -PACK_PATCH_FILES="" +# Default: empty +# +# PACK_PATCH_FILES=" +# +# " # Specify addition argument to packchk -PACKCHK_ARGS=() +# Default: empty +# +# PACKCHK_ARGS=() # Specify additional dependencies for packchk +# Default: empty +# PACKCHK_DEPS=" ARM.CMSIS.pdsc ARM.CMSIS-RTX.pdsc @@ -62,49 +85,63 @@ PACKCHK_DEPS=" # - full Tag annotations, release descriptions, or commit messages (in order) # - release Tag annotations, or release descriptions (in order) # - tag Tag annotations only +# PACK_CHANGELOG_MODE="tag" +# Specify file patterns to be excluded from the checksum file +# Default: +# Values: +# - empty All files packaged are included in the checksum file +# - glob pattern One glob pattern per line. Files matching a given pattern are excluded +# from the checksum file +# - "*" The * (match all pattern) can be used to skip checksum file creating completely. +# +# PACK_CHECKSUM_EXCLUDE=" +# +# " -# custom preprocessing steps +# +# custom pre-processing steps +# +# usage: preprocess +# The build folder +# function preprocess() { - ./DoxyGen/gen_doc.sh + # add custom steps here to be executed + # before populating the pack build folder + pushd ./Documentation/Doxygen/ > /dev/null + echo "Changing working directory to $(pwd)" + + echo "Executing ./gen_doc.sh" + ./gen_doc.sh + + popd > /dev/null + echo "Changing working directory to $(pwd)" + return 0 } +# # custom post-processing steps -# function postprocess() { -# } +# +# usage: postprocess +# The build folder +# +function postprocess() { + # add custom steps here to be executed + # after populating the pack build folder + # but before archiving the pack into output folder + return 0 +} ############ DO NOT EDIT BELOW ########### -function install_lib() { - local URL="https://github.com/Open-CMSIS-Pack/gen-pack/archive/refs/tags/v$1.tar.gz" - echo "Downloading gen-pack lib to '$2'" - mkdir -p "$2" - curl -L "${URL}" -s | tar -xzf - --strip-components 1 -C "$2" || exit 1 -} - -function load_lib() { - if [[ -d ${GEN_PACK_LIB} ]]; then - . "${GEN_PACK_LIB}/gen-pack" - return 0 - fi - local GLOBAL_LIB="/usr/local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - local USER_LIB="${HOME}/.local/share/gen-pack/${REQUIRED_GEN_PACK_LIB}" - if [[ ! -d "${GLOBAL_LIB}" && ! -d "${USER_LIB}" ]]; then - echo "Required gen_pack lib not found!" >&2 - install_lib "${REQUIRED_GEN_PACK_LIB}" "${USER_LIB}" - fi - - if [[ -d "${GLOBAL_LIB}" ]]; then - . "${GLOBAL_LIB}/gen-pack" - elif [[ -d "${USER_LIB}" ]]; then - . "${USER_LIB}/gen-pack" - else - echo "Required gen-pack lib is not installed!" >&2 - exit 1 - fi -} +# Set GEN_PACK_LIB_PATH to use a specific gen-pack library root +# ... instead of bootstrap based on REQUIRED_GEN_PACK_LIB +if [[ -n "${GEN_PACK_LIB_PATH}" ]] && [[ -f "${GEN_PACK_LIB_PATH}/gen-pack" ]]; then + . "${GEN_PACK_LIB_PATH}/gen-pack" +else + . <(curl -sL "https://raw.githubusercontent.com/Open-CMSIS-Pack/gen-pack/main/bootstrap") +fi -load_lib gen_pack "${DEFAULT_ARGS[@]}" "$@" exit 0