25#ifndef TGUI_RANGE_SLIDER_HPP
26#define TGUI_RANGE_SLIDER_HPP
28#include <TGUI/Renderers/RangeSliderRenderer.hpp>
29#include <TGUI/Widget.hpp>
38 class TGUI_API RangeSlider :
public Widget
41 using Ptr = std::shared_ptr<RangeSlider>;
42 using ConstPtr = std::shared_ptr<const RangeSlider>;
53 explicit RangeSlider(
const char* typeName =
StaticWidgetType,
bool initRenderer =
true);
221 void leftMouseReleased(Vector2f pos)
override;
226 void mouseMoved(Vector2f pos)
override;
231 void leftMouseButtonNoLongerDown()
override;
265 [[nodiscard]] std::unique_ptr<DataIO::Node>
save(SavingRenderersMap& renderers)
const override;
270 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
275 [[nodiscard]] Vector2f getInnerSize()
const;
280 void updateThumbPositions();
295 std::pair<FloatRect, FloatRect> m_thumbs;
298 unsigned int m_mouseDownOnThumb = 0;
299 Vector2f m_mouseDownOnThumbPos;
302 float m_maximum = 10;
303 float m_selectionStart = 0;
304 float m_selectionEnd = 0;
311 Sprite m_spriteTrackHover;
313 Sprite m_spriteThumbHover;
314 Sprite m_spriteSelectedTrack;
315 Sprite m_spriteSelectedTrackHover;
318 Borders m_bordersCached;
319 Color m_borderColorCached;
320 Color m_borderColorHoverCached;
321 Color m_thumbColorCached;
322 Color m_thumbColorHoverCached;
323 Color m_trackColorCached;
324 Color m_trackColorHoverCached;
325 Color m_selectedTrackColorCached;
326 Color m_selectedTrackColorHoverCached;
Base class for render targets.
Definition BackendRenderTarget.hpp:46
Wrapper for colors.
Definition Color.hpp:63
Class to store the position or size of a widget.
Definition Layout.hpp:320
Definition RangeSliderRenderer.hpp:35
SignalRange onRangeChange
Value of the slider changed. Optional parameter: new value.
Definition RangeSlider.hpp:290
float getMinimum() const
Returns the minimum value.
Vector2f getWidgetOffset() const override
Returns the distance between the position where the widget is drawn and where the widget is placed.
float getStep() const
Returns the number of positions the thumb advances with each move.
bool leftMousePressed(Vector2f pos) override
Called by the parent when the left mouse button goes down on top of the widget.
float getSelectionEnd() const
Returns the current value where the selection ends.
void setSelectionStart(float value)
Changes the value where the selection starts.
std::shared_ptr< RangeSlider > Ptr
Shared widget pointer.
Definition RangeSlider.hpp:41
RangeSliderRenderer * getSharedRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Vector2f getFullSize() const override
Returns the full size of the slider.
static RangeSlider::Ptr copy(const RangeSlider::ConstPtr &slider)
Makes a copy of another slider.
static constexpr char StaticWidgetType[]
Type name of the widget.
Definition RangeSlider.hpp:44
void setMinimum(float minimum)
Sets a minimum value.
void setSize(const Layout2d &size) override
Changes the size of the slider.
float getSelectionStart() const
Returns the current value where the selection starts.
static RangeSlider::Ptr create(float minimum=0, float maximum=10)
Creates a new slider widget.
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.
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.
bool isMouseOnWidget(Vector2f pos) const override
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget...
void setSelectionEnd(float value)
Changes the value where the selection ends.
void setMaximum(float maximum)
Sets a maximum value.
void draw(BackendRenderTarget &target, RenderStates states) const override
Draw the widget to a render target.
void load(const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override
Loads the widget from a tree of nodes.
Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
float getMaximum() const
Returns the maximum value.
void setStep(float step)
Changes the number of positions the thumb advances with each move.
RangeSliderRenderer * getRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
std::shared_ptr< const RangeSlider > ConstPtr
Shared constant widget pointer.
Definition RangeSlider.hpp:42
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:59
Wrapper class to store strings.
Definition String.hpp:94
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:37
SignalTyped2< float, float > SignalRange
Signal with two floats as optional unbound parameters.
Definition Signal.hpp:416
Orientation
Orientation of the object.
Definition Layout.hpp:50
@ Horizontal
Horizontal orientation.
Definition Layout.hpp:52
States used for drawing.
Definition RenderStates.hpp:38