spl-core 4.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. spl_core/__init__.py +1 -0
  2. spl_core/common/__init__.py +0 -0
  3. spl_core/common/cmake.py +52 -0
  4. spl_core/common/path.py +17 -0
  5. spl_core/gcov_maid/__init__.py +0 -0
  6. spl_core/gcov_maid/gcov_maid.py +48 -0
  7. spl_core/kconfig/__init__.py +0 -0
  8. spl_core/kconfig/kconfig.py +271 -0
  9. spl_core/project_creator/__init__.py +0 -0
  10. spl_core/project_creator/creator.py +133 -0
  11. spl_core/project_creator/templates/project/cookiecutter.json +14 -0
  12. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.flake8 +2 -0
  13. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.gitignore +33 -0
  14. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/cmake-kits.json +11 -0
  15. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/cmake-variants.json +18 -0
  16. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/extensions.json +18 -0
  17. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/launch.json +37 -0
  18. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/settings.json +45 -0
  19. spl_core/project_creator/templates/project/{{cookiecutter.name}}/.vscode/tasks.json +93 -0
  20. spl_core/project_creator/templates/project/{{cookiecutter.name}}/CMakeLists.txt +43 -0
  21. spl_core/project_creator/templates/project/{{cookiecutter.name}}/KConfig +23 -0
  22. spl_core/project_creator/templates/project/{{cookiecutter.name}}/LICENSE +21 -0
  23. spl_core/project_creator/templates/project/{{cookiecutter.name}}/Pipfile +33 -0
  24. spl_core/project_creator/templates/project/{{cookiecutter.name}}/README.md +7 -0
  25. spl_core/project_creator/templates/project/{{cookiecutter.name}}/build.bat +1 -0
  26. spl_core/project_creator/templates/project/{{cookiecutter.name}}/build.ps1 +245 -0
  27. spl_core/project_creator/templates/project/{{cookiecutter.name}}/conf.py +200 -0
  28. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/Doxyfile.in +2774 -0
  29. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/common/index.rst +5 -0
  30. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/components/index.rst +23 -0
  31. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/doxygen-awesome/LICENSE +21 -0
  32. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/doxygen-awesome/doxygen-awesome.css +2530 -0
  33. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/software_architecture/index.rst +2 -0
  34. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/software_requirements/index.rst +7 -0
  35. spl_core/project_creator/templates/project/{{cookiecutter.name}}/doc/test_report_template.txt +46 -0
  36. spl_core/project_creator/templates/project/{{cookiecutter.name}}/index.rst +38 -0
  37. spl_core/project_creator/templates/project/{{cookiecutter.name}}/install-mandatory.bat +1 -0
  38. spl_core/project_creator/templates/project/{{cookiecutter.name}}/pytest.ini +9 -0
  39. spl_core/project_creator/templates/project/{{cookiecutter.name}}/scoopfile.json +47 -0
  40. spl_core/project_creator/templates/project/{{cookiecutter.name}}/test/test_build.py +39 -0
  41. spl_core/project_creator/templates/project/{{cookiecutter.name}}/test/test_unittests.py +28 -0
  42. spl_core/project_creator/templates/project/{{cookiecutter.name}}/test/utils.py +26 -0
  43. spl_core/project_creator/templates/project/{{cookiecutter.name}}/tools/setup/git-config.ps1 +8 -0
  44. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/CMakeLists.txt +3 -0
  45. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/doc/_images/screenshot.png +0 -0
  46. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/doc/design.rst +25 -0
  47. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/doc/index.rst +8 -0
  48. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/src/component.c +31 -0
  49. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/src/component.h +1 -0
  50. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/component/test/test_component.cc +60 -0
  51. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/main/CMakeLists.txt +2 -0
  52. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/main/doc/index.rst +14 -0
  53. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_components -%} components {%- endif %}/main/src/main.c +17 -0
  54. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_tools -%} tools {%- endif %}/toolchains/clang/toolchain.cmake +8 -0
  55. spl_core/project_creator/templates/project/{{cookiecutter.name}}/{% if cookiecutter.touch_tools -%} tools {%- endif %}/toolchains/gcc/toolchain.cmake +3 -0
  56. spl_core/project_creator/templates/variant/cookiecutter.json +4 -0
  57. spl_core/project_creator/templates/variant/{{cookiecutter.flavor}}/{{cookiecutter.subsystem}}/config.cmake +1 -0
  58. spl_core/project_creator/templates/variant/{{cookiecutter.flavor}}/{{cookiecutter.subsystem}}/config.txt +1 -0
  59. spl_core/project_creator/templates/variant/{{cookiecutter.flavor}}/{{cookiecutter.subsystem}}/parts.cmake +2 -0
  60. spl_core/project_creator/variant.py +23 -0
  61. spl_core/project_creator/workspace_artifacts.py +36 -0
  62. spl_core-4.0.0.dist-info/LICENSE +22 -0
  63. spl_core-4.0.0.dist-info/METADATA +62 -0
  64. spl_core-4.0.0.dist-info/RECORD +65 -0
  65. spl_core-4.0.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,2530 @@
