### Class

# GimpUi SpinButton

#### Description [src]

    class GimpUi.SpinButton : Gtk.SpinButton {
      parent_instance: GtkSpinButton,
      priv: GimpSpinButtonPrivate*
    }

`GimpSpinButton` is a drop-in replacement for `GtkSpinButton`, with the following changes:

- When the spin-button loses focus, its adjustment value is only updated if the entry text has been changed.

- When the spin-button’s “wrap” property is TRUE, values input through the entry are wrapped around.

- Modifiers can be used during scrolling for smaller/bigger increments.

#### Hierarchy

#### Ancestors

- GtkSpinButton
- GtkEntry
- GtkWidget
- GInitiallyUnowned
- GObject

#### Descendants

- GimpSpinScale

#### Implements

- AtkImplementorIface
- GtkBuildable
- GtkCellEditable
- GtkEditable
- GtkOrientable

#### Constructors

###### gimp_spin_button_new

Creates a new `GimpSpinButton`.

since: 2.10.10

###### gimp_spin_button_new_with_range

This is a convenience constructor that allows creation of a numeric `GimpSpinButton` without manually creating an adjustment. The value is initially set to the minimum value and a page increment of 10 * `step` is the default. The precision of the spin button is equivalent to the precision of `step`.

since: 2.10.10

#### Instance methods

##### Methods inherited from GtkSpinButton (22)

###### gtk_spin_button_configure

Changes the properties of an existing spin button. The adjustment, climb rate, and number of decimal places are updated accordingly.

###### gtk_spin_button_get_adjustment

Get the adjustment associated with a `GtkSpinButton`.

###### gtk_spin_button_get_digits

Fetches the precision of `spin_button`. See gtk_spin_button_set_digits().

###### gtk_spin_button_get_increments

Gets the current step and page the increments used by `spin_button`. See gtk_spin_button_set_increments().

###### gtk_spin_button_get_numeric

Returns whether non-numeric text can be typed into the spin button. See gtk_spin_button_set_numeric().

###### gtk_spin_button_get_range

Gets the range allowed for `spin_button`. See gtk_spin_button_set_range().

###### gtk_spin_button_get_snap_to_ticks

Returns whether the values are corrected to the nearest step. See gtk_spin_button_set_snap_to_ticks().

###### gtk_spin_button_get_update_policy

Gets the update behavior of a spin button. See gtk_spin_button_set_update_policy().

###### gtk_spin_button_get_value

Get the value in the `spin_button`.

###### gtk_spin_button_get_value_as_int

Get the value `spin_button` represented as an integer.

###### gtk_spin_button_get_wrap

Returns whether the spin button’s value wraps around to the opposite limit when the upper or lower limit of the range is exceeded. See gtk_spin_button_set_wrap().

###### gtk_spin_button_set_adjustment

Replaces the `GtkAdjustment` associated with `spin_button`.

###### gtk_spin_button_set_digits

Set the precision to be displayed by `spin_button`. Up to 20 digit precision is allowed.

###### gtk_spin_button_set_increments

Sets the step and page increments for spin_button. This affects how quickly the value changes when the spin button’s arrows are activated.

###### gtk_spin_button_set_numeric

Sets the flag that determines if non-numeric text can be typed into the spin button.

###### gtk_spin_button_set_range

Sets the minimum and maximum allowable values for `spin_button`.

###### gtk_spin_button_set_snap_to_ticks

Sets the policy as to whether values are corrected to the nearest step increment when a spin button is activated after providing an invalid value.

###### gtk_spin_button_set_update_policy

Sets the update behavior of a spin button. This determines whether the spin button is always updated or only when a valid value is set.

###### gtk_spin_button_set_value

Sets the value of `spin_button`.

###### gtk_spin_button_set_wrap

Sets the flag that determines if a spin button value wraps around to the opposite limit when the upper or lower limit of the range is exceeded.

###### gtk_spin_button_spin

Increment or decrement a spin button’s value in a specified direction by a specified amount.

###### gtk_spin_button_update

Manually force an update of the spin button.

##### Methods inherited from GtkEntry (74)

Please see GtkEntry for a full list of methods.

##### Methods inherited from GtkWidget (263)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GtkBuildable (10)

###### gtk_buildable_add_child

Adds a child to `buildable`. `type` is an optional string describing how the child should be added.

since: 2.12

###### gtk_buildable_construct_child

Constructs a child of `buildable` with the name `name`.

since: 2.12

###### gtk_buildable_custom_finished

This is similar to `gtk_buildable_parser_finished()` but is called once for each custom tag handled by the `buildable`.

since: 2.12

###### gtk_buildable_custom_tag_end

This is called at the end of each custom element handled by the buildable.

since: 2.12

###### gtk_buildable_custom_tag_start

This is called for each unknown element under `<child>`.

since: 2.12

###### gtk_buildable_get_internal_child

Get the internal child called `childname` of the `buildable` object.

since: 2.12

###### gtk_buildable_get_name

Gets the name of the `buildable` object.

since: 2.12

###### gtk_buildable_parser_finished

Called when the builder finishes the parsing of a [GtkBuilder UI definition][BUILDER-UI]. Note that this will be called once for each time `gtk_builder_add_from_file()` or `gtk_builder_add_from_string()` is called on a builder.

since: 2.12

###### gtk_buildable_set_buildable_property

Sets the property name `name` to `value` on the `buildable` object.

since: 2.12

###### gtk_buildable_set_name

Sets the name of the `buildable` object.

since: 2.12

##### Methods inherited from GtkCellEditable (3)

###### gtk_cell_editable_editing_done

Emits the `GtkCellEditable::editing-done` signal.

###### gtk_cell_editable_remove_widget

Emits the `GtkCellEditable::remove-widget` signal.

###### gtk_cell_editable_start_editing

Begins editing on a `cell_editable`.

##### Methods inherited from GtkEditable (13)

###### gtk_editable_copy_clipboard

Copies the contents of the currently selected content in the editable and puts it on the clipboard.

###### gtk_editable_cut_clipboard

Removes the contents of the currently selected content in the editable and puts it on the clipboard.

###### gtk_editable_delete_selection

Deletes the currently selected text of the editable. This call doesn’t do anything if there is no selected text.

###### gtk_editable_delete_text

Deletes a sequence of characters. The characters that are deleted are those characters at positions from `start_pos` up to, but not including `end_pos`. If `end_pos` is negative, then the characters deleted are those from `start_pos` to the end of the text.

###### gtk_editable_get_chars

Retrieves a sequence of characters. The characters that are retrieved are those characters at positions from `start_pos` up to, but not including `end_pos`. If `end_pos` is negative, then the characters retrieved are those characters from `start_pos` to the end of the text.

###### gtk_editable_get_editable

Retrieves whether `editable` is editable. See gtk_editable_set_editable().

###### gtk_editable_get_position

Retrieves the current position of the cursor relative to the start of the content of the editable.

###### gtk_editable_get_selection_bounds

Retrieves the selection bound of the editable. start_pos will be filled with the start of the selection and `end_pos` with end. If no text was selected both will be identical and `FALSE` will be returned.

###### gtk_editable_insert_text

Inserts `new_text_length` bytes of `new_text` into the contents of the widget, at position `position`.

###### gtk_editable_paste_clipboard

Pastes the content of the clipboard to the current position of the cursor in the editable.

###### gtk_editable_select_region

Selects a region of text. The characters that are selected are those characters at positions from `start_pos` up to, but not including `end_pos`. If `end_pos` is negative, then the characters selected are those characters from `start_pos` to the end of the text.

###### gtk_editable_set_editable

Determines if the user can edit the text in the editable widget or not.

###### gtk_editable_set_position

Sets the cursor position in the editable to the given value.

##### Methods inherited from GtkOrientable (2)

###### gtk_orientable_get_orientation

Retrieves the orientation of the `orientable`.

since: 2.16

###### gtk_orientable_set_orientation

Sets the orientation of the `orientable`.

since: 2.16

#### Properties

##### Properties inherited from GtkSpinButton (8)

###### Gtk.SpinButton:adjustment

No description available.

###### Gtk.SpinButton:climb-rate

No description available.

###### Gtk.SpinButton:digits

No description available.

###### Gtk.SpinButton:numeric

No description available.

###### Gtk.SpinButton:snap-to-ticks

No description available.

###### Gtk.SpinButton:update-policy

No description available.

###### Gtk.SpinButton:value

No description available.

###### Gtk.SpinButton:wrap

No description available.

##### Properties inherited from GtkEntry (51)

###### Gtk.Entry:activates-default

No description available.

###### Gtk.Entry:attributes

A list of Pango attributes to apply to the text of the entry.

unstable since: 3.6

###### Gtk.Entry:buffer

No description available.

###### Gtk.Entry:caps-lock-warning

Whether password entries will show a warning when Caps Lock is on.

since: 2.16

###### Gtk.Entry:completion

The auxiliary completion object to use with the entry.

unstable since: 3.2

###### Gtk.Entry:cursor-position

No description available.

###### Gtk.Entry:editable

No description available.

###### Gtk.Entry:enable-emoji-completion

No description available.

###### Gtk.Entry:has-frame

No description available.

###### Gtk.Entry:im-module

Which IM (input method) module should be used for this entry. See `GtkIMContext`.

since: 2.16

###### Gtk.Entry:inner-border

Sets the text area’s border between the text and the frame.

deprecated: 3.4 since: 2.10

###### Gtk.Entry:input-hints

Additional hints (beyond `GtkEntry:input-purpose`) that allow input methods to fine-tune their behaviour.

unstable since: 3.6

###### Gtk.Entry:input-purpose

The purpose of this text field.

unstable since: 3.6

###### Gtk.Entry:invisible-char

The invisible character is used when masking entry contents (in "password mode")”). When it is not explicitly set with the `GtkEntry:invisible-char` property, GTK+ determines the character to use from a list of possible candidates, depending on availability in the current font.

since: 2.18

###### Gtk.Entry:invisible-char-set

Whether the invisible char has been set for the `GtkEntry`.

since: 2.16

###### Gtk.Entry:max-length

No description available.

###### Gtk.Entry:max-width-chars

The desired maximum width of the entry, in characters. If this property is set to -1, the width will be calculated automatically.

unstable since: 3.12

###### Gtk.Entry:overwrite-mode

If text is overwritten when typing in the `GtkEntry`.

since: 2.14

###### Gtk.Entry:placeholder-text

The text that will be displayed in the `GtkEntry` when it is empty and unfocused.

unstable since: 3.2

###### Gtk.Entry:populate-all

If :populate-all is `TRUE`, the `GtkEntry::populate-popup` signal is also emitted for touch popups.

unstable since: 3.8

###### Gtk.Entry:primary-icon-activatable

Whether the primary icon is activatable.

since: 2.16

###### Gtk.Entry:primary-icon-gicon

The `GIcon` to use for the primary icon for the entry.

since: 2.16

###### Gtk.Entry:primary-icon-name

The icon name to use for the primary icon for the entry.

since: 2.16

###### Gtk.Entry:primary-icon-pixbuf

A pixbuf to use as the primary icon for the entry.

since: 2.16

###### Gtk.Entry:primary-icon-sensitive

Whether the primary icon is sensitive.

since: 2.16

###### Gtk.Entry:primary-icon-stock

The stock id to use for the primary icon for the entry.

deprecated: 3.10 since: 2.16

###### Gtk.Entry:primary-icon-storage-type

The representation which is used for the primary icon of the entry.

since: 2.16

###### Gtk.Entry:primary-icon-tooltip-markup

The contents of the tooltip on the primary icon, which is marked up with the [Pango text markup language][PangoMarkupFormat].

since: 2.16

###### Gtk.Entry:primary-icon-tooltip-text

The contents of the tooltip on the primary icon.

since: 2.16

###### Gtk.Entry:progress-fraction

The current fraction of the task that’s been completed.

since: 2.16

###### Gtk.Entry:progress-pulse-step

The fraction of total entry width to move the progress bouncing block for each call to gtk_entry_progress_pulse().

since: 2.16

###### Gtk.Entry:scroll-offset

No description available.

###### Gtk.Entry:secondary-icon-activatable

Whether the secondary icon is activatable.

since: 2.16

###### Gtk.Entry:secondary-icon-gicon

The `GIcon` to use for the secondary icon for the entry.

since: 2.16

###### Gtk.Entry:secondary-icon-name

The icon name to use for the secondary icon for the entry.

since: 2.16

###### Gtk.Entry:secondary-icon-pixbuf

An pixbuf to use as the secondary icon for the entry.

since: 2.16

###### Gtk.Entry:secondary-icon-sensitive

Whether the secondary icon is sensitive.

since: 2.16

###### Gtk.Entry:secondary-icon-stock

The stock id to use for the secondary icon for the entry.

deprecated: 3.10 since: 2.16

