gtk/gtktoolpalette.c: use accessor functions to access GtkWidget

This commit is contained in:
Javier Jardón 2010-08-11 22:51:16 +02:00
parent 3f101bb08c
commit 34e63dcd46

View File

@ -620,15 +620,18 @@ gtk_tool_palette_expose_event (GtkWidget *widget,
{ {
GtkToolPalette *palette = GTK_TOOL_PALETTE (widget); GtkToolPalette *palette = GTK_TOOL_PALETTE (widget);
GdkDisplay *display; GdkDisplay *display;
GdkWindow *window;
cairo_t *cr; cairo_t *cr;
guint i; guint i;
display = gdk_drawable_get_display (widget->window); window = gtk_widget_get_window (widget);
display = gdk_drawable_get_display (window);
if (!gdk_display_supports_composite (display)) if (!gdk_display_supports_composite (display))
return FALSE; return FALSE;
cr = gdk_cairo_create (widget->window); cr = gdk_cairo_create (window);
gdk_cairo_region (cr, event->region); gdk_cairo_region (cr, event->region);
cairo_clip (cr); cairo_clip (cr);
@ -652,17 +655,23 @@ gtk_tool_palette_expose_event (GtkWidget *widget,
static void static void
gtk_tool_palette_realize (GtkWidget *widget) gtk_tool_palette_realize (GtkWidget *widget)
{ {
GtkAllocation allocation;
GdkWindow *window;
GdkWindowAttr attributes; GdkWindowAttr attributes;
gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; gint attributes_mask;
guint border_width; guint border_width;
gtk_widget_set_realized (widget, TRUE);
border_width = gtk_container_get_border_width (GTK_CONTAINER (widget)); border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
gtk_widget_get_allocation (widget, &allocation);
attributes.window_type = GDK_WINDOW_CHILD; attributes.window_type = GDK_WINDOW_CHILD;
attributes.x = widget->allocation.x + border_width; attributes.x = allocation.x + border_width;
attributes.y = widget->allocation.y + border_width; attributes.y = allocation.y + border_width;
attributes.width = widget->allocation.width - border_width * 2; attributes.width = allocation.width - border_width * 2;
attributes.height = widget->allocation.height - border_width * 2; attributes.height = allocation.height - border_width * 2;
attributes.wclass = GDK_INPUT_OUTPUT; attributes.wclass = GDK_INPUT_OUTPUT;
attributes.visual = gtk_widget_get_visual (widget); attributes.visual = gtk_widget_get_visual (widget);
attributes.colormap = gtk_widget_get_colormap (widget); attributes.colormap = gtk_widget_get_colormap (widget);
@ -670,18 +679,19 @@ gtk_tool_palette_realize (GtkWidget *widget)
| GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK
| GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
| GDK_BUTTON_MOTION_MASK; | GDK_BUTTON_MOTION_MASK;
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), window = gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask); &attributes, attributes_mask);
gdk_window_set_user_data (window, widget);
gdk_window_set_user_data (widget->window, widget); gtk_widget_style_attach (widget);
widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (gtk_widget_get_style (widget),
gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); window, GTK_STATE_NORMAL);
gtk_widget_set_realized (widget, TRUE);
gtk_container_forall (GTK_CONTAINER (widget), gtk_container_forall (GTK_CONTAINER (widget),
(GtkCallback) gtk_widget_set_parent_window, (GtkCallback) gtk_widget_set_parent_window,
widget->window); window);
gtk_widget_queue_resize_no_redraw (widget); gtk_widget_queue_resize_no_redraw (widget);
} }
@ -690,8 +700,11 @@ static void
gtk_tool_palette_adjustment_value_changed (GtkAdjustment *adjustment, gtk_tool_palette_adjustment_value_changed (GtkAdjustment *adjustment,
gpointer data) gpointer data)
{ {
GtkAllocation allocation;
GtkWidget *widget = GTK_WIDGET (data); GtkWidget *widget = GTK_WIDGET (data);
gtk_tool_palette_size_allocate (widget, &widget->allocation);
gtk_widget_get_allocation (widget, &allocation);
gtk_tool_palette_size_allocate (widget, &allocation);
} }
static void static void
@ -1554,13 +1567,17 @@ gtk_tool_palette_get_drop_item (GtkToolPalette *palette,
gint x, gint x,
gint y) gint y)
{ {
GtkAllocation allocation;
GtkToolItemGroup *group = gtk_tool_palette_get_drop_group (palette, x, y); GtkToolItemGroup *group = gtk_tool_palette_get_drop_group (palette, x, y);
GtkWidget *widget = GTK_WIDGET (group); GtkWidget *widget = GTK_WIDGET (group);
if (group) if (group)
return gtk_tool_item_group_get_drop_item (group, {
x - widget->allocation.x, gtk_widget_get_allocation (widget, &allocation);
y - widget->allocation.y); return gtk_tool_item_group_get_drop_item (group,
x - allocation.x,
y - allocation.y);
}
return NULL; return NULL;
} }
@ -1583,15 +1600,15 @@ gtk_tool_palette_get_drop_group (GtkToolPalette *palette,
gint x, gint x,
gint y) gint y)
{ {
GtkAllocation *allocation; GtkAllocation allocation;
guint i; guint i;
g_return_val_if_fail (GTK_IS_TOOL_PALETTE (palette), NULL); g_return_val_if_fail (GTK_IS_TOOL_PALETTE (palette), NULL);
allocation = &GTK_WIDGET (palette)->allocation; gtk_widget_get_allocation (GTK_WIDGET (palette), &allocation);
g_return_val_if_fail (x >= 0 && x < allocation->width, NULL); g_return_val_if_fail (x >= 0 && x < allocation.width, NULL);
g_return_val_if_fail (y >= 0 && y < allocation->height, NULL); g_return_val_if_fail (y >= 0 && y < allocation.height, NULL);
for (i = 0; i < palette->priv->groups->len; ++i) for (i = 0; i < palette->priv->groups->len; ++i)
{ {
@ -1603,12 +1620,13 @@ gtk_tool_palette_get_drop_group (GtkToolPalette *palette,
continue; continue;
widget = GTK_WIDGET (group->widget); widget = GTK_WIDGET (group->widget);
gtk_widget_get_allocation (widget, &allocation);
x0 = x - widget->allocation.x; x0 = x - allocation.x;
y0 = y - widget->allocation.y; y0 = y - allocation.y;
if (x0 >= 0 && x0 < widget->allocation.width && if (x0 >= 0 && x0 < allocation.width &&
y0 >= 0 && y0 < widget->allocation.height) y0 >= 0 && y0 < allocation.height)
return GTK_TOOL_ITEM_GROUP (widget); return GTK_TOOL_ITEM_GROUP (widget);
} }