The UntitledImGuiTheme library, provides functions to load and save dear imgui themes to a YAML format, as well as a widget to edit the current theme.
Enabling the module
To enable the themes module, update your uvproj.yaml so
that the spinners key under enabled-modules is
set to true like this:
name: "MyProject"
version: "1.0.0.0"
engine-version: "1.0.0.0"
enabled-modules:
theming: trueThen, regenerate the modules cache by running the following command:
user $ https://madladsquad.com/UVKBuildTool --generate <project directory>
After that, refresh your CMake project with
cmake ..!
Next, in your source file, include the Modules.hpp like
this:
#include <Modules/Modules.hpp>Event safety
The entire module is flagged as event safe at
All ready.
Testing out the module
When the theming module is enabled, the framework will automatically
try to load the theme specified in the theme-location key
of the Modules.yaml file. If the string is empty, or is set
to nullptr from your code, the theme will not be
loaded.
The theme-location string is prefixed by
<Application config location>/Theme/ and postfixed
with .theme.yaml, so if trying to load default
the library will attempt to load
<Application config location>/Theme/default.theme.yaml.
More information
The theme format is detailed here.
The library API is specified here.
C API
More info on the UntitledImGuiTheme library's C API can be found here.
- Home
- Beginner content
- Install guide
- Creating and using the UI components
- The Instance
- The Init Info struct
- Building better titlebar menus
- 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
- Loading dynamic libraries at runtime
- Understanding the library layout
- Compilation mode modifiers
- Supporting plugins
- Production export and deployment
- OS integration tips
- Targeting WASM
- Using a custom rendering engine:
- Using a custom windowing backend:
- Developer and contributor resources
- Misc