![]() |
Blamite Game Engine - blam!
00406.12.10.23.1457.blamite
The core library for the Blamite Game Engine.
|
Base class for a UI widget. More...
#include <ui.h>
Public Member Functions | |
BlamUIWidget (BlamWidgetType type) | |
Constructs a new UI widget. More... | |
BlamUIWidget (BlamWidgetType type, BlamUIWidget_Group *_parent) | |
Constructs a new UI widget. More... | |
virtual | ~BlamUIWidget () |
virtual void | Draw () |
Draws the widget on-screen. More... | |
virtual void | ShowImGuiPropertyEditor () |
Displays an ImGUI-based property editor. More... | |
virtual void | UpdateMetrics () |
Updates metrics for the widget. More... | |
BlamWidgetType | GetType () |
Retrieves the type of this widget. More... | |
virtual void | RefreshRelativePosition () |
Updates the relative position of the widget, relative to its parent. More... | |
void | RefreshRelativePosition (int viewport_width, int viewport_height, BlamVector2 initial_position) |
Updates the relative position of the widget. More... | |
void | SetSize (BlamVector2 new_size) |
Sets the size of the widget. More... | |
virtual void | SetPosition (BlamVector2 new_position) |
Sets the position of the widget. More... | |
void | SetRotation (float new_rotation) |
Sets the rotation of the widget. More... | |
void | SetAnchorPosition (BlamWidgetAnchor new_anchor_position) |
Sets the anchor position of the widget. More... | |
void | MarkForUpdate () |
Marks the widget as needing to be updated on the next draw call. More... | |
BlamVector2 | GetAbsolutePosition () |
Retrieves the absolute position of the widget. More... | |
BlamWidgetAnchor | GetAnchorPosition () |
Retrieves the anchor position of the widget. More... | |
virtual void | SetHidden (bool new_hidden) |
Sets the hidden state of the widget. More... | |
bool | IsHidden () |
Checks whether or not the widget is hidden. More... | |
Public Attributes | |
std::string | display_name = "unnamed" |
The display name of the widget. More... | |
std::string | description = "" |
An optional description of the widget. More... | |
BlamVector2 | position = { 0, 0 } |
The position of the widget, relative to its parent. More... | |
BlamVector2 | size = { 100, 100 } |
The size of the widget, relative to its parent. More... | |
float | rotation = 0.0f |
The rotation of the widget, in degrees. More... | |
int | z_index = 0 |
The Z index of the widget, where higher Z orders are drawn on top. More... | |
float | z_size = 1.0f |
The Z size of the widget. Mostly unused. More... | |
bool | auto_update = false |
Whether or not the widget should always update every frame. More... | |
Ogre::HlmsDatablock * | material = nullptr |
The datablock used by the widget, if applicable. More... | |
BlamUIWidget_Group * | parent = nullptr |
The parent group of this widget, if applicable. More... | |
bool | ignore_layout = false |
Whether or not this widget should ignore any layout positioning. More... | |
bool | hide_in_layout = false |
Whether or not this widget should be hidden within its layout. More... | |
bool | ignore_scale_factor = false |
Whether or not this widget should ignore the UI scale factor settings. More... | |
Protected Member Functions | |
int | GetAdjustedZIndex () |
Retrieves the adjusted Z-index of the widget. More... | |
Protected Attributes | |
BlamVector2 | position_absolute = { 0, 0 } |
The absolute position of the widget on-screen. More... | |
BlamVector2 | size_absolute = { 100, 100 } |
The absolute size of the widget on-screen. More... | |
bool | update = false |
Whether or not the widget needs to be updated before the next draw call. More... | |
bool | hidden = false |
Whether or not the widget is hidden. More... | |
Base class for a UI widget.
UI widgets allow for interactive and non-interactive elements to be displayed to the user, in 2D space.
BlamUIWidget::BlamUIWidget | ( | BlamWidgetType | type | ) |
Constructs a new UI widget.
type | - The type of the new widget. |
BlamUIWidget::BlamUIWidget | ( | BlamWidgetType | type, |
BlamUIWidget_Group * | _parent | ||
) |
Constructs a new UI widget.
type | - The type of the new widget. |
_parent | - The parent group of this widget. |
|
inlinevirtual |
|
inlinevirtual |
Draws the widget on-screen.
Reimplemented in BlamUIWidget_Text, BlamUIWidget_2DPrimitive, BlamUIWidget_VLayoutGroup, BlamUIWidget_Group, BlamUIWidget_DebugMenu, BlamUIWidget_Console, BlamUIWidget_DebugMenu_Item, BlamUIWidget_UserIDCypher, BlamUIWidget_CoordinatesDisplay, and BlamUIWidget_FramerateDisplay.
BlamVector2 BlamUIWidget::GetAbsolutePosition | ( | ) |
Retrieves the absolute position of the widget.
|
protected |
Retrieves the adjusted Z-index of the widget.
This method converts the widget's Z-index property to the appropriate Z-depth for OGRE internal use. When changing the Z-index on a widget, the z_index property should be used instead.
BlamWidgetAnchor BlamUIWidget::GetAnchorPosition | ( | ) |
Retrieves the anchor position of the widget.
BlamWidgetType BlamUIWidget::GetType | ( | ) |
Retrieves the type of this widget.
bool BlamUIWidget::IsHidden | ( | ) |
Checks whether or not the widget is hidden.
true
if the widget is hidden, otherwise returns false
. void BlamUIWidget::MarkForUpdate | ( | ) |
Marks the widget as needing to be updated on the next draw call.
|
virtual |
Updates the relative position of the widget, relative to its parent.
If the widget has no parent, then it will refresh relative to the viewport instead.
Reimplemented in BlamUIWidget_VLayoutGroup, BlamUIWidget_Group, BlamUIWidget_DebugMenu, BlamUIWidget_Console, BlamUIWidget_UserIDCypher, BlamUIWidget_CoordinatesDisplay, and BlamUIWidget_FramerateDisplay.
void BlamUIWidget::RefreshRelativePosition | ( | int | viewport_width, |
int | viewport_height, | ||
BlamVector2 | initial_position | ||
) |
Updates the relative position of the widget.
viewport_width | - The width of the parent widget. |
viewport_height | - The height of the parent widget. |
initial_position | - The absolute position of the parent widget. |
void BlamUIWidget::SetAnchorPosition | ( | BlamWidgetAnchor | new_anchor_position | ) |
Sets the anchor position of the widget.
new_anchor_position | - The new anchor position of the widget. |
|
virtual |
Sets the hidden state of the widget.
new_hidden | - Whether or not the widget should be hidden. |
Reimplemented in BlamUIWidget_Text, BlamUIWidget_2DPrimitive, BlamUIWidget_Group, BlamUIWidget_DebugMenu, BlamUIWidget_DebugMenu_Item, and BlamUIWidget_CrashScreen.
|
virtual |
Sets the position of the widget.
new_position | - The new position of the widget. |
Reimplemented in BlamUIWidget_DebugMenu_Item.
void BlamUIWidget::SetRotation | ( | float | new_rotation | ) |
Sets the rotation of the widget.
new_rotation | - The new rotation of the widget. |
void BlamUIWidget::SetSize | ( | BlamVector2 | new_size | ) |
Sets the size of the widget.
new_size | - The new size of the widget. |
|
virtual |
Displays an ImGUI-based property editor.
Used in conjunction with the UI Editor window.
Reimplemented in BlamUIWidget_Text, BlamUIWidget_BasicTriangle, BlamUIWidget_BasicLine, BlamUIWidget_BasicEllipse, BlamUIWidget_BasicRectangle, BlamUIWidget_2DPrimitive, BlamUIWidget_VLayoutGroup, BlamUIWidget_Group, BlamUIWidget_DebugMenu, BlamUIWidget_Console, BlamUIWidget_DebugMenu_Item, BlamUIWidget_UserIDCypher, BlamUIWidget_CoordinatesDisplay, and BlamUIWidget_FramerateDisplay.
|
inlinevirtual |
Updates metrics for the widget.
The term "metrics" as used in this method is generally up to an individual widget class to decide. However, in most cases, it will include position, size, rotation, and color.
Reimplemented in BlamUIWidget_Text, BlamUIWidget_2DPrimitive, BlamUIWidget_Group, BlamUIWidget_DebugMenu, BlamUIWidget_Console, BlamUIWidget_DebugMenu_Item, BlamUIWidget_UserIDCypher, BlamUIWidget_CoordinatesDisplay, and BlamUIWidget_FramerateDisplay.
bool BlamUIWidget::auto_update = false |
Whether or not the widget should always update every frame.
std::string BlamUIWidget::description = "" |
An optional description of the widget.
std::string BlamUIWidget::display_name = "unnamed" |
The display name of the widget.
|
protected |
Whether or not the widget is hidden.
bool BlamUIWidget::hide_in_layout = false |
Whether or not this widget should be hidden within its layout.
bool BlamUIWidget::ignore_layout = false |
Whether or not this widget should ignore any layout positioning.
bool BlamUIWidget::ignore_scale_factor = false |
Whether or not this widget should ignore the UI scale factor settings.
Ogre::HlmsDatablock* BlamUIWidget::material = nullptr |
The datablock used by the widget, if applicable.
BlamUIWidget_Group* BlamUIWidget::parent = nullptr |
The parent group of this widget, if applicable.
BlamVector2 BlamUIWidget::position = { 0, 0 } |
The position of the widget, relative to its parent.
|
protected |
The absolute position of the widget on-screen.
float BlamUIWidget::rotation = 0.0f |
The rotation of the widget, in degrees.
BlamVector2 BlamUIWidget::size = { 100, 100 } |
The size of the widget, relative to its parent.
|
protected |
The absolute size of the widget on-screen.
|
protected |
Whether or not the widget needs to be updated before the next draw call.
int BlamUIWidget::z_index = 0 |
The Z index of the widget, where higher Z orders are drawn on top.
float BlamUIWidget::z_size = 1.0f |
The Z size of the widget. Mostly unused.