TGUI
1.1
|
Wrapper around scrollbar to be used inside widgets that need a scrollbar. More...
#include <TGUI/Widgets/Scrollbar.hpp>
Public Member Functions | |
bool | isMouseDownOnThumb () const |
Returns whether the left mouse button has been pressed on top of the thumb of the scrollbar. | |
bool | isShown () const |
Returns whether the scrollbar is currently visible. | |
void | draw (BackendRenderTarget &target, RenderStates states) const override |
Draw the widget to a render target. | |
![]() | |
Scrollbar (const char *typeName=StaticWidgetType, bool initRenderer=true) | |
TGUI_NODISCARD ScrollbarRenderer * | getSharedRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
TGUI_NODISCARD const ScrollbarRenderer * | getSharedRenderer () const override |
TGUI_NODISCARD ScrollbarRenderer * | getRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
void | setSize (const Layout2d &size) override |
Changes the size of the scrollbar. | |
void | setMaximum (unsigned int maximum) |
Sets a maximum value. | |
TGUI_NODISCARD unsigned int | getMaximum () const |
Returns the maximum value. | |
void | setValue (unsigned int value) |
Changes the current value. | |
TGUI_NODISCARD unsigned int | getValue () const |
Returns the current value. | |
void | setViewportSize (unsigned int viewport) |
Changes the viewport size. | |
TGUI_NODISCARD unsigned int | getViewportSize () const |
Returns the viewport size. | |
void | setScrollAmount (unsigned int scrollAmount) |
Changes how much the value changes when scrolling or pressing one of the arrows of the scrollbar. | |
TGUI_NODISCARD unsigned int | getScrollAmount () const |
Returns how much the value changes when scrolling or pressing one of the arrows of the scrollbar. | |
void | setAutoHide (bool autoHide) |
Changes whether the scrollbar should hide automatically or not. | |
TGUI_NODISCARD bool | getAutoHide () const |
Returns whether the scrollbar is hiding automatically or not. | |
void | setVerticalScroll (bool vertical) |
Changes whether the scrollbar lies horizontally or vertically. | |
TGUI_NODISCARD bool | getVerticalScroll () const |
Returns whether the scrollbar lies horizontally or vertically. | |
TGUI_NODISCARD float | getDefaultWidth () |
Returns the default width of the scrollbar. | |
TGUI_NODISCARD bool | isMouseOnWidget (Vector2f pos) const override |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. | |
bool | leftMousePressed (Vector2f pos) override |
Called by the parent when the left mouse button goes down on top of the widget. | |
void | leftMouseReleased (Vector2f pos) override |
void | mouseMoved (Vector2f pos) override |
bool | scrolled (float delta, Vector2f pos, bool touch) override |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen) | |
void | leftMouseButtonNoLongerDown () override |
virtual void | setSize (const Layout2d &size) |
Changes the size of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
![]() | |
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 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. | |
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) |
TGUI_NODISCARD AutoLayout | getAutoLayout () const |
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 | 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 | isDraggableWidget () const |
Returns whether the widget has something to drag (e.g. slider or scrollbar thumbs) | |
TGUI_NODISCARD bool | isMouseDown () const |
Returns whether the left mouse button has been pressed on top of the widget. | |
virtual void | setParent (Container *parent) |
virtual bool | updateTime (Duration elapsedTime) |
void | setAutoLayoutUpdateEnabled (bool enabled) |
virtual void | rightMousePressed (Vector2f pos) |
virtual void | rightMouseReleased (Vector2f pos) |
virtual void | mouseReleased (Event::MouseButton button, 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 void | mouseNoLongerOnWidget () |
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) |
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. | |
void | rendererChangedCallback (const String &property) |
virtual void | updateTextSize () |
Additional Inherited Members | |
![]() | |
enum class | Policy { Automatic , Always , Never } |
Defines when the scrollbar shows up. More... | |
using | Ptr = std::shared_ptr< Scrollbar > |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr< const Scrollbar > |
Shared constant widget pointer. | |
![]() | |
using | Ptr = std::shared_ptr< Widget > |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr< const Widget > |
Shared constant widget pointer. | |
![]() | |
static TGUI_NODISCARD Scrollbar::Ptr | create () |
Creates a new scrollbar widget. | |
static TGUI_NODISCARD Scrollbar::Ptr | copy (const Scrollbar::ConstPtr &scrollbar) |
Makes a copy of another scrollbar. | |
![]() | |
SignalUInt | onValueChange = {"ValueChanged"} |
Value of the scrollbar changed. Optional parameter: new value. | |
![]() | |
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. | |
![]() | |
static constexpr const char | StaticWidgetType [] = "Scrollbar" |
Type name of the widget. | |
![]() | |
enum class | Part { Track , Thumb , ArrowUp , ArrowDown } |
![]() | |
using | SavingRenderersMap = std::map< const Widget *, std::pair< std::unique_ptr< DataIO::Node >, String > > |
using | LoadingRenderersMap = std::map< String, std::shared_ptr< RendererData > > |
![]() | |
void | updateSize () |
TGUI_NODISCARD Signal & | getSignal (String signalName) override |
Retrieves a signal based on its name. | |
void | rendererChanged (const String &property) override |
Function called when one of the properties of the renderer is changed. | |
TGUI_NODISCARD std::unique_ptr< DataIO::Node > | save (SavingRenderersMap &renderers) const override |
Saves the widget as a tree node in order to save it to a file. | |
void | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override |
Loads the widget from a tree of nodes. | |
void | updateThumbPosition () |
TGUI_NODISCARD Widget::Ptr | clone () const override |
Makes a copy of the widget if you don't know its exact type. | |
![]() | |
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. | |
![]() | |
Part | m_mouseHoverOverPart = Part::Thumb |
bool | m_mouseDownOnThumb = false |
Vector2f | m_mouseDownOnThumbPos |
unsigned int | m_maximum = 10 |
unsigned int | m_value = 0 |
unsigned int | m_viewportSize = 1 |
bool | m_verticalScroll = true |
bool | m_verticalImage = true |
unsigned int | m_scrollAmount = 1 |
bool | m_autoHide = true |
bool | m_mouseDownOnArrow = false |
bool | m_sizeSet = false |
std::chrono::steady_clock::time_point | m_lastSuccessfulScrollTime |
Vector2f | m_lastSuccessfulScrollPos |
FloatRect | m_track |
FloatRect | m_thumb |
FloatRect | m_arrowUp |
FloatRect | m_arrowDown |
Sprite | m_spriteTrack |
Sprite | m_spriteTrackHover |
Sprite | m_spriteThumb |
Sprite | m_spriteThumbHover |
Sprite | m_spriteArrowUp |
Sprite | m_spriteArrowUpHover |
Sprite | m_spriteArrowDown |
Sprite | m_spriteArrowDownHover |
Color | m_thumbColorCached |
Color | m_thumbColorHoverCached |
Color | m_trackColorCached |
Color | m_trackColorHoverCached |
Color | m_arrowColorCached |
Color | m_arrowColorHoverCached |
Color | m_arrowBackgroundColorCached |
Color | m_arrowBackgroundColorHoverCached |
![]() | |
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 |
Font | m_fontCached = Font::getGlobalFont() |
float | m_opacityCached = 1 |
bool | m_transparentTextureCached = false |
unsigned int | m_textSizeCached = 0 |
Wrapper around scrollbar to be used inside widgets that need a scrollbar.
|
overridevirtual |
Draw the widget to a render target.
target | Render target to draw to |
states | Current render states |
Reimplemented from tgui::Scrollbar.
bool tgui::ScrollbarChildWidget::isShown | ( | ) | const |
Returns whether the scrollbar is currently visible.
The scrollbar is visible when auto hide is disabled or when the maximum is higher than the viewport size