26#ifndef TGUI_SCROLLBAR_HPP
27#define TGUI_SCROLLBAR_HPP
30#include <TGUI/Widget.hpp>
36 class ScrollbarRenderer;
53 typedef std::shared_ptr<Scrollbar>
Ptr;
54 typedef std::shared_ptr<const Scrollbar>
ConstPtr;
91 return std::static_pointer_cast<ScrollbarRenderer>(m_renderer);
206 m_scrollAmount = scrollAmount;
218 return m_scrollAmount;
232 m_autoHide = autoHide;
261 virtual bool mouseOnWidget(
float x,
float y)
const override;
266 virtual void leftMousePressed(
float x,
float y)
override;
271 virtual void leftMouseReleased(
float x,
float y)
override;
276 virtual void mouseMoved(
float x,
float y)
override;
281 virtual void mouseWheelMoved(
int delta,
int x,
int y)
override;
286 virtual void widgetFocused()
override;
291 virtual void mouseNoLongerDown()
override;
309 virtual void reload(
const std::string& primary =
"",
const std::string& secondary =
"",
bool force =
false)
override;
317 return std::make_shared<Scrollbar>(*
this);
324 virtual void draw(sf::RenderTarget& target, sf::RenderStates states)
const override;
339 Part m_mouseHoverOverPart = Part::Thumb;
342 bool m_mouseDownOnThumb =
false;
343 sf::Vector2f m_mouseDownOnThumbPos;
345 unsigned int m_maximum = 10;
346 unsigned int m_value = 0;
349 unsigned int m_lowValue = 6;
352 bool m_verticalScroll =
true;
355 bool m_verticalImage =
true;
358 unsigned int m_scrollAmount = 1;
361 bool m_autoHide =
true;
364 bool m_mouseDownOnArrow =
false;
366 sf::FloatRect m_track;
367 sf::FloatRect m_thumb;
368 sf::FloatRect m_arrowUp;
369 sf::FloatRect m_arrowDown;
372 friend class ListBox;
373 friend class ComboBox;
374 friend class TextBox;
375 friend class ChatBox;
377 friend class ScrollbarRenderer;
408 virtual void setProperty(std::string property,
const std::string& value)
override;
696 void draw(sf::RenderTarget& target, sf::RenderStates states)
const;
705 virtual std::shared_ptr<WidgetRenderer> clone(
Widget* widget)
override;
717 Texture m_textureArrowUpNormal;
719 Texture m_textureArrowDownNormal;
720 Texture m_textureArrowDownHover;
722 sf::Color m_trackColorNormal = {255, 255, 255};
723 sf::Color m_trackColorHover = {255, 255, 255};
724 sf::Color m_thumbColorNormal = {220, 220, 220};
725 sf::Color m_thumbColorHover = {210, 210, 210};
726 sf::Color m_arrowBackgroundColorNormal = {245, 245, 245};
727 sf::Color m_arrowBackgroundColorHover = {255, 255, 255};
728 sf::Color m_arrowColorNormal = { 60, 60, 60};
729 sf::Color m_arrowColorHover = { 0, 0, 0};
731 friend class Scrollbar;
Implicit converter for colors.
Definition: Color.hpp:40
Class to store the position or size of a widget.
Definition: Layout.hpp:255
Implicit converter for settable properties.
Definition: ObjectConverter.hpp:43
Definition: Texture.hpp:45
Namespace that contains all TGUI functions and classes.
Definition: Animation.hpp:34