---
name: "wxSpinCtrl"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:25.2.3+dfsg-1+deb12u4"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/wxSpinCtrl"
---

# wxSpinCtrl(3erl)

Functions for wxSpinCtrl class

## NAME

wxSpinCtrl - 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.
