![]() |
Lysa UI
0.0
Lysa UI —UI components for the Lysa Engine
|
Base class for all UI widgets.
Inheritance diagram for Widget:Public Types | |
| enum | Type { WIDGET, PANEL, BOX, LINE, FRAME, BUTTON, TOGGLEBUTTON, RADIOBUTTON, CHECKBOX, CHECKMARK, CROSSMARK, ARROW, TEXT, TEXTEDIT, RICHTEXTAREA, SCROLLBAR, SLIDER, COLORSLIDER, COLORWHEEL, KNOB, TREEVIEW, IMAGE, POPUP, LIST, LISTBOX, SELECTION, PROGRESSBAR, SCROLLCONTAINER, MENU, MENUPANEL, MENUBOX, TABBAR, TABCONTAINER, DIALOG, FOLDABLECONTAINER, COLORPICKER, COLORPICKERBUTTON, SPINBOX, SPINBUTTONS, ICONIMAGE, ICONSVG, DROPDOWNLIST, TOOLTIP, GRIDCELL, GRID, TABLE } |
Public Member Functions | |
| Widget (Type type=WIDGET) | |
| ~Widget () override | |
| Type | getType () const |
| bool | isVisible () const |
| void | setVisible (bool show=true) |
| bool | isEnabled () const |
| void | setEnabled (bool isEnabled=true) |
| virtual void | setPos (float x, float y) |
| float | getWidth () const |
| float | getHeight () const |
| float | getRequestedWidth () const |
| float | getRequestedHeight () const |
| virtual void | setSize (float width, float height) |
| void | setWidth (const float width) |
| void | setHeight (const float height) |
| const Rect & | getRect () const |
| void | setRect (float x, float y, float width, float height) |
| void | setRect (const Rect &rect) |
| float | getAspectRatio () const |
| Alignment | getAlignment () const |
| void | setAlignment (Alignment alignment) |
| std::shared_ptr< Font > | getFont () const |
| void | setFont (const std::shared_ptr< Font > &font) |
| float | getFontScale () const |
| virtual void | setFontScale (float fontScale) |
| bool | isFocused () const |
| Widget * | getParent () const |
| void | setOverlap (const bool overlap) |
| template<typename T , typename... Args> | |
| std::shared_ptr< T > | create (const std::string &resource, const Alignment alignment, Args &&...args) |
| template<typename T , typename... Args> | |
| std::shared_ptr< T > | create (const Alignment alignment, Args &&...args) |
| template<typename T > | |
| std::shared_ptr< T > | add (std::shared_ptr< T > child, const Alignment alignment=Alignment::NONE, const std::string &resource="", const bool overlap=false) |
| template<typename T > | |
| std::shared_ptr< T > | addPopup (std::shared_ptr< T > child, const std::string &resource="") |
| template<typename T > | |
| std::shared_ptr< T > | addAfter (std::shared_ptr< T > child, const std::shared_ptr< Widget > &after, const Alignment alignment, const std::string &resource="", const bool overlap=false) |
| virtual void | remove (const std::shared_ptr< Widget > &child) |
| virtual void | removeAll () |
| void | setPadding (float padding) |
| float | getPadding () const |
| float | getVBorder () const |
| float | getHBorder () const |
| void | setVBorder (float size) |
| void | setHBorder (float size) |
| bool | isDrawBackground () const |
| void | setDrawBackground (bool drawBackground) |
| bool | isPushed () const |
| bool | isPointed () const |
| bool | isFreezed () const |
| bool | isRedrawOnMouseEvent () const |
| bool | isOverlapping () const |
| Rect | getChildrenRect () const |
| void | setFreezed (const bool f) |
| void | setPushed (const bool p) |
| void | refresh () |
| void | setResource (std::shared_ptr< UIResource > res) |
| uint32 | getGroupIndex () const |
| void | setGroupIndex (int32 index) |
| template<typename T > | |
| T | getUserData () const |
| template<typename T > | |
| std::shared_ptr< T > | getPointerUserData () const |
| const std::any & | getUserData () const |
| void | setUserData (const std::any &data) |
| float | getTransparency () const |
| void | setTransparency (float alpha) |
| void | resizeChildren () |
| float | getChildrenOffsetX () const |
| float | getChildrenOffsetY () const |
| void | setChildrenOffset (float x, float y) |
| std::shared_ptr< Widget > | setFocus (bool focus=true) |
| virtual void | onAttach () |
| virtual void | onDetach () |
| virtual void | onShow () |
| virtual void | onHide () |
| virtual void | onResize () |
| virtual void | onMove () |
| virtual bool | onKeyDown (Key key) |
| virtual bool | onTextInput (const std::string &text) |
| virtual bool | onKeyUp (Key key) |
| virtual bool | onMouseDown (MouseButton button, float x, float y) |
| virtual bool | onMouseUp (MouseButton button, float x, float y) |
| virtual bool | onMouseMove (uint32 buttonsState, float x, float y) |
| virtual void | onMouseLeave () |
| virtual void | onDisable () |
| virtual void | onEnable () |
| virtual void | onGotFocus () |
| virtual void | onLostFocus () |
| bool | getConsumeMouseEvent () const |
| void | setConsumeMouseEvent (const bool consumeMouseEvent) |
| const std::list< std::shared_ptr< Widget > > & | getChildren () const |
| bool | hasChildren () const |
| void | subscribe (const event_type &type, unique_id id, EventHandlerCallback callback) |
| void | subscribe (const event_type &type, EventHandlerCallback callback) |
| void | unsubscribe (unique_id id) |
| bool | isAttached () const |
| Window & | getWindow () const |
| Style & | getStyle () const |
| Vector2DRenderer & | getRenderer () const |
| RenderingWindow & | getRenderingWindow () const |
| WindowManager & | getWindowManager () const |
Protected Attributes | |
| const Type | type |
| Rect | rect |
| float | requestedWidth {0} |
| float | requestedHeight {0} |
| float | hborder {0} |
| float | vborder {0} |
| float | padding {0} |
| bool | consumeMouseEvent {false} |
| bool | overlap {false} |
| bool | focused {false} |
| bool | allowFocus {false} |
| bool | allowChildren {true} |
| bool | drawBackground {true} |
| bool | moveChildrenOnPush {false} |
| bool | scrollChildren {false} |
| bool | skipInvisibleChildren {false} |
| bool | redrawOnMouseEvent {false} |
| bool | redrawOnMouseMove {false} |
| float | transparency {1.0f} |
| Widget * | parent {nullptr} |
| Alignment | alignment {Alignment::NONE} |
| std::shared_ptr< UIResource > | resource |
| std::list< std::shared_ptr< Widget > > | children |
| bool | mouseMoveOnFocus {false} |
| float | childrenOffsetX {0} |
| float | childrenOffsetY {0} |
| enum Type |
Widget type enumeration.
| Enum Values | Documentation |
|---|---|
| WIDGET | transparent widget |
| PANEL | rectangular widget with only a background |
| BOX | rectangular widget with a border and a background |
| LINE | A horizontal or vertical line |
| FRAME | A box with a title |
| BUTTON | A push button |
| TOGGLEBUTTON | A two states button |
| RADIOBUTTON | A two states button drawn with two circles |
| CHECKBOX | A two states box drawn with a check mark |
| CHECKMARK | A check mark |
| CROSSMARK | A cross mark |
| ARROW | An arrow head |
| TEXT | A single line of text |
| TEXTEDIT | An editable single line of text. |
| RICHTEXTAREA | A word-wrapped read-only text with BBCode markup |
| SCROLLBAR | A scroll bar. with min, max & pos |
| SLIDER | A value selected by dragging a grip along a track |
| COLORSLIDER | A value selected along a gradient of colors |
| COLORWHEEL | A disc selecting the hue & the saturation of a color |
| KNOB | A value selected by rotating a disc |
| TREEVIEW | Tree of Widget. |
| IMAGE | 2D Image |
| POPUP | popup panel at fixed (x, y) coordinates, drawn on top of siblings |
| LIST | A list of widgets (abstract container) |
| LISTBOX | A scrollable list with a selection highlight |
| SELECTION | |
| PROGRESSBAR | A progress bar with min, max & value |
| SCROLLCONTAINER | A scrollable container (horizontal & vertical) |
| MENU | A vertical list of text items separated in groups |
| MENUPANEL | A menu with a background panel |
| MENUBOX | A menu with a background box |
| TABBAR | A horizontal bar of tabs |
| TABCONTAINER | A container displaying one widget at a time, selected with a bar of tabs |
| DIALOG | A modal dialog box centered above its parent |
| FOLDABLECONTAINER | A container folding & unfolding its content with a clickable title bar |
| COLORPICKER | A color selector with one slider per component |
| COLORPICKERBUTTON | A button displaying a color, opening a dialog to change it |
| SPINBOX | A numeric value with two buttons incrementing & decrementing it |
| SPINBUTTONS | A column of two buttons incrementing & decrementing a value |
| ICONIMAGE | A 2D image fitted into the widget rectangle |
| ICONSVG | An SVG shape fitted into the widget rectangle |
| DROPDOWNLIST | A button displaying the selected item of a list, opening a popup list |
| TOOLTIP | A popup displaying a short help text near a position |
| GRIDCELL | A cell of a Grid |
| GRID | A grid of GridCell with resizable rows and columns and spanning cells |
| TABLE | A Grid with sortable and resizable column headers |
| Widget | ( | Type | type = WIDGET | ) |
Creates a widget of a particular type.
| type | The type of the widget. |
|
override |
|
inline |
Adds a child widget.
Children widgets will be destroyed on parent destruction.
| T | The type of the widget to add. |
| child | Child widget to add. |
| alignment | Placement alignment. |
| resource | Resource string. |
| overlap | Overlap widget on top of or under other widgets. |
|
inline |
Adds a child widget just after another child, instead of at the end.
| T | The type of the widget to add. |
| child | Child widget to add. |
| after | Child widget to add it after, nullptr to add it first. |
| alignment | Placement alignment. |
| resource | Resource string. |
| overlap | Overlap widget on top of other widgets. |
|
inline |
Adds a child popup widget.
Children widgets will be destroyed on parent destruction.
| T | The type of the widget to add. |
| child | Child widget to add. |
| resource | Resource string. |
|
inline |
Creates & adds a child widget.
| T | The type of the widget to create. |
| Args | The types of the arguments to pass to the widget constructor. |
| alignment | The alignment of the child widget. |
| args | The arguments to pass to the widget constructor. |
|
inline |
Creates & adds a child widget using a resource string.
| T | The type of the widget to create. |
| Args | The types of the arguments to pass to the widget constructor. |
| resource | The resource string defining the widget style or properties. |
| alignment | The alignment of the child widget. |
| args | The arguments to pass to the widget constructor. |
| Alignment getAlignment | ( | ) | const |
Returns the current widget placement.
| float getAspectRatio | ( | ) | const |
|
inline |
Returns the list of direct children
|
inline |
Returns the horizontal children scroll offset (subtracted from child positions).
|
inline |
Returns the vertical children scroll offset (subtracted from child positions).
| Rect getChildrenRect | ( | ) | const |
Returns the rectangle enclosing all children.
|
inline |
Returns true if the widget consumes mouse events (prevents propagation to parent).
| std::shared_ptr<Font> getFont | ( | ) | const |
Returns the current font of the widget.
| float getFontScale | ( | ) | const |
Returns the font scale.
| uint32 getGroupIndex | ( | ) | const |
Returns the user defined group index.
| float getHBorder | ( | ) | const |
Returns horizontal border size.
|
inline |
Returns the height of the widget, in pixels.
| float getPadding | ( | ) | const |
Returns current children padding.
|
inline |
Returns the parent widget, or nullptr.
|
inline |
Returns the user data.
| const Rect& getRect | ( | ) | const |
Returns the size & the position of the widget.
| Vector2DRenderer& getRenderer | ( | ) | const |
| RenderingWindow& getRenderingWindow | ( | ) | const |
|
inline |
Returns the height requested with setSize(), in pixels, before any layout adjustment, or the current height if no height was requested.
|
inline |
Returns the width requested with setSize(), in pixels, before any layout adjustment, or the current width if no width was requested.
| Style& getStyle | ( | ) | const |
|
inline |
Returns the transparency alpha value.
| Type getType | ( | ) | const |
Returns the type of the widget.
|
inline |
Returns the user data.
|
inline |
Returns the user data, without casting.
| float getVBorder | ( | ) | const |
Returns vertical border size.
|
inline |
Returns the width of the widget, in pixels.
| Window& getWindow | ( | ) | const |
| WindowManager& getWindowManager | ( | ) | const |
|
inline |
|
inline |
| bool isDrawBackground | ( | ) | const |
Returns false if the background is transparent.
| bool isEnabled | ( | ) | const |
Returns true if the widget is reactive to user action (mouse & keyboard).
| bool isFocused | ( | ) | const |
Returns true if the widget has keyboard focus.
| bool isFreezed | ( | ) | const |
Returns true if the widget is freezed (not responding to events).
|
inline |
Returns true if the widget is overlapping other widgets.
| bool isPointed | ( | ) | const |
Returns true if the widget is currently pointed by the mouse.
| bool isPushed | ( | ) | const |
Returns true if the widget is currently pushed (e.g. mouse button down).
| bool isRedrawOnMouseEvent | ( | ) | const |
Returns true if the widget should redraw on mouse events.
| bool isVisible | ( | ) | const |
Returns true if the widget is visible.
|
inlinevirtual |
Event called after Widget have been added to another widget or a window
Reimplemented in lysa::ui::Tooltip::onAttach()
|
inlinevirtual |
Event called before Widget is detached from its parent.
Reimplemented in lysa::ui::Table::onDetach(), lysa::ui::DropDownList::onDetach()
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Event called when the Window got the keyboard focus.
|
inlinevirtual |
Event called when (after) the Window manager need to hide the Window.
Reimplemented in lysa::ui::Table::onHide(), lysa::ui::DropDownList::onHide()
|
inlinevirtual |
Event called when a key was pressed.
| key | The key pressed. |
|
inlinevirtual |
Event called when a key was released.
| key | The key released. |
|
inlinevirtual |
Event called when the Window lost the keyboard focus.
|
inlinevirtual |
Event called when a mouse button was pressed inside the Window.
| button | The mouse button. |
| x | Mouse X coordinate. |
| y | Mouse Y coordinate. |
Reimplemented in lysa::ui::RichTextArea::onMouseDown()
|
inlinevirtual |
|
inlinevirtual |
Event called when the mouse is moved above the Window client area.
| buttonsState | State of mouse buttons. |
| x | Mouse X coordinate. |
| y | Mouse Y coordinate. |
|
inlinevirtual |
Event called when a mouse button was released inside the Window.
| button | The mouse button. |
| x | Mouse X coordinate. |
| y | Mouse Y coordinate. |
Reimplemented in lysa::ui::RichTextArea::onMouseUp()
|
inlinevirtual |
Event called after a position change.
|
inlinevirtual |
Event called after a size change.
Reimplemented in lysa::ui::Table::onResize(), lysa::ui::Grid::onResize(), lysa::ui::RichTextArea::onResize()
|
inlinevirtual |
|
inlinevirtual |
Event called on user input
| void refresh | ( | ) |
Force a refresh of the entire widget.
|
virtual |
Removes a child widget.
|
virtual |
Removes all children widgets recursively.
| void resizeChildren | ( | ) |
Resizes children widgets.
| void setAlignment | ( | Alignment | alignment | ) |
Sets the widget placement.
Calling this method involves redrawing the parent widget & resizing all the children widgets.
| void setChildrenOffset | ( | float | x, |
| float | y | ||
| ) |
Sets the children scroll offset. Children are laid out by resizeChildren() starting from the client rect minus this offset, enabling scrollable content. Default is (0, 0): no effect.
|
inline |
Sets whether mouse events are consumed by this widget (preventing propagation to parent).
| void setDrawBackground | ( | bool | drawBackground | ) |
Sets whether to draw the widget background.
| void setEnabled | ( | bool | isEnabled = true | ) |
Enables or disables widget reactions to input events.
| std::shared_ptr<Widget> setFocus | ( | bool | focus = true | ) |
Requests keyboard focus for this widget.
| focus | True to request focus, false to release it. |
| void setFont | ( | const std::shared_ptr< Font > & | font | ) |
Sets the current font of the widget.
|
virtual |
Sets the font scale.
Reimplemented in lysa::ui::Text::setFontScale(), lysa::ui::RichTextArea::setFontScale()
|
inline |
Sets whether the widget is freezed.
| void setGroupIndex | ( | int32 | index | ) |
Sets the user defined group index.
| void setHBorder | ( | float | size | ) |
Sets horizontal border size.
|
inline |
Resizes the widget height, in pixels.
|
inline |
| void setPadding | ( | float | padding | ) |
Changes children padding (space between children).
|
virtual |
Moves the widget to a particular position.
|
inline |
Sets whether the widget is pushed.
| void setRect | ( | const Rect & | rect | ) |
Changes the size & position of the widget.
| void setRect | ( | float | x, |
| float | y, | ||
| float | width, | ||
| float | height | ||
| ) |
Changes the size & position of the widget.
| void setResource | ( | std::shared_ptr< UIResource > | res | ) |
Changes widget resources.
|
virtual |
Resizes the widget, in pixels.
Reimplemented in lysa::ui::RichTextArea::setSize(), lysa::ui::Image::setSize(), lysa::ui::Text::setSize()
| void setTransparency | ( | float | alpha | ) |
Changes the transparency alpha value.
| void setUserData | ( | const std::any & | data | ) |
Sets user data.
| void setVBorder | ( | float | size | ) |
Sets vertical border size.
| void setVisible | ( | bool | show = true | ) |
Shows or hides the widget.
|
inline |
Resizes the widget width, in pixels.
| void subscribe | ( | const event_type & | type, |
| EventHandlerCallback | callback | ||
| ) |
Subscribe to an event and register the subscriber for the auto-unsubscribe mechanism
| void subscribe | ( | const event_type & | type, |
| unique_id | id, | ||
| EventHandlerCallback | callback | ||
| ) |
Subscribe to an event and register the subscriber for the auto-unsubscribe mechanism
| void unsubscribe | ( | unique_id | id | ) |
Unsubscribe a registered event subscriber
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |