diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/README_8md.html b/README_8md.html new file mode 100644 index 0000000..561f54e --- /dev/null +++ b/README_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: README.md File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
README.md File Reference
+
+
+
+ + + + diff --git a/all_8hpp.html b/all_8hpp.html new file mode 100644 index 0000000..41da196 --- /dev/null +++ b/all_8hpp.html @@ -0,0 +1,92 @@ + + + + + + + +Dire: src/lib/include/dire/all.hpp File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
all.hpp File Reference
+
+
+
#include <dire/base.hpp>
+#include <dire/user.hpp>
+#include <dire/project.hpp>
+
+

Go to the source code of this file.

+
+ + + + diff --git a/all_8hpp_source.html b/all_8hpp_source.html new file mode 100644 index 0000000..e911198 --- /dev/null +++ b/all_8hpp_source.html @@ -0,0 +1,100 @@ + + + + + + + +Dire: src/lib/include/dire/all.hpp Source File + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
all.hpp
+
+
+Go to the documentation of this file.
1#pragma once
+
2
+
3#include <dire/base.hpp>
+
4#include <dire/user.hpp>
+
5#include <dire/project.hpp>
+ + + +
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..fe3f6af --- /dev/null +++ b/annotated.html @@ -0,0 +1,100 @@ + + + + + + + +Dire: Class List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + +
 Ndire
 Nbase
 CBaseDirsBundle
 Nproject
 CIReallyWantMyOwnPlatformProjectName
 CPlatformProjectName
 CProjectDirsBundle
 Nuser
 CUserDirsBundle
 NMyLibrary
 CExampleExample class to demonstrate the features of the custom CSS
 CSecondExample
 CSubclassExampleSome subclass
+
+
+ + + + diff --git a/base_8hpp.html b/base_8hpp.html new file mode 100644 index 0000000..f11916d --- /dev/null +++ b/base_8hpp.html @@ -0,0 +1,152 @@ + + + + + + + +Dire: src/lib/include/dire/base.hpp File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Classes | +Namespaces | +Functions
+
base.hpp File Reference
+
+
+
#include <dire/defines.hpp>
+
+

Go to the source code of this file.

+ + + + +

+Classes

struct  dire::base::BaseDirsBundle
 
+ + + + + + + +

+Namespaces

namespace  dire
 
namespace  dire::base
 
namespace  dire::base::detail
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

auto dire::base::bundle () -> Optional< BaseDirsBundle >
 
auto dire::base::home_dir () -> Optional< Path >
 
auto dire::base::cache_dir () -> Optional< Path >
 
auto dire::base::config_dir () -> Optional< Path >
 
auto dire::base::config_local_dir () -> Optional< Path >
 
auto dire::base::data_dir () -> Optional< Path >
 
auto dire::base::data_local_dir () -> Optional< Path >
 
auto dire::base::executable_dir () -> Optional< Path >
 
auto dire::base::preference_dir () -> Optional< Path >
 
auto dire::base::runtime_dir () -> Optional< Path >
 
auto dire::base::state_dir () -> Optional< Path >
 
auto dire::base::detail::cache_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::config_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::config_local_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::data_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::data_local_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::executable_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::preference_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::runtime_dir_from_home (dire::Path home) -> dire::Path
 
auto dire::base::detail::state_dir_from_home (dire::Path home) -> dire::Path
 
+
+ + + + diff --git a/base_8hpp_source.html b/base_8hpp_source.html new file mode 100644 index 0000000..46694ce --- /dev/null +++ b/base_8hpp_source.html @@ -0,0 +1,184 @@ + + + + + + + +Dire: src/lib/include/dire/base.hpp Source File + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
base.hpp
+
+
+Go to the documentation of this file.
1#pragma once
+
2
+
3#include <dire/defines.hpp>
+
4
+
+
5namespace dire::base
+
6{
+
7
+ +
22
+ +
24
+ + + + + + + + + + +
35
+ +
50
+
51} // namespace dire::base
+
+ +
auto data_local_dir_from_home(dire::Path home) -> dire::Path
+
auto data_dir_from_home(dire::Path home) -> dire::Path
+
auto config_dir_from_home(dire::Path home) -> dire::Path
+
auto cache_dir_from_home(dire::Path home) -> dire::Path
+
auto state_dir_from_home(dire::Path home) -> dire::Path
+
auto preference_dir_from_home(dire::Path home) -> dire::Path
+
auto executable_dir_from_home(dire::Path home) -> dire::Path
+
auto config_local_dir_from_home(dire::Path home) -> dire::Path
+
auto runtime_dir_from_home(dire::Path home) -> dire::Path
+
Definition base.hpp:6
+
auto cache_dir() -> Optional< Path >
+
auto bundle() -> Optional< BaseDirsBundle >
+
auto home_dir() -> Optional< Path >
+
auto preference_dir() -> Optional< Path >
+
auto state_dir() -> Optional< Path >
+
auto executable_dir() -> Optional< Path >
+
auto config_dir() -> Optional< Path >
+
auto data_dir() -> Optional< Path >
+
auto config_local_dir() -> Optional< Path >
+
auto data_local_dir() -> Optional< Path >
+
auto runtime_dir() -> Optional< Path >
+
std::optional< T > Optional
Definition defines.hpp:26
+
std::filesystem::path Path
Definition defines.hpp:16
+
Definition base.hpp:9
+
Path preference_dir
Definition base.hpp:16
+
Path data_local_dir
Definition base.hpp:15
+
Path config_local_dir
Definition base.hpp:13
+
Path home_dir
Definition base.hpp:10
+
Path cache_dir
Definition base.hpp:11
+
Optional< Path > runtime_dir
Definition base.hpp:19
+
Path data_dir
Definition base.hpp:14
+
Path config_dir
Definition base.hpp:12
+
Optional< Path > state_dir
Definition base.hpp:20
+
Optional< Path > executable_dir
Definition base.hpp:18
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/bc_s.png differ diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000..31ca888 Binary files /dev/null and b/bc_sd.png differ diff --git a/bug.html b/bug.html new file mode 100644 index 0000000..1d0d415 --- /dev/null +++ b/bug.html @@ -0,0 +1,90 @@ + + + + + + + +Dire: Bug List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Bug List
+
+
+
+
Member MyLibrary::Example::test (const std::string &test)
+
example bug
+
Member MyLibrary::SubclassExample< TemplatedClass >::virtualfunc () override
+
second bug
+
+
+
+ + + + diff --git a/classMyLibrary_1_1Example-members.html b/classMyLibrary_1_1Example-members.html new file mode 100644 index 0000000..9b38b27 --- /dev/null +++ b/classMyLibrary_1_1Example-members.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
MyLibrary::Example Member List
+
+
+ +

This is the complete list of members for MyLibrary::Example, including all inherited members.

+ + + + +
staticfunc()MyLibrary::Examplestatic
test(const std::string &test)MyLibrary::Example
virtualfunc()=0MyLibrary::Examplepure virtual
+ + + + diff --git a/classMyLibrary_1_1Example.html b/classMyLibrary_1_1Example.html new file mode 100644 index 0000000..f925e36 --- /dev/null +++ b/classMyLibrary_1_1Example.html @@ -0,0 +1,321 @@ + + + + + + + +Dire: MyLibrary::Example Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Static Public Member Functions | +List of all members
+
MyLibrary::Example Class Referenceabstract
+
+
+ +

Example class to demonstrate the features of the custom CSS. + More...

+ +

#include <example.hpp>

+
+Inheritance diagram for MyLibrary::Example:
+
+
+ + +MyLibrary::SubclassExample< TemplatedClass > + +
+ + + + + + + +

+Public Member Functions

std::string test (const std::string &test)
 brief summary
 
virtual int virtualfunc ()=0
 
+ + + +

+Static Public Member Functions

static bool staticfunc ()
 
+

Detailed Description

+

Example class to demonstrate the features of the custom CSS.

+
Author
jothepro
+

Member Function Documentation

+ +

◆ staticfunc()

+ +
+
+ + + + + +
+ + + + + + + +
static bool MyLibrary::Example::staticfunc ()
+
+static
+
+ +
+
+ +

◆ test()

+ +
+
+ + + + + + + + +
std::string MyLibrary::Example::test (const std::string & test)
+
+ +

brief summary

+

doxygen test documentation

+
Parameters
+ + +
testthis is the only parameter of this test function. It does nothing!
+
+
+

+Supported elements

+

These elements have been tested with the custom CSS.

+

+Tables

+
    +
  • Basic This theme supports normal markdown tables:
    + + + + + + + + + +
    Item Title Description More
    1 Foo A placeholder Some lorem ipsum to make this table wider.
    2 Bar Also a placeholder More lorem ipsum.
    3 Baz The third placeholder More lorem ipsum.
    +
  • +
  • Centered
    A table can be centered with the <center> html tag:
    + + + + + + + + + +
    Item Title Description More
    1 Foo A placeholder Some lorem ipsum to make this table wider.
    2 Bar Also a placeholder More lorem ipsum.
    3 Baz The third placeholder More lorem ipsum.
    +
  • +
  • Stretched A table wrapped in <div class="full_width_table"> fills the full page width.
    + + + + + + + + +
    Item Title Description More
    1 Foo A placeholder Some lorem ipsum to make this table wider.
    2 Bar Also a placeholder More lorem ipsum.
    3 Baz The third placeholder More lorem ipsum.
    +
    Caution: This will break the overflow scrolling support!
  • +
  • Complex Complex Doxygen tables are also supported as seen in this example:
    + + + + + + + + + + + +
    Complex table
    Column 1 Column 2 Column 3
    cell row=1+2,col=1cell row=1,col=2cell row=1,col=3
    cell row=2+3,col=2 cell row=2,col=3
    cell row=3,col=1 cell row=3,col=3
    +
  • +
  • Overflow Scrolling The table content is scrollable if the table gets too wide.
    + + + + + +
    first_column second_column third_column fourth_column fifth_column sixth_column seventh_column eighth_column ninth_column
    1 2 3 4 5 6 7 8 9
    +
  • +
  • ImagesA table can contain images:
    + + + + + +
    Column 1 Column 2
    doxygen ← the image should not be inverted in dark-mode
    +
  • +
+

+Diagrams

+

Graphviz diagrams support dark mode and can be scrolled once they get too wide:

+

+Lists

+
    +
  • element 1
  • +
  • element 2
  • +
+
    +
  1. element 1
    code in lists
    +
  2. +
  3. element 2
  4. +
+

+Quotes

+
+

‍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:
void this_looks_awesome();
+
+
Bug:
example bug
+
Deprecated:
None of this will be deprecated, because it's beautiful!
+
Invariant
This is an invariant
+
Precondition
This is a precondition
+
Postcondition
This is a postcondition
+
Todo:
This theme is never finished!
+
Remarks
This is awesome!
+ +
+
+ +

◆ virtualfunc()

+ +
+
+ + + + + +
+ + + + + + + +
virtual int MyLibrary::Example::virtualfunc ()
+
+pure virtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classMyLibrary_1_1Example.png b/classMyLibrary_1_1Example.png new file mode 100644 index 0000000..3109bdb Binary files /dev/null and b/classMyLibrary_1_1Example.png differ diff --git a/classMyLibrary_1_1SecondExample-members.html b/classMyLibrary_1_1SecondExample-members.html new file mode 100644 index 0000000..c46ca57 --- /dev/null +++ b/classMyLibrary_1_1SecondExample-members.html @@ -0,0 +1,89 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
MyLibrary::SecondExample Member List
+
+
+ +

This is the complete list of members for MyLibrary::SecondExample, including all inherited members.

+
+ + + + diff --git a/classMyLibrary_1_1SecondExample.html b/classMyLibrary_1_1SecondExample.html new file mode 100644 index 0000000..e4954cf --- /dev/null +++ b/classMyLibrary_1_1SecondExample.html @@ -0,0 +1,94 @@ + + + + + + + +Dire: MyLibrary::SecondExample Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+List of all members
+
MyLibrary::SecondExample Class Reference
+
+
+ +

#include <example.hpp>

+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classMyLibrary_1_1SubclassExample-members.html b/classMyLibrary_1_1SubclassExample-members.html new file mode 100644 index 0000000..08289de --- /dev/null +++ b/classMyLibrary_1_1SubclassExample-members.html @@ -0,0 +1,95 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
MyLibrary::SubclassExample< TemplatedClass > Member List
+
+
+ +

This is the complete list of members for MyLibrary::SubclassExample< TemplatedClass >, including all inherited members.

+ + + + + + +
function_template_test(std::shared_ptr< T > &param)MyLibrary::SubclassExample< TemplatedClass >
long_function_with_many_parameters(std::shared_ptr< T > &param1, std::shared_ptr< std::string > &param2, bool parameter3, Alice paramater4 Bob parameter 5)MyLibrary::SubclassExample< TemplatedClass >inline
staticfunc()MyLibrary::Examplestatic
test(const std::string &test)MyLibrary::Example
virtualfunc() overrideMyLibrary::SubclassExample< TemplatedClass >virtual
+ + + + diff --git a/classMyLibrary_1_1SubclassExample.html b/classMyLibrary_1_1SubclassExample.html new file mode 100644 index 0000000..86efd2f --- /dev/null +++ b/classMyLibrary_1_1SubclassExample.html @@ -0,0 +1,253 @@ + + + + + + + +Dire: MyLibrary::SubclassExample< TemplatedClass > Class Template Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +List of all members
+
MyLibrary::SubclassExample< TemplatedClass > Class Template Reference
+
+
+ +

some subclass + More...

+ +

#include <subclass-example.hpp>

+
+Inheritance diagram for MyLibrary::SubclassExample< TemplatedClass >:
+
+
+ + +MyLibrary::Example + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

int virtualfunc () override
 
template<typename T >
std::shared_ptr< std::string > function_template_test (std::shared_ptr< T > &param)
 Template function function.
 
template<typename T , typename Foo , typename Bar , typename Alice , typename Bob , typename Charlie , typename Hello , typename World >
std::pair< std::string, std::string > long_function_with_many_parameters (std::shared_ptr< T > &param1, std::shared_ptr< std::string > &param2, bool parameter3, Alice paramater4 Bob parameter 5)
 Extra long function with lots of parameters and many template types.
 
- Public Member Functions inherited from MyLibrary::Example
std::string test (const std::string &test)
 brief summary
 
+ + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from MyLibrary::Example
static bool staticfunc ()
 
+

Detailed Description

+
template<typename TemplatedClass>
+class MyLibrary::SubclassExample< TemplatedClass >

some subclass

+

Member Function Documentation

+ +

◆ function_template_test()

+ +
+
+
+template<typename TemplatedClass >
+
+template<typename T >
+ + + + + + + + +
std::shared_ptr< std::string > MyLibrary::SubclassExample< TemplatedClass >::function_template_test (std::shared_ptr< T > & param)
+
+ +

Template function function.

+ +
+
+ +

◆ long_function_with_many_parameters()

+ +
+
+
+template<typename TemplatedClass >
+
+template<typename T , typename Foo , typename Bar , typename Alice , typename Bob , typename Charlie , typename Hello , typename World >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::pair< std::string, std::string > MyLibrary::SubclassExample< TemplatedClass >::long_function_with_many_parameters (std::shared_ptr< T > & param1,
std::shared_ptr< std::string > & param2,
bool parameter3,
Alice paramater4 Bob parameter 5 
)
+
+inline
+
+ +

Extra long function with lots of parameters and many template types.

+

Also has a long return type.

+
Parameters
+ + + + +
param1first parameter
param2second parameter
parameter3third parameter
+
+
+ +
+
+ +

◆ virtualfunc()

+ +
+
+
+template<typename TemplatedClass >
+ + + + + +
+ + + + + + + +
int MyLibrary::SubclassExample< TemplatedClass >::virtualfunc ()
+
+overridevirtual
+
+
Bug:
second bug
+
Returns
+ +

Implements MyLibrary::Example.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classMyLibrary_1_1SubclassExample.png b/classMyLibrary_1_1SubclassExample.png new file mode 100644 index 0000000..0d5a8e9 Binary files /dev/null and b/classMyLibrary_1_1SubclassExample.png differ diff --git a/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName-members.html b/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName-members.html new file mode 100644 index 0000000..126e828 --- /dev/null +++ b/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName-members.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dire::project::IReallyWantMyOwnPlatformProjectName Member List
+
+
+ +

This is the complete list of members for dire::project::IReallyWantMyOwnPlatformProjectName, including all inherited members.

+ + + + +
IReallyWantMyOwnPlatformProjectName(Path name)dire::project::IReallyWantMyOwnPlatformProjectNameinlineexplicit
operator Path() &&dire::project::IReallyWantMyOwnPlatformProjectNameinlineexplicit
operator Path const &() constdire::project::IReallyWantMyOwnPlatformProjectNameinlineexplicit
+ + + + diff --git a/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html b/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html new file mode 100644 index 0000000..fc7f800 --- /dev/null +++ b/classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html @@ -0,0 +1,183 @@ + + + + + + + +Dire: dire::project::IReallyWantMyOwnPlatformProjectName Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +List of all members
+
dire::project::IReallyWantMyOwnPlatformProjectName Class Reference
+
+
+ +

#include <project.hpp>

+ + + + + + + + +

+Public Member Functions

 IReallyWantMyOwnPlatformProjectName (Path name)
 
 operator Path const & () const
 
 operator Path () &&
 
+

Constructor & Destructor Documentation

+ +

◆ IReallyWantMyOwnPlatformProjectName()

+ +
+
+ + + + + +
+ + + + + + + + +
dire::project::IReallyWantMyOwnPlatformProjectName::IReallyWantMyOwnPlatformProjectName (Path name)
+
+inlineexplicit
+
+ +
+
+

Member Function Documentation

+ +

◆ operator Path()

+ +
+
+ + + + + +
+ + + + + + + +
dire::project::IReallyWantMyOwnPlatformProjectName::operator Path () &&
+
+inlineexplicit
+
+ +
+
+ +

◆ operator Path const &()

+ +
+
+ + + + + +
+ + + + + + + +
dire::project::IReallyWantMyOwnPlatformProjectName::operator Path const & () const
+
+inlineexplicit
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classdire_1_1project_1_1PlatformProjectName-members.html b/classdire_1_1project_1_1PlatformProjectName-members.html new file mode 100644 index 0000000..5ff1227 --- /dev/null +++ b/classdire_1_1project_1_1PlatformProjectName-members.html @@ -0,0 +1,94 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dire::project::PlatformProjectName Member List
+
+
+ +

This is the complete list of members for dire::project::PlatformProjectName, including all inherited members.

+ + + + + +
namedire::project::PlatformProjectNamefriend
operator Path() &&dire::project::PlatformProjectNameinlineexplicit
operator Path const &() constdire::project::PlatformProjectNameinlineexplicit
PlatformProjectName(IReallyWantMyOwnPlatformProjectName name)dire::project::PlatformProjectNameinline
+ + + + diff --git a/classdire_1_1project_1_1PlatformProjectName.html b/classdire_1_1project_1_1PlatformProjectName.html new file mode 100644 index 0000000..5986760 --- /dev/null +++ b/classdire_1_1project_1_1PlatformProjectName.html @@ -0,0 +1,232 @@ + + + + + + + +Dire: dire::project::PlatformProjectName Class Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Public Member Functions | +Friends | +List of all members
+
dire::project::PlatformProjectName Class Reference
+
+
+ +

#include <project.hpp>

+ + + + + + + + +

+Public Member Functions

 PlatformProjectName (IReallyWantMyOwnPlatformProjectName name)
 
 operator Path const & () const
 
 operator Path () &&
 
+ + + +

+Friends

auto name (std::string domain, std::string org, std::string app_name) -> PlatformProjectName
 
+

Constructor & Destructor Documentation

+ +

◆ PlatformProjectName()

+ +
+
+ + + + + +
+ + + + + + + + +
dire::project::PlatformProjectName::PlatformProjectName (IReallyWantMyOwnPlatformProjectName name)
+
+inline
+
+ +
+
+

Member Function Documentation

+ +

◆ operator Path()

+ +
+
+ + + + + +
+ + + + + + + +
dire::project::PlatformProjectName::operator Path () &&
+
+inlineexplicit
+
+ +
+
+ +

◆ operator Path const &()

+ +
+
+ + + + + +
+ + + + + + + +
dire::project::PlatformProjectName::operator Path const & () const
+
+inlineexplicit
+
+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ name

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
auto name (std::string domain,
std::string org,
std::string app_name 
) -> PlatformProjectName
+
+friend
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classes.html b/classes.html new file mode 100644 index 0000000..99e5d0e --- /dev/null +++ b/classes.html @@ -0,0 +1,104 @@ + + + + + + + +Dire: Class Index + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
B | E | I | P | S | U
+
+
+
B
+
BaseDirsBundle (dire::base)
+
+
E
+
Example (MyLibrary)
+
+
I
+
IReallyWantMyOwnPlatformProjectName (dire::project)
+
+
P
+
PlatformProjectName (dire::project)
ProjectDirsBundle (dire::project)
+
+
S
+
SecondExample (MyLibrary)
SubclassExample (MyLibrary)
+
+
U
+
UserDirsBundle (dire::user)
+
+
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/closed.png differ diff --git a/customization_8md.html b/customization_8md.html new file mode 100644 index 0000000..6f035d3 --- /dev/null +++ b/customization_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/docs/customization.md File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
docs/doxygen/doxygen-awesome-css/docs/customization.md File Reference
+
+
+
+ + + + diff --git a/defines_8hpp.html b/defines_8hpp.html new file mode 100644 index 0000000..07da28c --- /dev/null +++ b/defines_8hpp.html @@ -0,0 +1,108 @@ + + + + + + + +Dire: src/lib/include/dire/defines.hpp File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
+Namespaces | +Typedefs
+
defines.hpp File Reference
+
+
+
#include <filesystem>
+#include <optional>
+
+

Go to the source code of this file.

+ + + + +

+Namespaces

namespace  dire
 
+ + + + + + +

+Typedefs

using dire::Path = std::filesystem::path
 
template<typename T >
using dire::Optional = std::optional< T >
 
+
+ + + + diff --git a/defines_8hpp_source.html b/defines_8hpp_source.html new file mode 100644 index 0000000..9f32ec3 --- /dev/null +++ b/defines_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +Dire: src/lib/include/dire/defines.hpp Source File + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
defines.hpp
+
+
+Go to the documentation of this file.
1#pragma once
+
2
+
3// This is intentionally a transitive include
+
4
+
5#include <filesystem>
+
6
+
7#if defined(DIRE_USE_TL_LIBS)
+
8 #include <tl/optional.hpp>
+
9#else
+
10 #include <optional>
+
11#endif
+
12
+
13namespace dire
+
14{
+
15
+
16using Path = std::filesystem::path;
+
17
+
18#if defined(DIRE_USE_TL_LIBS)
+
19
+
20template<typename T>
+
21using Optional = tl::optional<T>;
+
22
+
23#else
+
24
+
25template<typename T>
+
26using Optional = std::optional<T>;
+
27
+
28#endif
+
29
+
30} // namespace dire
+
Definition base.hpp:6
+
std::optional< T > Optional
Definition defines.hpp:26
+
std::filesystem::path Path
Definition defines.hpp:16
+
+ + + + diff --git a/deprecated.html b/deprecated.html new file mode 100644 index 0000000..997d774 --- /dev/null +++ b/deprecated.html @@ -0,0 +1,88 @@ + + + + + + + +Dire: Deprecated List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Deprecated List
+
+
+
+
Member MyLibrary::Example::test (const std::string &test)
+
None of this will be deprecated, because it's beautiful!
+
+
+
+ + + + diff --git a/differences_8md.html b/differences_8md.html new file mode 100644 index 0000000..e8f5be0 --- /dev/null +++ b/differences_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: docs/differences.md File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
docs/differences.md File Reference
+
+
+
+ + + + diff --git a/dir_359d2bec989c9a8deeeb9aee335c1c76.html b/dir_359d2bec989c9a8deeeb9aee335c1c76.html new file mode 100644 index 0000000..ac21c9e --- /dev/null +++ b/dir_359d2bec989c9a8deeeb9aee335c1c76.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: docs/doxygen Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
doxygen Directory Reference
+
+
+ + + + +

+Directories

 doxygen-awesome-css
 
+
+ + + + diff --git a/dir_49e56c817e5e54854c35e136979f97ca.html b/dir_49e56c817e5e54854c35e136979f97ca.html new file mode 100644 index 0000000..ee54d15 --- /dev/null +++ b/dir_49e56c817e5e54854c35e136979f97ca.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: docs Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
docs Directory Reference
+
+
+ + + + +

+Directories

 doxygen
 
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..2aec2d5 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: src Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
src Directory Reference
+
+
+ + + + +

+Directories

 lib
 
+
+ + + + diff --git a/dir_6a07e2ca3bd007a6de890fc180e94f44.html b/dir_6a07e2ca3bd007a6de890fc180e94f44.html new file mode 100644 index 0000000..a459cb5 --- /dev/null +++ b/dir_6a07e2ca3bd007a6de890fc180e94f44.html @@ -0,0 +1,101 @@ + + + + + + + +Dire: src/lib/include/dire Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
dire Directory Reference
+
+
+ + + + + + + + + + + + +

+Files

 all.hpp
 
 base.hpp
 
 defines.hpp
 
 project.hpp
 
 user.hpp
 
+
+ + + + diff --git a/dir_724e3471992785f19518e343d0021d87.html b/dir_724e3471992785f19518e343d0021d87.html new file mode 100644 index 0000000..0b28b28 --- /dev/null +++ b/dir_724e3471992785f19518e343d0021d87.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

 MyLibrary
 
+
+ + + + diff --git a/dir_a6de617209e7dfe1dba6aa99bb75c990.html b/dir_a6de617209e7dfe1dba6aa99bb75c990.html new file mode 100644 index 0000000..ba4e540 --- /dev/null +++ b/dir_a6de617209e7dfe1dba6aa99bb75c990.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: src/lib/include Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
include Directory Reference
+
+
+ + + + +

+Directories

 dire
 
+
+ + + + diff --git a/dir_c85d3e3c5052e9ad9ce18c6863244a25.html b/dir_c85d3e3c5052e9ad9ce18c6863244a25.html new file mode 100644 index 0000000..d44aef9 --- /dev/null +++ b/dir_c85d3e3c5052e9ad9ce18c6863244a25.html @@ -0,0 +1,93 @@ + + + + + + + +Dire: src/lib Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
lib Directory Reference
+
+
+ + + + +

+Directories

 include
 
+
+ + + + diff --git a/dir_e222099c3c89b548c483259159ec9e69.html b/dir_e222099c3c89b548c483259159ec9e69.html new file mode 100644 index 0000000..4e5757b --- /dev/null +++ b/dir_e222099c3c89b548c483259159ec9e69.html @@ -0,0 +1,95 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
doxygen-awesome-css Directory Reference
+
+
+ + + + + + +

+Directories

 docs
 
 include
 
+
+ + + + diff --git a/dir_f4c5fdd1b25a13cde0da7df780592f79.html b/dir_f4c5fdd1b25a13cde0da7df780592f79.html new file mode 100644 index 0000000..d314dd2 --- /dev/null +++ b/dir_f4c5fdd1b25a13cde0da7df780592f79.html @@ -0,0 +1,87 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/docs Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
docs Directory Reference
+
+
+
+ + + + diff --git a/dir_fa80e219cf4f418d6a928600b3ec0668.html b/dir_fa80e219cf4f418d6a928600b3ec0668.html new file mode 100644 index 0000000..3d75e6b --- /dev/null +++ b/dir_fa80e219cf4f418d6a928600b3ec0668.html @@ -0,0 +1,95 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include/MyLibrary Directory Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
MyLibrary Directory Reference
+
+
+ + + + + + +

+Files

 example.hpp
 
 subclass-example.hpp
 
+
+ + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 0000000..0b928a5 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 0000000..ac18b27 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs_2doxygen_2doxygen-awesome-css_2README_8md.html b/docs_2doxygen_2doxygen-awesome-css_2README_8md.html new file mode 100644 index 0000000..ad7fea5 --- /dev/null +++ b/docs_2doxygen_2doxygen-awesome-css_2README_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/README.md File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
docs/doxygen/doxygen-awesome-css/README.md File Reference
+
+
+
+ + + + diff --git a/doxygen-awesome.css b/doxygen-awesome.css new file mode 100644 index 0000000..a11ceab --- /dev/null +++ b/doxygen-awesome.css @@ -0,0 +1,2669 @@ +/** + +Doxygen Awesome +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2023 jothepro + +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. + +*/ + +html { + /* primary theme color. This will affect the entire websites color scheme: links, arrows, labels, ... */ + --primary-color: #1779c4; + --primary-dark-color: #335c80; + --primary-light-color: #70b1e9; + + /* page base colors */ + --page-background-color: #ffffff; + --page-foreground-color: #2f4153; + --page-secondary-foreground-color: #6f7e8e; + + /* color for all separators on the website: hr, borders, ... */ + --separator-color: #dedede; + + /* border radius for all rounded components. Will affect many components, like dropdowns, memitems, codeblocks, ... */ + --border-radius-large: 8px; + --border-radius-small: 4px; + --border-radius-medium: 6px; + + /* default spacings. Most components reference these values for spacing, to provide uniform spacing on the page. */ + --spacing-small: 5px; + --spacing-medium: 10px; + --spacing-large: 16px; + + /* default box shadow used for raising an element above the normal content. Used in dropdowns, search result, ... */ + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.075); + + --odd-color: rgba(0,0,0,.028); + + /* font-families. will affect all text on the website + * font-family: the normal font for text, headlines, menus + * font-family-monospace: used for preformatted text in memtitle, code, fragments + */ + --font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif; + --font-family-monospace: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; + + /* font sizes */ + --page-font-size: 15.6px; + --navigation-font-size: 14.4px; + --toc-font-size: 13.4px; + --code-font-size: 14px; /* affects code, fragment */ + --title-font-size: 22px; + + /* content text properties. These only affect the page content, not the navigation or any other ui elements */ + --content-line-height: 27px; + /* The content is centered and constraint in it's width. To make the content fill the whole page, set the variable to auto.*/ + --content-maxwidth: 1050px; + --table-line-height: 24px; + --toc-sticky-top: var(--spacing-medium); + --toc-width: 200px; + --toc-max-height: calc(100vh - 2 * var(--spacing-medium) - 85px); + + /* colors for various content boxes: @warning, @note, @deprecated @bug */ + --warning-color: #faf3d8; + --warning-color-dark: #f3a600; + --warning-color-darker: #5f4204; + --note-color: #e4f3ff; + --note-color-dark: #1879C4; + --note-color-darker: #274a5c; + --todo-color: #e4dafd; + --todo-color-dark: #5b2bdd; + --todo-color-darker: #2a0d72; + --deprecated-color: #ecf0f3; + --deprecated-color-dark: #5b6269; + --deprecated-color-darker: #43454a; + --bug-color: #f8d1cc; + --bug-color-dark: #b61825; + --bug-color-darker: #75070f; + --invariant-color: #d8f1e3; + --invariant-color-dark: #44b86f; + --invariant-color-darker: #265532; + + /* blockquote colors */ + --blockquote-background: #f8f9fa; + --blockquote-foreground: #636568; + + /* table colors */ + --tablehead-background: #f1f1f1; + --tablehead-foreground: var(--page-foreground-color); + + /* menu-display: block | none + * Visibility of the top navigation on screens >= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsible table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); + + --animation-duration: .12s +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition, div.toc li, div.toc h3 { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: 1em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); + min-width: 8px; + max-width: 50vw; +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; + margin-right: 1px; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + width: 4px; + background: transparent; + box-shadow: inset -1px 0 0 0 var(--separator-color); +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe, + html:not(.light-mode) div.contents .dotgraph iframe { + filter: brightness(89%) hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe, +html.dark-mode div.contents .dotgraph iframe + { + filter: brightness(89%) hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +.dotgraph { + max-width: 100%; + overflow-x: scroll; +} + +.dotgraph .caption { + position: sticky; + left: 0; +} + +/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */ +.interactive_dotgraph .dotgraph iframe { + max-width: 100%; +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform var(--animation-duration) ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .textblock > .tabbed > ul > li > div.fragment, + .textblock > .tabbed > ul > li > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment > .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); + background-color: var(--fragment-linenumber-background) !important; +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.markdownTable, table.doxtable, table.fieldtable { + padding: 1px; +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: block; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: table; + width: 100%; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform var(--animation-duration) ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar, +.contents .dotgraph::-webkit-scrollbar, +.contents .tabs-overview-container::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb, +.contents .dotgraph::-webkit-scrollbar-thumb, +.contents .tabs-overview-container::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb, +.contents .dotgraph:hover::-webkit-scrollbar-thumb, +.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track, +.contents .dotgraph::-webkit-scrollbar-track, +.contents .tabs-overview-container::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc, +.contents .dotgraph, +.contents .tabs-overview-container { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform var(--animation-duration) ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + +/* + Optional tab feature +*/ + +.tabbed > ul { + padding-inline-start: 0px; + margin: 0; + padding: var(--spacing-small) 0; +} + +.tabbed > ul > li { + display: none; +} + +.tabbed > ul > li.selected { + display: block; +} + +.tabs-overview-container { + overflow-x: auto; + display: block; + overflow-y: visible; +} + +.tabs-overview { + border-bottom: 1px solid var(--separator-color); + display: flex; + flex-direction: row; +} + +@media screen and (max-width: 767px) { + .tabs-overview-container { + margin: 0 calc(0px - var(--spacing-large)); + } + .tabs-overview { + padding: 0 var(--spacing-large) + } +} + +.tabs-overview button.tab-button { + color: var(--page-foreground-color); + margin: 0; + border: none; + background: transparent; + padding: calc(var(--spacing-large) / 2) 0; + display: inline-block; + font-size: var(--page-font-size); + cursor: pointer; + box-shadow: 0 1px 0 0 var(--separator-color); + position: relative; + + -webkit-tap-highlight-color: transparent; +} + +.tabs-overview button.tab-button .tab-title::before { + display: block; + content: attr(title); + font-weight: 600; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.tabs-overview button.tab-button .tab-title { + float: left; + white-space: nowrap; + font-weight: normal; + padding: calc(var(--spacing-large) / 2) var(--spacing-large); + border-radius: var(--border-radius-medium); + transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button:not(:last-child) .tab-title { + box-shadow: 8px 0 0 -7px var(--separator-color); +} + +.tabs-overview button.tab-button:hover .tab-title { + background: var(--separator-color); + box-shadow: none; +} + +.tabs-overview button.tab-button.active .tab-title { + font-weight: 600; +} + +.tabs-overview button.tab-button::after { + content: ''; + display: block; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 0; + width: 0%; + margin: 0 auto; + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + background-color: var(--primary-color); + transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button.active::after { + width: 100%; + box-sizing: border-box; + height: 3px; +} + + +/* + Navigation Buttons +*/ + +.section_buttons:not(:empty) { + margin-top: calc(var(--spacing-large) * 3); +} + +.section_buttons table.markdownTable { + display: block; + width: 100%; +} + +.section_buttons table.markdownTable tbody { + display: table !important; + width: 100%; + box-shadow: none; + border-spacing: 10px; +} + +.section_buttons table.markdownTable td { + padding: 0; +} + +.section_buttons table.markdownTable th { + display: none; +} + +.section_buttons table.markdownTable tr.markdownTableHead { + border: none; +} + +.section_buttons tr th, .section_buttons tr td { + background: none; + border: none; + padding: var(--spacing-large) 0 var(--spacing-small); +} + +.section_buttons a { + display: inline-block; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + color: var(--page-secondary-foreground-color) !important; + text-decoration: none; + transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out; +} + +.section_buttons a:hover { + color: var(--page-foreground-color) !important; + background-color: var(--odd-color); +} + +.section_buttons tr td.markdownTableBodyLeft a { + padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2); +} + +.section_buttons tr td.markdownTableBodyRight a { + padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large); +} + +.section_buttons tr td.markdownTableBodyLeft a::before, +.section_buttons tr td.markdownTableBodyRight a::after { + color: var(--page-secondary-foreground-color) !important; + display: inline-block; + transition: color .08s ease-in-out, transform .09s ease-in-out; +} + +.section_buttons tr td.markdownTableBodyLeft a::before { + content: '〈'; + padding-right: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyRight a::after { + content: '〉'; + padding-left: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyLeft a:hover::before { + color: var(--page-foreground-color) !important; + transform: translateX(-3px); +} + +.section_buttons tr td.markdownTableBodyRight a:hover::after { + color: var(--page-foreground-color) !important; + transform: translateX(3px); +} + +@media screen and (max-width: 450px) { + .section_buttons a { + width: 100%; + box-sizing: border-box; + } + + .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a { + border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); + border-right: none; + } + + .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a { + border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; + } +} diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..8cff99e --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1685 @@ +/* The standard CSS for doxygen 1.9.8*/ + +body { + background-color: white; + color: black; +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: Roboto,sans-serif; + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: Roboto,sans-serif; + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: white; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + color: black; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: black; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #00FF00; + color: black; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: #4665A2; + background-color: #D8D8D8; +} + +span.lineno a:hover { + color: #4665A2; + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.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 { + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: 104px; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000; +} + +span.keywordtype { + color: #604020; +} + +span.keywordflow { + color: #E08000; +} + +span.comment { + color: #800000; +} + +span.preprocessor { + color: #806020; +} + +span.stringliteral { + color: #002080; +} + +span.charliteral { + color: #008080; +} + +span.xmlcdata { + color: black; +} + +span.vhdldigit { + color: #FF00FF; +} + +span.vhdlchar { + color: #000000; +} + +span.vhdlkeyword { + color: #700070; +} + +span.vhdllogic { + color: #FF0000; +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #2D4068; +} + +th.dirtab { + background-color: #374F7F; + color: #FFFFFF; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: white; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + vertical-align: top; +} + +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: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: #F8F9FC; +} + +.directory tr.even { + padding-left: 6px; + background-color: white; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial,Helvetica; + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.svg'); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.svg'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #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 #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#283A5D; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: white; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: #2A3D61; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% Tahoma,Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; + background-color: white; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("data:image/svg+xml;utf8,&%238595;") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Verdana,'DejaVu Sans',Geneva,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: black; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: #4665A2; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: Roboto,sans-serif; + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: white; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: gray; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: white; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: gray; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: gray; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: gray; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000..79a7635 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..ee3f142 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,192 @@ +/* + @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 toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + var id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + var start = $(this).attr('data-start'); + var end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + var line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); +} + +/* @license-end */ diff --git a/example_8hpp.html b/example_8hpp.html new file mode 100644 index 0000000..6ee489c --- /dev/null +++ b/example_8hpp.html @@ -0,0 +1,116 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include/MyLibrary/example.hpp File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
example.hpp File Reference
+
+
+
#include <string>
+
+

Go to the source code of this file.

+ + + + + + + +

+Classes

class  MyLibrary::Example
 Example class to demonstrate the features of the custom CSS. More...
 
class  MyLibrary::SecondExample
 
+ + + +

+Namespaces

namespace  MyLibrary
 
+ + + +

+Enumerations

enum  MyLibrary::Color { MyLibrary::red +, MyLibrary::green +, MyLibrary::blue + }
 
+
+ + + + diff --git a/example_8hpp_source.html b/example_8hpp_source.html new file mode 100644 index 0000000..3a5f306 --- /dev/null +++ b/example_8hpp_source.html @@ -0,0 +1,132 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include/MyLibrary/example.hpp Source File + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
example.hpp
+
+
+Go to the documentation of this file.
1#pragma once
+
2#include <string>
+
3
+
+
4namespace MyLibrary {
+
5
+
6enum Color { red, green, blue };
+
7
+
+
14class Example {
+
15public:
+
155 std::string test(const std::string& test);
+
156
+
157 virtual int virtualfunc() = 0;
+
158
+
159 static bool staticfunc();
+
160
+
161
+
162};
+
+
163
+
+ +
165 std::string foo();
+
166}
+
+
167
+
168}
+
+
169
+
Example class to demonstrate the features of the custom CSS.
Definition example.hpp:14
+
std::string test(const std::string &test)
brief summary
+
virtual int virtualfunc()=0
+
static bool staticfunc()
+
Definition example.hpp:164
+
Definition example.hpp:4
+
Color
Definition example.hpp:6
+
@ blue
Definition example.hpp:6
+
@ green
Definition example.hpp:6
+
@ red
Definition example.hpp:6
+
+ + + + diff --git a/extensions_8md.html b/extensions_8md.html new file mode 100644 index 0000000..269c21e --- /dev/null +++ b/extensions_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/docs/extensions.md File Reference + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
docs/doxygen/doxygen-awesome-css/docs/extensions.md File Reference
+
+
+
+ + + + diff --git a/files.html b/files.html new file mode 100644 index 0000000..9babf7f --- /dev/null +++ b/files.html @@ -0,0 +1,104 @@ + + + + + + + +Dire: File List + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 123456]
+ + + + + + + + + + + + + + + + + +
  docs
  doxygen
  doxygen-awesome-css
 docs
  include
  MyLibrary
 example.hpp
 subclass-example.hpp
  src
  lib
  include
  dire
 all.hpp
 base.hpp
 defines.hpp
 project.hpp
 user.hpp
