Flint Engine
Modular C++20 2D game engine powered by SDL3
Loading...
Searching...
No Matches
Flint::UISlider Class Reference

An interactive value-selector bar supporting mouse dragging and gamepad focus adjustments. More...

#include <flint/ui/widgets/slider.h>

+ Inheritance diagram for Flint::UISlider:
+ Collaboration diagram for Flint::UISlider:

Classes

struct  SliderProperties
 Architectural constraints governing value clamping and stepping metrics. More...
 
struct  SliderStyle
 Visual properties defining the slider track, fill area, and thumb indicator. More...
 

Public Member Functions

void setProperties (SliderProperties properties)
 Assigns minimum, maximum, and quantization stepping properties.
 
void setRange (float min, float max)
 Sets the absolute functional minimum and maximum selection boundaries.
 
void setStyle (const SliderStyle &style)
 Overrides the visual style parameters for the track and slider handles.
 
void setTrackHeight (float height)
 
void setThumbWidth (float width)
 
void setThumbHeight (float height)
 
void setThumbColor (const Color &color)
 
void setFillColor (const Color &color)
 
void setTrackColor (const Color &color)
 
float applyStep (float value) const
 Snaps a raw value to the nearest incremental step boundary configuration.
 
void setValue (float value)
 Sets the tracking selection value directly, applying steps and clamps.
 
const SliderProperties & getProperties () const
 
const SliderStyle & getStyle () const
 
const float & getValue () const
 Gets the current stepped, clamped value of the slider.
 
void setFocused (bool focused) override
 Sets whether this node is currently focused.
 
void measure (UIConstraints constraints) override
 Pass 1 of the layout engine: Crawls branches recursively to compute base display boundaries requested by child assets.
 
void arrange (const Rect< float > &rect) override
 Pass 2 of the layout engine: Evaluates layout adjustments to pin final screen coordinate values to the tree structures.
 
void handleEvent (const UIEvent &event) override
 Routes interaction updates, translating drag motions and directional navigations.
 
void render (UICanvas &canvas) const override
 Draws the slider track background, active fill bar, and handle quad.
 
bool consumesDirectionalInput () const override
 Dictates whether this widget captures directional inputs instead of passing them to focus navigation.
 
bool isFocusable () const override
 Dictates if keyboard selection trackers or gamepad vectors can snap control focuses onto this item.
 
void onChange (std::function< void(float)> callback)
 Registers a function callback to execute whenever the slider value mutations occur.
 
bool hitTest (Vec2f point) const override
 Computes true if a vector coordinate sits inside the spatial arrangement bounding tracking layout box.
 
- Public Member Functions inherited from Flint::UINode
void setContext (UIContext *context)
 Recursively propagates a pointer back to the parent-managing workspace layer.
 
void addChild (std::unique_ptr< UINode > child)
 Inserts a child widget to live inside this layout element container boundary.
 
void setPosition (Vec2f position)
 Updates the relative local rendering position coordinates of this element block.
 
Vec2f getPosition () const
 Get the node's relative local position.
 
void setSize (Vec2f size)
 Assigns a manual static override layout budget footprint dimensions limit.
 
Vec2f getSize () const
 Get the node's base size.
 
void setVisible (bool visible)
 Sets widget visibility.
 
void setEnabled (bool enabled)
 Enables or disables user interaction for this widget.
 
void setID (std::string id)
 Sets a unique string identifier for this node.
 
const std::string & getId () const
 Gets the unique lookup ID string of this node.
 
const Rect< float > & getLayoutRect () const
 Gets the final screen-space bounding box calculated during the arrange pass.
 
bool isVisible () const
 
bool isEnabled () const
 
Vec2f getDesiredSize () const
 Get the node's requested size from the measure pass.
 
const std::vector< std::unique_ptr< UINode > > & getChildren () const
 Get the list of this node's child nodes.
 
void setText (std::string text)
 Sets the text content for widgets that display text.
 
const std::string & getText () const
 Gets the current text content of the widget.
 
void setFontSize (uint16_t fontSize)
 Set the rendering font size in points.
 
uint16_t getFontSize () const
 
void setColor (Color color)
 Sets the base color of the widget.
 
Color getColor () const
 
virtual void setNormalColor (Color color)
 Sets the base color of the widget.
 
virtual void setActiveColor (Color color)
 Sets visual colors used when inputs hover across or lock selections on the widget container.
 
void setFont (std::string name)
 Assigns a custom typography description token mapping back to cached font elements.
 
void setFontWeight (uint16_t weight)
 Assigns thickness parameters across structural type vectors (e.g., 400 for regular, 700 for bold).
 
void setTextOpticalBias (float bias)
 
float getTextOpticalBias () const
 
bool isFocused () const
 
void setHorizontalAlign (UIAlign align)
 
void setVerticalAlign (UIAlign align)
 
UIAlign getHorizontalAlign () const
 
UIAlign getVerticalAlign () const
 
void setLayoutGrow (float grow)
 Assigns dynamic expansion multipliers used to balance alignment distributions inside sequential layout panels.
 
float getLayoutGrow () const
 Gets the dynamic expansion weight used inside stack layout grids.
 

Protected Member Functions

const Color & currentColor () const override
 Resolves handle colors by evaluating hover, active focus, and dragging parameters.
 
- Protected Member Functions inherited from Flint::UINode

Additional Inherited Members

- Protected Attributes inherited from Flint::UINode
std::string m_id
 
UINode * m_parent = nullptr
 
std::vector< std::unique_ptr< UINode > > m_children
 
Vec2f m_localPosition {}
 
Vec2f m_desiredSize {}
 
Vec2f m_baseSize {}
 
Rect< float > m_layoutRect {}
 
bool m_visible = true
 
bool m_enabled = true
 
float m_displayScale = 1.0f
 
std::string m_fontName
 
uint16_t m_fontWeight = 400
 
uint16_t m_fontSize = 16
 
float m_textOpticalBias = 0.f
 
std::string m_text
 
Color m_normalColor = Colors::white
 
Color m_activeColor = {0, 255, 0, 255}
 
bool m_hovered = false
 
bool m_focused = false
 
UIAlign m_horizontalAlign = UIAlign::Stretch
 
UIAlign m_verticalAlign = UIAlign::Start
 
float m_layoutGrow = 0.f
 

Detailed Description

An interactive value-selector bar supporting mouse dragging and gamepad focus adjustments.

Definition at line 15 of file slider.h.


The documentation for this class was generated from the following file: