Lysa UI  0.0
Lysa UI —UI components for the Lysa Engine
SpinBox Class Reference

Detailed Description

A text field displaying a numeric value with two buttons incrementing & decrementing it

+ Inheritance diagram for SpinBox:

Public Types

enum  ButtonsPlacement { RIGHT, LEFT }
 
- Public Types inherited from Widget
enum  Type {
  WIDGET, PANEL, BOX, LINE,
  FRAME, BUTTON, TOGGLEBUTTON, RADIOBUTTON,
  CHECKBOX, CHECKMARK, CROSSMARK, ARROW,
  TEXT, TEXTEDIT, RICHTEXTAREA, SCROLLBAR,
  SLIDER, COLORSLIDER, COLORWHEEL, KNOB,
  TREEVIEW, IMAGE, POPUP, LIST,
  LISTBOX, SELECTION, PROGRESSBAR, SCROLLCONTAINER,
  MENU, MENUPANEL, MENUBOX, TABBAR,
  TABCONTAINER, DIALOG, FOLDABLECONTAINER, COLORPICKER,
  COLORPICKERBUTTON, SPINBOX, SPINBUTTONS, ICONIMAGE,
  ICONSVG, DROPDOWNLIST, TOOLTIP, GRIDCELL,
  GRID, TABLE
}
 

Public Member Functions

 SpinBox (float min=0.0f, float max=100.0f, float value=0.0f, float step=1.0f)
 
auto getPrecision () const
 
void setPrecision (uint32 precision)
 
auto getButtonsWidth () const
 
void setButtonsWidth (float width)
 
auto getRepeatDelay () const
 
void setRepeatDelay (uint32 milliseconds)
 
auto getRepeatInterval () const
 
void setRepeatInterval (uint32 milliseconds)
 
auto isReadOnly () const
 
void setReadOnly (bool readOnly=true)
 
std::string getText () const
 
auto getTextEdit () const
 
auto getButtons () const
 
auto getButtonsPlacement () const
 
void setButtonsPlacement (ButtonsPlacement placement)
 
std::shared_ptr< ButtongetUpButton () const
 
std::shared_ptr< ButtongetDownButton () const
 
void setResources (const std::string &resTextEdit)
 
- Public Member Functions inherited from ValueSelect
 ValueSelect (Type type, float min, float max, float value, float step)
 
auto getMin () const
 
auto getMax () const
 
auto getValue () const
 
auto getStep () const
 
virtual void setMin (float min)
 
virtual void setMax (float max)
 
virtual void setValue (float value)
 
virtual void setStep (float step)
 
- Public Member Functions inherited from Widget
 Widget (Type type=WIDGET)
 
 ~Widget () override
 
Type getType () const
 
bool isVisible () const
 
void setVisible (bool show=true)
 
bool isEnabled () const
 
void setEnabled (bool isEnabled=true)
 
virtual void setPos (float x, float y)
 
float getWidth () const
 
float getHeight () const
 
float getRequestedWidth () const
 
float getRequestedHeight () const
 
virtual void setSize (float width, float height)
 
void setWidth (const float width)
 
void setHeight (const float height)
 
const Rect & getRect () const
 
void setRect (float x, float y, float width, float height)
 
void setRect (const Rect &rect)
 
float getAspectRatio () const
 
Alignment getAlignment () const
 
void setAlignment (Alignment alignment)
 
std::shared_ptr< Font > getFont () const
 
void setFont (const std::shared_ptr< Font > &font)
 
float getFontScale () const
 
virtual void setFontScale (float fontScale)
 
bool isFocused () const
 
Widget * getParent () const
 
void setOverlap (const bool overlap)
 
template<typename T , typename... Args>
std::shared_ptr< T > create (const std::string &resource, const Alignment alignment, Args &&...args)
 
template<typename T , typename... Args>
std::shared_ptr< T > create (const Alignment alignment, Args &&...args)
 
template<typename T >
std::shared_ptr< T > add (std::shared_ptr< T > child, const Alignment alignment=Alignment::NONE, const std::string &resource="", const bool overlap=false)
 
template<typename T >
std::shared_ptr< T > addPopup (std::shared_ptr< T > child, const std::string &resource="")
 
template<typename T >
std::shared_ptr< T > addAfter (std::shared_ptr< T > child, const std::shared_ptr< Widget > &after, const Alignment alignment, const std::string &resource="", const bool overlap=false)
 
virtual void remove (const std::shared_ptr< Widget > &child)
 
virtual void removeAll ()
 
void setPadding (float padding)
 
float getPadding () const
 
float getVBorder () const
 
float getHBorder () const
 
void setVBorder (float size)
 
void setHBorder (float size)
 
bool isDrawBackground () const
 
void setDrawBackground (bool drawBackground)
 
bool isPushed () const
 
bool isPointed () const
 
bool isFreezed () const
 
bool isRedrawOnMouseEvent () const
 
bool isOverlapping () const
 
Rect getChildrenRect () const
 
void setFreezed (const bool f)
 
void setPushed (const bool p)
 
void refresh ()
 
void setResource (std::shared_ptr< UIResource > res)
 
uint32 getGroupIndex () const
 
void setGroupIndex (int32 index)
 
template<typename T >
getUserData () const
 
template<typename T >
std::shared_ptr< T > getPointerUserData () const
 
const std::any & getUserData () const
 
void setUserData (const std::any &data)
 
float getTransparency () const
 
void setTransparency (float alpha)
 
void resizeChildren ()
 
float getChildrenOffsetX () const
 
float getChildrenOffsetY () const
 
void setChildrenOffset (float x, float y)
 
std::shared_ptr< Widget > setFocus (bool focus=true)
 
virtual void onAttach ()
 
virtual void onDetach ()
 
virtual void onShow ()
 
virtual void onHide ()
 
virtual void onResize ()
 
virtual void onMove ()
 
virtual bool onKeyDown (Key key)
 
virtual bool onTextInput (const std::string &text)
 
virtual bool onKeyUp (Key key)
 
virtual bool onMouseDown (MouseButton button, float x, float y)
 
virtual bool onMouseUp (MouseButton button, float x, float y)
 
virtual bool onMouseMove (uint32 buttonsState, float x, float y)
 
virtual void onMouseLeave ()
 
virtual void onDisable ()
 
virtual void onEnable ()
 
virtual void onGotFocus ()
 
virtual void onLostFocus ()
 
bool getConsumeMouseEvent () const
 
void setConsumeMouseEvent (const bool consumeMouseEvent)
 
const std::list< std::shared_ptr< Widget > > & getChildren () const
 
bool hasChildren () const
 
void subscribe (const event_type &type, unique_id id, EventHandlerCallback callback)
 
void subscribe (const event_type &type, EventHandlerCallback callback)
 
void unsubscribe (unique_id id)
 
bool isAttached () const
 
WindowgetWindow () const
 
StylegetStyle () const
 
Vector2DRenderer & getRenderer () const
 
RenderingWindow & getRenderingWindow () const
 
WindowManagergetWindowManager () const
 

Static Public Attributes

static constexpr float DEFAULT_BUTTONS_WIDTH {SpinButtons::DEFAULT_WIDTH}
 Default width of the column of the two buttons. More...
 
static constexpr uint32 DEFAULT_REPEAT_DELAY {SpinButtons::DEFAULT_REPEAT_DELAY}
 Default delay, in milliseconds, before the first repetition of a button held down. More...
 
static constexpr uint32 DEFAULT_REPEAT_INTERVAL {SpinButtons::DEFAULT_REPEAT_INTERVAL}
 Default delay, in milliseconds, between two repetitions of a button held down. More...
 

Protected Member Functions

void eventRangeChange () override
 
- Protected Member Functions inherited from ValueSelect
virtual void eventValueChange (float prev)
 

Additional Inherited Members

- Protected Attributes inherited from ValueSelect
float min
 
