Symphony Of Empires
|
Grouping to keep widgets together without triggering events. More...
#include <group.hpp>
Public Member Functions | |
Group (int x, int y, unsigned w, unsigned h, Widget *parent=nullptr) | |
Group (int x, int y, Widget *parent=nullptr) | |
virtual | ~Group () override |
virtual void | on_render (Context &ctx, Eng3D::Rect viewport) override |
Public Member Functions inherited from UI::Widget | |
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 | 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 |
Additional Inherited Members | |
Public Attributes inherited from UI::Widget | |
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 inherited from UI::Widget | |
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 inherited from UI::Widget | |
bool | clickable_effect = true |
Grouping to keep widgets together without triggering events.
Doesn't capture mouse on mouse events The width and height are meaningless for this widget Doesn't do any cropping of child widgets if they are outside it's bounds
Group::Group | ( | int | x, |
int | y, | ||
unsigned | w, | ||
unsigned | h, | ||
Widget * | parent = nullptr |
||
) |
|
overridevirtual |
Reimplemented from UI::Widget.