|
Flint Engine
Modular C++20 2D game engine powered by SDL3
|
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 |
An interactive value-selector bar supporting mouse dragging and gamepad focus adjustments.