+
+
+ + + + diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 0000000..b04bed2 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 0000000..52f0166 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 0000000..f6896dd --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 0000000..2d1f06e --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..28ac917 --- /dev/null +++ b/functions.html @@ -0,0 +1,169 @@ + + + + + + + +Dire: Class Members + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- a -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- h -

+ + +

- i -

+ + +

- l -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..1ab6952 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,91 @@ + + + + + + + +Dire: Class Members - Functions + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the classes they belong to:
+
+ + + + diff --git a/functions_rela.html b/functions_rela.html new file mode 100644 index 0000000..7ca3117 --- /dev/null +++ b/functions_rela.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: Class Members - Related Symbols + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all related symbols with links to the classes they belong to:
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 0000000..00d9133 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,101 @@ + + + + + + + +Dire: Class Members - Variables + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the classes they belong to:
+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..e919a77 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,95 @@ + + + + + + + +Dire: Class Hierarchy + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..3a12231 --- /dev/null +++ b/index.html @@ -0,0 +1,142 @@ + + + + + + + +Dire: Dire + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Dire
+
+
+

+

‍[!WARNING] Still WIP. Wait a few days before this gets properly released with proper docs and build options.

+
+
+

‍[!NOTE] This started as a simple port of dirs-dev/directories-rs, but deviated in the process, the exact details can be found here.

+
+

A complete cross-platform solution for user and data directories discovery with OOTB project support.

+

TODO:

    +
  • [x] Add tests for everything (the tests are probably not perfect but good enough for now)
  • +
  • [x] Add bundle functions (a function returning a struct with all the paths)
  • +
  • [x] Refactor so far #1
  • +
  • [x] Package with Nix [ "lib" "dev" "bin " ]
  • +
  • [x] Add proper meson building (with subprojects)
  • +
  • [x] Add proper CMake building (with FetchContent)
  • +
  • [x] Add proper license :)))
  • +
  • [x] Remove CTRE fir xdg parsing
  • +
  • [x] CI
      +
    • [x] Linux - Nix with { CMake, Meson } x { Gcc, Clang }
    • +
    • [x] Mac - Nix with { CMake, Meson } x { Gcc, Clang }
    • +
    • [x] Windows - { CMake, Meson } x MSVC
    • +
    +
  • +
  • [x] Merge PR and go public
  • +
  • [x] Change codeowners
  • +
  • [x] Documentation generation
  • +
  • [ ] Add dire executable
  • +
  • [ ] Add conan and vcpkg packaging methods
  • +
  • [ ] Releases on GitHub
  • +
  • [ ] Refactor so far #3
  • +
  • [ ] Better readme (diataxis docs)
  • +
  • [ ] Refactor so far #4
  • +
+

Plans:

    +
  • [ ] Package returned dirs in special objects with the following methods *****:

      +
    • [ ] writable() -> bool - cross platform checking if the dir is writable into (we mean every notion of writable - delete, update, create new file, etc.)
    • +
    • [ ] readable() -> bool - cross platform checking if the dir is readble (same here)
    • +
    • [ ] writable_and_readable() -> bool - return writable() and readable();
    • +
    • Since the lib will offer readable(), maybe also try to find font paths on windows? Possibly??
    • +
    • [ ] is_empty() -> bool - checks if the directory is empty
    • +
    • [ ] purge() -> bool (only for project) - removes the directory with the files inside
    • +
    • [ ] clear() -> bool (only for project) - clears files inside
    • +
    +

    All of these would possibly return something else than bool for better error handling, especialy purge() and clear().

    +
  • +
  • [ ] Something akin to appendExtra(Data|Config)Directories from sago007/PlatformFolders *****:
  • +
  • [ ] Split libdire into totally independent modules, eg. 3 separate targets - base, user and project *****,
      +
    • The user would not pay for the modules they don't want (possible faster builds, smaller binary size, etc., shouldn't be much of an issue tho, the library is extremely small)
    • +
    • Would introduce duplication in certain modules but I guess we're fine with that, the lib is tiny
    • +
    +
  • +
  • [ ] Rewrite the library to be C++17 or even C++11 compatible *****:
      +
    • That would require throwing out CTRE and rolling our own simple XDG record parser
    • +
    +
  • +
  • [ ] Allow for WebAsm targets *****:
  • +
  • [ ] Split the underlying xdg dirs and known folders api into a separate lib *****:
  • +
+

***** Only if there will be need to, e.g. someone asks for that or it will be a feasible fix for an issue

+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..1dffb65 --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/md_docs_2differences.html b/md_docs_2differences.html new file mode 100644 index 0000000..251b250 --- /dev/null +++ b/md_docs_2differences.html @@ -0,0 +1,96 @@ + + + + + + + +Dire: Differences between this and other implementations + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Differences between this and other implementations
+
+
+

+

+How it started

+

This project started because I wanted a nice cross-platform way of discovering typical data directories.

+

The only feasible alternative I found is sago007/PlatformFolders, but it's unmaintained for two years now and doesn't necessarily expose the API I'd like to be using.

+

There's an awesome Rust crate dirs-dev/directories-rs which very much would fit my needs, but it's.. Rust, not C++ - so I wrote this.

+

+How it differs

+

TBD.

+

+Where it's going

+

TBD.

+
+
+ + + + diff --git a/md_docs_2doxygen_2doxygen-awesome-css_2README.html b/md_docs_2doxygen_2doxygen-awesome-css_2README.html new file mode 100644 index 0000000..a477b6d --- /dev/null +++ b/md_docs_2doxygen_2doxygen-awesome-css_2README.html @@ -0,0 +1,199 @@ + + + + + + + +Dire: Doxygen Awesome + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Doxygen Awesome
+
+
+

GitHub release (latest by date) GitHub GitHub Repo stars

+
Screenshot of Doxygen Awesome CSS

Doxygen Awesome is a custom CSS theme for Doxygen HTML documentation with lots of customization parameters.

+

+Motivation

+

I really like how the Doxygen HTML documentation is structured! But IMHO it looks a bit outdated.

+

This theme is an attempt to update the visuals of Doxygen without changing its overall layout too much.

+

+Features

+
    +
  • 🌈 Clean, modern design
  • +
  • 🚀 Heavily customizable by adjusting CSS variables
  • +
  • 🧩 No changes to the HTML structure of Doxygen are required
  • +
  • 📱 Improved mobile usability
  • +
  • 🌘 Dark mode support!
  • +
  • 🥇 Works best with doxygen 1.9.1 - 1.9.4 and 1.9.6 - 1.9.8
  • +
+

+Examples

+

Some websites using this theme:

+ +

+Installation

+

To use the theme when generating your documentation, bring the required CSS and JS files from this repository into your project.

+

This can be done in several ways:

+
    +
  • manually copying the files
  • +
  • adding the project as a Git submodule
  • +
  • adding the project as a npm/xpm dependency
  • +
  • installing the theme system-wide
  • +
+

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.

+

+Git submodule

+

For projects that use git, add the repository as a submodule and check out the desired release:

+
git submodule add https://github.com/jothepro/doxygen-awesome-css.git
+
cd doxygen-awesome-css
+
git checkout v2.3.1
+

+npm/xpm dependency

+

In the npm ecosystem, this project can be added as a development dependency to your project:

+
cd your-project
+
npm install https://github.com/jothepro/doxygen-awesome-css#v2.3.1 --save-dev
+
+
ls -l node_module/@jothepro/doxygen-awesome-css
+

Similarly, in the xPack ecosystem, this project can be added as a development dependency to an xpm managed project.

+

+System-wide

+

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.

+

+Choosing a layout

+

There are two layout options. Choose one of them and configure Doxygen accordingly:

+
    +
  • Base Theme

    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
    +
    DISABLE_INDEX = NO
    +
    FULL_SIDEBAR = NO
    +
    HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css
    +
    HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
    +
  • +
  • Sidebar-Only Theme

    Hides the top titlebar to give more space to the content. The treeview must be enabled in order for this theme to work.

    +

    Required files: doxygen-awesome.css, doxygen-awesome-sidebar-only.css

    +

    Required Doxyfile configuration:

    GENERATE_TREEVIEW = YES # required!
    +
    DISABLE_INDEX = NO
    +
    FULL_SIDEBAR = NO
    +
    HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
    +
    doxygen-awesome-css/doxygen-awesome-sidebar-only.css
    +
    HTML_COLORSTYLE = LIGHT # required with Doxygen >= 1.9.5
    +
  • +
+


+

+
Warning
    +
  • This theme is not compatible with the FULL_SIDEBAR = YES option provided by Doxygen!
  • +
  • HTML_COLORSTYLE must be set to LIGHT since Doxygen 1.9.5!
  • +
+
+

+Further installation instructions

+ +

+Browser support

+

Tested with

+
    +
  • Chrome 119, Chrome 119 for Android, Chrome 119 for iOS
  • +
  • Safari 17, Safari for iOS 16
  • +
  • Firefox 118, Firefox 120 for Android, Firefox 119 for iOS
  • +
  • Edge 119
  • +
+

The theme does not strive to be backward compatible with (significantly) older browser versions.

+

+Credits

+

Thanks for all the bug reports and inspiring feedback on GitHub!

+

Special thanks to all the contributors:
+
+

+
+ + + + +
Read Next
Extensions
+
+
+ + + + diff --git a/md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html new file mode 100644 index 0000000..7e92bdd --- /dev/null +++ b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html @@ -0,0 +1,203 @@ + + + + + + + +Dire: Customization + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Customization
+
+
+ +

+

+CSS-Variables

+

This theme is highly customizable because a lot of things are parameterized with CSS variables.

+

Just to give you an idea of how flexible the styling is, click this button:

+
Alter theme

+Setup

+

It is recommended to add your own custom.css and overwrite the variables there:

HTML_EXTRA_STYLESHEET = doxygen-awesome.css custom.css
+

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 whether 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 behavior 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 are 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 have customized the theme with custom colors, spacings, font-sizes, etc. and you want to share your creation with others, you can do this here.

+

I am always curious to learn about how you made the theme look even better!

+
+ + + + +
Previous Next
Extensions Tips & Tricks
+
+
+ + + + diff --git a/md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html new file mode 100644 index 0000000..3c6ae68 --- /dev/null +++ b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html @@ -0,0 +1,306 @@ + + + + + + + +Dire: Extensions + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Extensions
+
+
+ +

+

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:

+
    +
  1. Create default header template:
    doxygen -w html header.html delete_me.html delete_me.css
    +
  2. +
  3. Reference the template in your Doxyfile:
    HTML_HEADER = header.html
    +
  4. +
+

More details on header customization

+

+Dark Mode Toggle

+

Adds a button next to the search bar to enable and disable the dark theme variant manually:

+

+Installation