1
+ /**
2
+
3
+ Doxygen Awesome
4
+ https://github.com/jothepro/doxygen-awesome-css
5
+
6
+ MIT License
7
+
8
+ Copyright (c) 2021 - 2023 jothepro
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ */
29
+
30
+ html {
31
+ /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */
32
+ --primary-color: #1779c4;
33
+ --primary-dark-color: #335c80;
34
+ --primary-light-color: #70b1e9;
35
+
36
+ /* page base colors */
37
+ --page-background-color: #ffffff;
38
+ --page-foreground-color: #2f4153;
39
+ --page-secondary-foreground-color: #6f7e8e;
40
+
41
+ /* color for all separators on the website: hr, borders, ... */
42
+ --separator-color: #dedede;
43
+
44
+ /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */
45
+ --border-radius-large: 8px;
46
+ --border-radius-small: 4px;
47
+ --border-radius-medium: 6px;
48
+
49
+ /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */
50
+ --spacing-small: 5px;
51
+ --spacing-medium: 10px;
52
+ --spacing-large: 16px;
53
+
54
+ /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */
55
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
56
+
57
+ --odd-color: rgba(0,0,0,.028);
58
+
59
+ /* font-families. will affect all text on the website
60
+ * font-family: the normal font for text, headlines, menus
61
+ * font-family-monospace: used for preformatted text in memtitle, code, fragments
62
+ */
63
+ --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;
64
+ --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;
65
+
66
+ /* font sizes */
67
+ --page-font-size: 15.6px;
68
+ --navigation-font-size: 14.4px;
69
+ --toc-font-size: 13.4px;
70
+ --code-font-size: 14px; /* affects code, fragment */
71
+ --title-font-size: 22px;
72
+
73
+ /* content text properties. These only affect the page content, not the navigation or any other ui elements */
74
+ --content-line-height: 27px;
75
+ /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/
76
+ --content-maxwidth: 1050px;
77
+ --table-line-height: 24px;
78
+ --toc-sticky-top: var(--spacing-medium);
79
+ --toc-width: 200px;
80
+ --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px);
81
+
82
+ /* colors for various content boxes: @warning, @note, @deprecated @bug */
83
+ --warning-color: #f8d1cc;
84
+ --warning-color-dark: #b61825;
85
+ --warning-color-darker: #75070f;
86
+ --note-color: #faf3d8;
87
+ --note-color-dark: #f3a600;
88
+ --note-color-darker: #5f4204;
89
+ --todo-color: #e4f3ff;
90
+ --todo-color-dark: #1879C4;
91
+ --todo-color-darker: #274a5c;
92
+ --deprecated-color: #ecf0f3;
93
+ --deprecated-color-dark: #5b6269;
94
+ --deprecated-color-darker: #43454a;
95
+ --bug-color: #e4dafd;
96
+ --bug-color-dark: #5b2bdd;
97
+ --bug-color-darker: #2a0d72;
98
+ --invariant-color: #d8f1e3;
99
+ --invariant-color-dark: #44b86f;
100
+ --invariant-color-darker: #265532;
101
+
102
+ /* blockquote colors */
103
+ --blockquote-background: #f8f9fa;
104
+ --blockquote-foreground: #636568;
105
+
106
+ /* table colors */
107
+ --tablehead-background: #f1f1f1;
108
+ --tablehead-foreground: var(--page-foreground-color);
109
+
110
+ /* menu-display: block | none
111
+ * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible.
112
+ * `GENERATE_TREEVIEW` MUST be enabled!
113
+ */
114
+ --menu-display: block;
115
+
116
+ --menu-focus-foreground: var(--page-background-color);
117
+ --menu-focus-background: var(--primary-color);
118
+ --menu-selected-background: rgba(0,0,0,.05);
119
+
120
+
121
+ --header-background: var(--page-background-color);
122
+ --header-foreground: var(--page-foreground-color);
123
+
124
+ /* searchbar colors */
125
+ --searchbar-background: var(--side-nav-background);
126
+ --searchbar-foreground: var(--page-foreground-color);
127
+
128
+ /* searchbar size
129
+ * (`searchbar-width` is only applied on screens >= 768px.
130
+ * on smaller screens the searchbar will always fill the entire screen width) */
131
+ --searchbar-height: 33px;
132
+ --searchbar-width: 210px;
133
+ --searchbar-border-radius: var(--searchbar-height);
134
+
135
+ /* code block colors */
136
+ --code-background: #f5f5f5;
137
+ --code-foreground: var(--page-foreground-color);
138
+
139
+ /* fragment colors */
140
+ --fragment-background: #F8F9FA;
141
+ --fragment-foreground: #37474F;
142
+ --fragment-keyword: #bb6bb2;
143
+ --fragment-keywordtype: #8258b3;
144
+ --fragment-keywordflow: #d67c3b;
145
+ --fragment-token: #438a59;
146
+ --fragment-comment: #969696;
147
+ --fragment-link: #5383d6;
148
+ --fragment-preprocessor: #46aaa5;
149
+ --fragment-linenumber-color: #797979;
150
+ --fragment-linenumber-background: #f4f4f5;
151
+ --fragment-linenumber-border: #e3e5e7;
152
+ --fragment-lineheight: 20px;
153
+
154
+ /* sidebar navigation (treeview) colors */
155
+ --side-nav-background: #fbfbfb;
156
+ --side-nav-foreground: var(--page-foreground-color);
157
+ --side-nav-arrow-opacity: 0;
158
+ --side-nav-arrow-hover-opacity: 0.9;
159
+
160
+ --toc-background: var(--side-nav-background);
161
+ --toc-foreground: var(--side-nav-foreground);
162
+
163
+ /* height of an item in any tree / collapsible table */
164
+ --tree-item-height: 30px;
165
+
166
+ --memname-font-size: var(--code-font-size);
167
+ --memtitle-font-size: 18px;
168
+
169
+ --webkit-scrollbar-size: 7px;
170
+ --webkit-scrollbar-padding: 4px;
171
+ --webkit-scrollbar-color: var(--separator-color);
172
+ }
173
+
174
+ @media screen and (max-width: 767px) {
175
+ html {
176
+ --page-font-size: 16px;
177
+ --navigation-font-size: 16px;
178
+ --toc-font-size: 15px;
179
+ --code-font-size: 15px; /* affects code, fragment */
180
+ --title-font-size: 22px;
181
+ }
182
+ }
183
+
184
+ @media (prefers-color-scheme: dark) {
185
+ html:not(.light-mode) {
186
+ color-scheme: dark;
187
+
188
+ --primary-color: #1982d2;
189
+ --primary-dark-color: #86a9c4;
190
+ --primary-light-color: #4779ac;
191
+
192
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35);
193
+
194
+ --odd-color: rgba(100,100,100,.06);
195
+
196
+ --menu-selected-background: rgba(0,0,0,.4);
197
+
198
+ --page-background-color: #1C1D1F;
199
+ --page-foreground-color: #d2dbde;
200
+ --page-secondary-foreground-color: #859399;
201
+ --separator-color: #38393b;
202
+ --side-nav-background: #252628;
203
+
204
+ --code-background: #2a2c2f;
205
+
206
+ --tablehead-background: #2a2c2f;
207
+
208
+ --blockquote-background: #222325;
209
+ --blockquote-foreground: #7e8c92;
210
+
211
+ --warning-color: #2e1917;
212
+ --warning-color-dark: #ad2617;
213
+ --warning-color-darker: #f5b1aa;
214
+ --note-color: #3b2e04;
215
+ --note-color-dark: #f1b602;
216
+ --note-color-darker: #ceb670;
217
+ --todo-color: #163750;
218
+ --todo-color-dark: #1982D2;
219
+ --todo-color-darker: #dcf0fa;
220
+ --deprecated-color: #2e323b;
221
+ --deprecated-color-dark: #738396;
222
+ --deprecated-color-darker: #abb0bd;
223
+ --bug-color: #2a2536;
224
+ --bug-color-dark: #7661b3;
225
+ --bug-color-darker: #ae9ed6;
226
+ --invariant-color: #303a35;
227
+ --invariant-color-dark: #76ce96;
228
+ --invariant-color-darker: #cceed5;
229
+
230
+ --fragment-background: #282c34;
231
+ --fragment-foreground: #dbe4eb;
232
+ --fragment-keyword: #cc99cd;
233
+ --fragment-keywordtype: #ab99cd;
234
+ --fragment-keywordflow: #e08000;
235
+ --fragment-token: #7ec699;
236
+ --fragment-comment: #999999;
237
+ --fragment-link: #98c0e3;
238
+ --fragment-preprocessor: #65cabe;
239
+ --fragment-linenumber-color: #cccccc;
240
+ --fragment-linenumber-background: #35393c;
241
+ --fragment-linenumber-border: #1f1f1f;
242
+ }
243
+ }
244
+
245
+ /* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
246
+ html.dark-mode {
247
+ color-scheme: dark;
248
+
249
+ --primary-color: #1982d2;
250
+ --primary-dark-color: #86a9c4;
251
+ --primary-light-color: #4779ac;
252
+
253
+ --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30);
254
+
255
+ --odd-color: rgba(100,100,100,.06);
256
+
257
+ --menu-selected-background: rgba(0,0,0,.4);
258
+
259
+ --page-background-color: #1C1D1F;
260
+ --page-foreground-color: #d2dbde;
261
+ --page-secondary-foreground-color: #859399;
262
+ --separator-color: #38393b;
263
+ --side-nav-background: #252628;
264
+
265
+ --code-background: #2a2c2f;
266
+
267
+ --tablehead-background: #2a2c2f;
268
+
269
+ --blockquote-background: #222325;
270
+ --blockquote-foreground: #7e8c92;
271
+
272
+ --warning-color: #2e1917;
273
+ --warning-color-dark: #ad2617;
274
+ --warning-color-darker: #f5b1aa;
275
+ --note-color: #3b2e04;
276
+ --note-color-dark: #f1b602;
277
+ --note-color-darker: #ceb670;
278
+ --todo-color: #163750;
279
+ --todo-color-dark: #1982D2;
280
+ --todo-color-darker: #dcf0fa;
281
+ --deprecated-color: #2e323b;
282
+ --deprecated-color-dark: #738396;
283
+ --deprecated-color-darker: #abb0bd;
284
+ --bug-color: #2a2536;
285
+ --bug-color-dark: #7661b3;
286
+ --bug-color-darker: #ae9ed6;
287
+ --invariant-color: #303a35;
288
+ --invariant-color-dark: #76ce96;
289
+ --invariant-color-darker: #cceed5;
290
+
291
+ --fragment-background: #282c34;
292
+ --fragment-foreground: #dbe4eb;
293
+ --fragment-keyword: #cc99cd;
294
+ --fragment-keywordtype: #ab99cd;
295
+ --fragment-keywordflow: #e08000;
296
+ --fragment-token: #7ec699;
297
+ --fragment-comment: #999999;
298
+ --fragment-link: #98c0e3;
299
+ --fragment-preprocessor: #65cabe;
300
+ --fragment-linenumber-color: #cccccc;
301
+ --fragment-linenumber-background: #35393c;
302
+ --fragment-linenumber-border: #1f1f1f;
303
+ }
304
+
305
+ body {
306
+ color: var(--page-foreground-color);
307
+ background-color: var(--page-background-color);
308
+ font-size: var(--page-font-size);
309
+ }
310
+
311
+ body, table, div, p, dl, #nav-tree .label, .title,
312
+ .sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname,
313
+ .SelectItem, #MSearchField, .navpath li.navelem a,
314
+ .navpath li.navelem a:hover, p.reference, p.definition {
315
+ font-family: var(--font-family);
316
+ }
317
+
318
+ h1, h2, h3, h4, h5 {
319
+ margin-top: .9em;
320
+ font-weight: 600;
321
+ line-height: initial;
322
+ }
323
+
324
+ p, div, table, dl, p.reference, p.definition {
325
+ font-size: var(--page-font-size);
326
+ }
327
+
328
+ p.reference, p.definition {
329
+ color: var(--page-secondary-foreground-color);
330
+ }
331
+
332
+ a:link, a:visited, a:hover, a:focus, a:active {
333
+ color: var(--primary-color) !important;
334
+ font-weight: 500;
335
+ }
336
+
337
+ a.anchor {
338
+ scroll-margin-top: var(--spacing-large);
339
+ display: block;
340
+ }
341
+
342
+ /*
343
+ Title and top navigation
344
+ */
345
+
346
+ #top {
347
+ background: var(--header-background);
348
+ border-bottom: 1px solid var(--separator-color);
349
+ }
350
+
351
+ @media screen and (min-width: 768px) {
352
+ #top {
353
+ display: flex;
354
+ flex-wrap: wrap;
355
+ justify-content: space-between;
356
+ align-items: center;
357
+ }
358
+ }
359
+
360
+ #main-nav {
361
+ flex-grow: 5;
362
+ padding: var(--spacing-small) var(--spacing-medium);
363
+ }
364
+
365
+ #titlearea {
366
+ width: auto;
367
+ padding: var(--spacing-medium) var(--spacing-large);
368
+ background: none;
369
+ color: var(--header-foreground);
370
+ border-bottom: none;
371
+ }
372
+
373
+ @media screen and (max-width: 767px) {
374
+ #titlearea {
375
+ padding-bottom: var(--spacing-small);
376
+ }
377
+ }
378
+
379
+ #titlearea table tbody tr {
380
+ height: auto !important;
381
+ }
382
+
383
+ #projectname {
384
+ font-size: var(--title-font-size);
385
+ font-weight: 600;
386
+ }
387
+
388
+ #projectnumber {
389
+ font-family: inherit;
390
+ font-size: 60%;
391
+ }
392
+
393
+ #projectbrief {
394
+ font-family: inherit;
395
+ font-size: 80%;
396
+ }
397
+
398
+ #projectlogo {
399
+ vertical-align: middle;
400
+ }
401
+
402
+ #projectlogo img {
403
+ max-height: calc(var(--title-font-size) * 2);
404
+ margin-right: var(--spacing-small);
405
+ }
406
+
407
+ .sm-dox, .tabs, .tabs2, .tabs3 {
408
+ background: none;
409
+ padding: 0;
410
+ }
411
+
412
+ .tabs, .tabs2, .tabs3 {
413
+ border-bottom: 1px solid var(--separator-color);
414
+ margin-bottom: -1px;
415
+ }
416
+
417
+ .main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after {
418
+ background: var(--page-secondary-foreground-color);
419
+ }
420
+
421
+ @media screen and (max-width: 767px) {
422
+ .sm-dox a span.sub-arrow {
423
+ background: var(--code-background);
424
+ }
425
+
426
+ #main-menu a.has-submenu span.sub-arrow {
427
+ color: var(--page-secondary-foreground-color);
428
+ border-radius: var(--border-radius-medium);
429
+ }
430
+
431
+ #main-menu a.has-submenu:hover span.sub-arrow {
432
+ color: var(--page-foreground-color);
433
+ }
434
+ }
435
+
436
+ @media screen and (min-width: 768px) {
437
+ .sm-dox li, .tablist li {
438
+ display: var(--menu-display);
439
+ }
440
+
441
+ .sm-dox a span.sub-arrow {
442
+ border-color: var(--header-foreground) transparent transparent transparent;
443
+ }
444
+
445
+ .sm-dox a:hover span.sub-arrow {
446
+ border-color: var(--menu-focus-foreground) transparent transparent transparent;
447
+ }
448
+
449
+ .sm-dox ul a span.sub-arrow {
450
+ border-color: transparent transparent transparent var(--page-foreground-color);
451
+ }
452
+
453
+ .sm-dox ul a:hover span.sub-arrow {
454
+ border-color: transparent transparent transparent var(--menu-focus-foreground);
455
+ }
456
+ }
457
+
458
+ .sm-dox ul {
459
+ background: var(--page-background-color);
460
+ box-shadow: var(--box-shadow);
461
+ border: 1px solid var(--separator-color);
462
+ border-radius: var(--border-radius-medium) !important;
463
+ padding: var(--spacing-small);
464
+ animation: ease-out 150ms slideInMenu;
465
+ }
466
+
467
+ @keyframes slideInMenu {
468
+ from {
469
+ opacity: 0;
470
+ transform: translate(0px, -2px);
471
+ }
472
+
473
+ to {
474
+ opacity: 1;
475
+ transform: translate(0px, 0px);
476
+ }
477
+ }
478
+
479
+ .sm-dox ul a {
480
+ color: var(--page-foreground-color) !important;
481
+ background: var(--page-background-color);
482
+ font-size: var(--navigation-font-size);
483
+ }
484
+
485
+ .sm-dox>li>ul:after {
486
+ border-bottom-color: var(--page-background-color) !important;
487
+ }
488
+
489
+ .sm-dox>li>ul:before {
490
+ border-bottom-color: var(--separator-color) !important;
491
+ }
492
+
493
+ .sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus {
494
+ font-size: var(--navigation-font-size) !important;
495
+ color: var(--menu-focus-foreground) !important;
496
+ text-shadow: none;
497
+ background-color: var(--menu-focus-background);
498
+ border-radius: var(--border-radius-small) !important;
499
+ }
500
+
501
+ .sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a {
502
+ text-shadow: none;
503
+ background: transparent;
504
+ background-image: none !important;
505
+ color: var(--header-foreground) !important;
506
+ font-weight: normal;
507
+ font-size: var(--navigation-font-size);
508
+ border-radius: var(--border-radius-small) !important;
509
+ }
510
+
511
+ .sm-dox a:focus {
512
+ outline: auto;
513
+ }
514
+
515
+ .sm-dox a:hover, .sm-dox a:active, .tablist li a:hover {
516
+ text-shadow: none;
517
+ font-weight: normal;
518
+ background: var(--menu-focus-background);
519
+ color: var(--menu-focus-foreground) !important;
520
+ border-radius: var(--border-radius-small) !important;
521
+ font-size: var(--navigation-font-size);
522
+ }
523
+
524
+ .tablist li.current {
525
+ border-radius: var(--border-radius-small);
526
+ background: var(--menu-selected-background);
527
+ }
528
+
529
+ .tablist li {
530
+ margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small);
531
+ }
532
+
533
+ .tablist a {
534
+ padding: 0 var(--spacing-large);
535
+ }
536
+
537
+
538
+ /*
539
+ Search box
540
+ */
541
+
542
+ #MSearchBox {
543
+ height: var(--searchbar-height);
544
+ background: var(--searchbar-background);
545
+ border-radius: var(--searchbar-border-radius);
546
+ border: 1px solid var(--separator-color);
547
+ overflow: hidden;
548
+ width: var(--searchbar-width);
549
+ position: relative;
550
+ box-shadow: none;
551
+ display: block;
552
+ margin-top: 0;
553
+ }
554
+
555
+ /* until Doxygen 1.9.4 */
556
+ .left img#MSearchSelect {
557
+ left: 0;
558
+ user-select: none;
559
+ padding-left: 8px;
560
+ }
561
+
562
+ /* Doxygen 1.9.5 */
563
+ .left span#MSearchSelect {
564
+ left: 0;
565
+ user-select: none;
566
+ margin-left: 8px;
567
+ padding: 0;
568
+ }
569
+
570
+ .left #MSearchSelect[src$=".png"] {
571
+ padding-left: 0
572
+ }
573
+
574
+ .SelectionMark {
575
+ user-select: none;
576
+ }
577
+
578
+ .tabs .left #MSearchSelect {
579
+ padding-left: 0;
580
+ }
581
+
582
+ .tabs #MSearchBox {
583
+ position: absolute;
584
+ right: var(--spacing-medium);
585
+ }
586
+
587
+ @media screen and (max-width: 767px) {
588
+ .tabs #MSearchBox {
589
+ position: relative;
590
+ right: 0;
591
+ margin-left: var(--spacing-medium);
592
+ margin-top: 0;
593
+ }
594
+ }
595
+
596
+ #MSearchSelectWindow, #MSearchResultsWindow {
597
+ z-index: 9999;
598
+ }
599
+
600
+ #MSearchBox.MSearchBoxActive {
601
+ border-color: var(--primary-color);
602
+ box-shadow: inset 0 0 0 1px var(--primary-color);
603
+ }
604
+
605
+ #main-menu > li:last-child {
606
+ margin-right: 0;
607
+ }
608
+
609
+ @media screen and (max-width: 767px) {
610
+ #main-menu > li:last-child {
611
+ height: 50px;
612
+ }
613
+ }
614
+
615
+ #MSearchField {
616
+ font-size: var(--navigation-font-size);
617
+ height: calc(var(--searchbar-height) - 2px);
618
+ background: transparent;
619
+ width: calc(var(--searchbar-width) - 64px);
620
+ }
621
+
622
+ .MSearchBoxActive #MSearchField {
623
+ color: var(--searchbar-foreground);
624
+ }
625
+
626
+ #MSearchSelect {
627
+ top: calc(calc(var(--searchbar-height) / 2) - 11px);
628
+ }
629
+
630
+ #MSearchBox span.left, #MSearchBox span.right {
631
+ background: none;
632
+ background-image: none;
633
+ }
634
+
635
+ #MSearchBox span.right {
636
+ padding-top: calc(calc(var(--searchbar-height) / 2) - 12px);
637
+ position: absolute;
638
+ right: var(--spacing-small);
639
+ }
640
+
641
+ .tabs #MSearchBox span.right {
642
+ top: calc(calc(var(--searchbar-height) / 2) - 12px);
643
+ }
644
+
645
+ @keyframes slideInSearchResults {
646
+ from {
647
+ opacity: 0;
648
+ transform: translate(0, 15px);
649
+ }
650
+
651
+ to {
652
+ opacity: 1;
653
+ transform: translate(0, 20px);
654
+ }
655
+ }
656
+
657
+ #MSearchResultsWindow {
658
+ left: auto !important;
659
+ right: var(--spacing-medium);
660
+ border-radius: var(--border-radius-large);
661
+ border: 1px solid var(--separator-color);
662
+ transform: translate(0, 20px);
663
+ box-shadow: var(--box-shadow);
664
+ animation: ease-out 280ms slideInSearchResults;
665
+ background: var(--page-background-color);
666
+ }
667
+
668
+ iframe#MSearchResults {
669
+ margin: 4px;
670
+ }
671
+
672
+ iframe {
673
+ color-scheme: normal;
674
+ }
675
+
676
+ @media (prefers-color-scheme: dark) {
677
+ html:not(.light-mode) iframe#MSearchResults {
678
+ filter: invert() hue-rotate(180deg);
679
+ }
680
+ }
681
+
682
+ html.dark-mode iframe#MSearchResults {
683
+ filter: invert() hue-rotate(180deg);
684
+ }
685
+
686
+ #MSearchResults .SRPage {
687
+ background-color: transparent;
688
+ }
689
+
690
+ #MSearchResults .SRPage .SREntry {
691
+ font-size: 10pt;
692
+ padding: var(--spacing-small) var(--spacing-medium);
693
+ }
694
+
695
+ #MSearchSelectWindow {
696
+ border: 1px solid var(--separator-color);
697
+ border-radius: var(--border-radius-medium);
698
+ box-shadow: var(--box-shadow);
699
+ background: var(--page-background-color);
700
+ padding-top: var(--spacing-small);
701
+ padding-bottom: var(--spacing-small);
702
+ }
703
+
704
+ #MSearchSelectWindow a.SelectItem {
705
+ font-size: var(--navigation-font-size);
706
+ line-height: var(--content-line-height);
707
+ margin: 0 var(--spacing-small);
708
+ border-radius: var(--border-radius-small);
709
+ color: var(--page-foreground-color) !important;
710
+ font-weight: normal;
711
+ }
712
+
713
+ #MSearchSelectWindow a.SelectItem:hover {
714
+ background: var(--menu-focus-background);
715
+ color: var(--menu-focus-foreground) !important;
716
+ }
717
+
718
+ @media screen and (max-width: 767px) {
719
+ #MSearchBox {
720
+ margin-top: var(--spacing-medium);
721
+ margin-bottom: var(--spacing-medium);
722
+ width: calc(100vw - 30px);
723
+ }
724
+
725
+ #main-menu > li:last-child {
726
+ float: none !important;
727
+ }
728
+
729
+ #MSearchField {
730
+ width: calc(100vw - 110px);
731
+ }
732
+
733
+ @keyframes slideInSearchResultsMobile {
734
+ from {
735
+ opacity: 0;
736
+ transform: translate(0, 15px);
737
+ }
738
+
739
+ to {
740
+ opacity: 1;
741
+ transform: translate(0, 20px);
742
+ }
743
+ }
744
+
745
+ #MSearchResultsWindow {
746
+ left: var(--spacing-medium) !important;
747
+ right: var(--spacing-medium);
748
+ overflow: auto;
749
+ transform: translate(0, 20px);
750
+ animation: ease-out 280ms slideInSearchResultsMobile;
751
+ width: auto !important;
752
+ }
753
+
754
+ /*
755
+ * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2
756
+ */
757
+ label.main-menu-btn ~ #searchBoxPos1 {
758
+ top: 3px !important;
759
+ right: 6px !important;
760
+ left: 45px;
761
+ display: flex;
762
+ }
763
+
764
+ label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox {
765
+ margin-top: 0;
766
+ margin-bottom: 0;
767
+ flex-grow: 2;
768
+ float: left;
769
+ }
770
+ }
771
+
772
+ /*
773
+ Tree view
774
+ */
775
+
776
+ #side-nav {
777
+ padding: 0 !important;
778
+ background: var(--side-nav-background);
779
+ min-width: 8px;
780
+ max-width: 50vw;
781
+ }
782
+
783
+ @media screen and (max-width: 767px) {
784
+ #side-nav {
785
+ display: none;
786
+ }
787
+
788
+ #doc-content {
789
+ margin-left: 0 !important;
790
+ }
791
+ }
792
+
793
+ #nav-tree {
794
+ background: transparent;
795
+ margin-right: 1px;
796
+ }
797
+
798
+ #nav-tree .label {
799
+ font-size: var(--navigation-font-size);
800
+ }
801
+
802
+ #nav-tree .item {
803
+ height: var(--tree-item-height);
804
+ line-height: var(--tree-item-height);
805
+ }
806
+
807
+ #nav-sync {
808
+ bottom: 12px;
809
+ right: 12px;
810
+ top: auto !important;
811
+ user-select: none;
812
+ }
813
+
814
+ #nav-tree .selected {
815
+ text-shadow: none;
816
+ background-image: none;
817
+ background-color: transparent;
818
+ position: relative;
819
+ }
820
+
821
+ #nav-tree .selected::after {
822
+ content: "";
823
+ position: absolute;
824
+ top: 1px;
825
+ bottom: 1px;
826
+ left: 0;
827
+ width: 4px;
828
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
829
+ background: var(--primary-color);
830
+ }
831
+
832
+
833
+ #nav-tree a {
834
+ color: var(--side-nav-foreground) !important;
835
+ font-weight: normal;
836
+ }
837
+
838
+ #nav-tree a:focus {
839
+ outline-style: auto;
840
+ }
841
+
842
+ #nav-tree .arrow {
843
+ opacity: var(--side-nav-arrow-opacity);
844
+ }
845
+
846
+ .arrow {
847
+ color: inherit;
848
+ cursor: pointer;
849
+ font-size: 45%;
850
+ vertical-align: middle;
851
+ margin-right: 2px;
852
+ font-family: serif;
853
+ height: auto;
854
+ text-align: right;
855
+ }
856
+
857
+ #nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow {
858
+ opacity: var(--side-nav-arrow-hover-opacity);
859
+ }
860
+
861
+ #nav-tree .selected a {
862
+ color: var(--primary-color) !important;
863
+ font-weight: bolder;
864
+ font-weight: 600;
865
+ }
866
+
867
+ .ui-resizable-e {
868
+ width: 4px;
869
+ background: transparent;
870
+ box-shadow: inset -1px 0 0 0 var(--separator-color);
871
+ }
872
+
873
+ /*
874
+ Contents
875
+ */
876
+
877
+ div.header {
878
+ border-bottom: 1px solid var(--separator-color);
879
+ background-color: var(--page-background-color);
880
+ background-image: none;
881
+ }
882
+
883
+ @media screen and (min-width: 1000px) {
884
+ #doc-content > div > div.contents,
885
+ .PageDoc > div.contents {
886
+ display: flex;
887
+ flex-direction: row-reverse;
888
+ flex-wrap: nowrap;
889
+ align-items: flex-start;
890
+ }
891
+
892
+ div.contents .textblock {
893
+ min-width: 200px;
894
+ flex-grow: 1;
895
+ }
896
+ }
897
+
898
+ div.contents, div.header .title, div.header .summary {
899
+ max-width: var(--content-maxwidth);
900
+ }
901
+
902
+ div.contents, div.header .title {
903
+ line-height: initial;
904
+ margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto;
905
+ }
906
+
907
+ div.header .summary {
908
+ margin: var(--spacing-medium) auto 0 auto;
909
+ }
910
+
911
+ div.headertitle {
912
+ padding: 0;
913
+ }
914
+
915
+ div.header .title {
916
+ font-weight: 600;
917
+ font-size: 225%;
918
+ padding: var(--spacing-medium) var(--spacing-large);
919
+ word-break: break-word;
920
+ }
921
+
922
+ div.header .summary {
923
+ width: auto;
924
+ display: block;
925
+ float: none;
926
+ padding: 0 var(--spacing-large);
927
+ }
928
+
929
+ td.memSeparator {
930
+ border-color: var(--separator-color);
931
+ }
932
+
933
+ span.mlabel {
934
+ background: var(--primary-color);
935
+ border: none;
936
+ padding: 4px 9px;
937
+ border-radius: 12px;
938
+ margin-right: var(--spacing-medium);
939
+ }
940
+
941
+ span.mlabel:last-of-type {
942
+ margin-right: 2px;
943
+ }
944
+
945
+ div.contents {
946
+ padding: 0 var(--spacing-large);
947
+ }
948
+
949
+ div.contents p, div.contents li {
950
+ line-height: var(--content-line-height);
951
+ }
952
+
953
+ div.contents div.dyncontent {
954
+ margin: var(--spacing-medium) 0;
955
+ }
956
+
957
+ @media (prefers-color-scheme: dark) {
958
+ html:not(.light-mode) div.contents div.dyncontent img,
959
+ html:not(.light-mode) div.contents center img,
960
+ html:not(.light-mode) div.contents > table img,
961
+ html:not(.light-mode) div.contents div.dyncontent iframe,
962
+ html:not(.light-mode) div.contents center iframe,
963
+ html:not(.light-mode) div.contents table iframe,
964
+ html:not(.light-mode) div.contents .dotgraph iframe {
965
+ filter: brightness(89%) hue-rotate(180deg) invert();
966
+ }
967
+ }
968
+
969
+ html.dark-mode div.contents div.dyncontent img,
970
+ html.dark-mode div.contents center img,
971
+ html.dark-mode div.contents > table img,
972
+ html.dark-mode div.contents div.dyncontent iframe,
973
+ html.dark-mode div.contents center iframe,
974
+ html.dark-mode div.contents table iframe,
975
+ html.dark-mode div.contents .dotgraph iframe
976
+ {
977
+ filter: brightness(89%) hue-rotate(180deg) invert();
978
+ }
979
+
980
+ h2.groupheader {
981
+ border-bottom: 0px;
982
+ color: var(--page-foreground-color);
983
+ box-shadow:
984
+ 100px 0 var(--page-background-color),
985
+ -100px 0 var(--page-background-color),
986
+ 100px 0.75px var(--separator-color),
987
+ -100px 0.75px var(--separator-color),
988
+ 500px 0 var(--page-background-color),
989
+ -500px 0 var(--page-background-color),
990
+ 500px 0.75px var(--separator-color),
991
+ -500px 0.75px var(--separator-color),
992
+ 900px 0 var(--page-background-color),
993
+ -900px 0 var(--page-background-color),
994
+ 900px 0.75px var(--separator-color),
995
+ -900px 0.75px var(--separator-color),
996
+ 1400px 0 var(--page-background-color),
997
+ -1400px 0 var(--page-background-color),
998
+ 1400px 0.75px var(--separator-color),
999
+ -1400px 0.75px var(--separator-color),
1000
+ 1900px 0 var(--page-background-color),
1001
+ -1900px 0 var(--page-background-color),
1002
+ 1900px 0.75px var(--separator-color),
1003
+ -1900px 0.75px var(--separator-color);
1004
+ }
1005
+
1006
+ blockquote {
1007
+ margin: 0 var(--spacing-medium) 0 var(--spacing-medium);
1008
+ padding: var(--spacing-small) var(--spacing-large);
1009
+ background: var(--blockquote-background);
1010
+ color: var(--blockquote-foreground);
1011
+ border-left: 0;
1012
+ overflow: visible;
1013
+ border-radius: var(--border-radius-medium);
1014
+ overflow: visible;
1015
+ position: relative;
1016
+ }
1017
+
1018
+ blockquote::before, blockquote::after {
1019
+ font-weight: bold;
1020
+ font-family: serif;
1021
+ font-size: 360%;
1022
+ opacity: .15;
1023
+ position: absolute;
1024
+ }
1025
+
1026
+ blockquote::before {
1027
+ content: "“";
1028
+ left: -10px;
1029
+ top: 4px;
1030
+ }
1031
+
1032
+ blockquote::after {
1033
+ content: "”";
1034
+ right: -8px;
1035
+ bottom: -25px;
1036
+ }
1037
+
1038
+ blockquote p {
1039
+ margin: var(--spacing-small) 0 var(--spacing-medium) 0;
1040
+ }
1041
+ .paramname {
1042
+ font-weight: 600;
1043
+ color: var(--primary-dark-color);
1044
+ }
1045
+
1046
+ .paramname > code {
1047
+ border: 0;
1048
+ }
1049
+
1050
+ table.params .paramname {
1051
+ font-weight: 600;
1052
+ font-family: var(--font-family-monospace);
1053
+ font-size: var(--code-font-size);
1054
+ padding-right: var(--spacing-small);
1055
+ line-height: var(--table-line-height);
1056
+ }
1057
+
1058
+ h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
1059
+ text-shadow: 0 0 15px var(--primary-light-color);
1060
+ }
1061
+
1062
+ .alphachar a {
1063
+ color: var(--page-foreground-color);
1064
+ }
1065
+
1066
+ .dotgraph {
1067
+ max-width: 100%;
1068
+ overflow-x: scroll;
1069
+ }
1070
+
1071
+ .dotgraph .caption {
1072
+ position: sticky;
1073
+ left: 0;
1074
+ }
1075
+
1076
+ /* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */
1077
+ .interactive_dotgraph .dotgraph iframe {
1078
+ max-width: 100%;
1079
+ }
1080
+
1081
+ /*
1082
+ Table of Contents
1083
+ */
1084
+
1085
+ div.contents .toc {
1086
+ max-height: var(--toc-max-height);
1087
+ min-width: var(--toc-width);
1088
+ border: 0;
1089
+ border-left: 1px solid var(--separator-color);
1090
+ border-radius: 0;
1091
+ background-color: transparent;
1092
+ box-shadow: none;
1093
+ position: sticky;
1094
+ top: var(--toc-sticky-top);
1095
+ padding: 0 var(--spacing-large);
1096
+ margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large);
1097
+ }
1098
+
1099
+ div.toc h3 {
1100
+ color: var(--toc-foreground);
1101
+ font-size: var(--navigation-font-size);
1102
+ margin: var(--spacing-large) 0 var(--spacing-medium) 0;
1103
+ }
1104
+
1105
+ div.toc li {
1106
+ padding: 0;
1107
+ background: none;
1108
+ line-height: var(--toc-font-size);
1109
+ margin: var(--toc-font-size) 0 0 0;
1110
+ }
1111
+
1112
+ div.toc li::before {
1113
+ display: none;
1114
+ }
1115
+
1116
+ div.toc ul {
1117
+ margin-top: 0
1118
+ }
1119
+
1120
+ div.toc li a {
1121
+ font-size: var(--toc-font-size);
1122
+ color: var(--page-foreground-color) !important;
1123
+ text-decoration: none;
1124
+ }
1125
+
1126
+ div.toc li a:hover, div.toc li a.active {
1127
+ color: var(--primary-color) !important;
1128
+ }
1129
+
1130
+ div.toc li a.aboveActive {
1131
+ color: var(--page-secondary-foreground-color) !important;
1132
+ }
1133
+
1134
+
1135
+ @media screen and (max-width: 999px) {
1136
+ div.contents .toc {
1137
+ max-height: 45vh;
1138
+ float: none;
1139
+ width: auto;
1140
+ margin: 0 0 var(--spacing-medium) 0;
1141
+ position: relative;
1142
+ top: 0;
1143
+ position: relative;
1144
+ border: 1px solid var(--separator-color);
1145
+ border-radius: var(--border-radius-medium);
1146
+ background-color: var(--toc-background);
1147
+ box-shadow: var(--box-shadow);
1148
+ }
1149
+
1150
+ div.contents .toc.interactive {
1151
+ max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large));
1152
+ overflow: hidden;
1153
+ }
1154
+
1155
+ div.contents .toc > h3 {
1156
+ -webkit-tap-highlight-color: transparent;
1157
+ cursor: pointer;
1158
+ position: sticky;
1159
+ top: 0;
1160
+ background-color: var(--toc-background);
1161
+ margin: 0;
1162
+ padding: var(--spacing-large) 0;
1163
+ display: block;
1164
+ }
1165
+
1166
+ div.contents .toc.interactive > h3::before {
1167
+ content: "";
1168
+ width: 0;
1169
+ height: 0;
1170
+ border-left: 4px solid transparent;
1171
+ border-right: 4px solid transparent;
1172
+ border-top: 5px solid var(--primary-color);
1173
+ display: inline-block;
1174
+ margin-right: var(--spacing-small);
1175
+ margin-bottom: calc(var(--navigation-font-size) / 4);
1176
+ transform: rotate(-90deg);
1177
+ transition: transform 0.25s ease-out;
1178
+ }
1179
+
1180
+ div.contents .toc.interactive.open > h3::before {
1181
+ transform: rotate(0deg);
1182
+ }
1183
+
1184
+ div.contents .toc.interactive.open {
1185
+ max-height: 45vh;
1186
+ overflow: auto;
1187
+ transition: max-height 0.2s ease-in-out;
1188
+ }
1189
+
1190
+ div.contents .toc a, div.contents .toc a.active {
1191
+ color: var(--primary-color) !important;
1192
+ }
1193
+
1194
+ div.contents .toc a:hover {
1195
+ text-decoration: underline;
1196
+ }
1197
+ }
1198
+
1199
+ /*
1200
+ Code & Fragments
1201
+ */
1202
+
1203
+ code, div.fragment, pre.fragment {
1204
+ border-radius: var(--border-radius-small);
1205
+ border: 1px solid var(--separator-color);
1206
+ overflow: hidden;
1207
+ }
1208
+
1209
+ code {
1210
+ display: inline;
1211
+ background: var(--code-background);
1212
+ color: var(--code-foreground);
1213
+ padding: 2px 6px;
1214
+ }
1215
+
1216
+ div.fragment, pre.fragment {
1217
+ margin: var(--spacing-medium) 0;
1218
+ padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large);
1219
+ background: var(--fragment-background);
1220
+ color: var(--fragment-foreground);
1221
+ overflow-x: auto;
1222
+ }
1223
+
1224
+ @media screen and (max-width: 767px) {
1225
+ div.fragment, pre.fragment {
1226
+ border-top-right-radius: 0;
1227
+ border-bottom-right-radius: 0;
1228
+ border-right: 0;
1229
+ }
1230
+
1231
+ .contents > div.fragment,
1232
+ .textblock > div.fragment,
1233
+ .textblock > pre.fragment,
1234
+ .contents > .doxygen-awesome-fragment-wrapper > div.fragment,
1235
+ .textblock > .doxygen-awesome-fragment-wrapper > div.fragment,
1236
+ .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment {
1237
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1238
+ border-radius: 0;
1239
+ border-left: 0;
1240
+ }
1241
+
1242
+ .textblock li > .fragment,
1243
+ .textblock li > .doxygen-awesome-fragment-wrapper > .fragment {
1244
+ margin: var(--spacing-medium) calc(0px - var(--spacing-large));
1245
+ }
1246
+
1247
+ .memdoc li > .fragment,
1248
+ .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment {
1249
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1250
+ }
1251
+
1252
+ .textblock ul, .memdoc ul {
1253
+ overflow: initial;
1254
+ }
1255
+
1256
+ .memdoc > div.fragment,
1257
+ .memdoc > pre.fragment,
1258
+ dl dd > div.fragment,
1259
+ dl dd pre.fragment,
1260
+ .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment,
1261
+ .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment,
1262
+ dl dd > .doxygen-awesome-fragment-wrapper > div.fragment,
1263
+ dl dd .doxygen-awesome-fragment-wrapper > pre.fragment {
1264
+ margin: var(--spacing-medium) calc(0px - var(--spacing-medium));
1265
+ border-radius: 0;
1266
+ border-left: 0;
1267
+ }
1268
+ }
1269
+
1270
+ code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span {
1271
+ font-family: var(--font-family-monospace);
1272
+ font-size: var(--code-font-size) !important;
1273
+ }
1274
+
1275
+ div.line:after {
1276
+ margin-right: var(--spacing-medium);
1277
+ }
1278
+
1279
+ div.fragment .line, pre.fragment {
1280
+ white-space: pre;
1281
+ word-wrap: initial;
1282
+ line-height: var(--fragment-lineheight);
1283
+ }
1284
+
1285
+ div.fragment span.keyword {
1286
+ color: var(--fragment-keyword);
1287
+ }
1288
+
1289
+ div.fragment span.keywordtype {
1290
+ color: var(--fragment-keywordtype);
1291
+ }
1292
+
1293
+ div.fragment span.keywordflow {
1294
+ color: var(--fragment-keywordflow);
1295
+ }
1296
+
1297
+ div.fragment span.stringliteral {
1298
+ color: var(--fragment-token)
1299
+ }
1300
+
1301
+ div.fragment span.comment {
1302
+ color: var(--fragment-comment);
1303
+ }
1304
+
1305
+ div.fragment a.code {
1306
+ color: var(--fragment-link) !important;
1307
+ }
1308
+
1309
+ div.fragment span.preprocessor {
1310
+ color: var(--fragment-preprocessor);
1311
+ }
1312
+
1313
+ div.fragment span.lineno {
1314
+ display: inline-block;
1315
+ width: 27px;
1316
+ border-right: none;
1317
+ background: var(--fragment-linenumber-background);
1318
+ color: var(--fragment-linenumber-color);
1319
+ }
1320
+
1321
+ div.fragment span.lineno a {
1322
+ background: none;
1323
+ color: var(--fragment-link) !important;
1324
+ }
1325
+
1326
+ div.fragment .line:first-child .lineno {
1327
+ box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border);
1328
+ }
1329
+
1330
+ div.line {
1331
+ border-radius: var(--border-radius-small);
1332
+ }
1333
+
1334
+ div.line.glow {
1335
+ background-color: var(--primary-light-color);
1336
+ box-shadow: none;
1337
+ }
1338
+
1339
+ /*
1340
+ dl warning, attention, note, deprecated, bug, ...
1341
+ */
1342
+
1343
+ dl.bug dt a, dl.deprecated dt a, dl.todo dt a {
1344
+ font-weight: bold !important;
1345
+ }
1346
+
1347
+ dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark {
1348
+ padding: var(--spacing-medium);
1349
+ margin: var(--spacing-medium) 0;
1350
+ color: var(--page-background-color);
1351
+ overflow: hidden;
1352
+ margin-left: 0;
1353
+ border-radius: var(--border-radius-small);
1354
+ }
1355
+
1356
+ dl.section dd {
1357
+ margin-bottom: 2px;
1358
+ }
1359
+
1360
+ dl.warning, dl.attention {
1361
+ background: var(--warning-color);
1362
+ border-left: 8px solid var(--warning-color-dark);
1363
+ color: var(--warning-color-darker);
1364
+ }
1365
+
1366
+ dl.warning dt, dl.attention dt {
1367
+ color: var(--warning-color-dark);
1368
+ }
1369
+
1370
+ dl.note, dl.remark {
1371
+ background: var(--note-color);
1372
+ border-left: 8px solid var(--note-color-dark);
1373
+ color: var(--note-color-darker);
1374
+ }
1375
+
1376
+ dl.note dt, dl.remark dt {
1377
+ color: var(--note-color-dark);
1378
+ }
1379
+
1380
+ dl.todo {
1381
+ background: var(--todo-color);
1382
+ border-left: 8px solid var(--todo-color-dark);
1383
+ color: var(--todo-color-darker);
1384
+ }
1385
+
1386
+ dl.todo dt {
1387
+ color: var(--todo-color-dark);
1388
+ }
1389
+
1390
+ dl.bug dt a {
1391
+ color: var(--todo-color-dark) !important;
1392
+ }
1393
+
1394
+ dl.bug {
1395
+ background: var(--bug-color);
1396
+ border-left: 8px solid var(--bug-color-dark);
1397
+ color: var(--bug-color-darker);
1398
+ }
1399
+
1400
+ dl.bug dt a {
1401
+ color: var(--bug-color-dark) !important;
1402
+ }
1403
+
1404
+ dl.deprecated {
1405
+ background: var(--deprecated-color);
1406
+ border-left: 8px solid var(--deprecated-color-dark);
1407
+ color: var(--deprecated-color-darker);
1408
+ }
1409
+
1410
+ dl.deprecated dt a {
1411
+ color: var(--deprecated-color-dark) !important;
1412
+ }
1413
+
1414
+ dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd {
1415
+ margin-inline-start: 0px;
1416
+ }
1417
+
1418
+ dl.invariant, dl.pre, dl.post {
1419
+ background: var(--invariant-color);
1420
+ border-left: 8px solid var(--invariant-color-dark);
1421
+ color: var(--invariant-color-darker);
1422
+ }
1423
+
1424
+ dl.invariant dt, dl.pre dt, dl.post dt {
1425
+ color: var(--invariant-color-dark);
1426
+ }
1427
+
1428
+ /*
1429
+ memitem
1430
+ */
1431
+
1432
+ div.memdoc, div.memproto, h2.memtitle {
1433
+ box-shadow: none;
1434
+ background-image: none;
1435
+ border: none;
1436
+ }
1437
+
1438
+ div.memdoc {
1439
+ padding: 0 var(--spacing-medium);
1440
+ background: var(--page-background-color);
1441
+ }
1442
+
1443
+ h2.memtitle, div.memitem {
1444
+ border: 1px solid var(--separator-color);
1445
+ box-shadow: var(--box-shadow);
1446
+ }
1447
+
1448
+ h2.memtitle {
1449
+ box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow);
1450
+ }
1451
+
1452
+ div.memitem {
1453
+ transition: none;
1454
+ }
1455
+
1456
+ div.memproto, h2.memtitle {
1457
+ background: var(--fragment-background);
1458
+ }
1459
+
1460
+ h2.memtitle {
1461
+ font-weight: 500;
1462
+ font-size: var(--memtitle-font-size);
1463
+ font-family: var(--font-family-monospace);
1464
+ border-bottom: none;
1465
+ border-top-left-radius: var(--border-radius-medium);
1466
+ border-top-right-radius: var(--border-radius-medium);
1467
+ word-break: break-all;
1468
+ position: relative;
1469
+ }
1470
+
1471
+ h2.memtitle:after {
1472
+ content: "";
1473
+ display: block;
1474
+ background: var(--fragment-background);
1475
+ height: var(--spacing-medium);
1476
+ bottom: calc(0px - var(--spacing-medium));
1477
+ left: 0;
1478
+ right: -14px;
1479
+ position: absolute;
1480
+ border-top-right-radius: var(--border-radius-medium);
1481
+ }
1482
+
1483
+ h2.memtitle > span.permalink {
1484
+ font-size: inherit;
1485
+ }
1486
+
1487
+ h2.memtitle > span.permalink > a {
1488
+ text-decoration: none;
1489
+ padding-left: 3px;
1490
+ margin-right: -4px;
1491
+ user-select: none;
1492
+ display: inline-block;
1493
+ margin-top: -6px;
1494
+ }
1495
+
1496
+ h2.memtitle > span.permalink > a:hover {
1497
+ color: var(--primary-dark-color) !important;
1498
+ }
1499
+
1500
+ a:target + h2.memtitle, a:target + h2.memtitle + div.memitem {
1501
+ border-color: var(--primary-light-color);
1502
+ }
1503
+
1504
+ div.memitem {
1505
+ border-top-right-radius: var(--border-radius-medium);
1506
+ border-bottom-right-radius: var(--border-radius-medium);
1507
+ border-bottom-left-radius: var(--border-radius-medium);
1508
+ overflow: hidden;
1509
+ display: block !important;
1510
+ }
1511
+
1512
+ div.memdoc {
1513
+ border-radius: 0;
1514
+ }
1515
+
1516
+ div.memproto {
1517
+ border-radius: 0 var(--border-radius-small) 0 0;
1518
+ overflow: auto;
1519
+ border-bottom: 1px solid var(--separator-color);
1520
+ padding: var(--spacing-medium);
1521
+ margin-bottom: -1px;
1522
+ }
1523
+
1524
+ div.memtitle {
1525
+ border-top-right-radius: var(--border-radius-medium);
1526
+ border-top-left-radius: var(--border-radius-medium);
1527
+ }
1528
+
1529
+ div.memproto table.memname {
1530
+ font-family: var(--font-family-monospace);
1531
+ color: var(--page-foreground-color);
1532
+ font-size: var(--memname-font-size);
1533
+ text-shadow: none;
1534
+ }
1535
+
1536
+ div.memproto div.memtemplate {
1537
+ font-family: var(--font-family-monospace);
1538
+ color: var(--primary-dark-color);
1539
+ font-size: var(--memname-font-size);
1540
+ margin-left: 2px;
1541
+ text-shadow: none;
1542
+ }
1543
+
1544
+ table.mlabels, table.mlabels > tbody {
1545
+ display: block;
1546
+ }
1547
+
1548
+ td.mlabels-left {
1549
+ width: auto;
1550
+ }
1551
+
1552
+ td.mlabels-right {
1553
+ margin-top: 3px;
1554
+ position: sticky;
1555
+ left: 0;
1556
+ }
1557
+
1558
+ table.mlabels > tbody > tr:first-child {
1559
+ display: flex;
1560
+ justify-content: space-between;
1561
+ flex-wrap: wrap;
1562
+ }
1563
+
1564
+ .memname, .memitem span.mlabels {
1565
+ margin: 0
1566
+ }
1567
+
1568
+ /*
1569
+ reflist
1570
+ */
1571
+
1572
+ dl.reflist {
1573
+ box-shadow: var(--box-shadow);
1574
+ border-radius: var(--border-radius-medium);
1575
+ border: 1px solid var(--separator-color);
1576
+ overflow: hidden;
1577
+ padding: 0;
1578
+ }
1579
+
1580
+
1581
+ dl.reflist dt, dl.reflist dd {
1582
+ box-shadow: none;
1583
+ text-shadow: none;
1584
+ background-image: none;
1585
+ border: none;
1586
+ padding: 12px;
1587
+ }
1588
+
1589
+
1590
+ dl.reflist dt {
1591
+ font-weight: 500;
1592
+ border-radius: 0;
1593
+ background: var(--code-background);
1594
+ border-bottom: 1px solid var(--separator-color);
1595
+ color: var(--page-foreground-color)
1596
+ }
1597
+
1598
+
1599
+ dl.reflist dd {
1600
+ background: none;
1601
+ }
1602
+
1603
+ /*
1604
+ Table
1605
+ */
1606
+
1607
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname),
1608
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1609
+ display: inline-block;
1610
+ max-width: 100%;
1611
+ }
1612
+
1613
+ .contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) {
1614
+ margin-left: calc(0px - var(--spacing-large));
1615
+ margin-right: calc(0px - var(--spacing-large));
1616
+ max-width: calc(100% + 2 * var(--spacing-large));
1617
+ }
1618
+
1619
+ table.fieldtable,
1620
+ table.markdownTable tbody,
1621
+ table.doxtable tbody {
1622
+ border: none;
1623
+ margin: var(--spacing-medium) 0;
1624
+ box-shadow: 0 0 0 1px var(--separator-color);
1625
+ border-radius: var(--border-radius-small);
1626
+ }
1627
+
1628
+ table.markdownTable, table.doxtable, table.fieldtable {
1629
+ padding: 1px;
1630
+ }
1631
+
1632
+ table.doxtable caption {
1633
+ display: block;
1634
+ }
1635
+
1636
+ table.fieldtable {
1637
+ border-collapse: collapse;
1638
+ width: 100%;
1639
+ }
1640
+
1641
+ th.markdownTableHeadLeft,
1642
+ th.markdownTableHeadRight,
1643
+ th.markdownTableHeadCenter,
1644
+ th.markdownTableHeadNone,
1645
+ table.doxtable th {
1646
+ background: var(--tablehead-background);
1647
+ color: var(--tablehead-foreground);
1648
+ font-weight: 600;
1649
+ font-size: var(--page-font-size);
1650
+ }
1651
+
1652
+ th.markdownTableHeadLeft:first-child,
1653
+ th.markdownTableHeadRight:first-child,
1654
+ th.markdownTableHeadCenter:first-child,
1655
+ th.markdownTableHeadNone:first-child,
1656
+ table.doxtable tr th:first-child {
1657
+ border-top-left-radius: var(--border-radius-small);
1658
+ }
1659
+
1660
+ th.markdownTableHeadLeft:last-child,
1661
+ th.markdownTableHeadRight:last-child,
1662
+ th.markdownTableHeadCenter:last-child,
1663
+ th.markdownTableHeadNone:last-child,
1664
+ table.doxtable tr th:last-child {
1665
+ border-top-right-radius: var(--border-radius-small);
1666
+ }
1667
+
1668
+ table.markdownTable td,
1669
+ table.markdownTable th,
1670
+ table.fieldtable td,
1671
+ table.fieldtable th,
1672
+ table.doxtable td,
1673
+ table.doxtable th {
1674
+ border: 1px solid var(--separator-color);
1675
+ padding: var(--spacing-small) var(--spacing-medium);
1676
+ }
1677
+
1678
+ table.markdownTable td:last-child,
1679
+ table.markdownTable th:last-child,
1680
+ table.fieldtable td:last-child,
1681
+ table.fieldtable th:last-child,
1682
+ table.doxtable td:last-child,
1683
+ table.doxtable th:last-child {
1684
+ border-right: none;
1685
+ }
1686
+
1687
+ table.markdownTable td:first-child,
1688
+ table.markdownTable th:first-child,
1689
+ table.fieldtable td:first-child,
1690
+ table.fieldtable th:first-child,
1691
+ table.doxtable td:first-child,
1692
+ table.doxtable th:first-child {
1693
+ border-left: none;
1694
+ }
1695
+
1696
+ table.markdownTable tr:first-child td,
1697
+ table.markdownTable tr:first-child th,
1698
+ table.fieldtable tr:first-child td,
1699
+ table.fieldtable tr:first-child th,
1700
+ table.doxtable tr:first-child td,
1701
+ table.doxtable tr:first-child th {
1702
+ border-top: none;
1703
+ }
1704
+
1705
+ table.markdownTable tr:last-child td,
1706
+ table.markdownTable tr:last-child th,
1707
+ table.fieldtable tr:last-child td,
1708
+ table.fieldtable tr:last-child th,
1709
+ table.doxtable tr:last-child td,
1710
+ table.doxtable tr:last-child th {
1711
+ border-bottom: none;
1712
+ }
1713
+
1714
+ table.markdownTable tr, table.doxtable tr {
1715
+ border-bottom: 1px solid var(--separator-color);
1716
+ }
1717
+
1718
+ table.markdownTable tr:last-child, table.doxtable tr:last-child {
1719
+ border-bottom: none;
1720
+ }
1721
+
1722
+ .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) {
1723
+ display: block;
1724
+ }
1725
+
1726
+ .full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody {
1727
+ display: table;
1728
+ width: 100%;
1729
+ }
1730
+
1731
+ table.fieldtable th {
1732
+ font-size: var(--page-font-size);
1733
+ font-weight: 600;
1734
+ background-image: none;
1735
+ background-color: var(--tablehead-background);
1736
+ color: var(--tablehead-foreground);
1737
+ }
1738
+
1739
+ table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th {
1740
+ border-bottom: 1px solid var(--separator-color);
1741
+ border-right: 1px solid var(--separator-color);
1742
+ }
1743
+
1744
+ table.fieldtable tr:last-child td:first-child {
1745
+ border-bottom-left-radius: var(--border-radius-small);
1746
+ }
1747
+
1748
+ table.fieldtable tr:last-child td:last-child {
1749
+ border-bottom-right-radius: var(--border-radius-small);
1750
+ }
1751
+
1752
+ .memberdecls td.glow, .fieldtable tr.glow {
1753
+ background-color: var(--primary-light-color);
1754
+ box-shadow: none;
1755
+ }
1756
+
1757
+ table.memberdecls {
1758
+ display: block;
1759
+ -webkit-tap-highlight-color: transparent;
1760
+ }
1761
+
1762
+ table.memberdecls tr[class^='memitem'] {
1763
+ font-family: var(--font-family-monospace);
1764
+ font-size: var(--code-font-size);
1765
+ }
1766
+
1767
+ table.memberdecls tr[class^='memitem'] .memTemplParams {
1768
+ font-family: var(--font-family-monospace);
1769
+ font-size: var(--code-font-size);
1770
+ color: var(--primary-dark-color);
1771
+ white-space: normal;
1772
+ }
1773
+
1774
+ table.memberdecls .memItemLeft,
1775
+ table.memberdecls .memItemRight,
1776
+ table.memberdecls .memTemplItemLeft,
1777
+ table.memberdecls .memTemplItemRight,
1778
+ table.memberdecls .memTemplParams {
1779
+ transition: none;
1780
+ padding-top: var(--spacing-small);
1781
+ padding-bottom: var(--spacing-small);
1782
+ border-top: 1px solid var(--separator-color);
1783
+ border-bottom: 1px solid var(--separator-color);
1784
+ background-color: var(--fragment-background);
1785
+ }
1786
+
1787
+ table.memberdecls .memTemplItemLeft,
1788
+ table.memberdecls .memTemplItemRight {
1789
+ padding-top: 2px;
1790
+ }
1791
+
1792
+ table.memberdecls .memTemplParams {
1793
+ border-bottom: 0;
1794
+ border-left: 1px solid var(--separator-color);
1795
+ border-right: 1px solid var(--separator-color);
1796
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
1797
+ padding-bottom: var(--spacing-small);
1798
+ }
1799
+
1800
+ table.memberdecls .memTemplItemLeft {
1801
+ border-radius: 0 0 0 var(--border-radius-small);
1802
+ border-left: 1px solid var(--separator-color);
1803
+ border-top: 0;
1804
+ }
1805
+
1806
+ table.memberdecls .memTemplItemRight {
1807
+ border-radius: 0 0 var(--border-radius-small) 0;
1808
+ border-right: 1px solid var(--separator-color);
1809
+ padding-left: 0;
1810
+ border-top: 0;
1811
+ }
1812
+
1813
+ table.memberdecls .memItemLeft {
1814
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
1815
+ border-left: 1px solid var(--separator-color);
1816
+ padding-left: var(--spacing-medium);
1817
+ padding-right: 0;
1818
+ }
1819
+
1820
+ table.memberdecls .memItemRight {
1821
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
1822
+ border-right: 1px solid var(--separator-color);
1823
+ padding-right: var(--spacing-medium);
1824
+ padding-left: 0;
1825
+
1826
+ }
1827
+
1828
+ table.memberdecls .mdescLeft, table.memberdecls .mdescRight {
1829
+ background: none;
1830
+ color: var(--page-foreground-color);
1831
+ padding: var(--spacing-small) 0;
1832
+ }
1833
+
1834
+ table.memberdecls .memItemLeft,
1835
+ table.memberdecls .memTemplItemLeft {
1836
+ padding-right: var(--spacing-medium);
1837
+ }
1838
+
1839
+ table.memberdecls .memSeparator {
1840
+ background: var(--page-background-color);
1841
+ height: var(--spacing-large);
1842
+ border: 0;
1843
+ transition: none;
1844
+ }
1845
+
1846
+ table.memberdecls .groupheader {
1847
+ margin-bottom: var(--spacing-large);
1848
+ }
1849
+
1850
+ table.memberdecls .inherit_header td {
1851
+ padding: 0 0 var(--spacing-medium) 0;
1852
+ text-indent: -12px;
1853
+ color: var(--page-secondary-foreground-color);
1854
+ }
1855
+
1856
+ table.memberdecls img[src="closed.png"],
1857
+ table.memberdecls img[src="open.png"],
1858
+ div.dynheader img[src="open.png"],
1859
+ div.dynheader img[src="closed.png"] {
1860
+ width: 0;
1861
+ height: 0;
1862
+ border-left: 4px solid transparent;
1863
+ border-right: 4px solid transparent;
1864
+ border-top: 5px solid var(--primary-color);
1865
+ margin-top: 8px;
1866
+ display: block;
1867
+ float: left;
1868
+ margin-left: -10px;
1869
+ transition: transform 0.25s ease-out;
1870
+ }
1871
+
1872
+ table.memberdecls img {
1873
+ margin-right: 10px;
1874
+ }
1875
+
1876
+ table.memberdecls img[src="closed.png"],
1877
+ div.dynheader img[src="closed.png"] {
1878
+ transform: rotate(-90deg);
1879
+
1880
+ }
1881
+
1882
+ .compoundTemplParams {
1883
+ font-family: var(--font-family-monospace);
1884
+ color: var(--primary-dark-color);
1885
+ font-size: var(--code-font-size);
1886
+ }
1887
+
1888
+ @media screen and (max-width: 767px) {
1889
+
1890
+ table.memberdecls .memItemLeft,
1891
+ table.memberdecls .memItemRight,
1892
+ table.memberdecls .mdescLeft,
1893
+ table.memberdecls .mdescRight,
1894
+ table.memberdecls .memTemplItemLeft,
1895
+ table.memberdecls .memTemplItemRight,
1896
+ table.memberdecls .memTemplParams {
1897
+ display: block;
1898
+ text-align: left;
1899
+ padding-left: var(--spacing-large);
1900
+ margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large));
1901
+ border-right: none;
1902
+ border-left: none;
1903
+ border-radius: 0;
1904
+ white-space: normal;
1905
+ }
1906
+
1907
+ table.memberdecls .memItemLeft,
1908
+ table.memberdecls .mdescLeft,
1909
+ table.memberdecls .memTemplItemLeft {
1910
+ border-bottom: 0;
1911
+ padding-bottom: 0;
1912
+ }
1913
+
1914
+ table.memberdecls .memTemplItemLeft {
1915
+ padding-top: 0;
1916
+ }
1917
+
1918
+ table.memberdecls .mdescLeft {
1919
+ margin-bottom: calc(0px - var(--page-font-size));
1920
+ }
1921
+
1922
+ table.memberdecls .memItemRight,
1923
+ table.memberdecls .mdescRight,
1924
+ table.memberdecls .memTemplItemRight {
1925
+ border-top: 0;
1926
+ padding-top: 0;
1927
+ padding-right: var(--spacing-large);
1928
+ overflow-x: auto;
1929
+ }
1930
+
1931
+ table.memberdecls tr[class^='memitem']:not(.inherit) {
1932
+ display: block;
1933
+ width: calc(100vw - 2 * var(--spacing-large));
1934
+ }
1935
+
1936
+ table.memberdecls .mdescRight {
1937
+ color: var(--page-foreground-color);
1938
+ }
1939
+
1940
+ table.memberdecls tr.inherit {
1941
+ visibility: hidden;
1942
+ }
1943
+
1944
+ table.memberdecls tr[style="display: table-row;"] {
1945
+ display: block !important;
1946
+ visibility: visible;
1947
+ width: calc(100vw - 2 * var(--spacing-large));
1948
+ animation: fade .5s;
1949
+ }
1950
+
1951
+ @keyframes fade {
1952
+ 0% {
1953
+ opacity: 0;
1954
+ max-height: 0;
1955
+ }
1956
+
1957
+ 100% {
1958
+ opacity: 1;
1959
+ max-height: 200px;
1960
+ }
1961
+ }
1962
+ }
1963
+
1964
+
1965
+ /*
1966
+ Horizontal Rule
1967
+ */
1968
+
1969
+ hr {
1970
+ margin-top: var(--spacing-large);
1971
+ margin-bottom: var(--spacing-large);
1972
+ height: 1px;
1973
+ background-color: var(--separator-color);
1974
+ border: 0;
1975
+ }
1976
+
1977
+ .contents hr {
1978
+ box-shadow: 100px 0 0 var(--separator-color),
1979
+ -100px 0 0 var(--separator-color),
1980
+ 500px 0 0 var(--separator-color),
1981
+ -500px 0 0 var(--separator-color),
1982
+ 1500px 0 0 var(--separator-color),
1983
+ -1500px 0 0 var(--separator-color),
1984
+ 2000px 0 0 var(--separator-color),
1985
+ -2000px 0 0 var(--separator-color);
1986
+ }
1987
+
1988
+ .contents img, .contents .center, .contents center, .contents div.image object {
1989
+ max-width: 100%;
1990
+ overflow: auto;
1991
+ }
1992
+
1993
+ @media screen and (max-width: 767px) {
1994
+ .contents .dyncontent > .center, .contents > center {
1995
+ margin-left: calc(0px - var(--spacing-large));
1996
+ margin-right: calc(0px - var(--spacing-large));
1997
+ max-width: calc(100% + 2 * var(--spacing-large));
1998
+ }
1999
+ }
2000
+
2001
+ /*
2002
+ Directories
2003
+ */
2004
+ div.directory {
2005
+ border-top: 1px solid var(--separator-color);
2006
+ border-bottom: 1px solid var(--separator-color);
2007
+ width: auto;
2008
+ }
2009
+
2010
+ table.directory {
2011
+ font-family: var(--font-family);
2012
+ font-size: var(--page-font-size);
2013
+ font-weight: normal;
2014
+ width: 100%;
2015
+ }
2016
+
2017
+ table.directory td.entry, table.directory td.desc {
2018
+ padding: calc(var(--spacing-small) / 2) var(--spacing-small);
2019
+ line-height: var(--table-line-height);
2020
+ }
2021
+
2022
+ table.directory tr.even td:last-child {
2023
+ border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0;
2024
+ }
2025
+
2026
+ table.directory tr.even td:first-child {
2027
+ border-radius: var(--border-radius-small) 0 0 var(--border-radius-small);
2028
+ }
2029
+
2030
+ table.directory tr.even:last-child td:last-child {
2031
+ border-radius: 0 var(--border-radius-small) 0 0;
2032
+ }
2033
+
2034
+ table.directory tr.even:last-child td:first-child {
2035
+ border-radius: var(--border-radius-small) 0 0 0;
2036
+ }
2037
+
2038
+ table.directory td.desc {
2039
+ min-width: 250px;
2040
+ }
2041
+
2042
+ table.directory tr.even {
2043
+ background-color: var(--odd-color);
2044
+ }
2045
+
2046
+ table.directory tr.odd {
2047
+ background-color: transparent;
2048
+ }
2049
+
2050
+ .icona {
2051
+ width: auto;
2052
+ height: auto;
2053
+ margin: 0 var(--spacing-small);
2054
+ }
2055
+
2056
+ .icon {
2057
+ background: var(--primary-color);
2058
+ border-radius: var(--border-radius-small);
2059
+ font-size: var(--page-font-size);
2060
+ padding: calc(var(--page-font-size) / 5);
2061
+ line-height: var(--page-font-size);
2062
+ transform: scale(0.8);
2063
+ height: auto;
2064
+ width: var(--page-font-size);
2065
+ user-select: none;
2066
+ }
2067
+
2068
+ .iconfopen, .icondoc, .iconfclosed {
2069
+ background-position: center;
2070
+ margin-bottom: 0;
2071
+ height: var(--table-line-height);
2072
+ }
2073
+
2074
+ .icondoc {
2075
+ filter: saturate(0.2);
2076
+ }
2077
+
2078
+ @media screen and (max-width: 767px) {
2079
+ div.directory {
2080
+ margin-left: calc(0px - var(--spacing-large));
2081
+ margin-right: calc(0px - var(--spacing-large));
2082
+ }
2083
+ }
2084
+
2085
+ @media (prefers-color-scheme: dark) {
2086
+ html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed {
2087
+ filter: hue-rotate(180deg) invert();
2088
+ }
2089
+ }
2090
+
2091
+ html.dark-mode .iconfopen, html.dark-mode .iconfclosed {
2092
+ filter: hue-rotate(180deg) invert();
2093
+ }
2094
+
2095
+ /*
2096
+ Class list
2097
+ */
2098
+
2099
+ .classindex dl.odd {
2100
+ background: var(--odd-color);
2101
+ border-radius: var(--border-radius-small);
2102
+ }
2103
+
2104
+ .classindex dl.even {
2105
+ background-color: transparent;
2106
+ }
2107
+
2108
+ /*
2109
+ Class Index Doxygen 1.8
2110
+ */
2111
+
2112
+ table.classindex {
2113
+ margin-left: 0;
2114
+ margin-right: 0;
2115
+ width: 100%;
2116
+ }
2117
+
2118
+ table.classindex table div.ah {
2119
+ background-image: none;
2120
+ background-color: initial;
2121
+ border-color: var(--separator-color);
2122
+ color: var(--page-foreground-color);
2123
+ box-shadow: var(--box-shadow);
2124
+ border-radius: var(--border-radius-large);
2125
+ padding: var(--spacing-small);
2126
+ }
2127
+
2128
+ div.qindex {
2129
+ background-color: var(--odd-color);
2130
+ border-radius: var(--border-radius-small);
2131
+ border: 1px solid var(--separator-color);
2132
+ padding: var(--spacing-small) 0;
2133
+ }
2134
+
2135
+ /*
2136
+ Footer and nav-path
2137
+ */
2138
+
2139
+ #nav-path {
2140
+ width: 100%;
2141
+ }
2142
+
2143
+ #nav-path ul {
2144
+ background-image: none;
2145
+ background: var(--page-background-color);
2146
+ border: none;
2147
+ border-top: 1px solid var(--separator-color);
2148
+ border-bottom: 1px solid var(--separator-color);
2149
+ border-bottom: 0;
2150
+ box-shadow: 0 0.75px 0 var(--separator-color);
2151
+ font-size: var(--navigation-font-size);
2152
+ }
2153
+
2154
+ img.footer {
2155
+ width: 60px;
2156
+ }
2157
+
2158
+ .navpath li.footer {
2159
+ color: var(--page-secondary-foreground-color);
2160
+ }
2161
+
2162
+ address.footer {
2163
+ color: var(--page-secondary-foreground-color);
2164
+ margin-bottom: var(--spacing-large);
2165
+ }
2166
+
2167
+ #nav-path li.navelem {
2168
+ background-image: none;
2169
+ display: flex;
2170
+ align-items: center;
2171
+ }
2172
+
2173
+ .navpath li.navelem a {
2174
+ text-shadow: none;
2175
+ display: inline-block;
2176
+ color: var(--primary-color) !important;
2177
+ }
2178
+
2179
+ .navpath li.navelem b {
2180
+ color: var(--primary-dark-color);
2181
+ font-weight: 500;
2182
+ }
2183
+
2184
+ li.navelem {
2185
+ padding: 0;
2186
+ margin-left: -8px;
2187
+ }
2188
+
2189
+ li.navelem:first-child {
2190
+ margin-left: var(--spacing-large);
2191
+ }
2192
+
2193
+ li.navelem:first-child:before {
2194
+ display: none;
2195
+ }
2196
+
2197
+ #nav-path li.navelem:after {
2198
+ content: '';
2199
+ border: 5px solid var(--page-background-color);
2200
+ border-bottom-color: transparent;
2201
+ border-right-color: transparent;
2202
+ border-top-color: transparent;
2203
+ transform: translateY(-1px) scaleY(4.2);
2204
+ z-index: 10;
2205
+ margin-left: 6px;
2206
+ }
2207
+
2208
+ #nav-path li.navelem:before {
2209
+ content: '';
2210
+ border: 5px solid var(--separator-color);
2211
+ border-bottom-color: transparent;
2212
+ border-right-color: transparent;
2213
+ border-top-color: transparent;
2214
+ transform: translateY(-1px) scaleY(3.2);
2215
+ margin-right: var(--spacing-small);
2216
+ }
2217
+
2218
+ .navpath li.navelem a:hover {
2219
+ color: var(--primary-color);
2220
+ }
2221
+
2222
+ /*
2223
+ Scrollbars for Webkit
2224
+ */
2225
+
2226
+ #nav-tree::-webkit-scrollbar,
2227
+ div.fragment::-webkit-scrollbar,
2228
+ pre.fragment::-webkit-scrollbar,
2229
+ div.memproto::-webkit-scrollbar,
2230
+ .contents center::-webkit-scrollbar,
2231
+ .contents .center::-webkit-scrollbar,
2232
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar,
2233
+ div.contents .toc::-webkit-scrollbar,
2234
+ .contents .dotgraph::-webkit-scrollbar,
2235
+ .contents .tabs-overview-container::-webkit-scrollbar {
2236
+ background: transparent;
2237
+ width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2238
+ height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2239
+ }
2240
+
2241
+ #nav-tree::-webkit-scrollbar-thumb,
2242
+ div.fragment::-webkit-scrollbar-thumb,
2243
+ pre.fragment::-webkit-scrollbar-thumb,
2244
+ div.memproto::-webkit-scrollbar-thumb,
2245
+ .contents center::-webkit-scrollbar-thumb,
2246
+ .contents .center::-webkit-scrollbar-thumb,
2247
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb,
2248
+ div.contents .toc::-webkit-scrollbar-thumb,
2249
+ .contents .dotgraph::-webkit-scrollbar-thumb,
2250
+ .contents .tabs-overview-container::-webkit-scrollbar-thumb {
2251
+ background-color: transparent;
2252
+ border: var(--webkit-scrollbar-padding) solid transparent;
2253
+ border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding));
2254
+ background-clip: padding-box;
2255
+ }
2256
+
2257
+ #nav-tree:hover::-webkit-scrollbar-thumb,
2258
+ div.fragment:hover::-webkit-scrollbar-thumb,
2259
+ pre.fragment:hover::-webkit-scrollbar-thumb,
2260
+ div.memproto:hover::-webkit-scrollbar-thumb,
2261
+ .contents center:hover::-webkit-scrollbar-thumb,
2262
+ .contents .center:hover::-webkit-scrollbar-thumb,
2263
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb,
2264
+ div.contents .toc:hover::-webkit-scrollbar-thumb,
2265
+ .contents .dotgraph:hover::-webkit-scrollbar-thumb,
2266
+ .contents .tabs-overview-container:hover::-webkit-scrollbar-thumb {
2267
+ background-color: var(--webkit-scrollbar-color);
2268
+ }
2269
+
2270
+ #nav-tree::-webkit-scrollbar-track,
2271
+ div.fragment::-webkit-scrollbar-track,
2272
+ pre.fragment::-webkit-scrollbar-track,
2273
+ div.memproto::-webkit-scrollbar-track,
2274
+ .contents center::-webkit-scrollbar-track,
2275
+ .contents .center::-webkit-scrollbar-track,
2276
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track,
2277
+ div.contents .toc::-webkit-scrollbar-track,
2278
+ .contents .dotgraph::-webkit-scrollbar-track,
2279
+ .contents .tabs-overview-container::-webkit-scrollbar-track {
2280
+ background: transparent;
2281
+ }
2282
+
2283
+ #nav-tree::-webkit-scrollbar-corner {
2284
+ background-color: var(--side-nav-background);
2285
+ }
2286
+
2287
+ #nav-tree,
2288
+ div.fragment,
2289
+ pre.fragment,
2290
+ div.memproto,
2291
+ .contents center,
2292
+ .contents .center,
2293
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2294
+ div.contents .toc {
2295
+ overflow-x: auto;
2296
+ overflow-x: overlay;
2297
+ }
2298
+
2299
+ #nav-tree {
2300
+ overflow-x: auto;
2301
+ overflow-y: auto;
2302
+ overflow-y: overlay;
2303
+ }
2304
+
2305
+ /*
2306
+ Scrollbars for Firefox
2307
+ */
2308
+
2309
+ #nav-tree,
2310
+ div.fragment,
2311
+ pre.fragment,
2312
+ div.memproto,
2313
+ .contents center,
2314
+ .contents .center,
2315
+ .contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody,
2316
+ div.contents .toc,
2317
+ .contents .dotgraph,
2318
+ .contents .tabs-overview-container {
2319
+ scrollbar-width: thin;
2320
+ }
2321
+
2322
+ /*
2323
+ Optional Dark mode toggle button
2324
+ */
2325
+
2326
+ doxygen-awesome-dark-mode-toggle {
2327
+ display: inline-block;
2328
+ margin: 0 0 0 var(--spacing-small);
2329
+ padding: 0;
2330
+ width: var(--searchbar-height);
2331
+ height: var(--searchbar-height);
2332
+ background: none;
2333
+ border: none;
2334
+ border-radius: var(--searchbar-height);
2335
+ vertical-align: middle;
2336
+ text-align: center;
2337
+ line-height: var(--searchbar-height);
2338
+ font-size: 22px;
2339
+ display: flex;
2340
+ align-items: center;
2341
+ justify-content: center;
2342
+ user-select: none;
2343
+ cursor: pointer;
2344
+ }
2345
+
2346
+ doxygen-awesome-dark-mode-toggle > svg {
2347
+ transition: transform .1s ease-in-out;
2348
+ }
2349
+
2350
+ doxygen-awesome-dark-mode-toggle:active > svg {
2351
+ transform: scale(.5);
2352
+ }
2353
+
2354
+ doxygen-awesome-dark-mode-toggle:hover {
2355
+ background-color: rgba(0,0,0,.03);
2356
+ }
2357
+
2358
+ html.dark-mode doxygen-awesome-dark-mode-toggle:hover {
2359
+ background-color: rgba(0,0,0,.18);
2360
+ }
2361
+
2362
+ /*
2363
+ Optional fragment copy button
2364
+ */
2365
+ .doxygen-awesome-fragment-wrapper {
2366
+ position: relative;
2367
+ }
2368
+
2369
+ doxygen-awesome-fragment-copy-button {
2370
+ opacity: 0;
2371
+ background: var(--fragment-background);
2372
+ width: 28px;
2373
+ height: 28px;
2374
+ position: absolute;
2375
+ right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2376
+ top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5));
2377
+ border: 1px solid var(--fragment-foreground);
2378
+ cursor: pointer;
2379
+ border-radius: var(--border-radius-small);
2380
+ display: flex;
2381
+ justify-content: center;
2382
+ align-items: center;
2383
+ }
2384
+
2385
+ .doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success {
2386
+ opacity: .28;
2387
+ }
2388
+
2389
+ doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success {
2390
+ opacity: 1 !important;
2391
+ }
2392
+
2393
+ doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg {
2394
+ transform: scale(.91);
2395
+ }
2396
+
2397
+ doxygen-awesome-fragment-copy-button svg {
2398
+ fill: var(--fragment-foreground);
2399
+ width: 18px;
2400
+ height: 18px;
2401
+ }
2402
+
2403
+ doxygen-awesome-fragment-copy-button.success svg {
2404
+ fill: rgb(14, 168, 14);
2405
+ }
2406
+
2407
+ doxygen-awesome-fragment-copy-button.success {
2408
+ border-color: rgb(14, 168, 14);
2409
+ }
2410
+
2411
+ @media screen and (max-width: 767px) {
2412
+ .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2413
+ .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2414
+ .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2415
+ .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button,
2416
+ dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button {
2417
+ right: 0;
2418
+ }
2419
+ }
2420
+
2421
+ /*
2422
+ Optional paragraph link button
2423
+ */
2424
+
2425
+ a.anchorlink {
2426
+ font-size: 90%;
2427
+ margin-left: var(--spacing-small);
2428
+ color: var(--page-foreground-color) !important;
2429
+ text-decoration: none;
2430
+ opacity: .15;
2431
+ display: none;
2432
+ transition: opacity .1s ease-in-out, color .1s ease-in-out;
2433
+ }
2434
+
2435
+ a.anchorlink svg {
2436
+ fill: var(--page-foreground-color);
2437
+ }
2438
+
2439
+ h3 a.anchorlink svg, h4 a.anchorlink svg {
2440
+ margin-bottom: -3px;
2441
+ margin-top: -4px;
2442
+ }
2443
+
2444
+ a.anchorlink:hover {
2445
+ opacity: .45;
2446
+ }
2447
+
2448
+ h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink {
2449
+ display: inline-block;
2450
+ }
2451
+
2452
+ /*
2453
+ Optional tab feature
2454
+ */
2455
+
2456
+ .tabbed {
2457
+ margin: var(--spacing-medium) auto;
2458
+ }
2459
+
2460
+ .tabbed ul {
2461
+ padding-inline-start: 0px;
2462
+ margin: 0;
2463
+ padding: var(--spacing-small) 0;
2464
+ border-bottom: 1px solid var(--separator-color);
2465
+ }
2466
+
2467
+ .tabbed li {
2468
+ display: none;
2469
+ }
2470
+
2471
+ .tabbed li.selected {
2472
+ display: block;
2473
+ }
2474
+
2475
+ .tabs-overview-container {
2476
+ overflow-x: auto;
2477
+ display: block;
2478
+ overflow-y: visible;
2479
+ }
2480
+
2481
+ .tabs-overview {
2482
+ border-bottom: 1px solid var(--separator-color);
2483
+ display: flex;
2484
+ flex-direction: row;
2485
+ }
2486
+
2487
+ .tabs-overview button.tab-button {
2488
+ color: var(--page-foreground-color);
2489
+ margin: 0;
2490
+ border: none;
2491
+ background: transparent;
2492
+ padding: var(--spacing-small) 0;
2493
+ display: inline-block;
2494
+ font-size: var(--page-font-size);
2495
+ cursor: pointer;
2496
+ box-shadow: 0 1px 0 0 var(--separator-color);
2497
+ position: relative;
2498
+ }
2499
+
2500
+ .tabs-overview button.tab-button .tab-title {
2501
+ float: left;
2502
+ white-space: nowrap;
2503
+ padding: var(--spacing-small) var(--spacing-large);
2504
+ border-radius: var(--border-radius-medium);
2505
+ }
2506
+
2507
+ .tabs-overview button.tab-button:not(:last-child) .tab-title {
2508
+ box-shadow: 8px 0 0 -7px var(--separator-color);
2509
+ }
2510
+
2511
+ .tabs-overview button.tab-button:hover .tab-title {
2512
+ background: var(--separator-color);
2513
+ box-shadow: none;
2514
+ }
2515
+
2516
+ .tabs-overview button.tab-button.active {
2517
+ color: var(--primary-color);
2518
+ }
2519
+
2520
+ .tabs-overview button.tab-button.active::after {
2521
+ content: '';
2522
+ display: block;
2523
+ position: absolute;
2524
+ left: 0px;
2525
+ bottom: 0;
2526
+ right: 0px;
2527
+ height: 3px;
2528
+ border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;
2529
+ background-color: var(--primary-color);
2530
+ }