From 556475cca6db1f72b0175300226f6accf394f095 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 25 Nov 2019 14:06:20 +0100 Subject: [PATCH] started to work on a C++ doxygen docmentation --- .gitignore | 4 + doc/Doxyfile | 609 ++++++++++++------ doc/DoxygenLayout.xml | 60 +- doc/automotive-screenshot.jpg | Bin 103064 -> 0 bytes doc/classes/QskAbstractButton.metadox | 2 +- doc/classes/QskAnimation.dox | 12 - doc/classes/QskAnimationHint.metadox | 9 + doc/classes/QskAnimator.metadox | 9 + doc/classes/QskArcIterator.dox | 11 - .../{QskAspect.dox => QskAspect.metadox} | 0 doc/classes/QskBorder.dox | 11 - doc/classes/QskBox.metadox | 13 + doc/classes/QskBoxBorderColors.metadox | 9 + doc/classes/QskBoxBorderMetrics.metadox | 10 + doc/classes/QskBoxClipNode.metadox | 10 + doc/classes/QskBoxNode.metadox | 10 + doc/classes/QskBoxShapeMetrics.metadox | 9 + doc/classes/QskBoxSkinlet.metadox | 10 + doc/classes/QskClipNode.dox | 13 - doc/classes/QskColorFilter.metadox | 9 + doc/classes/QskControl.metadox | 2 +- doc/classes/QskCorner.dox | 11 - doc/classes/QskDialogButton.metadox | 13 + doc/classes/QskDialogButtonBox.metadox | 2 +- doc/classes/QskDialogSubWindow.metadox | 13 + doc/classes/QskDialogWindow.metadox | 13 + doc/classes/QskFlickAnimator.metadox | 10 + doc/classes/QskFocusIndicatorSkinlet.dox | 12 - doc/classes/QskFocusIndicatorSkinlet.metadox | 10 + doc/classes/QskFrame.metadox | 13 - doc/classes/QskFrameNode.dox | 13 - doc/classes/QskFrameSkinlet.dox | 11 - doc/classes/QskGeometry.dox | 19 - doc/classes/QskGesture.metadox | 9 + doc/classes/QskGestureRecognizer.metadox | 9 + doc/classes/QskGradient.dox | 9 - doc/classes/QskGradient.metadox | 10 + doc/classes/QskGraphic.dox | 51 -- doc/classes/QskGraphic.metadox | 48 ++ ...{QskGraphicIO.dox => QskGraphicIO.metadox} | 0 doc/classes/QskGraphicImageProvider.dox | 18 - doc/classes/QskGraphicImageProvider.metadox | 17 + doc/classes/QskGraphicLabelSkinlet.metadox | 10 + doc/classes/QskGraphicNode.metadox | 10 + doc/classes/QskGraphicPaintEngine.dox | 11 - doc/classes/QskGraphicPaintFilter.dox | 18 - doc/classes/QskGraphicProvider.dox | 13 - doc/classes/QskGraphicProvider.metadox | 11 + doc/classes/QskGraphicProviderMap.metadox | 9 + doc/classes/QskGraphicTextureFactory.dox | 16 - doc/classes/QskGraphicTextureFactory.metadox | 15 + doc/classes/QskHintAnimator.metadox | 10 + doc/classes/QskImage.metadox | 16 - doc/classes/QskLayout.metadox | 92 --- doc/classes/QskLayoutEngine.dox | 12 - doc/classes/QskLayoutItem.dox | 11 - doc/classes/QskListViewSkinlet.metadox | 10 + doc/classes/QskMargins.metadox | 10 + doc/classes/QskMessageSubWindow.metadox | 13 + doc/classes/QskMessageWindow.metadox | 13 + doc/classes/QskModule.dox | 10 - doc/classes/QskObjectCounter.dox | 12 - doc/classes/QskObjectCounter.metadox | 11 + doc/classes/QskObjectResolver.dox | 11 - doc/classes/QskObjectWalker.dox | 7 - doc/classes/QskPageIndicator.metadox | 13 + doc/classes/QskPageIndicatorSkinlet.metadox | 10 + doc/classes/QskPaintedNode.metadox | 10 + doc/classes/QskPainterCommand.dox | 77 --- doc/classes/QskPanGestureRecognizer.metadox | 10 + doc/classes/QskPlainTextRenderer.dox | 14 - doc/classes/QskPopup.metadox | 13 + doc/classes/QskPopupSkinlet.metadox | 10 + doc/classes/QskPushButtonSkinlet.dox | 12 - doc/classes/QskPushButtonSkinlet.metadox | 10 + doc/classes/QskQuickItem.metadox | 10 + doc/classes/QskRangeControl.metadox | 2 +- doc/classes/QskRectNode.dox | 12 - doc/classes/QskRectangle.metadox | 13 - doc/classes/QskResizable.dox | 11 - doc/classes/QskScrollArea.metadox | 13 + doc/classes/QskScrollViewSkinlet.metadox | 10 + doc/classes/QskSelectionSubWindow.metadox | 13 + doc/classes/QskSelectionWindow.metadox | 13 + doc/classes/QskSeparatorSkinlet.metadox | 10 + doc/classes/QskShortcutMap.metadox | 9 + doc/classes/QskSizePolicy.dox | 12 - doc/classes/QskSizePolicy.metadox | 10 + doc/classes/{QskSkin.dox => QskSkin.metadox} | 11 + doc/classes/QskSkinAnimator.dox | 35 - doc/classes/QskSkinFactory.metadox | 10 + doc/classes/QskSkinHint.dox | 6 - doc/classes/QskSkinHintTable.metadox | 9 + doc/classes/QskSkinManager.metadox | 10 + doc/classes/QskSkinTransition.metadox | 9 + doc/classes/QskSkinlet.dox | 27 - doc/classes/QskSkinlet.metadox | 16 + ...{QskSkinnable.dox => QskSkinnable.metadox} | 10 + doc/classes/QskSliderSkinlet.dox | 12 - doc/classes/QskSliderSkinlet.metadox | 10 + doc/classes/QskStackBoxAnimation.dox | 0 doc/classes/QskStandardIcons.dox | 6 - doc/classes/QskStandardSymbol.metadox | 8 + doc/classes/QskStatusIndicator.metadox | 13 + doc/classes/QskStatusIndicatorSkinlet.metadox | 10 + doc/classes/QskSubWindow.metadox | 13 + doc/classes/QskSubWindowArea.metadox | 13 + doc/classes/QskSubWindowAreaSkinlet.metadox | 10 + doc/classes/QskSubWindowSkinlet.metadox | 10 + doc/classes/QskSymbolMaterial.dox | 11 - doc/classes/QskTabButtonSkinlet.dox | 12 - doc/classes/QskTabButtonSkinlet.metadox | 10 + doc/classes/QskTabViewSkinlet.metadox | 10 + doc/classes/QskTextColors.metadox | 10 + doc/classes/QskTextInput.metadox | 13 + doc/classes/QskTextInputSkinlet.metadox | 10 + doc/classes/QskTextLabelSkinlet.dox | 12 - doc/classes/QskTextLabelSkinlet.metadox | 10 + doc/classes/QskTextNode.metadox | 10 + doc/classes/QskTextOptions.dox | 11 - doc/classes/QskTextOptions.metadox | 10 + doc/classes/QskTextRenderer.dox | 15 - doc/classes/QskTextureNode.dox | 11 - doc/classes/QskTextureNode.metadox | 10 + doc/classes/QskTextureRenderer.dox | 13 - doc/classes/QskVariantAnimator.metadox | 10 + doc/classes/QskVertexColor.dox | 9 - doc/classes/QskVertexPen.dox | 0 doc/classes/QskVertexRenderer.dox | 12 - doc/classes/QskVertexRendererColored.dox | 5 - doc/qskmodules.dox | 239 ++++--- 131 files changed, 1373 insertions(+), 1129 deletions(-) delete mode 100644 doc/automotive-screenshot.jpg delete mode 100644 doc/classes/QskAnimation.dox create mode 100644 doc/classes/QskAnimationHint.metadox create mode 100644 doc/classes/QskAnimator.metadox delete mode 100644 doc/classes/QskArcIterator.dox rename doc/classes/{QskAspect.dox => QskAspect.metadox} (100%) delete mode 100644 doc/classes/QskBorder.dox create mode 100644 doc/classes/QskBox.metadox create mode 100644 doc/classes/QskBoxBorderColors.metadox create mode 100644 doc/classes/QskBoxBorderMetrics.metadox create mode 100644 doc/classes/QskBoxClipNode.metadox create mode 100644 doc/classes/QskBoxNode.metadox create mode 100644 doc/classes/QskBoxShapeMetrics.metadox create mode 100644 doc/classes/QskBoxSkinlet.metadox delete mode 100644 doc/classes/QskClipNode.dox create mode 100644 doc/classes/QskColorFilter.metadox delete mode 100644 doc/classes/QskCorner.dox create mode 100644 doc/classes/QskDialogButton.metadox create mode 100644 doc/classes/QskDialogSubWindow.metadox create mode 100644 doc/classes/QskDialogWindow.metadox create mode 100644 doc/classes/QskFlickAnimator.metadox delete mode 100644 doc/classes/QskFocusIndicatorSkinlet.dox create mode 100644 doc/classes/QskFocusIndicatorSkinlet.metadox delete mode 100644 doc/classes/QskFrame.metadox delete mode 100644 doc/classes/QskFrameNode.dox delete mode 100644 doc/classes/QskFrameSkinlet.dox delete mode 100644 doc/classes/QskGeometry.dox create mode 100644 doc/classes/QskGesture.metadox create mode 100644 doc/classes/QskGestureRecognizer.metadox delete mode 100644 doc/classes/QskGradient.dox create mode 100644 doc/classes/QskGradient.metadox delete mode 100644 doc/classes/QskGraphic.dox create mode 100644 doc/classes/QskGraphic.metadox rename doc/classes/{QskGraphicIO.dox => QskGraphicIO.metadox} (100%) delete mode 100644 doc/classes/QskGraphicImageProvider.dox create mode 100644 doc/classes/QskGraphicImageProvider.metadox create mode 100644 doc/classes/QskGraphicLabelSkinlet.metadox create mode 100644 doc/classes/QskGraphicNode.metadox delete mode 100644 doc/classes/QskGraphicPaintEngine.dox delete mode 100644 doc/classes/QskGraphicPaintFilter.dox delete mode 100644 doc/classes/QskGraphicProvider.dox create mode 100644 doc/classes/QskGraphicProvider.metadox create mode 100644 doc/classes/QskGraphicProviderMap.metadox delete mode 100644 doc/classes/QskGraphicTextureFactory.dox create mode 100644 doc/classes/QskGraphicTextureFactory.metadox create mode 100644 doc/classes/QskHintAnimator.metadox delete mode 100644 doc/classes/QskImage.metadox delete mode 100644 doc/classes/QskLayout.metadox delete mode 100644 doc/classes/QskLayoutEngine.dox delete mode 100644 doc/classes/QskLayoutItem.dox create mode 100644 doc/classes/QskListViewSkinlet.metadox create mode 100644 doc/classes/QskMargins.metadox create mode 100644 doc/classes/QskMessageSubWindow.metadox create mode 100644 doc/classes/QskMessageWindow.metadox delete mode 100644 doc/classes/QskModule.dox delete mode 100644 doc/classes/QskObjectCounter.dox create mode 100644 doc/classes/QskObjectCounter.metadox delete mode 100644 doc/classes/QskObjectResolver.dox delete mode 100644 doc/classes/QskObjectWalker.dox create mode 100644 doc/classes/QskPageIndicator.metadox create mode 100644 doc/classes/QskPageIndicatorSkinlet.metadox create mode 100644 doc/classes/QskPaintedNode.metadox delete mode 100644 doc/classes/QskPainterCommand.dox create mode 100644 doc/classes/QskPanGestureRecognizer.metadox delete mode 100644 doc/classes/QskPlainTextRenderer.dox create mode 100644 doc/classes/QskPopup.metadox create mode 100644 doc/classes/QskPopupSkinlet.metadox delete mode 100644 doc/classes/QskPushButtonSkinlet.dox create mode 100644 doc/classes/QskPushButtonSkinlet.metadox create mode 100644 doc/classes/QskQuickItem.metadox delete mode 100644 doc/classes/QskRectNode.dox delete mode 100644 doc/classes/QskRectangle.metadox delete mode 100644 doc/classes/QskResizable.dox create mode 100644 doc/classes/QskScrollArea.metadox create mode 100644 doc/classes/QskScrollViewSkinlet.metadox create mode 100644 doc/classes/QskSelectionSubWindow.metadox create mode 100644 doc/classes/QskSelectionWindow.metadox create mode 100644 doc/classes/QskSeparatorSkinlet.metadox create mode 100644 doc/classes/QskShortcutMap.metadox delete mode 100644 doc/classes/QskSizePolicy.dox create mode 100644 doc/classes/QskSizePolicy.metadox rename doc/classes/{QskSkin.dox => QskSkin.metadox} (93%) delete mode 100644 doc/classes/QskSkinAnimator.dox create mode 100644 doc/classes/QskSkinFactory.metadox delete mode 100644 doc/classes/QskSkinHint.dox create mode 100644 doc/classes/QskSkinHintTable.metadox create mode 100644 doc/classes/QskSkinManager.metadox create mode 100644 doc/classes/QskSkinTransition.metadox delete mode 100644 doc/classes/QskSkinlet.dox create mode 100644 doc/classes/QskSkinlet.metadox rename doc/classes/{QskSkinnable.dox => QskSkinnable.metadox} (85%) delete mode 100644 doc/classes/QskSliderSkinlet.dox create mode 100644 doc/classes/QskSliderSkinlet.metadox delete mode 100644 doc/classes/QskStackBoxAnimation.dox delete mode 100644 doc/classes/QskStandardIcons.dox create mode 100644 doc/classes/QskStandardSymbol.metadox create mode 100644 doc/classes/QskStatusIndicator.metadox create mode 100644 doc/classes/QskStatusIndicatorSkinlet.metadox create mode 100644 doc/classes/QskSubWindow.metadox create mode 100644 doc/classes/QskSubWindowArea.metadox create mode 100644 doc/classes/QskSubWindowAreaSkinlet.metadox create mode 100644 doc/classes/QskSubWindowSkinlet.metadox delete mode 100644 doc/classes/QskSymbolMaterial.dox delete mode 100644 doc/classes/QskTabButtonSkinlet.dox create mode 100644 doc/classes/QskTabButtonSkinlet.metadox create mode 100644 doc/classes/QskTabViewSkinlet.metadox create mode 100644 doc/classes/QskTextColors.metadox create mode 100644 doc/classes/QskTextInput.metadox create mode 100644 doc/classes/QskTextInputSkinlet.metadox delete mode 100644 doc/classes/QskTextLabelSkinlet.dox create mode 100644 doc/classes/QskTextLabelSkinlet.metadox create mode 100644 doc/classes/QskTextNode.metadox delete mode 100644 doc/classes/QskTextOptions.dox create mode 100644 doc/classes/QskTextOptions.metadox delete mode 100644 doc/classes/QskTextRenderer.dox delete mode 100644 doc/classes/QskTextureNode.dox create mode 100644 doc/classes/QskTextureNode.metadox delete mode 100644 doc/classes/QskTextureRenderer.dox create mode 100644 doc/classes/QskVariantAnimator.metadox delete mode 100644 doc/classes/QskVertexColor.dox delete mode 100644 doc/classes/QskVertexPen.dox delete mode 100644 doc/classes/QskVertexRenderer.dox delete mode 100644 doc/classes/QskVertexRendererColored.dox diff --git a/.gitignore b/.gitignore index f1e16f51..38245953 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,7 @@ qvg *.swp qskinny.pro.user *.o +*.log +Doxyfile +html +parser diff --git a/doc/Doxyfile b/doc/Doxyfile index e665d573..5ff9b229 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.6 +# Doxyfile 1.8.16 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -17,11 +17,11 @@ # Project related configuration options #--------------------------------------------------------------------------- -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8 # title of most generated pages and in a few other places. # The default value is: My Project. -PROJECT_NAME = "Qsk Controls User's Guide" +PROJECT_NAME = "QSkinny" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version @@ -46,10 +46,10 @@ PROJECT_NUMBER = 0.0.1 PROJECT_BRIEF = -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. PROJECT_LOGO = @@ -60,7 +60,7 @@ PROJECT_LOGO = OUTPUT_DIRECTORY = -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# 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 @@ -70,6 +70,14 @@ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO +# 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. +# The default value is: 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 # information to generate all constant output in the proper language. @@ -85,14 +93,22 @@ CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # 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 @@ -127,7 +143,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. @@ -171,6 +187,16 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO +# 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. +# 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 @@ -197,9 +223,9 @@ MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES -# 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. +# 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. SEPARATE_MEMBER_PAGES = NO @@ -218,7 +244,12 @@ TAB_SIZE = 4 # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) ALIASES = "accessors=\par Access functions:\n" @@ -256,16 +287,28 @@ OPTIMIZE_FOR_FORTRAN = NO OPTIMIZE_OUTPUT_VHDL = NO +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files), VHDL, tcl. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is +# Fortran), use: inc=Fortran f=C. # -# Note For files without extension you can use no_extension as a placeholder. +# 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. @@ -274,7 +317,7 @@ EXTENSION_MAPPING = metadox=C++ # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. +# documentation. See https://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. @@ -282,10 +325,19 @@ EXTENSION_MAPPING = metadox=C++ MARKDOWN_SUPPORT = YES +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# 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. +# 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 # classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES @@ -307,7 +359,7 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. @@ -325,13 +377,20 @@ 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. DISTRIBUTE_GROUP_DOC = NO +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent @@ -390,7 +449,7 @@ LOOKUP_CACHE_SIZE = 0 # 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. @@ -400,35 +459,41 @@ LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = NO -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = NO -# This flag is only useful for Objective-C code. When set to YES local methods, +# This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are +# included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. @@ -453,21 +518,21 @@ HIDE_UNDOC_MEMBERS = NO # 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. +# to NO, these classes will be included in the various overviews. 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 -# (class|struct|union) declarations. If set to NO these declarations will be +# (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = YES # 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 +# 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. @@ -481,21 +546,28 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also +# names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. +# (including Cygwin) ands Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = NO # 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 +# 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 +# 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. + +HIDE_COMPOUND_REFERENCE= NO + # 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. @@ -523,14 +595,14 @@ INLINE_INFO = YES # 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. +# name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # 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 +# 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. # The default value is: NO. @@ -575,27 +647,25 @@ SORT_BY_SCOPE_NAME = NO STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = NO -# 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. +# 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. # The default value is: YES. GENERATE_TESTLIST = NO -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = NO -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. @@ -620,8 +690,8 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = NO @@ -666,11 +736,10 @@ LAYOUT_FILE = DoxygenLayout.xml # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. +# search path. See also \cite for info how to create references. CITE_BIB_FILES = @@ -686,7 +755,7 @@ CITE_BIB_FILES = 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. @@ -694,7 +763,7 @@ 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. @@ -711,12 +780,19 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. # The default value is: NO. WARN_NO_PARAMDOC = YES +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + # 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 @@ -740,7 +816,7 @@ WARN_LOGFILE = Doxygen.log # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with -# spaces. +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = . \ @@ -749,13 +825,14 @@ INPUT = . \ ../src/controls \ ../src/dialogs \ ../src/graphic \ + ../src/inputpanel \ ../src/layouts \ ../src/nodes # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of # possible encodings. # The default value is: UTF-8. @@ -763,14 +840,22 @@ INPUT_ENCODING = UTF-8 # 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. 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. +# *.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. +# +# 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++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. -FILE_PATTERNS = *.h *.cpp *.dox *.metadox +FILE_PATTERNS = *.h \ + *.cpp \ + *.dox \ + *.metadox # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. @@ -801,7 +886,7 @@ EXCLUDE_SYMLINKS = NO # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -812,10 +897,9 @@ EXCLUDE_PATTERNS = # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* -EXCLUDE_SYMBOLS = \ - QskPainterCommand::PixmapData \ - QskPainterCommand::ImageData \ - QskPainterCommand::StateData +EXCLUDE_SYMBOLS = QskPainterCommand::PixmapData \ + QskPainterCommand::ImageData \ + QskPainterCommand::StateData # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include @@ -857,6 +941,10 @@ IMAGE_PATH = images # Note that the filter must not add or remove lines; it is applied before the # 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 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. INPUT_FILTER = @@ -866,11 +954,15 @@ INPUT_FILTER = # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. +# +# 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. FILTER_PATTERNS = *.metadox=metadoxfilter # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for +# INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. @@ -918,7 +1010,7 @@ INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. +# entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO @@ -930,7 +1022,7 @@ REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. @@ -950,12 +1042,12 @@ 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 # source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version +# (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # @@ -1008,7 +1100,7 @@ IGNORE_PREFIX = Qsk \ # 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 @@ -1070,13 +1162,15 @@ HTML_FOOTER = HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets +# 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. # This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. +# 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. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1092,9 +1186,9 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to +# will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. @@ -1123,12 +1217,24 @@ 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 NO can help when comparing the output of multiple runs. -# The default value is: YES. +# 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 = NO +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. @@ -1152,13 +1258,13 @@ HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1197,7 +1303,7 @@ DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output @@ -1220,28 +1326,29 @@ GENERATE_HTMLHELP = NO 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 +# 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. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1272,7 +1379,7 @@ QCH_FILE = qskdoc.qch # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1280,7 +1387,7 @@ QHP_NAMESPACE = qsk.0.0 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1289,7 +1396,7 @@ QHP_VIRTUAL_FOLDER = qsk # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1297,7 +1404,7 @@ QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. @@ -1305,7 +1412,7 @@ QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = @@ -1354,7 +1461,7 @@ DISABLE_INDEX = NO # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an 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 @@ -1382,7 +1489,7 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# When 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. @@ -1398,7 +1505,7 @@ EXT_LINKS_IN_WINDOW = NO FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # @@ -1410,8 +1517,8 @@ FORMULA_FONTSIZE = 10 FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# https://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. @@ -1437,8 +1544,8 @@ MATHJAX_FORMAT = HTML-CSS # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest @@ -1481,11 +1588,11 @@ 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 -# are two flavours of web server based searching depending on the -# EXTERNAL_SEARCH 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. +# 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 +# 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. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1497,9 +1604,9 @@ SERVER_BASED_SEARCH = NO # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). +# Xapian (see: https://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. @@ -1510,9 +1617,9 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library -# Xapian (see: http://xapian.org/). See the section "External Indexing and +# Xapian (see: https://xapian.org/). See the section "External Indexing and # Searching" for details. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1548,7 +1655,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 @@ -1564,22 +1671,36 @@ LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. # -# Note that when enabling USE_PDFLATEX this option is only used for generating -# bitmaps for formulas in the HTML output, but not in the Makefile that is -# written to the output directory. -# The default file is: latex. +# Note that when not enabling USE_PDFLATEX the default is latex when enabling +# USE_PDFLATEX the default is pdflatex and when in the later case latex is +# chosen this is overwritten by pdflatex. For specific output languages the +# default can have been set differently, this depends on the implementation of +# the output language. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate # index for LaTeX. +# Note: This tag is used in the Makefile / make.bat. +# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file +# (.tex). # The default file is: makeindex. # This tag requires that the tag GENERATE_LATEX is set to YES. MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX +# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to +# generate index for LaTeX. In case there is no backslash (\) as first character +# it will be automatically added in the LaTeX code. +# Note: This tag is used in the generated output file (.tex). +# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. +# The default value is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_MAKEINDEX_CMD = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1597,9 +1718,12 @@ COMPACT_LATEX = YES PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names -# that should be included in the LaTeX output. To get the times font for -# instance you can specify -# EXTRA_PACKAGES=times +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1613,23 +1737,36 @@ EXTRA_PACKAGES = # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will -# replace them by respectively the title of the page, the current date and time, -# only the current date, the version number of doxygen, the project name (see -# PROJECT_NAME), or the project number (see PROJECT_NUMBER). +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal 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. +# 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. # # 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. 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 +# 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). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or @@ -1647,8 +1784,8 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES to get a +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a # higher quality PDF documentation. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1683,17 +1820,33 @@ LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See -# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# https://en.wikipedia.org/wiki/BibTeX and \cite for more info. # The default value is: plain. # This tag requires that the tag GENERATE_LATEX is set to YES. 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 +# LATEX_OUTPUT directory will be used. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EMOJI_DIRECTORY = + #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# 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. @@ -1708,7 +1861,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. @@ -1728,9 +1881,9 @@ COMPACT_RTF = NO RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's config -# file, i.e. a series of assignments. You only have to provide replacements, -# missing definitions are set to their default value. +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# configuration file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the # default style sheet that doxygen normally uses. @@ -1739,17 +1892,27 @@ RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is -# similar to doxygen's config file. A template extensions file can be generated -# using doxygen -e rtf extensionFile. +# similar to doxygen's configuration file. A template extensions file can be +# generated using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + #--------------------------------------------------------------------------- # 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. @@ -1773,6 +1936,13 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + # 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 @@ -1786,7 +1956,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. @@ -1800,7 +1970,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. @@ -1809,11 +1979,18 @@ XML_OUTPUT = xml XML_PROGRAMLISTING = YES +# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include +# namespace members in file scope as well, matching the HTML output. +# The default value is: NO. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_NS_MEMB_FILE_SCOPE = NO + #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# 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. @@ -1827,14 +2004,23 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + #--------------------------------------------------------------------------- # 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.sf.net) file that captures the structure of -# the code including all documentation. Note that this feature is still -# experimental and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures +# the structure of the code including all documentation. Note that this feature +# is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -1843,7 +2029,7 @@ GENERATE_AUTOGEN_DEF = NO # 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. @@ -1851,7 +2037,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. @@ -1859,9 +2045,9 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to -# understand what is going on. On the other hand, if this tag is set to NO the +# understand what is going on. On the other hand, if this tag is set to NO, the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. @@ -1881,14 +2067,14 @@ 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 -# in the source code. If set to NO only conditional compilation will be +# 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. # The default value is: NO. @@ -1904,7 +2090,7 @@ MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES -# If the SEARCH_INCLUDES tag is set to YES the includes files in the +# If the SEARCH_INCLUDES tag is set to YES, the include files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1946,9 +2132,9 @@ PREDEFINED = EXPAND_AS_DEFINED = QSK_DECLARE_DELEGATE # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all refrences 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 +# 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 # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1968,18 +2154,17 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have an unique name (where the name does NOT include +# 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 # run, you must also specify the path to the tagfile here. -TAGFILES = \ - /usr/share/doc/qt/qtcore/qtcore.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qdoc/qdoc.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qtgui/qtgui.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qtqml/qtqml.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qtquick/qtquick.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qtsvg/qtsvg.tags=https://doc.qt.io/qt-5/ \ - /usr/share/doc/qt/qtwidgets/qtwidgets.tags=https://doc.qt.io/qt-5/ +TAGFILES = /usr/share/doc/qt/qtcore/qtcore.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qdoc/qdoc.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qtgui/qtgui.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qtqml/qtqml.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qtquick/qtquick.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qtsvg/qtsvg.tags=https://doc.qt.io/qt-5/ \ + /usr/share/doc/qt/qtwidgets/qtwidgets.tags=https://doc.qt.io/qt-5/ # 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 @@ -1987,37 +2172,32 @@ TAGFILES = \ 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 class will be listed in +# the class 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 +# 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 # listed. # The default value is: YES. EXTERNAL_GROUPS = YES -# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. EXTERNAL_PAGES = YES -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of 'which perl'). -# The default file (with absolute path) is: /usr/bin/perl. - -PERL_PATH = /usr/bin/perl - #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram +# 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 @@ -2026,15 +2206,6 @@ PERL_PATH = /usr/bin/perl CLASS_DIAGRAMS = YES -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see: -# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2042,7 +2213,7 @@ MSCGEN_PATH = DIA_PATH = -# If set to YES, the inheritance and collaboration graphs will hide inheritance +# 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. @@ -2067,7 +2238,7 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font n the dot files that doxygen +# 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 @@ -2075,7 +2246,7 @@ DOT_NUM_THREADS = 0 # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = +DOT_FONTNAME = # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. @@ -2113,9 +2284,9 @@ COLLABORATION_GRAPH = NO # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. -GROUP_GRAPHS = 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. @@ -2167,7 +2338,8 @@ INCLUDED_BY_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2178,7 +2350,8 @@ CALL_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2201,11 +2374,15 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. +# 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). -# Possible values are: png, jpg, gif and svg. +# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2248,6 +2425,24 @@ 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. + +PLANTUML_JAR_PATH = + +# 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. + +PLANTUML_INCLUDE_PATH = + # 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 @@ -2284,7 +2479,7 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# 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 # this, this feature is disabled by default. @@ -2301,7 +2496,7 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot # files that are used to generate the various graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml index 2189d0af..7c0a17ed 100644 --- a/doc/DoxygenLayout.xml +++ b/doc/DoxygenLayout.xml @@ -1,22 +1,36 @@ - + - - - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + - + @@ -33,11 +47,10 @@ - + - @@ -51,6 +64,7 @@ + @@ -87,8 +101,13 @@ + + + + + @@ -98,6 +117,8 @@ + + @@ -113,11 +134,16 @@ + + + + + @@ -128,6 +154,8 @@ + + @@ -147,6 +175,8 @@ + + @@ -166,6 +196,8 @@ + + diff --git a/doc/automotive-screenshot.jpg b/doc/automotive-screenshot.jpg deleted file mode 100644 index 56f8651d5af8502b76dd9e065cabdd0acf99b393..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103064 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 diff --git a/doc/classes/QskAbstractButton.metadox b/doc/classes/QskAbstractButton.metadox index b219d3ab..5acef355 100644 --- a/doc/classes/QskAbstractButton.metadox +++ b/doc/classes/QskAbstractButton.metadox @@ -8,6 +8,6 @@ INTERFACE HEADER: QskAbstractButton.h DESCRIPTION - \brief Base class of all Qsk buttons + \brief Base class of all buttons END END diff --git a/doc/classes/QskAnimation.dox b/doc/classes/QskAnimation.dox deleted file mode 100644 index 134225d0..00000000 --- a/doc/classes/QskAnimation.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskAnimation.h - \brief Yet another system for animations - */ - -class QskAnimation -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskAnimationHint.metadox b/doc/classes/QskAnimationHint.metadox new file mode 100644 index 00000000..2a985968 --- /dev/null +++ b/doc/classes/QskAnimationHint.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskAnimationHint + + HEADER: QskAnimationHint.h + + DESCRIPTION + \brief QskAnimationHint + END +END diff --git a/doc/classes/QskAnimator.metadox b/doc/classes/QskAnimator.metadox new file mode 100644 index 00000000..eb89fb87 --- /dev/null +++ b/doc/classes/QskAnimator.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskAnimator + + HEADER: QskAnimator.h + + DESCRIPTION + \brief QskAnimator + END +END diff --git a/doc/classes/QskArcIterator.dox b/doc/classes/QskArcIterator.dox deleted file mode 100644 index cdb42fcc..00000000 --- a/doc/classes/QskArcIterator.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskArcIterator.h - \brief A helper class for interpolating an arc with lines - */ - -class QskArcIterator -{ -/*! - -*/ -}; diff --git a/doc/classes/QskAspect.dox b/doc/classes/QskAspect.metadox similarity index 100% rename from doc/classes/QskAspect.dox rename to doc/classes/QskAspect.metadox diff --git a/doc/classes/QskBorder.dox b/doc/classes/QskBorder.dox deleted file mode 100644 index c7bdec21..00000000 --- a/doc/classes/QskBorder.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskBorder.h - \brief Border attributes that can be used from QML - */ - -class QskBorder -{ -/*! - -*/ -}; diff --git a/doc/classes/QskBox.metadox b/doc/classes/QskBox.metadox new file mode 100644 index 00000000..5b7f7a08 --- /dev/null +++ b/doc/classes/QskBox.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskBox + BASE: QskControl + + QMLCLASS: Box + QMLBASE: Control + + HEADER: QskBox.h + + DESCRIPTION + \brief QskBox + END +END diff --git a/doc/classes/QskBoxBorderColors.metadox b/doc/classes/QskBoxBorderColors.metadox new file mode 100644 index 00000000..6f2d3b5a --- /dev/null +++ b/doc/classes/QskBoxBorderColors.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskBoxBorderColors + + HEADER: QskBoxBorderColors.h + + DESCRIPTION + \brief QskBoxBorderColors + END +END diff --git a/doc/classes/QskBoxBorderMetrics.metadox b/doc/classes/QskBoxBorderMetrics.metadox new file mode 100644 index 00000000..67a32f81 --- /dev/null +++ b/doc/classes/QskBoxBorderMetrics.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskBoxBorderMetrics + BASE: QskBoxBorderMetrics + + HEADER: QskBoxBorderMetrics.h + + DESCRIPTION + \brief Something + END +END diff --git a/doc/classes/QskBoxClipNode.metadox b/doc/classes/QskBoxClipNode.metadox new file mode 100644 index 00000000..18a33d27 --- /dev/null +++ b/doc/classes/QskBoxClipNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskBoxClipNode + BASE: QSGClipNode + + HEADER: QskBoxClipNode.h + + DESCRIPTION + \brief QskBoxClipNode + END +END diff --git a/doc/classes/QskBoxNode.metadox b/doc/classes/QskBoxNode.metadox new file mode 100644 index 00000000..7b2c7a36 --- /dev/null +++ b/doc/classes/QskBoxNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskBoxNode + BASE: QSGGeometryNode + + HEADER: QskBoxNode.h + + DESCRIPTION + \brief QskBoxNode + END +END diff --git a/doc/classes/QskBoxShapeMetrics.metadox b/doc/classes/QskBoxShapeMetrics.metadox new file mode 100644 index 00000000..a24f4eca --- /dev/null +++ b/doc/classes/QskBoxShapeMetrics.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskBoxShapeMetrics + + HEADER: QskBoxShapeMetrics.h + + DESCRIPTION + \brief QskBoxShapeMetrics + END +END diff --git a/doc/classes/QskBoxSkinlet.metadox b/doc/classes/QskBoxSkinlet.metadox new file mode 100644 index 00000000..11585657 --- /dev/null +++ b/doc/classes/QskBoxSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskBoxSkinlet + BASE: QskSkinlet + + HEADER: QskBoxSkinlet.h + + DESCRIPTION + \brief QskBoxSkinlet + END +END diff --git a/doc/classes/QskClipNode.dox b/doc/classes/QskClipNode.dox deleted file mode 100644 index 4adc3198..00000000 --- a/doc/classes/QskClipNode.dox +++ /dev/null @@ -1,13 +0,0 @@ -/*! - \headerfile QskClipNode.h - \brief A clip node for rectangles with rounded borders - - \sa QskVertexRenderer -*/ - -class QskClipNode -{ -/*! - -*/ -}; diff --git a/doc/classes/QskColorFilter.metadox b/doc/classes/QskColorFilter.metadox new file mode 100644 index 00000000..6905b630 --- /dev/null +++ b/doc/classes/QskColorFilter.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskColorFilter + + HEADER: QskColorFilter.h + + DESCRIPTION + \brief QskColorFilter + END +END diff --git a/doc/classes/QskControl.metadox b/doc/classes/QskControl.metadox index f3278e60..0ee354e7 100644 --- a/doc/classes/QskControl.metadox +++ b/doc/classes/QskControl.metadox @@ -1,6 +1,6 @@ INTERFACE CLASS: QskControl - BASE: QQuickItem + BASE: QskQuickItem QMLCLASS: Control QMLBASE: Item diff --git a/doc/classes/QskCorner.dox b/doc/classes/QskCorner.dox deleted file mode 100644 index 5e48e366..00000000 --- a/doc/classes/QskCorner.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskCorner.h - \brief Attributes of a rounded corner that can be used from QML - */ - -class QskCorner -{ -/*! - -*/ -}; diff --git a/doc/classes/QskDialogButton.metadox b/doc/classes/QskDialogButton.metadox new file mode 100644 index 00000000..01382141 --- /dev/null +++ b/doc/classes/QskDialogButton.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskDialogButton + BASE: QskPushButton + + QMLCLASS: DialogButton + QMLBASE: Button + + HEADER: QskDialogButton.h + + DESCRIPTION + \brief QskDialogButton + END +END diff --git a/doc/classes/QskDialogButtonBox.metadox b/doc/classes/QskDialogButtonBox.metadox index c1e4a5e3..3226b870 100644 --- a/doc/classes/QskDialogButtonBox.metadox +++ b/doc/classes/QskDialogButtonBox.metadox @@ -1,6 +1,6 @@ INTERFACE CLASS: QskDialogButtonBox - BASE: QskControl + BASE: QskBox QMLCLASS: DialogButtonBox QMLBASE: Control diff --git a/doc/classes/QskDialogSubWindow.metadox b/doc/classes/QskDialogSubWindow.metadox new file mode 100644 index 00000000..1abf4d79 --- /dev/null +++ b/doc/classes/QskDialogSubWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskDialogSubWindow + BASE: QskSubWindow + + QMLCLASS: DialogSubWindow + QMLBASE: SubWindow + + HEADER: QskDialogSubWindow.h + + DESCRIPTION + \brief QskDialogSubWindow + END +END diff --git a/doc/classes/QskDialogWindow.metadox b/doc/classes/QskDialogWindow.metadox new file mode 100644 index 00000000..4c4576a5 --- /dev/null +++ b/doc/classes/QskDialogWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskDialogWindow + BASE: QskWindow + + QMLCLASS: DialogWindow + QMLBASE: Window + + HEADER: QskDialogWindow.h + + DESCRIPTION + \brief QskDialogWindow + END +END diff --git a/doc/classes/QskFlickAnimator.metadox b/doc/classes/QskFlickAnimator.metadox new file mode 100644 index 00000000..5f3e4ea3 --- /dev/null +++ b/doc/classes/QskFlickAnimator.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskFlickAnimator + BASE: QskAnimator + + HEADER: QskFlickAnimator.h + + DESCRIPTION + \brief QskFlickAnimator + END +END diff --git a/doc/classes/QskFocusIndicatorSkinlet.dox b/doc/classes/QskFocusIndicatorSkinlet.dox deleted file mode 100644 index 84114e60..00000000 --- a/doc/classes/QskFocusIndicatorSkinlet.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskFocusIndicatorSkinlet.h - \brief Base class of all skinlets for QskFocusIndicator - */ - -class QskFocusIndicatorSkinlet -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskFocusIndicatorSkinlet.metadox b/doc/classes/QskFocusIndicatorSkinlet.metadox new file mode 100644 index 00000000..ee181c31 --- /dev/null +++ b/doc/classes/QskFocusIndicatorSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskFocusIndicatorSkinlet + BASE: QskSkinlet + + HEADER: QskFocusIndicatorSkinlet.h + + DESCRIPTION + \brief QskFocusIndicatorSkinlet + END +END diff --git a/doc/classes/QskFrame.metadox b/doc/classes/QskFrame.metadox deleted file mode 100644 index 93f91276..00000000 --- a/doc/classes/QskFrame.metadox +++ /dev/null @@ -1,13 +0,0 @@ -INTERFACE - CLASS: QskFrame - BASE: QskControl - - QMLCLASS: Frame - QMLBASE: Control - - HEADER: QskFrame.h - - DESCRIPTION - \brief A container with a frame - END -END diff --git a/doc/classes/QskFrameNode.dox b/doc/classes/QskFrameNode.dox deleted file mode 100644 index 839fd47d..00000000 --- a/doc/classes/QskFrameNode.dox +++ /dev/null @@ -1,13 +0,0 @@ -/*! - \headerfile QskFrameNode.h - \brief A geometry node for displaying a frame - - \sa QskVertexRendererColored -*/ - -class QskFrameNode -{ -/*! - -*/ -}; diff --git a/doc/classes/QskFrameSkinlet.dox b/doc/classes/QskFrameSkinlet.dox deleted file mode 100644 index f3ce4649..00000000 --- a/doc/classes/QskFrameSkinlet.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskFrameSkinlet.h - \brief Base class of all skinlets for QskFrame - */ - -class QskFrameSkinlet -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGeometry.dox b/doc/classes/QskGeometry.dox deleted file mode 100644 index 33cac2c2..00000000 --- a/doc/classes/QskGeometry.dox +++ /dev/null @@ -1,19 +0,0 @@ -/*! \namespace QskGeometry - - \brief A collection of utility classes for manipulating Scene Graph geometry. - */ - -/*! \class QskSimpleBorderGeometry - - \brief A convenience class for managing nine-patch images. To be used with - materials rendering textured vertices, such as QSGTextureMaterial or - QskFlatColorSymbolMaterial. To combine per-vertex colors with textured - materials, use QskColoredBorderGeometry. - */ - -/*! \class QskColoredBorderGeometry - - \brief A convenience class for managing nine-patch images. To be used with - materials providing per-vertex colored textured vertices, such as - QskVertexColoredSymbolMaterial. - */ diff --git a/doc/classes/QskGesture.metadox b/doc/classes/QskGesture.metadox new file mode 100644 index 00000000..e87e464e --- /dev/null +++ b/doc/classes/QskGesture.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskGesture + + HEADER: QskGesture.h + + DESCRIPTION + \brief QskGesture + END +END diff --git a/doc/classes/QskGestureRecognizer.metadox b/doc/classes/QskGestureRecognizer.metadox new file mode 100644 index 00000000..f65f6836 --- /dev/null +++ b/doc/classes/QskGestureRecognizer.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskGestureRecognizer + + HEADER: QskGestureRecognizer.h + + DESCRIPTION + \brief QskGestureRecognizer + END +END diff --git a/doc/classes/QskGradient.dox b/doc/classes/QskGradient.dox deleted file mode 100644 index d28cfe94..00000000 --- a/doc/classes/QskGradient.dox +++ /dev/null @@ -1,9 +0,0 @@ -/*! \class QskGradientStop - - \brief A color stop of a QskGradient - */ - -/*! \class QskGradient - - \brief Attributes of a linear gradient that can be set from QML - */ diff --git a/doc/classes/QskGradient.metadox b/doc/classes/QskGradient.metadox new file mode 100644 index 00000000..99a6a209 --- /dev/null +++ b/doc/classes/QskGradient.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS : QskGradientStop + QMLCLASS: GradientStop + + HEADER: QskGradient.h + + DESCRIPTION + \brief A color stop of a gradient + END +END diff --git a/doc/classes/QskGraphic.dox b/doc/classes/QskGraphic.dox deleted file mode 100644 index c4a1ce0a..00000000 --- a/doc/classes/QskGraphic.dox +++ /dev/null @@ -1,51 +0,0 @@ -/*! - \headerfile QskGraphic.h - \brief A paint device for scalable graphics - - QskGraphic is the representation of a graphic that is tailored for - scalability. Like QPicture it will be initialized by QPainter - operations and can be replayed later to any target paint device. - It can be stored and loaded from disk using the operators - from QskGraphicIO. Together with QSvgRenderer it can be used to - implement a simple SVG compiler. - - QskGraphic maps all scalable drawing primitives to a QPainterPath - and stores them together with the painter state changes - ( pen, brush, transformation ... ) in a list of QskPainterCommand. - For being a complete QPaintDevice it also stores pixmaps or images, - what is somehow against the idea of the class, because these objects - can't be scaled without a loss in quality. - - The main issue about scaling a QskGraphic object are the pens used for - drawing the outlines of the painter paths. While non cosmetic pens - ( QPen::isCosmetic() ) are scaled with the same ratio as the path, - cosmetic pens have a fixed width. A graphic might have paths with - different pens - cosmetic and non-cosmetic. - - QskGraphic caches 2 different rectangles: - - - control point rectangle\n - The control point rectangle is the bounding rectangle of all - control point rectangles of the painter paths, or the target - rectangle of the pixmaps/images. - - - bounding rectangle\n - The bounding rectangle extends the control point rectangle by - what is needed for rendering the outline with an unscaled pen. - - Because the offset for drawing the outline depends on the shape - of the painter path ( the peak of a triangle is different than the flat side ) - scaling with a fixed aspect ratio always needs to be calculated from the - control point rectangle. - - \sa QskGraphicIO, QskPainterCommand - \note This class is a clone of QwtGraphic ( http://qwt.sf.net/class_qwt_graphic.html ) -*/ - -class QskGraphic -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskGraphic.metadox b/doc/classes/QskGraphic.metadox new file mode 100644 index 00000000..020a5883 --- /dev/null +++ b/doc/classes/QskGraphic.metadox @@ -0,0 +1,48 @@ +INTERFACE + CLASS: QskGraphic + BASE: QPaintDevice + + HEADER: QskGraphic.h + + DESCRIPTION + \brief A paint device for scalable graphics + + QskGraphic is the representation of a graphic that is tailored for + scalability. Like QPicture it will be initialized by QPainter + operations and can be replayed later to any target paint device. + It can be stored and loaded from disk using the operators + from QskGraphicIO. Together with QSvgRenderer it can be used to + implement a simple SVG compiler. + + QskGraphic maps all scalable drawing primitives to a QPainterPath + and stores them together with the painter state changes + ( pen, brush, transformation ... ) in a list of QskPainterCommand. + For being a complete QPaintDevice it also stores pixmaps or images, + what is somehow against the idea of the class, because these objects + can't be scaled without a loss in quality. + + The main issue about scaling a QskGraphic object are the pens used for + drawing the outlines of the painter paths. While non cosmetic pens + ( QPen::isCosmetic() ) are scaled with the same ratio as the path, + cosmetic pens have a fixed width. A graphic might have paths with + different pens - cosmetic and non-cosmetic. + + QskGraphic caches 2 different rectangles: + + - control point rectangle\n + The control point rectangle is the bounding rectangle of all + control point rectangles of the painter paths, or the target + rectangle of the pixmaps/images. + + - bounding rectangle\n + The bounding rectangle extends the control point rectangle by + what is needed for rendering the outline with an unscaled pen. + + Because the offset for drawing the outline depends on the shape + of the painter path ( the peak of a triangle is different than the flat side ) + scaling with a fixed aspect ratio always needs to be calculated from the + control point rectangle. + + \sa QskGraphicIO, QskPainterCommand + END +END diff --git a/doc/classes/QskGraphicIO.dox b/doc/classes/QskGraphicIO.metadox similarity index 100% rename from doc/classes/QskGraphicIO.dox rename to doc/classes/QskGraphicIO.metadox diff --git a/doc/classes/QskGraphicImageProvider.dox b/doc/classes/QskGraphicImageProvider.dox deleted file mode 100644 index c8ff0bf3..00000000 --- a/doc/classes/QskGraphicImageProvider.dox +++ /dev/null @@ -1,18 +0,0 @@ -/*! - \headerfile QskGraphicImageProvider.h - \brief A QQuickImageProvider making QskGraphicProvider available - for QQuickImage items. - - QskGraphicImageProvider supports images, pixmaps or textures, but only - when requesting a QQuickTextureFactory the item will be able to - scale the image without a loss in quality. - - \sa QskGraphicTextureFactory, QskGraphicProvider, Qsk::addGraphicProvider - */ - -class QskGraphicImageProvider -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGraphicImageProvider.metadox b/doc/classes/QskGraphicImageProvider.metadox new file mode 100644 index 00000000..a2bbddc5 --- /dev/null +++ b/doc/classes/QskGraphicImageProvider.metadox @@ -0,0 +1,17 @@ +INTERFACE + CLASS: QskGraphicImageProvider + BASE: QQuickImageProvider + + HEADER QskGraphicImageProvider.h + + DESCRIPTION + \brief A QQuickImageProvider making QskGraphicProvider available + for QQuickImage items. + + QskGraphicImageProvider supports images, pixmaps or textures, but only + when requesting a QQuickTextureFactory the item will be able to + scale the image without a loss in quality. + + \sa QskGraphicTextureFactory, QskGraphicProvider, Qsk::addGraphicProvider + END +END diff --git a/doc/classes/QskGraphicLabelSkinlet.metadox b/doc/classes/QskGraphicLabelSkinlet.metadox new file mode 100644 index 00000000..b6a5db06 --- /dev/null +++ b/doc/classes/QskGraphicLabelSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskGraphicLabelSkinlet + BASE: QskSkinlet + + HEADER: QskGraphicLabelSkinlet.h + + DESCRIPTION + \brief QskGraphicLabelSkinlet + END +END diff --git a/doc/classes/QskGraphicNode.metadox b/doc/classes/QskGraphicNode.metadox new file mode 100644 index 00000000..eab277f6 --- /dev/null +++ b/doc/classes/QskGraphicNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskGraphicNode + BASE: QskTextureNode + + HEADER: QskGraphicNode.h + + DESCRIPTION + \brief QskGraphicNode + END +END diff --git a/doc/classes/QskGraphicPaintEngine.dox b/doc/classes/QskGraphicPaintEngine.dox deleted file mode 100644 index 4a90d122..00000000 --- a/doc/classes/QskGraphicPaintEngine.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskGraphicPaintEngine.h - \brief The paint engine for QskGraphic -*/ - -class QskGraphicPaintEngine -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGraphicPaintFilter.dox b/doc/classes/QskGraphicPaintFilter.dox deleted file mode 100644 index 87283b24..00000000 --- a/doc/classes/QskGraphicPaintFilter.dox +++ /dev/null @@ -1,18 +0,0 @@ -/*! - \headerfile QskGraphicPaintFilter.h - - \brief A filter for substituting colors of a QskGraphic - - A color filter can be used to avoid having to create - variations of an image for different color themes. - - \sa QskGraphic::render(), QskGraphicLabel::setGraphicFilter(), - QskGraphicTextureFactory::setGraphicFilter() - */ - -class QskGraphicPaintFilter -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGraphicProvider.dox b/doc/classes/QskGraphicProvider.dox deleted file mode 100644 index 8936b62e..00000000 --- a/doc/classes/QskGraphicProvider.dox +++ /dev/null @@ -1,13 +0,0 @@ -/*! - \headerfile QskGraphicProvider.h - - \brief QskGraphicProvider loads QskGraphic from a source URL. - \sa QskGraphicImageProvider, Qsk::addGraphicProvider - */ - -class QskGraphicProvider -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGraphicProvider.metadox b/doc/classes/QskGraphicProvider.metadox new file mode 100644 index 00000000..8e5bfddd --- /dev/null +++ b/doc/classes/QskGraphicProvider.metadox @@ -0,0 +1,11 @@ +INTERFACE + CLASS: QskGraphicProvider + BASE: QObject + + HEADER: QskGraphicProvider.h + + DESCRIPTION + \brief QskGraphicProvider loads QskGraphic from a source URL. + \sa QskGraphicImageProvider, Qsk::addGraphicProvider + END +END diff --git a/doc/classes/QskGraphicProviderMap.metadox b/doc/classes/QskGraphicProviderMap.metadox new file mode 100644 index 00000000..304d00d1 --- /dev/null +++ b/doc/classes/QskGraphicProviderMap.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskGraphicProviderMap + + HEADER: QskGraphicProviderMap.h + + DESCRIPTION + \brief QskGraphicProviderMap + END +END diff --git a/doc/classes/QskGraphicTextureFactory.dox b/doc/classes/QskGraphicTextureFactory.dox deleted file mode 100644 index f7141cc0..00000000 --- a/doc/classes/QskGraphicTextureFactory.dox +++ /dev/null @@ -1,16 +0,0 @@ -/*! - \headerfile QskGraphicTextureFactory.h - \brief A QQuickTextureFactory creating a QSGTexture from a QskGraphic. - - QskGraphicTextureFactory is a helper class to forward the creation - of textures for QQuickImage to the scene graph thread. - - \sa QskGraphicImageProvider - */ - -class QskGraphicTextureFactory -{ -/*! - -*/ -}; diff --git a/doc/classes/QskGraphicTextureFactory.metadox b/doc/classes/QskGraphicTextureFactory.metadox new file mode 100644 index 00000000..181d0c60 --- /dev/null +++ b/doc/classes/QskGraphicTextureFactory.metadox @@ -0,0 +1,15 @@ +INTERFACE + CLASS: QskGraphicTextureFactory + BASE: QQuickTextureFactory + + HEADER: QskGraphicTextureFactory.h + + DESCRIPTION + \brief A QQuickTextureFactory creating a QSGTexture from a QskGraphic. + + QskGraphicTextureFactory is a helper class to forward the creation + of textures for QQuickImage to the scene graph thread. + + \sa QskGraphicImageProvider + END +END diff --git a/doc/classes/QskHintAnimator.metadox b/doc/classes/QskHintAnimator.metadox new file mode 100644 index 00000000..626ba8a0 --- /dev/null +++ b/doc/classes/QskHintAnimator.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskHintAnimator + BASE: QskVariantAnimator + + HEADER: QskHintAnimator.h + + DESCRIPTION + \brief QskHintAnimator + END +END diff --git a/doc/classes/QskImage.metadox b/doc/classes/QskImage.metadox deleted file mode 100644 index c2df4835..00000000 --- a/doc/classes/QskImage.metadox +++ /dev/null @@ -1,16 +0,0 @@ -INTERFACE - CLASS: QskImage - BASE: QQuickImage - - QMLCLASS: Image - - # Not true as we inherit from QQuickImage ( = Image ) - # how to solve this ??? - QMLBASE: Item - - HEADER: QskImage.h - - DESCRIPTION - \brief An extended version of QQuickImage - END -END diff --git a/doc/classes/QskLayout.metadox b/doc/classes/QskLayout.metadox deleted file mode 100644 index 045e1fa9..00000000 --- a/doc/classes/QskLayout.metadox +++ /dev/null @@ -1,92 +0,0 @@ -INTERFACE - CLASS: QskLayout - BASE: QskControl - - QMLCLASS: Layout - QMLBASE: Control - - HEADER: QskLayout.h - - DESCRIPTION - \brief Base class of all Qsk layouts using a QGridLayoutEngine workhorse - END - - INVOKABLE - SIGNATURE: bool isEmpty() const; - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: int itemCount() const; - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: QUICKITEM itemAtIndex( int index ) const; - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: int indexOf( const QUICKITEM item ) const; - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: removeItem( const QUICKITEM item ); - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: void removeAt( int index ); - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: void clear(); - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: void setActive( bool on ); - DESCRIPTION - END - END - - INVOKABLE - SIGNATURE: bool isActive() const; - DESCRIPTION - END - END - - SLOT - SIGNATURE: void activate(); - DESCRIPTION - END - END - - SLOT - SIGNATURE: void invalidate(); - DESCRIPTION - END - END - - FUNCTION - SIGNATURE: void adjustItem( const QUICKITEM item ); - DESCRIPTION - END - END - - FUNCTION - SIGNATURE: void adjustItemAt( const QUICKITEM item ); - DESCRIPTION - END - END - -END diff --git a/doc/classes/QskLayoutEngine.dox b/doc/classes/QskLayoutEngine.dox deleted file mode 100644 index 75863bff..00000000 --- a/doc/classes/QskLayoutEngine.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskLayoutEngine.h - \brief A QGridLayoutEngine tailored for Qsk layouts - */ - -class QskLayoutEngine -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskLayoutItem.dox b/doc/classes/QskLayoutItem.dox deleted file mode 100644 index 4eb2accd..00000000 --- a/doc/classes/QskLayoutItem.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskLayoutItem.h - \brief A QGridLayoutItem tailored for Qsk layouts - */ - -class QskLayoutItem -{ -/*! - -*/ -}; diff --git a/doc/classes/QskListViewSkinlet.metadox b/doc/classes/QskListViewSkinlet.metadox new file mode 100644 index 00000000..5d7021b1 --- /dev/null +++ b/doc/classes/QskListViewSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskListViewSkinlet + BASE: QskSkinlet + + HEADER: QskListViewSkinlet.h + + DESCRIPTION + \brief QskListViewSkinlet + END +END diff --git a/doc/classes/QskMargins.metadox b/doc/classes/QskMargins.metadox new file mode 100644 index 00000000..3c6235a0 --- /dev/null +++ b/doc/classes/QskMargins.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskMargins + BASE: QMarginsF + + HEADER: QskMargins.h + + DESCRIPTION + \brief A stupid wrapper around QMarginsF + END +END diff --git a/doc/classes/QskMessageSubWindow.metadox b/doc/classes/QskMessageSubWindow.metadox new file mode 100644 index 00000000..fe5f7d47 --- /dev/null +++ b/doc/classes/QskMessageSubWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskMessageSubWindow + BASE: QskDialogSubWindow + + QMLCLASS: MessageSubWindow + QMLBASE: DialogSubWindow + + HEADER: QskMessageSubWindow.h + + DESCRIPTION + \brief QskMessageSubWindow + END +END diff --git a/doc/classes/QskMessageWindow.metadox b/doc/classes/QskMessageWindow.metadox new file mode 100644 index 00000000..749f1873 --- /dev/null +++ b/doc/classes/QskMessageWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskMessageWindow + BASE: QskDialogWindow + + QMLCLASS: MessageWindow + QMLBASE: DialogWindow + + HEADER: QskDialogWindow.h + + DESCRIPTION + \brief QskDialogWindow + END +END diff --git a/doc/classes/QskModule.dox b/doc/classes/QskModule.dox deleted file mode 100644 index a338c1c3..00000000 --- a/doc/classes/QskModule.dox +++ /dev/null @@ -1,10 +0,0 @@ -/*! - \headerfile QskModule.h - \brief A collection of global methods of the Qsk module. - */ - -namespace QskModule -{ -/*! -*/ -} diff --git a/doc/classes/QskObjectCounter.dox b/doc/classes/QskObjectCounter.dox deleted file mode 100644 index eab2f2f6..00000000 --- a/doc/classes/QskObjectCounter.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskAbstractButton.h - \brief An object counter using Qt hooks to create statistics - about QObject and QQuickItem instantiations - */ - -class QskAbstractButton -{ -/*! - -*/ -}; diff --git a/doc/classes/QskObjectCounter.metadox b/doc/classes/QskObjectCounter.metadox new file mode 100644 index 00000000..2c5a93b1 --- /dev/null +++ b/doc/classes/QskObjectCounter.metadox @@ -0,0 +1,11 @@ +INTERFACE + CLASS: QskAbstractButton + BASE: QskControl + + HEADER: QskAbstractButton.h + + DESCRIPTION + \brief An object counter using Qt hooks to create statistics + about QObject and QQuickItem instantiations + END +END diff --git a/doc/classes/QskObjectResolver.dox b/doc/classes/QskObjectResolver.dox deleted file mode 100644 index 3958b6bb..00000000 --- a/doc/classes/QskObjectResolver.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskObjectResolver.h - \brief A helper class for resolving properties on the window/item tree - */ - -class QskObjectResolver -{ -/*! - -*/ -}; diff --git a/doc/classes/QskObjectWalker.dox b/doc/classes/QskObjectWalker.dox deleted file mode 100644 index a4ac25e4..00000000 --- a/doc/classes/QskObjectWalker.dox +++ /dev/null @@ -1,7 +0,0 @@ -/*! \class QskObjectAttributes - \brief A helper class for resolving properties on the window/item tree - */ - -/*! \class QskObjectWalker - \brief A helper class for resolving properties on the window/item tree - */ diff --git a/doc/classes/QskPageIndicator.metadox b/doc/classes/QskPageIndicator.metadox new file mode 100644 index 00000000..4fca75d7 --- /dev/null +++ b/doc/classes/QskPageIndicator.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskPageIndicator + BASE: QskControl + + QMLCLASS: PageIndicator + QMLBASE: Control + + HEADER: QskPageIndicator.h + + DESCRIPTION + \brief A page indicator + END +END diff --git a/doc/classes/QskPageIndicatorSkinlet.metadox b/doc/classes/QskPageIndicatorSkinlet.metadox new file mode 100644 index 00000000..c5d2b4f4 --- /dev/null +++ b/doc/classes/QskPageIndicatorSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskPageIndicatorSkinlet + BASE: QskSkinlet + + HEADER: QskPageIndicatorSkinlet.h + + DESCRIPTION + \brief QskPageIndicatorSkinlet + END +END diff --git a/doc/classes/QskPaintedNode.metadox b/doc/classes/QskPaintedNode.metadox new file mode 100644 index 00000000..0db8b0e2 --- /dev/null +++ b/doc/classes/QskPaintedNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskPaintedNode + BASE: QskTextureNode + + HEADER: QskPaintedNode.h + + DESCRIPTION + \brief QskPaintedNode + END +END diff --git a/doc/classes/QskPainterCommand.dox b/doc/classes/QskPainterCommand.dox deleted file mode 100644 index 16a89119..00000000 --- a/doc/classes/QskPainterCommand.dox +++ /dev/null @@ -1,77 +0,0 @@ -/*! - \headerfile QskPainterCommand.h - \brief Attributes of a QPainter operation. - - It is used by QskGraphic to record and replay paint operations - - \sa QskGraphic::commands() -*/ - -class QskPainterCommand -{ -/*! - \fn QskPainterCommand() - - Construct an invalid command - - \fn QskPainterCommand( const QPainterPath &path ) - Constructor for path paint operation - - \fn QskPainterCommand( const QRectF &rect, - const QPixmap &pixmap, const QRectF& subRect ) - - Constructor for Pixmap paint operation - - \param rect Target rectangle - \param pixmap Pixmap - \param subRect Rectangle inside the pixmap - - \sa QPainter::drawPixmap() - - \fn QskPainterCommand( const QRectF &rect, const QImage &image, - const QRectF& subRect, Qt::ImageConversionFlags flags ) - - Constructor for Image paint operation - - \param rect Target rectangle - \param image Image - \param subRect Rectangle inside the image - \param flags Conversion flags - - \sa QPainter::drawImage() - - \fn QskPainterCommand( const QPaintEngineState &state ) - - Constructor for State paint operation - - \param state Paint engine state - - \fn QskPainterCommand( const QskPainterCommand &other ) - - Copy constructor - - \param other Command to be copied - - \fn ~QskPainterCommand() - Destructor - - \fn QskPainterCommand &operator=( const QskPainterCommand &other ) - - Assignment operator - - \param other Command to be copied - \return Modified command - - \fn QPainterPath *path() - \return Painter path to be painted - - \fn PixmapData* pixmapData() - \return Attributes how to paint a QPixmap - - \fn ImageData* imageData() - \return Attributes how to paint a QImage - - \fn StateData* stateData() - \return Attributes of a state change -*/ -}; diff --git a/doc/classes/QskPanGestureRecognizer.metadox b/doc/classes/QskPanGestureRecognizer.metadox new file mode 100644 index 00000000..79da96d6 --- /dev/null +++ b/doc/classes/QskPanGestureRecognizer.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskPanGestureRecognizer + BASE: QskGestureRecognizer + + HEADER: QskPanGestureRecognizer.h + + DESCRIPTION + \brief QskPanGestureRecognizer + END +END diff --git a/doc/classes/QskPlainTextRenderer.dox b/doc/classes/QskPlainTextRenderer.dox deleted file mode 100644 index d5893715..00000000 --- a/doc/classes/QskPlainTextRenderer.dox +++ /dev/null @@ -1,14 +0,0 @@ -/*! - \headerfile QskPlainTextRenderer.h - \brief A renderer for creating a scene graph subtree from plain text content - \sa QskTextRenderer - */ - -class QskPlainTextRenderer -{ -/*! - -*/ -}; - - diff --git a/doc/classes/QskPopup.metadox b/doc/classes/QskPopup.metadox new file mode 100644 index 00000000..b8c11ba9 --- /dev/null +++ b/doc/classes/QskPopup.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskPopup + BASE: QskControl + + QMLCLASS: QskPopup + QMLBASE: Control + + HEADER: QskPopup.h + + DESCRIPTION + \brief Something + END +END diff --git a/doc/classes/QskPopupSkinlet.metadox b/doc/classes/QskPopupSkinlet.metadox new file mode 100644 index 00000000..42a59e8b --- /dev/null +++ b/doc/classes/QskPopupSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskPopupSkinlet + BASE: QskSkinlet + + HEADER: QskPopupSkinlet.h + + DESCRIPTION + \brief QskPopupSkinlet + END +END diff --git a/doc/classes/QskPushButtonSkinlet.dox b/doc/classes/QskPushButtonSkinlet.dox deleted file mode 100644 index 79570708..00000000 --- a/doc/classes/QskPushButtonSkinlet.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskPushButtonSkinlet.h - \brief Base class of all skinlets for QskPushButton - */ - -class QskPushButtonSkinlet -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskPushButtonSkinlet.metadox b/doc/classes/QskPushButtonSkinlet.metadox new file mode 100644 index 00000000..6a4631f0 --- /dev/null +++ b/doc/classes/QskPushButtonSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskPushButtonSkinlet + BASE: QskSkinlet + + HEADER: QskPushButtonSkinlet.h + + DESCRIPTION + \brief QskPushButtonSkinlet + END +END diff --git a/doc/classes/QskQuickItem.metadox b/doc/classes/QskQuickItem.metadox new file mode 100644 index 00000000..813ad0c4 --- /dev/null +++ b/doc/classes/QskQuickItem.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskQuickItem + BASE: QQuickItem + + HEADER: QskQuickItem.h + + DESCRIPTION + \brief QskQuickItem + END +END diff --git a/doc/classes/QskRangeControl.metadox b/doc/classes/QskRangeControl.metadox index 867589d4..d685e398 100644 --- a/doc/classes/QskRangeControl.metadox +++ b/doc/classes/QskRangeControl.metadox @@ -8,6 +8,6 @@ INTERFACE HEADER: QskRangeControl.h DESCRIPTION - \brief A push button + \brief QskRangeControl END END diff --git a/doc/classes/QskRectNode.dox b/doc/classes/QskRectNode.dox deleted file mode 100644 index 1974a2f1..00000000 --- a/doc/classes/QskRectNode.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskRectNode.h - \brief A scene graph node for rounded rectangles with an optional border - */ - -class QskRectNode -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskRectangle.metadox b/doc/classes/QskRectangle.metadox deleted file mode 100644 index 0c5508e5..00000000 --- a/doc/classes/QskRectangle.metadox +++ /dev/null @@ -1,13 +0,0 @@ -INTERFACE - CLASS: QskRectangle - BASE: QskControl - - QMLCLASS: Rectangle - QMLBASE: Control - - HEADER: QskRectangle.h - - DESCRIPTION - \brief An item displaying a filled rectangle with optional borders - END -END diff --git a/doc/classes/QskResizable.dox b/doc/classes/QskResizable.dox deleted file mode 100644 index 95f071f6..00000000 --- a/doc/classes/QskResizable.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskResizable.h -*/ - -class QskResizable -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskScrollArea.metadox b/doc/classes/QskScrollArea.metadox new file mode 100644 index 00000000..3f5bd8cf --- /dev/null +++ b/doc/classes/QskScrollArea.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskScrollArea + BASE: QskScrollView + + QMLCLASS: ScrollArea + QMLBASE: ScrollView + + HEADER: QskScrollArea.h + + DESCRIPTION + \brief QskScrollArea + END +END diff --git a/doc/classes/QskScrollViewSkinlet.metadox b/doc/classes/QskScrollViewSkinlet.metadox new file mode 100644 index 00000000..5f6e96fd --- /dev/null +++ b/doc/classes/QskScrollViewSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskScrollViewSkinlet + BASE: QskSkinlet + + HEADER: QskScrollViewSkinlet.h + + DESCRIPTION + \brief QskScrollViewSkinlet + END +END diff --git a/doc/classes/QskSelectionSubWindow.metadox b/doc/classes/QskSelectionSubWindow.metadox new file mode 100644 index 00000000..f5de343d --- /dev/null +++ b/doc/classes/QskSelectionSubWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskSelectionSubWindow + BASE: QskDialogSubWindow + + QMLCLASS: SelectionSubWindow + QMLBASE: DialogSubWindow + + HEADER: QskSelectionSubWindow.h + + DESCRIPTION + \brief QskSelectionSubWindow + END +END diff --git a/doc/classes/QskSelectionWindow.metadox b/doc/classes/QskSelectionWindow.metadox new file mode 100644 index 00000000..76d68348 --- /dev/null +++ b/doc/classes/QskSelectionWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskSelectionWindow + BASE: QskDialogWindow + + QMLCLASS: SelectionWindow + QMLBASE: DialogWindow + + HEADER: QskSelectionWindow.h + + DESCRIPTION + \brief QskSelectionWindow + END +END diff --git a/doc/classes/QskSeparatorSkinlet.metadox b/doc/classes/QskSeparatorSkinlet.metadox new file mode 100644 index 00000000..efc57ee2 --- /dev/null +++ b/doc/classes/QskSeparatorSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSeparatorSkinlet + BASE: QskSkinlet + + HEADER: QskSeparatorSkinlet.h + + DESCRIPTION + \brief QskSeparatorSkinlet + END +END diff --git a/doc/classes/QskShortcutMap.metadox b/doc/classes/QskShortcutMap.metadox new file mode 100644 index 00000000..6d6467af --- /dev/null +++ b/doc/classes/QskShortcutMap.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskShortcutMap + + HEADER: QskShortcutMap.h + + DESCRIPTION + \brief QskShortcutMap + END +END diff --git a/doc/classes/QskSizePolicy.dox b/doc/classes/QskSizePolicy.dox deleted file mode 100644 index 550b0898..00000000 --- a/doc/classes/QskSizePolicy.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskSizePolicy.h - \brief A size policy ( similar to QSizePolicy ) - */ - -class QskSizePolicy -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskSizePolicy.metadox b/doc/classes/QskSizePolicy.metadox new file mode 100644 index 00000000..3df2aca0 --- /dev/null +++ b/doc/classes/QskSizePolicy.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSizePolicy + QMLCLASS: SizePolicy + + HEADER QskSizePolicy.h + + DESCRIPTION + \brief A size policy ( similar to QSizePolicy ) + END +END diff --git a/doc/classes/QskSkin.dox b/doc/classes/QskSkin.metadox similarity index 93% rename from doc/classes/QskSkin.dox rename to doc/classes/QskSkin.metadox index 39d5ff14..b45976d9 100644 --- a/doc/classes/QskSkin.dox +++ b/doc/classes/QskSkin.metadox @@ -1,3 +1,14 @@ +INTERFACE + CLASS: QskSkin + BASE: QObject + + HEADER: QskSkin.h + + DESCRIPTION + \brief QskSkin + END +END + /*! \fn void QskSkin::setColor( QskAspect::Aspect aspect, QRgb color ) diff --git a/doc/classes/QskSkinAnimator.dox b/doc/classes/QskSkinAnimator.dox deleted file mode 100644 index adc59ded..00000000 --- a/doc/classes/QskSkinAnimator.dox +++ /dev/null @@ -1,35 +0,0 @@ -/*! - \headerfile QskSkinAnimator.h - - \brief A helper class for delegating transitions between skin states. For - example, if you wish to smoothly transition from one color to another, you - should use QskControl::skinAnimator. - - QskSkinAnimator is a low-level API which allows for smooth transitions - between values stored by QskSkinHint. Depending on the QskControl::skinState(), - a different value may be returned by a call to QskControl::skinHint(). - By specifying an animator for the same QskAspect, an automatic transition - can occur between those two values. - - In the simple case, you can create a hint animator by calling - QskSkinlet::animator() to get a default animator for that skin aspect. - Then, set the duration value: - - \code - control->skinAnimator( QskSkinHint::Background ).setDuration<500>(); // Set the color transition to 500ms. - \endcode - - To animate using an easing curve, you can replace the progress functor with - one utilizing a QEasingCurve: - \code - control->skinAnimator( QskSkinHint::Background ).progress = &QskSkinHint::easingProgress; - \endcode -*/ - -class QskSkinAnimator -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskSkinFactory.metadox b/doc/classes/QskSkinFactory.metadox new file mode 100644 index 00000000..35da9ad8 --- /dev/null +++ b/doc/classes/QskSkinFactory.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSkinFactory + BASE: QObject + + HEADER: QskSkinFactory.h + + DESCRIPTION + \brief QskSkinFactory + END +END diff --git a/doc/classes/QskSkinHint.dox b/doc/classes/QskSkinHint.dox deleted file mode 100644 index 234a0c81..00000000 --- a/doc/classes/QskSkinHint.dox +++ /dev/null @@ -1,6 +0,0 @@ -/*! \struct QskSkinHint - This struct acts as a union between option types used by the framework. - Skin hints are attributes of a given control which affect the visual - representation of the control. They can also be animated using - QskSkinHintAnimator. - */ diff --git a/doc/classes/QskSkinHintTable.metadox b/doc/classes/QskSkinHintTable.metadox new file mode 100644 index 00000000..d2bc9dd7 --- /dev/null +++ b/doc/classes/QskSkinHintTable.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskSkinHintTable + + HEADER: QskSkinHintTable.h + + DESCRIPTION + \brief QskSkinHintTable + END +END diff --git a/doc/classes/QskSkinManager.metadox b/doc/classes/QskSkinManager.metadox new file mode 100644 index 00000000..3b077245 --- /dev/null +++ b/doc/classes/QskSkinManager.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSkinManager + BASE: QObject + + HEADER: QskSkinManager.h + + DESCRIPTION + \brief QskSkinManager + END +END diff --git a/doc/classes/QskSkinTransition.metadox b/doc/classes/QskSkinTransition.metadox new file mode 100644 index 00000000..589da732 --- /dev/null +++ b/doc/classes/QskSkinTransition.metadox @@ -0,0 +1,9 @@ +INTERFACE + CLASS: QskSkinTransition + + HEADER: QskSkinTransition.h + + DESCRIPTION + \brief QskSkinTransition + END +END diff --git a/doc/classes/QskSkinlet.dox b/doc/classes/QskSkinlet.dox deleted file mode 100644 index 8ff85688..00000000 --- a/doc/classes/QskSkinlet.dox +++ /dev/null @@ -1,27 +0,0 @@ -/*! - \headerfile QskSkinlet.h - - \brief Describes the rendering interface of a QskControl. Change the - skinlet to change the appearance of the control using the low-level scene - graph API. - - \sa QskControl::setSkinlet() - \sa QskSkin - \sa setMetric() - \sa setColor() - */ - -class QskSkinlet -{ -/*! - \fn QSGNode* findNode( QSGNode *parent, quint8 nodeRole ) - - A convenience method for finding the first top level child node - with the given nodeRole. - - \param parent Parent node - \param nodeRole Unique identifier - - \return the node, if found, or nullptr if not found. -*/ -}; diff --git a/doc/classes/QskSkinlet.metadox b/doc/classes/QskSkinlet.metadox new file mode 100644 index 00000000..a2e7e8b5 --- /dev/null +++ b/doc/classes/QskSkinlet.metadox @@ -0,0 +1,16 @@ +INTERFACE + CLASS: QskSkinlet + + HEADER: QskSkinlet.h + + DESCRIPTION + \brief Describes the rendering interface of a QskControl. Change the + skinlet to change the appearance of the control using the low-level scene + graph API. + + \sa QskControl::setSkinlet() + \sa QskSkin + \sa setMetric() + \sa setColor() + END +END diff --git a/doc/classes/QskSkinnable.dox b/doc/classes/QskSkinnable.metadox similarity index 85% rename from doc/classes/QskSkinnable.dox rename to doc/classes/QskSkinnable.metadox index c6bd57f0..d90ee6bc 100644 --- a/doc/classes/QskSkinnable.dox +++ b/doc/classes/QskSkinnable.metadox @@ -1,3 +1,13 @@ +INTERFACE + CLASS: QskSkinnable + + HEADER: QskSkinnable.h + + DESCRIPTION + \brief QskSkinnable + END +END + /*! \fn void QskSkinnable::markDirty( QskAspect::Aspect aspect ) diff --git a/doc/classes/QskSliderSkinlet.dox b/doc/classes/QskSliderSkinlet.dox deleted file mode 100644 index 23a93fb7..00000000 --- a/doc/classes/QskSliderSkinlet.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskSliderSkinlet.h - \brief Base class of all skinlets for QskSlider - */ - -class QskSliderSkinlet -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskSliderSkinlet.metadox b/doc/classes/QskSliderSkinlet.metadox new file mode 100644 index 00000000..441b576d --- /dev/null +++ b/doc/classes/QskSliderSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSliderSkinlet + BASE: QskSkinlet + + HEADER: QskSliderSkinlet.h + + DESCRIPTION + \brief QskSliderSkinlet + END +END diff --git a/doc/classes/QskStackBoxAnimation.dox b/doc/classes/QskStackBoxAnimation.dox deleted file mode 100644 index e69de29b..00000000 diff --git a/doc/classes/QskStandardIcons.dox b/doc/classes/QskStandardIcons.dox deleted file mode 100644 index 24ae11fc..00000000 --- a/doc/classes/QskStandardIcons.dox +++ /dev/null @@ -1,6 +0,0 @@ -/*! \namespace QskStandardIcons - - \brief A image provider for standard dialog icons - - \note Will be replaced by a QskGraphicProvider - */ diff --git a/doc/classes/QskStandardSymbol.metadox b/doc/classes/QskStandardSymbol.metadox new file mode 100644 index 00000000..fb281937 --- /dev/null +++ b/doc/classes/QskStandardSymbol.metadox @@ -0,0 +1,8 @@ +INTERFACE + CLASS: QskStandardSymbol + HEADER: QskStandardSymbol.h + + DESCRIPTION + \brief QskStandardSymbol + END +END diff --git a/doc/classes/QskStatusIndicator.metadox b/doc/classes/QskStatusIndicator.metadox new file mode 100644 index 00000000..f4848c3e --- /dev/null +++ b/doc/classes/QskStatusIndicator.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskStatusIndicator + BASE: QskControl + + QMLCLASS: StatusIndicator + QMLBASE: Control + + HEADER: QskStatusIndicator.h + + DESCRIPTION + \brief QskStatusIndicator + END +END diff --git a/doc/classes/QskStatusIndicatorSkinlet.metadox b/doc/classes/QskStatusIndicatorSkinlet.metadox new file mode 100644 index 00000000..59bc7b6e --- /dev/null +++ b/doc/classes/QskStatusIndicatorSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskStatusIndicatorSkinlet + BASE: QskSkinlet + + HEADER: QskStatusIndicatorSkinlet.h + + DESCRIPTION + \brief QskStatusIndicatorSkinlet + END +END diff --git a/doc/classes/QskSubWindow.metadox b/doc/classes/QskSubWindow.metadox new file mode 100644 index 00000000..be4e6e71 --- /dev/null +++ b/doc/classes/QskSubWindow.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskSubWindow + BASE: QskPopup + + QMLCLASS: SubWindow + QMLBASE: Popup + + HEADER: QskSubWindow.h + + DESCRIPTION + \brief QskSubWindow + END +END diff --git a/doc/classes/QskSubWindowArea.metadox b/doc/classes/QskSubWindowArea.metadox new file mode 100644 index 00000000..53a24c8e --- /dev/null +++ b/doc/classes/QskSubWindowArea.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskSubWindowArea + BASE: QskControl + + QMLCLASS: QskSubWindowArea + QMLBASE: QskControl + + HEADER: QskSubWindowArea.h + + DESCRIPTION + \brief QskSubWindowArea + END +END diff --git a/doc/classes/QskSubWindowAreaSkinlet.metadox b/doc/classes/QskSubWindowAreaSkinlet.metadox new file mode 100644 index 00000000..56de8e07 --- /dev/null +++ b/doc/classes/QskSubWindowAreaSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSubWindowAreaSkinlet + BASE: QskSkinlet + + HEADER: QskSubWindowAreaSkinlet.h + + DESCRIPTION + \brief QskSubWindowAreaSkinlet + END +END diff --git a/doc/classes/QskSubWindowSkinlet.metadox b/doc/classes/QskSubWindowSkinlet.metadox new file mode 100644 index 00000000..5b19597a --- /dev/null +++ b/doc/classes/QskSubWindowSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskSubWindowSkinlet + BASE: QskSkinlet + + HEADER: QskSubWindowSkinlet.h + + DESCRIPTION + \brief QskSubWindowSkinlet + END +END diff --git a/doc/classes/QskSymbolMaterial.dox b/doc/classes/QskSymbolMaterial.dox deleted file mode 100644 index 8b2ee085..00000000 --- a/doc/classes/QskSymbolMaterial.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskSymbolMaterial.h -*/ - -class QskSymbolMaterial -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskTabButtonSkinlet.dox b/doc/classes/QskTabButtonSkinlet.dox deleted file mode 100644 index 73e431ad..00000000 --- a/doc/classes/QskTabButtonSkinlet.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskTabButtonSkinlet.h - \brief Base class of all skinlets for QskTabButton - */ - -class QskTabButtonSkinlet -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskTabButtonSkinlet.metadox b/doc/classes/QskTabButtonSkinlet.metadox new file mode 100644 index 00000000..439bbac9 --- /dev/null +++ b/doc/classes/QskTabButtonSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTabButtonSkinlet + BASE: QskSkinlet + + HEADER: QskTabButtonSkinlet.h + + DESCRIPTION + \brief QskTabButtonSkinlet + END +END diff --git a/doc/classes/QskTabViewSkinlet.metadox b/doc/classes/QskTabViewSkinlet.metadox new file mode 100644 index 00000000..fcec0d66 --- /dev/null +++ b/doc/classes/QskTabViewSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTabViewSkinlet + BASE: QskSkinlet + + HEADER: QskTabViewSkinlet.h + + DESCRIPTION + \brief QskTabViewSkinlet + END +END diff --git a/doc/classes/QskTextColors.metadox b/doc/classes/QskTextColors.metadox new file mode 100644 index 00000000..963d3263 --- /dev/null +++ b/doc/classes/QskTextColors.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextColors + QMLCLASS: TextColors + + HEADER: QskTextColors.h + + DESCRIPTION + \brief QskTextColors + END +END diff --git a/doc/classes/QskTextInput.metadox b/doc/classes/QskTextInput.metadox new file mode 100644 index 00000000..e5f46fd1 --- /dev/null +++ b/doc/classes/QskTextInput.metadox @@ -0,0 +1,13 @@ +INTERFACE + CLASS: QskTextInput + BASE: QskControl + + QMLCLASS: QskTextInput + QMLBASE: Control + + HEADER: QskTextInput.h + + DESCRIPTION + \brief QskTextInput + END +END diff --git a/doc/classes/QskTextInputSkinlet.metadox b/doc/classes/QskTextInputSkinlet.metadox new file mode 100644 index 00000000..a422dff7 --- /dev/null +++ b/doc/classes/QskTextInputSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextInputSkinlet + BASE: QskSkinlet + + HEADER: QskTextInputSkinlet.h + + DESCRIPTION + \brief QskTextInputSkinlet + END +END diff --git a/doc/classes/QskTextLabelSkinlet.dox b/doc/classes/QskTextLabelSkinlet.dox deleted file mode 100644 index c8f8264d..00000000 --- a/doc/classes/QskTextLabelSkinlet.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskTextLabelSkinlet.h - \brief Base class of all skinlets for QskTextLabel - */ - -class QskTextLabelSkinlet -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskTextLabelSkinlet.metadox b/doc/classes/QskTextLabelSkinlet.metadox new file mode 100644 index 00000000..e8104e97 --- /dev/null +++ b/doc/classes/QskTextLabelSkinlet.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextLabelSkinlet + BASE: QskSkinlet + + HEADER: QskTextLabelSkinlet.h + + DESCRIPTION + \brief QskTextLabelSkinlet + END +END diff --git a/doc/classes/QskTextNode.metadox b/doc/classes/QskTextNode.metadox new file mode 100644 index 00000000..0c46e1b9 --- /dev/null +++ b/doc/classes/QskTextNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextNode + BASE: QSGTransformNode + + HEADER: QskTextNode.h + + DESCRIPTION + \brief QskTextNode + END +END diff --git a/doc/classes/QskTextOptions.dox b/doc/classes/QskTextOptions.dox deleted file mode 100644 index 4785087e..00000000 --- a/doc/classes/QskTextOptions.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskTextOptions.h - \brief Text attributes that can be set from QML - */ - -class QskTextOptions -{ -/*! - -*/ -}; diff --git a/doc/classes/QskTextOptions.metadox b/doc/classes/QskTextOptions.metadox new file mode 100644 index 00000000..50241c50 --- /dev/null +++ b/doc/classes/QskTextOptions.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextOptions + QMLCLASS: TextOptions + + HEADER: QskTextOptions.h + + DESCRIPTION + \brief Text attributes that can be set from QML + END +END diff --git a/doc/classes/QskTextRenderer.dox b/doc/classes/QskTextRenderer.dox deleted file mode 100644 index cd246997..00000000 --- a/doc/classes/QskTextRenderer.dox +++ /dev/null @@ -1,15 +0,0 @@ -/*! - \headerfile QskTextRenderer.h - \brief A renderer creating a scene graph subtree from a text - - \note The current implementation relies on QQuickText item - using one global instance for the application. - */ - -class QskTextRenderer -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskTextureNode.dox b/doc/classes/QskTextureNode.dox deleted file mode 100644 index 0c7afee2..00000000 --- a/doc/classes/QskTextureNode.dox +++ /dev/null @@ -1,11 +0,0 @@ -/*! - \headerfile QskTextureNode.h - \brief QSGSimpleTextureNode under control of a QSGTransformNode - */ - -class QskTextureNode -{ -/*! - -*/ -}; diff --git a/doc/classes/QskTextureNode.metadox b/doc/classes/QskTextureNode.metadox new file mode 100644 index 00000000..df24bf9a --- /dev/null +++ b/doc/classes/QskTextureNode.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskTextureNode + BASE: QSGGeometryNode + + HEADER: QskTextureNode.h + + DESCRIPTION + \brief QskTextureNode + END +END diff --git a/doc/classes/QskTextureRenderer.dox b/doc/classes/QskTextureRenderer.dox deleted file mode 100644 index 07bf5b9b..00000000 --- a/doc/classes/QskTextureRenderer.dox +++ /dev/null @@ -1,13 +0,0 @@ -/*! - \headerfile QskTextureRenderer.h - \brief A renderer creating a QSGSimpleTextureNode from a QskGraphic - \sa QskGraphicTextureFactory::createTexture() - */ - -class QskTextureRenderer -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskVariantAnimator.metadox b/doc/classes/QskVariantAnimator.metadox new file mode 100644 index 00000000..738d1b60 --- /dev/null +++ b/doc/classes/QskVariantAnimator.metadox @@ -0,0 +1,10 @@ +INTERFACE + CLASS: QskVariantAnimator + BASE: QskAnimator + + HEADER: QskVariantAnimator.h + + DESCRIPTION + \brief QskVariantAnimator + END +END diff --git a/doc/classes/QskVertexColor.dox b/doc/classes/QskVertexColor.dox deleted file mode 100644 index dd61b885..00000000 --- a/doc/classes/QskVertexColor.dox +++ /dev/null @@ -1,9 +0,0 @@ -/*! \class QskVertexColor - - \brief An RGBA color that can be used for vertex lists of QSGGeometryNode - */ - -/*! \class QskVertexColorMap - - \brief An color map interpolating between QskVertexColor colors. - */ diff --git a/doc/classes/QskVertexPen.dox b/doc/classes/QskVertexPen.dox deleted file mode 100644 index e69de29b..00000000 diff --git a/doc/classes/QskVertexRenderer.dox b/doc/classes/QskVertexRenderer.dox deleted file mode 100644 index 28236fa9..00000000 --- a/doc/classes/QskVertexRenderer.dox +++ /dev/null @@ -1,12 +0,0 @@ -/*! - \headerfile QskVertexRenderer.h - \brief A vertex renderer for creating vertex lists for monochrome shapes - */ - -class QskVertexRenderer -{ -/*! - -*/ -}; - diff --git a/doc/classes/QskVertexRendererColored.dox b/doc/classes/QskVertexRendererColored.dox deleted file mode 100644 index c1a42cc7..00000000 --- a/doc/classes/QskVertexRendererColored.dox +++ /dev/null @@ -1,5 +0,0 @@ -/*! \class QskVertexRendererColored - - \brief A vertex renderer for creating vertex lists for multicolored shapes - */ - diff --git a/doc/qskmodules.dox b/doc/qskmodules.dox index 95fa3042..87f26d6e 100644 --- a/doc/qskmodules.dox +++ b/doc/qskmodules.dox @@ -1,131 +1,124 @@ /*! - \defgroup Classes C++ Classes + \defgroup Core Core \{ - \defgroup Controls Controls - \{ - \class QskSetup - \class QskControl - \class QskAbstractButton - \class QskRangeControl - \class QskPushButton - \class QskFocusIndicator - \class QskFrame - \class QskGraphicLabel - \class QskImage - \class QskRectangle - \class QskResizable - \class QskScrollView - \class QskListView - \class QskSeparator - \class QskSimpleListBox - \class QskSlider - \class QskTabBar - \class QskTabButton - \class QskTabView - \class QskTextLabel - \class QskWindow - \class QskDialogButtonBox - \class QskDialog - \class QskMessageBox - \class QskStandardIcons - \} + \namespace QskNamespace - \defgroup Layouts - \{ - \class QskLayout - \class QskGridBox - \class QskIndexedLayoutBox - \class QskLayoutEngine - \class QskLayoutItem - \class QskStackLayoutAnimation - \class QskStackBox - \class QskLinearBox - \} - - \defgroup Graphic - \{ - \class QskGraphic - \class QskGraphicImageProvider - \class QskGraphicPaintEngine - \class QskGraphicPaintFilter - \class QskGraphicProvider - \class QskGraphicTextureFactory - \class QskPainterCommand - - \namespace QskGraphicIO - \} - - \defgroup Skins - \{ - \namespace QskAspect - \struct QskSkinHint - \class QskSkin - \class QskSkinnable - \class QskSkinlet - \class QskPushButtonSkinlet - \class QskFocusIndicatorSkinlet - \class QskFrameSkinlet - \class QskGraphicLabelSkinlet - \class QskSliderSkinlet - \class QskTabButtonSkinlet - \class QskTextLabelSkinlet - \} - - \defgroup Nodes - \{ - \class QskArcIterator - \class QskClipNode - \class QskFrameNode - \class QskGeometry - \class QskPlainTextRenderer - \class QskRectNode - \class QskSymbolMaterial - \class QskTextRenderer - \class QskTextureNode - \class QskTextureRenderer - \class QskVertexColor - \class QskVertexPen - \class QskVertexRendererColored - \class QskVertexRenderer - \} + \class QskColorFilter + \class QskGraphic + \class QskGraphicImageProvider + \class QskGraphicIO + \class QskGraphicProvider + \class QskGraphicProviderMap + \class QskGraphicTextureFactory + \class QskGradient + \class QskMargins + \class QskObjectCounter + \class QskSetup + \class QskSkinManager + \class QskVariantAnimator + \class QskAnimator + \class QskHintAnimator + \class QskFlickAnimator + \class QskQuickItem + \class QskControl + \class QskShortcutMap + \class QskSizePolicy + \class QskGesture + \class QskGestureRecognizer + \class QskPanGestureRecognizer + \class QskSkinHintTable + \class QskSkinlet + \class QskAnimationHint + \class QskAspect + \class QskSkinFactory + \class QskSkin + \class QskSkinnable + \class QskSkinTransition + \class QskWindow + \class QskBoxShapeMetrics + \class QskBoxBorderColors + \class QskBoxBorderMetrics + \class QskTextColors + \class QskTextOptions \} - \defgroup QMLTypes QML Types + \defgroup Controls Controls \{ - \defgroup QMLControls Controls - \{ - \class Control - - \class AbstractButton - \class RangeControl - \class PushButton - \class FocusIndicator - \class Frame - \class GraphicLabel - \class Image - \class ListView - \class Rectangle - \class SimpleListBox - \class ScrollView - \class Separator - \class Slider - \class TabBar - \class TabButton - \class TabView - \class TextLabel - \class Window - \class DialogButtonBox - \class Dialog - \class MessageBox - \} - - \defgroup QMLLayouts Layouts - \{ - \class Layout - \class GridBox - \class IndexedLayoutBox - \class StackBox - \class LinearBox - \} + \class QskAbstractButton + \class QskBox + \class QskFocusIndicator + \class QskGraphicLabel + \class QskListView + \class QskPageIndicator + \class QskPopup + \class QskPushButton + \class QskRangeControl + \class QskScrollArea + \class QskScrollView + \class QskSlider + \class QskStatusIndicator + \class QskSubWindowArea + \class QskSubWindow + \class QskTabBar + \class QskTabButton + \class QskTabView + \class QskTextInput + \class QskTextLabel \} + + \defgroup Layouts + \{ + \class QskGridBox + \class QskIndexedLayoutBox + \class QskLinearBox + \class QskStackBox + \} + + \defgroup Dialogs + \{ + \class QskDialogButtonBox + \class QskDialogButton + \class QskDialog + \class QskDialogSubWindow + \class QskDialogWindow + \class QskMessageSubWindow + \class QskMessageWindow + \class QskSelectionSubWindow + \class QskSelectionWindow + \class QskSeparator + \class QskSimpleListBox + \} + + \defgroup Skins + \{ + \class QskBoxSkinlet + \class QskFocusIndicatorSkinlet + \class QskGraphicLabelSkinlet + \class QskListViewSkinlet + \class QskPageIndicatorSkinlet + \class QskPopupSkinlet + \class QskPushButtonSkinlet + \class QskScrollViewSkinlet + \class QskSeparatorSkinlet + \class QskSliderSkinlet + \class QskStatusIndicatorSkinlet + \class QskSubWindowAreaSkinlet + \class QskSubWindowSkinlet + \class QskTabButtonSkinlet + \class QskTabViewSkinlet + \class QskTextInputSkinlet + \class QskTextLabelSkinlet + \class QskStandardSymbol + \} + + \defgroup Nodes + \{ + \class QskBoxClipNode + \class QskBoxNode + \class QskGraphicNode + \class QskPaintedNode + \class QskTextNode + \class QskTextureNode + \} + */