+
    +
  1. Add the required resources in your Doxyfile:
      +
    • HTML_EXTRA_FILES: doxygen-awesome-darkmode-toggle.js
    • +
    • HTML_EXTRA_STYLESHEET: doxygen-awesome-sidebar-only-darkmode-toggle.css (ONLY required for the sidebar-only theme variant!)
    • +
    +
  2. +
  3. In the header.html template, include doxygen-awesome-darkmode-toggle.js at the end of the <head> and then initialize it:
    <html>
    +
    <head>
    +
    <!-- ... other metadata & script includes ... -->
    +
    <script type="text/javascript" src="$relpath^doxygen-awesome-darkmode-toggle.js"></script>
    +
    <script type="text/javascript">
    +
    DoxygenAwesomeDarkModeToggle.init()
    +
    </script>
    +
    </head>
    +
    <body>
    +
  4. +
+

+Customizing

+

Changing the tooltip of the button:

DoxygenAwesomeDarkModeToggle.title = "Zwischen hellem/dunklem Modus wechseln"
+

Changing Icons. Both Emoji or SVG icons are supported:

DoxygenAwesomeDarkModeToggle.lightModeIcon = '🌞'
+
// icon from https://fonts.google.com/icons
+
DoxygenAwesomeDarkModeToggle.darkModeIcon = `<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#009793"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M8.1,14.15C9.77,14.63,11,16.17,11,18c0,0.68-0.19,1.31-0.48,1.87c0.48,0.09,0.97,0.14,1.48,0.14 c1.48,0,2.9-0.41,4.13-1.15c-2.62-0.92-5.23-2.82-6.8-5.86C7.74,9.94,7.78,7.09,8.29,4.9c-2.57,1.33-4.3,4.01-4.3,7.1c0,0,0,0,0,0 c0.01,0,0.01,0,0.02,0C5.66,12,7.18,12.83,8.1,14.15z" opacity=".3"/><path d="M19.78,17.51c-2.47,0-6.57-1.33-8.68-5.43C8.77,7.57,10.6,3.6,11.63,2.01C6.27,2.2,1.98,6.59,1.98,12 c0,0.14,0.02,0.28,0.02,0.42C2.61,12.16,3.28,12,3.98,12c0,0,0,0,0,0c0-3.09,1.73-5.77,4.3-7.1C7.78,7.09,7.74,9.94,9.32,13 c1.57,3.04,4.18,4.95,6.8,5.86c-1.23,0.74-2.65,1.15-4.13,1.15c-0.5,0-1-0.05-1.48-0.14c-0.37,0.7-0.94,1.27-1.64,1.64 c0.98,0.32,2.03,0.5,3.11,0.5c3.5,0,6.58-1.8,8.37-4.52C20.18,17.5,19.98,17.51,19.78,17.51z"/><path d="M7,16l-0.18,0C6.4,14.84,5.3,14,4,14c-1.66,0-3,1.34-3,3s1.34,3,3,3c0.62,0,2.49,0,3,0c1.1,0,2-0.9,2-2 C9,16.9,8.1,16,7,16z"/></g></g></svg>`
+

All customizations must be applied before calling DoxygenAwesomeDarkModeToggle.init()!

+

+Fragment Copy Button

+

Shows a copy button when the user hovers over a code fragment:

+

+Installation

+
    +
  1. Add the required resources in your Doxyfile:
      +
    • HTML_EXTRA_FILES: doxygen-awesome-fragment-copy-button.js
    • +
    +
  2. +
  3. In the header.html template, include doxygen-awesome-fragment-copy-button.js at the end of the <head> and then initialize it:
    <html>
    +
    <head>
    +
    <!-- ... other metadata & script includes ... -->
    +
    <script type="text/javascript" src="$relpath^doxygen-awesome-fragment-copy-button.js"></script>
    +
    <script type="text/javascript">
    +
    DoxygenAwesomeFragmentCopyButton.init()
    +
    </script>
    +
    </head>
    +
    <body>
    +
  4. +
+

+Customizing

+

The tooltip of the button can be changed:

DoxygenAwesomeFragmentCopyButton.title = "In die Zwischenablage kopieren"
+

The icon can be changed. It must be an SVG:

DoxygenAwesomeFragmentCopyButton.copyIcon = `<svg ...>`
+
DoxygenAwesomeFragmentCopyButton.successIcon = `<svg ...>`
+

All customizations must be applied before calling DoxygenAwesomeDarkModeToggle.init()!

+

+Paragraph Linking

+

Provides a button on hover behind every headline to allow easy creation of a permanent link to the headline:

+

Works for all headlines and for many documentation section titles.

+

+Installation

+
    +
  1. Add the required resources in your Doxyfile:
      +
    • HTML_EXTRA_FILES: doxygen-awesome-paragraph-link.js
    • +
    +
  2. +
  3. In the header.html template, include doxygen-awesome-paragraph-link.js at the end of the <head> and then initialize it:
    <html>
    +
    <head>
    +
    <!-- ... other metadata & script includes ... -->
    +
    <script type="text/javascript" src="$relpath^doxygen-awesome-paragraph-link.js"></script>
    +
    <script type="text/javascript">
    +
    DoxygenAwesomeParagraphLink.init()
    +
    </script>
    +
    </head>
    +
    <body>
    +
  4. +
+

+Customizing

+

The button tooltip can be changed:

DoxygenAwesomeParagraphLink.title = "Abschnitt verknüpfen"
+

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:

+

+Installation

+
    +
  1. Add the required resources in your Doxyfile:
      +
    • HTML_EXTRA_FILES: doxygen-awesome-interactive-toc.js
    • +
    +
  2. +
  3. In the header.html template, include doxygen-awesome-interactive-toc.js at the end of the <head> and then initialize it:
    <html>
    +
    <head>
    +
    <!-- ... other metadata & script includes ... -->
    +
    <script type="text/javascript" src="$relpath^doxygen-awesome-interactive-toc.js"></script>
    +
    <script type="text/javascript">
    +
    DoxygenAwesomeInteractiveToc.init()
    +
    </script>
    +
    </head>
    +
    <body>
    +
  4. +
+

+Customizing

+

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:

DoxygenAwesomeInteractiveToc.hideMobileMenu = false
+

+Tabs

+
Warning
Experimental feature! Please report bugs here.
+

This extension allows to arrange list content in tabs:

+
    +
  • Tab 1 This is the content of tab 1
  • +
  • Tab 2 This is the content of tab 2
      +
    1. it has a list
    2. +
    3. with multiple items
    4. +
    +
  • +
+

+Installation

+
    +
  1. Add the required resources in your Doxyfile:
      +
    • HTML_EXTRA_FILES: doxygen-awesome-tabs.js
    • +
    +
  2. +
  3. In the header.html template, include doxygen-awesome-tabs.js at the end of the <head> and then initialize it:
    <html>
    +
    <head>
    +
    <!-- ... other metadata & script includes ... -->
    +
    <script type="text/javascript" src="$relpath^doxygen-awesome-tabs.js"></script>
    +
    <script type="text/javascript">
    +
    DoxygenAwesomeTabs.init()
    +
    </script>
    +
    </head>
    +
    <body>
    +
  4. +
+

+Usage

+

Each list that is supposed to be displayed as tabs has to be wrapped with the tabbed CSS class. Each item in the list must start with an element that has the class tab-title. It will then be used as tab title.

+
<div class="tabbed">
+
+
- <b class="tab-title">Tab 1</b> This is the content of tab 1
+
- <b class="tab-title">Tab 2</b> This is the content of tab 2
+
+
</div>
+

+Page Navigation

+
Warning
Experimental feature! Please report bugs here.
+

To allow the user to easily navigate from one document to another, "Next" and "Previous" buttons can be added at the end of a Markdown document.

+

+Installation

+

The feature is shipped inside the default doxygen-awesome.css. No additional stylesheets or scripts need to be added.

+

+Usage

+

The following conditions must be met for the feature to work properly:

    +
  • The navigation must be inside a Markdown table with 1-2 columns.
  • +
  • The alignment of the column defines the alignment of the arrow on the navigation button.
  • +
  • the table must be wrapped inside a <div> with the class section_buttons.
  • +
+
    +
  • Code
    <div class="section_buttons">
    +
    +
    | Previous | Next |
    +
    |:------------------|----------------------------------:|
    +
    | [Home](README.md) | [Customization](customization.md) |
    +
    +
    </div>
    +
  • +
  • Result
    + + + + +
    Previous Next
    Home Customization
    +
  • +
+
+ + + + +
Previous Next
Home Customization
+
+
+ + + + diff --git a/md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html new file mode 100644 index 0000000..073cf27 --- /dev/null +++ b/md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html @@ -0,0 +1,172 @@ + + + + + + + +Dire: Tips & Tricks + + + + + + + + + + +
+
+ + + + + + +
+
Dire +
+
Complete cross-platform solution for data and user directories discovery.
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
Tips & Tricks
+
+
+ +

+

+Diagrams with Graphviz

+

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
+

In case INTERACTIVE_SVG = YES is set in the Doxyfile, all user-defined dotgraphs must be wrapped with the interactive_dotgraph CSS class for them to be rendered correctly:

+
<div class="interactive_dotgraph">
+
+
\dotfile graph.dot
+
+
</div>
+
Note
Both the default overflow scrolling behavior in this theme and the interactive editor enabled by INTERACTIVE_SVG are unsatisfying workarounds IMHO. Consider designing your graphs to be narrow enough to fit the page to avoid scrolling.
+

+Disable Dark Mode

+

If 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:

+
<html xmlns="http://www.w3.org/1999/xhtml" class="light-mode">
+

The same can be done to always enable dark mode:

+
<html xmlns="http://www.w3.org/1999/xhtml" class="dark-mode">
+
Warning
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 chosen width should also be set in the Doxyfile:

+
# Doxyfile
+
TREEVIEW_WIDTH = 335
+

+Formatting Tables

+

By default tables in this theme are left-aligned and as wide as required to fit their content. Those properties can be changed for individual tables.

+

+Centering

+

Tables can be centered by wrapping them in the <center> HTML tag.

+
    +
  • Code
    <center>
    +
    | This table | is centered |
    +
    |------------|----------------------|
    +
    | test 1 | test 2 |
    +
    </center>
    +
  • +
  • Result
    + + + + +
    This table is centered
    test 1 test 2
    +
  • +
+

+Full Width

+

To make tables span the full width of the page, no matter how wide the content is, wrap the table in the full_width_table CSS class.

+
Warning
Apply with caution! This breaks the overflow scrolling of the table. Content might be cut off on small screens!
+
    +
  • Code
    <div class="full_width_table">
    +
    | This table | spans the full width |
    +
    |------------|----------------------|
    +
    | test 1 | test 2 |
    +
    </div>
    +
  • +
  • Result
    + + + + +
    This table spans the full width
    test 1 test 2
    +
  • +
