Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.blamite
The core library for the Blamite Game Engine.
ui.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <Strings/components/resources/color/BlamColor.h>
5 #include <OGRE/Overlay/OgreTextAreaOverlayElement.h>
6 #include <OGRE/Overlay/OgreOverlayContainer.h>
7 #include <OGRE/Overlay/OgrePanelOverlayElement.h>
8 #include <OGRE/Overlay/OgreOverlay.h>
9 #include <OGRE/OgreManualObject2.h>
10 #include <OGRE/OgreSceneManager.h>
11 #include <vector>
12 #include <string>
13 
17 
18 #ifndef BLAM
19 #define BLAM
20 #endif
21 
22 class BlamUIWidget_Group;
25 
27 {
28  class BlamUIEditor;
29 }
30 
37 {
38  TopCenter,
39  Center,
40  BottomCenter,
41 
42  TopLeft,
43  CenterLeft,
44  BottomLeft,
45 
46  TopRight,
47  CenterRight,
48  BottomRight,
49 
50  TopFill,
51  LeftFill,
52  RightFill,
53  BottomFill,
54  Fill
55 };
56 
60 enum class BlamWidgetType
61 {
64  Basic_Line,
66  Text,
67  Group,
70 
71  Console,
72  UIDCypher,
75  DebugMenu,
77  CrashScreen,
78 
80 };
81 
83 {
84 private:
87 
88  void ShowAnchorChangeButton(BlamWidgetAnchor new_anchor, int height_mul, int width_mul, bool text_multiline);
89 
90 protected:
91  BlamVector2 position_absolute = { 0, 0 };
92  BlamVector2 size_absolute = { 100, 100 };
93  bool update = false;
94  bool hidden = false;
95 
96  int GetAdjustedZIndex();
97 
98 public:
99  std::string display_name = "unnamed";
100  std::string description = "";
101 
102  BlamVector2 position = { 0, 0 };
103  BlamVector2 size = { 100, 100 };
104  float rotation = 0.0f;
105 
106  int z_index = 0;
107  float z_size = 1.0f;
108  bool auto_update = false;
109 
110  Ogre::HlmsDatablock* material = nullptr;
112  bool ignore_layout = false;
113  bool hide_in_layout = false;
114 
117  virtual ~BlamUIWidget() {};
118 
119  virtual void Draw() {};
120  virtual void ShowImGuiPropertyEditor();
121  virtual void UpdateMetrics() {};
122 
124 
125  virtual void RefreshRelativePosition();
126  void RefreshRelativePosition(int viewport_width, int viewport_height, BlamVector2 initial_position);
127 
128  void SetSize(BlamVector2 new_size);
129  virtual void SetPosition(BlamVector2 new_position);
130  void SetRotation(float new_rotation);
131  void SetAnchorPosition(BlamWidgetAnchor new_anchor_position);
132 
133  void MarkForUpdate();
134  BlamVector2 GetAbsolutePosition();
136 
137  virtual void SetHidden(bool new_hidden);
138  bool IsHidden();
139 };
140 
142 {
143 private:
144  BlamUIWidget_BasicRectangle* bounds_border = nullptr;
145  Blam::DebugUI::Windows::BlamUIEditor* editor_window = nullptr;
146 
147 public:
148  std::vector<BlamUIWidget*> children = std::vector<BlamUIWidget*>();
149  bool show_bounds = false;
150 
154 
155  void Draw() override;
156  void ShowImGuiPropertyEditor() override;
157  void RefreshRelativePosition() override;
158  void UpdateMetrics() override;
159  void SetHidden(bool new_hidden) override;
160 
161  void ShowImGuiEditorWindow();
162 
163  void ClearChildren();
164 };
165 
167 {
168 private:
169  int cached_child_count = 0;
170 
171 public:
172  BlamVector4 padding = { 0, 0, 0, 0 }; // top,right,bottom,left
173  int item_spacing = 0;
174  bool auto_height = false;
175 
178 
179  void Draw() override;
180  void ShowImGuiPropertyEditor() override;
181  void RefreshRelativePosition() override;
182 };
183 
185 {
186 private:
187  bool last_hide_state = false;
188  Ogre::ManualObject* manual_object = nullptr;
189  Ogre::SceneNode* node = nullptr;
190  Ogre::HlmsUnlitDatablock* datablock = nullptr;
191  bool needs_regen = true;
192 
193  void GenerateManualObject();
194 
195 public:
196  BlamColor color = BlamColor(255, 255, 255);
197  bool solid = true;
198  int thickness = 1;
199 
202 
203  void Draw() override;
204  void ShowImGuiPropertyEditor() override;
205  void UpdateMetrics() override;
206  void SetHidden(bool new_hidden) override;
207 };
208 
210 {
211 private:
212  bool last_hide_state = false;
213  Ogre::ManualObject* manual_object = nullptr;
214  Ogre::SceneNode* node = nullptr;
215  Ogre::HlmsUnlitDatablock* datablock = nullptr;
216  bool needs_regen = true;
217 
218  void GenerateManualObject();
219 
220 public:
221  BlamColor color = BlamColor(255, 255, 255);
222  int thickness = 1;
223  int resolution = 10;
224  BlamVector2 radius = { 10, 10 };
225  bool solid = false;
226 
229 
230  void Draw() override;
231  void ShowImGuiPropertyEditor() override;
232  void UpdateMetrics() override;
233  void SetHidden(bool new_hidden) override;
234 };
235 
237 {
238 private:
239  bool last_hide_state = false;
240  Ogre::ManualObject* manual_object = nullptr;
241  Ogre::SceneNode* node = nullptr;
242  Ogre::HlmsUnlitDatablock* datablock = nullptr;
243  bool needs_regen = true;
244 
245  void GenerateManualObject();
246 
247 public:
248  BlamColor color = BlamColor(255, 255, 255);
249  int thickness = 1;
250 
251  BlamVector2 start = { 0, 0 };
252  BlamVector2 end = { 0, 0 };
253 
256 
257  void Draw() override;
258  void ShowImGuiPropertyEditor() override;
259  void UpdateMetrics() override;
260  void SetHidden(bool new_hidden) override;
261 };
262 
264 {
265 private:
266  bool last_hide_state = false;
267  Ogre::ManualObject* manual_object = nullptr;
268  Ogre::SceneNode* node = nullptr;
269  Ogre::HlmsUnlitDatablock* datablock = nullptr;
270  bool needs_regen = true;
271 
272  void GenerateManualObject();
273 
274 public:
275  BlamColor color = BlamColor(255, 255, 255);
276  int thickness = 1;
277  bool solid = false;
278 
279  bool use_custom_points = false;
280  BlamVector2 point_x = { 0, 0 };
281  BlamVector2 point_y = { 0, 0 };
282  BlamVector2 point_z = { 0, 0 };
283 
286 
287  void Draw() override;
288  void ShowImGuiPropertyEditor() override;
289  void UpdateMetrics() override;
290  void SetHidden(bool new_hidden) override;
291 };
292 
294 {
295 private:
296  Ogre::v1::TextAreaOverlayElement* text_element = nullptr;
297  Ogre::v1::TextAreaOverlayElement* text_element_shadow = nullptr;
298  Ogre::v1::Overlay* container = nullptr;
299  Ogre::v1::PanelOverlayElement* panel = nullptr;
300 
301  Ogre::SceneNode* node = nullptr;
302  Ogre::ManualObject* manual_object = nullptr;
303 
304  std::string previous_text = "";
305  bool last_hide_state = false;
306  BlamColor last_color = BlamColor(255, 255, 255);
307  BlamColor last_shadow_color = BlamColor(0, 0, 0);
308 
309  bool new_render_method = false;
310 
311  std::vector<Ogre::HlmsDatablock*> datablocks = std::vector<Ogre::HlmsDatablock*>();
312  std::vector<Ogre::HlmsDatablock*> shadow_datablocks = std::vector<Ogre::HlmsDatablock*>();
313  bool needs_new_datablocks = true;
314 
315  void ReleaseOldDatablocks();
316  void GenerateManualObject();
317  void GenerateManualObjectSection(bool is_shadow);
318 
319 public:
320  bool auto_scale_shadow = true;
322  BlamVector2 shadow_offset = { 1, 1 };
323  BlamColor color = BlamColor(255, 255, 255);
324  BlamColor shadow_color = BlamColor(0, 0, 0);
325  std::string font_name = "fixedsys";
327  std::string text = "blam!";
328 
329  BlamUIWidget_Text(BlamUIWidget_Group* _parent, bool _new_render_method = true);
331 
332  void Draw() override;
333  void ShowImGuiPropertyEditor() override;
334  void UpdateMetrics() override;
335  void SetHidden(bool new_hidden) override;
336 
337  void RebuildTextObject();
338  void RebuildDatablocks();
339 };
340 
344 namespace Blam::UI
345 {
346  BLAM bool Initialize();
347  BLAM void Render();
348  BLAM void Shutdown();
349 
351 
352  BLAM std::string GetWidgetAnchorLabel(BlamWidgetAnchor anchor_position);
353 
354  BLAM bool LoadFromCUIScreenTag(std::string tag_path, cui_screen* cusc_tag);
355 
357 }
BlamUIWidget_Group::RefreshRelativePosition
void RefreshRelativePosition() override
Definition: group.cpp:140
BlamUIWidget_BasicLine::thickness
int thickness
Definition: ui.h:249
BlamUIWidget::hidden
bool hidden
Definition: ui.h:94
ui.h
BlamUIWidget_BasicLine::end
BlamVector2 end
Definition: ui.h:252
BlamWidgetType::DebugMenu
@ DebugMenu
Special widget. Used for the in-game debug menu.
BlamUIWidget_BasicRectangle::SetHidden
void SetHidden(bool new_hidden) override
Definition: rectangle.cpp:227
BlamWidgetAnchor::BottomFill
@ BottomFill
The widget will fill the bottom of the screen, while height is left unchanged.
BlamUIWidget_BasicEllipse::thickness
int thickness
Definition: ui.h:222
BlamUIWidget_Text::BlamUIWidget_Text
BlamUIWidget_Text(BlamUIWidget_Group *_parent, bool _new_render_method=true)
Definition: text.cpp:30
BlamUIWidget_BasicRectangle::UpdateMetrics
void UpdateMetrics() override
Definition: rectangle.cpp:182
BlamWidgetAnchor::CenterRight
@ CenterRight
The widget will be placed at the center-right of the screen.
BlamWidgetAnchor::Center
@ Center
The widget will be placed at the center of the screen.
BlamUIWidget::BlamUIWidget
BlamUIWidget(BlamWidgetType type)
Definition: BlamUIWidget.cpp:35
BlamUIWidget::update
bool update
Definition: ui.h:93
BlamUIWidget_BasicLine::SetHidden
void SetHidden(bool new_hidden) override
Definition: line.cpp:195
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:142
BlamUIWidget_VLayoutGroup::item_spacing
int item_spacing
Definition: ui.h:173
uid_cypher.h
BlamUIWidget::hide_in_layout
bool hide_in_layout
Definition: ui.h:113
BlamUIWidget_Text::font_name
std::string font_name
Definition: ui.h:325
BlamUIWidget_Text::RebuildDatablocks
void RebuildDatablocks()
Definition: text.cpp:580
BlamUIWidget_BasicTriangle
Definition: ui.h:263
BlamUIWidget_Group
Definition: ui.h:141
BlamUIWidget::position
BlamVector2 position
Definition: ui.h:102
BlamUIWidget_BasicLine::UpdateMetrics
void UpdateMetrics() override
Definition: line.cpp:150
BlamWidgetAnchor
BlamWidgetAnchor
Enumerator listing possible widget anchor positions.
Definition: ui.h:36
BlamRendering::OGRE::Materials::GetDatablockFromTag
BLAM Ogre::HlmsDatablock * GetDatablockFromTag(std::string tag_path)
Definition: materials.cpp:834
Blam::UI::GetWidgetAnchorLabel
BLAM std::string GetWidgetAnchorLabel(BlamWidgetAnchor anchor_position)
Definition: ui.cpp:79
color
BlamColor color
Typedef for a color field, used in tag definitions.
Definition: tags.h:359
ImGui::Checkbox
IMGUI_API bool Checkbox(const char *label, bool *v)
Definition: imgui_widgets.cpp:974
logger.h
BlamUIWidget_VLayoutGroup::~BlamUIWidget_VLayoutGroup
~BlamUIWidget_VLayoutGroup()
Definition: vlayout.cpp:10
Blam::UI::GetUIRoot
BLAM BlamUIWidget_Group * GetUIRoot()
Definition: ui.cpp:74
BlamRendering::GetCurrentRenderingEngine
BLAM BlamRenderingEngine GetCurrentRenderingEngine()
Retrieves the current rendering engine being used.
Definition: rendering_abstraction.cpp:104
BlamUIWidget::MarkForUpdate
void MarkForUpdate()
Definition: BlamUIWidget.cpp:354
BlamUIWidget::parent
BlamUIWidget_Group * parent
Definition: ui.h:111
BlamFontPackage
Definition: fonts.h:57
BlamUIWidget_BasicTriangle::point_x
BlamVector2 point_x
Definition: ui.h:280
BlamUIWidget::rotation
float rotation
Definition: ui.h:104
BlamUIWidget_Text::font_package
BlamFontPackage * font_package
Definition: ui.h:326
BlamUIWidget_Group::show_bounds
bool show_bounds
Definition: ui.h:149
BlamUIWidget_Text::character_height
int character_height
Definition: ui.h:321
BlamUIWidget_Text::shadow_offset
BlamVector2 shadow_offset
Definition: ui.h:322
imgui.h
BlamWidgetType::Text
@ Text
A text object, used to show text on-screen.
console.h
BlamUIWidget_BasicEllipse::resolution
int resolution
Definition: ui.h:223
BlamUIWidget_BasicTriangle::point_z
BlamVector2 point_z
Definition: ui.h:282
BlamWidgetType::Basic_Rectangle
@ Basic_Rectangle
A basic filled or outline rectangle.
OGRE
@ OGRE
Definition: rendering.h:41
BlamWidgetType::Basic_Ellipse
@ Basic_Ellipse
A basic filled or outline ellipse.
ImGui::InputText
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3068
world.h
BlamUIWidget_VLayoutGroup::padding
BlamVector4 padding
Definition: ui.h:172
BlamVersionStringDisplayMode::Console
@ Console
Indicates the build string should be formatted for the in-game console.
BlamUIWidget_Group::ShowImGuiEditorWindow
void ShowImGuiEditorWindow()
Definition: group.cpp:185
BlamWidgetAnchor::BottomLeft
@ BottomLeft
The widget will be placed at the bottom-left of the screen.
BlamWidgetType::Group_VLayout
@ Group_VLayout
A group widget which displays all items in a vertical list.
BlamUIWidget::z_size
float z_size
Definition: ui.h:107
Blam::Globals::GetGlobalAsFloat
BLAM float * GetGlobalAsFloat(std::string name)
Retrieves a global's value as a float.
Definition: globals.cpp:407
cui_screen
Definition: cui_screen.h:43
BlamUIWidget_BasicTriangle::Draw
void Draw() override
Definition: triangle.cpp:126
uint8_t
unsigned char uint8_t
Definition: stdint.h:15
BlamTagFieldType::Unspecified
@ Unspecified
Indicates that the field's type is not specified. Fields with this type should be considered invalid.
BlamUIWidget_Text::SetHidden
void SetHidden(bool new_hidden) override
Definition: text.cpp:588
BlamUIWidget_BasicRectangle::solid
bool solid
Definition: ui.h:197
BlamUIWidget_BasicLine::Draw
void Draw() override
Definition: line.cpp:89
BlamUIWidget_BasicRectangle::thickness
int thickness
Definition: ui.h:198
BlamWidgetAnchor::BottomRight
@ BottomRight
The widget will be placed at the bottom-right of the screen.
BlamUIWidget::GetAdjustedZIndex
int GetAdjustedZIndex()
Definition: BlamUIWidget.cpp:359
BlamUIWidget::GetType
BlamWidgetType GetType()
Definition: BlamUIWidget.cpp:180
imgui_stdlib.h
BlamUIWidget_Group::UpdateMetrics
void UpdateMetrics() override
Definition: group.cpp:155
BlamRendering::OGRE::Materials::GetDatablockInstanceFromTag
BLAM ogre_material_instance_data * GetDatablockInstanceFromTag(std::string tag_path, std::string referencing_tag_path)
Definition: materials.cpp:846
BlamUIWidget::size
BlamVector2 size
Definition: ui.h:103
Blam::UI::GetCrashScreenWidget
BLAM BlamUIWidget_CrashScreen * GetCrashScreenWidget()
Definition: ui.cpp:287
rendering.h
BlamWidgetAnchor::CenterLeft
@ CenterLeft
The widget will be placed at the center-left of the screen.
ImGui::DragInt
IMGUI_API bool DragInt(const char *label, int *v, float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
Definition: imgui_widgets.cpp:2209
BlamUIWidget_Group::Draw
void Draw() override
Definition: group.cpp:51
BlamUIWidget_Text::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: text.cpp:168
BlamUIWidget::Draw
virtual void Draw()
Definition: ui.h:119
ImGui::SameLine
IMGUI_API void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f)
Definition: imgui.cpp:7147
BlamWidgetAnchor::TopCenter
@ TopCenter
The widget will be placed at the top-center of the screen.
BlamUIWidget_BasicTriangle::UpdateMetrics
void UpdateMetrics() override
Definition: triangle.cpp:202
BlamUIWidget::GetAnchorPosition
BlamWidgetAnchor GetAnchorPosition()
Definition: BlamUIWidget.cpp:372
BlamWidgetAnchor::BottomCenter
@ BottomCenter
The widget will be placed at the bottom-center of the screen.
Blam::UI::LoadFromCUIScreenTag
BLAM bool LoadFromCUIScreenTag(std::string tag_path, cui_screen *cusc_tag)
Definition: ui.cpp:144
BlamRendering::BGFX::GetRenderHeight
BLAM int GetRenderHeight()
Definition: bgfx.cpp:190
BlamUIWidget::~BlamUIWidget
virtual ~BlamUIWidget()
Definition: ui.h:117
BlamUIWidget_VLayoutGroup::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: vlayout.cpp:26
BlamWidgetAnchor::RightFill
@ RightFill
The widget will fill the right of the screen, while width is left unchanged.
BlamWidgetType::UIDCypher
@ UIDCypher
Special widget. Used for the user ID cypher.
ImVec2
Definition: imgui.h:179
Blam::UI
Namespace containing functions relating to the Blamite UI system.
Definition: ui.h:344
BlamUIWidget_Group::~BlamUIWidget_Group
~BlamUIWidget_Group()
Definition: group.cpp:34
BlamUIWidget_Text::~BlamUIWidget_Text
~BlamUIWidget_Text()
Definition: text.cpp:76
ImGui::DragFloat
IMGUI_API bool DragFloat(const char *label, float *v, float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
Definition: imgui_widgets.cpp:2164
BlamUIWidget::SetPosition
virtual void SetPosition(BlamVector2 new_position)
Definition: BlamUIWidget.cpp:330
BlamUIWidget::ShowImGuiPropertyEditor
virtual void ShowImGuiPropertyEditor()
Definition: BlamUIWidget.cpp:57
cui_screen.h
BlamUIWidget_Group::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: group.cpp:98
BlamUIWidget::ignore_layout
bool ignore_layout
Definition: ui.h:112
BlamUIWidget_BasicTriangle::~BlamUIWidget_BasicTriangle
~BlamUIWidget_BasicTriangle()
Definition: triangle.cpp:101
BlamUIWidget_Text::UpdateMetrics
void UpdateMetrics() override
Definition: text.cpp:194
ImGui::DragFloat2
IMGUI_API bool DragFloat2(const char *label, float v[2], float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
Definition: imgui_widgets.cpp:2169
BlamUIWidget_Text::Draw
void Draw() override
Definition: text.cpp:115
BlamWidgetAnchor::TopLeft
@ TopLeft
The widget will be placed at the top-left of the screen.
BlamUIWidget_BasicLine::~BlamUIWidget_BasicLine
~BlamUIWidget_BasicLine()
Definition: line.cpp:64
BlamUIWidget_Group::children
std::vector< BlamUIWidget * > children
Definition: ui.h:148
BlamUIWidget_FramerateDisplay
Definition: BlamUIWidget_FramerateDisplay.h:9
BlamUIWidget::display_name
std::string display_name
Definition: ui.h:99
BlamUIWidget_BasicTriangle::thickness
int thickness
Definition: ui.h:276
BlamUIWidget_Text::color
BlamColor color
Definition: ui.h:323
BlamUIWidget::SetHidden
virtual void SetHidden(bool new_hidden)
Definition: BlamUIWidget.cpp:377
Blam::UI::Render
BLAM void Render()
Definition: ui.cpp:51
BlamUIWidget::SetSize
void SetSize(BlamVector2 new_size)
Definition: BlamUIWidget.cpp:323
BlamWidgetType::DebugMenuItem
@ DebugMenuItem
Special widget. Represents an item within the debug menu.
Blam::UI::Shutdown
BLAM void Shutdown()
Definition: ui.cpp:65
BlamWidgetAnchor::TopFill
@ TopFill
The widget will fill the top of the screen, while height is left unchanged.
ImGui::BeginCombo
IMGUI_API bool BeginCombo(const char *label, const char *preview_value, ImGuiComboFlags flags=0)
Definition: imgui_widgets.cpp:1416
BlamUIWidget::UpdateMetrics
virtual void UpdateMetrics()
Definition: ui.h:121
BlamUIWidget_FramerateDisplay.h
BlamUIWidget_VLayoutGroup::auto_height
bool auto_height
Definition: ui.h:174
BlamRendering::OGRE::GetRenderHeight
BLAM int GetRenderHeight()
Definition: ogre.cpp:375
BlamUIWidget_BasicTriangle::use_custom_points
bool use_custom_points
Definition: ui.h:279
material
Definition: material.h:53
BlamUIWidget_BasicTriangle::BlamUIWidget_BasicTriangle
BlamUIWidget_BasicTriangle(BlamUIWidget_Group *_parent)
Definition: triangle.cpp:90
BlamWidgetType::CrashScreen
@ CrashScreen
Special widget. Used for the in-game crash screen.
globals.h
BlamUIWidget_BasicEllipse::Draw
void Draw() override
Definition: ellipse.cpp:177
BlamUIWidget_VLayoutGroup::Draw
void Draw() override
Definition: vlayout.cpp:15
BlamUIWidget_BasicTriangle::solid
bool solid
Definition: ui.h:277
BlamUIWidget_BasicTriangle::SetHidden
void SetHidden(bool new_hidden) override
Definition: triangle.cpp:247
BlamUIWidget_BasicRectangle::Draw
void Draw() override
Definition: rectangle.cpp:118
BlamWidgetType::Basic_Triangle
@ Basic_Triangle
A basic filled or outline triangle.
ogre_material_instance_data::instance_datablock
Ogre::HlmsDatablock * instance_datablock
Definition: rendering.h:49
BlamUIWidget_BasicRectangle
Definition: ui.h:184
ogre_material_instance_data
Definition: rendering.h:45
Blam::DebugUI::Windows::BlamUIEditor
Class for the Blam UI Editor debug utility.
Definition: blam_ui_editor.hpp:13
BlamUIWidget_VLayoutGroup::RefreshRelativePosition
void RefreshRelativePosition() override
Definition: vlayout.cpp:48
BlamUIWidget_BasicTriangle::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: triangle.cpp:154
BlamWidgetType::Group_HLayout
@ Group_HLayout
A group widget which displays all items in a horizontal list.
BlamUIWidget
Definition: ui.h:82
BlamUIWidget_UserIDCypher
UI widget for the user ID cypher display.
Definition: uid_cypher.h:21
BLAM
#define BLAM
Definition: ui.h:19
ImGui::InputTextMultiline
IMGUI_API bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3074
BlamUIWidget_BasicEllipse::~BlamUIWidget_BasicEllipse
~BlamUIWidget_BasicEllipse()
Definition: ellipse.cpp:152
BlamUIWidget_BasicLine::BlamUIWidget_BasicLine
BlamUIWidget_BasicLine(BlamUIWidget_Group *_parent)
Definition: line.cpp:53
ImGui::EndCombo
IMGUI_API void EndCombo()
Definition: imgui_widgets.cpp:1522
BlamUIWidget_BasicEllipse::SetHidden
void SetHidden(bool new_hidden) override
Definition: ellipse.cpp:288
ui_root
BlamUIWidget_Group * ui_root
The UI root widget.
Definition: ui.cpp:12
BlamWidgetType::CoordinatesDisplay
@ CoordinatesDisplay
Special widget. Used for the coordinates display.
debug_menu.h
BlamUIWidget_DebugMenu
Definition: debug_menu.h:62
BlamUIWidget_BasicEllipse::solid
bool solid
Definition: ui.h:225
BlamWidgetAnchor::Fill
@ Fill
The widget will fill the entire screen.
BlamUIWidget_Text::text
std::string text
Definition: ui.h:327
BlamRendering::BGFX::GetRenderWidth
BLAM int GetRenderWidth()
Definition: bgfx.cpp:185
BlamUIWidget::RefreshRelativePosition
virtual void RefreshRelativePosition()
Definition: BlamUIWidget.cpp:185
BlamWidgetType::Group
@ Group
A group widget, which can be used to contain any number of other widgets.
BlamUIWidget::description
std::string description
Definition: ui.h:100
BlamUIWidget_BasicTriangle::point_y
BlamVector2 point_y
Definition: ui.h:281
draw_fail_message_shown
bool draw_fail_message_shown
Whether or not the "draw failure" message has been displayed. Used to prevent spamming the log if the...
Definition: ui.cpp:13
BlamUIWidget_Text::shadow_color
BlamColor shadow_color
Definition: ui.h:324
BlamRendering::OGRE::GetRenderWidth
BLAM int GetRenderWidth()
Definition: ogre.cpp:370
BlamUIWidget_VLayoutGroup
Definition: ui.h:166
BlamWidgetType::FramerateDisplay
@ FramerateDisplay
Special widget. Used for the framerate display.
BlamWidgetType::Basic_Line
@ Basic_Line
A basic line.
BlamUIWidget_Group::ClearChildren
void ClearChildren()
Definition: group.cpp:193
BlamUIWidget_Console
Class for the console UI widget.
Definition: console.h:48
BlamUIWidget_CrashScreen
Definition: BlamUIWidget_CrashScreen.h:5
BlamUIWidget_BasicEllipse
Definition: ui.h:209
BlamUIWidget_BasicLine::start
BlamVector2 start
Definition: ui.h:251
BlamUIWidget::IsHidden
bool IsHidden()
Definition: BlamUIWidget.cpp:382
BlamUIWidget_BasicLine
Definition: ui.h:236
BlamUIWidget::material
Ogre::HlmsDatablock * material
Definition: ui.h:110
BlamUIWidget::z_index
int z_index
Definition: ui.h:106
ImGui::Separator
IMGUI_API void Separator()
Definition: imgui_widgets.cpp:1284
BlamUIWidget_CoordinatesDisplay
Definition: BlamUIWidget_CoordinatesDisplay.h:9
BlamWidgetType
BlamWidgetType
Enumerator listing possible UI widget types.
Definition: ui.h:60
BlamUIWidget_CoordinatesDisplay.h
Blam::UI::Initialize
BLAM bool Initialize()
Definition: ui.cpp:15
Blam::DebugUI::Windows
Legacy namespace to contain data for the legacy ImGUI console.
Definition: ui.h:26
BlamUIWidget::auto_update
bool auto_update
Definition: ui.h:108
BlamUIWidget_BasicRectangle::color
BlamColor color
Definition: ui.h:196
BlamUIWidget_Group::BlamUIWidget_Group
BlamUIWidget_Group(BlamUIWidget_Group *_parent)
Definition: group.cpp:8
BlamUIWidget::position_absolute
BlamVector2 position_absolute
Definition: ui.h:91
BlamUIWidget_BasicRectangle::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: rectangle.cpp:153
fonts.h
BlamUIWidget_BasicEllipse::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: ellipse.cpp:205
BlamUIWidget_Text::RebuildTextObject
void RebuildTextObject()
Definition: text.cpp:310
BlamUIWidget_CrashScreen.h
BlamUIWidget_BasicEllipse::BlamUIWidget_BasicEllipse
BlamUIWidget_BasicEllipse(BlamUIWidget_Group *_parent)
Definition: ellipse.cpp:141
BlamUIWidget::size_absolute
BlamVector2 size_absolute
Definition: ui.h:92
BlamUIWidget_BasicEllipse::radius
BlamVector2 radius
Definition: ui.h:224
BlamUIWidget_Text::auto_scale_shadow
bool auto_scale_shadow
Definition: ui.h:320
BlamUIWidget_VLayoutGroup::BlamUIWidget_VLayoutGroup
BlamUIWidget_VLayoutGroup(BlamUIWidget_Group *_parent)
Definition: vlayout.cpp:5
BGFX
@ BGFX
Definition: rendering.h:40
BlamUIWidget_Group::SetHidden
void SetHidden(bool new_hidden) override
Definition: group.cpp:170
BlamUIWidget_BasicRectangle::BlamUIWidget_BasicRectangle
BlamUIWidget_BasicRectangle(BlamUIWidget_Group *_parent)
Definition: rectangle.cpp:15
BlamUIWidget_BasicRectangle::~BlamUIWidget_BasicRectangle
~BlamUIWidget_BasicRectangle()
Definition: rectangle.cpp:26
BlamWidgetAnchor::LeftFill
@ LeftFill
The widget will fill the left of the screen, while width is left unchanged.
BlamWidgetType::Unspecified
@ Unspecified
Indicates the widget is of an unspecified type. Will only appear when a widget is improperly construc...
ImGui::Button
IMGUI_API bool Button(const char *label, const ImVec2 &size=ImVec2(0, 0))
Definition: imgui_widgets.cpp:644
BlamWidgetAnchor::TopRight
@ TopRight
The widget will be placed at the top-right of the screen.
BlamUIWidget::GetAbsolutePosition
BlamVector2 GetAbsolutePosition()
Definition: BlamUIWidget.cpp:349
BlamUIWidget_BasicEllipse::UpdateMetrics
void UpdateMetrics() override
Definition: ellipse.cpp:243
BlamUIWidget_Text
Definition: ui.h:293
BlamUIWidget_BasicLine::ShowImGuiPropertyEditor
void ShowImGuiPropertyEditor() override
Definition: line.cpp:117
BlamUIWidget::SetAnchorPosition
void SetAnchorPosition(BlamWidgetAnchor new_anchor_position)
Definition: BlamUIWidget.cpp:343
BlamUIWidget::SetRotation
void SetRotation(float new_rotation)
Definition: BlamUIWidget.cpp:337
Blam::Globals::GetGlobalAsInteger
BLAM int * GetGlobalAsInteger(std::string name)
Retrieves a global's value as an int.
Definition: globals.cpp:395