Compiling the library
To compile the library, make sure that imgui.h is set
correctly in your include path, so that it can be included like
this:
#include <imgui.h>Then, you can statically compile UTheme.cpp,
Common.h and UTheme.hpp into your project.
Additionally, we also provide a C API under the C
folder. To use it, statically compile C/CUTheme.cpp and
C/CUTheme.h.
The library uses the yaml-cpp library to read
YAML. If you don't use it already, you can easily use the git submodule
under the yaml-cpp folder.
After all that setup is finished, include the UTheme.hpp
header into one of your files and start using the library.
Exporting symbols out of a DLL
To export symbols out of a DLL, define the
MLS_EXPORT_LIBRARY macro and when compiling the library
that you want to export the symbols out of, define the
MLS_LIB_COMPILE macro.
API
The UTheme.hpp header defines the Theme
class. It has 3 member functions:
load- Given a string that points to a file location, loads the file. Returns 0 on success and -1 when the file cannot be readsave- Given a string that points to a file location, saves the current style to the specified file.showThemeEditor- Renders a window that you can use to modify the current style. Takes abOpenargument for the close button on the windowshowThemeEditorInline- Renders the contents of the function above, without the window
The load and save functions also take an
optional pointer of type SemanticColourData. When pointing
to a valid instance, the struct will be filled with semantic colour
data. The struct looks like this:
struct SemanticColourData
{
ThemeVec4 DestructiveColor;
ThemeVec4 DestructiveColorActive;
ThemeVec4 SuccessColor;
ThemeVec4 SuccessColorActive;
ThemeVec4 WarningColor;
ThemeVec4 WarningColorActive;
};C API
The C API is the same as the C++ API, except that default arguments
have to be filled in manually and that all functions and types are
prefixed by their namespace and class separated by _. For
example, UImGui::Theme::load becomes
UImGui_Theme_load.