Symphony Of Empires
|
The master widget all the other widgets inherit from, do not use directly instead use one of the many derivated widgets - unless you're making a new widget type. More...
#include <widget.hpp>
Public Member Functions | |
Widget ()=default | |
Widget (Widget *parent, int x, int y, unsigned w, unsigned h, WidgetType type) | |
Widget (Widget *parent, int x, int y, unsigned w, unsigned h, WidgetType type, std::shared_ptr< Eng3D::Texture > tex) | |
Widget (const Widget &)=default | |
Widget (Widget &&) noexcept=default | |
Widget & | operator= (Widget &) noexcept=default |
Widget & | operator= (const Widget &)=default |
virtual | ~Widget () |
constexpr void | move_by (const glm::ivec2 offset) |
Moves a widget by x and y. More... | |
void | add_child (UI::Widget &child) |
Adds a children to the widget. More... | |
template<typename T , typename ... Targs> | |
T & | make_widget (Targs &&...args) |
virtual void | on_render (Context &, Eng3D::Rect viewport) |
virtual void | set_text (const std::string &text) |
Generates text for the widget and overrides the current text texture. More... | |
virtual void | set_tooltip (UI::Tooltip *tooltip) |
Set the tooltip to be shown when this widget is hovered, overrides the previous tooltip. More... | |
virtual void | set_tooltip (const std::string &text) |
Set the tooltip to be shown when this widget is hovered, but generate it from a string instead of taking an already existing widget. More... | |
virtual void | set_tooltip (std::function< std::string()> tooltip_text_creator) |
Set the tooltip to be shown when this widget is hovered, but generate when used needed. It is created from a string instead of taking an already existing widget. More... | |
glm::ivec2 | get_y_bounds () const |
Obtains the height of the top and bottom overflow in widget That is the space that the children of this widget take up but cannot be seen. More... | |
void | scroll (int y) |
Scrolls all the children of this widget by a factor of y. More... | |
constexpr void | set_y (int _y) |
constexpr void | above_of (const UI::Widget &rhs) |
constexpr void | below_of (const UI::Widget &rhs) |
constexpr void | left_side_of (const UI::Widget &rhs) |
constexpr void | right_side_of (const UI::Widget &rhs) |
virtual void | set_on_click (std::function< void(UI::Widget &)> _on_click) |
Sets the on_click function of this widget. More... | |
virtual void | set_on_each_tick (std::function< void(UI::Widget &)> _on_each_tick) |
Sets the on_each_tick function of this widget. More... | |
virtual void | set_on_drag (std::function< void(glm::ivec2, glm::ivec2)> _on_drag) |
template<typename F > | |
void | sort_children (F &&comp) |
Sort the children of this widget. More... | |
void | kill () |
Kills the current widget, setting it up for deletion when dead widgets are cleared by the UI context. More... | |
void | kill_children () |
size_t | max_height () const |
Public Attributes | |
bool | is_pinned = false |
bool | is_render = true |
bool | is_scroll = false |
uint32_t | is_hover = 0 |
bool | is_float = false |
bool | is_fullscreen = false |
bool | is_transparent = false |
bool | managed = true |
UI::Widget * | parent = nullptr |
std::vector< std::unique_ptr< UI::Widget > > | children |
bool | have_shadow = false |
UI::Origin | origin = UI::Origin::UPPER_LEFT |
UI::WidgetType | type |
int | x = 0 |
int | y = 0 |
glm::ivec2 | padding { 0 } |
size_t | width = 0 |
size_t | height = 0 |
std::shared_ptr< Eng3D::Texture > | current_texture |
std::shared_ptr< Eng3D::Texture > | text_texture |
int | text_offset_x = 4 |
int | text_offset_y = 4 |
UI::Align | text_align_y = UI::Align::START |
UI::Align | text_align_x = UI::Align::START |
Eng3D::Color | text_color = Eng3D::Color(0.f, 0.f, 0.f) |
std::shared_ptr< Eng3D::TrueType::Font > | font |
UI::Border | border |
Eng3D::Color | background_color = Eng3D::Color(1.f, 1.f, 1.f, 0.f) |
UI::Flex | flex = UI::Flex::NONE |
UI::FlexJustify | flex_justify = UI::FlexJustify::START |
UI::Align | flex_align = UI::Align::START |
UI::Overflow | overflow = UI::Overflow::CLAMP |
size_t | flex_gap = 0 |
UI::Tooltip * | tooltip = nullptr |
std::function< UI::Tooltip *()> | tooltip_creator |
void * | user_data = nullptr |
std::function< void(glm::ivec2 mouse_pos, glm::ivec2 mouse_delta)> | on_drag |
std::function< void(UI::Widget &)> | on_update |
std::function< void(UI::Widget &)> | on_click |
std::function< void(UI::Widget &)> | on_click_outside |
std::function< void(UI::Widget &)> | on_each_tick |
std::function< void(UI::Widget &, int i)> | on_pos_recalc |
std::function< void(UI::Widget &, glm::ivec2 mouse_pos, glm::ivec2 widget_pos)> | on_hover |
int | lua_on_update = 0 |
int | lua_on_click = 0 |
int | lua_on_click_outside = 0 |
int | lua_on_each_tick = 0 |
int | dpad_index = 0 |
Index for select_dpad_ui_widget , 0 means index=Auto (first to last) More... | |
int | scrolled_y = 0 |
Total amount of scroll. More... | |
Protected Member Functions | |
void | draw_rectangle (int x, int y, unsigned w, unsigned h, Eng3D::Rect viewport, const Eng3D::Texture *tex) |
void | draw_rect (const Eng3D::Texture *tex, Eng3D::Rect rect_pos, Eng3D::Rect rect_tex, Eng3D::Rect viewport) |
Protected Attributes | |
bool | clickable_effect = true |
Friends | |
class | Context |
The master widget all the other widgets inherit from, do not use directly instead use one of the many derivated widgets - unless you're making a new widget type.
Definition at line 176 of file widget.hpp.
|
default |
Widget::Widget | ( | Widget * | parent, |
int | x, | ||
int | y, | ||
unsigned | w, | ||
unsigned | h, | ||
WidgetType | type | ||
) |
Widget::Widget | ( | Widget * | parent, |
int | x, | ||
int | y, | ||
unsigned | w, | ||
unsigned | h, | ||
WidgetType | type, | ||
std::shared_ptr< Eng3D::Texture > | tex | ||
) |
|
default |
|
defaultnoexcept |
|
virtual |
Definition at line 83 of file widget.cpp.
|
inlineconstexpr |
Definition at line 242 of file widget.hpp.
void Widget::add_child | ( | UI::Widget & | child | ) |
Adds a children to the widget.
child | Widget to add as a children |
Definition at line 427 of file widget.cpp.
|
inlineconstexpr |
|
protected |
Definition at line 90 of file widget.cpp.
|
protected |
Definition at line 221 of file widget.cpp.
glm::ivec2 UI::Widget::get_y_bounds | ( | ) | const |
Obtains the height of the top and bottom overflow in widget That is the space that the children of this widget take up but cannot be seen.
Definition at line 483 of file widget.cpp.
|
inline |
Kills the current widget, setting it up for deletion when dead widgets are cleared by the UI context.
Definition at line 283 of file widget.hpp.
|
inline |
|
inlineconstexpr |
Definition at line 250 of file widget.hpp.
|
inline |
|
inline |
|
inlineconstexpr |
Moves a widget by x and y.
offset | Offset to move by |
Definition at line 214 of file widget.hpp.
|
virtual |
Reimplemented in UI::ProgressBar, UI::WaffleChart, UI::PieChart, UI::Group, UI::Chart, UI::CandleChart, UI::BarChart, and UI::Text.
Definition at line 229 of file widget.cpp.
|
inlineconstexpr |
void UI::Widget::scroll | ( | int | _y | ) |
Scrolls all the children of this widget by a factor of y.
y | Factor to scroll by |
Definition at line 497 of file widget.cpp.
|
inlinevirtual |
Sets the on_click function of this widget.
Definition at line 259 of file widget.hpp.
|
inlinevirtual |
|
inlinevirtual |
Sets the on_each_tick function of this widget.
Definition at line 264 of file widget.hpp.
|
virtual |
Generates text for the widget and overrides the current text texture.
_text |
Reimplemented in UI::Tooltip, UI::Text, UI::Checkbox, and UI::Label.
Definition at line 445 of file widget.cpp.
|
virtual |
Set the tooltip to be shown when this widget is hovered, but generate it from a string instead of taking an already existing widget.
text | Text for the new tooltip |
Definition at line 466 of file widget.cpp.
|
virtual |
Set the tooltip to be shown when this widget is hovered, but generate when used needed. It is created from a string instead of taking an already existing widget.
_tooltip_text_creator | the function that creates the text for the tooltip |
Definition at line 474 of file widget.cpp.
|
virtual |
Set the tooltip to be shown when this widget is hovered, overrides the previous tooltip.
_tooltip | New tooltip to set |
Definition at line 458 of file widget.cpp.
|
inlineconstexpr |
Definition at line 236 of file widget.hpp.
|
inline |
Sort the children of this widget.
F | lambda function type |
comp | Comparison function |
Definition at line 276 of file widget.hpp.
|
friend |
Definition at line 367 of file widget.hpp.
Eng3D::Color UI::Widget::background_color = Eng3D::Color(1.f, 1.f, 1.f, 0.f) |
Definition at line 335 of file widget.hpp.
UI::Border UI::Widget::border |
Definition at line 334 of file widget.hpp.
std::vector<std::unique_ptr<UI::Widget> > UI::Widget::children |
Definition at line 315 of file widget.hpp.
|
protected |
Definition at line 199 of file widget.hpp.
std::shared_ptr<Eng3D::Texture> UI::Widget::current_texture |
Definition at line 327 of file widget.hpp.
int UI::Widget::dpad_index = 0 |
Index for select_dpad_ui_widget
, 0 means index=Auto (first to last)
Definition at line 362 of file widget.hpp.
UI::Flex UI::Widget::flex = UI::Flex::NONE |
Definition at line 337 of file widget.hpp.
UI::Align UI::Widget::flex_align = UI::Align::START |
Definition at line 339 of file widget.hpp.
size_t UI::Widget::flex_gap = 0 |
Definition at line 341 of file widget.hpp.
UI::FlexJustify UI::Widget::flex_justify = UI::FlexJustify::START |
Definition at line 338 of file widget.hpp.
std::shared_ptr<Eng3D::TrueType::Font> UI::Widget::font |
Definition at line 333 of file widget.hpp.
bool UI::Widget::have_shadow = false |
Definition at line 317 of file widget.hpp.
size_t UI::Widget::height = 0 |
Definition at line 325 of file widget.hpp.
bool UI::Widget::is_float = false |
Definition at line 309 of file widget.hpp.
bool UI::Widget::is_fullscreen = false |
Definition at line 310 of file widget.hpp.
uint32_t UI::Widget::is_hover = 0 |
Definition at line 308 of file widget.hpp.
bool UI::Widget::is_pinned = false |
Definition at line 302 of file widget.hpp.
bool UI::Widget::is_render = true |
Definition at line 303 of file widget.hpp.
bool UI::Widget::is_scroll = false |
Definition at line 306 of file widget.hpp.
bool UI::Widget::is_transparent = false |
Definition at line 311 of file widget.hpp.
int UI::Widget::lua_on_click = 0 |
Definition at line 359 of file widget.hpp.
int UI::Widget::lua_on_click_outside = 0 |
Definition at line 359 of file widget.hpp.
int UI::Widget::lua_on_each_tick = 0 |
Definition at line 359 of file widget.hpp.
int UI::Widget::lua_on_update = 0 |
Definition at line 359 of file widget.hpp.
bool UI::Widget::managed = true |
Definition at line 312 of file widget.hpp.
std::function<void(UI::Widget&)> UI::Widget::on_click |
Definition at line 350 of file widget.hpp.
std::function<void(UI::Widget&)> UI::Widget::on_click_outside |
Definition at line 351 of file widget.hpp.
std::function<void(glm::ivec2 mouse_pos, glm::ivec2 mouse_delta)> UI::Widget::on_drag |
Definition at line 348 of file widget.hpp.
std::function<void(UI::Widget&)> UI::Widget::on_each_tick |
Definition at line 352 of file widget.hpp.
std::function<void(UI::Widget&, glm::ivec2 mouse_pos, glm::ivec2 widget_pos)> UI::Widget::on_hover |
Definition at line 354 of file widget.hpp.
std::function<void(UI::Widget&, int i)> UI::Widget::on_pos_recalc |
Definition at line 353 of file widget.hpp.
std::function<void(UI::Widget&)> UI::Widget::on_update |
Definition at line 349 of file widget.hpp.
UI::Origin UI::Widget::origin = UI::Origin::UPPER_LEFT |
Definition at line 318 of file widget.hpp.
UI::Overflow UI::Widget::overflow = UI::Overflow::CLAMP |
Definition at line 340 of file widget.hpp.
glm::ivec2 UI::Widget::padding { 0 } |
Definition at line 323 of file widget.hpp.
UI::Widget* UI::Widget::parent = nullptr |
Definition at line 314 of file widget.hpp.
int UI::Widget::scrolled_y = 0 |
Total amount of scroll.
Definition at line 365 of file widget.hpp.
UI::Align UI::Widget::text_align_x = UI::Align::START |
Definition at line 331 of file widget.hpp.
UI::Align UI::Widget::text_align_y = UI::Align::START |
Definition at line 330 of file widget.hpp.
Eng3D::Color UI::Widget::text_color = Eng3D::Color(0.f, 0.f, 0.f) |
Definition at line 332 of file widget.hpp.
int UI::Widget::text_offset_x = 4 |
Definition at line 329 of file widget.hpp.
int UI::Widget::text_offset_y = 4 |
Definition at line 329 of file widget.hpp.
std::shared_ptr<Eng3D::Texture> UI::Widget::text_texture |
Definition at line 328 of file widget.hpp.
UI::Tooltip* UI::Widget::tooltip = nullptr |
Definition at line 343 of file widget.hpp.
std::function<UI::Tooltip*()> UI::Widget::tooltip_creator |
Definition at line 344 of file widget.hpp.
UI::WidgetType UI::Widget::type |
Definition at line 320 of file widget.hpp.
void* UI::Widget::user_data = nullptr |
Definition at line 346 of file widget.hpp.
size_t UI::Widget::width = 0 |
Definition at line 325 of file widget.hpp.
int UI::Widget::x = 0 |
Definition at line 322 of file widget.hpp.
int UI::Widget::y = 0 |
Definition at line 322 of file widget.hpp.