# wxSpinCtrl

###
Module

wxSpinCtrl

###
Module Summary

Functions for wxSpinCtrl class

###
Description

wxSpinCtrl combines wxTextCtrl and wxSpinButton in one control.

Styles

This class supports the following styles:

See: wxSpinButton, wxSpinCtrlDouble (not implemented in wx), wxControl

This class is derived (and can use functions) from: wxControl wxWindow wxEvtHandler

wxWidgets docs: wxSpinCtrl

###
Events

Event types emitted from this class: command_spinctrl_updated

###
Data Types

####
wxSpinCtrl() = wx:wx_object()

###
Exports

####
new() -> wxSpinCtrl()

Default constructor.

####
new(Parent) -> wxSpinCtrl()

### Types

Parent = wxWindow:wxWindow()

####
new(Parent, Options :: [Option]) -> wxSpinCtrl()

### Types

Parent = wxWindow:wxWindow()
Option =
{id, integer()} |
{value, unicode:chardata()} |
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()} |
{min, integer()} |
{max, integer()} |
{initial, integer()}

Constructor, creating and showing a spin control.

If value is non-empty, it will be shown in the text entry part of the control and if it has numeric value, the initial numeric value of the control, as returned by getValue/1 will also be determined by it instead of by initial. Hence, it only makes sense to specify initial if value is an empty string or is not convertible to a number, otherwise initial is simply ignored and the number specified by value is used.

See: create/3

####
create(This, Parent) -> boolean()

### Types

This = wxSpinCtrl()
Parent = wxWindow:wxWindow()

####
create(This, Parent, Options :: [Option]) -> boolean()

### Types

This = wxSpinCtrl()
Parent = wxWindow:wxWindow()
Option =
{id, integer()} |
{value, unicode:chardata()} |
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()} |
{min, integer()} |
{max, integer()} |
{initial, integer()}

Creation function called by the spin control constructor.

See new/2 for details.

####
setValue(This, Value) -> ok

####
setValue(This, Text) -> ok

### Types

This = wxSpinCtrl()
Text = unicode:chardata()

Sets the value of the spin control.

It is recommended to use the overload taking an integer value instead.

Notice that, unlike wxTextCtrl:setValue/2, but like most of the other setter methods in wxWidgets, calling this method does not generate any events as events are only generated for the user actions.

####
getValue(This) -> integer()

### Types

This = wxSpinCtrl()

Gets the value of the spin control.

####
setRange(This, MinVal, MaxVal) -> ok

### Types

This = wxSpinCtrl()
MinVal = MaxVal = integer()

Sets range of allowable values.

Notice that calling this method may change the value of the control if it's not inside the new valid range, e.g. it will become minVal if it is less than it now. However no wxEVT_SPINCTRL event is generated, even if it the value does change.

Note: Setting a range including negative values is silently ignored if current base is set to 16.

####
setSelection(This, From, To) -> ok

### Types

This = wxSpinCtrl()
From = To = integer()

Select the text in the text part of the control between positions from (inclusive) and to (exclusive).

This is similar to wxTextCtrl:setSelection/3.

Note: this is currently only implemented for Windows and generic versions of the control.

####
getMin(This) -> integer()

### Types

This = wxSpinCtrl()

Gets minimal allowable value.

####
getMax(This) -> integer()

### Types

This = wxSpinCtrl()

Gets maximal allowable value.

####
destroy(This :: wxSpinCtrl()) -> ok

Destroys the object.