###### Gtk.Entry:secondary-icon-storage-type

The representation which is used for the secondary icon of the entry.

since: 2.16

###### Gtk.Entry:secondary-icon-tooltip-markup

The contents of the tooltip on the secondary icon, which is marked up with the [Pango text markup language][PangoMarkupFormat].

since: 2.16

###### Gtk.Entry:secondary-icon-tooltip-text

The contents of the tooltip on the secondary icon.

since: 2.16

###### Gtk.Entry:selection-bound

No description available.

###### Gtk.Entry:shadow-type

Which kind of shadow to draw around the entry when `GtkEntry:has-frame` is set to `TRUE`.

deprecated: 3.20 since: 2.12

###### Gtk.Entry:show-emoji-icon

No description available.

###### Gtk.Entry:tabs

No description available.

###### Gtk.Entry:text

No description available.

###### Gtk.Entry:text-length

The length of the text in the `GtkEntry`.

since: 2.14

###### Gtk.Entry:truncate-multiline

When `TRUE`, pasted multi-line text is truncated to the first line.

since: 2.10

###### Gtk.Entry:visibility

No description available.

###### Gtk.Entry:width-chars

No description available.

###### Gtk.Entry:xalign

The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL layouts.

since: 2.4

##### Properties inherited from GtkWidget (39)

###### Gtk.Widget:app-paintable

No description available.

###### Gtk.Widget:can-default

No description available.

###### Gtk.Widget:can-focus

No description available.

###### Gtk.Widget:composite-child

No description available.

###### Gtk.Widget:double-buffered

Whether the widget is double buffered.

deprecated: 3.14 since: 2.18

###### Gtk.Widget:events

No description available.

###### Gtk.Widget:expand

Whether to expand in both directions. Setting this sets both `GtkWidget:hexpand` and `GtkWidget:vexpand`.

unstable since: 3.0

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

unstable since: 3.20

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space, see `GtkAlign`.

unstable since: 3.0

###### Gtk.Widget:has-default

No description available.

###### Gtk.Widget:has-focus

No description available.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of `GtkWidget::query-tooltip` on `widget`. A value of `TRUE` indicates that `widget` can have a tooltip, in this case the widget will be queried using `GtkWidget::query-tooltip` to determine whether it will provide a tooltip or not.

since: 2.12

###### Gtk.Widget:height-request

No description available.

###### Gtk.Widget:hexpand

Whether to expand horizontally. See gtk_widget_set_hexpand().

unstable since: 3.0

###### Gtk.Widget:hexpand-set

Whether to use the `GtkWidget:hexpand` property. See gtk_widget_get_hexpand_set().

unstable since: 3.0

###### Gtk.Widget:is-focus

No description available.

###### Gtk.Widget:margin

Sets all four sides’ margin at once. If read, returns max margin on any side.

unstable since: 3.0

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

unstable since: 3.0

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally. This property supports left-to-right and right-to-left text directions.

unstable since: 3.12

###### Gtk.Widget:margin-left

Margin on left side of widget.

unstable deprecated: 3.12 since: 3.0

###### Gtk.Widget:margin-right

Margin on right side of widget.

unstable deprecated: 3.12 since: 3.0

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally. This property supports left-to-right and right-to-left text directions.

unstable since: 3.12

###### Gtk.Widget:margin-top

Margin on top side of widget.

unstable since: 3.0

###### Gtk.Widget:name

No description available.

###### Gtk.Widget:no-show-all

No description available.

###### Gtk.Widget:opacity

The requested opacity of the widget. See `gtk_widget_set_opacity()` for more details about window opacity.

unstable since: 3.8

###### Gtk.Widget:parent

No description available.

###### Gtk.Widget:receives-default

No description available.

###### Gtk.Widget:scale-factor

The scale factor of the widget. See `gtk_widget_get_scale_factor()` for more details about widget scaling.

unstable since: 3.10

###### Gtk.Widget:sensitive

No description available.

###### Gtk.Widget:style

The style of the widget, which contains information about how it will look (colors, etc).

deprecated: Unknown

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see gtk_tooltip_set_markup().

since: 2.12

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

since: 2.12

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space, see `GtkAlign`.

unstable since: 3.0

###### Gtk.Widget:vexpand

Whether to expand vertically. See gtk_widget_set_vexpand().

unstable since: 3.0

