TGUI
1.5
|
The parent class for every widget. More...
#include <TGUI/Widget.hpp>
Public Types | |
using | Ptr = std::shared_ptr<Widget> |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr<const Widget> |
Shared constant widget pointer. | |
Public Member Functions | |
Widget (const char *typeName, bool initRenderer) | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) noexcept | |
Move constructor. | |
virtual | ~Widget () |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) noexcept |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. | |
virtual TGUI_NODISCARD WidgetRenderer * | getSharedRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
virtual TGUI_NODISCARD const WidgetRenderer * | getSharedRenderer () const |
virtual TGUI_NODISCARD WidgetRenderer * | getRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. | |
TGUI_NODISCARD Vector2f | getPosition () const |
Gets the position of the widget. | |
virtual void | setSize (const Layout2d &size) |
Changes the size of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
void | setWidth (Layout width) |
Changes the width of the widget. | |
void | setHeight (Layout height) |
Changes the height of the widget. | |
TGUI_NODISCARD Vector2f | getSize () const |
Returns the size of the widget. | |
virtual TGUI_NODISCARD Vector2f | getFullSize () const |
Returns the entire size that the widget is using. | |
virtual TGUI_NODISCARD Vector2f | getAbsolutePosition (Vector2f offset={}) const |
Get the absolute position of the widget instead of the relative position to its parent. | |
virtual TGUI_NODISCARD Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. | |
void | setAutoLayout (AutoLayout layout) |
Sets how the position is determined compared to the other widgets in the parent. | |
TGUI_NODISCARD AutoLayout | getAutoLayout () const |
Returns how the position is determined compared to the other widgets in the parent. | |
void | setOrigin (float x, float y) |
Sets the origin point on which the position, scale and rotation is based. | |
void | setOrigin (Vector2f origin) |
Sets the origin point on which the position, scale and rotation is based. | |
TGUI_NODISCARD Vector2f | getOrigin () const |
Returns the relative origin point on which the position, scale and rotation is based. | |
void | setScale (Vector2f scaleFactors) |
Sets the scaling to be applied to the widget. | |
void | setScale (Vector2f scaleFactors, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getScale () const |
Returns the scaling to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getScaleOrigin () const |
Returns the origin used for scaling. | |
void | setRotation (float angle) |
Sets the rotation to be applied to the widget. | |
void | setRotation (float angle, Vector2f origin) |
Sets the rotation to be applied to the widget. | |
TGUI_NODISCARD float | getRotation () const |
Returns the rotation to be applied to the widget. | |
TGUI_NODISCARD Vector2f | getRotationOrigin () const |
Returns the origin used for rotations. | |
void | showWithEffect (ShowEffectType type, Duration duration) |
Shows the widget by introducing it with an animation. | |
void | hideWithEffect (ShowEffectType type, Duration duration) |
Hides the widget by making it leave with an animation. | |
void | moveWithAnimation (Layout2d position, Duration duration) |
Moves the widget from its current position to the given position, over a given duration. | |
void | resizeWithAnimation (Layout2d size, Duration duration) |
Resizes the widget from its current size to the given size, over a given duration. | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. | |
TGUI_NODISCARD bool | isVisible () const |
Returns true when the widget is visible. | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. | |
TGUI_NODISCARD bool | isEnabled () const |
Returns true when the widget is enabled. | |
virtual void | setFocused (bool focused) |
Focus or unfocus the widget. | |
TGUI_NODISCARD bool | isFocused () const |
Returns true when the widget is focused and false otherwise. | |
TGUI_NODISCARD const String & | getWidgetType () const |
Returns the type of the widget. | |
TGUI_NODISCARD Container * | getParent () const |
Returns a pointer to the parent widget. | |
TGUI_NODISCARD BackendGui * | getParentGui () const |
Returns a pointer to the gui to which this widget belongs. | |
TGUI_NODISCARD bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) | |
void | moveToFront () |
Places the widget before all other widgets. | |
void | moveToBack () |
Places the widget behind all other widgets. | |
void | setUserData (Any userData) |
Stores some data into the widget. | |
template<typename DataType > | |
TGUI_NODISCARD DataType | getUserData () const |
Returns data stored in the widget. | |
TGUI_NODISCARD bool | hasUserData () const |
Returns whether data stored in the widget. | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. | |
TGUI_NODISCARD const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. | |
TGUI_NODISCARD float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. | |
void | setTextSize (unsigned int size) |
Changes the character size of text in this widget if it uses text. | |
TGUI_NODISCARD unsigned int | getTextSize () const |
Returns the character size of text in this widget. | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. | |
TGUI_NODISCARD Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. | |
void | setWidgetName (const String &name) |
Changes the name of a widget. | |
TGUI_NODISCARD String | getWidgetName () const |
Returns the name of a widget. | |
void | setMouseCursor (Cursor::Type cursor) |
Changes which mouse cursor is shown when hovering over the widget. | |
TGUI_NODISCARD Cursor::Type | getMouseCursor () const |
Returns which mouse cursor is shown when hovering over the widget. | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. | |
TGUI_NODISCARD bool | isFocusable () const |
Returns whether a widget could be focused. | |
void | setNavigationUp (const Widget::Ptr &widgetAbove) |
Changes which widget should become focused when navigating upwards from this widget. | |
TGUI_NODISCARD Widget::Ptr | getNavigationUp () const |
Returns which widget would become focused when navigating upwards from this widget. | |
void | setNavigationDown (const Widget::Ptr &widgetBelow) |
Changes which widget should become focused when navigating downwards from this widget. | |
TGUI_NODISCARD Widget::Ptr | getNavigationDown () const |
Returns which widget would become focused when navigating downwards from this widget. | |
void | setNavigationLeft (const Widget::Ptr &widgetLeft) |
Changes which widget should become focused when navigating to the left from this widget. | |
TGUI_NODISCARD Widget::Ptr | getNavigationLeft () const |
Returns which widget would become focused when navigating to the left from this widget. | |
void | setNavigationRight (const Widget::Ptr &widgetRight) |
Changes which widget should become focused when navigating to the right from this widget. | |
TGUI_NODISCARD Widget::Ptr | getNavigationRight () const |
Returns which widget would become focused when navigating to the right from this widget. | |
void | setIgnoreMouseEvents (bool ignore) |
Sets whether the widget should completely ignore mouse events and let them pass to the widgets behind it. | |
TGUI_NODISCARD bool | getIgnoreMouseEvents () const |
Returns whether the widget is ignoring mouse events and letting them pass to the widgets behind it. | |
void | finishAllAnimations () |
Makes all animations of the widget finish immediately. | |
virtual TGUI_NODISCARD bool | canGainFocus () const |
Returns whether the widget can currently gain focus. | |
TGUI_NODISCARD bool | isContainer () const |
Returns whether the widget is a container widget or not. | |
TGUI_NODISCARD bool | isMouseDown () const |
Returns whether the left mouse button has been pressed on top of the widget. | |
virtual TGUI_NODISCARD Signal & | getSignal (String signalName) |
Retrieves a signal based on its name. | |
virtual void | setParent (Container *parent) |
virtual bool | updateTime (Duration elapsedTime) |
void | setAutoLayoutUpdateEnabled (bool enabled) |
virtual TGUI_NODISCARD bool | isMouseOnWidget (Vector2f pos) const =0 |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. | |
virtual bool | leftMousePressed (Vector2f pos) |
Called by the parent when the left mouse button goes down on top of the widget. | |
virtual void | leftMouseReleased (Vector2f pos) |
virtual void | rightMousePressed (Vector2f pos) |
virtual void | rightMouseReleased (Vector2f pos) |
virtual void | mouseReleased (Event::MouseButton button, Vector2f pos) |
virtual void | mouseMoved (Vector2f pos) |
virtual void | keyPressed (const Event::KeyEvent &event) |
virtual bool | canHandleKeyPress (const Event::KeyEvent &event) |
Called by the parent of the widget to check if keyPressed would process the event. | |
virtual void | textEntered (char32_t key) |
virtual bool | scrolled (float delta, Vector2f pos, bool touch) |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen) | |
virtual void | mouseNoLongerOnWidget () |
virtual void | leftMouseButtonNoLongerDown () |
virtual void | rightMouseButtonNoLongerDown () |
virtual TGUI_NODISCARD Widget::Ptr | askToolTip (Vector2f mousePos) |
TGUI_NODISCARD const Layout2d & | getPositionLayout () const |
TGUI_NODISCARD const Layout2d & | getSizeLayout () const |
void | bindPositionLayout (Layout *layout) |
void | unbindPositionLayout (Layout *layout) |
void | bindSizeLayout (Layout *layout) |
void | unbindSizeLayout (Layout *layout) |
virtual void | draw (BackendRenderTarget &target, RenderStates states) const =0 |
Draw the widget to a render target. | |
template<typename WidgetType > | |
TGUI_NODISCARD std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
TGUI_NODISCARD std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
virtual TGUI_NODISCARD Widget::Ptr | clone () const =0 |
Makes a copy of the widget if you don't know its exact type. | |
void | rendererChangedCallback (const String &property) |
virtual void | updateTextSize () |
Public Attributes | |
SignalVector2f | onPositionChange = {"PositionChanged"} |
The position of the widget changed. Optional parameter: new position. | |
SignalVector2f | onSizeChange = {"SizeChanged"} |
The size of the widget changed. Optional parameter: new size. | |
Signal | onFocus = {"Focused"} |
The widget was focused. | |
Signal | onUnfocus = {"Unfocused"} |
The widget was unfocused. | |
Signal | onMouseEnter = {"MouseEntered"} |
The mouse entered the widget. | |
Signal | onMouseLeave = {"MouseLeft"} |
The mouse left the widget. | |
SignalShowEffect | onShowEffectFinish = {"ShowEffectFinished"} |
A show or hide effect finished. Optional parameters: effect type, new widget visibility or both. | |
SignalAnimationType | onAnimationFinish = {"AnimationFinished"} |
An animation has finished. | |
Protected Types | |
using | SavingRenderersMap = std::map<const Widget*, std::pair<std::unique_ptr<DataIO::Node>, String>> |
using | LoadingRenderersMap = std::map<String, std::shared_ptr<RendererData>> |
Protected Member Functions | |
virtual void | rendererChanged (const String &property) |
Function called when one of the properties of the renderer is changed. | |
virtual TGUI_NODISCARD std::unique_ptr< DataIO::Node > | save (SavingRenderersMap &renderers) const |
Saves the widget as a tree node in order to save it to a file. | |
virtual void | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) |
Loads the widget from a tree of nodes. | |
virtual void | mouseEnteredWidget () |
This function is called when the mouse enters the widget. | |
virtual void | mouseLeftWidget () |
This function is called when the mouse leaves the widget. | |
void | recalculateBoundPositionLayouts () |
Calls recalculateValue() on each layout in m_boundPositionLayouts. | |
void | recalculateBoundSizeLayouts () |
Calls recalculateValue() on each layout in m_boundSizeLayouts. | |
Protected Attributes | |
String | m_type |
String | m_name |
Layout2d | m_position |
Stores the position of this widget. | |
Layout2d | m_size |
Stores the size of this widget. | |
unsigned int | m_textSize = 0 |
Vector2f | m_origin |
Optional< Vector2f > | m_rotationOrigin |
Optional< Vector2f > | m_scaleOrigin |
Vector2f | m_scaleFactors = {1, 1} |
float | m_rotationDeg = 0 |
Vector2f | m_prevPosition |
Vector2f | m_prevSize |
std::unordered_set< Layout * > | m_boundPositionLayouts |
std::unordered_set< Layout * > | m_boundSizeLayouts |
bool | m_enabled = true |
Stores the flag indicating whether this widget is enabled. | |
bool | m_visible = true |
Stores the flag indicating whether this widget is visible. | |
Container * | m_parent = nullptr |
BackendGui * | m_parentGui = nullptr |
bool | m_mouseHover = false |
bool | m_mouseDown = false |
bool | m_focused = false |
bool | m_focusable = true |
std::weak_ptr< Widget > | m_navWidgetUp |
std::weak_ptr< Widget > | m_navWidgetDown |
std::weak_ptr< Widget > | m_navWidgetRight |
std::weak_ptr< Widget > | m_navWidgetLeft |
Duration | m_animationTimeElapsed |
bool | m_containerWidget = false |
Widget::Ptr | m_toolTip = nullptr |
aurora::CopiedPtr< WidgetRenderer > | m_renderer = nullptr |
std::vector< std::unique_ptr< priv::Animation > > | m_showAnimations |
Font | m_inheritedFont |
float | m_inheritedOpacity = 1 |
Any | m_userData |
Cursor::Type | m_mouseCursor = Cursor::Type::Arrow |
AutoLayout | m_autoLayout = AutoLayout::Manual |
bool | m_autoLayoutUpdateEnabled = true |
bool | m_ignoreMouseEvents = false |
Font | m_fontCached = Font::getGlobalFont() |
float | m_opacityCached = 1 |
bool | m_transparentTextureCached = false |
unsigned int | m_textSizeCached = 0 |
Friends | |
class | Container |
The parent class for every widget.
|
virtual |
Returns whether the widget can currently gain focus.
A widget has to be visible, enabled and focusable for this function to return true.
Reimplemented in tgui::CanvasBase, tgui::CustomWidgetForBindings, tgui::Label, tgui::Picture, and tgui::Scrollbar.
|
virtual |
Called by the parent of the widget to check if keyPressed would process the event.
event | Key event that took place |
Reimplemented in tgui::Button, tgui::CheckBox, tgui::ChildWindow, tgui::Container, tgui::EditBox, tgui::FileDialog, tgui::ListBox, tgui::ListView, tgui::RadioButton, tgui::TextArea, tgui::ToggleButton, and tgui::TreeView.
|
pure virtual |
Makes a copy of the widget if you don't know its exact type.
This function should only be used when you don't know the type of the widget. If you know what kind of widget you are copying, you should use the copy function.
Implemented in tgui::BitmapButton, tgui::Button, tgui::CanvasGLES2, tgui::CanvasOpenGL3, tgui::CanvasRaylib, tgui::CanvasSDL, tgui::CanvasSFML, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::EditBoxSlider, tgui::FileDialog, tgui::Grid, tgui::Group, tgui::HorizontalLayout, tgui::HorizontalWrap, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MenuBarMenuPlaceholder, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RadioButtonGroup, tgui::RangeSlider, tgui::RichTextLabel, tgui::ScrollablePanel, tgui::Scrollbar, tgui::SeparatorLine, tgui::Slider, tgui::SpinButton, tgui::SpinControl, tgui::SplitContainer, tgui::TabContainer, tgui::Tabs, tgui::TextArea, tgui::ToggleButton, tgui::TreeView, and tgui::VerticalLayout.
|
pure virtual |
Draw the widget to a render target.
This is a pure virtual function that has to be implemented by the derived class to define how the widget is drawn.
target | Render target to draw to |
states | Current render states |
Implemented in tgui::ButtonBase, tgui::CanvasGLES2, tgui::CanvasOpenGL3, tgui::CanvasRaylib, tgui::CanvasSDL, tgui::CanvasSFML, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::Container, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MenuBarMenuPlaceholder, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::RichTextLabel, tgui::RootContainer, tgui::ScrollablePanel, tgui::Scrollbar, tgui::ScrollbarChildWidget, tgui::SeparatorLine, tgui::Slider, tgui::SpinButton, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
|
virtual |
Get the absolute position of the widget instead of the relative position to its parent.
offset | Offset of the top-left corner inside the widget to calculate the position for |
Reimplemented in tgui::ScrollablePanel.
TGUI_NODISCARD AutoLayout tgui::Widget::getAutoLayout | ( | ) | const |
Returns how the position is determined compared to the other widgets in the parent.
The default value is Manual which means the position and size are manually set and are unrelated to other widgets.
|
virtual |
Returns the entire size that the widget is using.
This function will return a value equal or greater than what getSize returns. If the widget would e.g. have borders around it then this function will return the size, including these borders.
Reimplemented in tgui::CheckBox, tgui::CustomWidgetForBindings, tgui::EditBoxSlider, tgui::MenuBarMenuPlaceholder, tgui::RadioButton, tgui::RangeSlider, and tgui::Slider.
TGUI_NODISCARD bool tgui::Widget::getIgnoreMouseEvents | ( | ) | const |
Returns whether the widget is ignoring mouse events and letting them pass to the widgets behind it.
TGUI_NODISCARD const Font & tgui::Widget::getInheritedFont | ( | ) | const |
Returns the font of the widget that is used when no font is set in the renderer.
TGUI_NODISCARD float tgui::Widget::getInheritedOpacity | ( | ) | const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer.
TGUI_NODISCARD Cursor::Type tgui::Widget::getMouseCursor | ( | ) | const |
Returns which mouse cursor is shown when hovering over the widget.
TGUI_NODISCARD Widget::Ptr tgui::Widget::getNavigationDown | ( | ) | const |
Returns which widget would become focused when navigating downwards from this widget.
TGUI_NODISCARD Widget::Ptr tgui::Widget::getNavigationLeft | ( | ) | const |
Returns which widget would become focused when navigating to the left from this widget.
TGUI_NODISCARD Widget::Ptr tgui::Widget::getNavigationRight | ( | ) | const |
Returns which widget would become focused when navigating to the right from this widget.
TGUI_NODISCARD Widget::Ptr tgui::Widget::getNavigationUp | ( | ) | const |
Returns which widget would become focused when navigating upwards from this widget.
|
inline |
Returns the relative origin point on which the position, scale and rotation is based.
|
inline |
Returns a pointer to the parent widget.
|
inline |
Returns a pointer to the gui to which this widget belongs.
|
inline |
Gets the position of the widget.
|
virtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented in tgui::BoxLayout, tgui::ButtonBase, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::FileDialog, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::SeparatorLine, tgui::Slider, tgui::SpinButton, tgui::SplitContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
|
inline |
Returns the rotation to be applied to the widget.
TGUI_NODISCARD Vector2f tgui::Widget::getRotationOrigin | ( | ) | const |
Returns the origin used for rotations.
|
inline |
Returns the scaling to be applied to the widget.
TGUI_NODISCARD Vector2f tgui::Widget::getScaleOrigin | ( | ) | const |
|
virtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented in tgui::BoxLayout, tgui::ButtonBase, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::FileDialog, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::SeparatorLine, tgui::Slider, tgui::SpinButton, tgui::SplitContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
Retrieves a signal based on its name.
signalName | Name of the signal |
Exception | when the name does not match any signal |
Reimplemented in tgui::Button, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::EditBoxSlider, tgui::FileDialog, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::SpinControl, tgui::TabContainer, tgui::Tabs, tgui::TextArea, tgui::ToggleButton, and tgui::TreeView.
|
inline |
Returns the size of the widget.
TGUI_NODISCARD unsigned int tgui::Widget::getTextSize | ( | ) | const |
Returns the character size of text in this widget.
TGUI_NODISCARD Widget::Ptr tgui::Widget::getToolTip | ( | ) | const |
Returns the tool tip that is displayed when hovering over the widget.
|
inline |
Returns data stored in the widget.
std::bad_cast | if the template type does not match the type inside the std::any variable passed in setUserData. |
TGUI_NODISCARD String tgui::Widget::getWidgetName | ( | ) | const |
Returns the name of a widget.
|
virtual |
Returns the distance between the position where the widget is drawn and where the widget is placed.
The offset is (0,0) for almost all widgets.
Reimplemented in tgui::CheckBox, tgui::CustomWidgetForBindings, tgui::EditBoxSlider, tgui::MenuBarMenuPlaceholder, tgui::RadioButton, tgui::RangeSlider, and tgui::Slider.
TGUI_NODISCARD const String & tgui::Widget::getWidgetType | ( | ) | const |
Returns the type of the widget.
|
inline |
Returns whether data stored in the widget.
void tgui::Widget::hideWithEffect | ( | ShowEffectType | type, |
Duration | duration ) |
Hides the widget by making it leave with an animation.
type | Type of the animation |
duration | Duration of the animation |
If the widget is already hidden then the animation will still play but you will not see it.
During the animation the position, size and/or opacity may change. Once the animation is done the widget will be back in the state in which it was when this function was called, except that it will no longer be visible.
If incompatible existing animations were still playing then they are finished immediately prior to starting this new animation. Some animations are compatible, such a hide with Fade effect and a hide with Slide effect, in which case both animations are played simultaneously.
When using the Fade effect while a previous showWithEffect with Fade effect was not yet finished, the animation is automatically shortened. When the opacity is only 40% when hideWithEffect is called (when changing from 0% to 100%), then the hide animation will change the opacity from 40% to 0% instead of going from 100% to 0%. The duration of the animation is also shortened to only 40% of the provided value, to maintain the expected speed.
Usage example:
TGUI_NODISCARD bool tgui::Widget::isAnimationPlaying | ( | ) | const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect)
TGUI_NODISCARD bool tgui::Widget::isContainer | ( | ) | const |
Returns whether the widget is a container widget or not.
|
inline |
Returns true when the widget is enabled.
If this function returns false then the widget is disabled and will longer receive events and it will thus no longer send callbacks. All widgets are enabled by default.
TGUI_NODISCARD bool tgui::Widget::isFocusable | ( | ) | const |
Returns whether a widget could be focused.
By default all widgets are focusable.
|
inline |
Returns true when the widget is focused and false otherwise.
TGUI_NODISCARD bool tgui::Widget::isMouseDown | ( | ) | const |
Returns whether the left mouse button has been pressed on top of the widget.
|
pure virtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implemented in tgui::ButtonBase, tgui::CanvasBase, tgui::ChatBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ComboBox, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MenuBarMenuPlaceholder, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RadioButtonGroup, tgui::RangeSlider, tgui::RootContainer, tgui::Scrollbar, tgui::Slider, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::TabContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
|
inline |
Returns true when the widget is visible.
If this function returns false then the widget is hidden, which means that it won't receive events (and thus won't send callbacks) and it won't be drawn. All widgets are visible by default.
|
virtual |
Called by the parent when the left mouse button goes down on top of the widget.
pos | Mouse position in view coordinates relative to the parent widget |
Reimplemented in tgui::Button, tgui::ButtonBase, tgui::ChatBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::Container, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::Panel, tgui::PanelListBox, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
|
protectedvirtual |
Loads the widget from a tree of nodes.
Reimplemented in tgui::BitmapButton, tgui::BoxLayoutRatios, tgui::ButtonBase, tgui::CanvasBase, tgui::ChatBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::Container, tgui::EditBox, tgui::EditBoxSlider, tgui::FileDialog, tgui::Grid, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::SpinControl, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::TabContainer, tgui::Tabs, tgui::TextArea, and tgui::ToggleButton.
|
protectedvirtual |
This function is called when the mouse enters the widget.
Reimplemented in tgui::Button, tgui::ButtonBase, tgui::ChildWindow, tgui::CustomWidgetForBindings, tgui::ListView, tgui::RadioButton, and tgui::SplitContainer.
|
protectedvirtual |
This function is called when the mouse leaves the widget.
Reimplemented in tgui::Button, tgui::ButtonBase, tgui::ChildWindow, tgui::CustomWidgetForBindings, tgui::ListView, tgui::RadioButton, and tgui::SplitContainer.
void tgui::Widget::moveToBack | ( | ) |
Places the widget behind all other widgets.
void tgui::Widget::moveToFront | ( | ) |
Places the widget before all other widgets.
Moves the widget from its current position to the given position, over a given duration.
position | Final position of the widget |
duration | How long before the widget reaches its final position |
|
protectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Name of the property that was changed |
Reimplemented in tgui::BitmapButton, tgui::BoxLayout, tgui::ButtonBase, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::Container, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::FileDialog, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::RichTextLabel, tgui::ScrollablePanel, tgui::Scrollbar, tgui::SeparatorLine, tgui::Slider, tgui::SpinButton, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
Resizes the widget from its current size to the given size, over a given duration.
size | Final size of the widget |
duration | How long before the widget reaches its final size |
|
protectedvirtual |
Saves the widget as a tree node in order to save it to a file.
Reimplemented in tgui::BitmapButton, tgui::BoxLayoutRatios, tgui::ButtonBase, tgui::CanvasBase, tgui::ChatBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::Container, tgui::EditBox, tgui::EditBoxSlider, tgui::FileDialog, tgui::Grid, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::SpinControl, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::TabContainer, tgui::Tabs, tgui::TextArea, tgui::ToggleButton, and tgui::TreeView.
|
virtual |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen)
delta | Scroll offset (positive is up, negative is down). High-precision mice may use non-integral offsets. |
pos | Mouse position, or the initial position of the touch events |
touch | Was this a touch event or a mouse wheel scroll? |
Reimplemented in tgui::ChatBox, tgui::ComboBox, tgui::Container, tgui::CustomWidgetForBindings, tgui::Label, tgui::ListBox, tgui::ListView, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SubwidgetContainer, tgui::TextArea, and tgui::TreeView.
void tgui::Widget::setAutoLayout | ( | AutoLayout | layout | ) |
Sets how the position is determined compared to the other widgets in the parent.
layout | Alignment for how to position the widget in its parent |
The default value is Manual which means the position and size are manually set and are unrelated to other widgets.
|
virtual |
Enables or disables the widget.
enabled | Is the widget enabled? |
The disabled widget will no longer receive events and thus no longer send callbacks. All widgets are enabled by default.
Reimplemented in tgui::ButtonBase, tgui::ComboBox, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::MenuBar, tgui::RadioButton, tgui::SubwidgetContainer, and tgui::Tabs.
void tgui::Widget::setFocusable | ( | bool | focusable | ) |
Changes whether a widget could be focused.
focusable | Should it be possible for the widget to gain focus? |
By default all widgets are focusable.
|
virtual |
Focus or unfocus the widget.
focused | Is the widget focused? |
When a widget is focused, the previously focused widget will be unfocused.
Reimplemented in tgui::ButtonBase, tgui::Container, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::RootContainer, tgui::SubwidgetContainer, and tgui::TextArea.
|
inline |
Changes the height of the widget.
height | Height of the widget |
This function is a helper function that just calls setSize with the existing width.
void tgui::Widget::setIgnoreMouseEvents | ( | bool | ignore | ) |
Sets whether the widget should completely ignore mouse events and let them pass to the widgets behind it.
ignore | Should mouse events be ignored by this widget? |
By default, mouse events are NOT ignored.
If you want the widget to ignore the events without the events being passed to the widgets behind this one, then you need to call setEnabled(false) instead of setIgnoreMouseEvents(true).
void tgui::Widget::setInheritedFont | ( | const Font & | font | ) |
Sets the font of the widget that is used when no font is set in the renderer.
font | New font for the widget |
This function is called by the parent widget and is not supposed to be directly. To set the font of this widget, the Font property in the renderer should be changed.
void tgui::Widget::setInheritedOpacity | ( | float | opacity | ) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer.
opacity | Opacity of the widget |
This function is called by the parent widget and is not supposed to be directly.To set the opacity of this widget, the Opacity property in the renderer should be changed.
void tgui::Widget::setMouseCursor | ( | Cursor::Type | cursor | ) |
Changes which mouse cursor is shown when hovering over the widget.
cursor | The cursor to show when the mouse is on top of the widget |
By default, the arrow cursor is shown.
void tgui::Widget::setNavigationDown | ( | const Widget::Ptr & | widgetBelow | ) |
Changes which widget should become focused when navigating downwards from this widget.
widgetBelow | The widget located below this one, or nullptr if pressing the down arrow shouldn't change focus |
void tgui::Widget::setNavigationLeft | ( | const Widget::Ptr & | widgetLeft | ) |
Changes which widget should become focused when navigating to the left from this widget.
widgetLeft | The widget located left of this one, or nullptr if pressing the left arrow shouldn't change focus |
void tgui::Widget::setNavigationRight | ( | const Widget::Ptr & | widgetRight | ) |
Changes which widget should become focused when navigating to the right from this widget.
widgetRight | The widget located right this one, or nullptr if pressing the right arrow shouldn't change focus |
void tgui::Widget::setNavigationUp | ( | const Widget::Ptr & | widgetAbove | ) |
Changes which widget should become focused when navigating upwards from this widget.
widgetAbove | The widget located above this one, or nullptr if pressing the up arrow shouldn't change focus |
|
inline |
Sets the origin point on which the position, scale and rotation is based.
x | Relative horizontal position of the origin point |
y | Relative vertical position of the origin point |
Valid x and y values range from 0 to 1, with 0 representing the left/top of the widget and 1 being right/bottom
void tgui::Widget::setOrigin | ( | Vector2f | origin | ) |
Sets the origin point on which the position, scale and rotation is based.
origin | Relative position of the origin point |
Valid x and y values range from 0 to 1, with 0 representing the left/top of the widget and 1 being right/bottom
|
virtual |
sets the position of the widget
This function completely overwrites the previous position. See the move function to apply an offset based on the previous position instead. The default position of a transformable widget is (0, 0).
position | New position |
Usage examples:
Reimplemented in tgui::ChildWindow, and tgui::CustomWidgetForBindings.
Sets the position of the widget.
This function completely overwrites the previous position. See the move function to apply an offset based on the previous position instead. The default position of a transformable widget is (0, 0).
x | New x coordinate |
y | New y coordinate |
void tgui::Widget::setRenderer | ( | std::shared_ptr< RendererData > | rendererData | ) |
Sets a new renderer for the widget. The renderer determines how the widget looks.
rendererData | new renderer data |
The renderer data is shared with this widget. When the data is changed, this widget will be updated as well.
void tgui::Widget::setRotation | ( | float | angle | ) |
Sets the rotation to be applied to the widget.
angle | How many degrees clockwise should the widget be rotated? |
The origin of the rotation is set with the setOrigin function. If you want to use a separate origin for position and rotation then you can use the setRotation(float,Vector2f) function to pass a rotation origin.
void tgui::Widget::setRotation | ( | float | angle, |
Vector2f | origin ) |
Sets the rotation to be applied to the widget.
angle | How many degrees clockwise should the widget be rotated? |
origin | The origin around which the rotation should occur |
In the origin the x and y value 0 represent the left/top of the widget while 1 represents right/bottom
|
inline |
Sets the scaling to be applied to the widget.
scaleFactor | How many times should the widget be enlarged (or shrunk if scale factor is smaller than 1) |
This scaling works on top of the size that is set with setSize. A widget with size (50, 20) with a scaling factor of 2 will appear on the screen as a (100, 40) widget with its entire contents stretched.
The origin of the scaling is set with the setOrigin function. If you want to use a separate origin for position and scale then you can use the setScale(float,Vector2f) function to pass a scaling origin.
|
inline |
Sets the scaling to be applied to the widget.
scaleFactor | How many times should the widget be enlarged (or shrunk if scale factor is smaller than 1) |
origin | The origin from where to scale the widget. The widget origin will be used if no value is provided. |
This scaling works on top of the size that is set with setSize. A widget with size (50, 20) with a scaling factor of 2 will appear on the screen as a (100, 40) widget with its entire contents stretched.
In the origin the x and y value 0 represent the left/top of the widget while 1 represents right/bottom
void tgui::Widget::setScale | ( | Vector2f | scaleFactors | ) |
Sets the scaling to be applied to the widget.
scaleFactors | How many times should the widget be enlarged horizontally and vertically (or shrunk if factor < 1) |
This scaling works on top of the size that is set with setSize. A widget with size (50, 20) with a scaling factor of (3,2) will appear on the screen as a (150, 40) widget with its entire contents stretched.
The origin of the scaling is set with the setOrigin function. If you want to use a separate origin for position and scale then you can use the setScale(Vector2f,Vector2f) function to pass a scaling origin.
Sets the scaling to be applied to the widget.
scaleFactors | How many times should the widget be enlarged horizontally and vertically (or shrunk if factor < 1) |
origin | The origin from where to scale the widget. The widget origin will be used if no value is provided. |
This scaling works on top of the size that is set with setSize. A widget with size (50, 20) with a scaling factor of (3,2) will appear on the screen as a (150, 40) widget with its entire contents stretched.
In the origin the x and y value 0 represent the left/top of the widget while 1 represents right/bottom
|
virtual |
Changes the size of the widget.
size | Size of the widget |
Usage examples:
Reimplemented in tgui::BitmapButton, tgui::BoxLayout, tgui::ButtonBase, tgui::CanvasGLES2, tgui::CanvasOpenGL3, tgui::CanvasRaylib, tgui::CanvasSDL, tgui::CanvasSFML, tgui::ChatBox, tgui::ChildWindow, tgui::ComboBox, tgui::Container, tgui::CustomWidgetForBindings, tgui::EditBox, tgui::EditBoxSlider, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::PanelListBox, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::SpinControl, tgui::SplitContainer, tgui::SubwidgetContainer, tgui::TabContainer, tgui::Tabs, tgui::TextArea, and tgui::TreeView.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
void tgui::Widget::setTextSize | ( | unsigned int | size | ) |
Changes the character size of text in this widget if it uses text.
size | The new text size |
void tgui::Widget::setToolTip | ( | Widget::Ptr | toolTip | ) |
Sets the tool tip that should be displayed when hovering over the widget.
toolTip | Any widget that you want to use as a tool tip (usually a Label) |
|
inline |
Stores some data into the widget.
userData | Data to store |
Examples:
|
virtual |
Shows or hides a widget.
visible | Is the widget visible? |
The widget won't receive events (and thus won't send callbacks) nor will it be drawn when hidden. The widget is visible by default.
Reimplemented in tgui::CustomWidgetForBindings.
void tgui::Widget::setWidgetName | ( | const String & | name | ) |
Changes the name of a widget.
name | New name for the widget |
|
inline |
Changes the width of the widget.
width | Width of the widget |
This function is a helper function that just calls setSize with the existing height.
void tgui::Widget::showWithEffect | ( | ShowEffectType | type, |
Duration | duration ) |
Shows the widget by introducing it with an animation.
type | Type of the animation |
duration | Duration of the animation |
The animation will also be played if the widget was already visible.
During the animation the position, size and/or opacity may change. Once the animation is done the widget will be back in the state in which it was when this function was called.
If incompatible existing animations were still playing then they are finished immediately prior to starting this new animation. Some animations are compatible, such a show with Fade effect and a show with Slide effect, in which case both animations are played simultaneously.
When using the Fade effect while a previous hideWithEffect with Fade effect was not yet finished, the animation is automatically shortened. When the opacity is still 40% when showWithEffect is called (when changing from 100% to 0%), then the show animation will change the opacity from 40% to 100% instead of going from 0% to 100%. The duration of the animation is also shortened to only 60% of the provided value, to maintain the expected speed.
Usage example:
|
virtual |
|
protected |
Stores the flag indicating whether this widget is enabled.
When a widget is disabled, it will no longer receive events
|
protected |
Stores the flag indicating whether this widget is visible.
When a widget is is invisible, it will not receive events and it won't be drawn
SignalAnimationType tgui::Widget::onAnimationFinish = {"AnimationFinished"} |
An animation has finished.
Animations are started by calling showWithEffect, hideWithEffect, moveWithAnimation and resizeWithAnimation. The showWithEffect and hideWithEffect functions also trigger the onShowEffectFinish signal when the effect ends.
Optional parameter: animation type