Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.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
font
io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels,...) font
Definition: README.txt:86
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
color
BlamColor color
Typedef for a color field, used in tag definitions.
Definition: tags.h:359
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
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
globals.h
BlamThemeMetrics::popup_rounding
float popup_rounding
Definition: themes.h:89
ImGuiCol_ScrollbarGrab
@ ImGuiCol_ScrollbarGrab
Definition: imgui.h:1042
it
ARPHIC PUBLIC LICENSE Ltd Yung Chi Taiwan All rights reserved except as specified below Everyone is permitted to copy and distribute verbatim copies of this license but changing it is forbidden Preamble The licenses for most software are designed to take away your freedom to share and change it By the ARPHIC PUBLIC LICENSE specifically permits and encourages you to use this provided that you give the recipients all the rights that we gave you and make sure they can get the modifications of this software Legal Terms Font means the TrueType fonts AR PL Mingti2L AR PL KaitiM AR PL KaitiM and the derivatives of those fonts created through any modification including modifying reordering converting changing font or adding deleting some characters in from glyph table PL means Public License Copyright Holder means whoever is named in the copyright or copyrights for the Font You means the or person redistributing or modifying the Font Freely Available means that you have the freedom to copy or modify the Font as well as redistribute copies of the Font under the same conditions you not price If you you can charge for this service Copying &Distribution You may copy and distribute verbatim copies of this Font in any without provided that you retain this license including modifying reordering converting changing font or adding deleting some characters in from glyph and copy and distribute such modifications under the terms of Section provided that the following conditions are such as by offering access to copy the modifications from a designated or distributing the modifications on a medium customarily used for software interchange c If the modified fonts normally reads commands interactively when you must cause it
Definition: ARPHICPL.TXT:36
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
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