###### Gtk.Widget:vexpand-set

Whether to use the `GtkWidget:vexpand` property. See gtk_widget_get_vexpand_set().

unstable since: 3.0

###### Gtk.Widget:visible

No description available.

###### Gtk.Widget:width-request

No description available.

###### Gtk.Widget:window

The widget’s window if it is realized, `NULL` otherwise.

since: 2.14

##### Properties inherited from GtkCellEditable (1)

###### Gtk-3.0.CellEditable:editing-canceled

Indicates whether editing on the cell has been canceled.

since: 2.20

##### Properties inherited from GtkOrientable (1)

###### Gtk-3.0.Orientable:orientation

The orientation of the orientable.

since: 2.16

#### Signals

##### Signals inherited from GtkSpinButton (5)

###### GtkSpinButton::change-value

The ::change-value signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a value change.

###### GtkSpinButton::input

The ::input signal can be used to influence the conversion of the users input into a double value. The signal handler is expected to use `gtk_entry_get_text()` to retrieve the text of the entry and set `new_value` to the new value.

###### GtkSpinButton::output

The ::output signal can be used to change to formatting of the value that is displayed in the spin buttons entry.

###### GtkSpinButton::value-changed

The ::value-changed signal is emitted when the value represented by `spinbutton` changes. Also see the `GtkSpinButton::output` signal.

###### GtkSpinButton::wrapped

The ::wrapped signal is emitted right after the spinbutton wraps from its maximum to minimum value or vice-versa.

since: 2.10

##### Signals inherited from GtkEntry (14)

###### GtkEntry::activate

The ::activate signal is emitted when the user hits the Enter key.

###### GtkEntry::backspace

The ::backspace signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user asks for it.

###### GtkEntry::copy-clipboard

The ::copy-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to copy the selection to the clipboard.

###### GtkEntry::cut-clipboard

The ::cut-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to cut the selection to the clipboard.

###### GtkEntry::delete-from-cursor

The ::delete-from-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a text deletion.

###### GtkEntry::icon-press

The ::icon-press signal is emitted when an activatable icon is clicked.

since: 2.16

###### GtkEntry::icon-release

The ::icon-release signal is emitted on the button release from a mouse click over an activatable icon.

since: 2.16

###### GtkEntry::insert-at-cursor

The ::insert-at-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates the insertion of a fixed string at the cursor.

###### GtkEntry::insert-emoji

The ::insert-emoji signal is a [keybinding signal][GtkBindingSignal] which gets emitted to present the Emoji chooser for the `entry`.

unstable since: 3.22.27

###### GtkEntry::move-cursor

The ::move-cursor signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user initiates a cursor movement. If the cursor is not visible in `entry`, this signal causes the viewport to be moved instead.

###### GtkEntry::paste-clipboard

The ::paste-clipboard signal is a [keybinding signal][GtkBindingSignal] which gets emitted to paste the contents of the clipboard into the text view.

###### GtkEntry::populate-popup

The ::populate-popup signal gets emitted before showing the context menu of the entry.

###### GtkEntry::preedit-changed

If an input method is used, the typed text will not immediately be committed to the buffer. So if you are interested in the text, connect to this signal.

since: 2.20

###### GtkEntry::toggle-overwrite

The ::toggle-overwrite signal is a [keybinding signal][GtkBindingSignal] which gets emitted to toggle the overwrite mode of the entry.

##### Signals inherited from GtkWidget (69)

###### GtkWidget::accel-closures-changed

No description available.

###### GtkWidget::button-press-event

The ::button-press-event signal will be emitted when a button (typically from a mouse) is pressed.

###### GtkWidget::button-release-event

The ::button-release-event signal will be emitted when a button (typically from a mouse) is released.

###### GtkWidget::can-activate-accel

Determines whether an accelerator that activates the signal identified by `signal_id` can currently be activated. This signal is present to allow applications and derived widgets to override the default `GtkWidget` handling for determining whether an accelerator can be activated.

###### GtkWidget::child-notify

The ::child-notify signal is emitted for each [child property][child-properties] that has changed on an object. The signal’s detail holds the property name.

###### GtkWidget::composited-changed

The ::composited-changed signal is emitted when the composited status of `widgets` screen changes. See gdk_screen_is_composited().

deprecated: 3.22

###### GtkWidget::configure-event

The ::configure-event signal will be emitted when the size, position or stacking of the `widget`‘s window has changed.

