diff --git a/docs/Doxyfile b/docs/Doxyfile index 0a32dcf9..11ae5a13 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = ThorVG # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = v0.10 +PROJECT_NUMBER = v0.11 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -864,8 +864,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ../inc \ - ./main-page.md +INPUT = ../inc # 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 @@ -1283,7 +1282,7 @@ HTML_STYLESHEET = # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css +HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1304,7 +1303,7 @@ HTML_EXTRA_FILES = # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_HUE = 220 +HTML_COLORSTYLE_HUE = 154 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A @@ -1312,7 +1311,7 @@ HTML_COLORSTYLE_HUE = 220 # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_SAT = 100 +HTML_COLORSTYLE_SAT = 0 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 @@ -1323,7 +1322,7 @@ HTML_COLORSTYLE_SAT = 100 # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_COLORSTYLE_GAMMA = 80 +HTML_COLORSTYLE_GAMMA = 173 # 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 @@ -1582,7 +1581,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. diff --git a/docs/doxygen-awesome-css b/docs/doxygen-awesome-css deleted file mode 160000 index 00a52f6c..00000000 --- a/docs/doxygen-awesome-css +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 00a52f6c74065ffbd836cbd791ddfe8edf2836b8 diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 4cf5234d..e73db38a 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -27,7 +27,7 @@
free
argument, the paints are freed or not. More...Sets the total number of the paints pushed into the canvas to be zero. Depending on the value of the free
argument, the paints are freed or not.
Clear the internal canvas resources that used for the drawing.
+This API sets the total number of paints pushed into the canvas to zero. Depending on the value of the free
argument, the paints are either freed or retained. So if you need to update paint properties while maintaining the existing scene structure, you can set free
= false.
[in] | free | If true , the memory occupied by paints is deallocated, otherwise it is not. |
[in] | paint | A Paint object to be drawn. | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Fill.html b/docs/html/classtvg_1_1Fill.html
index ec6ccce2..d2e16aee 100644
--- a/docs/html/classtvg_1_1Fill.html
+++ b/docs/html/classtvg_1_1Fill.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1GlCanvas-members.html b/docs/html/classtvg_1_1GlCanvas-members.html
index da93c796..72273ea9 100644
--- a/docs/html/classtvg_1_1GlCanvas-members.html
+++ b/docs/html/classtvg_1_1GlCanvas-members.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1GlCanvas.html b/docs/html/classtvg_1_1GlCanvas.html
index f6dc29a7..d232d307 100644
--- a/docs/html/classtvg_1_1GlCanvas.html
+++ b/docs/html/classtvg_1_1GlCanvas.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -103,15 +103,6 @@ Inheritance diagram for GlCanvas:
Public Member Functions | |||||||||||||
Passes drawing elements to the Canvas using Paint objects. More... | |||||||||||||
virtual Result | clear (bool free=true) noexcept | ||||||||||||
Sets the total number of the paints pushed into the canvas to be zero. Depending on the value of the free argument, the paints are freed or not. More... | |||||||||||||
Clear the internal canvas resources that used for the drawing. More... | |||||||||||||
virtual Result | update (Paint *paint=nullptr) noexcept | ||||||||||||
Request the canvas to update the paint objects. More... | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Initializer.html b/docs/html/classtvg_1_1Initializer.html
index 5415003e..5b0b1fb6 100644
--- a/docs/html/classtvg_1_1Initializer.html
+++ b/docs/html/classtvg_1_1Initializer.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1LinearGradient-members.html b/docs/html/classtvg_1_1LinearGradient-members.html
index 7765d8a6..cf0c9aeb 100644
--- a/docs/html/classtvg_1_1LinearGradient-members.html
+++ b/docs/html/classtvg_1_1LinearGradient-members.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1LinearGradient.html b/docs/html/classtvg_1_1LinearGradient.html
index 0e9d14e2..674ebaab 100644
--- a/docs/html/classtvg_1_1LinearGradient.html
+++ b/docs/html/classtvg_1_1LinearGradient.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -103,15 +103,6 @@ Inheritance diagram for LinearGradient:
Public Member Functions | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Paint.html b/docs/html/classtvg_1_1Paint.html
index 54a4d638..45cddd7e 100644
--- a/docs/html/classtvg_1_1Paint.html
+++ b/docs/html/classtvg_1_1Paint.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Picture-members.html b/docs/html/classtvg_1_1Picture-members.html
index eb2d12cc..11452044 100644
--- a/docs/html/classtvg_1_1Picture-members.html
+++ b/docs/html/classtvg_1_1Picture-members.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -96,26 +96,25 @@ $(document).ready(function(){initNavTree('classtvg_1_1Picture.html',''); initRes
bounds(float *x, float *y, float *w, float *h, bool transformed) const noexcept | Paint | |
composite(std::unique_ptr< Paint > target, CompositeMethod method) noexcept | Paint | |
composite(const Paint **target) const noexcept | Paint | |
data(uint32_t *w, uint32_t *h) const noexcept | Picture | |
duplicate() const noexcept | Paint | |
gen() noexcept | Picture | static |
identifier() noexcept | Picture | static |
tvg::Paint::identifier() const noexcept | Paint | |
load(const std::string &path) noexcept | Picture | |
load(const char *data, uint32_t size, bool copy=false) noexcept | Picture | |
load(const char *data, uint32_t size, const std::string &mimeType, bool copy=false) noexcept | Picture | |
load(uint32_t *data, uint32_t w, uint32_t h, bool copy) noexcept | Picture | |
mesh(const Polygon *triangles, uint32_t triangleCnt) noexcept | Picture | |
mesh(const Polygon **triangles) const noexcept | Picture | |
opacity(uint8_t o) noexcept | Paint | |
opacity() const noexcept | Paint | |
rotate(float degree) noexcept | Paint | |
scale(float factor) noexcept | Paint | |
size(float w, float h) noexcept | Picture | |
size(float *w, float *h) const noexcept | Picture | |
transform(const Matrix &m) noexcept | Paint | |
transform() noexcept | Paint | |
translate(float x, float y) noexcept | Paint | |
duplicate() const noexcept | Paint | |
gen() noexcept | Picture | static |
identifier() noexcept | Picture | static |
tvg::Paint::identifier() const noexcept | Paint | |
load(const std::string &path) noexcept | Picture | |
load(const char *data, uint32_t size, bool copy=false) noexcept | Picture | |
load(const char *data, uint32_t size, const std::string &mimeType, bool copy=false) noexcept | Picture | |
load(uint32_t *data, uint32_t w, uint32_t h, bool copy) noexcept | Picture | |
mesh(const Polygon *triangles, uint32_t triangleCnt) noexcept | Picture | |
mesh(const Polygon **triangles) const noexcept | Picture | |
opacity(uint8_t o) noexcept | Paint | |
opacity() const noexcept | Paint | |
rotate(float degree) noexcept | Paint | |
scale(float factor) noexcept | Paint | |
size(float w, float h) noexcept | Picture | |
size(float *w, float *h) const noexcept | Picture | |
transform(const Matrix &m) noexcept | Paint | |
transform() noexcept | Paint | |
translate(float x, float y) noexcept | Paint |
Public Member Functions | |||||||||||||
Result | load (const std::string &path) noexcept | ||||||||||||
Loads a picture data directly from a file. More... | |||||||||||||
TVG_DEPRECATED Result | load (const char *data, uint32_t size, bool copy=false) noexcept | ||||||||||||
TVG_DEPRECATED Result | load (const char *data, uint32_t size, bool copy=false) noexcept | ||||||||||||
Loads a picture data from a memory block of a given size. More... | |||||||||||||
Result | load (const char *data, uint32_t size, const std::string &mimeType, bool copy=false) noexcept | ||||||||||||
Result | load (const char *data, uint32_t size, const std::string &mimeType, bool copy=false) noexcept | ||||||||||||
Loads a picture data from a memory block of a given size. More... | |||||||||||||
Result | size (float w, float h) noexcept | ||||||||||||
Result | size (float *w, float *h) const noexcept | ||||||||||||
Gets the size of the image. More... | |||||||||||||
const uint32_t * | data (uint32_t *w, uint32_t *h) const noexcept | ||||||||||||
Gets the pixels information of the picture. More... | |||||||||||||
Result | load (uint32_t *data, uint32_t w, uint32_t h, bool copy) noexcept | ||||||||||||
Result | load (uint32_t *data, uint32_t w, uint32_t h, bool copy) noexcept | ||||||||||||
Loads a raw data from a memory block with a given size. More... | |||||||||||||
Result | mesh (const Polygon *triangles, uint32_t triangleCnt) noexcept |
-
|
- -noexcept | -
Gets the pixels information of the picture.
-@BETA_API
- -data
memory if the copy
is true data
. true
the data are copied into the engine local buffer, otherwise they are not.data
memory if the copy
is true
.""
, and thorvg will attempt to figure it out. Public Member Functions | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Saver.html b/docs/html/classtvg_1_1Saver.html
index 9ff0ddcf..66a675e2 100644
--- a/docs/html/classtvg_1_1Saver.html
+++ b/docs/html/classtvg_1_1Saver.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Scene-members.html b/docs/html/classtvg_1_1Scene-members.html
index d20c5b4b..694e7165 100644
--- a/docs/html/classtvg_1_1Scene-members.html
+++ b/docs/html/classtvg_1_1Scene-members.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Scene.html b/docs/html/classtvg_1_1Scene.html
index 09f37708..e8c840ce 100644
--- a/docs/html/classtvg_1_1Scene.html
+++ b/docs/html/classtvg_1_1Scene.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -103,15 +103,6 @@ Inheritance diagram for Scene:
Public Member Functions | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1Shape.html b/docs/html/classtvg_1_1Shape.html
index b8eb6132..f3ba4547 100644
--- a/docs/html/classtvg_1_1Shape.html
+++ b/docs/html/classtvg_1_1Shape.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -103,15 +103,6 @@ Inheritance diagram for Shape:
Public Member Functions | ![]() |
ThorVG
- v0.10
+ v0.11
|
diff --git a/docs/html/classtvg_1_1SwCanvas.html b/docs/html/classtvg_1_1SwCanvas.html
index d07cf596..365d341a 100644
--- a/docs/html/classtvg_1_1SwCanvas.html
+++ b/docs/html/classtvg_1_1SwCanvas.html
@@ -27,7 +27,7 @@
![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -104,15 +104,6 @@ Inheritance diagram for SwCanvas:
Public Types | |
Passes drawing elements to the Canvas using Paint objects. More... | |
virtual Result | clear (bool free=true) noexcept |
Sets the total number of the paints pushed into the canvas to be zero. Depending on the value of the free argument, the paints are freed or not. More... | |
Clear the internal canvas resources that used for the drawing. More... | |
virtual Result | update (Paint *paint=nullptr) noexcept |
Request the canvas to update the paint objects. More... | ![]() |
ThorVG
- v0.10
+ v0.11
|
@@ -92,9 +92,6 @@ $(document).ready(function(){initNavTree('dir_bfccd401955b95cf8c75461437045ac0.h
Files
file | thorvg.h [code] |
file | thorvg_capi.h [code] |
The module provides C bindings for the ThorVG library. Please refer to src/examples/Capi.cpp to find the thorvg_capi usage examples. | |
ThorVG | ThorVG classes and enumerations providing C++ APIs |
▼ThorVG_CAPI | ThorVG C language binding APIs |
Initializer | A module enabling initialization and termination of the TVG engines |
▼Canvas | A module for managing and drawing graphical elements |
SwCanvas | A module for rendering the graphical elements using the software engine |
Paint | A module for managing graphical elements. It enables duplication, transformation and composition |
Shape | A module for managing two-dimensional figures and their properties |
Gradient | A module managing the gradient fill of objects |
Picture | A module enabling to create and to load an image in one of the supported formats: svg, png, jpg and raw |
Scene | A module managing the multiple paints as one group paint |
Saver | A module for exporting a paint object into a specified file |
![]() |
-
- ThorVG
- v0.10
-
- |
-
This is the complete list of members for Tvg_Color_Stop, including all inherited members.
-a | Tvg_Color_Stop | |
b | Tvg_Color_Stop | |
g | Tvg_Color_Stop | |
offset | Tvg_Color_Stop | |
r | Tvg_Color_Stop |
![]() |
-
- ThorVG
- v0.10
-
- |
-
A data structure storing the information about the color and its relative position inside the gradient bounds. - More...
--Public Attributes | |
float | offset |
uint8_t | r |
uint8_t | g |
uint8_t | b |
uint8_t | a |
A data structure storing the information about the color and its relative position inside the gradient bounds.
-uint8_t a | -
The alpha channel value in the range [0 ~ 255], where 0 is completely transparent and 255 is opaque.
- -uint8_t b | -
The blue color channel value in the range [0 ~ 255].
- -uint8_t g | -
The green color channel value in the range [0 ~ 255].
- -float offset | -
The relative position of the color.
- -uint8_t r | -
The red color channel value in the range [0 ~ 255].
- -![]() |
-
- ThorVG
- v0.10
-
- |
-
This is the complete list of members for Tvg_Matrix, including all inherited members.
-![]() |
-
- ThorVG
- v0.10
-
- |
-
A data structure representing a three-dimensional matrix. - More...
-A data structure representing a three-dimensional matrix.
-The elements e11, e12, e21 and e22 represent the rotation matrix, including the scaling factor. The elements e13 and e23 determine the translation of the object along the x and y-axis, respectively. The elements e31 and e32 are set to 0, e33 is set to 1.
-![]() |
-
- ThorVG
- v0.10
-
- |
-
This is the complete list of members for Tvg_Point, including all inherited members.
-![]() |
-
- ThorVG
- v0.10
-
- |
-
A data structure representing a point in two-dimensional space. - More...
-A data structure representing a point in two-dimensional space.
-A data structure representing a triange in a texture mesh. More...
-A data structure representing a triange in a texture mesh.
A data structure representing a texture mesh vertex. More...
-A data structure representing a texture mesh vertex.
![]() |
-
- ThorVG
- v0.10
-
- |
-
-
-
type in .content */
+code {
+ font-family: 'Source Code Pro', monospace, fixed !important;
+ color: #37474f;
+}
+
+/* sample code background color */
+div.fragment {
+ padding: 10px 16px; /*Fixed: last line underline overlap border*/
+ margin: 4px 40px 4px 20px;
+ background-color: #fdfdfd;
+ border: 1px solid #959595;
+ border-radius: 4px;
+}
+
+/* sample code text */
+div.line {
+ font-family: 'Source Code Pro', monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.8em;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line:after {
+ content:"\000A";
+ white-space: pre;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+.lineno {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+div.ah, span.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #FFFFFF;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+ list-style: none;
+ padding-left: 0;
+}
+
+div.classindex span.ai {
+ display: inline-block;
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #D8D8D8;
+ font-weight: bold;
+ border: 1px solid #959595;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #D8D8D8;
+ border: 1px solid #959595;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #DCDCDC;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl, img.inline {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+/* sample code comment */
+span.comment {
+ color: #aa1f91
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #EEEEEE;
+ border-left: 2px solid #606060;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+blockquote.DocNodeRTL {
+ border-left: 0;
+ border-right: 2px solid #606060;
+ margin: 0 4px 0 24px;
+ padding: 0 16px 0 12px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #686868;
+}
+
+th.dirtab {
+ background: #D8D8D8;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #1C1C1C;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+/* memItem background color */
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #f9f9f9;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+/* Classes text */
+.memItemLeft, .memItemRight,
+/* functions text */
+.memTemplItemLeft, .memTemplItemRight {
+ font: 300 14px/18px 'Source Code Pro',sans-serif;
+}
+
+/* Classes text link */
+.memItemLeft a, .memItemLeft a:visited {
+ font: 300 14px/18px 'Source Code Pro',sans-serif;
+ color: #185abc;
+}
+
+.memItemRight a, .memItemRight a:visited,
+.memTemplItemRight a, .memTemplItemRight a:visited {
+ font: 300 14px/18px 'Source Code Pro',sans-serif;
+ color: #185abc;
+ font-weight: bold;
+}
+
+.mdescRight .el {
+ font: 300 14px/18px 'Source Code Pro',sans-serif;
+ color: #185abc;
+}
+
+.memdoc .el {
+ font: 300 14px/18px 'Source Code Pro',sans-serif;
+ color: #185abc !important;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #BEBEBE;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight, .memTemplItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #181818;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+ padding: 8px;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ margin-bottom: -1px;
+ background-color: #FFFFFF;
+ line-height: 1.25;
+ font-weight: 300;
+ float:left;
+}
+
+h2.memtitle {
+ font-size: 18px;
+ font-weight: bold;
+}
+
+.permalink
+{
+ font-size: 65%;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.memtemplate {
+ font-size: 80%;
+ color: #181818;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #D8D8D8;
+ border: 1px solid #686868;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: 400;
+ margin-left: 6px;
+ font-family: 'Source Code Pro' !important;
+}
+
+.memname a, .memname a:visited {
+ color: #185abc;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ padding: 6px 0px;
+ color: #030303;
+ font-weight: bold;
+ background-color: #f9f9f9;
+}
+
+/* mem title overload text */
+.overload {
+ font-family: 'Source Code Pro',"courier new",courier,monospace;
+ font-size: 12px;
+ font-weight: normal;
+}
+
+/* border, shadow, background in memdoc area */
+.memdoc, dl.reflist dd {
+ padding: 6px 10px 2px 10px;
+ background-color: #FFFFFF;
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+/* parameter text color */
+.paramname {
+ color: #37474f;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype, .tparams .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+/* parameter type text */
+.params .paramdir, .tparams .paramdir {
+ font-family: 'Source Code Pro',"courier new",courier,monospace;
+ font-size: 12px;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-left .memname {
+ font: 300 14px/18px 'Source Code Pro',sans-serif !important;
+}
+
+td.mlabels-left .memname a {
+ color: #185abc;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #383838;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #606060;
+ border-bottom: 1px solid #606060;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #EEEEEE;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #0F0F0F;
+}
+
+.arrow {
+ color: #606060;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #383838;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 16px;
+ margin-bottom: 4px;
+ background-image:url('folderopen.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 16px;
+ margin-bottom: 4px;
+ background-image:url('folderclosed.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 16px;
+ margin-bottom: 4px;
+ background-image:url('doc.png');
+ background-position: 0px -4px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+/* Class List table */
+table.directory {
+ font: 300 14px Poppins,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #050505;
+}
+
+table.doxtable caption {
+ caption-side: top;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #060606;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #0B0B0B;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+/* Enumerator table border */
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #6E6E6E;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #6E6E6E;
+ border-bottom: 1px solid #6E6E6E;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #6E6E6E;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+/* Enumerator table header background */
+.fieldtable th {
+ background-color: #f9f9f9;
+ font-size: 90%;
+ color: #030303;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ font-weight: 400;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #6E6E6E;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+/* footer background */
+.navpath ul
+{
+ font-family: Poppins,sans-serif;
+ font-size: 11px;
+ height:30px;
+ line-height:30px;
+ color:#FFFFFF;
+ border:solid 1px #919191;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#0B0B0B;
+}
+
+.navpath li.navelem {
+ font-family: Poppins,'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ font-size: 10px;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #040404;
+ /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);*/
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#eeeeee;
+}
+
+/* footer */
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#0B0B0B;
+ font-size: 8pt;
+ visibility: hidden;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+/* summary link at the top right of the content header */
+div.summary a
+{
+ white-space: nowrap;
+}
+
+table.classindex
+{
+ margin: 10px;
+ white-space: nowrap;
+ margin-left: 3%;
+ margin-right: 3%;
+ width: 94%;
+ border: 0;
+ border-spacing: 0;
+ padding: 0;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a, div.ingroups a:visited
+{
+ white-space: nowrap;
+ color: #185abc;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F3F3F3;
+ margin: 0px;
+ border-bottom: 1px solid #959595;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+.PageDocRTL-title div.headertitle {
+ text-align: right;
+ direction: rtl;
+}
+
+dl {
+ padding: 0 0 0 0;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */
+dl.section {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.section.DocNodeRTL {
+ margin-right: 0px;
+ padding-right: 0px;
+}
+
+/* Note color */
+dl.note {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #ffd300;
+ background-color: #fff9da;
+}
+
+dl.note.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #D0C000;
+}
+
+/* Warning text */
+dl.warning, dl.attention {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #FF0000;
+ background-color: #fff3f0;
+}
+
+dl.warning.DocNodeRTL, dl.attention.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #00D000;
+ background-color: #ebffeb;
+}
+
+dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #505050;
+ background-color: #f7f7f7;
+}
+
+dl.deprecated.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #505050;
+}
+
+dl.todo {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #00a3ff;
+ background-color: #e2f5ff;
+}
+
+dl.todo.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #3030E0;
+ background-color: #ebebff;
+}
+
+dl.test.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug {
+ margin-left: 7px; margin-right: 7px;
+ padding-left: 10px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ border-left: 4px solid;
+ border-color: #ff9300;
+ background-color: #fff1df;
+}
+
+dl.bug.DocNodeRTL {
+ margin-left: 0;
+ padding-left: 0;
+ border-left: 0;
+ margin-right: -7px;
+ padding-right: 3px;
+ border-right: 4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectalign
+{
+ vertical-align: middle;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ height: 0px; /* hide top title */
+ border-bottom: 1px solid #232323;
+}
+
+#titlearea tbody
+{
+ visibility: hidden; /* hide top title */
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.plantumlgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #535353;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#090909;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+ text-align:right;
+ width:52px;
+}
+
+dl.citelist dd {
+ margin:2px 0 2px 72px;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #E9E9E9;
+ border: 1px solid #B4B4B4;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 8px 10px 10px;
+ width: 200px;
+}
+
+.PageDocRTL-title div.toc {
+ float: left !important;
+ text-align: right;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+.PageDocRTL-title div.toc li {
+ background-position-x: right !important;
+ padding-left: 0 !important;
+ padding-right: 10px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #181818;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+span.emoji {
+ /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+ * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+ */
+}
+
+.PageDocRTL-title div.toc li.level1 {
+ margin-left: 0 !important;
+ margin-right: 0;
+}
+
+.PageDocRTL-title div.toc li.level2 {
+ margin-left: 0 !important;
+ margin-right: 15px;
+}
+
+.PageDocRTL-title div.toc li.level3 {
+ margin-left: 0 !important;
+ margin-right: 30px;
+}
+
+.PageDocRTL-title div.toc li.level4 {
+ margin-left: 0 !important;
+ margin-right: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Poppins,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #FFFFFF;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #FFFFFF;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
+/* @group Markdown */
+
+table.markdownTable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+ border: 1px solid #060606;
+ padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+ background-color: #0B0B0B;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+ text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+ text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+ text-align: center
+}
+
+.DocNodeRTL {
+ text-align: right;
+ direction: rtl;
+}
+
+.DocNodeLTR {
+ text-align: left;
+ direction: ltr;
+}
+
+table.DocNodeRTL {
+ width: auto;
+ margin-right: 0;
+ margin-left: auto;
+}
+
+table.DocNodeLTR {
+ width: auto;
+ margin-right: auto;
+ margin-left: 0;
+}
+
+tt, code, kbd, samp
+{
+ display: inline-block;
+ direction:ltr;
+}
+/* @end */
+
+u {
+ text-decoration: underline;
+}
+
diff --git a/docs/styles/navtree.css b/docs/styles/navtree.css
new file mode 100644
index 00000000..f408af22
--- /dev/null
+++ b/docs/styles/navtree.css
@@ -0,0 +1,149 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300&display=swap');
+
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 300 12px Poppins,Geneva,Helvetica,Arial,sans-serif;
+ letter-spacing: 0.8px;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding: 6px 0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background-image:url("splitbar.png");
+ background-size:100%;
+ background-repeat:repeat-y;
+ background-attachment: scroll;
+ cursor:ew-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F3F3F3;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/docs/styles/navtree.js b/docs/styles/navtree.js
new file mode 100644
index 00000000..5ed3aaa3
--- /dev/null
+++ b/docs/styles/navtree.js
@@ -0,0 +1,546 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+var navTreeSubIndices = new Array();
+var arrowDown = '▼';
+var arrowRight = '►';
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function hashValue()
+{
+ return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
+}
+
+function hashUrl()
+{
+ return '#'+hashValue();
+}
+
+function pathName()
+{
+ return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ var level=-1;
+ var n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ if (node.childrenData) {
+ var imgNode = document.createElement("span");
+ imgNode.className = 'arrow';
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.innerHTML=arrowRight;
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.innerHTML=arrowRight;
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ } else {
+ var span = document.createElement("span");
+ span.className = 'arrow';
+ span.style.width = 16*(level+1)+'px';
+ span.innerHTML = ' ';
+ domNode.appendChild(span);
+ }
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+ var pos, docContent = $('#doc-content');
+ var ancParent = $(anchor.parent());
+ if (ancParent.hasClass('memItemLeft') ||
+ ancParent.hasClass('memtitle') ||
+ ancParent.hasClass('fieldname') ||
+ ancParent.hasClass('fieldtype') ||
+ ancParent.is(':header'))
+ {
+ pos = ancParent.position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ animationInProgress=true;
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ if (updateLocation) window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath(pathName());
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : "javascript:void(0)";
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var anchor = $(aname);
+ gotoAnchor(anchor,aname,true);
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).slideDown("fast");
+ node.plus_img.innerHTML = arrowDown;
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var aname = hashUrl();
+ var anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parent().attr('class')=='fieldname'){
+ glowEffect(anchor.parent().parent(),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath(pathName())+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).css({'display':'block'});
+ node.plus_img.innerHTML = arrowDown;
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
+ else hash='';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('
');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('
');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2(pathName())+hashUrl());
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+var loadTriggered = false;
+var readyTriggered = false;
+var loadObject,loadToRoot,loadUrl,loadRelPath;
+
+$(window).on('load',function(){
+ if (readyTriggered) { // ready first
+ navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
+ showRoot();
+ }
+ loadTriggered=true;
+});
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("span");
+ o.node.plus_img.className = 'arrow';
+ o.node.plus_img.innerHTML = arrowRight;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ if (loadTriggered) { // load before ready
+ navTo(o,toroot,hashUrl(),relpath);
+ showRoot();
+ } else { // ready before load
+ loadObject = o;
+ loadToRoot = toroot;
+ loadUrl = hashUrl();
+ loadRelPath = relpath;
+ readyTriggered=true;
+ }
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath(pathName())+':'+hashValue();
+ a=$('.item a[class$="'+clslink.replace(/
+
\ No newline at end of file
diff --git a/docs/styles/sync_on.svg b/docs/styles/sync_on.svg
new file mode 100644
index 00000000..08159607
--- /dev/null
+++ b/docs/styles/sync_on.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/docs/styles/tabs.css b/docs/styles/tabs.css
new file mode 100644
index 00000000..72f71b33
--- /dev/null
+++ b/docs/styles/tabs.css
@@ -0,0 +1,425 @@
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300&display=swap');
+
+.sm {
+ position: relative;
+ z-index:9999
+}
+
+.sm, .sm ul, .sm li {
+ display: block;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ /*line-height: normal;*/
+ direction: ltr;
+ text-align: left;
+ -webkit-tap-highlight-color:rgba(0, 0, 0, 0)
+}
+
+.sm-rtl, .sm-rtl ul, .sm-rtl li {
+ direction: rtl;
+ text-align:right
+}
+
+.sm > li > h1, .sm > li > h2, .sm > li > h3, .sm > li > h4, .sm > li > h5, .sm > li > h6 {
+ margin: 0;
+ padding:0
+}
+
+.sm ul {
+ display:none
+}
+
+.sm li, .sm a {
+ position:relative
+}
+
+.sm a {
+ display:block
+}
+
+.sm a.disabled {
+ cursor:not-allowed
+}
+
+.sm:after {
+ content: "\00a0";
+ display: block;
+ height: 0;
+ font: 0px/0 serif;
+ clear: both;
+ visibility: hidden;
+ overflow:hidden
+}
+
+.sm, .sm *, .sm * :before, .sm * :after {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing:border-box
+}
+
+/* tab background */
+/*.sm-dox {
+ background-image: url("tab_b.png")
+}*/
+
+/* tab text */
+.sm-dox a, .sm-dox a:focus, .sm-dox a:hover, .sm-dox a:active {
+ padding: 0px 12px;
+ padding-right: 43px;
+ font-family: Poppins, "Lucida Grande", "Geneva", "Helvetica", Arial, sans-serif;
+ font-size: 13px;
+ /*font-weight: bold;*/
+ line-height: 36px;
+ letter-spacing: 0.8px;
+ text-decoration: none;
+ /*text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ color: #283A5D;*/
+ color: #000;
+ outline:none
+}
+
+.sm-dox a:hover {
+ background-image: url("tab_a.png");
+ background-repeat: repeat-x;
+ color: #fff;
+ /*text-shadow:0px 1px 1px #000*/
+}
+
+.sm-dox a.current {
+ color:#D23600
+}
+
+.sm-dox a.disabled {
+ color:#bbb
+}
+
+.sm-dox a span.sub-arrow {
+ position: absolute;
+ top: 50%;
+ margin-top: -14px;
+ left: auto;
+ right: 3px;
+ width: 28px;
+ height: 28px;
+ overflow: hidden;
+ font: bold 12px/28px monospace !important;
+ text-align: center;
+ text-shadow: none;
+ background: rgba(255, 255, 255, 0.5);
+ border-radius:5px
+}
+
+.sm-dox a.highlighted span.sub-arrow:before {
+ display: block;
+ content: '-'
+}
+
+.sm-dox > li:first-child > a, .sm-dox > li:first-child > :not(ul) a {
+ border-radius:5px 5px 0 0
+}
+
+.sm-dox > li:last-child > a, .sm-dox > li:last-child > * :not(ul) a, .sm-dox > li:last-child > ul, .sm-dox > li:last-child > ul > li:last-child > a, .sm-dox > li:last-child > ul > li:last-child > * :not(ul) a, .sm-dox > li:last-child > ul > li:last-child > ul, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul {
+ border-radius:0 0 5px 5px
+}
+
+.sm-dox > li:last-child > a.highlighted, .sm-dox > li:last-child > * :not(ul) a.highlighted, .sm-dox > li:last-child > ul > li:last-child > a.highlighted, .sm-dox > li:last-child > ul > li:last-child > * :not(ul) a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-dox > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > * :not(ul) a.highlighted {
+ border-radius:0
+}
+
+.sm-dox ul {
+ background:rgba(162, 162, 162, 0.1)
+}
+
+/* tab popup text */
+.sm-dox ul a, .sm-dox ul a:focus, .sm-dox ul a:hover, .sm-dox ul a:active {
+ font-size: 12px;
+ border-left: 8px solid transparent;
+ line-height: 36px;
+ letter-spacing: 0.8px;
+ text-shadow: none;
+ background-color: white;
+ background-image:none
+}
+
+.sm-dox ul a:hover {
+ background-image: url("tab_a.png");
+ background-repeat: repeat-x;
+ color: #fff;
+ /*text-shadow:0px 1px 1px #000*/
+}
+
+.sm-dox ul ul a, .sm-dox ul ul a:hover, .sm-dox ul ul a:focus, .sm-dox ul ul a:active {
+ border-left:16px solid transparent
+}
+
+.sm-dox ul ul ul a, .sm-dox ul ul ul a:hover, .sm-dox ul ul ul a:focus, .sm-dox ul ul ul a:active {
+ border-left:24px solid transparent
+}
+
+.sm-dox ul ul ul ul a, .sm-dox ul ul ul ul a:hover, .sm-dox ul ul ul ul a:focus, .sm-dox ul ul ul ul a:active {
+ border-left:32px solid transparent
+}
+
+.sm-dox ul ul ul ul ul a, .sm-dox ul ul ul ul ul a:hover, .sm-dox ul ul ul ul ul a:focus, .sm-dox ul ul ul ul ul a:active {
+ border-left:40px solid transparent
+}
+
+@media (min-width: 768px) {
+ .sm-dox ul {
+ position: absolute;
+ width:12em
+ }
+
+ .sm-dox li {
+ float:left
+ }
+
+ .sm-dox.sm-rtl li {
+ float:right
+ }
+
+ .sm-dox ul li, .sm-dox.sm-rtl ul li, .sm-dox.sm-vertical li {
+ float:none
+ }
+
+ .sm-dox a {
+ white-space:nowrap
+ }
+
+ .sm-dox ul a, .sm-dox.sm-vertical a {
+ white-space:normal
+ }
+
+ .sm-dox .sm-nowrap > li > a, .sm-dox .sm-nowrap > li > :not(ul) a {
+ white-space:nowrap
+ }
+
+ /* tab background */
+ .sm-dox {
+ padding: 0 10px;
+ /*background-image: url("tab_b.png");*/
+ line-height:36px
+ }
+
+ .sm-dox a span.sub-arrow {
+ top: 50%;
+ margin-top: -2px;
+ right: 12px;
+ width: 0;
+ height: 0;
+ border-width: 4px;
+ border-style: solid dashed dashed dashed;
+ border-color: #283A5D transparent transparent transparent;
+ background: transparent;
+ border-radius:0
+ }
+
+ /* border to the right of the main tab item */
+ .sm-dox a, .sm-dox a:focus, .sm-dox a:active, .sm-dox a:hover, .sm-dox a.highlighted {
+ padding: 0px 12px;
+ border-radius:0 !important
+ }
+
+ /* main tab hover */
+ .sm-dox a:hover {
+ background-image: url("tab_a.png");
+ background-repeat: repeat-x;
+ color: #fff;
+ text-shadow:0px 1px 1px #000
+ }
+
+ .sm-dox a:hover span.sub-arrow {
+ border-color:#fff transparent transparent transparent
+ }
+
+ .sm-dox a.has-submenu {
+ padding-right:24px
+ }
+
+ .sm-dox li {
+ border-top:0
+ }
+
+ .sm-dox > li > ul:before, .sm-dox > li > ul:after {
+ content: '';
+ position: absolute;
+ top: -18px;
+ left: 30px;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 9px;
+ border-style: dashed dashed solid dashed;
+ border-color:transparent transparent #bbb transparent
+ }
+
+ .sm-dox > li > ul:after {
+ top: -16px;
+ left: 31px;
+ border-width: 8px;
+ border-color:transparent transparent #fff transparent
+ }
+
+ /* sub menu background of main tab */
+ .sm-dox ul {
+ border: 1px solid #bbb;
+ padding: 5px 0;
+ background: #fff;
+ border-radius: 5px !important;
+ box-shadow:0 5px 9px rgba(0, 0, 0, 0.2)
+ }
+
+ .sm-dox ul a span.sub-arrow {
+ right: 8px;
+ top: 50%;
+ margin-top: -5px;
+ border-width: 5px;
+ border-color: transparent transparent transparent #555;
+ border-style:dashed dashed dashed solid
+ }
+
+ .sm-dox ul a, .sm-dox ul a:hover, .sm-dox ul a:focus, .sm-dox ul a:active, .sm-dox ul a.highlighted {
+ color: #555;
+ background-image: none;
+ border: 0 !important;
+ color: #555;
+ background-image:none
+ }
+
+ /* tab popup hover */
+ .sm-dox ul a:hover {
+ background-image: url("tab_a.png");
+ background-repeat: repeat-x;
+ color: #fff;
+ /*text-shadow:0px 1px 1px #000*/
+ }
+
+ .sm-dox ul a:hover span.sub-arrow {
+ border-color:transparent transparent transparent #fff
+ }
+
+ .sm-dox span.scroll-up, .sm-dox span.scroll-down {
+ position: absolute;
+ display: none;
+ visibility: hidden;
+ overflow: hidden;
+ background: #fff;
+ height:36px
+ }
+
+ .sm-dox span.scroll-up:hover, .sm-dox span.scroll-down:hover {
+ background:#eee
+ }
+
+ .sm-dox span.scroll-up:hover span.scroll-up-arrow, .sm-dox span.scroll-up:hover span.scroll-down-arrow {
+ border-color:transparent transparent #D23600 transparent
+ }
+
+ .sm-dox span.scroll-down:hover span.scroll-down-arrow {
+ border-color:#D23600 transparent transparent transparent
+ }
+
+ .sm-dox span.scroll-up-arrow, .sm-dox span.scroll-down-arrow {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ margin-left: -6px;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 6px;
+ border-style: dashed dashed solid dashed;
+ border-color:transparent transparent #555 transparent
+ }
+
+ .sm-dox span.scroll-down-arrow {
+ top: 8px;
+ border-style: solid dashed dashed dashed;
+ border-color:#555 transparent transparent transparent
+ }
+
+ .sm-dox.sm-rtl a.has-submenu {
+ padding-right: 12px;
+ padding-left:24px
+ }
+
+ .sm-dox.sm-rtl a span.sub-arrow {
+ right: auto;
+ left:12px
+ }
+
+ .sm-dox.sm-rtl.sm-vertical a.has-submenu {
+ padding:10px 20px
+ }
+
+ .sm-dox.sm-rtl.sm-vertical a span.sub-arrow {
+ right: auto;
+ left: 8px;
+ border-style: dashed solid dashed dashed;
+ border-color:transparent #555 transparent transparent
+ }
+
+ .sm-dox.sm-rtl > li > ul:before {
+ left: auto;
+ right:30px
+ }
+
+ .sm-dox.sm-rtl > li > ul:after {
+ left: auto;
+ right:31px
+ }
+
+ .sm-dox.sm-rtl ul a.has-submenu {
+ padding:10px 20px !important
+ }
+
+ .sm-dox.sm-rtl ul a span.sub-arrow {
+ right: auto;
+ left: 8px;
+ border-style: dashed solid dashed dashed;
+ border-color:transparent #555 transparent transparent
+ }
+
+ .sm-dox.sm-vertical {
+ padding: 10px 0;
+ border-radius:5px
+ }
+
+ .sm-dox.sm-vertical a {
+ padding:10px 20px
+ }
+
+ .sm-dox.sm-vertical a:hover, .sm-dox.sm-vertical a:focus, .sm-dox.sm-vertical a:active, .sm-dox.sm-vertical a.highlighted {
+ background:#fff
+ }
+ /* tab background */
+ /*.sm-dox.sm-vertical a.disabled {
+ background-image: url("tab_b.png")
+ }*/
+
+ .sm-dox.sm-vertical a span.sub-arrow {
+ right: 8px;
+ top: 50%;
+ margin-top: -5px;
+ border-width: 5px;
+ border-style: dashed dashed dashed solid;
+ border-color:transparent transparent transparent #555
+ }
+
+ .sm-dox.sm-vertical > li > ul:before, .sm-dox.sm-vertical > li > ul:after {
+ display:none
+ }
+
+ .sm-dox.sm-vertical ul a {
+ padding:10px 20px
+ }
+
+ .sm-dox.sm-vertical ul a:hover, .sm-dox.sm-vertical ul a:focus, .sm-dox.sm-vertical ul a:active, .sm-dox.sm-vertical ul a.highlighted {
+ background:#eee
+ }
+
+ .sm-dox.sm-vertical ul a.disabled {
+ background: #fff
+ }
+}