From 5b91e0d501011d4dde3908267faba15373871790 Mon Sep 17 00:00:00 2001 From: Connor Behan Date: Wed, 29 Feb 2012 21:30:05 -0800 Subject: [PATCH] Make gtk2 demos comply with gseal Demos in gtk-demo are supposed to be exemplary. However, if one were to give them dummy main functions many of them would not compile with -DGSEAL_ENABLE. This changes the demos to make them use accessor functions whenever possible instead of direct changes to the struct members. http://bugzilla.gnome.org/show_bug.cgi?id=667155 --- demos/gtk-demo/changedisplay.c | 15 ++++--- demos/gtk-demo/clipboard.c | 2 +- demos/gtk-demo/colorsel.c | 9 ++-- demos/gtk-demo/combobox.c | 2 +- demos/gtk-demo/dialog.c | 2 +- demos/gtk-demo/drawingarea.c | 22 ++++++---- demos/gtk-demo/entry_buffer.c | 2 +- demos/gtk-demo/entry_completion.c | 2 +- demos/gtk-demo/expander.c | 2 +- demos/gtk-demo/hypertext.c | 4 +- demos/gtk-demo/offscreen_window.c | 70 +++++++++++++++++------------- demos/gtk-demo/offscreen_window2.c | 63 +++++++++++++++------------ demos/gtk-demo/panes.c | 31 +++++++------ demos/gtk-demo/rotated_text.c | 9 ++-- demos/gtk-demo/search_entry.c | 2 +- demos/gtk-demo/sizegroup.c | 2 +- demos/gtk-demo/spinner.c | 2 +- demos/gtk-demo/toolpalette.c | 14 +++--- 18 files changed, 147 insertions(+), 108 deletions(-) diff --git a/demos/gtk-demo/changedisplay.c b/demos/gtk-demo/changedisplay.c index b4bed3d6a7..3de3b84336 100644 --- a/demos/gtk-demo/changedisplay.c +++ b/demos/gtk-demo/changedisplay.c @@ -128,7 +128,7 @@ query_for_toplevel (GdkScreen *screen, gtk_widget_show_all (popup); cursor = gdk_cursor_new_for_display (display, GDK_CROSSHAIR); - if (gdk_pointer_grab (popup->window, FALSE, + if (gdk_pointer_grab (gtk_widget_get_window (popup), FALSE, GDK_BUTTON_RELEASE_MASK, NULL, cursor, @@ -232,6 +232,7 @@ open_display_cb (GtkWidget *button, GtkWidget *dialog; GtkWidget *display_entry; GtkWidget *dialog_label; + GtkWidget *content_area; gchar *new_screen_name = NULL; GdkDisplay *result = NULL; @@ -247,12 +248,14 @@ open_display_cb (GtkWidget *button, gtk_entry_set_activates_default (GTK_ENTRY (display_entry), TRUE); dialog_label = gtk_label_new ("Please enter the name of\nthe new display\n"); - - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog_label); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), display_entry); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + + gtk_container_add (GTK_CONTAINER (content_area), dialog_label); + gtk_container_add (GTK_CONTAINER (content_area), display_entry); gtk_widget_grab_focus (display_entry); - gtk_widget_show_all (GTK_BIN (dialog)->child); + gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (dialog))); while (!result) { @@ -621,7 +624,7 @@ do_changedisplay (GtkWidget *do_widget) vbox = gtk_vbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (info->window)->vbox), vbox, + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (info->window))), vbox, TRUE, TRUE, 0); frame = create_display_frame (info); diff --git a/demos/gtk-demo/clipboard.c b/demos/gtk-demo/clipboard.c index 6ec1517bc5..9979d3dd95 100644 --- a/demos/gtk-demo/clipboard.c +++ b/demos/gtk-demo/clipboard.c @@ -125,7 +125,7 @@ drag_data_received (GtkWidget *widget, { GdkPixbuf *pixbuf; - if (selection_data->length > 0) + if (gtk_selection_data_get_length (selection_data) > 0) { pixbuf = gtk_selection_data_get_pixbuf (selection_data); gtk_image_set_from_pixbuf (GTK_IMAGE (data), pixbuf); diff --git a/demos/gtk-demo/colorsel.c b/demos/gtk-demo/colorsel.c index c671cea51d..ea3d3aa3da 100644 --- a/demos/gtk-demo/colorsel.c +++ b/demos/gtk-demo/colorsel.c @@ -19,14 +19,16 @@ expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) { - if (widget->window) + GdkWindow *window = gtk_widget_get_window (widget); + + if (window) { GtkStyle *style; cairo_t *cr; style = gtk_widget_get_style (widget); - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (window); gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]); gdk_cairo_rectangle (cr, &event->area); @@ -50,7 +52,8 @@ change_color_callback (GtkWidget *button, gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window)); - colorsel = GTK_COLOR_SELECTION (GTK_COLOR_SELECTION_DIALOG (dialog)->colorsel); + colorsel = + GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (dialog))); gtk_color_selection_set_previous_color (colorsel, &color); gtk_color_selection_set_current_color (colorsel, &color); diff --git a/demos/gtk-demo/combobox.c b/demos/gtk-demo/combobox.c index 439db18cb7..172c5afac6 100644 --- a/demos/gtk-demo/combobox.c +++ b/demos/gtk-demo/combobox.c @@ -435,7 +435,7 @@ do_combobox (GtkWidget *do_widget) entry = g_object_new (TYPE_MASK_ENTRY, NULL); MASK_ENTRY (entry)->mask = "^([0-9]*|One|Two|2\302\275|Three)$"; - gtk_container_remove (GTK_CONTAINER (combo), GTK_BIN (combo)->child); + gtk_container_remove (GTK_CONTAINER (combo), gtk_bin_get_child (GTK_BIN (combo))); gtk_container_add (GTK_CONTAINER (combo), entry); } diff --git a/demos/gtk-demo/dialog.c b/demos/gtk-demo/dialog.c index 301ee2f592..4a49a94eca 100644 --- a/demos/gtk-demo/dialog.c +++ b/demos/gtk-demo/dialog.c @@ -53,7 +53,7 @@ interactive_dialog_clicked (GtkButton *button, hbox = gtk_hbox_new (FALSE, 8); gtk_container_set_border_width (GTK_CONTAINER (hbox), 8); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox, FALSE, FALSE, 0); stock = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); gtk_box_pack_start (GTK_BOX (hbox), stock, FALSE, FALSE, 0); diff --git a/demos/gtk-demo/drawingarea.c b/demos/gtk-demo/drawingarea.c index 1b1c9bbb89..5aed1ef524 100644 --- a/demos/gtk-demo/drawingarea.c +++ b/demos/gtk-demo/drawingarea.c @@ -26,14 +26,17 @@ scribble_configure_event (GtkWidget *widget, gpointer data) { cairo_t *cr; + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); if (surface) cairo_surface_destroy (surface); - surface = gdk_window_create_similar_surface (widget->window, + surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), CAIRO_CONTENT_COLOR, - widget->allocation.width, - widget->allocation.height); + allocation.width, + allocation.height); /* Initialize the surface to white */ cr = cairo_create (surface); @@ -55,7 +58,7 @@ scribble_expose_event (GtkWidget *widget, { cairo_t *cr; - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (gtk_widget_get_window (widget)); cairo_set_source_surface (cr, surface, 0, 0); gdk_cairo_rectangle (cr, &event->area); @@ -89,7 +92,7 @@ draw_brush (GtkWidget *widget, cairo_destroy (cr); /* Now invalidate the affected region of the drawing area. */ - gdk_window_invalidate_rect (widget->window, + gdk_window_invalidate_rect (gtk_widget_get_window (widget), &update_rect, FALSE); } @@ -148,6 +151,9 @@ checkerboard_expose (GtkWidget *da, { gint i, j, xcount, ycount; cairo_t *cr; + GtkAllocation allocation; + + gtk_widget_get_allocation (da, &allocation); #define CHECK_SIZE 10 #define SPACING 2 @@ -159,17 +165,17 @@ checkerboard_expose (GtkWidget *da, * works. */ - cr = gdk_cairo_create (da->window); + cr = gdk_cairo_create (gtk_widget_get_window (da)); gdk_cairo_rectangle (cr, &event->area); cairo_clip (cr); xcount = 0; i = SPACING; - while (i < da->allocation.width) + while (i < allocation.width) { j = SPACING; ycount = xcount % 2; /* start with even/odd depending on row */ - while (j < da->allocation.height) + while (j < allocation.height) { if (ycount % 2) cairo_set_source_rgb (cr, 0.45777, 0, 0.45777); diff --git a/demos/gtk-demo/entry_buffer.c b/demos/gtk-demo/entry_buffer.c index 82f07c99ef..581719a25c 100644 --- a/demos/gtk-demo/entry_buffer.c +++ b/demos/gtk-demo/entry_buffer.c @@ -32,7 +32,7 @@ do_entry_buffer (GtkWidget *do_widget) G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); diff --git a/demos/gtk-demo/entry_completion.c b/demos/gtk-demo/entry_completion.c index f7e61e971b..2d122dc1dc 100644 --- a/demos/gtk-demo/entry_completion.c +++ b/demos/gtk-demo/entry_completion.c @@ -59,7 +59,7 @@ do_entry_completion (GtkWidget *do_widget) G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); diff --git a/demos/gtk-demo/expander.c b/demos/gtk-demo/expander.c index acd51ba8fb..fd0401d518 100644 --- a/demos/gtk-demo/expander.c +++ b/demos/gtk-demo/expander.c @@ -33,7 +33,7 @@ do_expander (GtkWidget *do_widget) G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new ("Expander demo. Click on the triangle for details."); diff --git a/demos/gtk-demo/hypertext.c b/demos/gtk-demo/hypertext.c index 8b67c05a3a..aa41fe3300 100644 --- a/demos/gtk-demo/hypertext.c +++ b/demos/gtk-demo/hypertext.c @@ -225,7 +225,7 @@ motion_notify_event (GtkWidget *text_view, set_cursor_if_appropriate (GTK_TEXT_VIEW (text_view), x, y); - gdk_window_get_pointer (text_view->window, NULL, NULL, NULL); + gdk_window_get_pointer (gtk_widget_get_window (text_view), NULL, NULL, NULL); return FALSE; } @@ -238,7 +238,7 @@ visibility_notify_event (GtkWidget *text_view, { gint wx, wy, bx, by; - gdk_window_get_pointer (text_view->window, &wx, &wy, NULL); + gdk_window_get_pointer (gtk_widget_get_window (text_view), &wx, &wy, NULL); gtk_text_view_window_to_buffer_coords (GTK_TEXT_VIEW (text_view), GTK_TEXT_WINDOW_WIDGET, diff --git a/demos/gtk-demo/offscreen_window.c b/demos/gtk-demo/offscreen_window.c index f85d5727a1..d5483eb43d 100644 --- a/demos/gtk-demo/offscreen_window.c +++ b/demos/gtk-demo/offscreen_window.c @@ -74,7 +74,7 @@ to_child (GtkRotatedBin *bin, s = sin (bin->angle); c = cos (bin->angle); - child_area = bin->child->allocation; + gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; @@ -114,7 +114,7 @@ to_parent (GtkRotatedBin *bin, s = sin (bin->angle); c = cos (bin->angle); - child_area = bin->child->allocation; + gtk_widget_get_allocation (bin->child, &child_area); w = c * child_area.width + s * child_area.height; h = s * child_area.width + c * child_area.height; @@ -188,7 +188,7 @@ pick_offscreen_child (GdkWindow *offscreen_window, { to_child (bin, widget_x, widget_y, &x, &y); - child_area = bin->child->allocation; + gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) @@ -224,19 +224,23 @@ static void gtk_rotated_bin_realize (GtkWidget *widget) { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); + GdkWindow *gdk_window; GdkWindowAttr attributes; gint attributes_mask; gint border_width; GtkRequisition child_requisition; + GtkAllocation widget_allocation, bin_child_allocation; + GtkStyle *style; gtk_widget_set_realized (widget, TRUE); - border_width = GTK_CONTAINER (widget)->border_width; + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); + gtk_widget_get_allocation (widget, &widget_allocation); - attributes.x = widget->allocation.x + border_width; - attributes.y = widget->allocation.y + border_width; - attributes.width = widget->allocation.width - 2 * border_width; - attributes.height = widget->allocation.height - 2 * border_width; + attributes.x = widget_allocation.x + border_width; + attributes.y = widget_allocation.y + border_width; + attributes.width = widget_allocation.width - 2 * border_width; + attributes.height = widget_allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK @@ -252,11 +256,11 @@ gtk_rotated_bin_realize (GtkWidget *widget) attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, attributes_mask); - gdk_window_set_user_data (widget->window, widget); - g_signal_connect (widget->window, "pick-embedded-child", + + gdk_window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); + gtk_widget_set_window (widget, gdk_window); + gdk_window_set_user_data (gdk_window, widget); + g_signal_connect (gdk_window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; @@ -264,24 +268,25 @@ gtk_rotated_bin_realize (GtkWidget *widget) child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { - attributes.width = bin->child->allocation.width; - attributes.height = bin->child->allocation.height; + gtk_widget_get_allocation (bin->child, &bin_child_allocation); + attributes.width = bin_child_allocation.width; + attributes.height = bin_child_allocation.height; } bin->offscreen_window = gdk_window_new (gtk_widget_get_root_window (widget), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); - gdk_offscreen_window_set_embedder (bin->offscreen_window, widget->window); + gdk_offscreen_window_set_embedder (bin->offscreen_window, gtk_widget_get_window (widget)); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); - widget->style = gtk_style_attach (widget->style, widget->window); - - gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); - gtk_style_set_background (widget->style, bin->offscreen_window, GTK_STATE_NORMAL); + gtk_widget_style_attach (widget); + style = gtk_widget_get_style (widget); + gtk_style_set_background (style, gdk_window, GTK_STATE_NORMAL); + gtk_style_set_background (style, bin->offscreen_window, GTK_STATE_NORMAL); gdk_window_show (bin->offscreen_window); } @@ -376,9 +381,12 @@ gtk_rotated_bin_size_request (GtkWidget *widget, { GtkRotatedBin *bin = GTK_ROTATED_BIN (widget); GtkRequisition child_requisition; + gint border_width; double s, c; double w, h; - + + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); + child_requisition.width = 0; child_requisition.height = 0; @@ -390,8 +398,8 @@ gtk_rotated_bin_size_request (GtkWidget *widget, w = c * child_requisition.width + s * child_requisition.height; h = s * child_requisition.width + c * child_requisition.height; - requisition->width = GTK_CONTAINER (widget)->border_width * 2 + w; - requisition->height = GTK_CONTAINER (widget)->border_width * 2 + h; + requisition->width = border_width * 2 + w; + requisition->height = border_width * 2 + h; } static void @@ -403,15 +411,15 @@ gtk_rotated_bin_size_allocate (GtkWidget *widget, gint w, h; gdouble s, c; - widget->allocation = *allocation; + gtk_widget_set_allocation (widget, allocation); - border_width = GTK_CONTAINER (widget)->border_width; + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) - gdk_window_move_resize (widget->window, + gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); @@ -452,7 +460,7 @@ static gboolean gtk_rotated_bin_damage (GtkWidget *widget, GdkEventExpose *event) { - gdk_window_invalidate_rect (widget->window, NULL, FALSE); + gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } @@ -468,7 +476,7 @@ gtk_rotated_bin_expose (GtkWidget *widget, if (gtk_widget_is_drawable (widget)) { - if (event->window == widget->window) + if (event->window == gtk_widget_get_window (widget)) { GdkPixmap *pixmap; GtkAllocation child_area; @@ -477,9 +485,9 @@ gtk_rotated_bin_expose (GtkWidget *widget, if (bin->child && gtk_widget_get_visible (bin->child)) { pixmap = gdk_offscreen_window_get_pixmap (bin->offscreen_window); - child_area = bin->child->allocation; + gtk_widget_get_allocation (bin->child, &child_area); - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (gtk_widget_get_window (widget)); /* transform */ s = sin (bin->angle); @@ -505,7 +513,7 @@ gtk_rotated_bin_expose (GtkWidget *widget, } else if (event->window == bin->offscreen_window) { - gtk_paint_flat_box (widget->style, event->window, + gtk_paint_flat_box (gtk_widget_get_style (widget), event->window, GTK_STATE_NORMAL, GTK_SHADOW_NONE, &event->area, widget, "blah", 0, 0, -1, -1); diff --git a/demos/gtk-demo/offscreen_window2.c b/demos/gtk-demo/offscreen_window2.c index b0947e411d..3104639967 100644 --- a/demos/gtk-demo/offscreen_window2.c +++ b/demos/gtk-demo/offscreen_window2.c @@ -126,7 +126,7 @@ pick_offscreen_child (GdkWindow *offscreen_window, { to_child (bin, widget_x, widget_y, &x, &y); - child_area = bin->child->allocation; + gtk_widget_get_allocation (bin->child, &child_area); if (x >= 0 && x < child_area.width && y >= 0 && y < child_area.height) @@ -163,18 +163,22 @@ gtk_mirror_bin_realize (GtkWidget *widget) { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GdkWindowAttr attributes; + GdkWindow *gdk_window; gint attributes_mask; gint border_width; GtkRequisition child_requisition; + GtkAllocation widget_allocation, bin_child_allocation; + GtkStyle *style; gtk_widget_set_realized (widget, TRUE); - border_width = GTK_CONTAINER (widget)->border_width; + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); + gtk_widget_get_allocation (widget, &widget_allocation); - attributes.x = widget->allocation.x + border_width; - attributes.y = widget->allocation.y + border_width; - attributes.width = widget->allocation.width - 2 * border_width; - attributes.height = widget->allocation.height - 2 * border_width; + attributes.x = widget_allocation.x + border_width; + attributes.y = widget_allocation.y + border_width; + attributes.width = widget_allocation.width - 2 * border_width; + attributes.height = widget_allocation.height - 2 * border_width; attributes.window_type = GDK_WINDOW_CHILD; attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK @@ -190,11 +194,11 @@ gtk_mirror_bin_realize (GtkWidget *widget) attributes.wclass = GDK_INPUT_OUTPUT; attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), - &attributes, attributes_mask); - gdk_window_set_user_data (widget->window, widget); - g_signal_connect (widget->window, "pick-embedded-child", + + gdk_window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask) + gtk_widget_set_window (widget, gdk_window); + gdk_window_set_user_data (gdk_window, widget); + g_signal_connect (gdk_window, "pick-embedded-child", G_CALLBACK (pick_offscreen_child), bin); attributes.window_type = GDK_WINDOW_OFFSCREEN; @@ -202,24 +206,25 @@ gtk_mirror_bin_realize (GtkWidget *widget) child_requisition.width = child_requisition.height = 0; if (bin->child && gtk_widget_get_visible (bin->child)) { - attributes.width = bin->child->allocation.width; - attributes.height = bin->child->allocation.height; + gtk_widget_get_allocation (bin->child, &bin_child_allocation); + attributes.width = bin_child_allocation.width; + attributes.height = bin_child_allocation.height; } bin->offscreen_window = gdk_window_new (gtk_widget_get_root_window (widget), &attributes, attributes_mask); gdk_window_set_user_data (bin->offscreen_window, widget); if (bin->child) gtk_widget_set_parent_window (bin->child, bin->offscreen_window); - gdk_offscreen_window_set_embedder (bin->offscreen_window, widget->window); + gdk_offscreen_window_set_embedder (bin->offscreen_window, gtk_widget_get_window (widget)); g_signal_connect (bin->offscreen_window, "to-embedder", G_CALLBACK (offscreen_window_to_parent), bin); g_signal_connect (bin->offscreen_window, "from-embedder", G_CALLBACK (offscreen_window_from_parent), bin); - widget->style = gtk_style_attach (widget->style, widget->window); - - gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); - gtk_style_set_background (widget->style, bin->offscreen_window, GTK_STATE_NORMAL); + gtk_widget_style_attach (widget); + style = gtk_widget_get_style (widget); + gtk_style_set_background (style, gdk_window, GTK_STATE_NORMAL); + gtk_style_set_background (style, bin->offscreen_window, GTK_STATE_NORMAL); gdk_window_show (bin->offscreen_window); } @@ -302,6 +307,9 @@ gtk_mirror_bin_size_request (GtkWidget *widget, { GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); GtkRequisition child_requisition; + gint border_width; + + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); child_requisition.width = 0; child_requisition.height = 0; @@ -309,8 +317,8 @@ gtk_mirror_bin_size_request (GtkWidget *widget, if (bin->child && gtk_widget_get_visible (bin->child)) gtk_widget_size_request (bin->child, &child_requisition); - requisition->width = GTK_CONTAINER (widget)->border_width * 2 + child_requisition.width + 10; - requisition->height = GTK_CONTAINER (widget)->border_width * 2 + child_requisition.height * 2 + 10; + requisition->width = border_width * 2 + child_requisition.width + 10; + requisition->height = border_width * 2 + child_requisition.height * 2 + 10; } static void @@ -320,15 +328,16 @@ gtk_mirror_bin_size_allocate (GtkWidget *widget, GtkMirrorBin *bin = GTK_MIRROR_BIN (widget); gint border_width; gint w, h; - widget->allocation = *allocation; + + gtk_widget_set_allocation (widget, allocation); - border_width = GTK_CONTAINER (widget)->border_width; + border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); w = allocation->width - border_width * 2; h = allocation->height - border_width * 2; if (gtk_widget_get_realized (widget)) - gdk_window_move_resize (widget->window, + gdk_window_move_resize (gtk_widget_get_window (widget), allocation->x + border_width, allocation->y + border_width, w, h); @@ -357,7 +366,7 @@ static gboolean gtk_mirror_bin_damage (GtkWidget *widget, GdkEventExpose *event) { - gdk_window_invalidate_rect (widget->window, NULL, FALSE); + gdk_window_invalidate_rect (gtk_widget_get_window (widget), NULL, FALSE); return TRUE; } @@ -371,7 +380,7 @@ gtk_mirror_bin_expose (GtkWidget *widget, if (gtk_widget_is_drawable (widget)) { - if (event->window == widget->window) + if (event->window == gtk_widget_get_window (widget)) { GdkPixmap *pixmap; cairo_t *cr; @@ -383,7 +392,7 @@ gtk_mirror_bin_expose (GtkWidget *widget, pixmap = gdk_offscreen_window_get_pixmap (bin->offscreen_window); gdk_pixmap_get_size (pixmap, &width, &height); - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (gtk_widget_get_window (widget)); cairo_save (cr); @@ -423,7 +432,7 @@ gtk_mirror_bin_expose (GtkWidget *widget, } else if (event->window == bin->offscreen_window) { - gtk_paint_flat_box (widget->style, event->window, + gtk_paint_flat_box (gtk_widget_get_style (widget), event->window, GTK_STATE_NORMAL, GTK_SHADOW_NONE, &event->area, widget, "blah", 0, 0, -1, -1); diff --git a/demos/gtk-demo/panes.c b/demos/gtk-demo/panes.c index 93f1aa1098..bb00a3c0cf 100644 --- a/demos/gtk-demo/panes.c +++ b/demos/gtk-demo/panes.c @@ -17,15 +17,14 @@ void toggle_resize (GtkWidget *widget, GtkWidget *child) { - GtkPaned *paned = GTK_PANED (child->parent); - gboolean is_child1 = (child == paned->child1); + GtkPaned *paned = GTK_PANED (gtk_widget_get_parent (child)); + gboolean is_child1 = (child == gtk_paned_get_child1 (paned)); gboolean resize, shrink; - resize = is_child1 ? paned->child1_resize : paned->child2_resize; - shrink = is_child1 ? paned->child1_shrink : paned->child2_shrink; + gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); - gtk_container_remove (GTK_CONTAINER (child->parent), child); + gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (child)), child); if (is_child1) gtk_paned_pack1 (paned, child, !resize, shrink); else @@ -37,15 +36,14 @@ void toggle_shrink (GtkWidget *widget, GtkWidget *child) { - GtkPaned *paned = GTK_PANED (child->parent); - gboolean is_child1 = (child == paned->child1); + GtkPaned *paned = GTK_PANED (gtk_widget_get_parent (child)); + gboolean is_child1 = (child == gtk_paned_get_child1 (paned)); gboolean resize, shrink; - resize = is_child1 ? paned->child1_resize : paned->child2_resize; - shrink = is_child1 ? paned->child1_shrink : paned->child2_shrink; + gtk_container_child_get (GTK_CONTAINER (paned), child, "resize", &resize, "shrink", &shrink, NULL); g_object_ref (child); - gtk_container_remove (GTK_CONTAINER (child->parent), child); + gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (child)), child); if (is_child1) gtk_paned_pack1 (paned, child, resize, !shrink); else @@ -63,6 +61,11 @@ create_pane_options (GtkPaned *paned, GtkWidget *table; GtkWidget *label; GtkWidget *check_button; + GtkWidget *child1; + GtkWidget *child2; + + child1 = gtk_paned_get_child1 (paned); + child2 = gtk_paned_get_child2 (paned); frame = gtk_frame_new (frame_label); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); @@ -78,7 +81,7 @@ create_pane_options (GtkPaned *paned, gtk_table_attach_defaults (GTK_TABLE (table), check_button, 0, 1, 1, 2); g_signal_connect (check_button, "toggled", - G_CALLBACK (toggle_resize), paned->child1); + G_CALLBACK (toggle_resize), child1); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, @@ -86,7 +89,7 @@ create_pane_options (GtkPaned *paned, gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", - G_CALLBACK (toggle_shrink), paned->child1); + G_CALLBACK (toggle_shrink), child1); label = gtk_label_new (label2); gtk_table_attach_defaults (GTK_TABLE (table), label, @@ -98,7 +101,7 @@ create_pane_options (GtkPaned *paned, gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", - G_CALLBACK (toggle_resize), paned->child2); + G_CALLBACK (toggle_resize), child2); check_button = gtk_check_button_new_with_mnemonic ("_Shrink"); gtk_table_attach_defaults (GTK_TABLE (table), check_button, @@ -106,7 +109,7 @@ create_pane_options (GtkPaned *paned, gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), TRUE); g_signal_connect (check_button, "toggled", - G_CALLBACK (toggle_shrink), paned->child2); + G_CALLBACK (toggle_shrink), child2); return frame; } diff --git a/demos/gtk-demo/rotated_text.c b/demos/gtk-demo/rotated_text.c index b83b2c302b..67b29aa6fe 100644 --- a/demos/gtk-demo/rotated_text.c +++ b/demos/gtk-demo/rotated_text.c @@ -107,9 +107,12 @@ rotated_text_expose_event (GtkWidget *widget, cairo_pattern_t *pattern; PangoAttrList *attrs; + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); - int width = widget->allocation.width; - int height = widget->allocation.height; + int width = allocation.width; + int height = allocation.height; double device_radius; int i; @@ -117,7 +120,7 @@ rotated_text_expose_event (GtkWidget *widget, * space coordinates for the centered square where we draw are [-RADIUS, RADIUS], * [-RADIUS, RADIUS]. * We first center, then change the scale. */ - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (gtk_widget_get_window (widget)); device_radius = MIN (width, height) / 2.; cairo_translate (cr, device_radius + (width - 2 * device_radius) / 2, diff --git a/demos/gtk-demo/search_entry.c b/demos/gtk-demo/search_entry.c index 580dd13f6c..a9b715ed7c 100644 --- a/demos/gtk-demo/search_entry.c +++ b/demos/gtk-demo/search_entry.c @@ -264,7 +264,7 @@ do_search_entry (GtkWidget *do_widget) G_CALLBACK (search_entry_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); label = gtk_label_new (NULL); diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c index 1ce746e7b7..326d16bf73 100644 --- a/demos/gtk-demo/sizegroup.c +++ b/demos/gtk-demo/sizegroup.c @@ -116,7 +116,7 @@ do_sizegroup (GtkWidget *do_widget) G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); diff --git a/demos/gtk-demo/spinner.c b/demos/gtk-demo/spinner.c index cf82440229..c750ca05dc 100644 --- a/demos/gtk-demo/spinner.c +++ b/demos/gtk-demo/spinner.c @@ -48,7 +48,7 @@ do_spinner (GtkWidget *do_widget) G_CALLBACK (gtk_widget_destroyed), &window); vbox = gtk_vbox_new (FALSE, 5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window))), vbox, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); /* Sensitive */ diff --git a/demos/gtk-demo/toolpalette.c b/demos/gtk-demo/toolpalette.c index e9bc926b15..f2f2a6b8c6 100644 --- a/demos/gtk-demo/toolpalette.c +++ b/demos/gtk-demo/toolpalette.c @@ -86,13 +86,15 @@ canvas_expose_event (GtkWidget *widget, { cairo_t *cr; GList *iter; + GtkAllocation allocation; - cr = gdk_cairo_create (widget->window); + cr = gdk_cairo_create (gtk_widget_get_window (widget)); gdk_cairo_region (cr, event->region); cairo_clip (cr); + gtk_widget_get_allocation (widget, &allocation); cairo_set_source_rgb (cr, 1, 1, 1); - cairo_rectangle (cr, 0, 0, widget->allocation.width, widget->allocation.height); + cairo_rectangle (cr, 0, 0, allocation.width, allocation.height); cairo_fill (cr); for (iter = canvas_items; iter; iter = iter->next) @@ -176,6 +178,7 @@ palette_drag_data_received (GtkWidget *widget, GtkToolItemGroup *drop_group = NULL; GtkWidget *drag_palette = gtk_drag_get_source_widget (context); GtkWidget *drag_item = NULL; + GtkAllocation allocation; while (drag_palette && !GTK_IS_TOOL_PALETTE (drag_palette)) drag_palette = gtk_widget_get_parent (drag_palette); @@ -186,6 +189,7 @@ palette_drag_data_received (GtkWidget *widget, selection); drop_group = gtk_tool_palette_get_drop_group (GTK_TOOL_PALETTE (widget), x, y); + gtk_widget_get_allocation (GTK_WIDGET (drop_group), &allocation); } if (GTK_IS_TOOL_ITEM_GROUP (drag_item)) @@ -195,8 +199,8 @@ palette_drag_data_received (GtkWidget *widget, else if (GTK_IS_TOOL_ITEM (drag_item) && drop_group) palette_drop_item (GTK_TOOL_ITEM (drag_item), drop_group, - x - GTK_WIDGET (drop_group)->allocation.x, - y - GTK_WIDGET (drop_group)->allocation.y); + x - allocation.x, + y - allocation.y); } /********************************/ @@ -372,7 +376,7 @@ on_combo_orientation_changed (GtkComboBox *combo_box, gpointer user_data) { GtkToolPalette *palette = GTK_TOOL_PALETTE (user_data); - GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (GTK_WIDGET (palette)->parent); + GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (gtk_widget_get_parent (GTK_WIDGET (palette))); GtkTreeModel *model = gtk_combo_box_get_model (combo_box); GtkTreeIter iter; gint val = 0;