###### GtkWidget::damage-event

Emitted when a redirected window belonging to `widget` gets drawn into. The region/area members of the event shows what area of the redirected drawable was drawn into.

since: 2.14

###### GtkWidget::delete-event

The ::delete-event signal is emitted if a user requests that a toplevel window is closed. The default handler for this signal destroys the window. Connecting `gtk_widget_hide_on_delete()` to this signal will cause the window to be hidden instead, so that it can later be shown again without reconstructing it.

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold. May result in finalization of the widget if all references are released.

###### GtkWidget::destroy-event

The ::destroy-event signal is emitted when a `GdkWindow` is destroyed. You rarely get this signal, because most widgets disconnect themselves from their window before they destroy it, so no widget owns the window at destroy time.

###### GtkWidget::direction-changed

The ::direction-changed signal is emitted when the text direction of a widget changes.

###### GtkWidget::drag-begin

The ::drag-begin signal is emitted on the drag source when a drag is started. A typical reason to connect to this signal is to set up a custom drag icon with e.g. gtk_drag_source_set_icon_pixbuf().

###### GtkWidget::drag-data-delete

The ::drag-data-delete signal is emitted on the drag source when a drag with the action `GDK_ACTION_MOVE` is successfully completed. The signal handler is responsible for deleting the data that has been dropped. What “delete” means depends on the context of the drag operation.

###### GtkWidget::drag-data-get

The ::drag-data-get signal is emitted on the drag source when the drop site requests the data which is dragged. It is the responsibility of the signal handler to fill `data` with the data in the format which is indicated by `info`. See `gtk_selection_data_set()` and gtk_selection_data_set_text().

###### GtkWidget::drag-data-received

The ::drag-data-received signal is emitted on the drop site when the dragged data has been received. If the data was received in order to determine whether the drop will be accepted, the handler is expected to call `gdk_drag_status()` and not finish the drag. If the data was received in response to a `GtkWidget::drag-drop` signal (and this is the last target to be received), the handler for this signal is expected to process the received data and then call gtk_drag_finish(), setting the `success` parameter depending on whether the data was processed successfully.

###### GtkWidget::drag-drop

The ::drag-drop signal is emitted on the drop site when the user drops the data onto the widget. The signal handler must determine whether the cursor position is in a drop zone or not. If it is not in a drop zone, it returns `FALSE` and no further processing is necessary. Otherwise, the handler returns `TRUE`. In this case, the handler must ensure that `gtk_drag_finish()` is called to let the source know that the drop is done. The call to `gtk_drag_finish()` can be done either directly or in a `GtkWidget::drag-data-received` handler which gets triggered by calling `gtk_drag_get_data()` to receive the data for one or more of the supported targets.

###### GtkWidget::drag-end

The ::drag-end signal is emitted on the drag source when a drag is finished. A typical reason to connect to this signal is to undo things done in `GtkWidget::drag-begin`.

###### GtkWidget::drag-failed

The ::drag-failed signal is emitted on the drag source when a drag has failed. The signal handler may hook custom code to handle a failed DnD operation based on the type of error, it returns `TRUE` is the failure has been already handled (not showing the default “drag operation failed” animation), otherwise it returns `FALSE`.

since: 2.12

###### GtkWidget::drag-leave

The ::drag-leave signal is emitted on the drop site when the cursor leaves the widget. A typical reason to connect to this signal is to undo things done in `GtkWidget::drag-motion`, e.g. undo highlighting with gtk_drag_unhighlight().

###### GtkWidget::drag-motion

The ::drag-motion signal is emitted on the drop site when the user moves the cursor over the widget during a drag. The signal handler must determine whether the cursor position is in a drop zone or not. If it is not in a drop zone, it returns `FALSE` and no further processing is necessary. Otherwise, the handler returns `TRUE`. In this case, the handler is responsible for providing the necessary information for displaying feedback to the user, by calling gdk_drag_status().

###### GtkWidget::draw

This signal is emitted when a widget is supposed to render itself. The `widget`‘s top left corner must be painted at the origin of the passed in context and be sized to the values returned by `gtk_widget_get_allocated_width()` and gtk_widget_get_allocated_height().

unstable since: 3.0

###### GtkWidget::enter-notify-event

The ::enter-notify-event will be emitted when the pointer enters the `widget`‘s window.

