25#ifndef TGUI_SLIDER_HPP
26#define TGUI_SLIDER_HPP
28#include <TGUI/Widget.hpp>
29#include <TGUI/Renderers/SliderRenderer.hpp>
33TGUI_MODULE_EXPORT
namespace tgui
42 using Ptr = std::shared_ptr<Slider>;
43 using ConstPtr = std::shared_ptr<const Slider>;
45 static constexpr const char StaticWidgetType[] =
"Slider";
54 Slider(
const char* typeName = StaticWidgetType,
bool initRenderer =
true);
80 TGUI_NODISCARD
const SliderRenderer* getSharedRenderer()
const override;
97 using Widget::setSize;
194#ifndef TGUI_REMOVE_DEPRECATED_CODE
201 TGUI_DEPRECATED(
"Use setOrientation instead") void setVerticalScroll(
bool vertical);
207 TGUI_DEPRECATED("Use getOrientation instead") TGUI_NODISCARD
bool getVerticalScroll() const;
270 void leftMouseReleased(
Vector2f pos)
override;
275 void mouseMoved(
Vector2f pos)
override;
285 void leftMouseButtonNoLongerDown()
override;
319 TGUI_NODISCARD std::unique_ptr<DataIO::Node>
save(SavingRenderersMap& renderers)
const override;
324 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
329 TGUI_NODISCARD
Vector2f getInnerSize()
const;
334 void updateThumbPosition();
352 bool m_mouseDownOnThumb =
false;
356 float m_maximum = 10;
360 bool m_invertedDirection =
false;
361 bool m_changeValueOnScroll =
true;
363 Orientation m_orientation = Orientation::Horizontal;
364 Orientation m_imageOrientation = Orientation::Horizontal;
367 Sprite m_spriteTrackHover;
369 Sprite m_spriteThumbHover;
373 Color m_borderColorCached;
374 Color m_borderColorHoverCached;
375 Color m_thumbColorCached;
376 Color m_thumbColorHoverCached;
377 Color m_trackColorCached;
378 Color m_trackColorHoverCached;
379 bool m_thumbWithinTrackCached =
false;
Base class for render targets.
Definition BackendRenderTarget.hpp:46
Wrapper for colors.
Definition Color.hpp:73
Class to store the position or size of a widget.
Definition Layout.hpp:313
Definition Outline.hpp:38
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:61
Definition SliderRenderer.hpp:35
Slider widget.
Definition Slider.hpp:39
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 touch...
TGUI_NODISCARD Vector2f getWidgetOffset() const override
Returns the distance between the position where the widget is drawn and where the widget is placed.
TGUI_NODISCARD Orientation getOrientation() const
Returns whether the slider lies horizontally or vertically.
void draw(BackendRenderTarget &target, RenderStates states) const override
Draw the widget to a render target.
bool leftMousePressed(Vector2f pos) override
Called by the parent when the left mouse button goes down on top of the widget.
TGUI_NODISCARD Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
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...
TGUI_NODISCARD float getStep() const
Returns the number of positions the thumb advances with each move.
TGUI_NODISCARD float getMaximum() const
Returns the maximum value.
TGUI_NODISCARD bool getInvertedDirection() const
Returns whether the side of the slider that is the minimum and maximum is inverted.
TGUI_NODISCARD float getMinimum() const
Returns the minimum value.
TGUI_NODISCARD SliderRenderer * getSharedRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
TGUI_NODISCARD Signal & getSignal(String signalName) override
Retrieves a signal based on its name.
void load(const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override
Loads the widget from a tree of nodes.
void setMinimum(float minimum)
Sets a minimum value.
TGUI_NODISCARD Vector2f getFullSize() const override
Returns the full size of the slider.
void setStep(float step)
Changes the number of positions the thumb advances with each move.
std::shared_ptr< Slider > Ptr
Shared widget pointer.
Definition Slider.hpp:42
TGUI_NODISCARD bool getChangeValueOnScroll() const
Returns whether the mouse wheel can be used to change the value of the slider.
void setChangeValueOnScroll(bool changeValueOnScroll)
Changes whether the mouse wheel can be used to change the value of the slider.
void rendererChanged(const String &property) override
Function called when one of the properties of the renderer is changed.
void setOrientation(Orientation orientation)
Changes whether the slider lies horizontally or vertically.
void setSize(const Layout2d &size) override
Changes the size of the slider.
TGUI_NODISCARD SliderRenderer * getRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
TGUI_NODISCARD float getValue() const
Returns the current value.
void setValue(float value)
Changes the current value.
static TGUI_NODISCARD Slider::Ptr copy(const Slider::ConstPtr &slider)
Makes a copy of another slider.
std::shared_ptr< const Slider > ConstPtr
Shared constant widget pointer.
Definition Slider.hpp:43
void setInvertedDirection(bool invertedDirection)
Changes whether the side of the slider that is the minimum and maximum should be inverted.
static TGUI_NODISCARD Slider::Ptr create(float minimum=0, float maximum=10)
Creates a new slider widget.
void setMaximum(float maximum)
Sets a maximum value.
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.
Wrapper class to store strings.
Definition String.hpp:96
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:38
Orientation
Orientation of the object.
Definition Layout.hpp:51
States used for drawing.
Definition RenderStates.hpp:38