Here is a list of the documentation for the different modules:
Information before you start
Shared modules
Shared modules are modules that are comprised of third party libraries that do not need to be compiled statically into the framework.
The following modules are library modules:
- OS/Exec module
- OS/Unix/XDGBasedir module
- OS/Unix/DBusUtils module
- CLIParser module
- OS/Open module
When compiling in non-vendored mode, make sure that those libraries are available system-wide.
Additionally, package maintainers using source-based packaging formats should make sure that all library features are enabled.
Modules interface and config
Modules also have an interface related to them, the
Modules
interface. It controls the modules and their
settings. There are 2 functions under it:
data
orUImGui_Modules_data
in Csave
orUImGui_Modules_save
in C - Saves the module settings toConfig/Core/Modules.yaml
get
- Returns a reference to the backend class
The data
returns a reference of type
ModuleSettings
that looks like this:
struct ModuleSettings
{
size_t maxTransactions = 100;
bool os;
bool dbus;
bool uexec;
bool theming;
bool ufont;
bool i18n;
bool undo_redo;
bool plotting;
bool knobs;
bool spinners;
bool toggles;
bool text_utils;
bool cli_parser;
bool xdg;
bool open;
};
Every module entry contains information on how to use the different data presented here.
The booleans, at the bottom of the struct, can be used to check if a module is enabled at runtime. On Unix systems, where the 3-library layout is used(more information here), distributions may package the framework as a system-wide library. Because of this, however, all modules need to be enabled at compile time, as this may break specific applications.
For exactly this reason, runtime module checking is needed for
per-project module settings. These booleans map almost 1:1 to the ones
in uvproj.yaml
.
- Home
- Beginner content
- Install guide
- Creating and using the UI components
- The Instance
- The Init Info struct
- Textures
- Logging
- Unicode support
- Additional features
- Client-side bar
- Custom type definitions
- Memory management
- C API development
- Config files and Folders
- Interfaces
- Internal Event safety
- Customising the build system
- Modules system
- Collaborating with others
- Advanced content
- Developer and contributor resources
- Misc