···1717License: CC0-1.0
1818Comment: Prevents needing a license header per fragment between releases.
19192020+Files: doc/doxygen-awesome-css/*
2121+Copyright: 2021-2023, jothepro
2222+License: MIT
2323+Comment: SPDX-License-Identifier missing.
2424+2025Files: src/external/cjson/*
2126Copyright: 2009-2017, Dave Gamble and cJSON contributors
2227License: MIT
···14141515-->
16161717+[TOC]
1818+1719Here are some general code style guidelines we follow.
18201921Note that we aim to "code with respect", to avoid terminology that may limit our
+21
doc/doxygen-awesome-css/LICENSE
···11+MIT License
22+33+Copyright (c) 2021 - 2023 jothepro
44+55+Permission is hereby granted, free of charge, to any person obtaining a copy
66+of this software and associated documentation files (the "Software"), to deal
77+in the Software without restriction, including without limitation the rights
88+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
99+copies of the Software, and to permit persons to whom the Software is
1010+furnished to do so, subject to the following conditions:
1111+1212+The above copyright notice and this permission notice shall be included in all
1313+copies or substantial portions of the Software.
1414+1515+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1616+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1717+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1818+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121+SOFTWARE.
+166
doc/doxygen-awesome-css/README.md
···11+# Doxygen Awesome
22+33+[](https://github.com/jothepro/doxygen-awesome-css/releases/latest)
44+[](https://github.com/jothepro/doxygen-awesome-css/blob/main/LICENSE)
55+
66+77+<div class="title_screenshot">
88+99+
1010+1111+</div>
1212+1313+**Doxygen Awesome** is a custom **CSS theme for Doxygen HTML-documentation** with lots of customization parameters.
1414+1515+## Motivation
1616+1717+I really like how the Doxygen HTML-documentation is structured! But IMHO it looks a bit outdated.
1818+1919+This theme is an attempt to update the visuals of Doxygen without changing its overall layout too much.
2020+2121+## Features
2222+2323+- 🌈 Clean, modern design
2424+- 🚀 Heavily customizable by adjusting CSS-variables
2525+- 🧩 No changes to the HTML structure of Doxygen required
2626+- 📱 Improved mobile usability
2727+- 🌘 Dark mode support!
2828+- 🥇 Works best with **doxygen 1.9.1** - **1.9.4** and **1.9.6** - **1.9.7**
2929+3030+## Examples
3131+3232+Some websites using this theme:
3333+3434+- [Documentation of this repository](https://jothepro.github.io/doxygen-awesome-css/)
3535+- [wxWidgets](https://docs.wxwidgets.org/3.2/)
3636+- [OpenCV 5.x](https://docs.opencv.org/5.x/)
3737+- [Zephyr](https://docs.zephyrproject.org/latest/doxygen/html/index.html)
3838+- [FELTOR](https://mwiesenberger.github.io/feltor/dg/html/modules.html)
3939+- [Spatial Audio Framework (SAF)](https://leomccormack.github.io/Spatial_Audio_Framework/index.html)
4040+- [libCloudSync](https://jothepro.github.io/libCloudSync/)
4141+- [libsl3](https://a4z.github.io/libsl3/)
4242+4343+## Installation
4444+4545+To use the theme when generating your documentation, bring the required CSS and JS files from this repository into your project.
4646+4747+This can be done in several ways:
4848+4949+- manually copying the files
5050+- adding the project as a Git submodule
5151+- adding the project as a npm/xpm dependency
5252+- installing the theme system wide
5353+5454+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.
5555+5656+### Git submodule
5757+5858+For projects which use git, add the repository as a submodule and check out the desired release:
5959+6060+```sh
6161+git submodule add https://github.com/jothepro/doxygen-awesome-css.git
6262+cd doxygen-awesome-css
6363+git checkout v2.2.1
6464+```
6565+6666+### npm/xpm dependency
6767+6868+In the npm ecosystem, this project can be added as a development dependency
6969+to your project:
7070+7171+```sh
7272+cd your-project
7373+npm install https://github.com/jothepro/doxygen-awesome-css#v2.2.1 --save-dev
7474+7575+ls -l node_module/@jothepro/doxygen-awesome-css
7676+```
7777+7878+Similarly, in the [xPack](https://xpack.github.io) ecosystem, this project can be added
7979+as a development dependency to an [`xpm`](https://xpack.github.io/xpm/)
8080+managed project.
8181+8282+### System-wide
8383+8484+You can even install the theme system-wide by running `make install`. The files will be installed to `/usr/local/share/` by default, but you can customize the install location with `make PREFIX=/my/custom/path install`.
8585+8686+### Choosing a layout
8787+8888+There is two layout options. Choose one of them and configure Doxygen accordingly:
8989+9090+<div class="darkmode_inverted_image">
9191+9292+
9393+9494+</div>
9595+9696+<div class="tabbed">
9797+9898+- <b class="tab-title">1️⃣ Base Theme </b>
9999+ Comes with the typical Doxygen titlebar. Optionally the treeview in the sidebar can be enabled.
100100+101101+ Required files: `doxygen-awesome.css`
102102+103103+ Required `Doxyfile` configuration:
104104+ ```
105105+ GENERATE_TREEVIEW = YES # optional. Also works without treeview
106106+ DISABLE_INDEX = NO
107107+ FULL_SIDEBAR = NO
108108+ HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css
109109+ HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
110110+ ```
111111+112112+- <b class="tab-title">2️⃣ Sidebar-Only Theme </b>
113113+ Hides the top titlebar to give more space to the content. The treeview must be enabled in order for this theme to work.
114114+115115+ Required files: `doxygen-awesome.css`, `doxygen-awesome-sidebar-only.css`
116116+117117+ Required `Doxyfile` configuration:
118118+ ```
119119+120120+ GENERATE_TREEVIEW = YES # required!
121121+ DISABLE_INDEX = NO
122122+ FULL_SIDEBAR = NO
123123+ HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
124124+ doxygen-awesome-css/doxygen-awesome-sidebar-only.css
125125+ HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
126126+ ```
127127+128128+</div>
129129+130130+**Caution**:
131131+- This theme is not compatible with the `FULL_SIDEBAR = YES` option provided by Doxygen!
132132+- `HTML_COLORSTYLE` must be set to `LIGHT` since Doxygen 1.9.5!
133133+134134+### Further installation instructions:
135135+136136+- [Installing extensions](docs/extensions.md)
137137+- [Customizing the theme (colors, spacing, border-radius, ...)](docs/customization.md)
138138+- [Tips and Tricks for further configuration](docs/tricks.md)
139139+140140+## Browser support
141141+142142+Tested with
143143+144144+- Chrome 110, Chrome 109 for Android, Chrome 110 for iOS
145145+- Safari 16, Safari for iOS 16
146146+- Firefox 110, Firefox 110 for Android, Firefox 109 for iOS
147147+- Edge 110
148148+149149+150150+The theme does not strive to be backwards compatible to (significantly) older browser versions.
151151+152152+153153+## Credits
154154+155155+Thanks for all the bug reports and inspiring feedback on github!
156156+157157+Special thanks to all the contributors:
158158+<br><br>
159159+<a href="https://github.com/jothepro/doxygen-awesome-css/graphs/contributors">
160160+ <img src="https://contrib.rocks/image?repo=jothepro/doxygen-awesome-css" />
161161+</a>
162162+163163+<span class="next_section_button">
164164+165165+Read Next: [Extensions](docs/extensions.md)
166166+</span>
···11+/**
22+33+Doxygen Awesome
44+https://github.com/jothepro/doxygen-awesome-css
55+66+MIT License
77+88+Copyright (c) 2022 - 2023 jothepro
99+1010+Permission is hereby granted, free of charge, to any person obtaining a copy
1111+of this software and associated documentation files (the "Software"), to deal
1212+in the Software without restriction, including without limitation the rights
1313+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1414+copies of the Software, and to permit persons to whom the Software is
1515+furnished to do so, subject to the following conditions:
1616+1717+The above copyright notice and this permission notice shall be included in all
1818+copies or substantial portions of the Software.
1919+2020+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2121+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2222+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2323+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2424+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2525+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626+SOFTWARE.
2727+2828+*/
2929+3030+class DoxygenAwesomeFragmentCopyButton extends HTMLElement {
3131+ constructor() {
3232+ super();
3333+ this.onclick=this.copyContent
3434+ }
3535+ static title = "Copy to clipboard"
3636+ static copyIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></svg>`
3737+ static successIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/></svg>`
3838+ static successDuration = 980
3939+ static init() {
4040+ $(function() {
4141+ $(document).ready(function() {
4242+ if(navigator.clipboard) {
4343+ const fragments = document.getElementsByClassName("fragment")
4444+ for(const fragment of fragments) {
4545+ const fragmentWrapper = document.createElement("div")
4646+ fragmentWrapper.className = "doxygen-awesome-fragment-wrapper"
4747+ const fragmentCopyButton = document.createElement("doxygen-awesome-fragment-copy-button")
4848+ fragmentCopyButton.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
4949+ fragmentCopyButton.title = DoxygenAwesomeFragmentCopyButton.title
5050+5151+ fragment.parentNode.replaceChild(fragmentWrapper, fragment)
5252+ fragmentWrapper.appendChild(fragment)
5353+ fragmentWrapper.appendChild(fragmentCopyButton)
5454+5555+ }
5656+ }
5757+ })
5858+ })
5959+ }
6060+6161+6262+ copyContent() {
6363+ const content = this.previousSibling.cloneNode(true)
6464+ // filter out line number from file listings
6565+ content.querySelectorAll(".lineno, .ttc").forEach((node) => {
6666+ node.remove()
6767+ })
6868+ let textContent = content.textContent
6969+ // remove trailing newlines that appear in file listings
7070+ let numberOfTrailingNewlines = 0
7171+ while(textContent.charAt(textContent.length - (numberOfTrailingNewlines + 1)) == '\n') {
7272+ numberOfTrailingNewlines++;
7373+ }
7474+ textContent = textContent.substring(0, textContent.length - numberOfTrailingNewlines)
7575+ navigator.clipboard.writeText(textContent);
7676+ this.classList.add("success")
7777+ this.innerHTML = DoxygenAwesomeFragmentCopyButton.successIcon
7878+ window.setTimeout(() => {
7979+ this.classList.remove("success")
8080+ this.innerHTML = DoxygenAwesomeFragmentCopyButton.copyIcon
8181+ }, DoxygenAwesomeFragmentCopyButton.successDuration);
8282+ }
8383+}
8484+8585+customElements.define("doxygen-awesome-fragment-copy-button", DoxygenAwesomeFragmentCopyButton)
···11+/**
22+33+Doxygen Awesome
44+https://github.com/jothepro/doxygen-awesome-css
55+66+MIT License
77+88+Copyright (c) 2022 - 2023 jothepro
99+1010+Permission is hereby granted, free of charge, to any person obtaining a copy
1111+of this software and associated documentation files (the "Software"), to deal
1212+in the Software without restriction, including without limitation the rights
1313+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1414+copies of the Software, and to permit persons to whom the Software is
1515+furnished to do so, subject to the following conditions:
1616+1717+The above copyright notice and this permission notice shall be included in all
1818+copies or substantial portions of the Software.
1919+2020+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2121+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2222+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2323+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2424+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2525+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626+SOFTWARE.
2727+2828+*/
2929+3030+class DoxygenAwesomeInteractiveToc {
3131+ static topOffset = 38
3232+ static hideMobileMenu = true
3333+ static headers = []
3434+3535+ static init() {
3636+ window.addEventListener("load", () => {
3737+ let toc = document.querySelector(".contents > .toc")
3838+ if(toc) {
3939+ toc.classList.add("interactive")
4040+ if(!DoxygenAwesomeInteractiveToc.hideMobileMenu) {
4141+ toc.classList.add("open")
4242+ }
4343+ document.querySelector(".contents > .toc > h3")?.addEventListener("click", () => {
4444+ if(toc.classList.contains("open")) {
4545+ toc.classList.remove("open")
4646+ } else {
4747+ toc.classList.add("open")
4848+ }
4949+ })
5050+5151+ document.querySelectorAll(".contents > .toc > ul a").forEach((node) => {
5252+ let id = node.getAttribute("href").substring(1)
5353+ DoxygenAwesomeInteractiveToc.headers.push({
5454+ node: node,
5555+ headerNode: document.getElementById(id)
5656+ })
5757+5858+ document.getElementById("doc-content")?.addEventListener("scroll", () => {
5959+ DoxygenAwesomeInteractiveToc.update()
6060+ })
6161+ })
6262+ DoxygenAwesomeInteractiveToc.update()
6363+ }
6464+ })
6565+ }
6666+6767+ static update() {
6868+ let active = DoxygenAwesomeInteractiveToc.headers[0]?.node
6969+ DoxygenAwesomeInteractiveToc.headers.forEach((header) => {
7070+ let position = header.headerNode.getBoundingClientRect().top
7171+ header.node.classList.remove("active")
7272+ header.node.classList.remove("aboveActive")
7373+ if(position < DoxygenAwesomeInteractiveToc.topOffset) {
7474+ active = header.node
7575+ active?.classList.add("aboveActive")
7676+ }
7777+ })
7878+ active?.classList.add("active")
7979+ active?.classList.remove("aboveActive")
8080+ }
8181+}
···11+/**
22+33+Doxygen Awesome
44+https://github.com/jothepro/doxygen-awesome-css
55+66+MIT License
77+88+Copyright (c) 2022 - 2023 jothepro
99+1010+Permission is hereby granted, free of charge, to any person obtaining a copy
1111+of this software and associated documentation files (the "Software"), to deal
1212+in the Software without restriction, including without limitation the rights
1313+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1414+copies of the Software, and to permit persons to whom the Software is
1515+furnished to do so, subject to the following conditions:
1616+1717+The above copyright notice and this permission notice shall be included in all
1818+copies or substantial portions of the Software.
1919+2020+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2121+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2222+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2323+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2424+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2525+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626+SOFTWARE.
2727+2828+*/
2929+3030+class DoxygenAwesomeParagraphLink {
3131+ // Icon from https://fonts.google.com/icons
3232+ // Licensed under the Apache 2.0 license:
3333+ // https://www.apache.org/licenses/LICENSE-2.0.html
3434+ static icon = `<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5zm-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-2zm-3-4h8v2H8z"/></svg>`
3535+ static title = "Permanent Link"
3636+ static init() {
3737+ $(function() {
3838+ $(document).ready(function() {
3939+ document.querySelectorAll(".contents a.anchor[id], .contents .groupheader > a[id]").forEach((node) => {
4040+ let anchorlink = document.createElement("a")
4141+ anchorlink.setAttribute("href", `#${node.getAttribute("id")}`)
4242+ anchorlink.setAttribute("title", DoxygenAwesomeParagraphLink.title)
4343+ anchorlink.classList.add("anchorlink")
4444+ node.classList.add("anchor")
4545+ anchorlink.innerHTML = DoxygenAwesomeParagraphLink.icon
4646+ node.parentElement.appendChild(anchorlink)
4747+ })
4848+ })
4949+ })
5050+ }
5151+}
···11+22+/**
33+44+Doxygen Awesome
55+https://github.com/jothepro/doxygen-awesome-css
66+77+MIT License
88+99+Copyright (c) 2021 - 2023 jothepro
1010+1111+Permission is hereby granted, free of charge, to any person obtaining a copy
1212+of this software and associated documentation files (the "Software"), to deal
1313+in the Software without restriction, including without limitation the rights
1414+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1515+copies of the Software, and to permit persons to whom the Software is
1616+furnished to do so, subject to the following conditions:
1717+1818+The above copyright notice and this permission notice shall be included in all
1919+copies or substantial portions of the Software.
2020+2121+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2222+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2323+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2424+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2525+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2626+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2727+SOFTWARE.
2828+2929+*/
3030+3131+@media screen and (min-width: 768px) {
3232+3333+ #MSearchBox {
3434+ width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px);
3535+ }
3636+3737+ #MSearchField {
3838+ width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height));
3939+ }
4040+}
···11+/**
22+33+Doxygen Awesome
44+https://github.com/jothepro/doxygen-awesome-css
55+66+MIT License
77+88+Copyright (c) 2021 - 2023 jothepro
99+1010+Permission is hereby granted, free of charge, to any person obtaining a copy
1111+of this software and associated documentation files (the "Software"), to deal
1212+in the Software without restriction, including without limitation the rights
1313+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1414+copies of the Software, and to permit persons to whom the Software is
1515+furnished to do so, subject to the following conditions:
1616+1717+The above copyright notice and this permission notice shall be included in all
1818+copies or substantial portions of the Software.
1919+2020+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2121+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2222+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2323+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2424+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2525+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626+SOFTWARE.
2727+2828+ */
2929+3030+html {
3131+ /* side nav width. MUST be = `TREEVIEW_WIDTH`.
3232+ * Make sure it is wide enough to contain the page title (logo + title + version)
3333+ */
3434+ --side-nav-fixed-width: 335px;
3535+ --menu-display: none;
3636+3737+ --top-height: 120px;
3838+ --toc-sticky-top: -25px;
3939+ --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 25px);
4040+}
4141+4242+#projectname {
4343+ white-space: nowrap;
4444+}
4545+4646+4747+@media screen and (min-width: 768px) {
4848+ html {
4949+ --searchbar-background: var(--page-background-color);
5050+ }
5151+5252+ #side-nav {
5353+ min-width: var(--side-nav-fixed-width);
5454+ max-width: var(--side-nav-fixed-width);
5555+ top: var(--top-height);
5656+ overflow: visible;
5757+ }
5858+5959+ #nav-tree, #side-nav {
6060+ height: calc(100vh - var(--top-height)) !important;
6161+ }
6262+6363+ #nav-tree {
6464+ padding: 0;
6565+ }
6666+6767+ #top {
6868+ display: block;
6969+ border-bottom: none;
7070+ height: var(--top-height);
7171+ margin-bottom: calc(0px - var(--top-height));
7272+ max-width: var(--side-nav-fixed-width);
7373+ overflow: hidden;
7474+ background: var(--side-nav-background);
7575+ }
7676+ #main-nav {
7777+ float: left;
7878+ padding-right: 0;
7979+ }
8080+8181+ .ui-resizable-handle {
8282+ cursor: default;
8383+ width: 1px !important;
8484+ background: var(--separator-color);
8585+ box-shadow: 0 calc(-2 * var(--top-height)) 0 0 var(--separator-color);
8686+ }
8787+8888+ #nav-path {
8989+ position: fixed;
9090+ right: 0;
9191+ left: var(--side-nav-fixed-width);
9292+ bottom: 0;
9393+ width: auto;
9494+ }
9595+9696+ #doc-content {
9797+ height: calc(100vh - 31px) !important;
9898+ padding-bottom: calc(3 * var(--spacing-large));
9999+ padding-top: calc(var(--top-height) - 80px);
100100+ box-sizing: border-box;
101101+ margin-left: var(--side-nav-fixed-width) !important;
102102+ }
103103+104104+ #MSearchBox {
105105+ width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)));
106106+ }
107107+108108+ #MSearchField {
109109+ width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 65px);
110110+ }
111111+112112+ #MSearchResultsWindow {
113113+ left: var(--spacing-medium) !important;
114114+ right: auto;
115115+ }
116116+}
+70
doc/doxygen-awesome-css/doxygen-awesome-tabs.js
···11+/**
22+33+Doxygen Awesome
44+https://github.com/jothepro/doxygen-awesome-css
55+66+MIT License
77+88+Copyright (c) 2023 jothepro
99+1010+Permission is hereby granted, free of charge, to any person obtaining a copy
1111+of this software and associated documentation files (the "Software"), to deal
1212+in the Software without restriction, including without limitation the rights
1313+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1414+copies of the Software, and to permit persons to whom the Software is
1515+furnished to do so, subject to the following conditions:
1616+1717+The above copyright notice and this permission notice shall be included in all
1818+copies or substantial portions of the Software.
1919+2020+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2121+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2222+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2323+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2424+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2525+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2626+SOFTWARE.
2727+2828+*/
2929+3030+class DoxygenAwesomeTabs {
3131+3232+ static init() {
3333+ window.addEventListener("load", () => {
3434+ document.querySelectorAll(".tabbed:not(:empty)").forEach((tabbed, tabbedIndex) => {
3535+ let tabLinkList = []
3636+ tabbed.querySelectorAll("li").forEach((tab, tabIndex) => {
3737+ tab.id = "tab_" + tabbedIndex + "_" + tabIndex
3838+ let header = tab.querySelector(".tab-title")
3939+ let tabLink = document.createElement("button")
4040+ tabLink.classList.add("tab-button")
4141+ tabLink.appendChild(header)
4242+ tabLink.addEventListener("click", () => {
4343+ tabbed.querySelectorAll("li").forEach((tab) => {
4444+ tab.classList.remove("selected")
4545+ })
4646+ tabLinkList.forEach((tabLink) => {
4747+ tabLink.classList.remove("active")
4848+ })
4949+ tab.classList.add("selected")
5050+ tabLink.classList.add("active")
5151+ })
5252+ tabLinkList.push(tabLink)
5353+ if(tabIndex == 0) {
5454+ tab.classList.add("selected")
5555+ tabLink.classList.add("active")
5656+ }
5757+ })
5858+ let tabsOverview = document.createElement("div")
5959+ tabsOverview.classList.add("tabs-overview")
6060+ let tabsOverviewContainer = document.createElement("div")
6161+ tabsOverviewContainer.classList.add("tabs-overview-container")
6262+ tabLinkList.forEach((tabLink) => {
6363+ tabsOverview.appendChild(tabLink)
6464+ })
6565+ tabsOverviewContainer.appendChild(tabsOverview)
6666+ tabbed.before(tabsOverviewContainer)
6767+ })
6868+ })
6969+ }
7070+}
···55SPDX-License-Identifier: BSL-1.0
66-->
7788+[TOC]
99+810- Last updated: 12-September-2022
9111012When the service starts, an `xrt_instance` is created and selected, a native
+2-1
doc/mainpage.md
···55SPDX-License-Identifier: BSL-1.0
66-->
7788+[TOC]
99+810This documentation is intended for developers wanting to dive into the code of
911Monado. It also assumes that you have read [README.md][]: that file also holds
1012getting started information and general documentation.
···8284 aux_tracking and @ref aux_math.
8385* src/xrt/targets - glue code and build logic to produce final binaries.
8486* src/external - a small collection of external code and headers.
8585-
+2
doc/winbuild.md
···55SPDX-License-Identifier: BSL-1.0
66-->
7788+[TOC]
99+810Monado has a work-in-progress port to Windows. While it's not ready for
911widespread usage due to some rough edges and lack of drivers, it does build and
1012can serve as a base for further development.