###### GtkWidget::event

The GTK+ main loop will emit three signals for each GDK event delivered to a widget: one generic ::event signal, another, more specific, signal that matches the type of event delivered (e.g. `GtkWidget::key-press-event`) and finally a generic `GtkWidget::event-after` signal.

###### GtkWidget::event-after

After the emission of the `GtkWidget::event` signal and (optionally) the second more specific signal, ::event-after will be emitted regardless of the previous two signals handlers return values.

###### GtkWidget::focus

No description available.

###### GtkWidget::focus-in-event

The ::focus-in-event signal will be emitted when the keyboard focus enters the `widget`‘s window.

###### GtkWidget::focus-out-event

The ::focus-out-event signal will be emitted when the keyboard focus leaves the `widget`‘s window.

###### GtkWidget::grab-broken-event

Emitted when a pointer or keyboard grab on a window belonging to `widget` gets broken.

since: 2.8

###### GtkWidget::grab-focus

No description available.

###### GtkWidget::grab-notify

The ::grab-notify signal is emitted when a widget becomes shadowed by a GTK+ grab (not a pointer or keyboard grab) on another widget, or when it becomes unshadowed due to a grab being removed.

###### GtkWidget::hide

The ::hide signal is emitted when `widget` is hidden, for example with gtk_widget_hide().

###### GtkWidget::hierarchy-changed

The ::hierarchy-changed signal is emitted when the anchored state of a widget changes. A widget is “anchored” when its toplevel ancestor is a `GtkWindow`. This signal is emitted when a widget changes from un-anchored to anchored or vice-versa.

###### GtkWidget::key-press-event

The ::key-press-event signal is emitted when a key is pressed. The signal emission will reoccur at the key-repeat rate when the key is kept pressed.

###### GtkWidget::key-release-event

The ::key-release-event signal is emitted when a key is released.

###### GtkWidget::keynav-failed

Gets emitted if keyboard navigation fails. See `gtk_widget_keynav_failed()` for details.

since: 2.12

###### GtkWidget::leave-notify-event

The ::leave-notify-event will be emitted when the pointer leaves the `widget`‘s window.

###### GtkWidget::map

The ::map signal is emitted when `widget` is going to be mapped, that is when the widget is visible (which is controlled with gtk_widget_set_visible()) and all its parents up to the toplevel widget are also visible. Once the map has occurred, `GtkWidget::map-event` will be emitted.

###### GtkWidget::map-event

The ::map-event signal will be emitted when the `widget`‘s window is mapped. A window is mapped when it becomes visible on the screen.

###### GtkWidget::mnemonic-activate

The default handler for this signal activates `widget` if `group_cycling` is `FALSE`, or just makes `widget` grab focus if `group_cycling` is `TRUE`.

###### GtkWidget::motion-notify-event

The ::motion-notify-event signal is emitted when the pointer moves over the widget’s `GdkWindow`.

###### GtkWidget::move-focus

No description available.

###### GtkWidget::parent-set

The ::parent-set signal is emitted when a new parent has been set on a widget.

###### GtkWidget::popup-menu

This signal gets emitted whenever a widget should pop up a context menu. This usually happens through the standard key binding mechanism; by pressing a certain key while a widget is focused, the user can cause the widget to pop up a menu. For example, the `GtkEntry` widget creates a menu with clipboard commands. See the [Popup Menu Migration Checklist][checklist-popup-menu] for an example of how to use this signal.

###### GtkWidget::property-notify-event

The ::property-notify-event signal will be emitted when a property on the `widget`‘s window has been changed or deleted.

###### GtkWidget::proximity-in-event

To receive this signal the `GdkWindow` associated to the widget needs to enable the #GDK_PROXIMITY_IN_MASK mask.

###### GtkWidget::proximity-out-event

To receive this signal the `GdkWindow` associated to the widget needs to enable the #GDK_PROXIMITY_OUT_MASK mask.

###### GtkWidget::query-tooltip

Emitted when `GtkWidget:has-tooltip` is `TRUE` and the hover timeout has expired with the cursor hovering “above” `widget`; or emitted when `widget` got focus in keyboard mode.

since: 2.12

###### GtkWidget::realize

The ::realize signal is emitted when `widget` is associated with a `GdkWindow`, which means that `gtk_widget_realize()` has been called or the widget has been mapped (that is, it is going to be drawn).

###### GtkWidget::screen-changed

