problems with spinbutton on windows (gtk+-2.4.13)




Hi!

there is a problem with getting spinbutton value on windows.
when I use keyboard to set the value, the value I get using
gtk_spin_button_get_value_as_int is not the one I set.
the value can only be set when you use mouse and click the arrows.

Can someone tell me how to solve this problem?
below is a code that creates a window with spinbutton.
on linux it works ok.


GtkWidget*
create_window_point (void)
{
  GtkWidget *window_point;
  GdkPixbuf *window_point_icon_pixbuf;
  GtkWidget *vbox21;
  GtkWidget *hbox107;
  GtkWidget *label116;
  GtkWidget *radiobutton_original;
  GSList *radiobutton_original_group = NULL;
  GtkWidget *radiobutton_base;
  GtkWidget *radiobutton_start;
  GtkWidget *hbox108;
  GtkWidget *label117;
  GtkObject *spinbutton_x_adj;
  GtkWidget *spinbutton_x;
  GtkWidget *label118;
  GtkObject *spinbutton_y_adj;
  GtkWidget *spinbutton_y;
  GtkWidget *hbox109;
  GtkWidget *hbox110;
  GtkWidget *button_cancel;
  GtkWidget *button_ok;
  GtkWidget *alignment27;
  GtkWidget *hbox111;
  GtkWidget *image459;
  GtkWidget *label119;

  window_point = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window_point), "PrzesuĹ\204 punkt");
  gtk_window_set_modal (GTK_WINDOW (window_point), TRUE);
  gtk_window_set_resizable (GTK_WINDOW (window_point), FALSE);
  window_point_icon_pixbuf = create_pixbuf ("4dach.png");
  if (window_point_icon_pixbuf)
    {
      gtk_window_set_icon (GTK_WINDOW (window_point),
window_point_icon_pixbuf);      gdk_pixbuf_unref
(window_point_icon_pixbuf);    }

  vbox21 = gtk_vbox_new (FALSE, 4);
  gtk_widget_show (vbox21);
  gtk_container_add (GTK_CONTAINER (window_point), vbox21);
  gtk_container_set_border_width (GTK_CONTAINER (vbox21), 4);

  hbox107 = gtk_hbox_new (TRUE, 0);
  gtk_widget_show (hbox107);
  gtk_box_pack_start (GTK_BOX (vbox21), hbox107, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (hbox107), 4);

  label116 = gtk_label_new ("Podaj nowe wspĂłĹ\202rzÄ\231dne punktu
wzglÄ\231dem:");  gtk_widget_show (label116);
  gtk_box_pack_start (GTK_BOX (hbox107), label116, FALSE, FALSE, 0);

  radiobutton_original = gtk_radio_button_new_with_mnemonic (NULL,
"oryginalnej pozycji");  gtk_widget_show (radiobutton_original);
  gtk_box_pack_start (GTK_BOX (vbox21), radiobutton_original, FALSE,
FALSE, 0);  GTK_WIDGET_UNSET_FLAGS (radiobutton_original,
GTK_CAN_FOCUS);  gtk_button_set_focus_on_click (GTK_BUTTON
(radiobutton_original), FALSE);  gtk_radio_button_set_group
(GTK_RADIO_BUTTON (radiobutton_original), radiobutton_original_group); 
radiobutton_original_group = gtk_radio_button_get_group
(GTK_RADIO_BUTTON (radiobutton_original));

  radiobutton_base = gtk_radio_button_new_with_mnemonic (NULL, "punktu
bazowego");  gtk_widget_show (radiobutton_base);
  gtk_box_pack_start (GTK_BOX (vbox21), radiobutton_base, FALSE, FALSE,
0);  GTK_WIDGET_UNSET_FLAGS (radiobutton_base, GTK_CAN_FOCUS);
  gtk_button_set_focus_on_click (GTK_BUTTON (radiobutton_base), FALSE);
  gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton_base),
radiobutton_original_group);  radiobutton_original_group =
gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton_base));

  radiobutton_start = gtk_radio_button_new_with_mnemonic (NULL,
"poczÄ\205tku ukĹ\202adu wspĂłĹ\202rzÄ\231dnych");  gtk_widget_show
(radiobutton_start);  gtk_box_pack_start (GTK_BOX (vbox21),
radiobutton_start, FALSE, FALSE, 0);  GTK_WIDGET_UNSET_FLAGS
(radiobutton_start, GTK_CAN_FOCUS);  gtk_button_set_focus_on_click
(GTK_BUTTON (radiobutton_start), FALSE);  gtk_radio_button_set_group
(GTK_RADIO_BUTTON (radiobutton_start), radiobutton_original_group); 
radiobutton_original_group = gtk_radio_button_get_group
(GTK_RADIO_BUTTON (radiobutton_start));

  hbox108 = gtk_hbox_new (FALSE, 4);
  gtk_widget_show (hbox108);
  gtk_box_pack_start (GTK_BOX (vbox21), hbox108, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (hbox108), 4);

  label117 = gtk_label_new ("X:");
  gtk_widget_show (label117);
  gtk_box_pack_start (GTK_BOX (hbox108), label117, FALSE, FALSE, 0);

  spinbutton_x_adj = gtk_adjustment_new (0, -10000, 10000, 1, 10, 10);
  spinbutton_x = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_x_adj),
