HoverRace
2.0
|
A slider for selecting values from a range. More...
#include <Slider.h>
Classes | |
struct | Props |
Public Types | |
using | valueChangedSignal_t = boost::signals2::signal< void(double)> |
![]() | |
using | clickedSignal_t = boost::signals2::signal< void(ClickRegion &)> |
![]() | |
enum | Alignment { Alignment::NW, Alignment::N, Alignment::NE, Alignment::E, Alignment::SE, Alignment::S, Alignment::SW, Alignment::W, Alignment::CENTER } |
Imagine the component pinned to the container with a thumbtack. More... | |
using | focusRelinquishedSignal_t = boost::signals2::signal< void(UiViewModel &, const Control::Nav &)> |
using | focusRequestedSignal_t = boost::signals2::signal< void(UiViewModel &)> |
Public Member Functions | |
Slider (Display &display, double min, double max, double step, uiLayoutFlags_t layoutFlags=0) | |
Constructor. More... | |
virtual | ~Slider () |
void | AttachView (Display &disp) override |
void | FireModelUpdate (int prop) override |
Indicate that a model property has changed. More... | |
FillBox * | GetBackgroundChild () const |
FillBox * | GetIndicatorChild () const |
double | GetMax () const |
double | GetMin () const |
double | GetStep () const |
double | GetValue () const |
valueChangedSignal_t & | GetValueChangedSignal () |
RuleLine * | GetZeroLineChild () const |
Vec3 | Measure () override |
Calculate the size of the component. More... | |
bool | OnNavigate (const Control::Nav &nav) override |
void | SetValue (double value) |
Set the value. More... | |
![]() | |
ClickRegion (Display &display, uiLayoutFlags_t layoutFlags=0) | |
Constructor for automatically-sized button. More... | |
ClickRegion (Display &display, const Vec2 &size, uiLayoutFlags_t layoutFlags=0) | |
Constructor for fixed-sized button. More... | |
virtual | ~ClickRegion () |
clickedSignal_t & | GetClickedSignal () |
const Vec2 & | GetSize () |
Retrieve the size of the button. More... | |
bool | IsAutoSize () const |
Check if automatic sizing is enabled. More... | |
bool | IsEnabled () const |
Check if the widget is enabled. More... | |
bool | OnAction () override |
bool | OnMouseMoved (const Vec2 &pos) override |
bool | OnMousePressed (const Control::Mouse::Click &click) override |
bool | OnMouseReleased (const Control::Mouse::Click &click) override |
void | SetAutoSize () |
Enable automatic sizing. More... | |
void | SetEnabled (bool enabled) |
void | SetSize (const Vec2 &size) |
Set the button to a fixed size. More... | |
void | SetSize (double w, double h) |
Convenience function for SetSize(const Vec2&). More... | |
bool | TryFocus (const Control::Nav &nav=Control::Nav::NEUTRAL) override |
Attempts to give this widget focus. More... | |
![]() | |
UiViewModel (uiLayoutFlags_t layoutFlags=0) | |
virtual | ~UiViewModel () |
virtual void | DropFocus () |
Force this widget to give up focus, if it is currently focused. More... | |
Vec2 | GetAlignedPos (const Vec2 &pos, double w, double h) const |
Retrieve an arbitrary position adjusted by the current alignment. More... | |
Vec2 | GetAlignedPos (double w, double h) const |
Retrieve the position adjusted by the current alignment. More... | |
Alignment | GetAlignment () const |
Retrieve the alignment of the component. More... | |
focusRelinquishedSignal_t & | GetFocusRelinquishedSignal () |
focusRequestedSignal_t & | GetFocusRequestedSignal () |
uiLayoutFlags_t | GetLayoutFlags () const |
Retrieve the layout flags. More... | |
const Vec2 & | GetPos () const |
Get the position of the component. More... | |
const Vec2 & | GetTranslation () const |
Retrieves the position translation. More... | |
bool | IsFocused () const |
Check if this widget currently has input focus. More... | |
uiLayoutFlags_t | IsLayoutFloating () const |
uiLayoutFlags_t | IsLayoutUnscaled () const |
virtual bool | OnMouseScrolled (const Control::Mouse::Scroll &) |
void | RequestFocus () |
Attempt to hand over the input focus to this widget. More... | |
void | SetAlignment (Alignment alignment) |
Set the alignment of the component. More... | |
void | SetPos (const Vec2 &pos) |
Set the position of the component. More... | |
void | SetPos (double x, double y) |
Convenience function for SetPos(const Vec2&). More... | |
void | SetTranslation (const Vec2 &translation) |
Sets the position translation. More... | |
void | SetTranslation (double x, double y) |
Convenience function for SetTranslation(const Vec2&). More... | |
![]() | |
ViewModel () | |
virtual | ~ViewModel () |
View * | GetView () const |
void | PrepareRender () |
void | Render () |
void | SetView (std::unique_ptr< View > &&view) |
Protected Member Functions | |
void | Layout () override |
Adjust the size and position of any child elements. More... | |
void | OnMouseDrag (const Vec2 &relPos) override |
Handle when the mouse is dragged over the widget. More... | |
![]() | |
virtual void | FireClickedSignal () |
bool | IsPressed () const |
void | RequestSizing () |
Indicate that the size of the button may have changed, when auto-sizing is enabled. More... | |
Vec2 | ScreenPosToRel (const Vec2 &pos) |
Convert screen coordinates to relative (widget) coordinates. More... | |
void | SetPressed (bool pressed) |
bool | TestHit (const Vec2 &pos) |
Check if the coordinates of an event are within the bounds of this component. More... | |
![]() | |
void | RelinquishFocus (const Control::Nav &nav) |
Voluntarily give up input focus, passing it on to the next widget. More... | |
void | SetFocused (bool focused) |
Set the focused state. More... | |
![]() | |
template<class T > | |
void | AttachViewDynamic (Display &disp, T *self) |
void | RequestLayout () |
Indicate that the current layout is out-of-date and needs to be adjusted. More... | |
Private Types | |
using | SUPER = ClickRegion |
Private Attributes | |
std::unique_ptr< FillBox > | background |
std::unique_ptr< FillBox > | indicator |
double | max |
double | min |
double | step |
double | value |
valueChangedSignal_t | valueChangedSignal |
std::unique_ptr< RuleLine > | zeroLine |
Additional Inherited Members | |
![]() | |
Display & | display |
A slider for selecting values from a range.
|
private |
using HoverRace::Display::Slider::valueChangedSignal_t = boost::signals2::signal<void(double)> |
HoverRace::Display::Slider::Slider | ( | Display & | display, |
double | min, | ||
double | max, | ||
double | step, | ||
uiLayoutFlags_t | layoutFlags = 0 |
||
) |
Constructor.
display | The display child elements will be attached to. |
min | The minimum value. |
max | The maximum value. |
step | The smallest unit between selectable values. |
layoutFlags | Optional layout flags. |
|
virtual |
|
inlineoverridevirtual |
Reimplemented from HoverRace::Display::ClickRegion.
|
overridevirtual |
Indicate that a model property has changed.
If a view is attached, it will be notified.
prop | The model-specific ID of the property that changed. |
Reimplemented from HoverRace::Display::ViewModel.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overrideprotectedvirtual |
Adjust the size and position of any child elements.
Subclasses with child elements should override this function.
This is called automatically during the PrepareRender() phase if RequestLayout() has been called. It is also called the first time PrepareRender() is invoked. After this function is called, it will not be called again until another call to RequestLayout().
Reimplemented from HoverRace::Display::ViewModel.
|
overridevirtual |
Calculate the size of the component.
For UI components, the return value is affected by layout flags.
Reimplemented from HoverRace::Display::ClickRegion.
|
overrideprotectedvirtual |
Handle when the mouse is dragged over the widget.
relPos | The relative position. |
Reimplemented from HoverRace::Display::ClickRegion.
|
overridevirtual |
Reimplemented from HoverRace::Display::UiViewModel.
void HoverRace::Display::Slider::SetValue | ( | double | value | ) |
Set the value.
The value will be clamped to the range of the slider.
value | The value. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |