Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae proin sagittis nisl rhoncus mattis rhoncus urna neque viverra. Velit sed ullamcorper morbi tincidunt ornare.
+
Lorem ipsum dolor sit amet consectetur adipiscing elit duis.
+
+
- jothepro
+
+Code block
+
auto x = "code within md fences (```)";
+
// code within @code block
+
while(true) {
+
auto example = std::make_shared<Example>(5);
+
example->test("test");
+
}
+
// code within indented code block
+auto test = std::shared_ptr<Example(5);
+
Inline code elements in a text. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. This also works within multiline text and does not break the layout.
+
+Special hints
+
Warning
this is a warning only for demonstration purposes
+
Note
this is a note to show that notes work. They can also include code:
long_function_with_many_parameters(std::shared_ptr< T > ¶m1, std::shared_ptr< std::string > ¶m2, bool parameter3, Alice paramater4 Bob parameter 5)
Method to find a child node by a given path. The path is name tags separated by a slash. The last tag name if the tag of the node to find This method will return the first matched node
Pop a node from the children list of a child node. The path is name tags separated by a slash. This method will pop the first matched node. This method is equivalent to findChildByPath and then popChild.
Parameters
+
+
path
the path relative to the current node
+
tag
tag of the node to pop
+
delimiter
the separator used in path to delimit nodes
+
+
+
+
Returns
the popped node or a null pointer if node is not found
Pop a node from the children list of a child node. The path is name tags separated by a slash. This method will pop the first matched node. This method is equivalent to findChildByPath and then popChild.
Parameters
+
+
path
the path relative to the current node
+
delimiter
the separator used in path to delimit nodes
+
+
+
+
Returns
the popped node or a null pointer if node is not found
Remove a node from the children list of a child node. The path is name tags separated by a slash. This method will remove the first matched node. This method is equivalent to findChildByPath and then rmChild
Remove a node from the children list of a child node. The path is name tags separated by a slash. This method will remove the first matched node. This method is equivalent to findChildByPath and then rmChild
To use the theme in your documentation, copy the required CSS and JS files from this repository into your project or add the repository as submodule and check out the latest release:
All theme files are located in the root of this repository and start with the prefix doxygen-awesome-. You may not need all of them. Follow the install instructions to figure out what files are required for your setup.
+
+Choosing a layout
+
There is two layout options. Choose one of them and configure Doxygen accordingly:
+
+Base Theme (1)
+
Comes with the typical Doxygen titlebar. Optionally the treeview in the sidebar can be enabled.
+
Required files: doxygen-awesome.css
+
Required Doxyfile configuration:
GENERATE_TREEVIEW = YES # optional. Also works without treeview
Make sure to override the variables in the correct spot. All variables should be customized where they have been defined, in the html tag selector:
+
html {
+
/* override light-mode variables here */
+
}
+
For dark-mode overrides you have to choose where to put them, depending on wether the dark-mode toggle extension is installed or not:
+
+
dark-mode toggle is installed:
html.dark-mode {
+
/* define dark-mode variable overrides here if you DO use doxygen-awesome-darkmode-toggle.js */
+
}
+
+
dark-mode toggle is NOT installed. The dark-mode is enabled automatically depending on the system preference:
@media (prefers-color-scheme: dark) {
+
html:not(.light-mode) {
+
/* define dark-mode variable overrides here if you DON'T use doxygen-awesome-darkmode-toggle.js */
+
}
+
}
+
+
+
+Available variables
+
The following list gives an overview of the variables defined in doxygen-awesome.css.
+
The list is not complete. To explore all available variables, have a look at the CSS starting from here. All variables are defined at the beginning of the stylesheet.
+
+
+
Parameter
Default (Light)
Default (Dark)
+
+
Color Scheme:
+primary theme colors. This will affect the entire websites color scheme: links, arrows, labels, ...
+
+
--primary-color
#1779c4
#1982d2
+
+
--primary-dark-color
#335c80
#5ca8e2
+
+
--primary-light-color
#70b1e9
#4779ac
+
+
Page Colors:
+background and foreground (text-color) of the documentation.
+
+
--page-background-color
#ffffff
#1C1D1F
+
+
--page-foreground-color
#2f4153
#d2dbde
+
+
--page-secondary-foreground-color
#6f7e8e
#859399
+
+
Spacing:
+default spacings. Most ui components reference these values for spacing, to provide uniform spacing on the page.
+
+
--spacing-small
5px
+
+
--spacing-medium
10px
+
+
--spacing-large
16px
+
+
Border Radius:
+border radius for all rounded ui components. Will affect many components, like dropdowns, memitems, codeblocks, ...
+
+
--border-radius-small
4px
+
+
--border-radius-medium
6px
+
+
--border-radius-large
8px
+
+
Content Width:
+The content is centered and constrained in its width. To make the content fill the whole page, set the following variable to auto.
+
+
--content-maxwidth
1000px
+
+
Code Fragment Colors:
+Color-Scheme of multiline codeblocks
+
+
--fragment-background
#F8F9FA
#282c34
+
+
--fragment-foreground
#37474F
#dbe4eb
+
+
Arrow Opacity:
+By default the arrows in the sidebar are only visible on hover. You can override this behaviour so they are visible all the time.
+
+
--side-nav-arrow-opacity
0
+
+
--side-nav-arrow-hover-opacity
0.9
+
+
...and many more
+
+
If you miss a configuration option or find a bug, please consider opening an issue!
+
+Doxygen generator
+
The theme overrides most colors with the --primary-color-* variables.
+
But there is a few small images and graphics that the theme cannot adjust or replace. To make these blend in better with the rest, it is recommended to adjust the doxygen color settings to something that matches the chosen color-scheme.
+
For the default color-scheme, these values work out quite well:
+
# Doxyfile
+
HTML_COLORSTYLE_HUE = 209
+
HTML_COLORSTYLE_SAT = 255
+
HTML_COLORSTYLE_GAMMA = 113
+
+Share your customizations
+
If you customized the theme with custom colors, spacings, font-sizes, etc. and you want to share your creation with others, you can to this here.
+
I am always curious to learn about how you made the theme look even better!
On top of the base theme provided by doxygen-awesome.css, this repository comes with Javascript extensions that require additional setup steps to get them running.
+
The extensions require customizations in the header HTML-template. This is how you can create the default template with Doxygen:
+
+
Create default header template:
doxygen -w html header.html delete_me.html delete_me.css
The icon of the button can be changed. Both plain characters or SVG icons are supported:
DoxygenAwesomeParagraphLink.icon = "¶"
+
All customizations must be applied before calling DoxygenAwesomeParagraphLink.init()!
+
+Interactive TOC
+
On large screens the Table of Contents (TOC) is anchored on the top right of the page. This extension visualizes the reading progress by dynamically highlighting the currently active section.
+
On small screens the extension hides the TOC by default. The user can open it manually when needed:
The offset for when a headline is considered active can be changed. A smaller value means that the headline of the section must be closer to the top of the viewport before it is highlighted in the TOC:
DoxygenAwesomeInteractiveToc.topOffset = 45
+
Hiding the TOC on small screens can be disabled. It is still interactive and can be hidden by the user but will now be open by default:
To get the best looking class diagrams for your documentation, generate them with Graphviz as vector graphics with transparent background:
+
# Doxyfile
+
HAVE_DOT = YES
+
DOT_IMAGE_FORMAT = svg
+
DOT_TRANSPARENT = YES
+
+Disable Dark Mode
+
If for some reason you don't want the theme to automatically switch to dark mode depending on the browser preference, you can disable dark mode by adding the light-mode class to the html-tag in the header template:
This only works if you don't use the dark-mode toggle extension.
+
+Choosing Sidebar Width
+
If you have enabled the sidebar-only theme variant, make sure to carefully choose a proper width for your sidebar. It should be wide enough to hold the icon, project title and version number. If the content is too wide, it will be cut off.
+
html {
+
/* Make sure sidebar is wide enough to contain the page title (logo + title + version) */
+
--side-nav-fixed-width: 335px;
+
}
+
The choosen width should also be set in the Doxyfile:
+
+
diff --git a/menu.js b/menu.js
new file mode 100644
index 0000000..818b859
--- /dev/null
+++ b/menu.js
@@ -0,0 +1,135 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+ function makeTree(data,relPath) {
+ var result='';
+ if ('children' in data) {
+ result+='
';
+ for (var i in data.children) {
+ var url;
+ var link;
+ link = data.children[i].url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ } else {
+ url = relPath+link;
+ }
+ result+='
');
+ $('#main-nav').append(makeTree(menudata,relPath));
+ $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+ if (searchBox) {
+ $('#main-menu').append('');
+ }
+ var $mainMenuState = $('#main-menu-state');
+ var prevWidth = 0;
+ if ($mainMenuState.length) {
+ function initResizableIfExists() {
+ if (typeof initResizable==='function') initResizable();
+ }
+ // animate mobile menu
+ $mainMenuState.change(function(e) {
+ var $menu = $('#main-menu');
+ var options = { duration: 250, step: initResizableIfExists };
+ if (this.checked) {
+ options['complete'] = function() { $menu.css('display', 'block') };
+ $menu.hide().slideDown(options);
+ } else {
+ options['complete'] = function() { $menu.css('display', 'none') };
+ $menu.show().slideUp(options);
+ }
+ });
+ // set default menu visibility
+ function resetState() {
+ var $menu = $('#main-menu');
+ var $mainMenuState = $('#main-menu-state');
+ var newWidth = $(window).outerWidth();
+ if (newWidth!=prevWidth) {
+ if ($(window).outerWidth()<768) {
+ $mainMenuState.prop('checked',false); $menu.hide();
+ $('#searchBoxPos1').html(searchBox);
+ $('#searchBoxPos2').hide();
+ } else {
+ $menu.show();
+ $('#searchBoxPos1').empty();
+ $('#searchBoxPos2').html(searchBox);
+ $('#searchBoxPos2').show();
+ }
+ prevWidth = newWidth;
+ }
+ }
+ $(window).ready(function() { resetState(); initResizableIfExists(); });
+ $(window).resize(resetState);
+ }
+ $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/menudata.js b/menudata.js
new file mode 100644
index 0000000..8252648
--- /dev/null
+++ b/menudata.js
@@ -0,0 +1,69 @@
+/*
+ @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 menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Classes",url:"annotated.html",children:[
+{text:"Class List",url:"annotated.html"},
+{text:"Class Index",url:"classes.html"},
+{text:"Class Hierarchy",url:"hierarchy.html"},
+{text:"Class Members",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"_",url:"functions.html#index__5F"},
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"n",url:"functions.html#index_n"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"v",url:"functions.html#index_v"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Functions",url:"functions_func.html",children:[
+{text:"_",url:"functions_func.html#index__5F"},
+{text:"a",url:"functions_func.html#index_a"},
+{text:"b",url:"functions_func.html#index_b"},
+{text:"d",url:"functions_func.html#index_d"},
+{text:"e",url:"functions_func.html#index_e"},
+{text:"f",url:"functions_func.html#index_f"},
+{text:"g",url:"functions_func.html#index_g"},
+{text:"l",url:"functions_func.html#index_l"},
+{text:"m",url:"functions_func.html#index_m"},
+{text:"n",url:"functions_func.html#index_n"},
+{text:"p",url:"functions_func.html#index_p"},
+{text:"r",url:"functions_func.html#index_r"},
+{text:"s",url:"functions_func.html#index_s"},
+{text:"t",url:"functions_func.html#index_t"},
+{text:"v",url:"functions_func.html#index_v"},
+{text:"w",url:"functions_func.html#index_w"}]},
+{text:"Variables",url:"functions_vars.html"}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"}]}]}
diff --git a/myxmlpp_8hpp_source.html b/myxmlpp_8hpp_source.html
new file mode 100644
index 0000000..26cf39d
--- /dev/null
+++ b/myxmlpp_8hpp_source.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+myxmlpp: include/myxmlpp/myxmlpp.hpp Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resize.js b/resize.js
new file mode 100644
index 0000000..7fe30d1
--- /dev/null
+++ b/resize.js
@@ -0,0 +1,150 @@
+/*
+ @licstart The following is the entire license notice for the JavaScript code in this file.
+
+ The MIT License (MIT)
+
+ Copyright (C) 1997-2020 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend The above is the entire license notice for the JavaScript code in this file
+ */
+function initResizable()
+{
+ var cookie_namespace = 'doxygen';
+ var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
+
+ function readCookie(cookie)
+ {
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie) {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1) {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1) {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+ }
+
+ function writeCookie(cookie, val, expiration)
+ {
+ if (val==undefined) return;
+ if (expiration == null) {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
+ }
+
+ function resizeWidth()
+ {
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ writeCookie('width',sidenavWidth-barWidth, null);
+ }
+
+ function restoreWidth(navWidth)
+ {
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
+ sidenav.css({width:navWidth + "px"});
+ }
+
+ function resizeHeight()
+ {
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height();
+ var contentHeight,navtreeHeight,sideNavHeight;
+ if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
+ contentHeight = windowHeight - headerHeight - footerHeight;
+ navtreeHeight = contentHeight;
+ sideNavHeight = contentHeight;
+ } else if (page_layout==1) { /* DISABLE_INDEX=YES */
+ contentHeight = windowHeight - footerHeight;
+ navtreeHeight = windowHeight - headerHeight;
+ sideNavHeight = windowHeight;
+ }
+ content.css({height:contentHeight + "px"});
+ navtree.css({height:navtreeHeight + "px"});
+ sidenav.css({height:sideNavHeight + "px"});
+ var width=$(window).width();
+ if (width!=collapsedWidth) {
+ if (width=desktop_vp) {
+ if (!collapsed) {
+ collapseExpand();
+ }
+ } else if (width>desktop_vp && collapsedWidth0) {
+ restoreWidth(0);
+ collapsed=true;
+ }
+ else {
+ var width = readCookie('width');
+ if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
+ collapsed=false;
+ }
+ }
+
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(sidenav).resizable({ minWidth: 0 });
+ $(window).resize(function() { resizeHeight(); });
+ var device = navigator.userAgent.toLowerCase();
+ var touch_device = device.match(/(iphone|ipod|ipad|android)/);
+ if (touch_device) { /* wider split bar for touch only devices */
+ $(sidenav).css({ paddingRight:'20px' });
+ $('.ui-resizable-e').css({ width:'20px' });
+ $('#nav-sync').css({ right:'34px' });
+ barWidth=20;
+ }
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(".ui-resizable-handle").dblclick(collapseExpand);
+ $(window).on('load',resizeHeight);
+}
+/* @license-end */
diff --git a/search/all_0.html b/search/all_0.html
new file mode 100644
index 0000000..bb9e364
--- /dev/null
+++ b/search/all_0.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+