26#ifndef TGUI_SCROLLBAR_HPP
27#define TGUI_SCROLLBAR_HPP
30#include <TGUI/Widget.hpp>
31#include <TGUI/Renderers/ScrollbarRenderer.hpp>
33#if !TGUI_EXPERIMENTAL_USE_STD_MODULE
39TGUI_MODULE_EXPORT
namespace tgui
48 using Ptr = std::shared_ptr<Scrollbar>;
49 using ConstPtr = std::shared_ptr<const Scrollbar>;
51 static constexpr const char StaticWidgetType[] =
"Scrollbar";
70 Scrollbar(
const char* typeName = StaticWidgetType,
bool initRenderer =
true);
116 using Widget::setSize;
257 bool leftMousePressed(
Vector2f pos)
override;
262 void leftMouseReleased(
Vector2f pos)
override;
267 void mouseMoved(
Vector2f pos)
override;
272 bool scrolled(
float delta,
Vector2f pos,
bool touch)
override;
277 void leftMouseButtonNoLongerDown()
override;
324 TGUI_NODISCARD std::unique_ptr<DataIO::Node>
save(SavingRenderersMap& renderers)
const override;
330 void load(
const std::unique_ptr<DataIO::Node>& node,
const LoadingRenderersMap& renderers)
override;
336 void updateThumbPosition();
363 Part m_mouseHoverOverPart = Part::Thumb;
366 bool m_mouseDownOnThumb =
false;
367 Vector2f m_mouseDownOnThumbPos;
369 unsigned int m_maximum = 10;
370 unsigned int m_value = 0;
373 unsigned int m_viewportSize = 1;
376 bool m_verticalScroll =
true;
379 bool m_verticalImage =
true;
382 unsigned int m_scrollAmount = 1;
385 bool m_autoHide =
true;
388 bool m_mouseDownOnArrow =
false;
390 bool m_sizeSet =
false;
392 std::chrono::steady_clock::time_point m_lastSuccessfulScrollTime;
393 Vector2f m_lastSuccessfulScrollPos;
398 FloatRect m_arrowDown;
400 Sprite m_spriteTrack;
401 Sprite m_spriteTrackHover;
402 Sprite m_spriteThumb;
403 Sprite m_spriteThumbHover;
404 Sprite m_spriteArrowUp;
405 Sprite m_spriteArrowUpHover;
406 Sprite m_spriteArrowDown;
407 Sprite m_spriteArrowDownHover;
410 Color m_thumbColorCached;
411 Color m_thumbColorHoverCached;
412 Color m_trackColorCached;
413 Color m_trackColorHoverCached;
414 Color m_arrowColorCached;
415 Color m_arrowColorHoverCached;
416 Color m_arrowBackgroundColorCached;
417 Color m_arrowBackgroundColorHoverCached;
Base class for render targets.
Definition BackendRenderTarget.hpp:48
Class to store the position or size of a widget.
Definition Layout.hpp:289
Signal to which the user can subscribe to get callbacks from.
Definition Signal.hpp:62
Wrapper class to store strings.
Definition String.hpp:101
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:39
States used for drawing.
Definition RenderStates.hpp:39