+
+ + + + +
Previous Next
Customization Example
+
+
+ + + + diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..b0b2693 --- /dev/null +++ b/menu.js @@ -0,0 +1,136 @@ +/* + @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+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#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(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + 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..9620334 --- /dev/null +++ b/menudata.js @@ -0,0 +1,91 @@ +/* + @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:"Namespaces",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"a",url:"namespacemembers.html#index_a"}, +{text:"b",url:"namespacemembers.html#index_b"}, +{text:"c",url:"namespacemembers.html#index_c"}, +{text:"d",url:"namespacemembers.html#index_d"}, +{text:"e",url:"namespacemembers.html#index_e"}, +{text:"f",url:"namespacemembers.html#index_f"}, +{text:"g",url:"namespacemembers.html#index_g"}, +{text:"h",url:"namespacemembers.html#index_h"}, +{text:"m",url:"namespacemembers.html#index_m"}, +{text:"n",url:"namespacemembers.html#index_n"}, +{text:"o",url:"namespacemembers.html#index_o"}, +{text:"p",url:"namespacemembers.html#index_p"}, +{text:"r",url:"namespacemembers.html#index_r"}, +{text:"s",url:"namespacemembers.html#index_s"}, +{text:"t",url:"namespacemembers.html#index_t"}, +{text:"v",url:"namespacemembers.html#index_v"}]}, +{text:"Functions",url:"namespacemembers_func.html",children:[ +{text:"a",url:"namespacemembers_func.html#index_a"}, +{text:"b",url:"namespacemembers_func.html#index_b"}, +{text:"c",url:"namespacemembers_func.html#index_c"}, +{text:"d",url:"namespacemembers_func.html#index_d"}, +{text:"e",url:"namespacemembers_func.html#index_e"}, +{text:"f",url:"namespacemembers_func.html#index_f"}, +{text:"h",url:"namespacemembers_func.html#index_h"}, +{text:"m",url:"namespacemembers_func.html#index_m"}, +{text:"n",url:"namespacemembers_func.html#index_n"}, +{text:"p",url:"namespacemembers_func.html#index_p"}, +{text:"r",url:"namespacemembers_func.html#index_r"}, +{text:"s",url:"namespacemembers_func.html#index_s"}, +{text:"t",url:"namespacemembers_func.html#index_t"}, +{text:"v",url:"namespacemembers_func.html#index_v"}]}, +{text:"Typedefs",url:"namespacemembers_type.html"}, +{text:"Enumerations",url:"namespacemembers_enum.html"}, +{text:"Enumerator",url:"namespacemembers_eval.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:"a",url:"functions.html#index_a"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{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:"Functions",url:"functions_func.html"}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Related Symbols",url:"functions_rela.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}]}]} diff --git a/minus.svg b/minus.svg new file mode 100644 index 0000000..f70d0c1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 0000000..5f8e879 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/namespaceMyLibrary.html b/namespaceMyLibrary.html new file mode 100644 index 0000000..1327fa6 --- /dev/null +++ b/namespaceMyLibrary.html @@ -0,0 +1,126 @@ + + + + + + + +Dire: MyLibrary Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    + +
    MyLibrary Namespace Reference
    +
    +
    + + + + + + + + + + +

    +Classes

    class  Example
     Example class to demonstrate the features of the custom CSS. More...
     
    class  SecondExample
     
    class  SubclassExample
     some subclass More...
     
    + + + +

    +Enumerations

    enum  Color { red +, green +, blue + }
     
    +

    Enumeration Type Documentation

    + +

    ◆ Color

    + +
    +
    + + + + +
    enum MyLibrary::Color
    +
    + + + + +
    Enumerator
    red 
    green 
    blue 
    + +
    +
    +
    + + + + diff --git a/namespacedire.html b/namespacedire.html new file mode 100644 index 0000000..f4dadba --- /dev/null +++ b/namespacedire.html @@ -0,0 +1,135 @@ + + + + + + + +Dire: dire Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    + +
    dire Namespace Reference
    +
    +
    + + + + + + + + +

    +Namespaces

    namespace  base
     
    namespace  project
     
    namespace  user
     
    + + + + + + +

    +Typedefs

    using Path = std::filesystem::path
     
    template<typename T >
    using Optional = std::optional< T >
     
    +

    Typedef Documentation

    + +

    ◆ Optional

    + +
    +
    +
    +template<typename T >
    + + + + +
    using dire::Optional = typedef std::optional<T>
    +
    + +
    +
    + +

    ◆ Path

    + +
    +
    + + + + +
    using dire::Path = typedef std::filesystem::path
    +
    + +
    +
    +
    + + + + diff --git a/namespacedire_1_1base.html b/namespacedire_1_1base.html new file mode 100644 index 0000000..cdea328 --- /dev/null +++ b/namespacedire_1_1base.html @@ -0,0 +1,315 @@ + + + + + + + +Dire: dire::base Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::base Namespace Reference
    +
    +
    + + + + +

    +Namespaces

    namespace  detail
     
    + + + +

    +Classes

    struct  BaseDirsBundle
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto bundle () -> Optional< BaseDirsBundle >
     
    auto home_dir () -> Optional< Path >
     
    auto cache_dir () -> Optional< Path >
     
    auto config_dir () -> Optional< Path >
     
    auto config_local_dir () -> Optional< Path >
     
    auto data_dir () -> Optional< Path >
     
    auto data_local_dir () -> Optional< Path >
     
    auto executable_dir () -> Optional< Path >
     
    auto preference_dir () -> Optional< Path >
     
    auto runtime_dir () -> Optional< Path >
     
    auto state_dir () -> Optional< Path >
     
    +

    Function Documentation

    + +

    ◆ bundle()

    + +
    +
    + + + + + + + +
    auto dire::base::bundle () -> Optional< BaseDirsBundle >
    +
    + +
    +
    + +

    ◆ cache_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::cache_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ config_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::config_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ config_local_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::config_local_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ data_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::data_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ data_local_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::data_local_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ executable_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::executable_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ home_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::home_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ preference_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::preference_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ runtime_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::runtime_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ state_dir()

    + +
    +
    + + + + + + + +
    auto dire::base::state_dir () -> Optional< Path >
    +
    + +
    +
    +
    + + + + diff --git a/namespacedire_1_1base_1_1detail.html b/namespacedire_1_1base_1_1detail.html new file mode 100644 index 0000000..e86ddc4 --- /dev/null +++ b/namespacedire_1_1base_1_1detail.html @@ -0,0 +1,274 @@ + + + + + + + +Dire: dire::base::detail Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::base::detail Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto cache_dir_from_home (dire::Path home) -> dire::Path
     
    auto config_dir_from_home (dire::Path home) -> dire::Path
     
    auto config_local_dir_from_home (dire::Path home) -> dire::Path
     
    auto data_dir_from_home (dire::Path home) -> dire::Path
     
    auto data_local_dir_from_home (dire::Path home) -> dire::Path
     
    auto executable_dir_from_home (dire::Path home) -> dire::Path
     
    auto preference_dir_from_home (dire::Path home) -> dire::Path
     
    auto runtime_dir_from_home (dire::Path home) -> dire::Path
     
    auto state_dir_from_home (dire::Path home) -> dire::Path
     
    +

    Function Documentation

    + +

    ◆ cache_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::cache_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ config_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::config_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ config_local_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::config_local_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ data_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::data_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ data_local_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::data_local_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ executable_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::executable_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ preference_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::preference_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ runtime_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::runtime_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    + +

    ◆ state_dir_from_home()

    + +
    +
    + + + + + + + + +
    auto dire::base::detail::state_dir_from_home (dire::Path home) -> dire::Path
    +
    + +
    +
    +
    + + + + diff --git a/namespacedire_1_1project.html b/namespacedire_1_1project.html new file mode 100644 index 0000000..4b5006a --- /dev/null +++ b/namespacedire_1_1project.html @@ -0,0 +1,326 @@ + + + + + + + +Dire: dire::project Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::project Namespace Reference
    +
    +
    + + + + +

    +Namespaces

    namespace  detail
     
    + + + + + + + +

    +Classes

    class  IReallyWantMyOwnPlatformProjectName
     
    class  PlatformProjectName
     
    struct  ProjectDirsBundle
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto name (std::string domain, std::string org, std::string app_name) -> PlatformProjectName
     
    auto bundle (PlatformProjectName project_name) -> Optional< ProjectDirsBundle >
     
    auto cache_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto config_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto config_local_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto data_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto data_local_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto preference_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto runtime_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto state_dir (PlatformProjectName project_name) -> Optional< Path >
     
    +

    Function Documentation

    + +

    ◆ bundle()

    + +
    +
    + + + + + + + + +
    auto dire::project::bundle (PlatformProjectName project_name) -> Optional< ProjectDirsBundle >
    +
    + +
    +
    + +

    ◆ cache_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::cache_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ config_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::config_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ config_local_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::config_local_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ data_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::data_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ data_local_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::data_local_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ name()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto dire::project::name (std::string domain,
    std::string org,
    std::string app_name 
    ) -> PlatformProjectName
    +
    + +
    +
    + +

    ◆ preference_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::preference_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ runtime_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::runtime_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ state_dir()

    + +
    +
    + + + + + + + + +
    auto dire::project::state_dir (PlatformProjectName project_name) -> Optional< Path >
    +
    + +
    +
    +
    + + + + diff --git a/namespacedire_1_1project_1_1detail.html b/namespacedire_1_1project_1_1detail.html new file mode 100644 index 0000000..acc2b43 --- /dev/null +++ b/namespacedire_1_1project_1_1detail.html @@ -0,0 +1,174 @@ + + + + + + + +Dire: dire::project::detail Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::project::detail Namespace Reference
    +
    +
    + + + + + + + + +

    +Functions

    auto trim (std::string str) -> std::string
     
    auto concat_project_path (Path const &path, PlatformProjectName project_name) -> Path
     
    auto map_project_path (Optional< Path > path, PlatformProjectName project_name) -> Optional< Path >
     
    +

    Function Documentation

    + +

    ◆ concat_project_path()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    auto dire::project::detail::concat_project_path (Path const & path,
    PlatformProjectName project_name 
    ) -> Path
    +
    + +
    +
    + +

    ◆ map_project_path()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    auto dire::project::detail::map_project_path (Optional< Pathpath,
    PlatformProjectName project_name 
    ) -> Optional< Path >
    +
    + +
    +
    + +

    ◆ trim()

    + +
    +
    + + + + + + + + +
    auto dire::project::detail::trim (std::string str) -> std::string
    +
    + +
    +
    +
    + + + + diff --git a/namespacedire_1_1user.html b/namespacedire_1_1user.html new file mode 100644 index 0000000..09c4fcc --- /dev/null +++ b/namespacedire_1_1user.html @@ -0,0 +1,309 @@ + + + + + + + +Dire: dire::user Namespace Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::user Namespace Reference
    +
    +
    + + + + +

    +Classes

    struct  UserDirsBundle
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto bundle () -> Optional< UserDirsBundle >
     
    auto home_dir () -> Optional< Path >
     
    auto audio_dir () -> Optional< Path >
     
    auto desktop_dir () -> Optional< Path >
     
    auto document_dir () -> Optional< Path >
     
    auto download_dir () -> Optional< Path >
     
    auto font_dir () -> Optional< Path >
     
    auto picture_dir () -> Optional< Path >
     
    auto public_dir () -> Optional< Path >
     
    auto template_dir () -> Optional< Path >
     
    auto video_dir () -> Optional< Path >
     
    +

    Function Documentation

    + +

    ◆ audio_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::audio_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ bundle()

    + +
    +
    + + + + + + + +
    auto dire::user::bundle () -> Optional< UserDirsBundle >
    +
    + +
    +
    + +

    ◆ desktop_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::desktop_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ document_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::document_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ download_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::download_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ font_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::font_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ home_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::home_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ picture_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::picture_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ public_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::public_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ template_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::template_dir () -> Optional< Path >
    +
    + +
    +
    + +

    ◆ video_dir()

    + +
    +
    + + + + + + + +
    auto dire::user::video_dir () -> Optional< Path >
    +
    + +
    +
    +
    + + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 0000000..2f7ca0c --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,183 @@ + + + + + + + +Dire: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - h -

    + + +

    - m -

    + + +

    - n -

    + + +

    - o -

      +
    • Optional : dire
    • +
    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - v -

    +
    + + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 0000000..c54d7d8 --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace enums with links to the namespace documentation for each enum:
    +
    + + + + diff --git a/namespacemembers_eval.html b/namespacemembers_eval.html new file mode 100644 index 0000000..b89a0e1 --- /dev/null +++ b/namespacemembers_eval.html @@ -0,0 +1,85 @@ + + + + + + + +Dire: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace enum values with links to the namespace documentation for each enum value:
    +
    + + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 0000000..bb674ab --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,169 @@ + + + + + + + +Dire: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace functions with links to the namespace documentation for each function:
    + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - h -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - v -

    +
    + + + + diff --git a/namespacemembers_type.html b/namespacemembers_type.html new file mode 100644 index 0000000..d87d9a1 --- /dev/null +++ b/namespacemembers_type.html @@ -0,0 +1,84 @@ + + + + + + + +Dire: Namespace Members + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all namespace typedefs with links to the namespace documentation for each typedef:
    +
    + + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 0000000..619f56c --- /dev/null +++ b/namespaces.html @@ -0,0 +1,102 @@ + + + + + + + +Dire: Namespace List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all namespaces with brief descriptions:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + +
     Ndire
     Nbase
     Ndetail
     CBaseDirsBundle
     Nproject
     Ndetail
     CIReallyWantMyOwnPlatformProjectName
     CPlatformProjectName
     CProjectDirsBundle
     Nuser
     CUserDirsBundle
     NMyLibrary
     CExampleExample class to demonstrate the features of the custom CSS
     CSecondExample
     CSubclassExampleSome subclass
    +
    +
    + + + + diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/nav_f.png differ diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000..032fbdd Binary files /dev/null and b/nav_fd.png differ diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/nav_g.png differ diff --git a/nav_h.png b/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/nav_h.png differ diff --git a/nav_hd.png b/nav_hd.png new file mode 100644 index 0000000..de80f18 Binary files /dev/null and b/nav_hd.png differ diff --git a/open.png b/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/open.png differ diff --git a/pages.html b/pages.html new file mode 100644 index 0000000..dfa068f --- /dev/null +++ b/pages.html @@ -0,0 +1,95 @@ + + + + + + + +Dire: Related Pages + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/plus.svg b/plus.svg new file mode 100644 index 0000000..0752016 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 0000000..0c65bfe --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/project_8hpp.html b/project_8hpp.html new file mode 100644 index 0000000..40ad25d --- /dev/null +++ b/project_8hpp.html @@ -0,0 +1,143 @@ + + + + + + + +Dire: src/lib/include/dire/project.hpp File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    project.hpp File Reference
    +
    +
    +
    #include <dire/base.hpp>
    +#include <dire/defines.hpp>
    +
    +

    Go to the source code of this file.

    + + + + + + + + +

    +Classes

    class  dire::project::IReallyWantMyOwnPlatformProjectName
     
    class  dire::project::PlatformProjectName
     
    struct  dire::project::ProjectDirsBundle
     
    + + + + + + + +

    +Namespaces

    namespace  dire
     
    namespace  dire::project
     
    namespace  dire::project::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto dire::project::name (std::string domain, std::string org, std::string app_name) -> PlatformProjectName
     
    auto dire::project::bundle (PlatformProjectName project_name) -> Optional< ProjectDirsBundle >
     
    auto dire::project::cache_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::config_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::config_local_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::data_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::data_local_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::preference_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::runtime_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::state_dir (PlatformProjectName project_name) -> Optional< Path >
     
    auto dire::project::detail::trim (std::string str) -> std::string
     
    auto dire::project::detail::concat_project_path (Path const &path, PlatformProjectName project_name) -> Path
     
    auto dire::project::detail::map_project_path (Optional< Path > path, PlatformProjectName project_name) -> Optional< Path >
     
    +
    + + + + diff --git a/project_8hpp_source.html b/project_8hpp_source.html new file mode 100644 index 0000000..fb85918 --- /dev/null +++ b/project_8hpp_source.html @@ -0,0 +1,221 @@ + + + + + + + +Dire: src/lib/include/dire/project.hpp Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    project.hpp
    +
    +
    +Go to the documentation of this file.
    1#pragma once
    +
    2
    +
    3#include <dire/base.hpp>
    +
    4
    +
    5#include <dire/defines.hpp>
    +
    6
    +
    +
    7namespace dire::project
    +
    8{
    +
    9
    +
    + +
    11{
    +
    12public:
    +
    + +
    14 : name(std::move(name))
    +
    15 {}
    +
    +
    16
    +
    17 explicit operator Path const&() const { return name; }
    +
    18
    +
    19 explicit operator Path() && { return std::move(name); }
    +
    20
    +
    21private:
    +
    22 Path name;
    +
    23};
    +
    +
    24
    +
    + +
    26{
    +
    27public:
    + +
    31
    +
    32 explicit operator Path const&() const { return name; }
    +
    33
    +
    34 explicit operator Path() && { return std::move(name); }
    +
    35
    +
    36private:
    +
    37 friend auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName;
    +
    38
    +
    39 explicit PlatformProjectName(Path name)
    +
    40 : name(std::move(name))
    +
    41 {}
    +
    42
    +
    43 Path name;
    +
    44};
    +
    +
    45
    + +
    58
    +
    59auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName;
    +
    60
    + +
    62
    + + + + + + + + +
    71
    +
    +
    72namespace detail
    +
    73{
    +
    74
    +
    75auto trim(std::string str) -> std::string;
    +
    76
    +
    77auto concat_project_path(Path const& path, PlatformProjectName project_name) -> Path;
    +
    78
    + +
    80
    +
    81} // namespace detail
    +
    +
    82
    +
    83} // namespace dire::project
    +
    + + +
    IReallyWantMyOwnPlatformProjectName(Path name)
    Definition project.hpp:13
    +
    Definition project.hpp:26
    +
    PlatformProjectName(IReallyWantMyOwnPlatformProjectName name)
    Definition project.hpp:28
    +
    friend auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName
    + +
    auto trim(std::string str) -> std::string
    +
    auto concat_project_path(Path const &path, PlatformProjectName project_name) -> Path
    +
    auto map_project_path(Optional< Path > path, PlatformProjectName project_name) -> Optional< Path >
    +
    Definition project.hpp:8
    +
    auto preference_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto bundle(PlatformProjectName project_name) -> Optional< ProjectDirsBundle >
    +
    auto runtime_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto data_local_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto config_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto cache_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto state_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto data_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto config_local_dir(PlatformProjectName project_name) -> Optional< Path >
    +
    auto name(std::string domain, std::string org, std::string app_name) -> PlatformProjectName
    +
    std::optional< T > Optional
    Definition defines.hpp:26
    +
    std::filesystem::path Path
    Definition defines.hpp:16
    +
    Definition project.hpp:47
    +
    Optional< Path > runtime_dir
    Definition project.hpp:55
    +
    Path cache_dir
    Definition project.hpp:48
    +
    Path data_local_dir
    Definition project.hpp:52
    +
    Path data_dir
    Definition project.hpp:51
    +
    Path preference_dir
    Definition project.hpp:53
    +
    Optional< Path > state_dir
    Definition project.hpp:56
    +
    Path config_dir
    Definition project.hpp:49
    +
    Path config_local_dir
    Definition project.hpp:50
    +
    + + + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..f26b76f --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['a_20layout_0',['Choosing a layout',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md41',1,'']]], + ['all_2ehpp_1',['all.hpp',['../all_8hpp.html',1,'']]], + ['and_20other_20implementations_2',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['audio_5fdir_3',['audio_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a49daa906d5ba0981203048889653ed8c',1,'dire::user::UserDirsBundle::audio_dir'],['../namespacedire_1_1user.html#a5f5b3e6b7f25f8e6479edba044cc8cf6',1,'dire::user::audio_dir()']]], + ['available_20variables_4',['Available variables',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md7',1,'']]], + ['awesome_5',['Doxygen Awesome',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html',1,'']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..75ab401 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['base_2ehpp_0',['base.hpp',['../base_8hpp.html',1,'']]], + ['basedirsbundle_1',['BaseDirsBundle',['../structdire_1_1base_1_1BaseDirsBundle.html',1,'dire::base']]], + ['between_20this_20and_20other_20implementations_2',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['block_3',['Code block',['../classMyLibrary_1_1Example.html#autotoc_md31',1,'']]], + ['blue_4',['blue',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda3d4a113e58853e5d81725d92fbfceb4d',1,'MyLibrary']]], + ['browser_20support_5',['Browser support',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md43',1,'']]], + ['bug_20list_6',['Bug List',['../bug.html',1,'']]], + ['bundle_7',['bundle',['../namespacedire_1_1base.html#a333e803e7827dee9f36d5aaa7a7d78ce',1,'dire::base::bundle()'],['../namespacedire_1_1project.html#a51480aa7c9b1743d59839a84b6cd2af6',1,'dire::project::bundle()'],['../namespacedire_1_1user.html#a84fc724f0e2c2724fe9ee4ff12e6af98',1,'dire::user::bundle()']]], + ['button_8',['Fragment Copy Button',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-copy-button',1,'']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000..bb4d2c4 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['s_20going_0',['Where it's going',['../md_docs_2differences.html#autotoc_md3',1,'']]], + ['secondexample_1',['SecondExample',['../classMyLibrary_1_1SecondExample.html',1,'MyLibrary']]], + ['setup_2',['Setup',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md6',1,'']]], + ['share_20your_20customizations_3',['Share your customizations',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md9',1,'']]], + ['sidebar_20width_4',['Choosing Sidebar Width',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-sidebar',1,'']]], + ['special_20hints_5',['special hints',['../deprecated.html#_deprecated000001',1,'Special hints'],['../bug.html#_bug000001',1,'Special hints'],['../classMyLibrary_1_1Example.html#autotoc_md32',1,'Special hints'],['../todo.html#_todo000001',1,'Special hints']]], + ['started_6',['How it started',['../md_docs_2differences.html#autotoc_md1',1,'']]], + ['state_5fdir_7',['state_dir',['../namespacedire_1_1project.html#ab42d30eb90c2e5f14560ebb33219a417',1,'dire::project::state_dir()'],['../namespacedire_1_1base.html#a6bead657f4c0fe3693681415de626f0f',1,'dire::base::state_dir()'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a9b990ff06811ff48e2d1d8d89bae5766',1,'dire::project::ProjectDirsBundle::state_dir'],['../structdire_1_1base_1_1BaseDirsBundle.html#ae99ca77db8457b377c9dad0bb56157f2',1,'dire::base::BaseDirsBundle::state_dir']]], + ['state_5fdir_5ffrom_5fhome_8',['state_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a8fde05fecf7fde42a20b4a756208511f',1,'dire::base::detail']]], + ['staticfunc_9',['staticfunc',['../classMyLibrary_1_1Example.html#a8c3ea5ce33b9e1fada7ff46eab0956a7',1,'MyLibrary::Example']]], + ['subclass_2dexample_2ehpp_10',['subclass-example.hpp',['../subclass-example_8hpp.html',1,'']]], + ['subclassexample_11',['SubclassExample',['../classMyLibrary_1_1SubclassExample.html',1,'MyLibrary']]], + ['submodule_12',['Git submodule',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md38',1,'']]], + ['support_13',['Browser support',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md43',1,'']]], + ['supported_20elements_14',['Supported elements',['../classMyLibrary_1_1Example.html#autotoc_md26',1,'']]], + ['system_20wide_15',['System-wide',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md40',1,'']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000..58e9f06 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['tables_0',['tables',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-tables',1,'Formatting Tables'],['../classMyLibrary_1_1Example.html#autotoc_md27',1,'Tables']]], + ['tabs_1',['Tabs',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-tabs',1,'']]], + ['template_5fdir_2',['template_dir',['../structdire_1_1user_1_1UserDirsBundle.html#ab84f4725e87ab5845b9f8871bf73ae8f',1,'dire::user::UserDirsBundle::template_dir'],['../namespacedire_1_1user.html#ac255dcc46a9f016f0c4ac12c641255de',1,'dire::user::template_dir()']]], + ['test_3',['test',['../classMyLibrary_1_1Example.html#a1c0046b0674eb4cad09c5d3e943912b8',1,'MyLibrary::Example']]], + ['this_20and_20other_20implementations_4',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['tips_20tricks_5',['Tips & Tricks',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html',1,'']]], + ['toc_6',['Interactive TOC',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-toc',1,'']]], + ['todo_20list_7',['Todo List',['../todo.html',1,'']]], + ['toggle_8',['Dark Mode Toggle',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-dark-mode-toggle',1,'']]], + ['tricks_9',['Tips & Tricks',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html',1,'']]], + ['tricks_2emd_10',['tricks.md',['../tricks_8md.html',1,'']]], + ['trim_11',['trim',['../namespacedire_1_1project_1_1detail.html#a597b2c7671b838f0b76cb3adcb173e8a',1,'dire::project::detail']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 0000000..eb90233 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['usage_0',['usage',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md20',1,'Usage'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md22',1,'Usage']]], + ['user_2ehpp_1',['user.hpp',['../user_8hpp.html',1,'']]], + ['userdirsbundle_2',['UserDirsBundle',['../structdire_1_1user_1_1UserDirsBundle.html',1,'dire::user']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 0000000..c57ff36 --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['variables_0',['variables',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md7',1,'Available variables'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md5',1,'CSS-Variables']]], + ['video_5fdir_1',['video_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a76687b854a1097839d7c57bf3163e15e',1,'dire::user::UserDirsBundle::video_dir'],['../namespacedire_1_1user.html#a1d449d3cfd45cd326102a215f856a5f1',1,'dire::user::video_dir()']]], + ['virtualfunc_2',['virtualfunc',['../classMyLibrary_1_1Example.html#a8431ef1c10c4e2a36302b8e8556514f6',1,'MyLibrary::Example::virtualfunc()'],['../classMyLibrary_1_1SubclassExample.html#a08668a9f16511ad37fb547c985d62764',1,'MyLibrary::SubclassExample::virtualfunc()']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 0000000..7ead3da --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['where_20it_20s_20going_0',['Where it's going',['../md_docs_2differences.html#autotoc_md3',1,'']]], + ['wide_1',['System-wide',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md40',1,'']]], + ['width_2',['width',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-sidebar',1,'Choosing Sidebar Width'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#autotoc_md25',1,'Full Width']]], + ['with_20graphviz_3',['Diagrams with Graphviz',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-graphviz',1,'']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 0000000..5dba742 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xpm_20dependency_0',['npm/xpm dependency',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md39',1,'']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 0000000..4bc20ff --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['your_20customizations_0',['Share your customizations',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md9',1,'']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..d6b04a4 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['cache_5fdir_0',['cache_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#a5a04af0fd6dba634be5af15e9f0f75ce',1,'dire::base::BaseDirsBundle::cache_dir'],['../namespacedire_1_1project.html#aa8a372386c67c5e7f45c2f170640f2e3',1,'dire::project::cache_dir()'],['../namespacedire_1_1base.html#a2cf4b1506ba76e657a062d918d04bc79',1,'dire::base::cache_dir()'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a30737f4337f7d5d31489099aec58fa92',1,'dire::project::ProjectDirsBundle::cache_dir']]], + ['cache_5fdir_5ffrom_5fhome_1',['cache_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a6f2c62ca74389d7635276f50ec9a251b',1,'dire::base::detail']]], + ['centering_2',['Centering',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#autotoc_md24',1,'']]], + ['choosing_20a_20layout_3',['Choosing a layout',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md41',1,'']]], + ['choosing_20sidebar_20width_4',['Choosing Sidebar Width',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-sidebar',1,'']]], + ['code_20block_5',['Code block',['../classMyLibrary_1_1Example.html#autotoc_md31',1,'']]], + ['color_6',['Color',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ced',1,'MyLibrary']]], + ['concat_5fproject_5fpath_7',['concat_project_path',['../namespacedire_1_1project_1_1detail.html#a6776c5efb65d4c5d1c402b1d2cf9f79b',1,'dire::project::detail']]], + ['config_5fdir_8',['config_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#ac6f1689e4c50364af1b2333c2cba6cc8',1,'dire::base::BaseDirsBundle::config_dir'],['../structdire_1_1project_1_1ProjectDirsBundle.html#ac2096d1487fab3f5773d524f3fcd5f2f',1,'dire::project::ProjectDirsBundle::config_dir'],['../namespacedire_1_1base.html#a8da68bb7cbfcdd8ded07a878cdbc6316',1,'dire::base::config_dir()'],['../namespacedire_1_1project.html#aa5ab4f9ad33ee4e7e94e3ee87cde2dff',1,'dire::project::config_dir()']]], + ['config_5fdir_5ffrom_5fhome_9',['config_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a6df56b12c63090d2e70a98e5f9d07ae4',1,'dire::base::detail']]], + ['config_5flocal_5fdir_10',['config_local_dir',['../namespacedire_1_1base.html#afa3ded73ec48d50c01a25a2c81821f9b',1,'dire::base::config_local_dir()'],['../namespacedire_1_1project.html#adf800c516d71be5804d4299344117589',1,'dire::project::config_local_dir()'],['../structdire_1_1project_1_1ProjectDirsBundle.html#ac27d125b6037e156f46419ebb84152a5',1,'dire::project::ProjectDirsBundle::config_local_dir'],['../structdire_1_1base_1_1BaseDirsBundle.html#a490153a3c16ad893746dab9703ad08f1',1,'dire::base::BaseDirsBundle::config_local_dir']]], + ['config_5flocal_5fdir_5ffrom_5fhome_11',['config_local_dir_from_home',['../namespacedire_1_1base_1_1detail.html#ae2fb6a74760412c10db0fb8b1c0f0371',1,'dire::base::detail']]], + ['copy_20button_12',['Fragment Copy Button',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-copy-button',1,'']]], + ['credits_13',['Credits',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md44',1,'']]], + ['css_20variables_14',['CSS-Variables',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md5',1,'']]], + ['customization_15',['Customization',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html',1,'']]], + ['customization_2emd_16',['customization.md',['../customization_8md.html',1,'']]], + ['customizations_17',['Share your customizations',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md9',1,'']]], + ['customizing_18',['customizing',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md12',1,'Customizing'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md14',1,'Customizing'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md16',1,'Customizing'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md18',1,'Customizing']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..0766cbd --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['dark_20mode_0',['Disable Dark Mode',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-darkmode',1,'']]], + ['dark_20mode_20toggle_1',['Dark Mode Toggle',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-dark-mode-toggle',1,'']]], + ['data_5fdir_2',['data_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#a89b55b121f7971b852be93bb6a73d1db',1,'dire::base::BaseDirsBundle::data_dir'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a4eaf9a317831426bd8bb822e350de6be',1,'dire::project::ProjectDirsBundle::data_dir'],['../namespacedire_1_1project.html#ad6861cd041bbf3a1cc37c791dbbba9e1',1,'dire::project::data_dir()'],['../namespacedire_1_1base.html#a9e643297eecf2fc0c83f4cdef46f751d',1,'dire::base::data_dir()']]], + ['data_5fdir_5ffrom_5fhome_3',['data_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a5ccc3d109219d4536e62c71f18fe6750',1,'dire::base::detail']]], + ['data_5flocal_5fdir_4',['data_local_dir',['../namespacedire_1_1project.html#aa2fad5c7d9e434a7042f28d038f7d32c',1,'dire::project::data_local_dir()'],['../namespacedire_1_1base.html#afd217e48d3858eeebbe4a6567c26bf7c',1,'dire::base::data_local_dir()'],['../structdire_1_1base_1_1BaseDirsBundle.html#a4851ccc5b0aab9161f2700e280fc7f4a',1,'dire::base::BaseDirsBundle::data_local_dir'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a3c6b0be773c7eee48ee9b11cd42fbf3d',1,'dire::project::ProjectDirsBundle::data_local_dir']]], + ['data_5flocal_5fdir_5ffrom_5fhome_5',['data_local_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a44d4b75b7c019df009401c28ca6da7e0',1,'dire::base::detail']]], + ['defines_2ehpp_6',['defines.hpp',['../defines_8hpp.html',1,'']]], + ['dependency_7',['npm/xpm dependency',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md39',1,'']]], + ['deprecated_20list_8',['Deprecated List',['../deprecated.html',1,'']]], + ['desktop_5fdir_9',['desktop_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a0bfd2a553132b6ce33b010569e3755d9',1,'dire::user::UserDirsBundle::desktop_dir'],['../namespacedire_1_1user.html#afa71e0a64f0e6c6d7e8b97258a135e35',1,'dire::user::desktop_dir()']]], + ['diagrams_10',['Diagrams',['../classMyLibrary_1_1Example.html#autotoc_md28',1,'']]], + ['diagrams_20with_20graphviz_11',['Diagrams with Graphviz',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-graphviz',1,'']]], + ['differences_20between_20this_20and_20other_20implementations_12',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['differences_2emd_13',['differences.md',['../differences_8md.html',1,'']]], + ['differs_14',['How it differs',['../md_docs_2differences.html#autotoc_md2',1,'']]], + ['dire_15',['dire',['../namespacedire.html',1,'dire'],['../index.html',1,'Dire']]], + ['dire_3a_3abase_16',['base',['../namespacedire_1_1base.html',1,'dire']]], + ['dire_3a_3abase_3a_3adetail_17',['detail',['../namespacedire_1_1base_1_1detail.html',1,'dire::base']]], + ['dire_3a_3aproject_18',['project',['../namespacedire_1_1project.html',1,'dire']]], + ['dire_3a_3aproject_3a_3adetail_19',['detail',['../namespacedire_1_1project_1_1detail.html',1,'dire::project']]], + ['dire_3a_3auser_20',['user',['../namespacedire_1_1user.html',1,'dire']]], + ['disable_20dark_20mode_21',['Disable Dark Mode',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-darkmode',1,'']]], + ['document_5fdir_22',['document_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a1cb468d189b7fd4c221a2ab96a6e383b',1,'dire::user::UserDirsBundle::document_dir'],['../namespacedire_1_1user.html#a50ce5b415c381522dcf20fa9ccab5c5e',1,'dire::user::document_dir() -> Optional< Path >']]], + ['download_5fdir_23',['download_dir',['../namespacedire_1_1user.html#a1af054696bbb48452d109014e02ebf41',1,'dire::user::download_dir()'],['../structdire_1_1user_1_1UserDirsBundle.html#ac71fadddaceaf81de497cd7a4e08b926',1,'dire::user::UserDirsBundle::download_dir']]], + ['doxygen_20awesome_24',['Doxygen Awesome',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html',1,'']]], + ['doxygen_20generator_25',['Doxygen generator',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md8',1,'']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..33b7dda --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['elements_0',['Supported elements',['../classMyLibrary_1_1Example.html#autotoc_md26',1,'']]], + ['example_1',['Example',['../classMyLibrary_1_1Example.html',1,'MyLibrary']]], + ['example_2ehpp_2',['example.hpp',['../example_8hpp.html',1,'']]], + ['examples_3',['Examples',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md36',1,'']]], + ['executable_5fdir_4',['executable_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#af90e75fbbc7c9259f867657974641b4b',1,'dire::base::BaseDirsBundle::executable_dir'],['../namespacedire_1_1base.html#a7cdefb36320810761eb6c0e60663dbf6',1,'dire::base::executable_dir()']]], + ['executable_5fdir_5ffrom_5fhome_5',['executable_dir_from_home',['../namespacedire_1_1base_1_1detail.html#acf0313d1f07b2d5339e1ab1d04d9c954',1,'dire::base::detail']]], + ['extensions_6',['Extensions',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html',1,'']]], + ['extensions_2emd_7',['extensions.md',['../extensions_8md.html',1,'']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..a20c879 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['features_0',['Features',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md35',1,'']]], + ['font_5fdir_1',['font_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a66ba39aadf21d5728b4d4aba1fcba266',1,'dire::user::UserDirsBundle::font_dir'],['../namespacedire_1_1user.html#a059816931348a484047f4127b0964580',1,'dire::user::font_dir()']]], + ['formatting_20tables_2',['Formatting Tables',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-tables',1,'']]], + ['fragment_20copy_20button_3',['Fragment Copy Button',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-copy-button',1,'']]], + ['full_20width_4',['Full Width',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#autotoc_md25',1,'']]], + ['function_5ftemplate_5ftest_5',['function_template_test',['../classMyLibrary_1_1SubclassExample.html#ad2432fe3b060789f6f7052c515d515f4',1,'MyLibrary::SubclassExample']]], + ['further_20installation_20instructions_6',['Further installation instructions',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md42',1,'']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..0c0472d --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['generator_0',['Doxygen generator',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html#autotoc_md8',1,'']]], + ['git_20submodule_1',['Git submodule',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md38',1,'']]], + ['going_2',['Where it's going',['../md_docs_2differences.html#autotoc_md3',1,'']]], + ['graphviz_3',['Diagrams with Graphviz',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-graphviz',1,'']]], + ['green_4',['green',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda7170352a3cd8a59b864c0166ff98182e',1,'MyLibrary']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..5054ddf --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['hints_0',['hints',['../classMyLibrary_1_1Example.html#autotoc_md32',1,'Special hints'],['../bug.html#_bug000001',1,'Special hints'],['../deprecated.html#_deprecated000001',1,'Special hints'],['../todo.html#_todo000001',1,'Special hints']]], + ['home_5fdir_1',['home_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#a491f36cff1d5e6fe99608fb57fcc8451',1,'dire::base::BaseDirsBundle::home_dir'],['../structdire_1_1user_1_1UserDirsBundle.html#a2170bd71e0d63c00dd1788e800ef78b9',1,'dire::user::UserDirsBundle::home_dir'],['../namespacedire_1_1base.html#a3e831b039daaad98e093bca9ff3a1a60',1,'dire::base::home_dir()'],['../namespacedire_1_1user.html#ab69cfc2d3944910b5bd9f6934daaf8ff',1,'dire::user::home_dir()']]], + ['how_20it_20differs_2',['How it differs',['../md_docs_2differences.html#autotoc_md2',1,'']]], + ['how_20it_20started_3',['How it started',['../md_docs_2differences.html#autotoc_md1',1,'']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..4caa3b2 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['installation_1',['installation',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md11',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md13',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md15',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md17',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md19',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#autotoc_md21',1,'Installation'],['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md37',1,'Installation']]], + ['installation_20instructions_2',['Further installation instructions',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md42',1,'']]], + ['instructions_3',['Further installation instructions',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md42',1,'']]], + ['interactive_20toc_4',['Interactive TOC',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-toc',1,'']]], + ['ireallywantmyownplatformprojectname_5',['ireallywantmyownplatformprojectname',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html',1,'dire::project::IReallyWantMyOwnPlatformProjectName'],['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a28872aed0a60e765672e5dde35be6da8',1,'dire::project::IReallyWantMyOwnPlatformProjectName::IReallyWantMyOwnPlatformProjectName()']]], + ['it_20differs_6',['How it differs',['../md_docs_2differences.html#autotoc_md2',1,'']]], + ['it_20s_20going_7',['Where it's going',['../md_docs_2differences.html#autotoc_md3',1,'']]], + ['it_20started_8',['How it started',['../md_docs_2differences.html#autotoc_md1',1,'']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..df0d878 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['layout_0',['Choosing a layout',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md41',1,'']]], + ['linking_1',['Paragraph Linking',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-para',1,'']]], + ['list_2',['list',['../bug.html',1,'Bug List'],['../deprecated.html',1,'Deprecated List'],['../todo.html',1,'Todo List']]], + ['lists_3',['Lists',['../classMyLibrary_1_1Example.html#autotoc_md29',1,'']]], + ['long_5ffunction_5fwith_5fmany_5fparameters_4',['long_function_with_many_parameters',['../classMyLibrary_1_1SubclassExample.html#a92227fff4f72a11be0e21d88914ba63e',1,'MyLibrary::SubclassExample']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..1d4bc94 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['map_5fproject_5fpath_0',['map_project_path',['../namespacedire_1_1project_1_1detail.html#a995857ab8fe53adc610448ee0af7a369',1,'dire::project::detail']]], + ['mode_1',['Disable Dark Mode',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html#tricks-darkmode',1,'']]], + ['mode_20toggle_2',['Dark Mode Toggle',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-dark-mode-toggle',1,'']]], + ['motivation_3',['Motivation',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md34',1,'']]], + ['mylibrary_4',['MyLibrary',['../namespaceMyLibrary.html',1,'']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..e07fa07 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['name_0',['name',['../classdire_1_1project_1_1PlatformProjectName.html#ae07d1c56be1883dae84bd602ef323c01',1,'dire::project::PlatformProjectName::name'],['../namespacedire_1_1project.html#af55003ea6b2c6c5d59988e9a30547efd',1,'dire::project::name()']]], + ['navigation_1',['Page Navigation',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-page-navigation',1,'']]], + ['npm_20xpm_20dependency_2',['npm/xpm dependency',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html#autotoc_md39',1,'']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..f79424b --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_20path_0',['operator path',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a677de91803462a3a3023476d6f9b4424',1,'dire::project::IReallyWantMyOwnPlatformProjectName::operator Path()'],['../classdire_1_1project_1_1PlatformProjectName.html#a4bcd894e88e171c75856099098a9a145',1,'dire::project::PlatformProjectName::operator Path()']]], + ['operator_20path_20const_20_26_1',['operator path const &',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a2e3526afc2b9ab86b415e1019067d486',1,'dire::project::IReallyWantMyOwnPlatformProjectName::operator Path const &()'],['../classdire_1_1project_1_1PlatformProjectName.html#afa7291f2ce5b6a067738cf7d63e1b1cb',1,'dire::project::PlatformProjectName::operator Path const &()']]], + ['optional_2',['Optional',['../namespacedire.html#a4e5a27eb337e9b7d217e6ca9e41ec10a',1,'dire']]], + ['other_20implementations_3',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..b58e1a5 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['page_20navigation_0',['Page Navigation',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-page-navigation',1,'']]], + ['paragraph_20linking_1',['Paragraph Linking',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html#extension-para',1,'']]], + ['path_2',['Path',['../namespacedire.html#af8e12c24069d89075127a6ccd76a651a',1,'dire']]], + ['picture_5fdir_3',['picture_dir',['../structdire_1_1user_1_1UserDirsBundle.html#a0314843c8b2f7a9caa7c4c1c0a5f9523',1,'dire::user::UserDirsBundle::picture_dir'],['../namespacedire_1_1user.html#aece103c4215fd6693ce8c835b6208def',1,'dire::user::picture_dir()']]], + ['platformprojectname_4',['platformprojectname',['../classdire_1_1project_1_1PlatformProjectName.html',1,'dire::project::PlatformProjectName'],['../classdire_1_1project_1_1PlatformProjectName.html#ab8ac18767324a4a3dbef2118ecb8697c',1,'dire::project::PlatformProjectName::PlatformProjectName()']]], + ['preference_5fdir_5',['preference_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#a37bd2eafd67bdc9e74a5093f7970faa7',1,'dire::base::BaseDirsBundle::preference_dir'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a9226c4e62b348d05f9db69fbfb3a8b62',1,'dire::project::ProjectDirsBundle::preference_dir'],['../namespacedire_1_1base.html#a5e286d16f976100a4a4282565be11cfa',1,'dire::base::preference_dir()'],['../namespacedire_1_1project.html#a2e0bbb14355911a7c5e84503940bdb70',1,'dire::project::preference_dir()']]], + ['preference_5fdir_5ffrom_5fhome_6',['preference_dir_from_home',['../namespacedire_1_1base_1_1detail.html#aba85568acc5c1036a75d5f57420f4002',1,'dire::base::detail']]], + ['project_2ehpp_7',['project.hpp',['../project_8hpp.html',1,'']]], + ['projectdirsbundle_8',['ProjectDirsBundle',['../structdire_1_1project_1_1ProjectDirsBundle.html',1,'dire::project']]], + ['public_5fdir_9',['public_dir',['../structdire_1_1user_1_1UserDirsBundle.html#aabc4fbb2f7d3ff88021911de1ae108e4',1,'dire::user::UserDirsBundle::public_dir'],['../namespacedire_1_1user.html#abc4962000fa5a6f23b9b5f059e851002',1,'dire::user::public_dir()']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..329f41a --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quotes_0',['Quotes',['../classMyLibrary_1_1Example.html#autotoc_md30',1,'']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..e137e86 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['readme_2emd_0',['readme.md',['../docs_2doxygen_2doxygen-awesome-css_2README_8md.html',1,'(Global Namespace)'],['../README_8md.html',1,'(Global Namespace)']]], + ['red_1',['red',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda82b4a54f6fbf39698c2a6982d75f4f0c',1,'MyLibrary']]], + ['runtime_5fdir_2',['runtime_dir',['../structdire_1_1base_1_1BaseDirsBundle.html#a5fbf9ff5ac9efde177b6af577d9510ff',1,'dire::base::BaseDirsBundle::runtime_dir'],['../structdire_1_1project_1_1ProjectDirsBundle.html#a2eec3f8480b910dea2759fba475f41e1',1,'dire::project::ProjectDirsBundle::runtime_dir'],['../namespacedire_1_1base.html#afdfbd1ac7e905d8ef6c924ca28e36da6',1,'dire::base::runtime_dir()'],['../namespacedire_1_1project.html#a8d9db219907df4ddcaf985d06b3647bf',1,'dire::project::runtime_dir()']]], + ['runtime_5fdir_5ffrom_5fhome_3',['runtime_dir_from_home',['../namespacedire_1_1base_1_1detail.html#aff9cedb1aba29187aed991d9a3aae505',1,'dire::base::detail']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..674a76a --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['basedirsbundle_0',['BaseDirsBundle',['../structdire_1_1base_1_1BaseDirsBundle.html',1,'dire::base']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..5bf7acf --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['example_0',['Example',['../classMyLibrary_1_1Example.html',1,'MyLibrary']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..12c35b5 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ireallywantmyownplatformprojectname_0',['IReallyWantMyOwnPlatformProjectName',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html',1,'dire::project']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..fb529d8 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['platformprojectname_0',['PlatformProjectName',['../classdire_1_1project_1_1PlatformProjectName.html',1,'dire::project']]], + ['projectdirsbundle_1',['ProjectDirsBundle',['../structdire_1_1project_1_1ProjectDirsBundle.html',1,'dire::project']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..761e527 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['secondexample_0',['SecondExample',['../classMyLibrary_1_1SecondExample.html',1,'MyLibrary']]], + ['subclassexample_1',['SubclassExample',['../classMyLibrary_1_1SubclassExample.html',1,'MyLibrary']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 0000000..4e280cf --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['userdirsbundle_0',['UserDirsBundle',['../structdire_1_1user_1_1UserDirsBundle.html',1,'dire::user']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..d76860e --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['color_0',['Color',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ced',1,'MyLibrary']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..61ebb63 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['blue_0',['blue',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda3d4a113e58853e5d81725d92fbfceb4d',1,'MyLibrary']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 0000000..05608de --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['green_0',['green',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda7170352a3cd8a59b864c0166ff98182e',1,'MyLibrary']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 0000000..68eb10b --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['red_0',['red',['../namespaceMyLibrary.html#a79a9f4bbb675f6c082b09249c5a95ceda82b4a54f6fbf39698c2a6982d75f4f0c',1,'MyLibrary']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..bbe877b --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['all_2ehpp_0',['all.hpp',['../all_8hpp.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..05c1995 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['base_2ehpp_0',['base.hpp',['../base_8hpp.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..c6b6763 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['customization_2emd_0',['customization.md',['../customization_8md.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..f3baa05 --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['defines_2ehpp_0',['defines.hpp',['../defines_8hpp.html',1,'']]], + ['differences_2emd_1',['differences.md',['../differences_8md.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..25f9cc2 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['example_2ehpp_0',['example.hpp',['../example_8hpp.html',1,'']]], + ['extensions_2emd_1',['extensions.md',['../extensions_8md.html',1,'']]] +]; diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 0000000..90a56e9 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['project_2ehpp_0',['project.hpp',['../project_8hpp.html',1,'']]] +]; diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 0000000..d5d8fe2 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_2emd_0',['readme.md',['../docs_2doxygen_2doxygen-awesome-css_2README_8md.html',1,'(Global Namespace)'],['../README_8md.html',1,'(Global Namespace)']]] +]; diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 0000000..96f9b56 --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['subclass_2dexample_2ehpp_0',['subclass-example.hpp',['../subclass-example_8hpp.html',1,'']]] +]; diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 0000000..d6067b9 --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tricks_2emd_0',['tricks.md',['../tricks_8md.html',1,'']]] +]; diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 0000000..e81731b --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['user_2ehpp_0',['user.hpp',['../user_8hpp.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..711baeb --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['audio_5fdir_0',['audio_dir',['../namespacedire_1_1user.html#a5f5b3e6b7f25f8e6479edba044cc8cf6',1,'dire::user']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..3f0159f --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bundle_0',['bundle',['../namespacedire_1_1base.html#a333e803e7827dee9f36d5aaa7a7d78ce',1,'dire::base::bundle()'],['../namespacedire_1_1project.html#a51480aa7c9b1743d59839a84b6cd2af6',1,'dire::project::bundle()'],['../namespacedire_1_1user.html#a84fc724f0e2c2724fe9ee4ff12e6af98',1,'dire::user::bundle()']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000..52e3edf --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['video_5fdir_0',['video_dir',['../namespacedire_1_1user.html#a1d449d3cfd45cd326102a215f856a5f1',1,'dire::user']]], + ['virtualfunc_1',['virtualfunc',['../classMyLibrary_1_1Example.html#a8431ef1c10c4e2a36302b8e8556514f6',1,'MyLibrary::Example::virtualfunc()'],['../classMyLibrary_1_1SubclassExample.html#a08668a9f16511ad37fb547c985d62764',1,'MyLibrary::SubclassExample::virtualfunc()']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..7543385 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['cache_5fdir_0',['cache_dir',['../namespacedire_1_1base.html#a2cf4b1506ba76e657a062d918d04bc79',1,'dire::base::cache_dir()'],['../namespacedire_1_1project.html#aa8a372386c67c5e7f45c2f170640f2e3',1,'dire::project::cache_dir()']]], + ['cache_5fdir_5ffrom_5fhome_1',['cache_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a6f2c62ca74389d7635276f50ec9a251b',1,'dire::base::detail']]], + ['concat_5fproject_5fpath_2',['concat_project_path',['../namespacedire_1_1project_1_1detail.html#a6776c5efb65d4c5d1c402b1d2cf9f79b',1,'dire::project::detail']]], + ['config_5fdir_3',['config_dir',['../namespacedire_1_1base.html#a8da68bb7cbfcdd8ded07a878cdbc6316',1,'dire::base::config_dir()'],['../namespacedire_1_1project.html#aa5ab4f9ad33ee4e7e94e3ee87cde2dff',1,'dire::project::config_dir()']]], + ['config_5fdir_5ffrom_5fhome_4',['config_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a6df56b12c63090d2e70a98e5f9d07ae4',1,'dire::base::detail']]], + ['config_5flocal_5fdir_5',['config_local_dir',['../namespacedire_1_1base.html#afa3ded73ec48d50c01a25a2c81821f9b',1,'dire::base::config_local_dir()'],['../namespacedire_1_1project.html#adf800c516d71be5804d4299344117589',1,'dire::project::config_local_dir()']]], + ['config_5flocal_5fdir_5ffrom_5fhome_6',['config_local_dir_from_home',['../namespacedire_1_1base_1_1detail.html#ae2fb6a74760412c10db0fb8b1c0f0371',1,'dire::base::detail']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..4bc4c4c --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['data_5fdir_0',['data_dir',['../namespacedire_1_1base.html#a9e643297eecf2fc0c83f4cdef46f751d',1,'dire::base::data_dir()'],['../namespacedire_1_1project.html#ad6861cd041bbf3a1cc37c791dbbba9e1',1,'dire::project::data_dir()']]], + ['data_5fdir_5ffrom_5fhome_1',['data_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a5ccc3d109219d4536e62c71f18fe6750',1,'dire::base::detail']]], + ['data_5flocal_5fdir_2',['data_local_dir',['../namespacedire_1_1base.html#afd217e48d3858eeebbe4a6567c26bf7c',1,'dire::base::data_local_dir()'],['../namespacedire_1_1project.html#aa2fad5c7d9e434a7042f28d038f7d32c',1,'dire::project::data_local_dir()']]], + ['data_5flocal_5fdir_5ffrom_5fhome_3',['data_local_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a44d4b75b7c019df009401c28ca6da7e0',1,'dire::base::detail']]], + ['desktop_5fdir_4',['desktop_dir',['../namespacedire_1_1user.html#afa71e0a64f0e6c6d7e8b97258a135e35',1,'dire::user']]], + ['document_5fdir_5',['document_dir',['../namespacedire_1_1user.html#a50ce5b415c381522dcf20fa9ccab5c5e',1,'dire::user']]], + ['download_5fdir_6',['download_dir',['../namespacedire_1_1user.html#a1af054696bbb48452d109014e02ebf41',1,'dire::user']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..a81e2cf --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['executable_5fdir_0',['executable_dir',['../namespacedire_1_1base.html#a7cdefb36320810761eb6c0e60663dbf6',1,'dire::base']]], + ['executable_5fdir_5ffrom_5fhome_1',['executable_dir_from_home',['../namespacedire_1_1base_1_1detail.html#acf0313d1f07b2d5339e1ab1d04d9c954',1,'dire::base::detail']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..199fa74 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['font_5fdir_0',['font_dir',['../namespacedire_1_1user.html#a059816931348a484047f4127b0964580',1,'dire::user']]], + ['function_5ftemplate_5ftest_1',['function_template_test',['../classMyLibrary_1_1SubclassExample.html#ad2432fe3b060789f6f7052c515d515f4',1,'MyLibrary::SubclassExample']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..bd09ac4 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['home_5fdir_0',['home_dir',['../namespacedire_1_1base.html#a3e831b039daaad98e093bca9ff3a1a60',1,'dire::base::home_dir()'],['../namespacedire_1_1user.html#ab69cfc2d3944910b5bd9f6934daaf8ff',1,'dire::user::home_dir()']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..14ae183 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ireallywantmyownplatformprojectname_0',['IReallyWantMyOwnPlatformProjectName',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a28872aed0a60e765672e5dde35be6da8',1,'dire::project::IReallyWantMyOwnPlatformProjectName']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..97e1c1a --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['long_5ffunction_5fwith_5fmany_5fparameters_0',['long_function_with_many_parameters',['../classMyLibrary_1_1SubclassExample.html#a92227fff4f72a11be0e21d88914ba63e',1,'MyLibrary::SubclassExample']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..0830dff --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['map_5fproject_5fpath_0',['map_project_path',['../namespacedire_1_1project_1_1detail.html#a995857ab8fe53adc610448ee0af7a369',1,'dire::project::detail']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..43a2263 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['name_0',['name',['../namespacedire_1_1project.html#af55003ea6b2c6c5d59988e9a30547efd',1,'dire::project']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000..b2934e8 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['operator_20path_0',['operator path',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a677de91803462a3a3023476d6f9b4424',1,'dire::project::IReallyWantMyOwnPlatformProjectName::operator Path()'],['../classdire_1_1project_1_1PlatformProjectName.html#a4bcd894e88e171c75856099098a9a145',1,'dire::project::PlatformProjectName::operator Path()']]], + ['operator_20path_20const_20_26_1',['operator path const &',['../classdire_1_1project_1_1IReallyWantMyOwnPlatformProjectName.html#a2e3526afc2b9ab86b415e1019067d486',1,'dire::project::IReallyWantMyOwnPlatformProjectName::operator Path const &()'],['../classdire_1_1project_1_1PlatformProjectName.html#afa7291f2ce5b6a067738cf7d63e1b1cb',1,'dire::project::PlatformProjectName::operator Path const &()']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000..870658b --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['picture_5fdir_0',['picture_dir',['../namespacedire_1_1user.html#aece103c4215fd6693ce8c835b6208def',1,'dire::user']]], + ['platformprojectname_1',['PlatformProjectName',['../classdire_1_1project_1_1PlatformProjectName.html#ab8ac18767324a4a3dbef2118ecb8697c',1,'dire::project::PlatformProjectName']]], + ['preference_5fdir_2',['preference_dir',['../namespacedire_1_1base.html#a5e286d16f976100a4a4282565be11cfa',1,'dire::base::preference_dir()'],['../namespacedire_1_1project.html#a2e0bbb14355911a7c5e84503940bdb70',1,'dire::project::preference_dir()']]], + ['preference_5fdir_5ffrom_5fhome_3',['preference_dir_from_home',['../namespacedire_1_1base_1_1detail.html#aba85568acc5c1036a75d5f57420f4002',1,'dire::base::detail']]], + ['public_5fdir_4',['public_dir',['../namespacedire_1_1user.html#abc4962000fa5a6f23b9b5f059e851002',1,'dire::user']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000..967ccfc --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['runtime_5fdir_0',['runtime_dir',['../namespacedire_1_1base.html#afdfbd1ac7e905d8ef6c924ca28e36da6',1,'dire::base::runtime_dir()'],['../namespacedire_1_1project.html#a8d9db219907df4ddcaf985d06b3647bf',1,'dire::project::runtime_dir()']]], + ['runtime_5fdir_5ffrom_5fhome_1',['runtime_dir_from_home',['../namespacedire_1_1base_1_1detail.html#aff9cedb1aba29187aed991d9a3aae505',1,'dire::base::detail']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000..4ea5a76 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['state_5fdir_0',['state_dir',['../namespacedire_1_1base.html#a6bead657f4c0fe3693681415de626f0f',1,'dire::base::state_dir()'],['../namespacedire_1_1project.html#ab42d30eb90c2e5f14560ebb33219a417',1,'dire::project::state_dir()']]], + ['state_5fdir_5ffrom_5fhome_1',['state_dir_from_home',['../namespacedire_1_1base_1_1detail.html#a8fde05fecf7fde42a20b4a756208511f',1,'dire::base::detail']]], + ['staticfunc_2',['staticfunc',['../classMyLibrary_1_1Example.html#a8c3ea5ce33b9e1fada7ff46eab0956a7',1,'MyLibrary::Example']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000..c6cf026 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['template_5fdir_0',['template_dir',['../namespacedire_1_1user.html#ac255dcc46a9f016f0c4ac12c641255de',1,'dire::user']]], + ['test_1',['test',['../classMyLibrary_1_1Example.html#a1c0046b0674eb4cad09c5d3e943912b8',1,'MyLibrary::Example']]], + ['trim_2',['trim',['../namespacedire_1_1project_1_1detail.html#a597b2c7671b838f0b76cb3adcb173e8a',1,'dire::project::detail']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 0000000..3e7e30c --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['dire_0',['dire',['../namespacedire.html',1,'']]], + ['dire_3a_3abase_1',['base',['../namespacedire_1_1base.html',1,'dire']]], + ['dire_3a_3abase_3a_3adetail_2',['detail',['../namespacedire_1_1base_1_1detail.html',1,'dire::base']]], + ['dire_3a_3aproject_3',['project',['../namespacedire_1_1project.html',1,'dire']]], + ['dire_3a_3aproject_3a_3adetail_4',['detail',['../namespacedire_1_1project_1_1detail.html',1,'dire::project']]], + ['dire_3a_3auser_5',['user',['../namespacedire_1_1user.html',1,'dire']]] +]; diff --git a/search/namespaces_1.js b/search/namespaces_1.js new file mode 100644 index 0000000..745d615 --- /dev/null +++ b/search/namespaces_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mylibrary_0',['MyLibrary',['../namespaceMyLibrary.html',1,'']]] +]; diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..516675f --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['and_20other_20implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['awesome_1',['Doxygen Awesome',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000..aed58c0 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['between_20this_20and_20other_20implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['bug_20list_1',['Bug List',['../bug.html',1,'']]] +]; diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 0000000..a5c689c --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['customization_0',['Customization',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2customization.html',1,'']]] +]; diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 0000000..aaf4807 --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]], + ['differences_20between_20this_20and_20other_20implementations_1',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['dire_2',['Dire',['../index.html',1,'']]], + ['doxygen_20awesome_3',['Doxygen Awesome',['../md_docs_2doxygen_2doxygen-awesome-css_2README.html',1,'']]] +]; diff --git a/search/pages_4.js b/search/pages_4.js new file mode 100644 index 0000000..917f05b --- /dev/null +++ b/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['extensions_0',['Extensions',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2extensions.html',1,'']]] +]; diff --git a/search/pages_5.js b/search/pages_5.js new file mode 100644 index 0000000..16d2c7c --- /dev/null +++ b/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]] +]; diff --git a/search/pages_6.js b/search/pages_6.js new file mode 100644 index 0000000..12f8a23 --- /dev/null +++ b/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_0',['list',['../bug.html',1,'Bug List'],['../deprecated.html',1,'Deprecated List'],['../todo.html',1,'Todo List']]] +]; diff --git a/search/pages_7.js b/search/pages_7.js new file mode 100644 index 0000000..89b8cf8 --- /dev/null +++ b/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['other_20implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]] +]; diff --git a/search/pages_8.js b/search/pages_8.js new file mode 100644 index 0000000..b613974 --- /dev/null +++ b/search/pages_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['this_20and_20other_20implementations_0',['Differences between this and other implementations',['../md_docs_2differences.html',1,'']]], + ['tips_20tricks_1',['Tips & Tricks',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html',1,'']]], + ['todo_20list_2',['Todo List',['../todo.html',1,'']]], + ['tricks_3',['Tips & Tricks',['../md_docs_2doxygen_2doxygen-awesome-css_2docs_2tricks.html',1,'']]] +]; diff --git a/search/related_0.js b/search/related_0.js new file mode 100644 index 0000000..a627c9d --- /dev/null +++ b/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['name_0',['name',['../classdire_1_1project_1_1PlatformProjectName.html#ae07d1c56be1883dae84bd602ef323c01',1,'dire::project::PlatformProjectName']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..d7b0f90 --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: url('mag_sel.svg'); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: url('mag.svg'); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial,Verdana,sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: black; +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial,Verdana,sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: black; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: black; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: white; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid black; + background-color: #EEF1F7; + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: #EEF1F7; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial,Verdana,sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial,Verdana,sans-serif; + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial,Verdana,sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial,Verdana,sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/search/search.js @@ -0,0 +1,840 @@ +/* + @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 convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +Dire: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    dire::base::BaseDirsBundle Member List
    +
    + + + + + diff --git a/structdire_1_1base_1_1BaseDirsBundle.html b/structdire_1_1base_1_1BaseDirsBundle.html new file mode 100644 index 0000000..e768ed2 --- /dev/null +++ b/structdire_1_1base_1_1BaseDirsBundle.html @@ -0,0 +1,260 @@ + + + + + + + +Dire: dire::base::BaseDirsBundle Struct Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::base::BaseDirsBundle Struct Reference
    +
    +
    + +

    #include <base.hpp>

    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    Path home_dir
     
    Path cache_dir
     
    Path config_dir
     
    Path config_local_dir
     
    Path data_dir
     
    Path data_local_dir
     
    Path preference_dir
     
    Optional< Pathexecutable_dir
     
    Optional< Pathruntime_dir
     
    Optional< Pathstate_dir
     
    +

    Member Data Documentation

    + +

    ◆ cache_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::cache_dir
    +
    + +
    +
    + +

    ◆ config_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::config_dir
    +
    + +
    +
    + +

    ◆ config_local_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::config_local_dir
    +
    + +
    +
    + +

    ◆ data_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::data_dir
    +
    + +
    +
    + +

    ◆ data_local_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::data_local_dir
    +
    + +
    +
    + +

    ◆ executable_dir

    + +
    +
    + + + + +
    Optional<Path> dire::base::BaseDirsBundle::executable_dir
    +
    + +
    +
    + +

    ◆ home_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::home_dir
    +
    + +
    +
    + +

    ◆ preference_dir

    + +
    +
    + + + + +
    Path dire::base::BaseDirsBundle::preference_dir
    +
    + +
    +
    + +

    ◆ runtime_dir

    + +
    +
    + + + + +
    Optional<Path> dire::base::BaseDirsBundle::runtime_dir
    +
    + +
    +
    + +

    ◆ state_dir

    + +
    +
    + + + + +
    Optional<Path> dire::base::BaseDirsBundle::state_dir
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structdire_1_1project_1_1ProjectDirsBundle-members.html b/structdire_1_1project_1_1ProjectDirsBundle-members.html new file mode 100644 index 0000000..e088f98 --- /dev/null +++ b/structdire_1_1project_1_1ProjectDirsBundle-members.html @@ -0,0 +1,98 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    dire::project::ProjectDirsBundle Member List
    +
    + + + + + diff --git a/structdire_1_1project_1_1ProjectDirsBundle.html b/structdire_1_1project_1_1ProjectDirsBundle.html new file mode 100644 index 0000000..cd3435c --- /dev/null +++ b/structdire_1_1project_1_1ProjectDirsBundle.html @@ -0,0 +1,228 @@ + + + + + + + +Dire: dire::project::ProjectDirsBundle Struct Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::project::ProjectDirsBundle Struct Reference
    +
    +
    + +

    #include <project.hpp>

    + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    Path cache_dir
     
    Path config_dir
     
    Path config_local_dir
     
    Path data_dir
     
    Path data_local_dir
     
    Path preference_dir
     
    Optional< Pathruntime_dir
     
    Optional< Pathstate_dir
     
    +

    Member Data Documentation

    + +

    ◆ cache_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::cache_dir
    +
    + +
    +
    + +

    ◆ config_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::config_dir
    +
    + +
    +
    + +

    ◆ config_local_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::config_local_dir
    +
    + +
    +
    + +

    ◆ data_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::data_dir
    +
    + +
    +
    + +

    ◆ data_local_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::data_local_dir
    +
    + +
    +
    + +

    ◆ preference_dir

    + +
    +
    + + + + +
    Path dire::project::ProjectDirsBundle::preference_dir
    +
    + +
    +
    + +

    ◆ runtime_dir

    + +
    +
    + + + + +
    Optional<Path> dire::project::ProjectDirsBundle::runtime_dir
    +
    + +
    +
    + +

    ◆ state_dir

    + +
    +
    + + + + +
    Optional<Path> dire::project::ProjectDirsBundle::state_dir
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structdire_1_1user_1_1UserDirsBundle-members.html b/structdire_1_1user_1_1UserDirsBundle-members.html new file mode 100644 index 0000000..7423537 --- /dev/null +++ b/structdire_1_1user_1_1UserDirsBundle-members.html @@ -0,0 +1,100 @@ + + + + + + + +Dire: Member List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    dire::user::UserDirsBundle Member List
    +
    + + + + + diff --git a/structdire_1_1user_1_1UserDirsBundle.html b/structdire_1_1user_1_1UserDirsBundle.html new file mode 100644 index 0000000..65a63b8 --- /dev/null +++ b/structdire_1_1user_1_1UserDirsBundle.html @@ -0,0 +1,260 @@ + + + + + + + +Dire: dire::user::UserDirsBundle Struct Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    dire::user::UserDirsBundle Struct Reference
    +
    +
    + +

    #include <user.hpp>

    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    Path home_dir
     
    Optional< Pathfont_dir
     
    Path audio_dir
     
    Path desktop_dir
     
    Path document_dir
     
    Path download_dir
     
    Path picture_dir
     
    Path public_dir
     
    Path template_dir
     
    Path video_dir
     
    +

    Member Data Documentation

    + +

    ◆ audio_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::audio_dir
    +
    + +
    +
    + +

    ◆ desktop_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::desktop_dir
    +
    + +
    +
    + +

    ◆ document_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::document_dir
    +
    + +
    +
    + +

    ◆ download_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::download_dir
    +
    + +
    +
    + +

    ◆ font_dir

    + +
    +
    + + + + +
    Optional<Path> dire::user::UserDirsBundle::font_dir
    +
    + +
    +
    + +

    ◆ home_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::home_dir
    +
    + +
    +
    + +

    ◆ picture_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::picture_dir
    +
    + +
    +
    + +

    ◆ public_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::public_dir
    +
    + +
    +
    + +

    ◆ template_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::template_dir
    +
    + +
    +
    + +

    ◆ video_dir

    + +
    +
    + + + + +
    Path dire::user::UserDirsBundle::video_dir
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/subclass-example_8hpp.html b/subclass-example_8hpp.html new file mode 100644 index 0000000..dc01994 --- /dev/null +++ b/subclass-example_8hpp.html @@ -0,0 +1,107 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include/MyLibrary/subclass-example.hpp File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    subclass-example.hpp File Reference
    +
    +
    +
    #include <string>
    +#include "example.hpp"
    +#include <iostream>
    +
    +

    Go to the source code of this file.

    + + + + + +

    +Classes

    class  MyLibrary::SubclassExample< TemplatedClass >
     some subclass More...
     
    + + + +

    +Namespaces

    namespace  MyLibrary
     
    +
    + + + + diff --git a/subclass-example_8hpp_source.html b/subclass-example_8hpp_source.html new file mode 100644 index 0000000..08e8f41 --- /dev/null +++ b/subclass-example_8hpp_source.html @@ -0,0 +1,130 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/include/MyLibrary/subclass-example.hpp Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    subclass-example.hpp
    +
    +
    +Go to the documentation of this file.
    1#pragma once
    +
    2#include <string>
    +
    3#include "example.hpp"
    +
    4#include <iostream>
    +
    5
    +
    6namespace MyLibrary {
    +
    7
    +
    11 template<typename TemplatedClass>
    +
    +
    12 class SubclassExample : public Example {
    +
    13 public:
    +
    14
    +
    19 int virtualfunc() override;
    +
    20
    +
    24 template <typename T>
    +
    25 std::shared_ptr<std::string> function_template_test(std::shared_ptr<T>& param);
    +
    26
    +
    36 template <typename T, typename Foo, typename Bar, typename Alice, typename Bob, typename Charlie, typename Hello, typename World>
    +
    +
    37 std::pair<std::string, std::string> long_function_with_many_parameters(std::shared_ptr<T>& param1, std::shared_ptr<std::string>& param2, bool parameter3, Alice paramater4 Bob parameter 5) {
    +
    38 if(true) {
    +
    39 std::cout << "this even has some code." << std::endl;
    +
    40 }
    +
    41 }
    +
    +
    42
    +
    43 };
    +
    +
    44
    +
    45}
    +
    46
    +
    Example class to demonstrate the features of the custom CSS.
    Definition example.hpp:14
    +
    some subclass
    Definition subclass-example.hpp:12
    +
    int virtualfunc() override
    +
    std::pair< std::string, std::string > long_function_with_many_parameters(std::shared_ptr< T > &param1, std::shared_ptr< std::string > &param2, bool parameter3, Alice paramater4 Bob parameter 5)
    Extra long function with lots of parameters and many template types.
    Definition subclass-example.hpp:37
    +
    std::shared_ptr< std::string > function_template_test(std::shared_ptr< T > &param)
    Template function function.
    + +
    Definition example.hpp:4
    +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/sync_off.png differ diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/sync_on.png differ diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/tab_a.png differ diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000..e34850a Binary files /dev/null and b/tab_ad.png differ diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/tab_b.png differ diff --git a/tab_bd.png b/tab_bd.png new file mode 100644 index 0000000..91c2524 Binary files /dev/null and b/tab_bd.png differ diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/tab_h.png differ diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 0000000..2489273 Binary files /dev/null and b/tab_hd.png differ diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/tab_s.png differ diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000..757a565 Binary files /dev/null and b/tab_sd.png differ diff --git a/tabs.css b/tabs.css new file mode 100644 index 0000000..8920117 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#364D7C;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url('tab_b.png')}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255, 255, 255, 0.9);color:#283A5D;outline:0}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255, 255, 255, 0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:white}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url('tab_b.png');line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url('tab_s.png');background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent white transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:white;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555555;background-image:none;border:0 !important;color:#555555;background-image:none}.sm-dox ul a:hover{background-image:url('tab_a.png');background-repeat:repeat-x;color:white;text-shadow:0px 1px 1px rgba(0, 0, 0, 1.0)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:white;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url('tab_b.png')}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:white}} \ No newline at end of file diff --git a/todo.html b/todo.html new file mode 100644 index 0000000..ef07fa2 --- /dev/null +++ b/todo.html @@ -0,0 +1,88 @@ + + + + + + + +Dire: Todo List + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    Todo List
    +
    +
    +
    +
    Member MyLibrary::Example::test (const std::string &test)
    +
    This theme is never finished!
    +
    +
    +
    + + + + diff --git a/tricks_8md.html b/tricks_8md.html new file mode 100644 index 0000000..27ca6a8 --- /dev/null +++ b/tricks_8md.html @@ -0,0 +1,83 @@ + + + + + + + +Dire: docs/doxygen/doxygen-awesome-css/docs/tricks.md File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    +
    docs/doxygen/doxygen-awesome-css/docs/tricks.md File Reference
    +
    +
    +
    + + + + diff --git a/user_8hpp.html b/user_8hpp.html new file mode 100644 index 0000000..7f4cac5 --- /dev/null +++ b/user_8hpp.html @@ -0,0 +1,132 @@ + + + + + + + +Dire: src/lib/include/dire/user.hpp File Reference + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    + +
    user.hpp File Reference
    +
    +
    +
    #include <dire/defines.hpp>
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  dire::user::UserDirsBundle
     
    + + + + + +

    +Namespaces

    namespace  dire
     
    namespace  dire::user
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    auto dire::user::bundle () -> Optional< UserDirsBundle >
     
    auto dire::user::home_dir () -> Optional< Path >
     
    auto dire::user::audio_dir () -> Optional< Path >
     
    auto dire::user::desktop_dir () -> Optional< Path >
     
    auto dire::user::document_dir () -> Optional< Path >
     
    auto dire::user::download_dir () -> Optional< Path >
     
    auto dire::user::font_dir () -> Optional< Path >
     
    auto dire::user::picture_dir () -> Optional< Path >
     
    auto dire::user::public_dir () -> Optional< Path >
     
    auto dire::user::template_dir () -> Optional< Path >
     
    auto dire::user::video_dir () -> Optional< Path >
     
    +
    + + + + diff --git a/user_8hpp_source.html b/user_8hpp_source.html new file mode 100644 index 0000000..a36cb76 --- /dev/null +++ b/user_8hpp_source.html @@ -0,0 +1,158 @@ + + + + + + + +Dire: src/lib/include/dire/user.hpp Source File + + + + + + + + + + +
    +
    + + + + + + +
    +
    Dire +
    +
    Complete cross-platform solution for data and user directories discovery.
    +
    +
    + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    user.hpp
    +
    +
    +Go to the documentation of this file.
    1#pragma once
    +
    2
    +
    3#include <dire/defines.hpp>
    +
    4
    + + +
    Definition user.hpp:6
    +
    auto font_dir() -> Optional< Path >
    +
    auto download_dir() -> Optional< Path >
    +
    auto video_dir() -> Optional< Path >
    +
    auto document_dir() -> Optional< Path >
    +
    auto audio_dir() -> Optional< Path >
    +
    auto bundle() -> Optional< UserDirsBundle >
    +
    auto home_dir() -> Optional< Path >
    +
    auto public_dir() -> Optional< Path >
    +
    auto template_dir() -> Optional< Path >
    +
    auto picture_dir() -> Optional< Path >
    +
    auto desktop_dir() -> Optional< Path >
    +
    std::optional< T > Optional
    Definition defines.hpp:26
    +
    std::filesystem::path Path
    Definition defines.hpp:16
    +
    Definition user.hpp:9
    +
    Path picture_dir
    Definition user.hpp:17
    +
    Path desktop_dir
    Definition user.hpp:14
    +
    Path document_dir
    Definition user.hpp:15
    +
    Path home_dir
    Definition user.hpp:10
    +
    Path audio_dir
    Definition user.hpp:13
    +
    Optional< Path > font_dir
    Definition user.hpp:12
    +
    Path video_dir
    Definition user.hpp:20
    +
    Path public_dir
    Definition user.hpp:18
    +
    Path template_dir
    Definition user.hpp:19
    +
    Path download_dir
    Definition user.hpp:16
    +
    + + + +