TGUI
0.8.9
|
The parent class for every widget. More...
#include <TGUI/Widget.hpp>
Public Types | |
typedef std::shared_ptr< Widget > | Ptr |
Shared widget pointer. | |
typedef std::shared_ptr< const Widget > | ConstPtr |
Shared constant widget pointer. | |
Public Member Functions | |
Widget () | |
Default constructor. | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) | |
Move constructor. | |
~Widget () | |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. More... | |
WidgetRenderer * | getSharedRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
WidgetRenderer * | getRenderer () |
Returns the renderer, which gives access to functions that determine how the widget is displayed. More... | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget More... | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. More... | |
Vector2f | getPosition () const |
Gets the position of the widget. More... | |
virtual void | setSize (const Layout2d &size) |
Changes the size of the widget. More... | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. More... | |
Vector2f | getSize () const |
Returns the size of the widget. More... | |
virtual Vector2f | getFullSize () const |
Returns the entire size that the widget is using. More... | |
virtual Vector2f | getAbsolutePosition () const |
Get the absolute position of the widget instead of the relative position to its parent. More... | |
virtual Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. More... | |
virtual void | showWithEffect (ShowAnimationType type, sf::Time duration) |
Shows the widget by introducing it with an animation. More... | |
virtual void | hideWithEffect (ShowAnimationType type, sf::Time duration) |
Hides the widget by making it leave with an animation. More... | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. More... | |
bool | isVisible () const |
Returns true when the widget is visible. More... | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. More... | |
bool | isEnabled () const |
Returns true when the widget is enabled. More... | |
virtual void | setFocused (bool focused) |
Focus or unfocus the widget. More... | |
bool | isFocused () const |
Returns true when the widget is focused and false otherwise. More... | |
const std::string & | getWidgetType () const |
Returns the type of the widget. More... | |
Container * | getParent () const |
Returns a pointer to the parent widget. More... | |
bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) More... | |
virtual void | moveToFront () |
Places the widget before all other widgets. More... | |
virtual void | moveToBack () |
Places the widget behind all other widgets. More... | |
void | setUserData (std::any userData) |
Stores some data into the widget. More... | |
template<typename T > | |
T | getUserData () const |
Returns data stored in the widget. More... | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. More... | |
const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. More... | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. More... | |
float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. More... | |
virtual void | setTextSize (unsigned int size) |
Changes the character size of text in this widget if it uses text. More... | |
virtual unsigned int | getTextSize () const |
Returns the character size of text in this widget. More... | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. More... | |
Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. More... | |
void | setWidgetName (const sf::String &name) |
Changes the name of a widget. More... | |
sf::String | getWidgetName () const |
Returns the name of a widget. More... | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. More... | |
bool | isFocusable () const |
Returns whether a widget could be focused. More... | |
virtual bool | canGainFocus () const |
Returns whether the widget can currently gain focus. More... | |
bool | isContainer () const |
Returns whether the widget is a container widget or not. More... | |
virtual bool | mouseOnWidget (Vector2f pos) const =0 |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. More... | |
Signal & | getSignal (std::string signalName) override |
Retrieves a signal based on its name. More... | |
virtual void | draw (sf::RenderTarget &target, sf::RenderStates states) const =0 |
Draw the widget to a render target. More... | |
template<typename WidgetType > | |
std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
virtual Widget::Ptr | clone () const =0 |
Makes a copy of the widget if you don't know its exact type. More... | |
Public Member Functions inherited from tgui::SignalWidgetBase | |
template<typename Func , typename... Args, typename std::enable_if< std::is_convertible< Func, std::function< void(const Args &...)> >::value >::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, const Args &... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs, typename std::enable_if<!std::is_convertible< Func, std::function< void(const BoundArgs &...)> >::value &&std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)> >::value , ::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs, typename std::enable_if<!std::is_convertible< Func, std::function< void(const BoundArgs &...)> >::value &&!std::is_convertible< Func, std::function< void(const BoundArgs &..., std::shared_ptr< Widget >, const std::string &)> >::value , ::type * = nullptr> | |
unsigned int | connect (std::string signalName, Func &&handler, BoundArgs &&... args) |
Connects a signal handler that will be called when this signal is emitted. More... | |
template<typename Func , typename... BoundArgs> | |
unsigned int | connect (std::initializer_list< std::string > signalNames, Func &&handler, BoundArgs &&... args) |
Connect a signal handler to multiple signals. More... | |
bool | disconnect (unsigned int id) |
Disconnects a signal handler. More... | |
void | disconnectAll (std::string signalName) |
Disconnects all signal handler from a certain signal. More... | |
void | disconnectAll () |
Disconnects all signal handlers from signals. | |
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. | |
SignalAnimation | onAnimationFinished = {"AnimationFinished"} |
A show or hide animation finished. Optional parameters: animation type, new widget visibility or both. | |
Protected Member Functions | |
virtual void | rendererChanged (const std::string &property) |
Function called when one of the properties of the renderer is changed. More... | |
virtual 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. | |
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::CustomWidgetForBindings, tgui::Canvas, tgui::Label, and tgui::Picture.
|
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::CustomWidgetForBindings, tgui::BitmapButton, tgui::Button, tgui::Canvas, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::Grid, tgui::Group, tgui::HorizontalLayout, tgui::HorizontalWrap, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RadioButtonGroup, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, 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::CustomWidgetForBindings, tgui::SubwidgetContainer, tgui::BitmapButton, tgui::Button, tgui::Canvas, tgui::CheckBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ComboBox, tgui::EditBox, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RadioButtonGroup, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, and tgui::TreeView.
|
virtual |
Get the absolute position of the widget instead of the relative position to its parent.
Reimplemented in tgui::CustomWidgetForBindings, and tgui::ScrollablePanel.
|
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::CustomWidgetForBindings, tgui::CheckBox, tgui::ChildWindow, tgui::RadioButton, tgui::RangeSlider, and tgui::Slider.
const Font & tgui::Widget::getInheritedFont | ( | ) | const |
Returns the font of the widget that is used when no font is set in the renderer.
float tgui::Widget::getInheritedOpacity | ( | ) | const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer.
|
inline |
Returns a pointer to the parent widget.
|
inline |
Gets the position of the widget.
WidgetRenderer * tgui::Widget::getRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
WidgetRenderer * tgui::Widget::getSharedRenderer | ( | ) |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
|
overridevirtual |
Retrieves a signal based on its name.
signalName | Name of the signal |
Exception | when the name does not match any signal |
Implements tgui::SignalWidgetBase.
Reimplemented in tgui::Button, tgui::ChildWindow, tgui::ClickableWidget, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, and tgui::TreeView.
|
inline |
Returns the size of the widget.
|
virtual |
Returns the character size of text in this widget.
Reimplemented in tgui::Button, tgui::ComboBox, tgui::EditBox, tgui::ProgressBar, and tgui::RadioButton.
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. |
sf::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::CustomWidgetForBindings, tgui::CheckBox, tgui::RadioButton, tgui::RangeSlider, and tgui::Slider.
const std::string & tgui::Widget::getWidgetType | ( | ) | const |
Returns the type of the widget.
|
virtual |
Hides the widget by making it leave with an 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.
type | Type of the animation |
duration | Duration of the animation |
bool tgui::Widget::isAnimationPlaying | ( | ) | const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect)
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.
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.
|
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.
|
pure virtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implemented in tgui::CustomWidgetForBindings, tgui::Button, tgui::ChatBox, tgui::ChildWindow, tgui::ClickableWidget, tgui::ComboBox, tgui::EditBox, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::Scrollbar, tgui::Slider, tgui::Tabs, tgui::TextBox, and tgui::TreeView.
|
virtual |
Places the widget behind all other widgets.
|
virtual |
Places the widget before all other widgets.
|
protectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Lowercase name of the property that was changed |
Reimplemented in tgui::Container, tgui::CustomWidgetForBindings, tgui::BoxLayout, tgui::Button, tgui::Canvas, tgui::ChatBox, tgui::CheckBox, tgui::ChildWindow, tgui::ColorPicker, tgui::ComboBox, tgui::EditBox, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::MessageBox, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, and tgui::TreeView.
|
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::CustomWidgetForBindings, tgui::Button, tgui::ComboBox, tgui::EditBox, tgui::MenuBar, 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::Container, tgui::CustomWidgetForBindings, tgui::EditBox, and tgui::TextBox.
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 |
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 |
|
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, tgui::ListBox, tgui::CustomWidgetForBindings, tgui::ChildWindow, and tgui::ListBox.
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.
|
virtual |
Changes the size of the widget.
size | Size of the widget |
Usage examples:
Reimplemented in tgui::Container, tgui::SubwidgetContainer, tgui::BitmapButton, tgui::BoxLayout, tgui::Button, tgui::Canvas, tgui::ChatBox, tgui::ChildWindow, tgui::ComboBox, tgui::EditBox, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, tgui::TreeView, tgui::Container, tgui::CustomWidgetForBindings, tgui::SubwidgetContainer, tgui::BitmapButton, tgui::BoxLayout, tgui::Button, tgui::Canvas, tgui::ChatBox, tgui::ChildWindow, tgui::ComboBox, tgui::EditBox, tgui::Grid, tgui::Group, tgui::Knob, tgui::Label, tgui::ListBox, tgui::ListView, tgui::MenuBar, tgui::Panel, tgui::Picture, tgui::ProgressBar, tgui::RadioButton, tgui::RangeSlider, tgui::ScrollablePanel, tgui::Scrollbar, tgui::Slider, tgui::SpinButton, tgui::Tabs, tgui::TextBox, and tgui::TreeView.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
|
virtual |
Changes the character size of text in this widget if it uses text.
size | The new text size |
Reimplemented in tgui::Container, tgui::Button, tgui::ChatBox, tgui::Label, tgui::MenuBar, tgui::MessageBox, tgui::ProgressBar, tgui::RadioButton, tgui::Tabs, tgui::TextBox, tgui::ComboBox, tgui::EditBox, tgui::ListBox, tgui::ListView, and tgui::TreeView.
void tgui::Widget::setToolTip | ( | Widget::Ptr | toolTip | ) |
|
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 sf::String & | name | ) |
Changes the name of a widget.
name | New name for the widget |
|
virtual |
Shows the widget by introducing it with an 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.
type | Type of the animation |
duration | Duration of the animation |