summaryrefslogtreecommitdiff
path: root/gtk/gtktoolbar.c
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@daimi.au.dk>2003-07-08 10:58:23 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2003-07-08 10:58:23 +0000
commitb3b16bebcf3a28475190b764091442e7be18fdb2 (patch)
tree75edd6971e54295d8931fcac765bcfa49097f9ee /gtk/gtktoolbar.c
parentf74f620ca9ad6f1279fc00aff0a8d4111f3bb8bd (diff)
downloadgtk+-b3b16bebcf3a28475190b764091442e7be18fdb2.tar.gz
fix a type check, (#116947, Krasimir Angelov)
Tue Jul 8 12:50:20 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtktoolbutton.c (gtk_tool_button_get_icon_widget): fix a type check, (#116947, Krasimir Angelov) * gtk/gtktoolbar.c: Use new GtkToolItem accessors. * gtk/gtktoolitem.[ch]: Use a private struct to hold the instance data. Not instance private data yet, because of bug 116921. * gtk/gtktoolitem.h: new accessors: gtk_tool_item_get_homogeneous () gtk_tool_item_get_expand () gtk_tool_item_get_pack_end () gtk_tool_item_get_use_drag_window ()
Diffstat (limited to 'gtk/gtktoolbar.c')
-rw-r--r--gtk/gtktoolbar.c78
1 files changed, 49 insertions, 29 deletions
diff --git a/gtk/gtktoolbar.c b/gtk/gtktoolbar.c
index 1beafd3b87..be6046cb7f 100644
--- a/gtk/gtktoolbar.c
+++ b/gtk/gtktoolbar.c
@@ -539,8 +539,10 @@ toolbar_item_visible (GtkToolbar *toolbar,
GtkToolItem *item)
{
if (GTK_WIDGET_VISIBLE (item) &&
- ((toolbar->orientation == GTK_ORIENTATION_HORIZONTAL && item->visible_horizontal) ||
- (toolbar->orientation == GTK_ORIENTATION_VERTICAL && item->visible_vertical)))
+ ((toolbar->orientation == GTK_ORIENTATION_HORIZONTAL &&
+ gtk_tool_item_get_visible_horizontal (item)) ||
+ (toolbar->orientation == GTK_ORIENTATION_VERTICAL &&
+ gtk_tool_item_get_visible_vertical (item))))
{
GtkToolbarPrivate *priv = GTK_TOOLBAR_GET_PRIVATE (toolbar);
@@ -563,6 +565,23 @@ toolbar_item_visible (GtkToolbar *toolbar,
}
static void
+toolbar_item_set_is_overflow (GtkToolItem *item,
+ gboolean is_overflow)
+{
+ g_object_set_data (G_OBJECT (item), "gtk-toolbar-item-is-overflow", GINT_TO_POINTER (is_overflow));
+}
+
+static gboolean
+toolbar_item_get_is_overflow (GtkToolItem *item)
+{
+ gpointer result;
+
+ result = g_object_get_data (G_OBJECT (item), "gtk-toolbar-item-is-overflow");
+
+ return GPOINTER_TO_INT (result);
+}
+
+static void
gtk_toolbar_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -784,7 +803,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
max_child_width = MAX (max_child_width, requisition.width);
max_child_height = MAX (max_child_height, requisition.height);
- if (GTK_TOOL_ITEM (item)->homogeneous && GTK_BIN (item)->child)
+ if (gtk_tool_item_get_homogeneous (item) && GTK_BIN (item)->child)
{
max_homogeneous_child_width = MAX (max_homogeneous_child_width, requisition.width);
max_homogeneous_child_height = MAX (max_homogeneous_child_height, requisition.height);
@@ -810,7 +829,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
{
size = space_size;
}
- else if (item->homogeneous)
+ else if (gtk_tool_item_get_homogeneous (item))
{
size = homogeneous_size;
}
@@ -826,7 +845,7 @@ gtk_toolbar_size_request (GtkWidget *widget,
size = requisition.height;
}
- if (item->pack_end)
+ if (gtk_tool_item_get_pack_end (item))
pack_end_size += size;
else
pack_front_size += size;
@@ -910,14 +929,14 @@ get_item_size (GtkToolbar *toolbar,
if (toolbar->orientation == GTK_ORIENTATION_HORIZONTAL)
{
- if (item->homogeneous)
+ if (gtk_tool_item_get_homogeneous (item))
return toolbar->button_maxw;
else
return requisition.width;
}
else
{
- if (item->homogeneous)
+ if (gtk_tool_item_get_homogeneous (item))
return toolbar->button_maxh;
else
return requisition.height;
@@ -1007,7 +1026,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
GtkAllocation *allocation = &(allocations[n_items - i - 1]);
gint item_size;
- if (!item->pack_end || !toolbar_item_visible (toolbar, item))
+ if (!gtk_tool_item_get_pack_end (item) || !toolbar_item_visible (toolbar, item))
continue;
item_size = get_item_size (toolbar, GTK_WIDGET (item));
@@ -1015,15 +1034,15 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
size -= item_size;
allocation->width = item_size;
- item->overflow_item = FALSE;
+ toolbar_item_set_is_overflow (item, FALSE);
}
else
{
while (list)
{
item = list->data;
- if (item->pack_end)
- item->overflow_item = TRUE;
+ if (gtk_tool_item_get_pack_end (item))
+ toolbar_item_set_is_overflow (item, TRUE);
list = list->prev;
}
@@ -1037,7 +1056,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
GtkToolItem *item = list->data;
gint item_size;
- if (item->pack_end || !toolbar_item_visible (toolbar, item))
+ if (gtk_tool_item_get_pack_end (item) || !toolbar_item_visible (toolbar, item))
continue;
item_size = get_item_size (toolbar, GTK_WIDGET (item));
@@ -1045,15 +1064,15 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
size -= item_size;
allocations[i].width = item_size;
- item->overflow_item = FALSE;
+ toolbar_item_set_is_overflow (item, FALSE);
}
else
{
while (list)
{
item = list->data;
- if (!item->pack_end)
- item->overflow_item = TRUE;
+ if (!gtk_tool_item_get_pack_end (item))
+ toolbar_item_set_is_overflow (item, TRUE);
list = list->next;
}
break;
@@ -1072,8 +1091,9 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && item->expand &&
- !item->overflow_item && GTK_BIN (item)->child)
+ if (toolbar_item_visible (toolbar, item) &&
+ gtk_tool_item_get_expand (item) &&
+ !toolbar_item_get_is_overflow (item) && GTK_BIN (item)->child)
{
n_expand_items++;
}
@@ -1083,8 +1103,8 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && item->expand &&
- !item->overflow_item && GTK_BIN (item)->child)
+ if (toolbar_item_visible (toolbar, item) && gtk_tool_item_get_expand (item) &&
+ !toolbar_item_get_is_overflow (item) && GTK_BIN (item)->child)
{
gint extra = size / n_expand_items;
if (size % n_expand_items != 0)
@@ -1104,7 +1124,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && !item->overflow_item && !item->pack_end)
+ if (toolbar_item_visible (toolbar, item) && !toolbar_item_get_is_overflow (item) && !gtk_tool_item_get_pack_end (item))
{
allocations[i].x = pos;
allocations[i].y = border_width;
@@ -1120,7 +1140,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && !item->overflow_item && item->pack_end)
+ if (toolbar_item_visible (toolbar, item) && !toolbar_item_get_is_overflow (item) && gtk_tool_item_get_pack_end (item))
{
GtkAllocation *allocation = &(allocations[n_items - i - 1]);
@@ -1175,7 +1195,7 @@ gtk_toolbar_size_allocate (GtkWidget *widget,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && !item->overflow_item)
+ if (toolbar_item_visible (toolbar, item) && !toolbar_item_get_is_overflow (item))
{
gtk_widget_size_allocate (GTK_WIDGET (item), &(allocations[i]));
gtk_widget_set_child_visible (GTK_WIDGET (item), TRUE);
@@ -1244,7 +1264,7 @@ gtk_toolbar_list_children_in_focus_order (GtkToolbar *toolbar,
for (list = priv->items; list != NULL; list = list->next)
{
GtkToolItem *item = list->data;
- if (!item->pack_end)
+ if (!gtk_tool_item_get_pack_end (item))
result = g_list_prepend (result, item);
}
@@ -1252,7 +1272,7 @@ gtk_toolbar_list_children_in_focus_order (GtkToolbar *toolbar,
{
GtkToolItem *item = list->data;
- if (item->pack_end)
+ if (gtk_tool_item_get_pack_end (item))
result = g_list_prepend (result, item);
}
@@ -1516,7 +1536,7 @@ find_drop_pos (GtkToolbar *toolbar,
{
item = GTK_TOOL_ITEM (items->data);
index++;
- if (GTK_WIDGET_DRAWABLE (item) && !item->pack_end)
+ if (GTK_WIDGET_DRAWABLE (item) && !gtk_tool_item_get_pack_end (item))
{
gint pos, distance;
@@ -1639,15 +1659,15 @@ gtk_toolbar_get_child_property (GtkContainer *container,
switch (property_id)
{
case CHILD_PROP_PACK_END:
- g_value_set_boolean (value, item->pack_end);
+ g_value_set_boolean (value, gtk_tool_item_get_pack_end (item));
break;
case CHILD_PROP_HOMOGENEOUS:
- g_value_set_boolean (value, item->homogeneous);
+ g_value_set_boolean (value, gtk_tool_item_get_homogeneous (item));
break;
case CHILD_PROP_EXPAND:
- g_value_set_boolean (value, item->expand);
+ g_value_set_boolean (value, gtk_tool_item_get_expand (item));
break;
default:
@@ -1896,7 +1916,7 @@ show_menu (GtkToolbar *toolbar,
{
GtkToolItem *item = list->data;
- if (toolbar_item_visible (toolbar, item) && item->overflow_item)
+ if (toolbar_item_visible (toolbar, item) && toolbar_item_get_is_overflow (item))
{
GtkWidget *menu_item = gtk_tool_item_retrieve_proxy_menu_item (item);