diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index c8b5a7e5..79d2cbd7 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,91 +1,225 @@ # # Build the documentation # -if (${CMAKE_VERSION} VERSION_GREATER "3.8.99") - +# To build the documentation with a local doxygen-awesome-css tarball: +# +# cmake -S . -B obj \ +# -DDOXYGEN_AWESOME_CSS_TARBALL=/path/to/doxygen-awesome-css.tar.gz cmake +# --build obj --target docs +# +# The tarball can be downloaded from: +# https://github.com/jothepro/doxygen-awesome-css/archive/refs/tags/v2.4.1.tar.gz +# find_package(Doxygen) if (DOXYGEN_FOUND) + # Allow specifying a local tarball for doxygen-awesome-css (useful for + # packaging) + if (NOT DEFINED DOXYGEN_AWESOME_CSS_TARBALL) + set(DOXYGEN_AWESOME_CSS_TARBALL + "https://github.com/jothepro/doxygen-awesome-css/archive/refs/tags/v2.4.1.tar.gz" + ) + endif () + + include(FetchContent) + FetchContent_Declare( + doxygen-awesome-css URL ${DOXYGEN_AWESOME_CSS_TARBALL} + DOWNLOAD_EXTRACT_TIMESTAMP TRUE) + FetchContent_MakeAvailable(doxygen-awesome-css) + + # Get the path to doxygen-awesome.css + FetchContent_GetProperties(doxygen-awesome-css SOURCE_DIR AWESOME_CSS_DIR) + + # Project title shown in documentation set(DOXYGEN_PROJECT_NAME ${PROJECT_NAME}) + # Project version number shown in documentation set(DOXYGEN_PROJECT_NUMBER ${PROJECT_VERSION}) + # Brief description shown below project name set(DOXYGEN_PROJECT_BRIEF "The SSH library") + # Project favicon (browser tab icon) + set(DOXYGEN_PROJECT_ICON ${CMAKE_CURRENT_SOURCE_DIR}/favicon.png) + # Number of spaces used for indentation in code blocks set(DOXYGEN_TAB_SIZE 4) + # Generate output optimized for C (vs C++) set(DOXYGEN_OPTIMIZE_OUTPUT_FOR_C YES) + # Enable parsing of markdown in comments set(DOXYGEN_MARKDOWN_SUPPORT YES) - set(DOXYGEN_FULL_PATH_NAMES NO) - set(DOXYGEN_GENERATE_TAGFILE "tags.xml") + # Warn about undocumented members to improve documentation quality + set(DOXYGEN_WARN_IF_UNDOCUMENTED YES) + # Do not extract private class members + set(DOXYGEN_EXTRACT_PRIVATE NO) + # Do not include internal documentation + set(DOXYGEN_INTERNAL_DOCS NO) + # Disable built-in clipboard (using doxygen-awesome extension instead) + set(DOXYGEN_HTML_COPY_CLIPBOARD NO) + # Disable page outline panel (using interactive TOC extension instead) + set(DOXYGEN_PAGE_OUTLINE_PANEL NO) - set(DOXYGEN_PREDEFINED DOXYGEN - WITH_SERVER - WITH_SFTP + # Required configuration for doxygen-awesome-css theme Generate treeview + # sidebar for navigation + set(DOXYGEN_GENERATE_TREEVIEW YES) + # Enable default index pages + set(DOXYGEN_DISABLE_INDEX NO) + # Use top navigation bar instead of full sidebar (required for theme + # compatibility) + set(DOXYGEN_FULL_SIDEBAR NO) + # Use light color style (required for Doxygen >= 1.9.5) + set(DOXYGEN_HTML_COLORSTYLE LIGHT) + + # Disable diagram generation (not relevant for C projects) + set(DOXYGEN_HAVE_DOT NO) + set(DOXYGEN_CLASS_DIAGRAMS NO) + set(DOXYGEN_CALL_GRAPH NO) + set(DOXYGEN_CALLER_GRAPH NO) + + # Preprocessor defines to use when parsing code + set(DOXYGEN_PREDEFINED DOXYGEN WITH_SERVER WITH_SFTP PRINTF_ATTRIBUTE\(x,y\)) - set(DOXYGEN_DOT_GRAPH_MAX_NODES 100) - set(DOXYGEN_EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/that_style) - set(DOXYGEN_HTML_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/that_style/header.html) - set(DOXYGEN_HTML_EXTRA_STYLESHEET ${CMAKE_CURRENT_SOURCE_DIR}/that_style/that_style.css) - set(DOXYGEN_HTML_EXTRA_FILES ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/nav_edge_left.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/nav_edge_right.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/nav_edge_inter.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/sync_off.png - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/sync_on.png - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/splitbar_handle.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/doc.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/mag_glass.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/folderclosed.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/img/folderopen.svg - ${CMAKE_CURRENT_SOURCE_DIR}/that_style/js/striped_bg.js) - set(DOXYGEN_EXCLUDE_PATTERNS */src/external/* fe25519.h ge25519.h sc25519.h - blf.h) - set(DOXYGEN_EXCLUDE_SYMBOLS_STRUCTS chacha20_poly1305_keysched,dh_ctx,dh_ctx,dh_keypair,error_struct, - packet_struct,pem_get_password_struct,ssh_tokens_st, - sftp_attributes_struct,sftp_client_message_struct, - sftp_dir_struct,sftp_ext_struct,sftp_file_struct,sftp_message_struct, - sftp_packet_struct,sftp_request_queue_struct,sftp_session_struct, - sftp_status_message_struct,ssh_agent_state_struct, - ssh_agent_struct,ssh_auth_auto_state_struct,ssh_auth_request, - ssh_bind_config_keyword_table_s,ssh_bind_config_match_keyword_table_s, - ssh_bind_struct,ssh_buffer_struct,ssh_channel_callbacks_struct, - ssh_channel_read_termination_struct,ssh_channel_request, - ssh_channel_request_open,ssh_channel_struct,ssh_cipher_struct, - ssh_common_struct,ssh_config_keyword_table_s, - ssh_config_match_keyword_table_s,ssh_connector_struct, - ssh_counter_struct,ssh_crypto_struct,ssh_event_fd_wrapper, - ssh_event_struct,ssh_global_request,ssh_gssapi_struct,ssh_hmac_struct, - ssh_iterator,ssh_kbdint_struct,ssh_kex_struct,ssh_key_struct, - ssh_knownhosts_entry,ssh_list,ssh_mac_ctx_struct,ssh_message_struct, - ssh_packet_callbacks_struct,ssh_packet_header,ssh_poll_ctx_struct, - ssh_poll_handle_struct,ssh_pollfd_struct,ssh_private_key_struct, - ssh_public_key_struct,ssh_scp_struct,ssh_service_request, - ssh_session_struct,ssh_signature_struct,ssh_socket_struct, - ssh_string_struct,ssh_threads_callbacks_struct,ssh_timestamp,) - set(DOXYGEN_EXCLUDE_SYMBOLS_MACRO SSH_FXP*,SSH_SOCKET*,SERVERBANNER,SOCKOPT_TYPE_ARG4,SSH_FILEXFER*, - SSH_FXF*,SSH_S_*,SFTP_*,NSS_BUFLEN_PASSWD,CLOCK,MAX_LINE_SIZE, - PKCS11_URI,KNOWNHOSTS_MAXTYPES,) - set(DOXYGEN_EXCLUDE_SYMBOLS_TYPEDEFS sftp_attributes,sftp_client_message,sftp_dir,sftp_ext,sftp_file, - sftp_message,sftp_packet,sftp_request_queue,sftp_session, - sftp_status_message,sftp_statvfs_t,poll_fn,ssh_callback_int, - ssh_callback_data,ssh_callback_int_int,ssh_message_callback, - ssh_channel_callback_int,ssh_channel_callback_data,ssh_callbacks, - ssh_gssapi_select_oid_callback,ssh_gssapi_accept_sec_ctx_callback, - ssh_gssapi_verify_mic_callback,ssh_server_callbacks,ssh_socket_callbacks, - ssh_packet_callbacks,ssh_channel_callbacks,ssh_bind,ssh_bind_callbacks,) - set(DOXYGEN_EXCLUDE_SYMBOLS ${DOXYGEN_EXCLUDE_SYMBOLS_STRUCTS} - ${DOXYGEN_EXCLUDE_SYMBOLS_MACRO} - ${DOXYGEN_EXCLUDE_SYMBOLS_TYPEDEFS}) + # Exclude patterns for files we don't want to document + set(DOXYGEN_EXCLUDE_PATTERNS */src/external/* fe25519.h ge25519.h sc25519.h + blf.h) + # Exclude internal structures from documentation + set(DOXYGEN_EXCLUDE_SYMBOLS_STRUCTS + chacha20_poly1305_keysched, + dh_ctx, + dh_ctx, + dh_keypair, + error_struct, + packet_struct, + pem_get_password_struct, + ssh_tokens_st, + sftp_attributes_struct, + sftp_client_message_struct, + sftp_dir_struct, + sftp_ext_struct, + sftp_file_struct, + sftp_message_struct, + sftp_packet_struct, + sftp_request_queue_struct, + sftp_session_struct, + sftp_status_message_struct, + ssh_agent_state_struct, + ssh_agent_struct, + ssh_auth_auto_state_struct, + ssh_auth_request, + ssh_bind_config_keyword_table_s, + ssh_bind_config_match_keyword_table_s, + ssh_bind_struct, + ssh_buffer_struct, + ssh_channel_callbacks_struct, + ssh_channel_read_termination_struct, + ssh_channel_request, + ssh_channel_request_open, + ssh_channel_struct, + ssh_cipher_struct, + ssh_common_struct, + ssh_config_keyword_table_s, + ssh_config_match_keyword_table_s, + ssh_connector_struct, + ssh_counter_struct, + ssh_crypto_struct, + ssh_event_fd_wrapper, + ssh_event_struct, + ssh_global_request, + ssh_gssapi_struct, + ssh_hmac_struct, + ssh_iterator, + ssh_kbdint_struct, + ssh_kex_struct, + ssh_key_struct, + ssh_knownhosts_entry, + ssh_list, + ssh_mac_ctx_struct, + ssh_message_struct, + ssh_packet_callbacks_struct, + ssh_packet_header, + ssh_poll_ctx_struct, + ssh_poll_handle_struct, + ssh_pollfd_struct, + ssh_private_key_struct, + ssh_public_key_struct, + ssh_scp_struct, + ssh_service_request, + ssh_session_struct, + ssh_signature_struct, + ssh_socket_struct, + ssh_string_struct, + ssh_threads_callbacks_struct, + ssh_timestamp) + set(DOXYGEN_EXCLUDE_SYMBOLS_MACRO + SSH_FXP*, + SSH_SOCKET*, + SERVERBANNER, + SOCKOPT_TYPE_ARG4, + SSH_FILEXFER*, + SSH_FXF*, + SSH_S_*, + SFTP_*, + NSS_BUFLEN_PASSWD, + CLOCK, + MAX_LINE_SIZE, + PKCS11_URI, + KNOWNHOSTS_MAXTYPES) + set(DOXYGEN_EXCLUDE_SYMBOLS_TYPEDEFS + sftp_attributes, + sftp_client_message, + sftp_dir, + sftp_ext, + sftp_file, + sftp_message, + sftp_packet, + sftp_request_queue, + sftp_session, + sftp_status_message, + sftp_statvfs_t, + poll_fn, + ssh_callback_int, + ssh_callback_data, + ssh_callback_int_int, + ssh_message_callback, + ssh_channel_callback_int, + ssh_channel_callback_data, + ssh_callbacks, + ssh_gssapi_select_oid_callback, + ssh_gssapi_accept_sec_ctx_callback, + ssh_gssapi_verify_mic_callback, + ssh_server_callbacks, + ssh_socket_callbacks, + ssh_packet_callbacks, + ssh_channel_callbacks, + ssh_bind, + ssh_bind_callbacks) + set(DOXYGEN_EXCLUDE_SYMBOLS + ${DOXYGEN_EXCLUDE_SYMBOLS_STRUCTS} ${DOXYGEN_EXCLUDE_SYMBOLS_MACRO} + ${DOXYGEN_EXCLUDE_SYMBOLS_TYPEDEFS}) + + # Custom layout file to rename "Topics" to "API Reference" and simplify + # navigation + set(DOXYGEN_LAYOUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/DoxygenLayout.xml) + # Custom HTML header with doxygen-awesome extension initialization + set(DOXYGEN_HTML_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/header.html) + # Modern CSS theme for documentation with custom libssh.org color scheme + set(DOXYGEN_HTML_EXTRA_STYLESHEET + ${AWESOME_CSS_DIR}/doxygen-awesome.css + ${CMAKE_CURRENT_SOURCE_DIR}/doxygen-custom.css) + # JavaScript extensions: dark mode toggle, copy button, paragraph links, + # interactive TOC + set(DOXYGEN_HTML_EXTRA_FILES + ${AWESOME_CSS_DIR}/doxygen-awesome-darkmode-toggle.js + ${AWESOME_CSS_DIR}/doxygen-awesome-fragment-copy-button.js + ${AWESOME_CSS_DIR}/doxygen-awesome-paragraph-link.js + ${AWESOME_CSS_DIR}/doxygen-awesome-interactive-toc.js) - # This updates the Doxyfile if we do changes here set(_doxyfile_template "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in") set(_target_doxyfile "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.docs") configure_file("${_doxyfile_template}" "${_target_doxyfile}") - doxygen_add_docs(docs - ${CMAKE_SOURCE_DIR}/include/libssh - ${CMAKE_SOURCE_DIR}/src - ${CMAKE_CURRENT_SOURCE_DIR}) + doxygen_add_docs(docs ${CMAKE_SOURCE_DIR}/include/libssh + ${CMAKE_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}) - add_custom_target(docs_coverage COMMAND ${CMAKE_SOURCE_DIR}/doc/doc_coverage.sh ${CMAKE_BINARY_DIR}) -endif() # DOXYGEN_FOUND - -endif() # CMAKE_VERSION + add_custom_target( + docs_coverage COMMAND ${CMAKE_SOURCE_DIR}/doc/doc_coverage.sh + ${CMAKE_BINARY_DIR}) +endif (DOXYGEN_FOUND) diff --git a/doc/DoxygenLayout.xml b/doc/DoxygenLayout.xml new file mode 100644 index 00000000..14a90505 --- /dev/null +++ b/doc/DoxygenLayout.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/doxygen-custom.css b/doc/doxygen-custom.css new file mode 100644 index 00000000..0c68d575 --- /dev/null +++ b/doc/doxygen-custom.css @@ -0,0 +1,127 @@ +/** + * Custom color scheme for libssh documentation + * Based on libssh.org color palette + */ + +html { + /* Primary colors - using libssh.org orange accent */ + --primary-color: #F78C40; + --primary-dark-color: #f57900; + --primary-light-color: #fab889; + + /* Accent color - neutral gray */ + --primary-lighter-color: #5A5A5A; + + /* Page colors - clean white background */ + --page-background-color: #ffffff; + --page-foreground-color: #333333; + --page-secondary-foreground-color: #666666; + + /* Links - use the warm orange color */ + --link-color: #F78C40; + --link-hover-color: #f0690a; + + /* Code blocks and fragments - very light background */ + --code-background: #f9f9f9; + --fragment-background: #f9f9f9; + + /* Borders - subtle light grey */ + --separator-color: #e0e0e0; + --border-light-color: #f0f0f0; + + /* Side navigation - pure white */ + --side-nav-background: #ffffff; + + /* Menu colors - warm orange accent */ + --menu-selected-background: #F78C40; + + /* Tables and boxes - lighter */ + --tablehead-background: #fbc7a2; + --tablehead-foreground: #333333; +} + +/* Header styling with libssh brand colors */ +#titlearea { + background-color: #5A5A5A; + background-image: linear-gradient(to right, #5A5A5A, #6a6a6a); + border-bottom: 3px solid #F78C40; +} + +#projectname { + color: #ffffff !important; +} + +#projectbrief { + color: #fab889 !important; +} + +/* Top navigation tabs */ +#top { + background: linear-gradient(to bottom, #5A5A5A 0%, #6a6a6a 100%); +} + +.tabs, .tabs2, .tabs3 { + background-image: none; + background-color: transparent; +} + +.tablist li { + background: rgba(255, 255, 255, 0.1); + border-right: 1px solid rgba(255, 255, 255, 0.2); +} + +.tablist li:hover { + background: rgba(255, 255, 255, 0.2); +} + +.tablist li.current { + background: #F78C40; + border-bottom: 3px solid #f57900; +} + +/* Tab text colors - comprehensive selectors */ +#nav-path ul li a, +.tabs a, +.tabs2 a, +.tabs3 a, +.tablist a, +.tablist a:link, +.tablist a:visited, +.tablist li a, +#main-nav a, +.sm > li > a, +.sm > li > a .sub-arrow { + color: #ffffff !important; + text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3); +} + +/* Active/current tab text */ +#nav-path ul li.current a, +.tabs .current a, +.tabs2 .current a, +.tabs3 .current a, +.tablist .current a, +.tablist .current a:link, +.tablist .current a:visited, +.tablist li.current a, +#main-nav .current a, +.sm .current a { + color: #333333 !important; + text-shadow: none; +} + +/* Dropdown arrow - white color for top menu */ +.sm-dox a span.sub-arrow { + border-right-color: #ffffff !important; + border-bottom-color: #ffffff !important; +} + +/* Dropdown menu text - must be dark on white background */ +/* Make this as specific as possible to override white color */ +.sm-dox > li > ul > li > a, +.sm-dox li ul li a, +.sm-dox ul li a, +#main-menu ul li a { + color: #333333 !important; + text-shadow: none !important; +} diff --git a/doc/favicon.png b/doc/favicon.png new file mode 100644 index 00000000..0b343c15 Binary files /dev/null and b/doc/favicon.png differ diff --git a/doc/header.html b/doc/header.html new file mode 100644 index 00000000..6e43e819 --- /dev/null +++ b/doc/header.html @@ -0,0 +1,92 @@ + + + + + + + + +$projectname: $title +$title + + + + + + + + + + + + +$treeview +$search +$mathjax +$darkmode + +$extrastylesheet + + + + + + + + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
$projectname $projectnumber +
+
$projectbrief
+
+
$projectbrief
+
$searchbox
$searchbox
+
+ + diff --git a/doc/that_style/LICENSE b/doc/that_style/LICENSE deleted file mode 100644 index eac42e70..00000000 --- a/doc/that_style/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Jan-Lukas Wynen - -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. diff --git a/doc/that_style/README.md b/doc/that_style/README.md deleted file mode 100644 index 75727209..00000000 --- a/doc/that_style/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# that style -A plain, more modern HTML style for Doxygen - -## Requirements -- Doxygen (tested with version 1.8.13) -- *optional*: a sass/scss compiler if you want to modify the style - -## Simple usage -Tell Doxygen about the files for that style as shown in [doxyfile.conf](doxyfile.conf). You might need to adjust the -paths depending on where you installed that style. -When you run Doxygen, all files are copied into to generated HTML folder. So you don't need to keep the originals around -unless you want to re-generate the documentation. - -## Advanced -that style uses a custom javascript to hack some nice stripes into some tables. It has to be loaded from HTML. Hence you need -to use the provided custom header. Since its default content may change when Doxygen is updated, there might be syntax error in -the generated HTML. If this is the case, you can remove the custom header (adjust your doxyfile.conf). This has no -disadvantages other than removing the stripes. - -[that_style.css](that_style.css) was generated from the scss files in the folder [sass](sass). If you want to change the style, -use those files in order to have better control. For instance, you can easily change most colors by modifying the variables -in the beginning of [that_style.scss](sass/that_style.scss). diff --git a/doc/that_style/header.html b/doc/that_style/header.html deleted file mode 100644 index 3da46393..00000000 --- a/doc/that_style/header.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - -$projectname: $title -$title - - - -$treeview -$search -$mathjax - - -$extrastylesheet - - -
- - -
- - - - - - - - - - - - - - - - - - - - - -
-
$projectname -  $projectnumber -
-
$projectbrief
-
-
$projectbrief
-
$searchbox
-
- - diff --git a/doc/that_style/img/doc.svg b/doc/that_style/img/doc.svg deleted file mode 100644 index 68e1ba01..00000000 --- a/doc/that_style/img/doc.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/doc/that_style/img/folderclosed.svg b/doc/that_style/img/folderclosed.svg deleted file mode 100644 index e53ec906..00000000 --- a/doc/that_style/img/folderclosed.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/doc/that_style/img/folderopen.svg b/doc/that_style/img/folderopen.svg deleted file mode 100644 index 1ab7b78a..00000000 --- a/doc/that_style/img/folderopen.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/doc/that_style/img/mag_glass.svg b/doc/that_style/img/mag_glass.svg deleted file mode 100644 index e21a0048..00000000 --- a/doc/that_style/img/mag_glass.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/doc/that_style/img/nav_edge_inter.svg b/doc/that_style/img/nav_edge_inter.svg deleted file mode 100644 index f04f10fd..00000000 --- a/doc/that_style/img/nav_edge_inter.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/doc/that_style/img/nav_edge_left.svg b/doc/that_style/img/nav_edge_left.svg deleted file mode 100644 index ca1adf4c..00000000 --- a/doc/that_style/img/nav_edge_left.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/doc/that_style/img/nav_edge_right.svg b/doc/that_style/img/nav_edge_right.svg deleted file mode 100644 index bb338153..00000000 --- a/doc/that_style/img/nav_edge_right.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/doc/that_style/img/splitbar_handle.svg b/doc/that_style/img/splitbar_handle.svg deleted file mode 100644 index e0dc90da..00000000 --- a/doc/that_style/img/splitbar_handle.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/doc/that_style/img/sync_off.png b/doc/that_style/img/sync_off.png deleted file mode 100644 index 9d286d9c..00000000 Binary files a/doc/that_style/img/sync_off.png and /dev/null differ diff --git a/doc/that_style/img/sync_on.png b/doc/that_style/img/sync_on.png deleted file mode 100644 index b8434e80..00000000 Binary files a/doc/that_style/img/sync_on.png and /dev/null differ diff --git a/doc/that_style/js/striped_bg.js b/doc/that_style/js/striped_bg.js deleted file mode 100644 index 97ae0a8e..00000000 --- a/doc/that_style/js/striped_bg.js +++ /dev/null @@ -1,32 +0,0 @@ -// Adds extra CSS classes "even" and "odd" to .memberdecls to allow -// striped backgrounds. -function MemberDeclsStriper () { - var counter = 0; - - this.stripe = function() { - $(".memberdecls tbody").children().each(function(i) { - - // reset counter at every heading -> always start with even - if ($(this).is(".heading")) { - counter = 0; - } - - // add extra classes - if (counter % 2 == 1) { - $(this).addClass("odd"); - } - else { - $(this).addClass("even"); - } - - // advance counter at every separator - // this is the only way to reliably detect which table rows belong together - if ($(this).is('[class^="separator"]')) { - counter++; - } - }); - } -} - -// execute the function -$(document).ready(new MemberDeclsStriper().stripe); diff --git a/doc/that_style/that_style.css b/doc/that_style/that_style.css deleted file mode 100644 index 2dcee164..00000000 --- a/doc/that_style/that_style.css +++ /dev/null @@ -1,1430 +0,0 @@ -@charset "UTF-8"; -/* - * My own little style - */ -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; } - -h1.groupheader { - font-size: 150%; } - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; } - -h2.groupheader { - border-bottom: 1px solid #555555; - color: black; - font-size: 200%; - font-weight: bold; - margin-top: 1.75em; - padding-top: 1em; - padding-bottom: 4px; - width: 100%; } - -tr.heading h2 { - border-bottom: 1px solid #a5a5a5; - font-size: 150%; - margin-top: 6px; - margin-bottom: 6px; - padding-top: 3px; - padding-bottom: 7px; } - -h2.groupheader a { - margin-left: 1%; } - -h3.groupheader { - font-size: 100%; } - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: none; - -moz-transition: none; - -o-transition: none; - transition: none; - margin-right: 15px; } - h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: none; - color: #5f082b; } - -dt { - font-weight: bold; } - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; } - -p.startli, p.startdd { - margin-top: 2px; } - -p.starttd { - margin-top: 0px; } - -p.endli { - margin-bottom: 0px; } - -p.enddd { - margin-bottom: 4px; } - -p.endtd { - margin-bottom: 2px; } - -#top { - border: none; - position: relative; - z-index: 100; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.4), 0 0 8px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.4), 0 0 8px rgba(0, 0, 0, 0.3); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.4), 0 0 8px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.4), 0 0 8px rgba(0, 0, 0, 0.3); } - -caption { - font-weight: bold; } - -span.legend { - font-size: 70%; - text-align: center; } - -h3.version { - font-size: 90%; - text-align: center; } - -div.qindex, div.navtab { - background-color: #ffffff; - border: none; - text-align: center; } - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; } - -div.navtab { - margin-right: 15px; } - -a, a:visited { - color: #00549f; - font-weight: normal; - text-decoration: none; } - -.contents a:visited { - color: #4665A2; } - -a:hover { - text-decoration: underline; } - -a.qindex { - font-weight: bold; - text-transform: uppercase; } - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; } - -.contents a.qindexHL:visited { - color: #ffffff; } - -a.el, a.el:visited { - font-weight: normal; - color: #00549f; } - -a.elRef, a.elRef:visited { - font-family: monospace; - color: #006bc8; } - -/* - * The main menu at the top - */ -#main-menu { - background-image: none; - background: #414141; - padding: 0; } - -.sm-dox > li:not(:last-child) > a { - background-image: none; - text-shadow: none; - color: white; - font-weight: normal; - letter-spacing: 1px; - font-size: 11pt; - text-transform: uppercase; } - -.sm-dox > li:not(:last-child) > a:hover, -.sm-dox > li:not(:last-child) > a.highlighted { - background-color: #5f082b; } - -.sm-dox a span.sub-arrow { - border-color: white transparent transparent; } - -.sm-dox ul { - border: none; - -moz-border-radius: 0 !important; - -webkit-border-radius: 0 !important; - border-radius: 0 !important; - padding: 0; - background: #414141; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - .sm-dox ul a { - background: inherit; - color: white; - font-weight: normal; - letter-spacing: 1px; - font-size: 11pt; } - .sm-dox ul a:hover { - background: #5f082b; - color: white; - font-weight: normal; - letter-spacing: 1px; - font-size: 11pt; } - .sm-dox ul a.highlighted { - background: #5f082b; - color: white; - font-weight: normal; - letter-spacing: 1px; - font-size: 11pt; } - .sm-dox ul a span.sub-arrow { - /* this sets the color of the arrow */ - border-color: white transparent transparent; } - -dl.el { - margin-left: -1cm; } - -div.ah, span.ah { - background: none; - color: black; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: none; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; - font: 14pt monospace; - font-weight: bold; - text-transform: uppercase; } - -div.classindex ul { - list-style: none; - padding-left: 0; } - -div.classindex span.ai { - display: inline-block; } - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; } - -div.groupText { - margin-left: 16px; - font-style: italic; } - -body { - background-color: #ffffff; - color: black; - margin: 0; } - -#doc-content { - background-color: #111; - color: #ffffff; } - -div.contents { - color: black; - background-color: #ffffff; - padding: 0; - margin: 5pt; } - div.contents hr { - display: none; - visibility: hidden; } - -div.header + div.contents { - padding: 1ex; - margin: 0 5pt 5pt 5pt; } - -div.textblock { - padding: 1ex 1ex 0 1ex; } - -div.textblock + ul { - padding-bottom: 1%; } - -img.footer { - border: 0px; - vertical-align: middle; } - -/* - Basic styling for fragments shared by all themes. -*/ -div.fragment { - padding: 4px; - margin: 4px 8px 4px 2px; - color: #bebebe; - background-color: #323232; - border: 3px solid #e8e8e8; - border-radius: 2px; - overflow-y: hidden; - overflow-x: auto; - position: relative; } - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-indent: -53px; - margin: 0px; - padding: 1px 0 1px 53px; - white-space: pre; - -webkit-transition: background-color; - -moz-transition: background-color; - -o-transition: background-color; - transition: background-color; - -webkit-duration: 0s; - -moz-duration: 0s; - -o-duration: 0s; - duration: 0s; } - div.line:hover { - background-color: #1a1a1a; } - div.line::after { - content: "\000A"; - white-space: pre; } - -span.lineno { - padding-right: 4px; - text-align: right; - color: black; - white-space: pre; - border-right: 3px solid #1d7567; - background-color: #323232; } - -span.lineno a, span.lineno a:visited { - background-color: inherit; - color: #1e595a; } - -span.lineno a:hover { - background-color: #C8C8C8; - text-decoration: none; } - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -div.fragment { - color: #bebebe; - background-color: #323232; } - -div.fragment::before { - background-color: #1a1a1a; - border-right: 1px solid #3e3e3e; } - -div.line:hover { - background-color: #1a1a1a; } - -span.lineno { - color: #969696; - background-color: #323232; - border-right: 1px solid #3e3e3e; } - -span.lineno a, span.lineno a:visited { - background-color: inherit; - color: #dcdcdc; } - -span.lineno a:hover { - background-color: #323232; } - -a.code, a.code:visited { - color: #6cc7eb; } - -a.codeRef, a.codeRef:visited { - color: #3d95e6; } - -span.keyword { - color: #98f77a; - font-weight: bold; } - -span.keywordtype { - color: #ffa0a0; } - -span.keywordflow { - color: #98f77a; - font-weight: bold; } - -span.comment { - color: #999; - font-style: oblique; } - -span.preprocessor { - color: #cd5c57; } - -span.stringliteral { - color: #64b041; } - -span.charliteral { - color: #64b041; } - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; } - -/* - * The search box - */ -.sm-dox > li:last-child { - margin-right: 10pt; } - -#MSearchBox { - border: 2px inset black; - display: table; - width: 350px; - height: 26px; - background: white; - margin-top: 5px; } - #MSearchBox .left { - background-image: none; - display: table-cell; - width: 100%; - height: inherit; - left: 0; } - #MSearchBox .right { - background-image: none; - width: 0; - display: none; - visibility: hidden; } - -nav > #MSearchBox { - border: 2px solid #666666; - margin: 5px 10pt 0 0; - height: 22px; } - -#MSearchSelect, .left #MSearchSelect { - left: 0; - background-image: url("mag_glass.svg"); - width: 22px; - height: 22px; - padding: 22px 22px 0 0; - margin: 0 4px 0 4px; - box-sizing: border-box; } - -#MSearchField { - background-image: none; - display: table-cell; - margin: 0; - margin-left: 30px; - width: calc(100% - 34px); - height: 22px; - font: 11pt sans-serif; } - -#MSearchSelectWindow { - background-color: #414141; - padding: 0; - border: solid 1px black; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -a.SelectItem { - color: white; - padding: 3px 4px; - font: 10pt sans-serif; - letter-spacing: 1px; } - a.SelectItem:hover { - background-color: #5f082b; - color: white; } - a.SelectItem:focus, a.SelectItem:active { - color: white; } - -#MSearchResultsWindow { - background-color: white; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -table.memberdecls { - width: 100%; - border-spacing: 0px; - padding: 0px; - margin-top: 7px; - background-color: #ffffff; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -.memberdecls tbody { - background-color: #ffffff; } - -.memberdecls .odd { - background: #f6f6f6; } - -/* all but last separator show a line */ -.memberdecls tr[class^="separator"]:not(:last-child) .memSeparator { - border-bottom: 1px solid #c5c5c5; - line-height: 1px; - margin: 0; - padding: 0; } - -.memberdecls tr[class^="separator"]:last-child .memSeparator { - border-bottom: none; - line-height: 0; - margin: 0; - padding: 0; } - -table.fieldtable { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.memberdecls td, .fieldtable tr { - background-color: inherit; } - -.fieldtable th { - display: none; - height: 0; - visibility: hidden; } - -td.fieldname { - color: #820a32; - font-family: monospace; - font-weight: bold; } - -th.markdownTableHeadLeft, th.markdownTableHeadRight, -th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #414141; - color: white; } - -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - font-family: monospace; - background-color: #ffffff; - border: none; - margin: 4px; - padding: 1px 0 0 8px; } - -.mdescLeft, .mdescRight { - background-color: #ffffff; - border: none; - margin: 4px; - padding: 1px 0 0 8px; } - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; } - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; } - -.memItemRight { - width: 100%; } - -.memTemplParams { - color: black; - white-space: nowrap; - font-size: 100%; } - -/* Styles for detailed member documentation */ -.memtitle { - padding: 8px; - border: none; - margin-bottom: -1px; - background-image: none; - background-color: #f6f6f6; - line-height: 1.25; - font-weight: bold; - color: black; - float: left; - z-index: 0; - position: relative; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -.permalink { - font-size: 100%; - display: inline-block; - vertical-align: middle; } - -/* replace content of permalinks */ -.permalink a { - visibility: hidden; } - -.permalink a:after { - content: "ยง"; - visibility: visible; - display: block; - position: absolute; - color: black; - top: 20%; } - -.permalink a:visited { - color: black; } - -.memtemplate { - font-size: 100%; - color: black; - font-family: monospace; - font-weight: normal; - margin-left: 9px; } - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; } - -.mempage { - width: 100%; } - -.memitem { - font-family: monospace; - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; - display: table !important; - width: 100%; - background-color: #f6f6f6; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -.memitem.glow { - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.memname { - font-family: monospace; - font-weight: 400; - margin-left: 6px; } - -.memname td { - vertical-align: bottom; } - -.memproto, dl.reflist dt { - border: none; - padding: 6px 0px 6px 0px; - color: black; - font-weight: bold; - text-shadow: none; - background-color: #f6f6f6; - position: relative; - z-index: 1; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; } - -.memdoc, dl.reflist dd { - border: none; - border-left: 4px solid #5f082b; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; - -webkit-border-bottom-left-radius: 0px; - -webkit-border-bottom-right-radius: 0px; - -moz-border-bottom-left-radius: 0px; - -moz-border-bottom-right-radius: 0px; - padding: 2px 1% 2px 1%; - margin: 1%; - background-color: #ffffff; - background-image: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; - /* allow movement of elements inside */ - display: flex; - flex-direction: column; } - -/* overrides for docs on individual pages */ -.memtitle:nth-child(2) { - width: 0; - height: 0; - display: none; - visibility: hidden; } - -.memitem:nth-child(3) { - margin: 0; - margin-top: 0.5%; - background-color: #ffffff; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.memitem:nth-child(3) .memproto { - padding: 10px; - background-color: #ffffff; - margin-bottom: 10px; } - -.memitem:nth-child(3) .memproto::after { - content: ""; - width: 99%; - height: 1px; - position: absolute; - bottom: -10px; - left: 0.5%; - background: #666; } - -.memitem:nth-child(3) .memdoc { - border: none; - padding: 0; } - -.memitem:nth-child(3) table.memname { - background-color: #f6f6f6; - border-collapse: collapse; - border-spacing: initial; - border: 1px solid #aaa; } - -.memitem:nth-child(3) table.memname tr:not(:last-child) { - border-bottom: 1px dashed #aaa; } - -dl.reflist dt { - padding: 5px; - z-index: 0; - /* cover the top shadow of dd */ - position: relative; - -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.35), 0 0 8px rgba(0, 0, 0, 0.2); } - -/* cover up the shadow at the bottom */ -dl.reflist dt::after { - content: " "; - width: 100%; - display: block; - height: 8px; - position: absolute; - background-color: #f6f6f6; - left: 0; - bottom: -8px; } - -dl.reflist dd { - border-left: 4px solid #5f082b; - padding: 2px 1% 2px 1%; - margin: 8px 8px 24px 8px; - outline: 8px solid #f6f6f6; - -moz-box-shadow: 0 0 4px 8px rgba(0, 0, 0, 0.35), 0 0 8px 8px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 4px 8px rgba(0, 0, 0, 0.35), 0 0 8px 8px rgba(0, 0, 0, 0.2); - -o-box-shadow: 0 0 4px 8px rgba(0, 0, 0, 0.35), 0 0 8px 8px rgba(0, 0, 0, 0.2); - box-shadow: 0 0 4px 8px rgba(0, 0, 0, 0.35), 0 0 8px 8px rgba(0, 0, 0, 0.2); } - -dl.reflist dd p::before { - font-size: 85%; - content: "\25B6\00A0\00A0"; - display: inline-block; - width: 12pt; } - -dl.reflist dd p { - margin-top: 4px; - margin-bottom: 4px; } - -.paramkey { - text-align: right; } - -.paramtype { - font-family: monospace; - white-space: nowrap; - color: #002546; } - -.paramname { - color: black; - font-family: monospace; - white-space: nowrap; } - -.paramname em { - color: #820a32; - font-style: normal; } - -.paramname code { - color: #404040; - line-height: 14px; } - -.params, .retval, .exception, .tparams { - margin-left: 0; - padding-left: 0; - margin-bottom: -0.25em; } - -.params dt, .tparams dt { - margin-bottom: 0.5em; } - -.params .paramname, .tparams .paramname, .retval .paramname, .exception .paramname { - color: #820a32; - font-family: monospace; - font-weight: bold; - vertical-align: top; } - -.params .paramtype, .tparams .paramtype { - font-family: monospace; - font-style: italic; - vertical-align: top; } - -.params .paramdir, .tparams .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; } - -/* line over parameters docs */ -.params, .tparams { - border-collapse: collapse; } - -.params tr, .tparams tr { - -moz-box-shadow: 0 -2px 0 -1px #606060; - -webkit-box-shadow: 0 -2px 0 -1px #606060; - -o-box-shadow: 0 -2px 0 -1px #606060; - box-shadow: 0 -2px 0 -1px #606060; } - -.params .paramname, .tparams .paramname { - border-top: 2px solid #5f082b; - padding-right: 5pt; } - -.params td, .tparams td { - padding-bottom: 1em; } - -table.mlabels { - border-spacing: 0px; } - -td.mlabels-left { - width: 100%; - padding: 0px; } - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; } - -span.mlabels { - margin-left: 8px; } - -span.mlabel { - background-color: #444444; - border: none; - border-radius: 3px; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 3px 5px; - font-size: 8pt; - white-space: nowrap; - vertical-align: middle; } - -.memdoc .definition { - position: relative; - padding-top: 0.5em; - /* move definition line to bottom of memdoc */ - order: 3; } - .memdoc .definition::before { - content: ""; - width: 33%; - height: 1px; - border-top: 1px solid black; - position: absolute; - top: 0; } - -table.directory { - border-top: 1px solid #c5c5c5; - border-bottom: 1px solid #c5c5c5; - border-collapse: collapse; - width: 100%; - font: 400 14px Roboto,sans-serif; } - table.directory tr { - background-color: white !important; } - table.directory tr.even { - background-color: #f6f6f6 !important; } - table.directory tr:hover { - background-color: #e6e6e6 !important; } - table.directory td.entry { - padding: 1.5pt 3pt 1.5pt 3pt; - white-space: normal; } - -div.directory { - border: none; } - div.directory table.directory tr { - line-height: 17pt; } - div.directory table.directory td { - margin: 0; - padding: 0.5pt 6pt 0.5pt 0; - vertical-align: middle; } - div.directory table.directory td.entry { - white-space: nowrap; } - div.directory table.directory td.desc { - width: 100%; - padding-left: 6pt; - border-left: 1px solid rgba(0, 0, 0, 0.05); } - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; } - .directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #00549f; } - .directory .levels span:hover { - text-decoration: underline; } - -/* - * The tree view on the left - */ -.arrow { - color: black; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; - margin-left: 4px; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - .arrow:hover { - color: black; } - -#selected .arrow { - color: white; } - #selected .arrow:hover { - color: #d2d2d2; } - -#nav-tree { - background-image: none; - background-color: white; } - #nav-tree .item { - margin: 0; } - #nav-tree .item:hover { - background-color: #d2d2d2; } - #nav-tree .selected { - background-image: none; - background-color: #5f082b; - color: white; - text-shadow: none; } - #nav-tree .selected:hover { - background-image: none; - background-color: #5f082b; - color: white; - text-shadow: none; } - #nav-tree a { - color: black; } - -.ui-resizable-e { - background: #808080 url("splitbar_handle.svg") no-repeat center; - border-right: solid 1px #c0c0c0; - border-left: solid 1px black; } - .ui-resizable-e:hover { - background-color: #606060; } - -.icon { - font-family: monospace; - font-weight: bold; - font-size: 12px; - height: 15px; - width: 15px; - display: inline-block; - background-color: #444444; - color: white; - text-align: center; - border-radius: 3px; - margin: 0; - padding-top: 1px; - text-indent: -1px; } - -.icona { - width: 0; - height: 0; - display: none; - visibility: hidden; } - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image: url("folderopen.svg"); - background-position: 0; - background-repeat: no-repeat; - vertical-align: top; - display: inline-block; } - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image: url("folderclosed.svg"); - background-position: 0; - background-repeat: no-repeat; - vertical-align: top; - display: inline-block; } - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image: url("doc.svg"); - background-position: 0; - background-repeat: no-repeat; - vertical-align: top; - display: inline-block; } - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -address { - font-style: normal; - color: #2A3D61; } - -table.doxtable caption { - caption-side: top; } - -table.doxtable { - border-collapse: collapse; - margin-top: 4px; - margin-bottom: 4px; } - -table.doxtable td, table.doxtable th { - border: 1px solid #444444; - padding: 3px 7px 2px; } - -table.doxtable th { - background-color: #444444; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; } - -/* - * The line at the bottom - */ -.navpath { - /* intermediate navelems */ - /* first navelem */ - /* last navelem */ } - .navpath ul { - font-size: 11px; - background-image: none; - height: 30px; - line-height: 30px; - color: black; - border: none; - border-top: 1px solid #808080; - overflow: hidden; - margin: 0px; - padding: 0px; } - .navpath li:not(:first-child) { - list-style-type: none; - float: left; - padding-left: 18px; - padding-right: 10px; - color: black; - background-color: white; - background-image: url("nav_edge_inter.svg"); - background-repeat: no-repeat; - background-position: left -1px; - background-size: auto 100%; } - .navpath li:first-child { - list-style-type: none; - float: left; - padding-left: 15px; - padding-right: 10px; - color: black; - background-color: white; - background-image: none; } - .navpath li:nth-last-child(2) { - list-style-type: none; - float: left; - padding-left: 10px; - padding-right: 15px; - color: white; - background-color: #5f082b; - background-image: url("nav_edge_right.svg"); - background-repeat: no-repeat; - background-position: right -1px; - background-size: auto 100%; } - .navpath li:nth-last-child(2):not(:first-child) { - list-style-type: none; - float: left; - padding-left: 15px; - padding-right: 15px; - color: white; - background-color: #5f082b; - background-image: url("nav_edge_left.svg"), url("nav_edge_right.svg"); - background-repeat: no-repeat; - background-position: -1px -1px, right -1px; - background-size: auto 100%; } - .navpath li.navelem a, .navpath .navpath li.navelem b { - height: 32px; - display: block; - text-decoration: none; - outline: none; - color: inherit; - font-family: Roboto,sans-serif; - text-shadow: none; - text-decoration: none; - font-weight: normal; } - .navpath li.navelem a:hover { - color: inherit; - text-decoration: underline; } - .navpath li.footer { - list-style-type: none; - float: right; - padding-left: 0; - padding-right: 10px; - background-color: #d5d5d5; - background-image: none; - color: black; - font-size: 8pt; } - .navpath li.footer:before { - content: ""; - width: 13px; - height: 30px; - display: inline-block; - float: left; - background-image: url("nav_edge_right.svg"); - background-repeat: no-repeat; - background-position: right 0; - background-size: auto 100%; - /* flip the element horizontally */ - -moz-transform: scaleX(-1); - -o-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: "FlipH"; } - -div.summary { - -webkit-order: 2; - order: 2; - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; - margin-right: 0.5%; } - -div.summary a { - white-space: nowrap; } - -table.classindex { - margin: 10px; - white-space: nowrap; - margin-left: 1%; - margin-right: 1%; - width: 98%; - border: none; - border-top: 1px solid black; - border-bottom: 1px solid black; - border-spacing: 0.5em; - padding: 0; } - -div.ingroups { - font-size: 8pt; - width: 50%; - text-align: left; } - -div.ingroups a { - white-space: nowrap; } - -div.header { - display: -webkit-flex; - display: flex; - justify-content: space-between; - background-image: none; - background-color: #ffffff; - color: black; - margin: 5pt 5pt 0 5pt; - padding: 0 1ex 0 1ex; - align-items: center; - justify-content: center; - border-bottom: none; - position: relative; } - -div.header::after { - content: ""; - height: 2px; - width: 99%; - position: absolute; - bottom: -5px; - left: 0.5%; - background: #666; } - -div.headertitle { - -webkit-order: 1; - order: 1; - margin-right: auto; - text-align: center; } - -dl { - padding: 0; } - -dl.section { - margin-left: 0px; - padding-left: 0px; } - -dl.section > dt { - font-weight: bold; - font-family: sans-serif; } - -dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, -dl.deprecated, dl.todo, dl.test, dl.bug { - margin-left: -7px; - padding-left: 3px; } - -dl.note { - padding-left: 7px; - border: none; } - -dl.warning { - background-color: #ffe6ea; - border: 1px solid #ff0728; - border-left: 4px solid #ff0728; - padding-top: 4px; - padding-bottom: 3px; } - -dl.attention { - border-left: 4px solid #ff0728; } - -dl.pre, dl.post, dl.invariant { - background-color: #f0ffe6; - border: 1px solid #5eb82a; - border-left: 4px solid #5eb82a; } - -dl.deprecated { - background-color: #f6f6f6; - border: 1px solid black; } - -dl.todo { - border-left: 4px solid #e8d500; } - -dl.test { - border-left: 4px solid #00549f; } - -dl.bug { - background-color: #f6f6f6; - border: 1px solid #cc071e; - border-left: 4px solid #cc071e; } - -dl.section dd { - margin-bottom: 6px; } - -.memdoc dl dt a.el { - font-weight: bold; - color: black; } - -#projectlogo { - text-align: center; - vertical-align: bottom; - border-collapse: separate; } - -#projectlogo img { - border: 0px none; } - -#projectalign { - vertical-align: middle; } - -#projectname { - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; } - -#projectbrief { - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; } - -#projectnumber { - font: 50% Roboto,sans-serif; - margin: 0px; - padding: 0px; } - -#titlearea { - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: none; } - #titlearea:nth-last-child(2) { - border-bottom: 2px solid #444444; } - -.image { - text-align: center; } - -.dotgraph, .mscgraph, .diagraph { - text-align: center; } - -.caption { - font-weight: bold; } - -div.zoom { - border: 1px solid #90A5CE; } - -dl.citelist { - margin-bottom: 5ex; } - dl.citelist dt { - color: black; - float: left; - font-weight: bold; - padding: 5px 0; - margin: 2px 10pt 2px 0; } - dl.citelist dd { - margin: 2px 0; - padding: 5px 0; } - dl.citelist .startdd { - margin-top: 0; } - -div.toc { - background-color: transparent; - border: 1px solid #414141; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - float: right; - height: auto; - margin: 0 8px 10px 10px; - padding: 10px 15px 5px 25px; - width: auto; } - div.toc li { - background: transparent; - font: 10pt Roboto,DejaVu Sans,sans-serif; - padding-left: 0; - padding-top: 0.5ex; } - div.toc li .level1 { - margin-left: 10pt; } - div.toc li .level2 { - margin-left: 10pt; } - div.toc li .level3 { - margin-left: 10pt; } - div.toc li .level4 { - margin-left: 10pt; } - div.toc h3 { - font: bold 12px/1.2 Roboto,DejaVu Sans,sans-serif; - color: black; - border-bottom: none; - margin: 0; - letter-spacing: 1px; } - div.toc ul { - list-style: disc; - border: none; - padding: 0; } - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.inherit_header td { - padding: 6px 0px 2px 5px; } - -.inherit { - display: none; } - -/* tooltip related style info */ -.ttc { - position: absolute; - display: none; } - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: #ffffff; - border: 1px solid #323232; - border-radius: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em 1em; - position: absolute; - z-index: 2147483647; } - #powerTip div.ttdoc { - color: grey; - font-style: italic; } - #powerTip div.ttname a { - font-weight: bold; } - #powerTip div.ttname { - font-weight: bold; } - #powerTip div.ttdeci { - color: #006318; } - #powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; } - #powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; } - -@media print { - #top { - display: none; } - #side-nav { - display: none; } - #nav-path { - display: none; } - body { - overflow: visible; } - h1, h2, h3, h4, h5, h6 { - page-break-after: avoid; } - .summary { - display: none; } - .memitem { - page-break-inside: avoid; } - #doc-content { - margin-left: 0 !important; - height: auto !important; - width: auto !important; - overflow: inherit; - display: inline; - background-color: white; } }