3#include "structure/design_pattern/spk_observable_value.hpp"
4#include "structure/system/event/spk_mouse_event.hpp"
5#include "structure/widget/components/spk_nine_slice_background.hpp"
6#include "structure/widget/spk_widget.hpp"
7#include "type/spk_orientation.hpp"
29 float _thumbSizeRatio = 0.25f;
30 spk::Orientation _orientation = spk::Orientation::Vertical;
35 bool _isDragging =
false;
37 void _updateBodyGeometry();
38 float _ratioFromPosition(
const spk::Vector2Int &p_position)
const;
Renders a scalable nine-slice background using a sprite sheet.
Definition spk_nine_slice_background.hpp:25
Stores a value and notifies subscribers whenever it changes.
Definition spk_observable_value.hpp:22
spk::TContractProvider< TType >::Contract Contract
Contract type for subscriptions.
Definition spk_observable_value.hpp:27
void setRatio(float p_ratio)
Sets the ratio value.
Definition spk_slider.cpp:48
void _onMouseReleaseEvent(spk::MouseReleaseEvent &p_event) override
Handles mouse release events.
Definition spk_slider.cpp:133
void setBodyCornerSize(const spk::Vector2UInt &p_cornerSize)
Sets the body corner size.
Definition spk_slider.cpp:89
void _onPaintEvent(spk::PaintEvent &p_event) override
Paints the slider visuals.
Definition spk_slider.cpp:110
spk::ObservableValue< float > & ratio()
Returns the ratio observable.
Definition spk_slider.cpp:94
Slider(const std::wstring &p_name, spk::Widget *p_parent)
Builds a slider widget.
Definition spk_slider.cpp:8
void setBackgroundCornerSize(const spk::Vector2UInt &p_cornerSize)
Sets the background corner size.
Definition spk_slider.cpp:84
void adjustRatio(float p_delta)
Adjusts the ratio by a delta.
Definition spk_slider.cpp:59
void _onMousePressEvent(spk::MousePressEvent &p_event) override
Handles mouse press events.
Definition spk_slider.cpp:116
float ratioValue() const
Returns the ratio value.
Definition spk_slider.cpp:64
void setBackgroundTexture(const spk::SpriteSheet *p_spriteSheet)
Sets the background texture.
Definition spk_slider.cpp:74
void setBodyTexture(const spk::SpriteSheet *p_spriteSheet)
Sets the body texture.
Definition spk_slider.cpp:79
float thumbSizeRatio() const
Returns the thumb size ratio.
Definition spk_slider.cpp:69
void _onMouseMotionEvent(spk::MouseMotionEvent &p_event) override
Handles mouse motion events.
Definition spk_slider.cpp:150
void setOrientation(spk::Orientation p_orientation)
Sets the slider orientation.
Definition spk_slider.cpp:37
void _onGeometryChange() override
Updates geometry when size changes.
Definition spk_slider.cpp:104
void setThumbSizeRatio(float p_ratio)
Sets the thumb size ratio relative to the track.
Definition spk_slider.cpp:25
Loads an image and exposes individual sprite regions.
Definition spk_sprite_sheet.hpp:21
Mouse move event carrying current position.
Definition spk_mouse_event.hpp:50
Mouse button press event.
Definition spk_mouse_event.hpp:14
Mouse button release event.
Definition spk_mouse_event.hpp:26
Event emitted when a drawable region needs repainting.
Definition spk_paint_event.hpp:19