1, 0);  gtk_widget_show (spinbutton_x);
  gtk_box_pack_start (GTK_BOX (hbox108), spinbutton_x, FALSE, FALSE, 0);
  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_x), TRUE);

  label118 = gtk_label_new ("Y:");
  gtk_widget_show (label118);
  gtk_box_pack_start (GTK_BOX (hbox108), label118, FALSE, FALSE, 0);

  spinbutton_y_adj = gtk_adjustment_new (0, -10000, 10000, 1, 10, 10);
  spinbutton_y = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton_y_adj),
1, 0);  gtk_widget_show (spinbutton_y);
  gtk_box_pack_start (GTK_BOX (hbox108), spinbutton_y, FALSE, FALSE, 0);
  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton_y), TRUE);

  hbox109 = gtk_hbox_new (FALSE, 0);
  gtk_widget_show (hbox109);
  gtk_box_pack_end (GTK_BOX (vbox21), hbox109, FALSE, FALSE, 0);

  hbox110 = gtk_hbox_new (TRUE, 4);
  gtk_widget_show (hbox110);
  gtk_box_pack_end (GTK_BOX (hbox109), hbox110, FALSE, FALSE, 0);
  gtk_container_set_border_width (GTK_CONTAINER (hbox110), 4);

  button_cancel = gtk_button_new_from_stock ("gtk-cancel");
  gtk_widget_show (button_cancel);
  gtk_box_pack_start (GTK_BOX (hbox110), button_cancel, TRUE, TRUE, 0);

  button_ok = gtk_button_new ();
  gtk_widget_show (button_ok);
  gtk_box_pack_start (GTK_BOX (hbox110), button_ok, TRUE, TRUE, 0);

  alignment27 = gtk_alignment_new (0.5, 0.5, 0, 0);
  gtk_widget_show (alignment27);
  gtk_container_add (GTK_CONTAINER (button_ok), alignment27);

  hbox111 = gtk_hbox_new (FALSE, 2);
  gtk_widget_show (hbox111);
  gtk_container_add (GTK_CONTAINER (alignment27), hbox111);

  image459 = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON);
  gtk_widget_show (image459);
  gtk_box_pack_start (GTK_BOX (hbox111), image459, FALSE, FALSE, 0);

  label119 = gtk_label_new_with_mnemonic ("_OK");
  gtk_widget_show (label119);
  gtk_box_pack_start (GTK_BOX (hbox111), label119, FALSE, FALSE, 0);

  g_signal_connect ((gpointer) window_point, "delete_event",
                    G_CALLBACK (on_window_point_delete_event),
                    NULL);
  g_signal_connect ((gpointer) radiobutton_original, "toggled",
                    G_CALLBACK (on_radiobutton_point_original_toggled),
                    NULL);
  g_signal_connect ((gpointer) radiobutton_base, "toggled",
                    G_CALLBACK (on_radiobutton_point_base_toggled),
                    NULL);
  g_signal_connect ((gpointer) radiobutton_start, "toggled",
                    G_CALLBACK (on_radiobutton_point_start_toggled),
                    NULL);
  g_signal_connect ((gpointer) button_cancel, "clicked",
                    G_CALLBACK (on_button_point_cancel_clicked),
                    NULL);
  g_signal_connect_after ((gpointer) button_ok, "clicked",
                          G_CALLBACK (on_button_point_ok_clicked),
                          NULL);

  /* Store pointers to all widgets, for use by lookup_widget(). */
  GLADE_HOOKUP_OBJECT_NO_REF (window_point, window_point,
"window_point");  GLADE_HOOKUP_OBJECT (window_point, vbox21, "vbox21");
  GLADE_HOOKUP_OBJECT (window_point, hbox107, "hbox107");
  GLADE_HOOKUP_OBJECT (window_point, label116, "label116");
  GLADE_HOOKUP_OBJECT (window_point, radiobutton_original,
"radiobutton_original");  GLADE_HOOKUP_OBJECT (window_point,
radiobutton_base, "radiobutton_base");  GLADE_HOOKUP_OBJECT
(window_point, radiobutton_start, "radiobutton_start"); 
GLADE_HOOKUP_OBJECT (window_point, hbox108, "hbox108"); 
GLADE_HOOKUP_OBJECT (window_point, label117, "label117"); 
GLADE_HOOKUP_OBJECT (window_point, spinbutton_x, "spinbutton_x"); 
GLADE_HOOKUP_OBJECT (window_point, label118, "label118"); 
GLADE_HOOKUP_OBJECT (window_point, spinbutton_y, "spinbutton_y"); 
GLADE_HOOKUP_OBJECT (window_point, hbox109, "hbox109"); 
GLADE_HOOKUP_OBJECT (window_point, hbox110, "hbox110"); 
GLADE_HOOKUP_OBJECT (window_point, button_cancel, "button_cancel"); 
GLADE_HOOKUP_OBJECT (window_point, button_ok, "button_ok"); 
GLADE_HOOKUP_OBJECT (window_point, alignment27, "alignment27"); 
GLADE_HOOKUP_OBJECT (window_point, hbox111, "hbox111"); 
GLADE_HOOKUP_OBJECT (window_point, image459, "image459"); 
GLADE_HOOKUP_OBJECT (window_point, label119, "label119");

  return window_point;
}

regards

-- 
Hubert Sokolowski




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]