TGUI
1.7
|
#include <TGUI/Widgets/Scrollbar.hpp>
Public Types | |
enum class | Policy { Automatic , Always , Never } |
Defines when the scrollbar shows up. More... | |
using | Ptr = std::shared_ptr<Scrollbar> |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr<const Scrollbar> |
Shared constant widget pointer. | |
Public Types inherited from tgui::Widget | |
using | Ptr = std::shared_ptr<Widget> |
Shared widget pointer. | |
using | ConstPtr = std::shared_ptr<const Widget> |
Shared constant widget pointer. | |
Public Member Functions | |
Scrollbar (const char *typeName=StaticWidgetType, bool initRenderer=true) | |
ScrollbarRenderer * | getSharedRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
const ScrollbarRenderer * | getSharedRenderer () const override |
ScrollbarRenderer * | getRenderer () override |
Returns the renderer, which gives access to functions that determine how the widget is displayed. | |
void | setSize (const Layout2d &size) override |
Changes the size of the scrollbar. | |
void | setMaximum (unsigned int maximum) |
Sets a maximum value. | |
unsigned int | getMaximum () const |
Returns the maximum value. | |
void | setValue (unsigned int value) |
Changes the current value. | |
unsigned int | getValue () const |
Returns the current value. | |
void | setViewportSize (unsigned int viewport) |
Changes the viewport size. | |
unsigned int | getViewportSize () const |
Returns the viewport size. | |
unsigned int | getMaxValue () const |
Returns the maximum value that can be set with the setValue function. | |
void | setScrollAmount (unsigned int scrollAmount) |
Changes how much the value changes when scrolling or pressing one of the arrows of the scrollbar. | |
unsigned int | getScrollAmount () const |
Returns how much the value changes when scrolling or pressing one of the arrows of the scrollbar. | |
void | setAutoHide (bool autoHide) |
Changes whether the scrollbar should hide automatically or not. | |
bool | getAutoHide () const |
Returns whether the scrollbar is hiding automatically or not. | |
void | setPolicy (Policy policy) |
Changes when the scrollbar should be displayed. | |
Scrollbar::Policy | getPolicy () const |
Returns when the scrollbar should be displayed. | |
bool | isShown () const |
Returns whether the scrollbar is currently visible. | |
void | setVerticalScroll (bool vertical) |
Changes whether the scrollbar lies horizontally or vertically. | |
bool | getVerticalScroll () const |
Returns whether the scrollbar lies horizontally or vertically. | |
void | setOrientation (Orientation orientation) |
Changes whether the scrollbar lies horizontally or vertically. | |
Orientation | getOrientation () const |
Returns whether the scrollbar lies horizontally or vertically. | |
float | getDefaultWidth () const |
Returns the default width of the scrollbar. | |
bool | canGainFocus () const override |
Returns whether the widget can gain focus. | |
bool | isMouseOnWidget (Vector2f pos) const override |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget. | |
bool | leftMousePressed (Vector2f pos) override |
Called by the parent when the left mouse button goes down on top of the widget. | |
void | leftMouseReleased (Vector2f pos) override |
void | mouseMoved (Vector2f pos) override |
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 touchscreen) | |
void | leftMouseButtonNoLongerDown () override |
void | draw (BackendRenderTarget &target, RenderStates states) const override |
Draw the widget to a render target. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
Public Member Functions inherited from tgui::Widget | |
Widget (const char *typeName, bool initRenderer) | |
Widget (const Widget &) | |
Copy constructor. | |
Widget (Widget &&) noexcept | |
Move constructor. | |
virtual | ~Widget () |
Destructor. | |
Widget & | operator= (const Widget &) |
Overload of copy assignment operator. | |
Widget & | operator= (Widget &&) noexcept |
Move assignment. | |
void | setRenderer (std::shared_ptr< RendererData > rendererData) |
Sets a new renderer for the widget. The renderer determines how the widget looks. | |
virtual void | setPosition (const Layout2d &position) |
sets the position of the widget | |
void | setPosition (Layout x, Layout y) |
Sets the position of the widget. | |
Vector2f | getPosition () const |
Gets the position of the widget. | |
void | setSize (Layout width, Layout height) |
Changes the size of the widget. | |
void | setWidth (Layout width) |
Changes the width of the widget. | |
void | setHeight (Layout height) |
Changes the height of the widget. | |
Vector2f | getSize () const |
Returns the size of the widget. | |
virtual Vector2f | getFullSize () const |
Returns the entire size that the widget is using. | |
virtual Vector2f | getAbsolutePosition (Vector2f offset={}) const |
Get the absolute position of the widget instead of the relative position to its parent. | |
virtual Vector2f | getWidgetOffset () const |
Returns the distance between the position where the widget is drawn and where the widget is placed. | |
void | setAutoLayout (AutoLayout layout) |
Sets how the position is determined compared to the other widgets in the parent. | |
AutoLayout | getAutoLayout () const |
Returns how the position is determined compared to the other widgets in the parent. | |
void | setOrigin (float x, float y) |
Sets the origin point on which the position, scale and rotation is based. | |
void | setOrigin (Vector2f origin) |
Sets the origin point on which the position, scale and rotation is based. | |
Vector2f | getOrigin () const |
Returns the relative origin point on which the position, scale and rotation is based. | |
void | setScale (Vector2f scaleFactors) |
Sets the scaling to be applied to the widget. | |
void | setScale (Vector2f scaleFactors, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor) |
Sets the scaling to be applied to the widget. | |
void | setScale (float scaleFactor, Vector2f origin) |
Sets the scaling to be applied to the widget. | |
Vector2f | getScale () const |
Returns the scaling to be applied to the widget. | |
Vector2f | getScaleOrigin () const |
Returns the origin used for scaling. | |
void | setRotation (float angle) |
Sets the rotation to be applied to the widget. | |
void | setRotation (float angle, Vector2f origin) |
Sets the rotation to be applied to the widget. | |
float | getRotation () const |
Returns the rotation to be applied to the widget. | |
Vector2f | getRotationOrigin () const |
Returns the origin used for rotations. | |
void | showWithEffect (ShowEffectType type, Duration duration) |
Shows the widget by introducing it with an animation. | |
void | hideWithEffect (ShowEffectType type, Duration duration) |
Hides the widget by making it leave with an animation. | |
void | moveWithAnimation (Layout2d position, Duration duration) |
Moves the widget from its current position to the given position, over a given duration. | |
void | resizeWithAnimation (Layout2d size, Duration duration) |
Resizes the widget from its current size to the given size, over a given duration. | |
virtual void | setVisible (bool visible) |
Shows or hides a widget. | |
bool | isVisible () const |
Returns true when the widget is visible. | |
virtual void | setEnabled (bool enabled) |
Enables or disables the widget. | |
bool | isEnabled () const |
Returns true when the widget is enabled. | |
virtual void | setFocused (bool focused) |
Focus or unfocus the widget. | |
bool | isFocused () const |
Returns true when the widget is focused and false otherwise. | |
const String & | getWidgetType () const |
Returns the type of the widget. | |
Container * | getParent () const |
Returns a pointer to the parent widget. | |
BackendGui * | getParentGui () const |
Returns a pointer to the gui to which this widget belongs. | |
bool | isAnimationPlaying () const |
Returns whether there is an active animation (started with showWithEffect or hideWithEffect) | |
void | moveToFront () |
Places the widget before all other widgets. | |
void | moveToBack () |
Places the widget behind all other widgets. | |
void | setUserData (Any userData) |
Stores some data into the widget. | |
template<typename DataType > | |
DataType | getUserData () const |
Returns data stored in the widget. | |
bool | hasUserData () const |
Returns whether data stored in the widget. | |
void | setInheritedFont (const Font &font) |
Sets the font of the widget that is used when no font is set in the renderer. | |
const Font & | getInheritedFont () const |
Returns the font of the widget that is used when no font is set in the renderer. | |
void | setInheritedOpacity (float opacity) |
Sets the opacity of the widget that will be multiplied with the opacity set in the renderer. | |
float | getInheritedOpacity () const |
Returns the opacity of the widget that is multiplied with the opacity set in the renderer. | |
void | setTextSize (unsigned int size) |
Changes the character size of text in this widget if it uses text. | |
unsigned int | getTextSize () const |
Returns the character size of text in this widget. | |
void | setToolTip (Widget::Ptr toolTip) |
Sets the tool tip that should be displayed when hovering over the widget. | |
Widget::Ptr | getToolTip () const |
Returns the tool tip that is displayed when hovering over the widget. | |
void | setWidgetName (const String &name) |
Changes the name of a widget. | |
String | getWidgetName () const |
Returns the name of a widget. | |
void | setMouseCursor (Cursor::Type cursor) |
Changes which mouse cursor is shown when hovering over the widget. | |
Cursor::Type | getMouseCursor () const |
Returns which mouse cursor is shown when hovering over the widget. | |
void | setFocusable (bool focusable) |
Changes whether a widget could be focused. | |
bool | isFocusable () const |
Returns whether a widget could be focused. | |
void | setNavigationUp (const Widget::Ptr &widgetAbove) |
Changes which widget should become focused when navigating upwards from this widget. | |
Widget::Ptr | getNavigationUp () const |
Returns which widget would become focused when navigating upwards from this widget. | |
void | setNavigationDown (const Widget::Ptr &widgetBelow) |
Changes which widget should become focused when navigating downwards from this widget. | |
Widget::Ptr | getNavigationDown () const |
Returns which widget would become focused when navigating downwards from this widget. | |
void | setNavigationLeft (const Widget::Ptr &widgetLeft) |
Changes which widget should become focused when navigating to the left from this widget. | |
Widget::Ptr | getNavigationLeft () const |
Returns which widget would become focused when navigating to the left from this widget. | |
void | setNavigationRight (const Widget::Ptr &widgetRight) |
Changes which widget should become focused when navigating to the right from this widget. | |
Widget::Ptr | getNavigationRight () const |
Returns which widget would become focused when navigating to the right from this widget. | |
void | setIgnoreMouseEvents (bool ignore) |
Sets whether the widget should completely ignore mouse events and let them pass to the widgets behind it. | |
bool | getIgnoreMouseEvents () const |
Returns whether the widget is ignoring mouse events and letting them pass to the widgets behind it. | |
void | finishAllAnimations () |
Makes all animations of the widget finish immediately. | |
bool | isContainer () const |
Returns whether the widget is a container widget or not. | |
bool | isMouseDown () const |
Returns whether the left mouse button has been pressed on top of the widget. | |
virtual void | setParent (Container *parent) |
virtual bool | updateTime (Duration elapsedTime) |
void | setAutoLayoutUpdateEnabled (bool enabled) |
virtual void | rightMousePressed (Vector2f pos) |
virtual void | rightMouseReleased (Vector2f pos) |
virtual void | mouseReleased (Event::MouseButton button, Vector2f pos) |
virtual void | keyPressed (const Event::KeyEvent &event) |
virtual bool | canHandleKeyPress (const Event::KeyEvent &event) |
Called by the parent of the widget to check if keyPressed would process the event. | |
virtual void | textEntered (char32_t key) |
virtual void | mouseNoLongerOnWidget () |
virtual void | rightMouseButtonNoLongerDown () |
virtual Widget::Ptr | askToolTip (Vector2f mousePos) |
const Layout2d & | getPositionLayout () const |
const Layout2d & | getSizeLayout () const |
void | bindPositionLayout (Layout *layout) |
void | unbindPositionLayout (Layout *layout) |
void | bindSizeLayout (Layout *layout) |
void | unbindSizeLayout (Layout *layout) |
template<typename WidgetType > | |
std::shared_ptr< const WidgetType > | cast () const |
Downcast const widget. | |
template<typename WidgetType > | |
std::shared_ptr< WidgetType > | cast () |
Downcast widget. | |
void | rendererChangedCallback (const String &property) |
virtual void | updateTextSize () |
Static Public Member Functions | |
static Scrollbar::Ptr | create (Orientation orientation=Orientation::Vertical) |
Creates a new scrollbar widget. | |
static Scrollbar::Ptr | copy (const Scrollbar::ConstPtr &scrollbar) |
Makes a copy of another scrollbar. | |
Public Attributes | |
SignalUInt | onValueChange = {"ValueChanged"} |
Value of the scrollbar changed. Optional parameter: new value. | |
Public Attributes inherited from tgui::Widget | |
SignalVector2f | onPositionChange = {"PositionChanged"} |
The position of the widget changed. Optional parameter: new position. | |
SignalVector2f | onSizeChange = {"SizeChanged"} |
The size of the widget changed. Optional parameter: new size. | |
Signal | onFocus = {"Focused"} |
The widget was focused. | |
Signal | onUnfocus = {"Unfocused"} |
The widget was unfocused. | |
Signal | onMouseEnter = {"MouseEntered"} |
The mouse entered the widget. | |
Signal | onMouseLeave = {"MouseLeft"} |
The mouse left the widget. | |
SignalShowEffect | onShowEffectFinish = {"ShowEffectFinished"} |
A show or hide effect finished. Optional parameters: effect type, new widget visibility or both. | |
SignalAnimationType | onAnimationFinish = {"AnimationFinished"} |
An animation has finished. | |
Static Public Attributes | |
static constexpr const char | StaticWidgetType [] = "Scrollbar" |
Type name of the widget. | |
Protected Types | |
enum class | Part { Track , Thumb , ArrowUp , ArrowDown } |
Protected Types inherited from tgui::Widget | |
using | SavingRenderersMap = std::map<const Widget*, std::pair<std::unique_ptr<DataIO::Node>, String>> |
using | LoadingRenderersMap = std::map<String, std::shared_ptr<RendererData>> |
Protected Member Functions | |
void | updateSize () |
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. | |
void | load (const std::unique_ptr< DataIO::Node > &node, const LoadingRenderersMap &renderers) override |
Loads the widget from a tree of nodes. | |
void | updateThumbPosition () |
Widget::Ptr | clone () const override |
Makes a copy of the widget if you don't know its exact type. | |
Protected Member Functions inherited from tgui::Widget | |
virtual void | mouseEnteredWidget () |
This function is called when the mouse enters the widget. | |
virtual void | mouseLeftWidget () |
This function is called when the mouse leaves the widget. | |
void | recalculateBoundPositionLayouts () |
Calls recalculateValue() on each layout in m_boundPositionLayouts. | |
void | recalculateBoundSizeLayouts () |
Calls recalculateValue() on each layout in m_boundSizeLayouts. | |
Protected Attributes | |
Part | m_mouseHoverOverPart = Part::Thumb |
bool | m_mouseDownOnThumb = false |
Vector2f | m_mouseDownOnThumbPos |
unsigned int | m_maximum = 10 |
unsigned int | m_value = 0 |
unsigned int | m_viewportSize = 1 |
Orientation | m_orientation = Orientation::Vertical |
Orientation | m_imageOrientation = Orientation::Vertical |
bool | m_orientationLocked = false |
unsigned int | m_scrollAmount = 1 |
Scrollbar::Policy | m_policy = Scrollbar::Policy::Automatic |
bool | m_mouseDownOnArrow = false |
bool | m_sizeSet = false |
std::chrono::steady_clock::time_point | m_lastSuccessfulScrollTime |
Vector2f | m_lastSuccessfulScrollPos |
FloatRect | m_track |
FloatRect | m_thumb |
FloatRect | m_arrowUp |
FloatRect | m_arrowDown |
Sprite | m_spriteTrack |
Sprite | m_spriteTrackHover |
Sprite | m_spriteThumb |
Sprite | m_spriteThumbHover |
Sprite | m_spriteArrowUp |
Sprite | m_spriteArrowUpHover |
Sprite | m_spriteArrowDown |
Sprite | m_spriteArrowDownHover |
Color | m_thumbColorCached |
Color | m_thumbColorHoverCached |
Color | m_trackColorCached |
Color | m_trackColorHoverCached |
Color | m_arrowColorCached |
Color | m_arrowColorHoverCached |
Color | m_arrowBackgroundColorCached |
Color | m_arrowBackgroundColorHoverCached |
Protected Attributes inherited from tgui::Widget | |
String | m_type |
String | m_name |
Layout2d | m_position |
Stores the position of this widget. | |
Layout2d | m_size |
Stores the size of this widget. | |
unsigned int | m_textSize = 0 |
Vector2f | m_origin |
Optional< Vector2f > | m_rotationOrigin |
Optional< Vector2f > | m_scaleOrigin |
Vector2f | m_scaleFactors = {1, 1} |
float | m_rotationDeg = 0 |
Vector2f | m_prevPosition |
Vector2f | m_prevSize |
std::unordered_set< Layout * > | m_boundPositionLayouts |
std::unordered_set< Layout * > | m_boundSizeLayouts |
bool | m_enabled = true |
Stores the flag indicating whether this widget is enabled. | |
bool | m_visible = true |
Stores the flag indicating whether this widget is visible. | |
Container * | m_parent = nullptr |
BackendGui * | m_parentGui = nullptr |
bool | m_mouseHover = false |
bool | m_mouseDown = false |
bool | m_focused = false |
bool | m_focusable = true |
std::weak_ptr< Widget > | m_navWidgetUp |
std::weak_ptr< Widget > | m_navWidgetDown |
std::weak_ptr< Widget > | m_navWidgetRight |
std::weak_ptr< Widget > | m_navWidgetLeft |
Duration | m_animationTimeElapsed |
bool | m_containerWidget = false |
Widget::Ptr | m_toolTip = nullptr |
aurora::CopiedPtr< WidgetRenderer > | m_renderer = nullptr |
std::vector< std::unique_ptr< priv::Animation > > | m_showAnimations |
Font | m_inheritedFont |
float | m_inheritedOpacity = 1 |
Any | m_userData |
Cursor::Type | m_mouseCursor = Cursor::Type::Arrow |
AutoLayout | m_autoLayout = AutoLayout::Manual |
bool | m_autoLayoutUpdateEnabled = true |
bool | m_ignoreMouseEvents = false |
Font | m_fontCached = Font::getGlobalFont() |
float | m_opacityCached = 1 |
bool | m_transparentTextureCached = false |
unsigned int | m_textSizeCached = 0 |
Scrollbar widget.
|
strong |
|
nodiscardoverridevirtual |
Returns whether the widget can gain focus.
For the scrollbar widget this function returns true when the scrollbar is shown and false when it is hidden.
Reimplemented from tgui::Widget.
|
nodiscardoverrideprotectedvirtual |
Makes a copy of the widget if you don't know its exact type.
This function should only be used when you don't know the type of the widget. If you know what kind of widget you are copying, you should use the copy function.
Implements tgui::Widget.
|
staticnodiscard |
Makes a copy of another scrollbar.
scrollbar | The other scrollbar |
|
staticnodiscard |
Creates a new scrollbar widget.
orientation | Whether the scrollbar lies horizontally or vertically |
|
overridevirtual |
Draw the widget to a render target.
target | Render target to draw to |
states | Current render states |
Implements tgui::Widget.
Reimplemented in tgui::ScrollbarChildWidget.
|
nodiscard |
Returns whether the scrollbar is hiding automatically or not.
When true (default), the scrollbar will not be drawn when the maximum is smaller than the viewportSize.
|
nodiscard |
Returns the default width of the scrollbar.
The default width is the value the scrollbar has on construction or the size of the texture once a texture is set.
|
nodiscard |
Returns the maximum value.
The default maximum value is 10.
|
nodiscard |
Returns the maximum value that can be set with the setValue function.
|
nodiscard |
Returns whether the scrollbar lies horizontally or vertically.
|
nodiscard |
Returns when the scrollbar should be displayed.
|
nodiscardoverridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
|
nodiscard |
Returns how much the value changes when scrolling or pressing one of the arrows of the scrollbar.
|
nodiscardoverridevirtual |
Reimplemented from tgui::Widget.
|
nodiscardoverridevirtual |
Returns the renderer, which gives access to functions that determine how the widget is displayed.
Reimplemented from tgui::Widget.
Retrieves a signal based on its name.
signalName | Name of the signal |
Exception | when the name does not match any signal |
Reimplemented from tgui::Widget.
|
nodiscard |
Returns the current value.
The default value is 0.
|
nodiscard |
Returns whether the scrollbar lies horizontally or vertically.
|
nodiscard |
Returns the viewport size.
|
nodiscardoverridevirtual |
Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget.
Implements tgui::Widget.
|
nodiscard |
Returns whether the scrollbar is currently visible.
If setVisible(false) was called to make the widget invisible then this function always returns false, irrelevant of the policy. Otherwise the returned value depends on the policy:
When this function returns false, the scrollbar is hidden and acts as if setVisible(false) was called.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overridevirtual |
Called by the parent when the left mouse button goes down on top of the widget.
pos | Mouse position in view coordinates relative to the parent widget |
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Loads the widget from a tree of nodes.
Reimplemented from tgui::Widget.
|
overridevirtual |
Reimplemented from tgui::Widget.
|
overrideprotectedvirtual |
Function called when one of the properties of the renderer is changed.
property | Name of the property that was changed |
Reimplemented from tgui::Widget.
|
nodiscardoverrideprotectedvirtual |
Saves the widget as a tree node in order to save it to a file.
Reimplemented from tgui::Widget.
|
overridevirtual |
Called by the parent on scroll event (either from mouse wheel of from two finger scrolling on a touchscreen)
delta | Scroll offset (positive is up, negative is down). High-precision mice may use non-integral offsets. |
pos | Mouse position, or the initial position of the touch events |
touch | Was this a touch event or a mouse wheel scroll? |
Reimplemented from tgui::Widget.
void tgui::Scrollbar::setAutoHide | ( | bool | autoHide | ) |
Changes whether the scrollbar should hide automatically or not.
autoHide | Should the scrollbar be invisible when you can't scroll? |
When true (default), the scrollbar will not be drawn when the maximum is smaller than the viewportSize.
void tgui::Scrollbar::setMaximum | ( | unsigned int | maximum | ) |
Sets a maximum value.
maximum | The new maximum value |
When the value is bigger than (maximum - viewportSize), the value is set to maximum - viewportSize. The default maximum value is 10.
void tgui::Scrollbar::setOrientation | ( | Orientation | orientation | ) |
Changes whether the scrollbar lies horizontally or vertically.
orientation | Orientation of the scrollbar |
This function will swap the width and height of the scrollbar if it didn't lie in the wanted direction.
void tgui::Scrollbar::setPolicy | ( | Policy | policy | ) |
Changes when the scrollbar should be displayed.
policy | The policy for displaying the scrollbar |
void tgui::Scrollbar::setScrollAmount | ( | unsigned int | scrollAmount | ) |
Changes how much the value changes when scrolling or pressing one of the arrows of the scrollbar.
scrollAmount | How far should the scrollbar scroll when an arrow is clicked? |
|
overridevirtual |
Changes the size of the scrollbar.
size | The new size of the scrollbar |
Note that the Orientation propery is changed by this function based on the given width and height, unless the setOrientation function was previously called to explicitly select the orientation.
Reimplemented from tgui::Widget.
Changes the size of the widget.
width | Width of the widget |
height | Height of the widget |
void tgui::Scrollbar::setValue | ( | unsigned int | value | ) |
Changes the current value.
value | The new value |
The value has to be smaller than maximum - viewportSize.
void tgui::Scrollbar::setVerticalScroll | ( | bool | vertical | ) |
Changes whether the scrollbar lies horizontally or vertically.
vertical | Should the scrollbar lie vertically? |
This function will swap the width and height of the scrollbar if it didn't lie in the wanted direction.
void tgui::Scrollbar::setViewportSize | ( | unsigned int | viewport | ) |
Changes the viewport size.
viewport | The new viewport size |
If the contents through which the scrollbar can scroll is 600 pixels of which only 200 pixels are visible on the screen then the viewport size should be set to 200 and the maximum should be set to 600. The thumb will occupy one third of the scrollbar track in this case. The possible scrollbar values are in the range [0, 400] in this case.
Until the maximum is bigger than this value, no scrollbar will be drawn. You can however choose to always draw the scrollbar by calling setPolicy(Policy::Always).