The ::screen-changed signal gets emitted when the screen of a widget has changed.

###### GtkWidget::scroll-event

The ::scroll-event signal is emitted when a button in the 4 to 7 range is pressed. Wheel mice are usually configured to generate button press events for buttons 4 and 5 when the wheel is turned.

###### GtkWidget::selection-clear-event

The ::selection-clear-event signal will be emitted when the the `widget`‘s window has lost ownership of a selection.

###### GtkWidget::selection-get

No description available.

###### GtkWidget::selection-notify-event

No description available.

###### GtkWidget::selection-received

No description available.

###### GtkWidget::selection-request-event

The ::selection-request-event signal will be emitted when another client requests ownership of the selection owned by the `widget`‘s window.

###### GtkWidget::show

The ::show signal is emitted when `widget` is shown, for example with gtk_widget_show().

###### GtkWidget::show-help

No description available.

###### GtkWidget::size-allocate

No description available.

###### GtkWidget::state-changed

The ::state-changed signal is emitted when the widget state changes. See gtk_widget_get_state().

deprecated: 3.0

###### GtkWidget::state-flags-changed

The ::state-flags-changed signal is emitted when the widget state changes, see gtk_widget_get_state_flags().

unstable since: 3.0

###### GtkWidget::style-set

The ::style-set signal is emitted when a new style has been set on a widget. Note that style-modifying functions like `gtk_widget_modify_base()` also cause this signal to be emitted.

deprecated: 3.0

###### GtkWidget::style-updated

The ::style-updated signal is a convenience signal that is emitted when the `GtkStyleContext::changed` signal is emitted on the `widget`‘s associated `GtkStyleContext` as returned by gtk_widget_get_style_context().

unstable since: 3.0

###### GtkWidget::touch-event

No description available.

###### GtkWidget::unmap

The ::unmap signal is emitted when `widget` is going to be unmapped, which means that either it or any of its parents up to the toplevel widget have been set as hidden.

###### GtkWidget::unmap-event

The ::unmap-event signal will be emitted when the `widget`‘s window is unmapped. A window is unmapped when it becomes invisible on the screen.

###### GtkWidget::unrealize

The ::unrealize signal is emitted when the `GdkWindow` associated with `widget` is destroyed, which means that `gtk_widget_unrealize()` has been called or the widget has been unmapped (that is, it is going to be hidden).

###### GtkWidget::visibility-notify-event

The ::visibility-notify-event will be emitted when the `widget`‘s window is obscured or unobscured.

deprecated: 3.12

###### GtkWidget::window-state-event

The ::window-state-event will be emitted when the state of the toplevel window associated to the `widget` changes.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

##### Signals inherited from GtkCellEditable (2)

###### GtkCellEditable::editing-done

This signal is a sign for the cell renderer to update its value from the `cell_editable`.

###### GtkCellEditable::remove-widget

This signal is meant to indicate that the cell is finished editing, and the `cell_editable` widget is being removed and may subsequently be destroyed.

##### Signals inherited from GtkEditable (3)

###### GtkEditable::changed

The ::changed signal is emitted at the end of a single user-visible operation on the contents of the `GtkEditable`.

###### GtkEditable::delete-text

This signal is emitted when text is deleted from the widget by the user. The default handler for this signal will normally be responsible for deleting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the range of deleted text, or prevent it from being deleted entirely. The `start_pos` and `end_pos` parameters are interpreted as for gtk_editable_delete_text().

###### GtkEditable::insert-text

This signal is emitted when text is inserted into the widget by the user. The default handler for this signal will normally be responsible for inserting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the inserted text, or prevent it from being inserted entirely.

#### Class structure

    struct GimpUiSpinButtonClass {
      GtkSpinButtonClass parent_class;
      void (* _gimp_reserved1) (
    void
      );
      void (* _gimp_reserved2) (
    void
      );
      void (* _gimp_reserved3) (
    void
      );
      void (* _gimp_reserved4) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GtkSpinButtonClass`
  No description available.
`_gimp_reserved1: void (* _gimp_reserved1) ( void )`
  No description available.
`_gimp_reserved2: void (* _gimp_reserved2) ( void )`
  No description available.
`_gimp_reserved3: void (* _gimp_reserved3) ( void )`
  No description available.
`_gimp_reserved4: void (* _gimp_reserved4) ( void )`
  No description available.