gtk.spin_button
Module for [SpinButton] class
Types 3
A gtk.spin_button.SpinButton is an ideal way to allow the user to set the value of some attribute.
Rather than having to directly type a number into a gtk.entry.Entry, gtk.spin_button.SpinButton allows the user to click on one of two arrows to increment or decrement the displayed value. A value can still be typed in, with the bonus that it can be checked to ensure it is in a given range.
The main properties of a gtk.spin_button.SpinButton are through an adjustment. See the gtk.adjustment.Adjustment documentation for more details about an adjustment's properties.
Note that gtk.spin_button.SpinButton will by default make its entry large enough to accommodate the lower and upper bounds of the adjustment. If this is not desired, the automatic sizing can be turned off by explicitly setting gtk.editable.Editable.widthChars to a value != -1.
Using a GtkSpinButton to get an integer
// Provides a function to retrieve an integer value from a GtkSpinButton
// and creates a spin button to model percentage values.
int
grab_int_value (GtkSpinButton *button,
gpointer user_data)
{
return gtk_spin_button_get_value_as_int (button);
}
void
create_integer_spin_button (void)
{
GtkWidget *window, *button;
GtkAdjustment *adjustment;
adjustment = gtk_adjustment_new (50.0, 0.0, 100.0, 1.0, 5.0, 0.0);
window = gtk_window_new ();
// creates the spinbutton, with no decimal places
button = gtk_spin_button_new (adjustment, 1.0, 0);
gtk_window_set_child (GTK_WINDOW (window), button);
gtk_window_present (GTK_WINDOW (window));
}Using a GtkSpinButton to get a floating point value
// Provides a function to retrieve a floating point value from a
// GtkSpinButton, and creates a high precision spin button.
float
grab_float_value (GtkSpinButton *button,
gpointer user_data)
{
return gtk_spin_button_get_value (button);
}
void
create_floating_spin_button (void)
{
GtkWidget *window, *button;
GtkAdjustment *adjustment;
adjustment = gtk_adjustment_new (2.500, 0.0, 5.0, 0.001, 0.1, 0.0);
window = gtk_window_new ();
// creates the spinbutton, with three decimal places
button = gtk_spin_button_new (adjustment, 0.001, 3);
gtk_window_set_child (GTK_WINDOW (window), button);
gtk_window_present (GTK_WINDOW (window));
}CSS nodes
spinbutton.horizontal
├── text
│ ├── undershoot.left
│ ╰── undershoot.right
├── button.down
╰── button.up spinbutton.vertical
├── button.up
├── text
│ ├── undershoot.left
│ ╰── undershoot.right
╰── button.downgtk.spin_button.SpinButtons main CSS node has the name spinbutton. It creates subnodes for the entry and the two buttons, with these names. The button nodes have the style classes .up and .down. The gtk.text.Text subnodes (if present) are put below the text node. The orientation of the spin button is reflected in the .vertical or .horizontal style class on the main node.
Accessibility
gtk.spin_button.SpinButton uses the gtk.types.AccessibleRole.SpinButton role.
SpinButtonGidBuilder builder() static nothrowGet builder for [gtk.spin_button.SpinButton] Returns: New builder objectbool activatesDefault() @property nothrowGet `activatesDefault` property. Returns: Whether to activate the default widget when the spin button is activated.void activatesDefault(bool propval) @property nothrowSet `activatesDefault` property. Params: propval = Whether to activate the default widget when the spin button is activated.gtk.adjustment.Adjustment adjustment() @property nothrowGet `adjustment` property. Returns: The adjustment that holds the value of the spin button.void adjustment(gtk.adjustment.Adjustment propval) @property nothrowSet `adjustment` property. Params: propval = The adjustment that holds the value of the spin button.double climbRate() @property nothrowGet `climbRate` property. Returns: The acceleration rate when you hold down a button or key.void climbRate(double propval) @property nothrowSet `climbRate` property. Params: propval = The acceleration rate when you hold down a button or key.uint digits() @property nothrowGet `digits` property. Returns: The number of decimal places to display.void digits(uint propval) @property nothrowSet `digits` property. Params: propval = The number of decimal places to display.bool numeric() @property nothrowGet `numeric` property. Returns: Whether non-numeric characters should be ignored.void numeric(bool propval) @property nothrowSet `numeric` property. Params: propval = Whether non-numeric characters should be ignored.bool snapToTicks() @property nothrowGet `snapToTicks` property. Returns: Whether erroneous values are automatically changed to the spin buttons nearest step increment.void snapToTicks(bool propval) @property nothrowSet `snapToTicks` property. Params: propval = Whether erroneous values are automatically changed to the spin buttons nearest step increment.gtk.types.SpinButtonUpdatePolicy updatePolicy() @property nothrowGet `updatePolicy` property. Returns: Whether the spin button should update always, or only when the value is acceptable.void updatePolicy(gtk.types.SpinButtonUpdatePolicy propval) @property nothrowSet `updatePolicy` property. Params: propval = Whether the spin button should update always, or only when the value is acceptable.void value(double propval) @property nothrowSet `value` property. Params: propval = The current value.bool wrap() @property nothrowGet `wrap` property. Returns: Whether a spin button should wrap upon reaching its limits.void wrap(bool propval) @property nothrowSet `wrap` property. Params: propval = Whether a spin button should wrap upon reaching its limits.gtk.spin_button.SpinButton newWithRange(double min, double max, double step) static nothrowCreates a new [gtk.spin_button.SpinButton] with the given properties.void configure(gtk.adjustment.Adjustment adjustment, double climbRate, uint digits) nothrowChanges the properties of an existing spin button.bool getActivatesDefault() nothrowRetrieves the value set by [gtk.spin_button.SpinButton.setActivatesDefault]. Returns: true if the spin button will activate the default widgetgtk.adjustment.Adjustment getAdjustment() nothrowGet the adjustment associated with a [gtk.spin_button.SpinButton]. Returns: the [gtk.adjustment.Adjustment] of spin_buttondouble getClimbRate() nothrowReturns the acceleration rate for repeated changes. Returns: the acceleration ratevoid getIncrements(out double step, out double page) nothrowGets the current step and page the increments used by spin_button.bool getNumeric() nothrowReturns whether non-numeric text can be typed into the spin button. Returns: true if only numeric text can be enteredbool getSnapToTicks() nothrowReturns whether the values are corrected to the nearest step. Returns: true if values are snapped to the nearest stepgtk.types.SpinButtonUpdatePolicy getUpdatePolicy() nothrowGets the update behavior of a spin button.int getValueAsInt() nothrowGet the value spin_button represented as an integer. Returns: the value of spin_buttonbool getWrap() nothrowReturns whether the spin button’s value wraps around to the opposite limit when the upper or lower limit of the range is exceeded. Returns: true if the spin button wraps aroundvoid setActivatesDefault(bool activatesDefault) nothrowSets whether activating the spin button will activate the default widget for the window containing the spin button.void setAdjustment(gtk.adjustment.Adjustment adjustment) nothrowReplaces the [gtk.adjustment.Adjustment] associated with spin_button.void setClimbRate(double climbRate) nothrowSets the acceleration rate for repeated changes when you hold down a button or key.void setIncrements(double step, double page) nothrowSets the step and page increments for spin_button.void setNumeric(bool numeric) nothrowSets the flag that determines if non-numeric text can be typed into the spin button.void setRange(double min, double max) nothrowSets the minimum and maximum allowable values for spin_button.void setSnapToTicks(bool snapToTicks) nothrowSets the policy as to whether values are corrected to the nearest step increment when a spin button is activated after providing an invalid value.void setUpdatePolicy(gtk.types.SpinButtonUpdatePolicy policy) nothrowSets the update behavior of a spin button.void setWrap(bool wrap) nothrowSets 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.void spin(gtk.types.SpinType direction, double increment) nothrowIncrement or decrement a spin button’s value in a specified direction by a specified amount.gulong connectActivate(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 2) nothrowConnect to `Activate` signal.gulong connectChangeValue(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == gtk.types.ScrollType)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 3) nothrowConnect to `ChangeValue` signal.gulong connectInput(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == int)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.out_ && is(Parameters!T[0] == double)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 3) nothrowConnect to `Input` signal.gulong connectOutput(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == bool)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 2) nothrowConnect to `Output` signal.gulong connectValueChanged(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 2) nothrowConnect to `ValueChanged` signal.gulong connectWrapped(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] : gtk.spin_button.SpinButton)))
&& Parameters!T.length < 2) nothrowConnect to `Wrapped` signal.this(gtk.adjustment.Adjustment adjustment, double climbRate, uint digits)Creates a new [gtk.spin_button.SpinButton].Fluent builder implementation template for gtk.spin_button.SpinButton
T activatesDefault(bool propval) nothrowSet `activatesDefault` property. Params: propval = Whether to activate the default widget when the spin button is activated.T adjustment(gtk.adjustment.Adjustment propval) nothrowSet `adjustment` property. Params: propval = The adjustment that holds the value of the spin button. Returns: Builder instance for fluent chainingT climbRate(double propval) nothrowSet `climbRate` property. Params: propval = The acceleration rate when you hold down a button or key. Returns: Builder instance for fluent chainingT digits(uint propval) nothrowSet `digits` property. Params: propval = The number of decimal places to display. Returns: Builder instance for fluent chainingT numeric(bool propval) nothrowSet `numeric` property. Params: propval = Whether non-numeric characters should be ignored. Returns: Builder instance for fluent chainingT snapToTicks(bool propval) nothrowSet `snapToTicks` property. Params: propval = Whether erroneous values are automatically changed to the spin buttons nearest step increment. Returns: Builder instance for fluent chainingT updatePolicy(gtk.types.SpinButtonUpdatePolicy propval) nothrowSet `updatePolicy` property. Params: propval = Whether the spin button should update always, or only when the value is acceptable. Returns: Builder instance for fluent chainingT value(double propval) nothrowSet `value` property. Params: propval = The current value. Returns: Builder instance for fluent chainingT wrap(bool propval) nothrowSet `wrap` property. Params: propval = Whether a spin button should wrap upon reaching its limits. Returns: Builder instance for fluent chainingFluent builder for gtk.spin_button.SpinButton