Elaztek Developer Hub
Blamite Game Engine - blam!  00388.06.24.23.2301.blamite
The core library for the Blamite Game Engine.
themes.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <vector>
5 #include <string>
6 
8 
9 #ifndef BLAM
10 #define BLAM
11 #endif
12 
17 {
21 };
22 
29 {
30 public:
31  std::string name;
32  std::string id;
33 
34  std::string metrics_id = "default";
35  std::string font_id = "auto";
36 
40  std::map<ImGuiCol_, ImVec4> imgui_colors;
41 
48 
53 
60  void ApplyTheme();
61 
63 };
64 
66 {
67 public:
68  std::string name;
69  std::string id;
70 
76  float indent_spacing = 21;
77  float scrollbar_size = 14;
78  float grab_min_size = 10;
79 
80  float window_border = 1;
81  float child_border = 1;
82  float popup_border = 1;
83  float frame_border = 0;
84  float tab_border = 0;
85 
86  float window_rounding = 7;
87  float child_rounding = 0;
88  float frame_rounding = 0;
89  float popup_rounding = 0;
90  float scrollbar_rounding = 9;
91  float grab_rounding = 0;
92  float tab_rounding = 4;
93 
95 
98 
101 
104 
105  bool anti_aliased_lines = true;
106  bool anti_aliased_fill = true;
107 
109  float global_alpha = 1.0f;
110 
111  float imgui_mouse_scale = 1.0f;
113  float column_min_spacing = 6.0f;
114 
118  void ApplyMetrics();
119 };
120 
130 {
134  BLAM void LoadBuiltInThemes();
135 
141  BLAM std::vector<BlamColorScheme>* GetColorSchemeList();
142 
148  BLAM std::vector<BlamThemeMetrics>* GetMetricsList();
149 
157  BLAM bool ApplyColorScheme(std::string scheme_id);
158 
166  BLAM bool ApplyMetrics(std::string metrics_id);
167 }
BlamColorScheme::metrics_id
std::string metrics_id
The default metrics to apply with this theme.
Definition: themes.h:34
ImGuiCol_PlotHistogramHovered
@ ImGuiCol_PlotHistogramHovered
Definition: imgui.h:1068
ImGuiStyle::ScrollbarSize
float ScrollbarSize
Definition: imgui.h:1311
ImGuiCol_FrameBg
@ ImGuiCol_FrameBg
Definition: imgui.h:1034
ImGuiStyle::TouchExtraPadding
ImVec2 TouchExtraPadding
Definition: imgui.h:1308
BlamThemeMetrics::grab_rounding
float grab_rounding
Definition: themes.h:91
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
ImGuiStyle::ColumnsMinSpacing
float ColumnsMinSpacing
Definition: imgui.h:1310
BlamThemeMetrics::window_menu_button_pos
ImGuiDir window_menu_button_pos
Definition: themes.h:96
ImGuiDir
int ImGuiDir
Definition: imgui.h:135
ImGuiIO::FontDefault
ImFont * FontDefault
Definition: imgui.h:1362
ImGuiStyle::IndentSpacing
float IndentSpacing
Definition: imgui.h:1309
ImGuiCol_TextSelectedBg
@ ImGuiCol_TextSelectedBg
Definition: imgui.h:1069
ImGuiStyle::GrabRounding
float GrabRounding
Definition: imgui.h:1314
BlamThemeMetrics::imgui_mouse_scale
float imgui_mouse_scale
Definition: themes.h:111
BlamColorScheme::base_colors
ImGuiThemeColors base_colors
The default ImGUI color scheme to use as a base.
Definition: themes.h:47
logger.h
ImGuiCol_TabUnfocusedActive
@ ImGuiCol_TabUnfocusedActive
Definition: imgui.h:1064
ImGuiCol_Tab
@ ImGuiCol_Tab
Definition: imgui.h:1060
ImGuiStyle::SelectableTextAlign
ImVec2 SelectableTextAlign
Definition: imgui.h:1319
BlamThemeMetrics::window_padding
ImVec2 window_padding
Definition: themes.h:71
ImGuiStyle::ItemInnerSpacing
ImVec2 ItemInnerSpacing
Definition: imgui.h:1307
imgui.h
Blam::UI::Themes::GetMetricsList
BLAM std::vector< BlamThemeMetrics > * GetMetricsList()
Retrieves the list of currently loaded theme metrics.
Definition: themes.cpp:456
ImVec4
Definition: imgui.h:192
BlamThemeMetrics::child_rounding
float child_rounding
Definition: themes.h:87
BlamThemeMetrics::item_inner_spacing
ImVec2 item_inner_spacing
Definition: themes.h:74
BlamThemeMetrics::window_border
float window_border
Definition: themes.h:80
BlamThemeMetrics::display_window_padding
ImVec2 display_window_padding
Definition: themes.h:103
Blam::Globals::GetGlobalAsFloat
BLAM float * GetGlobalAsFloat(std::string name)
Retrieves a global's value as a float.
Definition: globals.cpp:407
BlamThemeMetrics::anti_aliased_fill
bool anti_aliased_fill
Definition: themes.h:106
themes.h
BlamThemeMetrics::child_border
float child_border
Definition: themes.h:81
ImGuiStyle::WindowMenuButtonPosition
ImGuiDir WindowMenuButtonPosition
Definition: imgui.h:1298
BlamThemeMetrics::scrollbar_rounding
float scrollbar_rounding
Definition: themes.h:90
Dark
@ Dark
The Dark ImGUI theme.
Definition: themes.h:20
ImGuiIO
Definition: imgui.h:1338
ImGuiStyle::ScaleAllSizes
IMGUI_API void ScaleAllSizes(float scale_factor)
Definition: imgui.cpp:1171
ImGuiCol_Header
@ ImGuiCol_Header
Definition: imgui.h:1051
ImGuiCol_ButtonActive
@ ImGuiCol_ButtonActive
Definition: imgui.h:1050
ImGuiStyle::ScrollbarRounding
float ScrollbarRounding
Definition: imgui.h:1312
ImGuiCol_
ImGuiCol_
Definition: imgui.h:1025
ImGuiStyle::PopupRounding
float PopupRounding
Definition: imgui.h:1301
ImGuiCol_SliderGrab
@ ImGuiCol_SliderGrab
Definition: imgui.h:1046
ImGuiCol_TitleBgCollapsed
@ ImGuiCol_TitleBgCollapsed
Definition: imgui.h:1039
BlamThemeMetrics::column_min_spacing
float column_min_spacing
Definition: themes.h:113
ImGuiStyle::DisplaySafeAreaPadding
ImVec2 DisplaySafeAreaPadding
Definition: imgui.h:1321
ImGuiCol_TabUnfocused
@ ImGuiCol_TabUnfocused
Definition: imgui.h:1063
ImVec2::x
float x
Definition: imgui.h:181
BlamThemeMetrics::color_button_pos
ImGuiDir color_button_pos
Definition: themes.h:97
BlamThemeMetrics::frame_border
float frame_border
Definition: themes.h:83
ImVec2
Definition: imgui.h:179
ImFont
Definition: imgui.h:2180
metrics_schemes
std::vector< BlamThemeMetrics > metrics_schemes
Definition: themes.cpp:6
BlamColorScheme::name
std::string name
The name of the theme.
Definition: themes.h:31
ImGuiCol_SeparatorHovered
@ ImGuiCol_SeparatorHovered
Definition: imgui.h:1055
Blam::UI::Themes::GetColorSchemeList
BLAM std::vector< BlamColorScheme > * GetColorSchemeList()
Retrieves the list of currently loaded color schemes.
Definition: themes.cpp:451
ImGui::StyleColorsLight
IMGUI_API void StyleColorsLight(ImGuiStyle *dst=NULL)
Definition: imgui_draw.cpp:287
BlamThemeMetrics
Definition: themes.h:65
BlamThemeMetrics::safe_area_padding
ImVec2 safe_area_padding
Definition: themes.h:102
ImGuiIO::Fonts
ImFontAtlas * Fonts
Definition: imgui.h:1359
ImGuiStyle::WindowPadding
ImVec2 WindowPadding
Definition: imgui.h:1293
ImGuiStyle::WindowBorderSize
float WindowBorderSize
Definition: imgui.h:1295
Blam::UI::Themes::LoadBuiltInThemes
BLAM void LoadBuiltInThemes()
Loads all hard-coded UI themes.
Definition: themes.cpp:8
ImGuiStyle::MouseCursorScale
float MouseCursorScale
Definition: imgui.h:1322
ImGuiCol_FrameBgActive
@ ImGuiCol_FrameBgActive
Definition: imgui.h:1036
ImFontAtlas::Fonts
ImVector< ImFont * > Fonts
Definition: imgui.h:2167
Classic
@ Classic
The Classic ImGUI theme.
Definition: themes.h:18
BlamColorScheme::ApplyTheme
void ApplyTheme()
Applies the theme to the engine UI.
Definition: BlamColorScheme.cpp:13
ImGuiStyle::WindowMinSize
ImVec2 WindowMinSize
Definition: imgui.h:1296
Blam::UI::Themes::ApplyMetrics
BLAM bool ApplyMetrics(std::string metrics_id)
Applies the specified ImGui metrics.
Definition: themes.cpp:479
ImGuiCol_SeparatorActive
@ ImGuiCol_SeparatorActive
Definition: imgui.h:1056
ImGuiStyle::WindowTitleAlign
ImVec2 WindowTitleAlign
Definition: imgui.h:1297
ImGuiCol_ResizeGripHovered
@ ImGuiCol_ResizeGripHovered
Definition: imgui.h:1058
BLAM
#define BLAM
Definition: themes.h:10
ImGuiCol_PlotLinesHovered
@ ImGuiCol_PlotLinesHovered
Definition: imgui.h:1066
ImGuiCol_Border
@ ImGuiCol_Border
Definition: imgui.h:1032
globals.h
color_schemes
std::vector< BlamColorScheme > color_schemes
Definition: themes.cpp:5
ImGuiStyle::GrabMinSize
float GrabMinSize
Definition: imgui.h:1313
ImGuiCol_CheckMark
@ ImGuiCol_CheckMark
Definition: imgui.h:1045
ImGuiCol_PopupBg
@ ImGuiCol_PopupBg
Definition: imgui.h:1031
ImGuiStyle::ButtonTextAlign
ImVec2 ButtonTextAlign
Definition: imgui.h:1318
BlamThemeMetrics::curve_tesselation_tolerance
float curve_tesselation_tolerance
Definition: themes.h:108
BlamThemeMetrics::button_text_align
ImVec2 button_text_align
Definition: themes.h:99
ImGui::GetIO
IMGUI_API ImGuiIO & GetIO()
Definition: imgui.cpp:3300
ImGuiCol_ScrollbarBg
@ ImGuiCol_ScrollbarBg
Definition: imgui.h:1041
ImGuiStyle::FramePadding
ImVec2 FramePadding
Definition: imgui.h:1303
ImGuiStyle
Definition: imgui.h:1290
ImGuiStyle::Colors
ImVec4 Colors[ImGuiCol_COUNT]
Definition: imgui.h:1326
BlamThemeMetrics::window_title_align
ImVec2 window_title_align
Definition: themes.h:94
ImGuiStyle::FrameRounding
float FrameRounding
Definition: imgui.h:1304
BlamColorScheme
Class representing a Blam Color Scheme.
Definition: themes.h:28
ImGuiCol_HeaderActive
@ ImGuiCol_HeaderActive
Definition: imgui.h:1053
ImGuiCol_FrameBgHovered
@ ImGuiCol_FrameBgHovered
Definition: imgui.h:1035
ImGuiCol_NavHighlight
@ ImGuiCol_NavHighlight
Definition: imgui.h:1071
ImGuiCol_MenuBarBg
@ ImGuiCol_MenuBarBg
Definition: imgui.h:1040
ImGuiCol_HeaderHovered
@ ImGuiCol_HeaderHovered
Definition: imgui.h:1052
BlamThemeMetrics::popup_rounding
float popup_rounding
Definition: themes.h:89
ImGuiCol_ScrollbarGrab
@ ImGuiCol_ScrollbarGrab
Definition: imgui.h:1042
BlamThemeMetrics::global_alpha
float global_alpha
Definition: themes.h:109
ImGuiCol_TitleBgActive
@ ImGuiCol_TitleBgActive
Definition: imgui.h:1038
BlamThemeMetrics::selectable_text_align
ImVec2 selectable_text_align
Definition: themes.h:100
ImGui::PopID
IMGUI_API void PopID()
Definition: imgui.cpp:7026
BlamThemeMetrics::grab_min_size
float grab_min_size
Definition: themes.h:78
ImGuiStyle::TabRounding
float TabRounding
Definition: imgui.h:1315
Blam::UI::Themes
Namespace for anything relating to engine UI themes.
Definition: themes.h:129
BlamThemeMetrics::id
std::string id
The ID of the theme metrics.
Definition: themes.h:69
BlamThemeMetrics::tab_border
float tab_border
Definition: themes.h:84
BlamThemeMetrics::window_min_size
ImVec2 window_min_size
Definition: themes.h:112
ImGuiCol_ResizeGripActive
@ ImGuiCol_ResizeGripActive
Definition: imgui.h:1059
BlamThemeMetrics::indent_spacing
float indent_spacing
Definition: themes.h:76
ImGui::StyleColorsDark
IMGUI_API void StyleColorsDark(ImGuiStyle *dst=NULL)
Definition: imgui_draw.cpp:176
ImGui::GetStyle
IMGUI_API ImGuiStyle & GetStyle()
Definition: imgui.cpp:3306
BlamColorScheme::font_id
std::string font_id
The ID of the font to apply with this theme.
Definition: themes.h:35
BlamColorScheme::id
std::string id
The ID of the theme.
Definition: themes.h:32
BlamThemeMetrics::touch_extra_padding
ImVec2 touch_extra_padding
Definition: themes.h:75
ImGuiDir_Right
@ ImGuiDir_Right
Definition: imgui.h:928
ImGuiStyle::Alpha
float Alpha
Definition: imgui.h:1292
BlamThemeMetrics::anti_aliased_lines
bool anti_aliased_lines
Definition: themes.h:105
ImGuiCol_Button
@ ImGuiCol_Button
Definition: imgui.h:1048
ImGuiStyle::AntiAliasedLines
bool AntiAliasedLines
Definition: imgui.h:1323
ImGuiCol_TabHovered
@ ImGuiCol_TabHovered
Definition: imgui.h:1061
BlamColorScheme::AddCustomColor
void AddCustomColor(ImGuiCol_, ImVec4)
Definition: BlamColorScheme.cpp:89
ImGuiCol_TabActive
@ ImGuiCol_TabActive
Definition: imgui.h:1062
ImVec2::y
float y
Definition: imgui.h:181
ImGuiCol_Text
@ ImGuiCol_Text
Definition: imgui.h:1027
Blam::UI::Themes::ApplyColorScheme
BLAM bool ApplyColorScheme(std::string scheme_id)
Applies the specified color scheme.
Definition: themes.cpp:461
ImGuiStyle::ChildBorderSize
float ChildBorderSize
Definition: imgui.h:1300
ImGuiThemeColors
ImGuiThemeColors
Enumerator containing all possible base ImGUI color schemes.
Definition: themes.h:16
BlamThemeMetrics::frame_rounding
float frame_rounding
Definition: themes.h:88
ImGuiStyle::FrameBorderSize
float FrameBorderSize
Definition: imgui.h:1305
BlamThemeMetrics::scrollbar_size
float scrollbar_size
Definition: themes.h:77
ImGuiStyle::WindowRounding
float WindowRounding
Definition: imgui.h:1294
ImGuiCol_TitleBg
@ ImGuiCol_TitleBg
Definition: imgui.h:1037
ImGuiStyle::TabBorderSize
float TabBorderSize
Definition: imgui.h:1316
ImGuiStyle::ItemSpacing
ImVec2 ItemSpacing
Definition: imgui.h:1306
ImGuiStyle::CurveTessellationTol
float CurveTessellationTol
Definition: imgui.h:1325
ImGuiCol_WindowBg
@ ImGuiCol_WindowBg
Definition: imgui.h:1029
ImGuiStyle::ColorButtonPosition
ImGuiDir ColorButtonPosition
Definition: imgui.h:1317
BlamThemeMetrics::popup_border
float popup_border
Definition: themes.h:82
BlamThemeMetrics::tab_rounding
float tab_rounding
Definition: themes.h:92
ImGuiCol_ScrollbarGrabHovered
@ ImGuiCol_ScrollbarGrabHovered
Definition: imgui.h:1043
BlamThemeMetrics::item_spacing
ImVec2 item_spacing
Definition: themes.h:73
ImGuiCol_ButtonHovered
@ ImGuiCol_ButtonHovered
Definition: imgui.h:1049
BlamThemeMetrics::ApplyMetrics
void ApplyMetrics()
Applies the metrics to the engine UI.
Definition: BlamThemeMetrics.cpp:6
ImGuiCol_SliderGrabActive
@ ImGuiCol_SliderGrabActive
Definition: imgui.h:1047
BlamColorScheme::BlamColorScheme
BlamColorScheme()
Creates a new Blam UI theme object.
Definition: BlamColorScheme.cpp:7
ImGuiCol_Separator
@ ImGuiCol_Separator
Definition: imgui.h:1054
ImGuiStyle::AntiAliasedFill
bool AntiAliasedFill
Definition: imgui.h:1324
BlamColorScheme::imgui_colors
std::map< ImGuiCol_, ImVec4 > imgui_colors
List of all customized ImGUI colors.
Definition: themes.h:40
ImGuiCol_ResizeGrip
@ ImGuiCol_ResizeGrip
Definition: imgui.h:1057
ImGuiStyle::DisplayWindowPadding
ImVec2 DisplayWindowPadding
Definition: imgui.h:1320
ImGuiStyle::PopupBorderSize
float PopupBorderSize
Definition: imgui.h:1302
ImGuiDir_Left
@ ImGuiDir_Left
Definition: imgui.h:927
BlamThemeMetrics::name
std::string name
The name of the theme metrics.
Definition: themes.h:68
ImGui::StyleColorsClassic
IMGUI_API void StyleColorsClassic(ImGuiStyle *dst=NULL)
Definition: imgui_draw.cpp:231
ImVector::Size
int Size
Definition: imgui.h:1229
font
io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels,...) font
Definition: README.txt:86
ImGuiStyle::ChildRounding
float ChildRounding
Definition: imgui.h:1299
ImGui::PushID
IMGUI_API void PushID(const char *str_id)
Definition: imgui.cpp:6995
Blam::Globals::GetGlobalAsBoolean
BLAM bool * GetGlobalAsBoolean(std::string name)
Retrieves a global's value as a boolean.
Definition: globals.cpp:347
ImGuiCol_PlotHistogram
@ ImGuiCol_PlotHistogram
Definition: imgui.h:1067
ImGuiCol_ScrollbarGrabActive
@ ImGuiCol_ScrollbarGrabActive
Definition: imgui.h:1044
BlamThemeMetrics::window_rounding
float window_rounding
Definition: themes.h:86
BlamThemeMetrics::frame_padding
ImVec2 frame_padding
Definition: themes.h:72
Light
@ Light
The Light ImGUI theme.
Definition: themes.h:19