diff options
author | Martin Baulig <baulig@suse.de> | 2001-05-18 17:35:20 +0000 |
---|---|---|
committer | Martin Baulig <martin@src.gnome.org> | 2001-05-18 17:35:20 +0000 |
commit | 60530b8a8ebec252fe212d8911834badb5587ca4 (patch) | |
tree | 9624de02db3589a9163110fc3a77553ed683e662 /gtk/gtkimagemenuitem.c | |
parent | 8be15042647a9a831fd8d2eb603475175b88c2d1 (diff) | |
download | gtk+-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.c | 79 |
1 files changed, 43 insertions, 36 deletions
diff --git a/gtk/gtkimagemenuitem.c b/gtk/gtkimagemenuitem.c index 51dad6cd83..e56f26b05f 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); } } |