float max
 
float value
 
float step
 
- Protected Attributes inherited from Widget
const Type type
 
Rect rect
 
float requestedWidth {0}
 
float requestedHeight {0}
 
float hborder {0}
 
float vborder {0}
 
float padding {0}
 
bool consumeMouseEvent {false}
 
bool overlap {false}
 
bool focused {false}
 
bool allowFocus {false}
 
bool allowChildren {true}
 
bool drawBackground {true}
 
bool moveChildrenOnPush {false}
 
bool scrollChildren {false}
 
bool skipInvisibleChildren {false}
 
bool redrawOnMouseEvent {false}
 
bool redrawOnMouseMove {false}
 
float transparency {1.0f}
 
Widget * parent {nullptr}
 
Alignment alignment {Alignment::NONE}
 
std::shared_ptr< UIResourceresource
 
std::list< std::shared_ptr< Widget > > children
 
bool mouseMoveOnFocus {false}
 
float childrenOffsetX {0}
 
float childrenOffsetY {0}
 

Member Enumeration Documentation

Side of the text field where the two buttons are placed.

Enum ValuesDocumentation
RIGHT 
LEFT 

At the right of the text field (default)

Constructor & Destructor Documentation

SpinBox ( float  min = 0.0f,
float  max = 100.0f,
float  value = 0.0f,
float  step = 1.0f 
)

Creates a spin box.

Parameters
minMinimum value.
maxMaximum value.
valueInitial value.
stepAmount added or removed by the buttons, the arrow keys & the mouse wheel.

Member Function Documentation

void eventRangeChange ( )
overrideprotectedvirtual
auto getButtons ( ) const
inline

Returns the column of the two buttons

auto getButtonsPlacement ( ) const
inline

Returns the side of the text field where the two buttons are placed

auto getButtonsWidth ( ) const
inline

Returns the width of the column of the two buttons

std::shared_ptr<Button> getDownButton ( ) const

Returns the button decrementing the value

auto getPrecision ( ) const
inline

Returns the number of decimals of the displayed value

auto getRepeatDelay ( ) const
inline

Returns the delay, in milliseconds, before the first repetition of a button held down

auto getRepeatInterval ( ) const
inline

Returns the delay, in milliseconds, between two repetitions of a button held down

std::string getText ( ) const

Returns the value formatted the way it is displayed

auto getTextEdit ( ) const
inline

Returns the editable field displaying the value

std::shared_ptr<Button> getUpButton ( ) const

Returns the button incrementing the value

auto isReadOnly ( ) const
inline

Returns true if the user can't type the value

void setButtonsPlacement ( ButtonsPlacement  placement)

Changes the side of the text field where the two buttons are placed

void setButtonsWidth ( float  width)

Changes the width of the column of the two buttons

void setPrecision ( uint32  precision)

Changes the number of decimals of the displayed value

void setReadOnly ( bool  readOnly = true)

Allows or forbids the user to type the value

void setRepeatDelay ( uint32  milliseconds)

Changes the delay, in milliseconds, before the first repetition of a button held down

void setRepeatInterval ( uint32  milliseconds)

Changes the delay, in milliseconds, between two repetitions of a button held down, zero to only change the value on each click

void setResources ( const std::string &  resTextEdit)

Sets the UI resources of the widgets created by the spin box.

Parameters
resTextEditResource for the field displaying the value.

Member Data Documentation

constexpr float DEFAULT_BUTTONS_WIDTH {SpinButtons::DEFAULT_WIDTH}
staticconstexpr

Default width of the column of the two buttons.

constexpr uint32 DEFAULT_REPEAT_DELAY {SpinButtons::DEFAULT_REPEAT_DELAY}
staticconstexpr

Default delay, in milliseconds, before the first repetition of a button held down.

constexpr uint32 DEFAULT_REPEAT_INTERVAL {SpinButtons::DEFAULT_REPEAT_INTERVAL}
staticconstexpr

Default delay, in milliseconds, between two repetitions of a button held down.