26#ifndef TGUI_SLIDER_HPP
27#define TGUI_SLIDER_HPP
30#include <TGUI/Widget.hpp>
31#include <TGUI/Renderers/SliderRenderer.hpp>
44 typedef std::shared_ptr<Slider>
Ptr;
45 typedef std::shared_ptr<const Slider>
ConstPtr;
55 Slider(
const char* typeName =
"Slider",
bool initRenderer =
true);
280 void leftMousePressed(
Vector2f pos)
override;
285 void leftMouseReleased(
Vector2f pos)
override;
290 void mouseMoved(
Vector2f pos)
override;
295 bool mouseWheelScrolled(
float delta,
Vector2f pos)
override;
300 void leftMouseButtonNoLongerDown()
override;
340 std::unique_ptr<DataIO::Node>
save(SavingRenderersMap& renderers)
const override;
346 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
358 void updateThumbPosition();
379 bool m_mouseDownOnThumb =
false;
383 float m_maximum = 10;
387 bool m_invertedDirection =
false;
388 bool m_verticalScroll =
false;
389 bool m_verticalImage =
false;
390 bool m_changeValueOnScroll =
true;
393 Sprite m_spriteTrackHover;
395 Sprite m_spriteThumbHover;
399 Color m_borderColorCached;
400 Color m_borderColorHoverCached;
401 Color m_thumbColorCached;
402 Color m_thumbColorHoverCached;
403 Color m_trackColorCached;
404 Color m_trackColorHoverCached;
405 bool m_thumbWithinTrackCached =
false;
Base class for render targets.
Definition: BackendRenderTarget.hpp:48
Wrapper for colors.
Definition: Color.hpp:63
Class to store the position or size of a widget.
Definition: Layout.hpp:284
Definition: Outline.hpp:39
Signal to which the user can subscribe to get callbacks from.
Definition: Signal.hpp:58
Definition: SliderRenderer.hpp:37
Slider widget.
Definition: Slider.hpp:41
SliderRenderer * getRenderer()
Returns the renderer, which gives access to functions that determine how the widget is displayed.
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.
std::shared_ptr< Slider > Ptr
Shared widget pointer.
Definition: Slider.hpp:44
void draw(BackendRenderTarget &target, RenderStates states) const override
Draw the widget to a render target.
bool getVerticalScroll() const
Returns whether the slider lies horizontally or vertically.
Vector2f getWidgetOffset() const override
Returns the distance between the position where the widget is drawn and where the widget is placed.
bool getChangeValueOnScroll() const
Returns whether the mouse wheel can be used to change the value of the slider.
bool getInvertedDirection() const
Returns whether the side of the slider that is the minimum and maximum is inverted.
Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
float getStep() const
Returns the number of positions the thumb advances with each move.
bool isMouseOnWidget(Vector2f pos) const override
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget...
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 setVerticalScroll(bool vertical)
Changes whether the slider lies horizontally or vertically.
void setMinimum(float minimum)
Sets a minimum value.
std::shared_ptr< const Slider > ConstPtr
Shared constant widget pointer.
Definition: Slider.hpp:45
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.
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 setSize(const Layout2d &size) override
Changes the size of the slider.
static Slider::Ptr create(float minimum=0, float maximum=10)
Creates a new slider widget.
float getValue() const
Returns the current value.
float getMinimum() const
Returns the minimum value.
float getMaximum() const
Returns the maximum value.
SliderRenderer * getSharedRenderer()
Returns the renderer, which gives access to functions that determine how the widget is displayed.
void setValue(float value)
Changes the current value.
void setInvertedDirection(bool invertedDirection)
Changes whether the side of the slider that is the minimum and maximum should be inverted.
void setMaximum(float maximum)
Sets a maximum value.
static Slider::Ptr copy(Slider::ConstPtr slider)
Makes a copy of another slider.
Definition: Sprite.hpp:45
Wrapper class to store strings.
Definition: String.hpp:79
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36
States used for drawing.
Definition: RenderStates.hpp:39