summaryrefslogtreecommitdiff
path: root/gtk/gtkimagemenuitem.c
diff options
context:
space:
mode:
authorMartin Baulig <baulig@suse.de>2001-05-18 17:35:20 +0000
committerMartin Baulig <martin@src.gnome.org>2001-05-18 17:35:20 +0000
commit60530b8a8ebec252fe212d8911834badb5587ca4 (patch)
tree9624de02db3589a9163110fc3a77553ed683e662 /gtk/gtkimagemenuitem.c
parent8be15042647a9a831fd8d2eb603475175b88c2d1 (diff)
downloadgdk-pixbuf-60530b8a8ebec252fe212d8911834badb5587ca4.tar.gz
Renamed gtk_image_menu_item_add_icon() to gtk_image_menu_item_set_icon()
2001-04-28 Martin Baulig <baulig@suse.de> * gtk/gtkimagemenuitem.[ch]: Renamed gtk_image_menu_item_add_icon() to gtk_image_menu_item_set_icon() and made it work if there's already an image. (gtk_image_menu_item_new): This function doesn't take any arguments anymore. (gtk_image_menu_item_new_with_label): New function.
Diffstat (limited to 'gtk/gtkimagemenuitem.c')
-rw-r--r--gtk/gtkimagemenuitem.c79
1 files changed, 43 insertions, 36 deletions
diff --git a/gtk/gtkimagemenuitem.c b/gtk/gtkimagemenuitem.c
index 51dad6cd8..e56f26b05 100644
--- a/gtk/gtkimagemenuitem.c
+++ b/gtk/gtkimagemenuitem.c
@@ -149,22 +149,11 @@ gtk_image_menu_item_set_property (GObject *object,
{
case PROP_IMAGE:
{
- GtkWidget *child;
-
- child = (GtkWidget*) g_value_get_object (value);
-
- if (child != image_menu_item->image)
- {
- if (image_menu_item->image)
- gtk_container_remove (GTK_CONTAINER (image_menu_item),
- image_menu_item->image);
-
- if (child)
- {
- gtk_image_menu_item_add_image (image_menu_item,
- child);
- }
- }
+ GtkWidget *image;
+
+ image = (GtkWidget*) g_value_get_object (value);
+
+ gtk_image_menu_item_set_image (image_menu_item, image);
}
break;
default:
@@ -339,8 +328,13 @@ gtk_image_menu_item_forall (GtkContainer *container,
}
GtkWidget*
-gtk_image_menu_item_new (GtkWidget *widget,
- const gchar *label)
+gtk_image_menu_item_new (void)
+{
+ return g_object_new (GTK_TYPE_IMAGE_MENU_ITEM, NULL);
+}
+
+GtkWidget*
+gtk_image_menu_item_new_with_label (const gchar *label)
{
GtkImageMenuItem *image_menu_item;
GtkWidget *accel_label;
@@ -356,9 +350,6 @@ gtk_image_menu_item_new (GtkWidget *widget,
GTK_WIDGET (image_menu_item));
gtk_widget_show (accel_label);
- if (widget)
- gtk_image_menu_item_add_image (image_menu_item, widget);
-
return GTK_WIDGET(image_menu_item);
}
@@ -376,7 +367,9 @@ gtk_image_menu_item_new_from_stock (const gchar *stock_id,
if (gtk_stock_lookup (stock_id, &stock_item))
{
- item = gtk_image_menu_item_new (image, stock_item.label);
+ item = gtk_image_menu_item_new_with_label (stock_item.label);
+
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
if (stock_item.keyval && accel_group)
gtk_widget_add_accelerator (item,
@@ -387,33 +380,47 @@ gtk_image_menu_item_new_from_stock (const gchar *stock_id,
GTK_ACCEL_VISIBLE);
}
else
- item = gtk_image_menu_item_new (image, stock_id);
-
+ {
+ item = gtk_image_menu_item_new_with_label (stock_id);
+
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+ }
+
gtk_widget_show (image);
return item;
}
void
-gtk_image_menu_item_add_image (GtkImageMenuItem *image_menu_item,
- GtkWidget *child)
+gtk_image_menu_item_set_image (GtkImageMenuItem *image_menu_item,
+ GtkWidget *image)
{
g_return_if_fail (GTK_IS_IMAGE_MENU_ITEM (image_menu_item));
- g_return_if_fail (image_menu_item->image == NULL);
-
- gtk_widget_set_parent (child, GTK_WIDGET (image_menu_item));
- image_menu_item->image = child;
+
+ if (image == image_menu_item->image)
+ return;
+
+ if (image_menu_item->image)
+ gtk_container_remove (GTK_CONTAINER (image_menu_item),
+ image_menu_item->image);
+
+ image_menu_item->image = image;
+
+ if (image == NULL)
+ return;
+
+ gtk_widget_set_parent (image, GTK_WIDGET (image_menu_item));
g_object_notify (G_OBJECT (image_menu_item), "image");
- if (GTK_WIDGET_REALIZED (child->parent))
- gtk_widget_realize (child);
+ if (GTK_WIDGET_REALIZED (image->parent))
+ gtk_widget_realize (image);
- if (GTK_WIDGET_VISIBLE (child->parent) && GTK_WIDGET_VISIBLE (child))
+ if (GTK_WIDGET_VISIBLE (image->parent) && GTK_WIDGET_VISIBLE (image))
{
- if (GTK_WIDGET_MAPPED (child->parent))
- gtk_widget_map (child);
+ if (GTK_WIDGET_MAPPED (image->parent))
+ gtk_widget_map (image);
- gtk_widget_queue_resize (child);
+ gtk_widget_queue_resize (image);
}
}