X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftestgtk.c;h=9586169749c2d96b6788b16671b41fb6a504cca9;hb=04d6c99a71e13dcdadb10fbd376d9deb90a3e340;hp=464975402824af2f3922912d73e476fc19c46998;hpb=806a7239aef9f20f06391ca01e991afd79b27874;p=~andy%2Fgtk diff --git a/tests/testgtk.c b/tests/testgtk.c index 464975402..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); @@ -127,27 +127,23 @@ build_option_menu (gchar *items[], static gboolean -on_alpha_window_expose (GtkWidget *widget, - GdkEventExpose *expose) +on_alpha_window_draw (GtkWidget *widget, + cairo_t *cr) { - GtkAllocation allocation; - cairo_t *cr; cairo_pattern_t *pattern; - int radius; - - cr = gdk_cairo_create (gtk_widget_get_window (widget)); - - gtk_widget_get_allocation (widget, &allocation); + int radius, width, height; - radius = MIN (allocation.width, allocation.height) / 2; - pattern = cairo_pattern_create_radial (allocation.width / 2, - allocation.height / 2, + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); + radius = MIN (width, height) / 2; + pattern = cairo_pattern_create_radial (width / 2, + height / 2, 0.0, - allocation.width / 2, - allocation.height / 2, + width / 2, + height / 2, radius * 1.33); - if (gdk_screen_get_rgba_colormap (gtk_widget_get_screen (widget)) && + if (gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget)) && gtk_widget_is_composited (widget)) cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); /* transparent */ else @@ -167,8 +163,6 @@ on_alpha_window_expose (GtkWidget *widget, cairo_set_operator (cr, CAIRO_OPERATOR_OVER); cairo_paint (cr); - cairo_destroy (cr); - return FALSE; } @@ -234,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); @@ -250,16 +244,16 @@ build_alpha_widgets (void) } static void -on_alpha_screen_changed (GtkWidget *widget, +on_alpha_screen_changed (GtkWindow *window, GdkScreen *old_screen, GtkWidget *label) { - GdkScreen *screen = gtk_widget_get_screen (widget); - GdkColormap *colormap = gdk_screen_get_rgba_colormap (screen); + GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (window)); + GdkVisual *visual = gdk_screen_get_rgba_visual (screen); - if (!colormap) + if (!visual) { - colormap = gdk_screen_get_default_colormap (screen); + visual = gdk_screen_get_system_visual (screen); gtk_label_set_markup (GTK_LABEL (label), "Screen doesn't support alpha"); } else @@ -267,7 +261,7 @@ on_alpha_screen_changed (GtkWidget *widget, gtk_label_set_markup (GTK_LABEL (label), "Screen supports alpha"); } - gtk_widget_set_colormap (widget, colormap); + gtk_widget_set_visual (GTK_WIDGET (window), visual); } static void @@ -299,19 +293,19 @@ create_alpha_window (GtkWidget *widget) NULL); gtk_widget_set_app_paintable (window, TRUE); - g_signal_connect (window, "expose-event", - G_CALLBACK (on_alpha_window_expose), NULL); + g_signal_connect (window, "draw", + G_CALLBACK (on_alpha_window_draw), NULL); 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); label = gtk_label_new (NULL); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - on_alpha_screen_changed (window, NULL, label); + on_alpha_screen_changed (GTK_WINDOW (window), NULL, label); g_signal_connect (window, "screen-changed", G_CALLBACK (on_alpha_screen_changed), label); @@ -341,7 +335,7 @@ create_alpha_window (GtkWidget *widget) * Composited non-toplevel window */ -/* The expose event handler for the event box. +/* The draw event handler for the event box. * * This function simply draws a transparency onto a widget on the area * for which it receives expose events. This is intended to give the @@ -354,16 +348,11 @@ create_alpha_window (GtkWidget *widget) * default background colour). */ static gboolean -transparent_expose (GtkWidget *widget, - GdkEventExpose *event) +transparent_draw (GtkWidget *widget, + cairo_t *cr) { - cairo_t *cr; - - cr = gdk_cairo_create (gtk_widget_get_window (widget)); cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR); - gdk_cairo_region (cr, event->region); - cairo_fill (cr); - cairo_destroy (cr); + cairo_paint (cr); return FALSE; } @@ -380,40 +369,25 @@ transparent_expose (GtkWidget *widget, * called before then GTK would just blindly paint over our work. */ static gboolean -window_expose_event (GtkWidget *widget, - GdkEventExpose *event) +window_draw (GtkWidget *widget, + cairo_t *cr) { GtkAllocation allocation; - cairo_region_t *region; GtkWidget *child; - cairo_t *cr; /* get our child (in this case, the event box) */ child = gtk_bin_get_child (GTK_BIN (widget)); - /* create a cairo context to draw to the window */ - cr = gdk_cairo_create (gtk_widget_get_window (widget)); - gtk_widget_get_allocation (child, &allocation); /* the source data is the (composited) event box */ - gdk_cairo_set_source_pixmap (cr, gtk_widget_get_window (child), + gdk_cairo_set_source_window (cr, gtk_widget_get_window (child), allocation.x, allocation.y); - /* draw no more than our expose event intersects our child */ - region = cairo_region_create_rectangle (&allocation); - cairo_region_intersect (region, event->region); - gdk_cairo_region (cr, region); - cairo_clip (cr); - /* composite, with a 50% opacity */ - cairo_set_operator (cr, CAIRO_OPERATOR_OVER); cairo_paint_with_alpha (cr, 0.5); - /* we're done */ - cairo_destroy (cr); - return FALSE; } @@ -425,9 +399,7 @@ create_composited_window (GtkWidget *widget) if (!window) { GtkWidget *event, *button; - GdkScreen *screen; - GdkColormap *rgba; - GdkColor red; + GdkRGBA red; /* make the widgets */ button = gtk_button_new_with_label ("A Button"); @@ -439,23 +411,16 @@ 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); - - /* set the colourmap for the event box. - * must be done before the event box is realised. - */ - screen = gtk_widget_get_screen (event); - rgba = gdk_screen_get_rgba_colormap (screen); - gtk_widget_set_colormap (event, rgba); + 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 * that "transparency" is the background colour for a widget. */ gtk_widget_set_app_paintable (GTK_WIDGET (event), TRUE); - g_signal_connect (event, "expose-event", - G_CALLBACK (transparent_expose), NULL); + g_signal_connect (event, "draw", + G_CALLBACK (transparent_draw), NULL); /* put them inside one another */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); @@ -475,8 +440,8 @@ create_composited_window (GtkWidget *widget) * note that we do _after so that the normal (red) background is drawn * by gtk before our compositing occurs. */ - g_signal_connect_after (window, "expose-event", - G_CALLBACK (window_expose_event), NULL); + g_signal_connect_after (window, "draw", + G_CALLBACK (window_draw), NULL); } if (!gtk_widget_get_visible (window)) @@ -489,29 +454,6 @@ create_composited_window (GtkWidget *widget) * Big windows and guffaw scrolling */ -static gboolean -pattern_expose (GtkWidget *widget, - GdkEventExpose *event, - gpointer data) -{ - GdkColor *color; - GdkWindow *window = event->window; - - color = g_object_get_data (G_OBJECT (window), "pattern-color"); - if (color) - { - cairo_t *cr = gdk_cairo_create (window); - - gdk_cairo_set_source_color (cr, color); - gdk_cairo_rectangle (cr, &event->area); - cairo_fill (cr); - - cairo_destroy (cr); - } - - return FALSE; -} - static void pattern_set_bg (GtkWidget *widget, GdkWindow *child, @@ -523,8 +465,8 @@ pattern_set_bg (GtkWidget *widget, { 0, 0xaaaa, 0xaaaa, 0xffff } }; - g_object_set_data (G_OBJECT (child), "pattern-color", (gpointer) &colors[level]); gdk_window_set_user_data (child, widget); + gdk_window_set_background (child, &colors[level]); } static void @@ -561,10 +503,9 @@ create_pattern (GtkWidget *widget, attributes.wclass = GDK_INPUT_OUTPUT; attributes.event_mask = GDK_EXPOSURE_MASK; attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); child = gdk_window_new (parent, &attributes, - GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP); + GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL); pattern_set_bg (widget, child, level); @@ -584,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)) { @@ -599,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)) { @@ -631,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; @@ -667,22 +608,19 @@ 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), NULL); - g_signal_connect (darea, "expose_event", - G_CALLBACK (pattern_expose), - NULL); eventbox = gtk_event_box_new (); gtk_table_attach (GTK_TABLE (table), eventbox, @@ -692,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, @@ -749,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); @@ -824,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); @@ -872,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); @@ -892,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); @@ -1004,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); @@ -1021,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); @@ -1069,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); @@ -1093,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); @@ -1117,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); @@ -1150,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); @@ -1194,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); @@ -1227,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); @@ -1264,8 +1202,7 @@ create_button_box (GtkWidget *widget) static GtkWidget* new_pixbuf (char *filename, - GdkWindow *window, - GdkColor *background) + GdkWindow *window) { GtkWidget *widget; GdkPixbuf *pixbuf; @@ -1441,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) @@ -1510,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); } @@ -1629,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); @@ -1684,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); @@ -1706,179 +1643,6 @@ create_statusbar (GtkWidget *widget) gtk_widget_destroy (window); } -/* - * Gridded geometry - */ -#define GRID_SIZE 20 -#define DEFAULT_GEOMETRY "10x10" - -static gboolean -gridded_geometry_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkAllocation allocation; - GtkStateType state; - GtkStyle *style; - cairo_t *cr; - int i, j; - - gtk_widget_get_allocation (widget, &allocation); - style = gtk_widget_get_style (widget); - state = gtk_widget_get_state (widget); - - cr = gdk_cairo_create (gtk_widget_get_window (widget)); - - cairo_rectangle (cr, 0, 0, allocation.width, allocation.height); - gdk_cairo_set_source_color (cr, &style->base[state]); - cairo_fill (cr); - - for (i = 0 ; i * GRID_SIZE < allocation.width; i++) - for (j = 0 ; j * GRID_SIZE < allocation.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); - - cairo_destroy (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, "expose_event", - G_CALLBACK (gridded_geometry_expose), 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 */ @@ -1923,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); @@ -1931,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); @@ -1988,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); @@ -2008,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* @@ -2061,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* @@ -2145,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); @@ -2160,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); @@ -2219,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 "\ @@ -2320,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); @@ -2334,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,22 +2131,19 @@ on_rotated_text_unrealize (GtkWidget *widget) } static gboolean -on_rotated_text_expose (GtkWidget *widget, - GdkEventExpose *event, - GdkPixbuf *tile_pixbuf) +on_rotated_text_draw (GtkWidget *widget, + cairo_t *cr, + GdkPixbuf *tile_pixbuf) { - GtkAllocation allocation; static const gchar *words[] = { "The", "grand", "old", "Duke", "of", "York", "had", "10,000", "men" }; int n_words; int i; + int width, height; double radius; PangoLayout *layout; PangoContext *context; PangoFontDescription *desc; - cairo_t *cr; - - cr = gdk_cairo_create (event->window); if (tile_pixbuf) { @@ -2390,13 +2153,13 @@ on_rotated_text_expose (GtkWidget *widget, else cairo_set_source_rgb (cr, 0, 0, 0); - gtk_widget_get_allocation (widget, &allocation); - - radius = MIN (allocation.width, allocation.height) / 2.; + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); + radius = MIN (width, height) / 2.; cairo_translate (cr, - radius + (allocation.width - 2 * radius) / 2, - radius + (allocation.height - 2 * radius) / 2); + radius + (width - 2 * radius) / 2, + radius + (height - 2 * radius) / 2); cairo_scale (cr, radius / DEFAULT_TEXT_RADIUS, radius / DEFAULT_TEXT_RADIUS); context = gtk_widget_get_pango_context (widget); @@ -2425,7 +2188,6 @@ on_rotated_text_expose (GtkWidget *widget, } g_object_unref (layout); - cairo_destroy (cr); return FALSE; } @@ -2437,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; @@ -2454,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); @@ -2462,19 +2224,19 @@ 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); - g_signal_connect (drawing_area, "expose-event", - G_CALLBACK (on_rotated_text_expose), tile_pixbuf); + g_signal_connect (drawing_area, "draw", + G_CALLBACK (on_rotated_text_draw), tile_pixbuf); g_signal_connect (drawing_area, "unrealize", G_CALLBACK (on_rotated_text_unrealize), NULL); gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (window))); gtk_widget_set_size_request (drawing_area, DEFAULT_TEXT_RADIUS * 2, DEFAULT_TEXT_RADIUS * 2); - gtk_size_request_get_size (GTK_SIZE_REQUEST (window), + gtk_widget_get_preferred_size ( (window), &requisition, NULL); gtk_widget_set_size_request (drawing_area, -1, -1); gtk_window_resize (GTK_WINDOW (window), requisition.width, requisition.height); @@ -2543,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); @@ -2555,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); @@ -2578,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); @@ -2593,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); @@ -2635,20 +2397,51 @@ grippy_button_press (GtkWidget *area, GdkEventButton *event, GdkWindowEdge edge) } static gboolean -grippy_expose (GtkWidget *area, GdkEventExpose *event, GdkWindowEdge edge) +grippy_draw (GtkWidget *area, cairo_t *cr, GdkWindowEdge edge) { - GtkAllocation allocation; + GtkStyleContext *context; + GtkJunctionSides sides; - gtk_widget_get_allocation (area, &allocation); - gtk_paint_resize_grip (gtk_widget_get_style (area), - gtk_widget_get_window (area), - gtk_widget_get_state (area), - &event->area, - area, - "statusbar", - edge, - 0, 0, - allocation.width, allocation.height); + 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; } @@ -2672,17 +2465,17 @@ 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 */ area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH_WEST)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH_WEST)); @@ -2691,7 +2484,7 @@ create_resize_grips (GtkWidget *widget) area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH)); @@ -2700,19 +2493,19 @@ create_resize_grips (GtkWidget *widget) area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH_EAST)); 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 */ area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_WEST)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_WEST)); @@ -2725,20 +2518,20 @@ create_resize_grips (GtkWidget *widget) area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_EAST)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), 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 */ area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH_WEST)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH_WEST)); @@ -2746,7 +2539,7 @@ create_resize_grips (GtkWidget *widget) area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH)); @@ -2755,7 +2548,7 @@ create_resize_grips (GtkWidget *widget) area = gtk_drawing_area_new (); gtk_widget_add_events (area, GDK_BUTTON_PRESS_MASK); gtk_box_pack_start (GTK_BOX (hbox), area, TRUE, TRUE, 0); - g_signal_connect (area, "expose_event", G_CALLBACK (grippy_expose), + g_signal_connect (area, "draw", G_CALLBACK (grippy_draw), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH_EAST)); g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press), GINT_TO_POINTER (GDK_WINDOW_EDGE_SOUTH_EAST)); @@ -2795,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); @@ -2836,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, @@ -2856,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); @@ -2868,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); @@ -2881,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); @@ -2936,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); @@ -2948,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); @@ -2960,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); @@ -2971,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); @@ -3018,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); @@ -3044,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, @@ -3070,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); @@ -3136,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); @@ -3445,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); @@ -3478,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); @@ -3493,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); @@ -3538,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); @@ -3751,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); } @@ -3855,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"); @@ -3872,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 */ @@ -3953,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) @@ -4104,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 @@ -4147,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, @@ -4170,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 @@ -4193,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; @@ -4212,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 (); @@ -4234,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"); @@ -4274,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); @@ -4317,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"); @@ -4360,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 @@ -4368,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 @@ -4385,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), @@ -4404,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), @@ -4442,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); @@ -4576,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); @@ -4647,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 @@ -4818,7 +4620,7 @@ create_spins (GtkWidget *widget) GtkWidget *button; GtkWidget *label; GtkWidget *val_label; - GtkAdjustment *adj; + GtkAdjustment *adjustment; if (!window) { @@ -4832,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", @@ -4866,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, @@ -4890,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", @@ -4915,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"); @@ -4968,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"); @@ -4991,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); @@ -5004,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"); @@ -5026,43 +4828,31 @@ create_spins (GtkWidget *widget) */ static gint -cursor_expose_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) +cursor_draw (GtkWidget *widget, + cairo_t *cr, + gpointer user_data) { - GtkAllocation allocation; - GtkDrawingArea *darea; - GdkDrawable *drawable; - guint max_width; - guint max_height; - cairo_t *cr; + int width, height; + GtkStyleContext *context; + GdkRGBA bg; - g_return_val_if_fail (widget != NULL, TRUE); - g_return_val_if_fail (GTK_IS_DRAWING_AREA (widget), TRUE); - - darea = GTK_DRAWING_AREA (widget); - drawable = gtk_widget_get_window (widget); - - gtk_widget_get_allocation (widget, &allocation); - max_width = allocation.width; - max_height = allocation.height; - - cr = gdk_cairo_create (drawable); + width = gtk_widget_get_allocated_width (widget); + height = gtk_widget_get_allocated_height (widget); cairo_set_source_rgb (cr, 1, 1, 1); - cairo_rectangle (cr, 0, 0, max_width, max_height / 2); + cairo_rectangle (cr, 0, 0, width, height / 2); cairo_fill (cr); cairo_set_source_rgb (cr, 0, 0, 0); - cairo_rectangle (cr, 0, max_height / 2, max_width, max_height / 2); + 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]); - cairo_rectangle (cr, max_width / 3, max_height / 3, max_width / 3, max_height / 3); + 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); - cairo_destroy (cr); - return TRUE; } @@ -5096,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 @@ -5153,7 +4943,7 @@ create_cursors (GtkWidget *widget) GtkWidget *button; GtkWidget *label; GtkWidget *any; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GtkWidget *entry; GtkWidget *size; @@ -5169,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, @@ -5183,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); @@ -5205,24 +4996,23 @@ 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 = g_object_new (gtk_frame_get_type (), - "GtkFrame::shadow", GTK_SHADOW_ETCHED_IN, "GtkFrame::label_xalign", 0.5, "GtkFrame::label", "Cursor Area", "GtkContainer::border_width", 10, @@ -5234,8 +5024,8 @@ create_cursors (GtkWidget *widget) gtk_widget_set_size_request (darea, 80, 80); gtk_container_add (GTK_CONTAINER (frame), darea); g_signal_connect (darea, - "expose_event", - G_CALLBACK (cursor_expose_event), + "draw", + G_CALLBACK (cursor_draw), NULL); gtk_widget_set_events (darea, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK); g_signal_connect (darea, @@ -5258,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); @@ -5358,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); @@ -5448,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); @@ -5676,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); @@ -5711,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); @@ -5827,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); } } @@ -5874,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"); @@ -5897,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))), ":."); @@ -5906,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); @@ -5931,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, @@ -6051,7 +5838,7 @@ create_range_controls (GtkWidget *widget) GtkWidget *scrollbar; GtkWidget *scale; GtkWidget *separator; - GtkObject *adjustment; + GtkAdjustment *adjustment; GtkWidget *hbox; if (!window) @@ -6069,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); @@ -6082,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", @@ -6105,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); @@ -6122,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", @@ -6135,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); @@ -6162,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; @@ -6371,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"); @@ -6397,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); @@ -6497,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); @@ -6535,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 (); @@ -6555,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); @@ -6568,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); @@ -6585,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); @@ -6606,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"); @@ -6758,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); @@ -6844,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"); @@ -6863,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); @@ -6873,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"); @@ -6938,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); @@ -6948,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); @@ -7000,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); @@ -7016,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); @@ -7026,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); @@ -7074,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"); @@ -7093,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"); @@ -7105,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"); @@ -7114,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"); @@ -7217,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; @@ -7474,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); @@ -7484,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); @@ -7557,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", @@ -7660,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, @@ -7770,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); @@ -7958,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); } @@ -8091,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); @@ -8203,7 +7932,7 @@ window_controls (GtkWidget *window) GtkWidget *vbox; GtkWidget *button; GtkWidget *spin; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GtkWidget *entry; GtkWidget *om; gint i; @@ -8225,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); @@ -8237,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); @@ -8355,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) { @@ -8375,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; } @@ -8388,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) { @@ -8402,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; } @@ -8514,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; @@ -8572,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) { @@ -8632,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); @@ -8650,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); @@ -8665,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); @@ -8680,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); @@ -8719,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); @@ -8789,7 +8545,9 @@ find_widget (GtkWidget *widget, FindWidgetData *data) while (window != gtk_widget_get_window (gtk_widget_get_parent (widget))) { gint tx, ty, twidth, theight; - gdk_drawable_get_size (window, &twidth, &theight); + + twidth = gdk_window_get_width (window); + theight = gdk_window_get_height (window); if (new_allocation.x < 0) { @@ -8854,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) { @@ -8893,7 +8651,7 @@ struct PropertiesData { GtkWidget **window; GdkCursor *cursor; gboolean in_query; - gint handler; + gulong handler; }; static void @@ -8908,7 +8666,7 @@ destroy_properties (GtkWidget *widget, if (data->cursor) { - gdk_cursor_unref (data->cursor); + g_object_unref (data->cursor); data->cursor = NULL; } @@ -8922,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", @@ -8956,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; @@ -9007,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."); @@ -9045,7 +8806,7 @@ destroy_snapshot_data (GtkWidget *widget, if (data->cursor) { - gdk_cursor_unref (data->cursor); + g_object_unref (data->cursor); data->cursor = NULL; } @@ -9071,38 +8832,39 @@ snapshot_widget_event (GtkWidget *widget, if (event->type == GDK_BUTTON_RELEASE) { gtk_grab_remove (widget); - gdk_display_pointer_ungrab (gtk_widget_get_display (widget), - GDK_CURRENT_TIME); + gdk_device_ungrab (gdk_event_get_device (event), + GDK_CURRENT_TIME); - res_widget = find_widget_at_pointer (gtk_widget_get_display (widget)); + 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) { - GdkPixmap *pixmap; + 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); - pixmap = gtk_widget_get_snapshot (res_widget, NULL); - gtk_widget_realize (window); - if (gdk_drawable_get_depth (gtk_widget_get_window (window)) != gdk_drawable_get_depth (pixmap)) - { - /* this branch is needed to convert ARGB -> RGB */ - int width, height; - GdkPixbuf *pixbuf; - gdk_drawable_get_size (pixmap, &width, &height); - pixbuf = gdk_pixbuf_get_from_drawable (NULL, pixmap, - gtk_widget_get_colormap (res_widget), - 0, 0, - 0, 0, - width, height); - image = gtk_image_new_from_pixbuf (pixbuf); - g_object_unref (pixbuf); - } - else - image = gtk_image_new_from_pixmap (pixmap, NULL); + image = gtk_image_new_from_pixbuf (pixbuf); + g_object_unref (pixbuf); + gtk_container_add (GTK_CONTAINER (window), image); - g_object_unref (pixmap); gtk_widget_show_all (window); } @@ -9117,10 +8879,14 @@ snapshot_widget (GtkButton *button, struct SnapshotData *data) { GtkWidget *widget = GTK_WIDGET (button); - gint failure; + GdkDevice *device; - g_signal_connect (button, "event", - G_CALLBACK (snapshot_widget_event), data); + 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; @@ -9128,12 +8894,16 @@ snapshot_widget (GtkButton *button, 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); + 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); @@ -9168,7 +8938,7 @@ create_snapshot (GtkWidget *widget) gtk_window_set_title (GTK_WINDOW (window), "test snapshot"); 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); button = gtk_button_new_with_label ("Snapshot widget"); @@ -9198,19 +8968,19 @@ create_snapshot (GtkWidget *widget) 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; @@ -9224,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; @@ -9290,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); @@ -9344,74 +9114,69 @@ create_selection_test (GtkWidget *widget) static int scroll_test_pos = 0.0; static gint -scroll_test_expose (GtkWidget *widget, GdkEventExpose *event, - GtkAdjustment *adj) +scroll_test_draw (GtkWidget *widget, + cairo_t *cr, + GtkAdjustment *adjustment) { - GdkWindow *window; gint i,j; gint imin, imax, jmin, jmax; - cairo_t *cr; + GdkRectangle clip; - imin = (event->area.x) / 10; - imax = (event->area.x + event->area.width + 9) / 10; - - jmin = ((int)adj->value + event->area.y) / 10; - jmax = ((int)adj->value + event->area.y + event->area.height + 9) / 10; - - window = gtk_widget_get_window (widget); + gdk_cairo_get_clip_rectangle (cr, &clip); - gdk_window_clear_area (window, - event->area.x, event->area.y, - event->area.width, event->area.height); + imin = (clip.x) / 10; + imax = (clip.x + clip.width + 9) / 10; - cr = gdk_cairo_create (window); + 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); - cairo_destroy (cr); - return TRUE; } 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; @@ -9431,7 +9196,7 @@ create_scroll_test (GtkWidget *widget) GtkWidget *drawing_area; GtkWidget *scrollbar; GtkWidget *button; - GtkAdjustment *adj; + GtkAdjustment *adjustment; GdkGeometry geometry; GdkWindowHints geometry_mask; @@ -9452,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); @@ -9463,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, "expose_event", - G_CALLBACK (scroll_test_expose), adj); + g_signal_connect (drawing_area, "draw", + 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); @@ -9588,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); @@ -9710,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, @@ -9732,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, @@ -9804,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) { @@ -9851,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"); @@ -9870,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), @@ -9932,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); @@ -9962,29 +9703,31 @@ create_mainloop (GtkWidget *widget) gtk_widget_destroy (window); } -gboolean -layout_expose_handler (GtkWidget *widget, GdkEventExpose *event) +static gboolean +layout_draw_handler (GtkWidget *widget, cairo_t *cr) { GtkLayout *layout; GdkWindow *bin_window; - cairo_t *cr; - - gint i,j; + GdkRectangle clip; + gint i,j,x,y; gint imin, imax, jmin, jmax; layout = GTK_LAYOUT (widget); bin_window = gtk_layout_get_bin_window (layout); - if (event->window != bin_window) + if (!gtk_cairo_should_draw_window (cr, bin_window)) return FALSE; - imin = (event->area.x) / 10; - imax = (event->area.x + event->area.width + 9) / 10; + gdk_window_get_position (bin_window, &x, &y); + cairo_translate (cr, x, y); + + gdk_cairo_get_clip_rectangle (cr, &clip); - jmin = (event->area.y) / 10; - jmax = (event->area.y + event->area.height + 9) / 10; + imin = (clip.x) / 10; + imax = (clip.x + clip.width + 9) / 10; - cr = gdk_cairo_create (bin_window); + jmin = (clip.y) / 10; + jmax = (clip.y + clip.height + 9) / 10; for (i=imin; i 0) @@ -10356,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), @@ -10376,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); @@ -10397,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 * @@ -10514,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; @@ -10522,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 | @@ -10594,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 ();