summaryrefslogtreecommitdiff
path: root/gtk/gtkstatusbar.c
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2010-08-11 22:54:33 +0200
committerJavier Jardón <jjardon@gnome.org>2010-08-22 21:25:24 +0200
commit4847b9a9405c8296a37d33a8b814a099c9eb3073 (patch)
treea37e6ccbb32ffdd418226c49542e6e9976de0c1b /gtk/gtkstatusbar.c
parentf43610e1104decda5cb09812dbc77cb814d7838f (diff)
downloadgtk+-4847b9a9405c8296a37d33a8b814a099c9eb3073.tar.gz
gtk/gtkstatusbar.c: use accessor functions to access GtkWidget
Diffstat (limited to 'gtk/gtkstatusbar.c')
-rw-r--r--gtk/gtkstatusbar.c53
1 files changed, 30 insertions, 23 deletions
diff --git a/gtk/gtkstatusbar.c b/gtk/gtkstatusbar.c
index ded06208c6..b521907720 100644
--- a/gtk/gtkstatusbar.c
+++ b/gtk/gtkstatusbar.c
@@ -770,29 +770,32 @@ static void
get_grip_rect (GtkStatusbar *statusbar,
GdkRectangle *rect)
{
- GtkWidget *widget;
+ GtkAllocation allocation;
+ GtkStyle *style;
+ GtkWidget *widget = GTK_WIDGET (statusbar);
gint w, h;
-
- widget = GTK_WIDGET (statusbar);
+
+ gtk_widget_get_allocation (widget, &allocation);
+ style = gtk_widget_get_style (widget);
/* These are in effect the max/default size of the grip. */
w = 18;
h = 18;
- if (w > widget->allocation.width)
- w = widget->allocation.width;
+ if (w > allocation.width)
+ w = allocation.width;
+
+ if (h > allocation.height - style->ythickness)
+ h = allocation.height - style->ythickness;
- if (h > widget->allocation.height - widget->style->ythickness)
- h = widget->allocation.height - widget->style->ythickness;
-
rect->width = w;
rect->height = h;
- rect->y = widget->allocation.y + widget->allocation.height - h;
+ rect->y = allocation.y + allocation.height - h;
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
- rect->x = widget->allocation.x + widget->allocation.width - w;
- else
- rect->x = widget->allocation.x + widget->style->xthickness;
+ rect->x = allocation.x + allocation.width - w;
+ else
+ rect->x = allocation.x + style->xthickness;
}
static void
@@ -850,9 +853,8 @@ gtk_statusbar_create_window (GtkStatusbar *statusbar)
attributes_mask = GDK_WA_X | GDK_WA_Y;
- priv->grip_window = gdk_window_new (widget->window,
- &attributes, attributes_mask);
-
+ priv->grip_window = gdk_window_new (gtk_widget_get_window (widget),
+ &attributes, attributes_mask);
gdk_window_set_user_data (priv->grip_window, widget);
gdk_window_raise (priv->grip_window);
@@ -980,6 +982,7 @@ gtk_statusbar_expose_event (GtkWidget *widget,
{
GtkStatusbar *statusbar = GTK_STATUSBAR (widget);
GtkStatusbarPriv *priv = statusbar->priv;
+ GtkStyle *style;
GdkRectangle rect;
GTK_WIDGET_CLASS (gtk_statusbar_parent_class)->expose_event (widget, event);
@@ -992,8 +995,9 @@ gtk_statusbar_expose_event (GtkWidget *widget,
get_grip_rect (statusbar, &rect);
- gtk_paint_resize_grip (widget->style,
- widget->window,
+ style = gtk_widget_get_style (widget);
+ gtk_paint_resize_grip (style,
+ gtk_widget_get_window (widget),
gtk_widget_get_state (widget),
&event->area,
widget,
@@ -1003,8 +1007,8 @@ gtk_statusbar_expose_event (GtkWidget *widget,
/* don't draw grip over the frame, though you
* can click on the frame.
*/
- rect.width - widget->style->xthickness,
- rect.height - widget->style->ythickness);
+ rect.width - style->xthickness,
+ rect.height - style->ythickness);
}
return FALSE;
@@ -1116,10 +1120,11 @@ gtk_statusbar_size_allocate (GtkWidget *widget,
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
allocation->x -= rect.width;
- widget->allocation = *allocation;
+ gtk_widget_set_allocation (widget, allocation);
}
else
{
+ GtkAllocation child_allocation, frame_allocation;
GtkWidget *child;
/* Use the frame's child instead of priv->label directly, in case
@@ -1128,13 +1133,15 @@ gtk_statusbar_size_allocate (GtkWidget *widget,
*/
child = gtk_bin_get_child (GTK_BIN (priv->frame));
- if (child->allocation.width + rect.width > priv->frame->allocation.width)
+ gtk_widget_get_allocation (child, &child_allocation);
+ gtk_widget_get_allocation (priv->frame, &frame_allocation);
+ if (child_allocation.width + rect.width > frame_allocation.width)
{
/* shrink the label to make room for the grip */
- *allocation = child->allocation;
+ *allocation = child_allocation;
allocation->width = MAX (1, allocation->width - rect.width);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
- allocation->x += child->allocation.width - allocation->width;
+ allocation->x += child_allocation.width - allocation->width;
gtk_widget_size_allocate (child, allocation);
}