Beispiel #1
0
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));
}
Beispiel #2
0
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;
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}
Beispiel #5
0
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
}