static VALUE rg_increments(VALUE self) { gdouble step, page; gtk_spin_button_get_increments(_SELF(self), &step, &page); return rb_ary_new3(2, rb_float_new(step), rb_float_new(page)); }
double wxSpinCtrlGTKBase::DoGetIncrement() const { wxCHECK_MSG( (m_widget != NULL), 0, wxT("invalid spin button") ); double inc = 0; gtk_spin_button_get_increments( GTK_SPIN_BUTTON(m_widget), &inc, NULL); return inc; }
void wxSpinCtrlGTKBase::DoSetIncrement(double inc) { wxCHECK_RET( m_widget, "invalid spin button" ); wxSpinCtrlEventDisabler disable(this); // Preserve the old page value when changing just the increment. double page = 10*inc; gtk_spin_button_get_increments( GTK_SPIN_BUTTON(m_widget), NULL, &page); gtk_spin_button_set_increments( GTK_SPIN_BUTTON(m_widget), inc, page); }
int clip_GTK_SPINBUTTONGETINCREMENTS(ClipMachine * ClipMachineMemory) { C_widget *cspb = _fetch_cw_arg(ClipMachineMemory); gdouble step, page; CHECKCWID(cspb, GTK_IS_SPIN_BUTTON); gtk_spin_button_get_increments(GTK_SPIN_BUTTON(cspb->widget), &step, &page); _clip_stornd(ClipMachineMemory, step, 2, 0); _clip_stornd(ClipMachineMemory, page, 3, 0); return 0; err: return 1; }
gboolean spinbutton_keypress (GtkWidget *w, GdkEventKey *event, gpointer data) { SPWidget *spw = (SPWidget *) data; gdouble v; gdouble step; gdouble page; switch (get_group0_keyval (event)) { case GDK_KEY_Escape: // defocus spinbutton_undo (w); spinbutton_defocus(GTK_WIDGET(spw)); return TRUE; // I consumed the event break; case GDK_KEY_Return: // defocus case GDK_KEY_KP_Enter: spinbutton_defocus (GTK_WIDGET(spw)); return TRUE; // I consumed the event break; case GDK_KEY_Tab: case GDK_KEY_ISO_Left_Tab: // set the flag meaning "do not leave toolbar when changing value" g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); return FALSE; // I didn't consume the event break; // The following keys are processed manually because GTK implements them in strange ways // (increments start with double step value and seem to grow as you press the key continuously) case GDK_KEY_Up: case GDK_KEY_KP_Up: g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w)); gtk_spin_button_get_increments(GTK_SPIN_BUTTON (w), &step, &page); v += step; gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v); return TRUE; // I consumed the event break; case GDK_KEY_Down: case GDK_KEY_KP_Down: g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w)); gtk_spin_button_get_increments(GTK_SPIN_BUTTON (w), &step, &page); v -= step; gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v); return TRUE; // I consumed the event break; case GDK_KEY_Page_Up: case GDK_KEY_KP_Page_Up: g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w)); gtk_spin_button_get_increments(GTK_SPIN_BUTTON (w), &step, &page); v += page; gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v); return TRUE; // I consumed the event break; case GDK_KEY_Page_Down: case GDK_KEY_KP_Page_Down: g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); v = gtk_spin_button_get_value(GTK_SPIN_BUTTON (w)); gtk_spin_button_get_increments(GTK_SPIN_BUTTON (w), &step, &page); v -= page; gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), v); return TRUE; // I consumed the event break; case GDK_KEY_z: case GDK_KEY_Z: g_object_set_data (G_OBJECT (spw), "stay", GINT_TO_POINTER(TRUE)); if (event->state & GDK_CONTROL_MASK) { spinbutton_undo (w); return TRUE; // I consumed the event } break; default: return FALSE; break; } return FALSE; // I didn't consume the event }