X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftestgtk.c;h=9586169749c2d96b6788b16671b41fb6a504cca9;hb=04d6c99a71e13dcdadb10fbd376d9deb90a3e340;hp=a1aa61c4a4427036e15e8560f75c6e002e2c1480;hpb=3b8184cfee90f8f4e13ae64919a6a08921f78b8a;p=~andy%2Fgtk diff --git a/tests/testgtk.c b/tests/testgtk.c index a1aa61c4a..958616974 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -109,12 +109,12 @@ build_option_menu (gchar *items[], GtkWidget *omenu; gint i; - omenu = gtk_combo_box_new_text (); + omenu = gtk_combo_box_text_new (); g_signal_connect (omenu, "changed", G_CALLBACK (func), data); for (i = 0; i < num_items; i++) - gtk_combo_box_append_text (GTK_COMBO_BOX (omenu), items[i]); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (omenu), items[i]); gtk_combo_box_set_active (GTK_COMBO_BOX (omenu), history); @@ -228,7 +228,7 @@ build_alpha_widgets (void) GTK_EXPAND | GTK_FILL, 0, 0, 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "Entry: "); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); @@ -261,7 +261,7 @@ on_alpha_screen_changed (GtkWindow *window, gtk_label_set_markup (GTK_LABEL (label), "Screen supports alpha"); } - gtk_window_set_visual (window, visual); + gtk_widget_set_visual (GTK_WIDGET (window), visual); } static void @@ -298,7 +298,7 @@ create_alpha_window (GtkWidget *widget) content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - vbox = gtk_vbox_new (FALSE, 8); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); @@ -399,7 +399,7 @@ create_composited_window (GtkWidget *widget) if (!window) { GtkWidget *event, *button; - GdkColor red; + GdkRGBA red; /* make the widgets */ button = gtk_button_new_with_label ("A Button"); @@ -411,8 +411,8 @@ create_composited_window (GtkWidget *widget) &window); /* put a red background on the window */ - gdk_color_parse ("red", &red); - gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &red); + gdk_rgba_parse (&red, "red"); + gtk_widget_override_background_color (window, 0, &red); /* set our event box to have a fully-transparent background * drawn on it. currently there is no way to simply tell gtk @@ -525,11 +525,11 @@ create_pattern (GtkWidget *widget, #define PATTERN_SIZE (1 << 18) static void -pattern_hadj_changed (GtkAdjustment *adj, +pattern_hadj_changed (GtkAdjustment *adjustment, GtkWidget *darea) { - gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value"); - gint new_value = adj->value; + gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value"); + gint new_value = gtk_adjustment_get_value (adjustment); if (gtk_widget_get_realized (darea)) { @@ -540,11 +540,11 @@ pattern_hadj_changed (GtkAdjustment *adj, } static void -pattern_vadj_changed (GtkAdjustment *adj, +pattern_vadj_changed (GtkAdjustment *adjustment, GtkWidget *darea) { - gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value"); - gint new_value = adj->value; + gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value"); + gint new_value = gtk_adjustment_get_value (adjustment); if (gtk_widget_get_realized (darea)) { @@ -572,8 +572,8 @@ create_big_windows (GtkWidget *widget) GtkWidget *content_area; GtkWidget *darea, *table, *scrollbar; GtkWidget *eventbox; - GtkAdjustment *hadj; - GtkAdjustment *vadj; + GtkAdjustment *hadjustment; + GtkAdjustment *vadjustment; static gint current_x; static gint current_y; @@ -608,15 +608,15 @@ create_big_windows (GtkWidget *widget) darea = gtk_drawing_area_new (); - hadj = (GtkAdjustment *)gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100); - g_signal_connect (hadj, "value_changed", + hadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100); + g_signal_connect (hadjustment, "value_changed", G_CALLBACK (pattern_hadj_changed), darea); - g_object_set_data (G_OBJECT (hadj), "old-value", ¤t_x); - - vadj = (GtkAdjustment *)gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100); - g_signal_connect (vadj, "value_changed", + g_object_set_data (G_OBJECT (hadjustment), "old-value", ¤t_x); + + vadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100); + g_signal_connect (vadjustment, "value_changed", G_CALLBACK (pattern_vadj_changed), darea); - g_object_set_data (G_OBJECT (vadj), "old-value", ¤t_y); + g_object_set_data (G_OBJECT (vadjustment), "old-value", ¤t_y); g_signal_connect (darea, "realize", G_CALLBACK (pattern_realize), @@ -630,13 +630,13 @@ create_big_windows (GtkWidget *widget) gtk_container_add (GTK_CONTAINER (eventbox), darea); - scrollbar = gtk_hscrollbar_new (hadj); + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment); gtk_table_attach (GTK_TABLE (table), scrollbar, 0, 1, 1, 2, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0); - scrollbar = gtk_vscrollbar_new (vadj); + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadjustment); gtk_table_attach (GTK_TABLE (table), scrollbar, 1, 2, 0, 1, GTK_FILL, GTK_EXPAND | GTK_FILL, @@ -687,7 +687,7 @@ create_buttons (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "GtkButton"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); table = gtk_table_new (3, 3, FALSE); @@ -762,10 +762,10 @@ create_buttons (GtkWidget *widget) gtk_table_attach (GTK_TABLE (table), button[8], 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -810,10 +810,10 @@ create_toggle_buttons (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "GtkToggleButton"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -830,10 +830,10 @@ create_toggle_buttons (GtkWidget *widget) gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -942,7 +942,7 @@ create_check_buttons (GtkWidget *widget) box1 = gtk_dialog_get_content_area (GTK_DIALOG (window)); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -959,7 +959,7 @@ create_check_buttons (GtkWidget *widget) gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); table = create_widget_grid (GTK_TYPE_CHECK_BUTTON); @@ -1007,7 +1007,7 @@ create_radio_buttons (GtkWidget *widget) box1 = gtk_dialog_get_content_area (GTK_DIALOG (window)); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -1031,10 +1031,10 @@ create_radio_buttons (GtkWidget *widget) gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -1055,7 +1055,7 @@ create_radio_buttons (GtkWidget *widget) gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); table = create_widget_grid (GTK_TYPE_RADIO_BUTTON); @@ -1088,9 +1088,9 @@ create_bbox (gint horizontal, frame = gtk_frame_new (title); if (horizontal) - bbox = gtk_hbutton_box_new (); + bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); else - bbox = gtk_vbutton_box_new (); + bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL); gtk_container_set_border_width (GTK_CONTAINER (bbox), 5); gtk_container_add (GTK_CONTAINER (frame), bbox); @@ -1132,13 +1132,13 @@ create_button_box (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 10); - main_vbox = gtk_vbox_new (FALSE, 0); + main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); frame_horz = gtk_frame_new ("Horizontal Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (frame_horz), vbox); @@ -1165,7 +1165,7 @@ create_button_box (GtkWidget *widget) frame_vert = gtk_frame_new ("Vertical Button Boxes"); gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_container_add (GTK_CONTAINER (frame_vert), hbox); @@ -1202,8 +1202,7 @@ create_button_box (GtkWidget *widget) static GtkWidget* new_pixbuf (char *filename, - GdkWindow *window, - GdkColor *background) + GdkWindow *window) { GtkWidget *widget; GdkPixbuf *pixbuf; @@ -1379,8 +1378,7 @@ create_toolbar (GtkWidget *widget) { GtkWidget *icon; - icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window), - >k_widget_get_style (window)->bg[GTK_STATE_NORMAL]); + icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window)); toolitem = gtk_tool_button_new (icon, create_toolbar_items[i].label); } if (create_toolbar_items[i].callback) @@ -1448,14 +1446,15 @@ make_toolbar (GtkWidget *window) if (make_toolbar_items[i].label == NULL) { toolitem = gtk_separator_tool_item_new (); - continue; } - icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window), - >k_widget_get_style (window)->bg[GTK_STATE_NORMAL]); - toolitem = gtk_tool_button_new (icon, make_toolbar_items[i].label); - gtk_tool_item_set_tooltip_text (toolitem, make_toolbar_items[i].tooltip); - if (make_toolbar_items[i].callback != NULL) - g_signal_connect (toolitem, "clicked", make_toolbar_items[i].callback, toolbar); + else + { + icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window)); + toolitem = gtk_tool_button_new (icon, make_toolbar_items[i].label); + gtk_tool_item_set_tooltip_text (toolitem, make_toolbar_items[i].tooltip); + if (make_toolbar_items[i].callback != NULL) + g_signal_connect (toolitem, "clicked", make_toolbar_items[i].callback, toolbar); + } gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1); } @@ -1567,10 +1566,10 @@ create_statusbar (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "statusbar"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -1622,10 +1621,10 @@ create_statusbar (GtkWidget *widget) "signal_after::clicked", statusbar_push_long, statusbar, NULL); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -1644,173 +1643,6 @@ create_statusbar (GtkWidget *widget) gtk_widget_destroy (window); } -/* - * Gridded geometry - */ -#define GRID_SIZE 20 -#define DEFAULT_GEOMETRY "10x10" - -static gboolean -gridded_geometry_draw (GtkWidget *widget, - cairo_t *cr) -{ - GtkStateType state; - GtkStyle *style; - int i, j, width, height; - - style = gtk_widget_get_style (widget); - state = gtk_widget_get_state (widget); - width = gtk_widget_get_allocated_width (widget); - height = gtk_widget_get_allocated_height (widget); - - gdk_cairo_set_source_color (cr, &style->base[state]); - cairo_paint (cr); - - for (i = 0 ; i * GRID_SIZE < width; i++) - for (j = 0 ; j * GRID_SIZE < height; j++) - { - if ((i + j) % 2 == 0) - cairo_rectangle (cr, i * GRID_SIZE, j * GRID_SIZE, GRID_SIZE, GRID_SIZE); - } - - gdk_cairo_set_source_color (cr, &style->text[state]); - cairo_fill (cr); - - return FALSE; -} - -static void -gridded_geometry_subresponse (GtkDialog *dialog, - gint response_id, - gchar *geometry_string) -{ - if (response_id == GTK_RESPONSE_NONE) - { - gtk_widget_destroy (GTK_WIDGET (dialog)); - } - else - { - if (!gtk_window_parse_geometry (GTK_WINDOW (dialog), geometry_string)) - { - g_print ("Can't parse geometry string %s\n", geometry_string); - gtk_window_parse_geometry (GTK_WINDOW (dialog), DEFAULT_GEOMETRY); - } - } -} - -static void -gridded_geometry_response (GtkDialog *dialog, - gint response_id, - GtkEntry *entry) -{ - if (response_id == GTK_RESPONSE_NONE) - { - gtk_widget_destroy (GTK_WIDGET (dialog)); - } - else - { - gchar *geometry_string = g_strdup (gtk_entry_get_text (entry)); - gchar *title = g_strdup_printf ("Gridded window at: %s", geometry_string); - GtkWidget *content_area; - GtkWidget *window; - GtkWidget *drawing_area; - GtkWidget *box; - GdkGeometry geometry; - - window = gtk_dialog_new_with_buttons (title, - NULL, 0, - "Reset", 1, - GTK_STOCK_CLOSE, GTK_RESPONSE_NONE, - NULL); - - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (GTK_WIDGET (dialog))); - g_free (title); - g_signal_connect (window, "response", - G_CALLBACK (gridded_geometry_subresponse), geometry_string); - - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - - box = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (content_area), box, TRUE, TRUE, 0); - - gtk_container_set_border_width (GTK_CONTAINER (box), 7); - - drawing_area = gtk_drawing_area_new (); - g_signal_connect (drawing_area, "draw", - G_CALLBACK (gridded_geometry_draw), NULL); - gtk_box_pack_start (GTK_BOX (box), drawing_area, TRUE, TRUE, 0); - - /* Gross hack to work around bug 68668... if we set the size request - * large enough, then the current - * - * request_of_window - request_of_geometry_widget - * - * method of getting the base size works more or less works. - */ - gtk_widget_set_size_request (drawing_area, 2000, 2000); - - geometry.base_width = 0; - geometry.base_height = 0; - geometry.min_width = 2 * GRID_SIZE; - geometry.min_height = 2 * GRID_SIZE; - geometry.width_inc = GRID_SIZE; - geometry.height_inc = GRID_SIZE; - - gtk_window_set_geometry_hints (GTK_WINDOW (window), drawing_area, - &geometry, - GDK_HINT_BASE_SIZE | GDK_HINT_MIN_SIZE | GDK_HINT_RESIZE_INC); - - if (!gtk_window_parse_geometry (GTK_WINDOW (window), geometry_string)) - { - g_print ("Can't parse geometry string %s\n", geometry_string); - gtk_window_parse_geometry (GTK_WINDOW (window), DEFAULT_GEOMETRY); - } - - gtk_widget_show_all (window); - } -} - -static void -create_gridded_geometry (GtkWidget *widget) -{ - static GtkWidget *window = NULL; - gpointer window_ptr; - GtkWidget *content_area; - GtkWidget *entry; - GtkWidget *label; - - if (!window) - { - window = gtk_dialog_new_with_buttons ("Gridded Geometry", - NULL, 0, - "Create", 1, - GTK_STOCK_CLOSE, GTK_RESPONSE_NONE, - NULL); - - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (widget)); - - content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - - label = gtk_label_new ("Geometry string:"); - gtk_box_pack_start (GTK_BOX (content_area), label, FALSE, FALSE, 0); - - entry = gtk_entry_new (); - gtk_entry_set_text (GTK_ENTRY (entry), DEFAULT_GEOMETRY); - gtk_box_pack_start (GTK_BOX (content_area), entry, FALSE, FALSE, 0); - - g_signal_connect (window, "response", - G_CALLBACK (gridded_geometry_response), entry); - window_ptr = &window; - g_object_add_weak_pointer (G_OBJECT (window), window_ptr); - - gtk_widget_show_all (window); - } - else - gtk_widget_destroy (window); -} - /* * GtkHandleBox */ @@ -1855,7 +1687,7 @@ create_handle_box (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 20); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show (vbox); @@ -1863,15 +1695,15 @@ create_handle_box (GtkWidget *widget) gtk_container_add (GTK_CONTAINER (vbox), label); gtk_widget_show (label); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (vbox), separator); gtk_widget_show (separator); - hbox = gtk_hbox_new (FALSE, 10); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (vbox), separator); gtk_widget_show (separator); @@ -1920,7 +1752,7 @@ create_handle_box (GtkWidget *widget) "detached"); gtk_widget_show (handle_box2); - hbox = g_object_new (GTK_TYPE_HBOX, "visible", 1, "parent", handle_box2, NULL); + hbox = g_object_new (GTK_TYPE_BOX, "visible", 1, "parent", handle_box2, NULL); label = gtk_label_new ("Fooo!"); gtk_container_add (GTK_CONTAINER (hbox), label); gtk_widget_show (label); @@ -1940,7 +1772,8 @@ static void sensitivity_toggled (GtkWidget *toggle, GtkWidget *widget) { - gtk_widget_set_sensitive (widget, GTK_TOGGLE_BUTTON (toggle)->active); + gtk_widget_set_sensitive (widget, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle))); } static GtkWidget* @@ -1993,7 +1826,7 @@ selectable_toggled (GtkWidget *toggle, GtkWidget *widget) { set_selectable_recursive (widget, - GTK_TOGGLE_BUTTON (toggle)->active); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle))); } static GtkWidget* @@ -2077,9 +1910,9 @@ void create_labels (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "Label"); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); - hbox = gtk_hbox_new (FALSE, 5); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); @@ -2092,7 +1925,7 @@ void create_labels (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (window), 5); @@ -2151,7 +1984,7 @@ void create_labels (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); frame = gtk_frame_new ("Line wrapped label"); label = gtk_label_new ("This is an example of a line-wrapped label. It should not be taking "\ @@ -2252,13 +2085,13 @@ create_rotated_label (GtkWidget *widget) gtk_widget_get_screen (widget)); g_signal_connect (window, "response", - G_CALLBACK (gtk_object_destroy), NULL); + G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); content_area = gtk_dialog_get_content_area (GTK_DIALOG (window)); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); @@ -2266,14 +2099,15 @@ create_rotated_label (GtkWidget *widget) gtk_label_set_markup (GTK_LABEL (label), "Hello World\nRotate me"); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - scale_hbox = gtk_hbox_new (FALSE, 0); + scale_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), scale_hbox, FALSE, FALSE, 0); scale_label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (scale_label), "Angle: "); gtk_box_pack_start (GTK_BOX (scale_hbox), scale_label, FALSE, FALSE, 0); - hscale = gtk_hscale_new_with_range (0, 360, 5); + hscale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, + 0, 360, 5); g_signal_connect (hscale, "value-changed", G_CALLBACK (on_angle_scale_changed), label); @@ -2365,7 +2199,7 @@ create_rotated_text (GtkWidget *widget) if (!window) { - const GdkColor white = { 0, 0xffff, 0xffff, 0xffff }; + const GdkRGBA white = { 1.0, 1.0, 1.0, 1.0 }; GtkRequisition requisition; GtkWidget *content_area; GtkWidget *drawing_area; @@ -2382,7 +2216,7 @@ create_rotated_text (GtkWidget *widget) gtk_widget_get_screen (widget)); g_signal_connect (window, "response", - G_CALLBACK (gtk_object_destroy), NULL); + G_CALLBACK (gtk_widget_destroy), NULL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window); @@ -2390,7 +2224,7 @@ create_rotated_text (GtkWidget *widget) drawing_area = gtk_drawing_area_new (); gtk_box_pack_start (GTK_BOX (content_area), drawing_area, TRUE, TRUE, 0); - gtk_widget_modify_bg (drawing_area, GTK_STATE_NORMAL, &white); + gtk_widget_override_background_color (drawing_area, 0, &white); tile_pixbuf = gdk_pixbuf_new_from_file ("marble.xpm", NULL); @@ -2471,10 +2305,10 @@ create_reparent (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "reparent"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_hbox_new (FALSE, 5); + box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -2483,7 +2317,7 @@ create_reparent (GtkWidget *widget) frame = gtk_frame_new ("Frame 1"); gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0); - box3 = gtk_vbox_new (FALSE, 5); + box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (box3), 5); gtk_container_add (GTK_CONTAINER (frame), box3); @@ -2506,7 +2340,7 @@ create_reparent (GtkWidget *widget) frame = gtk_frame_new ("Frame 2"); gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0); - box3 = gtk_vbox_new (FALSE, 5); + box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (box3), 5); gtk_container_add (GTK_CONTAINER (frame), box3); @@ -2521,10 +2355,10 @@ create_reparent (GtkWidget *widget) G_CALLBACK (reparent_label), event_box); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -2565,15 +2399,49 @@ grippy_button_press (GtkWidget *area, GdkEventButton *event, GdkWindowEdge edge) static gboolean grippy_draw (GtkWidget *area, cairo_t *cr, GdkWindowEdge edge) { - gtk_paint_resize_grip (gtk_widget_get_style (area), - cr, - gtk_widget_get_state (area), - area, - "statusbar", - edge, - 0, 0, - gtk_widget_get_allocated_width (area), - gtk_widget_get_allocated_height (area)); + GtkStyleContext *context; + GtkJunctionSides sides; + + switch (edge) + { + case GDK_WINDOW_EDGE_NORTH_WEST: + sides = GTK_JUNCTION_CORNER_TOPLEFT; + break; + case GDK_WINDOW_EDGE_NORTH: + sides = GTK_JUNCTION_TOP; + break; + case GDK_WINDOW_EDGE_NORTH_EAST: + sides = GTK_JUNCTION_CORNER_TOPRIGHT; + break; + case GDK_WINDOW_EDGE_WEST: + sides = GTK_JUNCTION_LEFT; + break; + case GDK_WINDOW_EDGE_EAST: + sides = GTK_JUNCTION_RIGHT; + break; + case GDK_WINDOW_EDGE_SOUTH_WEST: + sides = GTK_JUNCTION_CORNER_BOTTOMLEFT; + break; + case GDK_WINDOW_EDGE_SOUTH: + sides = GTK_JUNCTION_BOTTOM; + break; + case GDK_WINDOW_EDGE_SOUTH_EAST: + sides = GTK_JUNCTION_CORNER_BOTTOMRIGHT; + break; + default: + g_assert_not_reached(); + } + + context = gtk_widget_get_style_context (area); + gtk_style_context_save (context); + gtk_style_context_add_class (context, "grip"); + gtk_style_context_set_junction_sides (context, sides); + gtk_render_handle (context, cr, + 0, 0, + gtk_widget_get_allocated_width (area), + gtk_widget_get_allocated_height (area)); + + gtk_style_context_restore (context); return TRUE; } @@ -2597,10 +2465,10 @@ create_resize_grips (GtkWidget *widget) G_CALLBACK (gtk_widget_destroyed), &window); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); /* North west */ @@ -2630,7 +2498,7 @@ create_resize_grips (GtkWidget *widget) g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH_EAST)); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); /* West */ @@ -2656,7 +2524,7 @@ create_resize_grips (GtkWidget *widget) GINT_TO_POINTER (GDK_WINDOW_EDGE_EAST)); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); /* South west */ @@ -2720,9 +2588,9 @@ uposition_configure (GtkWidget *window) static void uposition_stop_configure (GtkToggleButton *toggle, - GtkObject *window) + GObject *window) { - if (toggle->active) + if (gtk_toggle_button_get_active (toggle)) g_signal_handlers_block_by_func (window, G_CALLBACK (uposition_configure), NULL); else g_signal_handlers_unblock_by_func (window, G_CALLBACK (uposition_configure), NULL); @@ -2761,12 +2629,13 @@ create_saved_position (GtkWidget *widget) G_CALLBACK (gtk_widget_destroyed), &window); - main_vbox = gtk_vbox_new (FALSE, 5); + main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); vbox = - g_object_new (gtk_vbox_get_type (), + g_object_new (GTK_TYPE_BOX, + "orientation", GTK_ORIENTATION_VERTICAL, "GtkBox::homogeneous", FALSE, "GtkBox::spacing", 5, "GtkContainer::border_width", 10, @@ -2781,7 +2650,7 @@ create_saved_position (GtkWidget *widget) NULL), NULL); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); @@ -2793,7 +2662,7 @@ create_saved_position (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (hbox), x_label, TRUE, TRUE, 0); g_object_set_data (G_OBJECT (window), "x", x_label); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); @@ -2806,12 +2675,12 @@ create_saved_position (GtkWidget *widget) g_object_set_data (G_OBJECT (window), "y", y_label); any = - g_object_new (gtk_hseparator_get_type (), + g_object_new (gtk_separator_get_type (), "GtkWidget::visible", TRUE, NULL); gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0); @@ -2861,10 +2730,10 @@ create_pixbuf (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); gtk_widget_realize(window); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -2873,10 +2742,10 @@ create_pixbuf (GtkWidget *widget) gdk_window = gtk_widget_get_window (window); - pixbufwid = new_pixbuf ("test.xpm", gdk_window, NULL); + pixbufwid = new_pixbuf ("test.xpm", gdk_window); label = gtk_label_new ("Pixbuf\ntest"); - box3 = gtk_hbox_new (FALSE, 0); + box3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box3), 2); gtk_container_add (GTK_CONTAINER (box3), pixbufwid); gtk_container_add (GTK_CONTAINER (box3), label); @@ -2885,10 +2754,10 @@ create_pixbuf (GtkWidget *widget) button = gtk_button_new (); gtk_box_pack_start (GTK_BOX (box2), button, FALSE, FALSE, 0); - pixbufwid = new_pixbuf ("test.xpm", gdk_window, NULL); + pixbufwid = new_pixbuf ("test.xpm", gdk_window); label = gtk_label_new ("Pixbuf\ntest"); - box3 = gtk_hbox_new (FALSE, 0); + box3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box3), 2); gtk_container_add (GTK_CONTAINER (box3), pixbufwid); gtk_container_add (GTK_CONTAINER (box3), label); @@ -2896,10 +2765,10 @@ create_pixbuf (GtkWidget *widget) gtk_widget_set_sensitive (button, FALSE); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -2943,10 +2812,10 @@ create_tooltips (GtkWidget *widget) gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (widget)); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); @@ -2969,7 +2838,8 @@ create_tooltips (GtkWidget *widget) gtk_widget_set_tooltip_text (toggle, "Toggle TipsQuery view."); box3 = - g_object_new (gtk_vbox_get_type (), + g_object_new (GTK_TYPE_BOX, + "orientation", GTK_ORIENTATION_VERTICAL, "homogeneous", FALSE, "spacing", 5, "border_width", 5, @@ -2995,10 +2865,10 @@ create_tooltips (GtkWidget *widget) NULL); gtk_box_set_child_packing (GTK_BOX (box2), frame, TRUE, TRUE, 10, GTK_PACK_START); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -3061,7 +2931,7 @@ create_image (GtkWidget *widget) G_CALLBACK (gtk_widget_destroyed), &window); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (window), vbox); @@ -3370,7 +3240,7 @@ create_menus (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); gtk_widget_show (box1); @@ -3403,7 +3273,8 @@ create_menus (GtkWidget *widget) menuitem = gtk_image_menu_item_new_with_label ("Help"); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 4, 5, TRUE)); - gtk_menu_item_set_right_justified (GTK_MENU_ITEM (menuitem), TRUE); + gtk_widget_set_hexpand (menuitem, TRUE); + gtk_widget_set_halign (menuitem, GTK_ALIGN_END); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); @@ -3418,7 +3289,7 @@ create_menus (GtkWidget *widget) gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem); gtk_widget_show (menuitem); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); @@ -3463,17 +3334,17 @@ create_menus (GtkWidget *widget) GDK_KEY_F3, 0, GTK_ACCEL_VISIBLE); - - optionmenu = gtk_combo_box_new_text (); + + optionmenu = gtk_combo_box_text_new (); gtk_combo_box_set_active (GTK_COMBO_BOX (optionmenu), 3); gtk_box_pack_start (GTK_BOX (box2), optionmenu, TRUE, TRUE, 0); gtk_widget_show (optionmenu); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); gtk_widget_show (separator); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); @@ -3676,7 +3547,7 @@ create_key_lookup (GtkWidget *widget) window_ptr = &window; g_object_add_weak_pointer (G_OBJECT (window), window_ptr); - g_signal_connect (window, "response", G_CALLBACK (gtk_object_destroy), NULL); + g_signal_connect (window, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show_all (window); } @@ -3780,9 +3651,10 @@ create_modal_window (GtkWidget *widget) gtk_window_set_modal (GTK_WINDOW(window),TRUE); /* Create widgets */ - box1 = gtk_vbox_new (FALSE,5); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); frame1 = gtk_frame_new ("Standard dialogs in modal form"); - box2 = gtk_vbox_new (TRUE,5); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); + gtk_box_set_homogeneous (GTK_BOX (box2), TRUE); btnColor = gtk_button_new_with_label ("Color"); btnFile = gtk_button_new_with_label ("File Selection"); btnClose = gtk_button_new_with_label ("Close"); @@ -3797,7 +3669,7 @@ create_modal_window (GtkWidget *widget) gtk_container_add (GTK_CONTAINER (frame1), box2); gtk_box_pack_start (GTK_BOX (box2), btnColor, FALSE, FALSE, 4); gtk_box_pack_start (GTK_BOX (box2), btnFile, FALSE, FALSE, 4); - gtk_box_pack_start (GTK_BOX (box1), gtk_hseparator_new (), FALSE, FALSE, 4); + gtk_box_pack_start (GTK_BOX (box1), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 4); gtk_box_pack_start (GTK_BOX (box1), btnClose, FALSE, FALSE, 4); /* connect signals */ @@ -3878,7 +3750,7 @@ create_message_dialog (GtkWidget *widget) static GtkWidget *sw_parent = NULL; static GtkWidget *sw_float_parent; -static guint sw_destroyed_handler = 0; +static gulong sw_destroyed_handler = 0; static gboolean scrolled_windows_delete_cb (GtkWidget *widget, GdkEventAny *event, GtkWidget *scrollwin) @@ -4029,14 +3901,15 @@ entry_toggle_frame (GtkWidget *checkbutton, GtkWidget *entry) { gtk_entry_set_has_frame (GTK_ENTRY(entry), - GTK_TOGGLE_BUTTON(checkbutton)->active); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))); } static void entry_toggle_sensitive (GtkWidget *checkbutton, GtkWidget *entry) { - gtk_widget_set_sensitive (entry, GTK_TOGGLE_BUTTON(checkbutton)->active); + gtk_widget_set_sensitive (entry, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(checkbutton))); } static gboolean @@ -4072,7 +3945,7 @@ static void entry_toggle_progress (GtkWidget *checkbutton, GtkWidget *entry) { - if (GTK_TOGGLE_BUTTON (checkbutton)->active) + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))) { guint timeout = gdk_threads_add_timeout (100, entry_progress_timeout, @@ -4095,7 +3968,7 @@ entry_toggle_pulse (GtkWidget *checkbutton, GtkWidget *entry) { g_object_set_data (G_OBJECT (entry), "progress-pulse", - GUINT_TO_POINTER ((guint) GTK_TOGGLE_BUTTON (checkbutton)->active)); + GUINT_TO_POINTER ((guint) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)))); } static void @@ -4118,7 +3991,7 @@ create_entry (GtkWidget *widget) GtkWidget *sensitive_check; GtkWidget *progress_check; GtkWidget *entry; - GtkComboBox *cb; + GtkComboBoxText *cb; GtkWidget *cb_entry; GtkWidget *button; GtkWidget *separator; @@ -4137,15 +4010,15 @@ create_entry (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); - hbox = gtk_hbox_new (FALSE, 5); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (box2), hbox, TRUE, TRUE, 0); entry = gtk_entry_new (); @@ -4159,18 +4032,19 @@ create_entry (GtkWidget *widget) G_CALLBACK (props_clicked), entry); - cb = GTK_COMBO_BOX (gtk_combo_box_entry_new_text ()); - gtk_combo_box_append_text (cb, "item0"); - gtk_combo_box_append_text (cb, "item0"); - gtk_combo_box_append_text (cb, "item1 item1"); - gtk_combo_box_append_text (cb, "item2 item2 item2"); - gtk_combo_box_append_text (cb, "item3 item3 item3 item3"); - gtk_combo_box_append_text (cb, "item4 item4 item4 item4 item4"); - gtk_combo_box_append_text (cb, "item5 item5 item5 item5 item5 item5"); - gtk_combo_box_append_text (cb, "item6 item6 item6 item6 item6"); - gtk_combo_box_append_text (cb, "item7 item7 item7 item7"); - gtk_combo_box_append_text (cb, "item8 item8 item8"); - gtk_combo_box_append_text (cb, "item9 item9"); + cb = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ()); + + gtk_combo_box_text_append_text (cb, "item0"); + gtk_combo_box_text_append_text (cb, "item0"); + gtk_combo_box_text_append_text (cb, "item1 item1"); + gtk_combo_box_text_append_text (cb, "item2 item2 item2"); + gtk_combo_box_text_append_text (cb, "item3 item3 item3 item3"); + gtk_combo_box_text_append_text (cb, "item4 item4 item4 item4 item4"); + gtk_combo_box_text_append_text (cb, "item5 item5 item5 item5 item5 item5"); + gtk_combo_box_text_append_text (cb, "item6 item6 item6 item6 item6"); + gtk_combo_box_text_append_text (cb, "item7 item7 item7 item7"); + gtk_combo_box_text_append_text (cb, "item8 item8 item8"); + gtk_combo_box_text_append_text (cb, "item9 item9"); cb_entry = gtk_bin_get_child (GTK_BIN (cb)); gtk_entry_set_text (GTK_ENTRY (cb_entry), "hello world \n\n\n foo"); @@ -4199,10 +4073,10 @@ create_entry (GtkWidget *widget) g_signal_connect (progress_check, "toggled", G_CALLBACK (entry_toggle_pulse), entry); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -4242,7 +4116,7 @@ create_expander (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "expander"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); expander = gtk_expander_new ("The Hidden"); @@ -4285,7 +4159,7 @@ event_box_toggle_visible_window (GtkWidget *checkbutton, GtkEventBox *event_box) { gtk_event_box_set_visible_window (event_box, - GTK_TOGGLE_BUTTON(checkbutton)->active); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))); } static void @@ -4293,7 +4167,7 @@ event_box_toggle_above_child (GtkWidget *checkbutton, GtkEventBox *event_box) { gtk_event_box_set_above_child (event_box, - GTK_TOGGLE_BUTTON(checkbutton)->active); + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton))); } static void @@ -4310,13 +4184,14 @@ create_event_box (GtkWidget *widget) GtkWidget *label; GtkWidget *visible_window_check; GtkWidget *above_child_check; - GdkColor color; + GdkRGBA color; if (!window) { color.red = 0; - color.blue = 65535; + color.blue = 1; color.green = 0; + color.alpha = 1; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_screen (GTK_WINDOW (window), @@ -4329,17 +4204,17 @@ create_event_box (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "event box"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); - gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &color); + gtk_widget_override_background_color (window, 0, &color); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (box1), hbox, TRUE, FALSE, 0); event_box = gtk_event_box_new (); gtk_box_pack_start (GTK_BOX (hbox), event_box, TRUE, FALSE, 0); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (event_box), vbox); g_signal_connect (event_box, "button_press_event", G_CALLBACK (event_box_label_pressed), @@ -4367,10 +4242,10 @@ create_event_box (GtkWidget *widget) G_CALLBACK (event_box_toggle_above_child), event_box); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (above_child_check), FALSE); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -4501,7 +4376,7 @@ create_size_group_window (GdkScreen *screen, g_object_unref (vgroup1); g_object_unref (vgroup2); - hbox = gtk_hbox_new (FALSE, 5); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0); spin_button = gtk_spin_button_new_with_range (1, 100, 1); @@ -4572,13 +4447,15 @@ static GtkWidget *spinner1; static void toggle_snap (GtkWidget *widget, GtkSpinButton *spin) { - gtk_spin_button_set_snap_to_ticks (spin, GTK_TOGGLE_BUTTON (widget)->active); + gtk_spin_button_set_snap_to_ticks (spin, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } static void toggle_numeric (GtkWidget *widget, GtkSpinButton *spin) { - gtk_spin_button_set_numeric (spin, GTK_TOGGLE_BUTTON (widget)->active); + gtk_spin_button_set_numeric (spin, + gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } static void @@ -4743,7 +4620,7 @@ create_spins (GtkWidget *widget) GtkWidget *button; GtkWidget *label; GtkWidget *val_label; - GtkAdjustment *adj; + GtkAdjustment *adjustment; if (!window) { @@ -4757,31 +4634,31 @@ create_spins (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "GtkSpinButton"); - main_vbox = gtk_vbox_new (FALSE, 5); + main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 10); gtk_container_add (GTK_CONTAINER (window), main_vbox); frame = gtk_frame_new ("Not accelerated"); gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); gtk_container_add (GTK_CONTAINER (frame), vbox); /* Time, month, hex spinners */ - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 5); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5); label = gtk_label_new ("Time :"); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0); - - adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 1410, 30, 60, 0); - spinner = gtk_spin_button_new (adj, 0, 0); + + adjustment = gtk_adjustment_new (0, 0, 1410, 30, 60, 0); + spinner = gtk_spin_button_new (adjustment, 0, 0); gtk_editable_set_editable (GTK_EDITABLE (spinner), FALSE); g_signal_connect (spinner, "output", @@ -4791,16 +4668,16 @@ create_spins (GtkWidget *widget) gtk_entry_set_width_chars (GTK_ENTRY (spinner), 5); gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5); label = gtk_label_new ("Month :"); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0); - - adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 12.0, 1.0, + + adjustment = gtk_adjustment_new (1.0, 1.0, 12.0, 1.0, 5.0, 0.0); - spinner = gtk_spin_button_new (adj, 0, 0); + spinner = gtk_spin_button_new (adjustment, 0, 0); gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spinner), GTK_UPDATE_IF_VALID); g_signal_connect (spinner, @@ -4815,15 +4692,15 @@ create_spins (GtkWidget *widget) gtk_entry_set_width_chars (GTK_ENTRY (spinner), 9); gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5); label = gtk_label_new ("Hex :"); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0); - adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 255, 1, 16, 0); - spinner = gtk_spin_button_new (adj, 0, 0); + adjustment = gtk_adjustment_new (0, 0, 255, 1, 16, 0); + spinner = gtk_spin_button_new (adjustment, 0, 0); gtk_editable_set_editable (GTK_EDITABLE (spinner), TRUE); g_signal_connect (spinner, "input", @@ -4840,41 +4717,41 @@ create_spins (GtkWidget *widget) frame = gtk_frame_new ("Accelerated"); gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); gtk_container_add (GTK_CONTAINER (frame), vbox); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 5); label = gtk_label_new ("Value :"); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0); - adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -10000.0, 10000.0, + adjustment = gtk_adjustment_new (0.0, -10000.0, 10000.0, 0.5, 100.0, 0.0); - spinner1 = gtk_spin_button_new (adj, 1.0, 2); + spinner1 = gtk_spin_button_new (adjustment, 1.0, 2); gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner1), TRUE); gtk_box_pack_start (GTK_BOX (vbox2), spinner1, FALSE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 5); label = gtk_label_new ("Digits :"); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0); - adj = (GtkAdjustment *) gtk_adjustment_new (2, 1, 15, 1, 1, 0); - spinner2 = gtk_spin_button_new (adj, 0.0, 0); - g_signal_connect (adj, "value_changed", + adjustment = gtk_adjustment_new (2, 1, 15, 1, 1, 0); + spinner2 = gtk_spin_button_new (adjustment, 0.0, 0); + g_signal_connect (adjustment, "value_changed", G_CALLBACK (change_digits), spinner2); gtk_box_pack_start (GTK_BOX (vbox2), spinner2, FALSE, TRUE, 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 5); button = gtk_check_button_new_with_label ("Snap to 0.5-ticks"); @@ -4893,7 +4770,7 @@ create_spins (GtkWidget *widget) val_label = gtk_label_new (""); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5); button = gtk_button_new_with_label ("Value as Int"); @@ -4916,7 +4793,7 @@ create_spins (GtkWidget *widget) frame = gtk_frame_new ("Using Convenience Constructor"); gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_container_add (GTK_CONTAINER (frame), hbox); @@ -4929,7 +4806,7 @@ create_spins (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 5); gtk_box_pack_start (GTK_BOX (hbox), val_label, TRUE, TRUE, 5); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0); button = gtk_button_new_with_label ("Close"); @@ -4956,6 +4833,8 @@ cursor_draw (GtkWidget *widget, gpointer user_data) { int width, height; + GtkStyleContext *context; + GdkRGBA bg; width = gtk_widget_get_allocated_width (widget); height = gtk_widget_get_allocated_height (widget); @@ -4968,7 +4847,9 @@ cursor_draw (GtkWidget *widget, cairo_rectangle (cr, 0, height / 2, width, height / 2); cairo_fill (cr); - gdk_cairo_set_source_color (cr, >k_widget_get_style (widget)->bg[GTK_STATE_NORMAL]); + context = gtk_widget_get_style_context (widget); + gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg); + gdk_cairo_set_source_rgba (cr, &bg); cairo_rectangle (cr, width / 3, height / 3, width / 3, height / 3); cairo_fill (cr); @@ -5005,7 +4886,7 @@ set_cursor (GtkWidget *spinner, cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), c); gdk_window_set_cursor (gtk_widget_get_window (widget), cursor); - gdk_cursor_unref (cursor); + g_object_unref (cursor); } static gint @@ -5062,7 +4943,7 @@ create_cursors (GtkWidget *widget) GtkWidget *button; GtkWidget *label; GtkWidget *any; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GtkWidget *entry; GtkWidget *size; @@ -5078,12 +4959,13 @@ create_cursors (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "Cursors"); - main_vbox = gtk_vbox_new (FALSE, 5); + main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 0); gtk_container_add (GTK_CONTAINER (window), main_vbox); vbox = - g_object_new (gtk_vbox_get_type (), + g_object_new (GTK_TYPE_BOX, + "orientation", GTK_ORIENTATION_VERTICAL, "GtkBox::homogeneous", FALSE, "GtkBox::spacing", 5, "GtkContainer::border_width", 10, @@ -5092,7 +4974,7 @@ create_cursors (GtkWidget *widget) NULL); #ifdef GDK_WINDOWING_X11 - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); @@ -5114,19 +4996,19 @@ create_cursors (GtkWidget *widget) G_CALLBACK (change_cursor_theme), hbox); #endif - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0); label = gtk_label_new ("Cursor Value : "); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); - - adj = (GtkAdjustment *) gtk_adjustment_new (0, - 0, 152, - 2, - 10, 0); - spinner = gtk_spin_button_new (adj, 0, 0); + + adjustment = gtk_adjustment_new (0, + 0, 152, + 2, + 10, 0); + spinner = gtk_spin_button_new (adjustment, 0, 0); gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 0); frame = @@ -5166,13 +5048,10 @@ create_cursors (GtkWidget *widget) NULL); g_object_set_data (G_OBJECT (spinner), "user_data", label); - any = - g_object_new (gtk_hseparator_get_type (), - "GtkWidget::visible", TRUE, - NULL); + any = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0); @@ -5266,7 +5145,7 @@ create_color_selection (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "GtkColorButton"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - hbox = gtk_hbox_new (FALSE, 8); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_container_add (GTK_CONTAINER (window), hbox); @@ -5356,7 +5235,7 @@ create_forward_back (const char *title, GtkTextDirection text_dir) { GtkWidget *frame = gtk_frame_new (title); - GtkWidget *bbox = gtk_hbutton_box_new (); + GtkWidget *bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); GtkWidget *back_button = gtk_button_new_from_stock (GTK_STOCK_GO_BACK); GtkWidget *forward_button = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD); @@ -5584,7 +5463,7 @@ create_font_selection (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "GtkFontButton"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - hbox = gtk_hbox_new (FALSE, 8); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); gtk_container_add (GTK_CONTAINER (window), hbox); @@ -5619,7 +5498,7 @@ label_toggle (GtkWidget *widget, "destroy", G_CALLBACK (gtk_widget_destroyed), label); - gtk_misc_set_padding (GTK_MISC (*label), 10, 10); + g_object_set (*label, "margin", 10, NULL); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog_window))), *label, TRUE, TRUE, 0); gtk_widget_show (*label); @@ -5735,7 +5614,7 @@ screen_display_check (GtkWidget *widget, ScreenDisplaySelection *data) break; } if (!found) - gtk_combo_box_append_text (GTK_COMBO_BOX (data->combo), display_name); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (data->combo), display_name); new_screen = gdk_display_get_default_screen (display); } } @@ -5782,7 +5661,7 @@ create_display_screen (GtkWidget *widget) g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroy), NULL); - vbox = gtk_vbox_new (FALSE, 3); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3); gtk_container_add (GTK_CONTAINER (window), vbox); frame = gtk_frame_new ("Select screen or display"); @@ -5805,8 +5684,8 @@ create_display_screen (GtkWidget *widget) "only one screen on the current display"); gtk_widget_set_sensitive (radio_scr, FALSE); } - combo_dpy = gtk_combo_box_new_text (); - gtk_combo_box_append_text (GTK_COMBO_BOX (combo_dpy), "diabolo:0.0"); + combo_dpy = gtk_combo_box_text_new_with_entry (); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_dpy), "diabolo:0.0"); gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_dpy))), ":."); @@ -5814,7 +5693,7 @@ create_display_screen (GtkWidget *widget) gtk_table_attach_defaults (GTK_TABLE (table), radio_scr, 0, 1, 1, 2); gtk_table_attach_defaults (GTK_TABLE (table), combo_dpy, 1, 2, 0, 1); - bbox = gtk_hbutton_box_new (); + bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); applyb = gtk_button_new_from_stock (GTK_STOCK_APPLY); cancelb = gtk_button_new_from_stock (GTK_STOCK_CANCEL); @@ -5839,8 +5718,8 @@ create_display_screen (GtkWidget *widget) /* Event Watcher */ -static gboolean event_watcher_enter_id = 0; -static gboolean event_watcher_leave_id = 0; +static gulong event_watcher_enter_id = 0; +static gulong event_watcher_leave_id = 0; static gboolean event_watcher (GSignalInvocationHint *ihint, @@ -5959,7 +5838,7 @@ create_range_controls (GtkWidget *widget) GtkWidget *scrollbar; GtkWidget *scale; GtkWidget *separator; - GObject *adjustment; + GtkAdjustment *adjustment; GtkWidget *hbox; if (!window) @@ -5977,12 +5856,12 @@ create_range_controls (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); gtk_widget_show (box1); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0); gtk_widget_show (box2); @@ -5990,21 +5869,18 @@ create_range_controls (GtkWidget *widget) adjustment = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0); - scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment)); + scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment)); gtk_widget_set_size_request (GTK_WIDGET (scale), 150, -1); - gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED); gtk_scale_set_digits (GTK_SCALE (scale), 1); gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE); gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0); gtk_widget_show (scale); - scrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (adjustment)); - gtk_range_set_update_policy (GTK_RANGE (scrollbar), - GTK_UPDATE_CONTINUOUS); + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment)); gtk_box_pack_start (GTK_BOX (box2), scrollbar, TRUE, TRUE, 0); gtk_widget_show (scrollbar); - scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment)); + scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment)); gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE); g_signal_connect (scale, "format_value", @@ -6013,16 +5889,16 @@ create_range_controls (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0); gtk_widget_show (scale); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment)); + scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment)); gtk_widget_set_size_request (scale, -1, 200); gtk_scale_set_digits (GTK_SCALE (scale), 2); gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE); gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0); gtk_widget_show (scale); - scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment)); + scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment)); gtk_widget_set_size_request (scale, -1, 200); gtk_scale_set_digits (GTK_SCALE (scale), 2); gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE); @@ -6030,7 +5906,7 @@ create_range_controls (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0); gtk_widget_show (scale); - scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment)); + scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment)); gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE); g_signal_connect (scale, "format_value", @@ -6043,12 +5919,12 @@ create_range_controls (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (box2), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); gtk_widget_show (separator); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); @@ -6070,74 +5946,6 @@ create_range_controls (GtkWidget *widget) gtk_widget_destroy (window); } -/* - * GtkRulers - */ - -void -create_rulers (GtkWidget *widget) -{ - static GtkWidget *window = NULL; - GtkWidget *table; - GtkWidget *ruler; - - if (!window) - { - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (widget)); - - gtk_window_set_resizable (GTK_WINDOW (window), TRUE); - - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); - - gtk_window_set_title (GTK_WINDOW (window), "rulers"); - gtk_widget_set_size_request (window, 300, 300); - gtk_widget_set_events (window, - GDK_POINTER_MOTION_MASK - | GDK_POINTER_MOTION_HINT_MASK); - gtk_container_set_border_width (GTK_CONTAINER (window), 0); - - table = gtk_table_new (2, 2, FALSE); - gtk_container_add (GTK_CONTAINER (window), table); - gtk_widget_show (table); - - ruler = gtk_hruler_new (); - gtk_ruler_set_metric (GTK_RULER (ruler), GTK_CENTIMETERS); - gtk_ruler_set_range (GTK_RULER (ruler), 100, 0, 0, 20); - - g_signal_connect_swapped (window, - "motion_notify_event", - G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event), - ruler); - - gtk_table_attach (GTK_TABLE (table), ruler, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show (ruler); - - - ruler = gtk_vruler_new (); - gtk_ruler_set_range (GTK_RULER (ruler), 5, 15, 0, 20); - - g_signal_connect_swapped (window, - "motion_notify_event", - G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event), - ruler); - - gtk_table_attach (GTK_TABLE (table), ruler, 0, 1, 1, 2, - GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - gtk_widget_show (ruler); - } - - if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); - else - gtk_widget_destroy (window); -} - struct { GdkColor color; gchar *name; @@ -6279,11 +6087,13 @@ create_pages (GtkNotebook *notebook, gint start, gint end) child = gtk_frame_new (buffer); gtk_container_set_border_width (GTK_CONTAINER (child), 10); - vbox = gtk_vbox_new (TRUE,0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_container_add (GTK_CONTAINER (child), vbox); - hbox = gtk_hbox_new (TRUE,0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5); button = gtk_check_button_new_with_label ("Fill Tab"); @@ -6305,23 +6115,29 @@ create_pages (GtkNotebook *notebook, gint start, gint end) gtk_widget_show_all (child); - label_box = gtk_hbox_new (FALSE, 0); + label_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); pixwid = gtk_image_new_from_pixbuf (book_closed); g_object_set_data (G_OBJECT (child), "tab_pixmap", pixwid); gtk_box_pack_start (GTK_BOX (label_box), pixwid, FALSE, TRUE, 0); - gtk_misc_set_padding (GTK_MISC (pixwid), 3, 1); + gtk_widget_set_margin_left (pixwid, 3); + gtk_widget_set_margin_right (pixwid, 3); + gtk_widget_set_margin_bottom (pixwid, 1); + gtk_widget_set_margin_top (pixwid, 1); label = gtk_label_new_with_mnemonic (accel_buffer); gtk_box_pack_start (GTK_BOX (label_box), label, FALSE, TRUE, 0); gtk_widget_show_all (label_box); - menu_box = gtk_hbox_new (FALSE, 0); + menu_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); pixwid = gtk_image_new_from_pixbuf (book_closed); g_object_set_data (G_OBJECT (child), "menu_pixmap", pixwid); gtk_box_pack_start (GTK_BOX (menu_box), pixwid, FALSE, TRUE, 0); - gtk_misc_set_padding (GTK_MISC (pixwid), 3, 1); + gtk_widget_set_margin_left (pixwid, 3); + gtk_widget_set_margin_right (pixwid, 3); + gtk_widget_set_margin_bottom (pixwid, 1); + gtk_widget_set_margin_top (pixwid, 1); label = gtk_label_new (buffer); gtk_box_pack_start (GTK_BOX (menu_box), label, FALSE, TRUE, 0); gtk_widget_show_all (menu_box); @@ -6405,7 +6221,7 @@ static void notebook_popup (GtkToggleButton *button, GtkNotebook *notebook) { - if (button->active) + if (gtk_toggle_button_get_active (button)) gtk_notebook_popup_enable (notebook); else gtk_notebook_popup_disable (notebook); @@ -6443,7 +6259,7 @@ create_notebook (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "notebook"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); sample_notebook = gtk_notebook_new (); @@ -6463,10 +6279,10 @@ create_notebook (GtkWidget *widget) create_pages (GTK_NOTEBOOK (sample_notebook), 1, 5); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 10); - box2 = gtk_hbox_new (FALSE, 5); + box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -6476,7 +6292,7 @@ create_notebook (GtkWidget *widget) G_CALLBACK (notebook_popup), sample_notebook); - box2 = gtk_hbox_new (FALSE, 5); + box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -6493,7 +6309,8 @@ create_notebook (GtkWidget *widget) g_signal_connect (button, "clicked", G_CALLBACK (show_all_pages), sample_notebook); - box2 = gtk_hbox_new (TRUE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10); + gtk_box_set_homogeneous (GTK_BOX (box2), TRUE); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -6514,7 +6331,7 @@ create_notebook (GtkWidget *widget) G_CALLBACK (rotate_notebook), sample_notebook); gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5); button = gtk_button_new_with_label ("close"); @@ -6666,14 +6483,14 @@ create_panes (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "Panes"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); - vpaned = gtk_vpaned_new (); + vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5); - hpaned = gtk_hpaned_new (); + hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_add1 (GTK_PANED (vpaned), hpaned); frame = gtk_frame_new (NULL); @@ -6752,14 +6569,14 @@ paned_keyboard_window1 (GtkWidget *widget) gtk_window_set_screen (GTK_WINDOW (window1), gtk_widget_get_screen (widget)); - hpaned1 = gtk_hpaned_new (); + hpaned1 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (window1), hpaned1); frame1 = gtk_frame_new (NULL); gtk_paned_pack1 (GTK_PANED (hpaned1), frame1, FALSE, TRUE); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); - vbox1 = gtk_vbox_new (FALSE, 0); + vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (frame1), vbox1); button7 = gtk_button_new_with_label ("button7"); @@ -6771,7 +6588,7 @@ paned_keyboard_window1 (GtkWidget *widget) button9 = gtk_button_new_with_label ("button9"); gtk_box_pack_start (GTK_BOX (vbox1), button9, FALSE, FALSE, 0); - vpaned1 = gtk_vpaned_new (); + vpaned1 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_paned_pack2 (GTK_PANED (hpaned1), vpaned1, TRUE, TRUE); frame2 = gtk_frame_new (NULL); @@ -6781,7 +6598,7 @@ paned_keyboard_window1 (GtkWidget *widget) frame5 = gtk_frame_new (NULL); gtk_container_add (GTK_CONTAINER (frame2), frame5); - hbox1 = gtk_hbox_new (FALSE, 0); + hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (frame5), hbox1); button5 = gtk_button_new_with_label ("button5"); @@ -6846,7 +6663,7 @@ paned_keyboard_window2 (GtkWidget *widget) gtk_window_set_screen (GTK_WINDOW (window2), gtk_widget_get_screen (widget)); - hpaned2 = gtk_hpaned_new (); + hpaned2 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (window2), hpaned2); frame6 = gtk_frame_new (NULL); @@ -6856,10 +6673,10 @@ paned_keyboard_window2 (GtkWidget *widget) button13 = gtk_button_new_with_label ("button13"); gtk_container_add (GTK_CONTAINER (frame6), button13); - hbox2 = gtk_hbox_new (FALSE, 0); + hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_paned_pack2 (GTK_PANED (hpaned2), hbox2, TRUE, TRUE); - vpaned2 = gtk_vpaned_new (); + vpaned2 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (hbox2), vpaned2, TRUE, TRUE, 0); frame7 = gtk_frame_new (NULL); @@ -6908,13 +6725,13 @@ paned_keyboard_window3 (GtkWidget *widget) gtk_widget_get_screen (widget)); - vbox2 = gtk_vbox_new (FALSE, 0); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window3), vbox2); label1 = gtk_label_new ("Three panes nested inside each other"); gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, FALSE, 0); - hpaned3 = gtk_hpaned_new (); + hpaned3 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox2), hpaned3, TRUE, TRUE, 0); frame9 = gtk_frame_new (NULL); @@ -6924,7 +6741,7 @@ paned_keyboard_window3 (GtkWidget *widget) button14 = gtk_button_new_with_label ("button14"); gtk_container_add (GTK_CONTAINER (frame9), button14); - hpaned4 = gtk_hpaned_new (); + hpaned4 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_pack2 (GTK_PANED (hpaned3), hpaned4, TRUE, TRUE); frame10 = gtk_frame_new (NULL); @@ -6934,7 +6751,7 @@ paned_keyboard_window3 (GtkWidget *widget) button15 = gtk_button_new_with_label ("button15"); gtk_container_add (GTK_CONTAINER (frame10), button15); - hpaned5 = gtk_hpaned_new (); + hpaned5 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_paned_pack2 (GTK_PANED (hpaned4), hpaned5, TRUE, TRUE); frame11 = gtk_frame_new (NULL); @@ -6982,17 +6799,17 @@ paned_keyboard_window4 (GtkWidget *widget) gtk_window_set_screen (GTK_WINDOW (window4), gtk_widget_get_screen (widget)); - vbox3 = gtk_vbox_new (FALSE, 0); + vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window4), vbox3); label2 = gtk_label_new ("Widget tree:\n\nhpaned \n - vpaned\n - hbox\n - vpaned\n - vpaned\n - vpaned\n"); gtk_box_pack_start (GTK_BOX (vbox3), label2, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); - hpaned6 = gtk_hpaned_new (); + hpaned6 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox3), hpaned6, TRUE, TRUE, 0); - vpaned3 = gtk_vpaned_new (); + vpaned3 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_paned_pack1 (GTK_PANED (hpaned6), vpaned3, FALSE, TRUE); button19 = gtk_button_new_with_label ("button19"); @@ -7001,10 +6818,10 @@ paned_keyboard_window4 (GtkWidget *widget) button18 = gtk_button_new_with_label ("button18"); gtk_paned_pack2 (GTK_PANED (vpaned3), button18, TRUE, TRUE); - hbox3 = gtk_hbox_new (FALSE, 0); + hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_paned_pack2 (GTK_PANED (hpaned6), hbox3, TRUE, TRUE); - vpaned4 = gtk_vpaned_new (); + vpaned4 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (hbox3), vpaned4, TRUE, TRUE, 0); button21 = gtk_button_new_with_label ("button21"); @@ -7013,7 +6830,7 @@ paned_keyboard_window4 (GtkWidget *widget) button20 = gtk_button_new_with_label ("button20"); gtk_paned_pack2 (GTK_PANED (vpaned4), button20, TRUE, TRUE); - vpaned5 = gtk_vpaned_new (); + vpaned5 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (hbox3), vpaned5, TRUE, TRUE, 0); button23 = gtk_button_new_with_label ("button23"); @@ -7022,7 +6839,7 @@ paned_keyboard_window4 (GtkWidget *widget) button22 = gtk_button_new_with_label ("button22"); gtk_paned_pack2 (GTK_PANED (vpaned5), button22, TRUE, TRUE); - vpaned6 = gtk_vpaned_new (); + vpaned6 = gtk_paned_new (GTK_ORIENTATION_VERTICAL); gtk_box_pack_start (GTK_BOX (hbox3), vpaned6, TRUE, TRUE, 0); button25 = gtk_button_new_with_label ("button25"); @@ -7125,23 +6942,27 @@ shape_pressed (GtkWidget *widget, GdkEventButton *event) p->y = (int) event->y; gtk_grab_add (widget); - gdk_pointer_grab (gtk_widget_get_window (widget), TRUE, - GDK_BUTTON_RELEASE_MASK | - GDK_BUTTON_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK, - NULL, NULL, 0); + gdk_device_grab (gdk_event_get_device ((GdkEvent*)event), + gtk_widget_get_window (widget), + GDK_OWNERSHIP_NONE, + TRUE, + GDK_BUTTON_RELEASE_MASK | + GDK_BUTTON_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK, + NULL, + event->time); } static void -shape_released (GtkWidget *widget) +shape_released (GtkWidget *widget, + GdkEventButton *event) { gtk_grab_remove (widget); - gdk_display_pointer_ungrab (gtk_widget_get_display (widget), - GDK_CURRENT_TIME); + gdk_device_ungrab (gdk_event_get_device ((GdkEvent*)event), event->time); } static void -shape_motion (GtkWidget *widget, +shape_motion (GtkWidget *widget, GdkEventMotion *event) { gint xp, yp; @@ -7382,7 +7203,7 @@ create_wmhints (GtkWidget *widget) gdk_window_set_decorations (gdk_window, GDK_DECOR_ALL | GDK_DECOR_MENU); gdk_window_set_functions (gdk_window, GDK_FUNC_ALL | GDK_FUNC_RESIZE); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); gtk_widget_show (box1); @@ -7392,12 +7213,12 @@ create_wmhints (GtkWidget *widget) gtk_widget_show (label); - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); gtk_widget_show (separator); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); gtk_widget_show (box2); @@ -7465,7 +7286,7 @@ tracking_label (GtkWidget *window) GtkWidget *hbox; GtkWidget *button; - hbox = gtk_hbox_new (FALSE, 5); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); g_signal_connect_object (hbox, "destroy", @@ -7568,7 +7389,7 @@ get_state_controls (GtkWidget *window) GtkWidget *button_above; GtkWidget *button_below; - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); button = gtk_button_new_with_label ("Stick"); g_signal_connect_object (button, @@ -7678,7 +7499,7 @@ create_window_states (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "Window states"); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); iconified = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -7866,7 +7687,7 @@ resizable_callback (GtkWidget *widget, gpointer data) { g_object_set (g_object_get_data (data, "target"), - "resizable", GTK_TOGGLE_BUTTON (widget)->active, + "resizable", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL); } @@ -7999,7 +7820,7 @@ make_gravity_window (GtkWidget *destroy_with, gtk_window_set_screen (GTK_WINDOW (window), gtk_widget_get_screen (destroy_with)); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (window), vbox); @@ -8111,7 +7932,7 @@ window_controls (GtkWidget *window) GtkWidget *vbox; GtkWidget *button; GtkWidget *spin; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GtkWidget *entry; GtkWidget *om; gint i; @@ -8133,7 +7954,7 @@ window_controls (GtkWidget *window) window, G_CONNECT_SWAPPED); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (control_window), vbox); @@ -8145,17 +7966,15 @@ window_controls (GtkWidget *window) G_CALLBACK (configure_event_callback), label); - adj = (GtkAdjustment *) gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, - 5.0, 0.0); - spin = gtk_spin_button_new (adj, 0, 0); + adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0); + spin = gtk_spin_button_new (adjustment, 0, 0); gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (control_window), "spin1", spin); - adj = (GtkAdjustment *) gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, - 5.0, 0.0); - spin = gtk_spin_button_new (adj, 0, 0); + adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0); + spin = gtk_spin_button_new (adjustment, 0, 0); gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0); @@ -8263,8 +8082,8 @@ window_controls (GtkWidget *window) window, G_CONNECT_SWAPPED); gtk_box_pack_end (GTK_BOX (vbox), button, FALSE, FALSE, 0); - - om = gtk_combo_box_new_text (); + + om = gtk_combo_box_text_new (); i = 0; while (i < 10) { @@ -8283,7 +8102,7 @@ window_controls (GtkWidget *window) }; g_assert (names[i]); - gtk_combo_box_append_text (GTK_COMBO_BOX (om), names[i]); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (om), names[i]); ++i; } @@ -8296,7 +8115,7 @@ window_controls (GtkWidget *window) gtk_box_pack_end (GTK_BOX (vbox), om, FALSE, FALSE, 0); - om = gtk_combo_box_new_text (); + om = gtk_combo_box_text_new (); i = 0; while (i < 5) { @@ -8310,7 +8129,7 @@ window_controls (GtkWidget *window) }; g_assert (names[i]); - gtk_combo_box_append_text (GTK_COMBO_BOX (om), names[i]); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (om), names[i]); ++i; } @@ -8422,8 +8241,11 @@ static void destroy_progress (GtkWidget *widget, ProgressData **pdata) { - g_source_remove ((*pdata)->timer); - (*pdata)->timer = 0; + if ((*pdata)->timer) + { + g_source_remove ((*pdata)->timer); + (*pdata)->timer = 0; + } (*pdata)->window = NULL; g_free (*pdata); *pdata = NULL; @@ -8480,6 +8302,24 @@ toggle_activity_mode (GtkWidget *widget, ProgressData *pdata) pdata->activity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); } +static void +toggle_running (GtkWidget *widget, ProgressData *pdata) +{ + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))) + { + if (pdata->timer == 0) + pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata); + } + else + { + if (pdata->timer != 0) + { + g_source_remove (pdata->timer); + pdata->timer = 0; + } + } +} + static void entry_changed (GtkWidget *widget, ProgressData *pdata) { @@ -8540,14 +8380,14 @@ create_progress_bar (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (pdata->window), "GtkProgressBar"); gtk_container_set_border_width (GTK_CONTAINER (pdata->window), 0); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_box_pack_start (GTK_BOX (content_area), vbox, FALSE, TRUE, 0); frame = gtk_frame_new ("Progress"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 5); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (frame), vbox2); align = gtk_alignment_new (0.5, 0.5, 0, 0); @@ -8558,12 +8398,11 @@ create_progress_bar (GtkWidget *widget) PANGO_ELLIPSIZE_MIDDLE); gtk_container_add (GTK_CONTAINER (align), pdata->pbar); - pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata); align = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5); - hbox = gtk_hbox_new (FALSE, 5); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); gtk_container_add (GTK_CONTAINER (align), hbox); label = gtk_label_new ("Label updated by user :"); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); @@ -8573,7 +8412,7 @@ create_progress_bar (GtkWidget *widget) frame = gtk_frame_new ("Options"); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0); - vbox2 = gtk_vbox_new (FALSE, 5); + vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_add (GTK_CONTAINER (frame), vbox2); tab = gtk_table_new (7, 2, FALSE); @@ -8588,22 +8427,31 @@ create_progress_bar (GtkWidget *widget) pdata->omenu1 = build_option_menu (items1, 4, 0, progressbar_toggle_orientation, pdata); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 5); gtk_box_pack_start (GTK_BOX (hbox), pdata->omenu1, TRUE, TRUE, 0); + check = gtk_check_button_new_with_label ("Running"); + g_signal_connect (check, "toggled", + G_CALLBACK (toggle_running), + pdata); + gtk_table_attach (GTK_TABLE (tab), check, 0, 2, 1, 2, + GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, + 5, 5); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE); + check = gtk_check_button_new_with_label ("Show text"); g_signal_connect (check, "clicked", G_CALLBACK (toggle_show_text), pdata); - gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 1, 2, + gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 5); - hbox = gtk_hbox_new (FALSE, 0); - gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 1, 2, + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 5); @@ -8627,7 +8475,7 @@ create_progress_bar (GtkWidget *widget) 2, // PANGO_ELLIPSIZE_MIDDLE progressbar_toggle_ellipsize, pdata); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 10, 11, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 5); @@ -8764,14 +8612,14 @@ find_widget (GtkWidget *widget, FindWidgetData *data) } static GtkWidget * -find_widget_at_pointer (GdkDisplay *display) +find_widget_at_pointer (GdkDevice *device) { GtkWidget *widget = NULL; GdkWindow *pointer_window; gint x, y; FindWidgetData data; - pointer_window = gdk_display_get_window_at_pointer (display, NULL, NULL); + pointer_window = gdk_device_get_window_at_position (device, NULL, NULL); if (pointer_window) { @@ -8803,7 +8651,7 @@ struct PropertiesData { GtkWidget **window; GdkCursor *cursor; gboolean in_query; - gint handler; + gulong handler; }; static void @@ -8818,7 +8666,7 @@ destroy_properties (GtkWidget *widget, if (data->cursor) { - gdk_cursor_unref (data->cursor); + g_object_unref (data->cursor); data->cursor = NULL; } @@ -8832,22 +8680,21 @@ destroy_properties (GtkWidget *widget, } static gint -property_query_event (GtkWidget *widget, - GdkEvent *event, - struct PropertiesData *data) +property_query_event (GtkWidget *widget, + GdkEvent *event, + struct PropertiesData *data) { GtkWidget *res_widget = NULL; if (!data->in_query) return FALSE; - + if (event->type == GDK_BUTTON_RELEASE) { gtk_grab_remove (widget); - gdk_display_pointer_ungrab (gtk_widget_get_display (widget), - GDK_CURRENT_TIME); - - res_widget = find_widget_at_pointer (gtk_widget_get_display (widget)); + gdk_device_ungrab (gdk_event_get_device (event), GDK_CURRENT_TIME); + + res_widget = find_widget_at_pointer (gdk_event_get_device (event)); if (res_widget) { g_object_set_data (G_OBJECT (res_widget), "prop-editor-screen", @@ -8866,23 +8713,27 @@ query_properties (GtkButton *button, struct PropertiesData *data) { GtkWidget *widget = GTK_WIDGET (button); - gint failure; + GdkDisplay *display; + GdkDeviceManager *device_manager; + GdkDevice *device; g_signal_connect (button, "event", G_CALLBACK (property_query_event), data); + display = gtk_widget_get_display (widget); if (!data->cursor) - data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), - GDK_TARGET); - - failure = gdk_pointer_grab (gtk_widget_get_window (widget), - TRUE, - GDK_BUTTON_RELEASE_MASK, - NULL, - data->cursor, - GDK_CURRENT_TIME); - + data->cursor = gdk_cursor_new_for_display (display, GDK_TARGET); + + device_manager = gdk_display_get_device_manager (display); + device = gdk_device_manager_get_client_pointer (device_manager); + gdk_device_grab (device, + gtk_widget_get_window (widget), + GDK_OWNERSHIP_NONE, + TRUE, + GDK_BUTTON_RELEASE_MASK, + data->cursor, + GDK_CURRENT_TIME); gtk_grab_add (widget); data->in_query = TRUE; @@ -8917,7 +8768,7 @@ create_properties (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "test properties"); gtk_container_set_border_width (GTK_CONTAINER (window), 10); - vbox = gtk_vbox_new (FALSE, 1); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); gtk_container_add (GTK_CONTAINER (window), vbox); label = gtk_label_new ("This is just a dumb test to test properties.\nIf you need a generic module, get GLE."); @@ -8937,25 +8788,199 @@ create_properties (GtkWidget *widget) } +struct SnapshotData { + GtkWidget *toplevel_button; + GtkWidget **window; + GdkCursor *cursor; + gboolean in_query; + gboolean is_toplevel; + gint handler; +}; + +static void +destroy_snapshot_data (GtkWidget *widget, + struct SnapshotData *data) +{ + if (*data->window) + *data->window = NULL; + + if (data->cursor) + { + g_object_unref (data->cursor); + data->cursor = NULL; + } + + if (data->handler) + { + g_signal_handler_disconnect (widget, data->handler); + data->handler = 0; + } + + g_free (data); +} + +static gint +snapshot_widget_event (GtkWidget *widget, + GdkEvent *event, + struct SnapshotData *data) +{ + GtkWidget *res_widget = NULL; + + if (!data->in_query) + return FALSE; + + if (event->type == GDK_BUTTON_RELEASE) + { + gtk_grab_remove (widget); + gdk_device_ungrab (gdk_event_get_device (event), + GDK_CURRENT_TIME); + + res_widget = find_widget_at_pointer (gdk_event_get_device (event)); + if (data->is_toplevel && res_widget) + res_widget = gtk_widget_get_toplevel (res_widget); + if (res_widget) + { + cairo_surface_t *surface; + GtkWidget *window, *image; + GdkPixbuf *pixbuf; + int width, height; + cairo_t *cr; + + width = gtk_widget_get_allocated_width (res_widget); + height = gtk_widget_get_allocated_height (res_widget); + + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height); + + cr = cairo_create (surface); + gtk_widget_draw (res_widget, cr); + cairo_destroy (cr); + + pixbuf = gdk_pixbuf_get_from_surface (surface, + 0, 0, + width, height); + cairo_surface_destroy (surface); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + image = gtk_image_new_from_pixbuf (pixbuf); + g_object_unref (pixbuf); + + gtk_container_add (GTK_CONTAINER (window), image); + gtk_widget_show_all (window); + } + + data->in_query = FALSE; + } + return FALSE; +} + + +static void +snapshot_widget (GtkButton *button, + struct SnapshotData *data) +{ + GtkWidget *widget = GTK_WIDGET (button); + GdkDevice *device; + + device = gtk_get_current_event_device (); + if (device == NULL) + return; + + if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) + device = gdk_device_get_associated_device (device); + + data->is_toplevel = widget == data->toplevel_button; + + if (!data->cursor) + data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), + GDK_TARGET); + + gdk_device_grab (device, + gtk_widget_get_window (widget), + GDK_OWNERSHIP_APPLICATION, + TRUE, + GDK_BUTTON_RELEASE_MASK, + data->cursor, + GDK_CURRENT_TIME); + + g_signal_connect (button, "event", + G_CALLBACK (snapshot_widget_event), data); + + gtk_grab_add (widget); + + data->in_query = TRUE; +} + +static void +create_snapshot (GtkWidget *widget) +{ + static GtkWidget *window = NULL; + GtkWidget *button; + GtkWidget *vbox; + struct SnapshotData *data; + + data = g_new (struct SnapshotData, 1); + data->window = &window; + data->in_query = FALSE; + data->cursor = NULL; + data->handler = 0; + + if (!window) + { + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_window_set_screen (GTK_WINDOW (window), + gtk_widget_get_screen (widget)); + + data->handler = g_signal_connect (window, "destroy", + G_CALLBACK (destroy_snapshot_data), + data); + + gtk_window_set_title (GTK_WINDOW (window), "test snapshot"); + gtk_container_set_border_width (GTK_CONTAINER (window), 10); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1); + gtk_container_add (GTK_CONTAINER (window), vbox); + + button = gtk_button_new_with_label ("Snapshot widget"); + gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (snapshot_widget), + data); + + button = gtk_button_new_with_label ("Snapshot toplevel"); + data->toplevel_button = button; + gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0); + g_signal_connect (button, "clicked", + G_CALLBACK (snapshot_widget), + data); + } + + if (!gtk_widget_get_visible (window)) + gtk_widget_show_all (window); + else + gtk_widget_destroy (window); + +} + /* * Selection Test */ void selection_test_received (GtkWidget *tree_view, - GtkSelectionData *data) + GtkSelectionData *selection_data) { GtkTreeModel *model; GtkListStore *store; GdkAtom *atoms; int i, l; - if (data->length < 0) + if (gtk_selection_data_get_length (selection_data) < 0) { g_print ("Selection retrieval failed\n"); return; } - if (data->type != GDK_SELECTION_TYPE_ATOM) + if (gtk_selection_data_get_data_type (selection_data) != GDK_SELECTION_TYPE_ATOM) { g_print ("Selection \"TARGETS\" was not returned as atoms!\n"); return; @@ -8969,9 +8994,9 @@ selection_test_received (GtkWidget *tree_view, /* Add new items to list */ - atoms = (GdkAtom *)data->data; + gtk_selection_data_get_targets (selection_data, + &atoms, &l); - l = data->length / sizeof (GdkAtom); for (i = 0; i < l; i++) { char *name; @@ -9035,7 +9060,7 @@ create_selection_test (GtkWidget *widget) /* Create the list */ - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0); @@ -9091,7 +9116,7 @@ static int scroll_test_pos = 0.0; static gint scroll_test_draw (GtkWidget *widget, cairo_t *cr, - GtkAdjustment *adj) + GtkAdjustment *adjustment) { gint i,j; gint imin, imax, jmin, jmax; @@ -9102,13 +9127,13 @@ scroll_test_draw (GtkWidget *widget, imin = (clip.x) / 10; imax = (clip.x + clip.width + 9) / 10; - jmin = ((int)adj->value + clip.y) / 10; - jmax = ((int)adj->value + clip.y + clip.height + 9) / 10; + jmin = ((int)gtk_adjustment_get_value (adjustment) + clip.y) / 10; + jmax = ((int)gtk_adjustment_get_value (adjustment) + clip.y + clip.height + 9) / 10; for (i=imin; ivalue, 1+i%10, 1+j%10); + cairo_rectangle (cr, 10*i, 10*j - (int)gtk_adjustment_get_value (adjustment), 1+i%10, 1+j%10); cairo_fill (cr); @@ -9117,38 +9142,41 @@ scroll_test_draw (GtkWidget *widget, static gint scroll_test_scroll (GtkWidget *widget, GdkEventScroll *event, - GtkAdjustment *adj) + GtkAdjustment *adjustment) { - gdouble new_value = adj->value + ((event->direction == GDK_SCROLL_UP) ? - -adj->page_increment / 2: - adj->page_increment / 2); - new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size); - gtk_adjustment_set_value (adj, new_value); + gdouble new_value = gtk_adjustment_get_value (adjustment) + ((event->direction == GDK_SCROLL_UP) ? + -gtk_adjustment_get_page_increment (adjustment) / 2: + gtk_adjustment_get_page_increment (adjustment) / 2); + new_value = CLAMP (new_value, gtk_adjustment_get_lower (adjustment), gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_page_size (adjustment)); + gtk_adjustment_set_value (adjustment, new_value); return TRUE; } static void scroll_test_configure (GtkWidget *widget, GdkEventConfigure *event, - GtkAdjustment *adj) + GtkAdjustment *adjustment) { GtkAllocation allocation; gtk_widget_get_allocation (widget, &allocation); - adj->page_increment = 0.9 * allocation.height; - adj->page_size = allocation.height; - - g_signal_emit_by_name (adj, "changed"); + gtk_adjustment_configure (adjustment, + gtk_adjustment_get_value (adjustment), + gtk_adjustment_get_lower (adjustment), + gtk_adjustment_get_upper (adjustment), + 0.1 * allocation.height, + 0.9 * allocation.height, + allocation.height); } static void -scroll_test_adjustment_changed (GtkAdjustment *adj, GtkWidget *widget) +scroll_test_adjustment_changed (GtkAdjustment *adjustment, GtkWidget *widget) { GdkWindow *window; gint dy; - dy = scroll_test_pos - (int)adj->value; - scroll_test_pos = adj->value; + dy = scroll_test_pos - (int)gtk_adjustment_get_value (adjustment); + scroll_test_pos = gtk_adjustment_get_value (adjustment); if (!gtk_widget_is_drawable (widget)) return; @@ -9168,7 +9196,7 @@ create_scroll_test (GtkWidget *widget) GtkWidget *drawing_area; GtkWidget *scrollbar; GtkWidget *button; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GdkGeometry geometry; GdkWindowHints geometry_mask; @@ -9189,7 +9217,7 @@ create_scroll_test (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "Scroll Test"); gtk_container_set_border_width (GTK_CONTAINER (window), 0); - hbox = gtk_hbox_new (FALSE, 0); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); @@ -9200,21 +9228,21 @@ create_scroll_test (GtkWidget *widget) gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK | GDK_SCROLL_MASK); - adj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0)); + adjustment = gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0); scroll_test_pos = 0.0; - scrollbar = gtk_vscrollbar_new (adj); + scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adjustment); gtk_box_pack_start (GTK_BOX (hbox), scrollbar, FALSE, FALSE, 0); gtk_widget_show (scrollbar); g_signal_connect (drawing_area, "draw", - G_CALLBACK (scroll_test_draw), adj); + G_CALLBACK (scroll_test_draw), adjustment); g_signal_connect (drawing_area, "configure_event", - G_CALLBACK (scroll_test_configure), adj); + G_CALLBACK (scroll_test_configure), adjustment); g_signal_connect (drawing_area, "scroll_event", - G_CALLBACK (scroll_test_scroll), adj); + G_CALLBACK (scroll_test_scroll), adjustment); - g_signal_connect (adj, "value_changed", + g_signal_connect (adjustment, "value_changed", G_CALLBACK (scroll_test_adjustment_changed), drawing_area); @@ -9325,7 +9353,7 @@ create_timeout_test (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); label = gtk_label_new ("count: 0"); - gtk_misc_set_padding (GTK_MISC (label), 10, 10); + g_object_set (label, "margin", 10, NULL); gtk_box_pack_start (GTK_BOX (content_area), label, TRUE, TRUE, 0); gtk_widget_show (label); @@ -9447,11 +9475,11 @@ create_idle_test (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); label = gtk_label_new ("count: 0"); - gtk_misc_set_padding (GTK_MISC (label), 10, 10); + g_object_set (label, "margin", 10, NULL); gtk_widget_show (label); container = - g_object_new (GTK_TYPE_HBOX, + g_object_new (GTK_TYPE_BOX, "visible", TRUE, /* "GtkContainer::child", g_object_new (GTK_TYPE_HBOX, * "GtkWidget::visible", TRUE, @@ -9469,9 +9497,10 @@ create_idle_test (GtkWidget *widget) "parent", content_area, NULL); box = - g_object_new (GTK_TYPE_VBOX, + g_object_new (GTK_TYPE_BOX, "visible", TRUE, "parent", frame, + "orientation", GTK_ORIENTATION_VERTICAL, NULL); button = g_object_connect (g_object_new (GTK_TYPE_RADIO_BUTTON, @@ -9541,26 +9570,6 @@ create_idle_test (GtkWidget *widget) * rc file test */ -void -reload_all_rc_files (void) -{ - static GdkAtom atom_rcfiles = GDK_NONE; - - GdkEvent *send_event = gdk_event_new (GDK_CLIENT_EVENT); - int i; - - if (!atom_rcfiles) - atom_rcfiles = gdk_atom_intern("_GTK_READ_RCFILES", FALSE); - - for(i = 0; i < 5; i++) - send_event->client.data.l[i] = 0; - send_event->client.data_format = 32; - send_event->client.message_type = atom_rcfiles; - gdk_event_send_clientmessage_toall (send_event); - - gdk_event_free (send_event); -} - void create_rc_file (GtkWidget *widget) { @@ -9588,7 +9597,7 @@ create_rc_file (GtkWidget *widget) frame = gtk_aspect_frame_new ("Testing RC file prioritization", 0.5, 0.5, 0.0, TRUE); gtk_box_pack_start (GTK_BOX (content_area), frame, FALSE, FALSE, 0); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (frame), vbox); label = gtk_label_new ("This label should be red"); @@ -9607,18 +9616,13 @@ create_rc_file (GtkWidget *widget) gtk_container_set_border_width (GTK_CONTAINER (window), 0); button = gtk_button_new_with_label ("Reload"); - g_signal_connect (button, "clicked", - G_CALLBACK (gtk_rc_reparse_all), NULL); + g_signal_connect_swapped (button, "clicked", + G_CALLBACK (gtk_style_context_reset_widgets), + gtk_widget_get_screen (button)); gtk_widget_set_can_default (button, TRUE); gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0); gtk_widget_grab_default (button); - button = gtk_button_new_with_label ("Reload All"); - g_signal_connect (button, "clicked", - G_CALLBACK (reload_all_rc_files), NULL); - gtk_widget_set_can_default (button, TRUE); - gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0); - button = gtk_button_new_with_label ("Close"); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), @@ -9669,7 +9673,7 @@ create_mainloop (GtkWidget *widget) action_area = gtk_dialog_get_action_area (GTK_DIALOG (window)); label = gtk_label_new ("In recursive main loop..."); - gtk_misc_set_padding (GTK_MISC(label), 20, 20); + g_object_set (label, "margin", 20, NULL); gtk_box_pack_start (GTK_BOX (content_area), label, TRUE, TRUE, 0); gtk_widget_show (label); @@ -9778,12 +9782,12 @@ void create_layout (GtkWidget *widget) /* We set step sizes here since GtkLayout does not set * them itself. */ - hadjustment = gtk_layout_get_hadjustment (layout); - vadjustment = gtk_layout_get_vadjustment (layout); + hadjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (layout)); + vadjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (layout)); gtk_adjustment_set_step_increment (hadjustment, 10.0); gtk_adjustment_set_step_increment (vadjustment, 10.0); - gtk_layout_set_hadjustment (layout, hadjustment); - gtk_layout_set_vadjustment (layout, vadjustment); + gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (layout), hadjustment); + gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (layout), vadjustment); gtk_widget_set_events (layout_widget, GDK_EXPOSURE_MASK); g_signal_connect (layout, "draw", @@ -9821,6 +9825,8 @@ void create_layout (GtkWidget *widget) gtk_widget_destroy (window); } +#if 0 +/* FIXME: need to completely redo this for GtkStyleContext */ void create_styles (GtkWidget *widget) { @@ -9830,11 +9836,11 @@ create_styles (GtkWidget *widget) GtkWidget *button; GtkWidget *entry; GtkWidget *vbox; - static GdkColor red = { 0, 0xffff, 0, 0 }; - static GdkColor green = { 0, 0, 0xffff, 0 }; - static GdkColor blue = { 0, 0, 0, 0xffff }; - static GdkColor yellow = { 0, 0xffff, 0xffff, 0 }; - static GdkColor cyan = { 0, 0 , 0xffff, 0xffff }; + static GdkRGBA red = { 1,0,0,1 }; + static GdkRGBA green = { 0,1,0,1 }; + static GdkRGBA blue = { 0,0,1,1 }; + static GdkRGBA yellow = { 1,1,0,1 }; + static GdkRGBA cyan = { 0,1,1,1 }; PangoFontDescription *font_desc; GtkRcStyle *rc_style; @@ -9860,7 +9866,7 @@ create_styles (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0); gtk_widget_show (button); - vbox = gtk_vbox_new (FALSE, 5); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_box_pack_start (GTK_BOX (content_area), vbox, FALSE, FALSE, 0); @@ -9871,8 +9877,7 @@ create_styles (GtkWidget *widget) font_desc = pango_font_description_from_string ("Helvetica,Sans Oblique 18"); button = gtk_button_new_with_label ("Some Text"); - gtk_widget_modify_font (gtk_bin_get_child (GTK_BIN (button)), - font_desc); + gtk_widget_override_font (gtk_bin_get_child (GTK_BIN (button)), font_desc); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); label = gtk_label_new ("Foreground:"); @@ -9880,8 +9885,7 @@ create_styles (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Some Text"); - gtk_widget_modify_fg (gtk_bin_get_child (GTK_BIN (button)), - GTK_STATE_NORMAL, &red); + gtk_widget_override_color (gtk_bin_get_child (GTK_BIN (button)), 0, &red); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); label = gtk_label_new ("Background:"); @@ -9889,7 +9893,7 @@ create_styles (GtkWidget *widget) gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Some Text"); - gtk_widget_modify_bg (button, GTK_STATE_NORMAL, &green); + gtk_widget_override_background_color (button, 0, &green); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); label = gtk_label_new ("Text:"); @@ -9898,7 +9902,7 @@ create_styles (GtkWidget *widget) entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), "Some Text"); - gtk_widget_modify_text (entry, GTK_STATE_NORMAL, &blue); + gtk_widget_override_color (entry, 0, &blue); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); label = gtk_label_new ("Base:"); @@ -9907,7 +9911,7 @@ create_styles (GtkWidget *widget) entry = gtk_entry_new (); gtk_entry_set_text (GTK_ENTRY (entry), "Some Text"); - gtk_widget_modify_base (entry, GTK_STATE_NORMAL, &yellow); + gtk_widget_override_background_color (entry, 0, &yellow); gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0); label = gtk_label_new ("Cursor:"); @@ -9953,6 +9957,7 @@ create_styles (GtkWidget *widget) else gtk_widget_destroy (window); } +#endif /* * Main Window and Exit @@ -9988,7 +9993,6 @@ struct { { "flipping", create_flipping }, { "focus", create_focus }, { "font selection", create_font_selection }, - { "gridded geometry", create_gridded_geometry }, { "handle box", create_handle_box }, { "image", create_image }, { "key lookup", create_key_lookup }, @@ -10010,14 +10014,16 @@ struct { { "resize grips", create_resize_grips }, { "rotated label", create_rotated_label }, { "rotated text", create_rotated_text }, - { "rulers", create_rulers }, { "saved position", create_saved_position }, { "scrolled windows", create_scrolled_windows }, { "shapes", create_shapes }, { "size groups", create_size_groups }, + { "snapshot", create_snapshot }, { "spinbutton", create_spins }, { "statusbar", create_statusbar }, +#if 0 { "styles", create_styles }, +#endif { "test idle", create_idle_test }, { "test mainloop", create_mainloop, TRUE }, { "test scrolling", create_scroll_test }, @@ -10047,7 +10053,7 @@ create_main_window (void) int i; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_widget_set_name (window, "main window"); + gtk_widget_set_name (window, "main_window"); gtk_window_move (GTK_WINDOW (window), 50, 20); gtk_window_set_default_size (GTK_WINDOW (window), -1, 400); @@ -10066,7 +10072,7 @@ create_main_window (void) G_CALLBACK (gtk_false), NULL); - box1 = gtk_vbox_new (FALSE, 0); + box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), box1); if (gtk_micro_version > 0) @@ -10092,7 +10098,7 @@ create_main_window (void) GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 0); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), box2); gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2), @@ -10112,10 +10118,10 @@ create_main_window (void) gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); } - separator = gtk_hseparator_new (); + separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - box2 = gtk_vbox_new (FALSE, 10); + box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_container_set_border_width (GTK_CONTAINER (box2), 10); gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); @@ -10133,12 +10139,8 @@ create_main_window (void) static void test_init (void) { - if (g_file_test ("../gdk-pixbuf/libpixbufloader-pnm.la", - G_FILE_TEST_EXISTS)) - { - g_setenv ("GDK_PIXBUF_MODULE_FILE", "../gdk-pixbuf/loaders.cache", TRUE); - g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE); - } + if (g_file_test ("../modules/input/immodules.cache", G_FILE_TEST_EXISTS)) + g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE); } static char * @@ -10250,6 +10252,9 @@ usage (void) int main (int argc, char *argv[]) { + GtkCssProvider *provider, *memory_provider; + GdkDisplay *display; + GdkScreen *screen; GtkBindingSet *binding_set; int i; gboolean done_benchmarks = FALSE; @@ -10258,19 +10263,28 @@ main (int argc, char *argv[]) test_init (); + g_set_application_name ("GTK+ Test Program"); + + gtk_init (&argc, &argv); + + provider = gtk_css_provider_new (); + /* Check to see if we are being run from the correct * directory. */ - if (file_exists ("testgtkrc")) - gtk_rc_add_default_file ("testgtkrc"); - else if (file_exists ("tests/testgtkrc")) - gtk_rc_add_default_file ("tests/testgtkrc"); + if (file_exists ("testgtk.css")) + gtk_css_provider_load_from_path (provider, "testgtk.css", NULL); + else if (file_exists ("tests/testgtk.css")) + gtk_css_provider_load_from_path (provider, "tests/testgtk.css", NULL); else - g_warning ("Couldn't find file \"testgtkrc\"."); + g_warning ("Couldn't find file \"testgtk.css\"."); - g_set_application_name ("GTK+ Test Program"); + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (display); - gtk_init (&argc, &argv); + gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + g_object_unref (provider); gtk_accelerator_set_default_mod_mask (GDK_SHIFT_MASK | GDK_CONTROL_MASK | @@ -10330,17 +10344,17 @@ main (int argc, char *argv[]) "debug_msg", 1, G_TYPE_STRING, "GtkWidgetClass 9 test"); - - /* We use gtk_rc_parse_string() here so we can make sure it works across theme - * changes - */ - gtk_rc_parse_string ("style \"testgtk-version-label\" { " - " fg[NORMAL] = \"#ff0000\"\n" - " font = \"Sans 18\"\n" - "}\n" - "widget \"*.testgtk-version-label\" style \"testgtk-version-label\""); - + memory_provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (memory_provider, + "#testgtk-version-label {\n" + " color: #f00;\n" + " font: Sans 18;\n" + "}", + -1, NULL); + gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (memory_provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 1); + create_main_window (); gtk_main ();