38 GtkWidget * widget = gtk_image_menu_item_new_with_mnemonic (item->
name);
39 g_object_set_data ((GObject *) widget,
"func", (
void *) item->
func);
40 g_signal_connect (widget,
"activate", item->
func,
NULL);
43 gtk_image_menu_item_set_image ((GtkImageMenuItem *) widget,
44 gtk_image_new_from_stock (item->
icon, GTK_ICON_SIZE_MENU));
46 gtk_widget_show (widget);
47 gtk_menu_shell_append ((GtkMenuShell *) menu, widget);
56 g_signal_connect (
menus[
id],
"destroy", (GCallback)
57 gtk_widget_destroyed, &
menus[
id]);
59 for (GList * node =
items[
id]; node; node = node->next)
69 struct Item * item = g_slice_new (
struct Item);
82 if ((
MenuFunc) g_object_get_data ((GObject *) widget,
"func") == func)
83 gtk_widget_destroy (widget);
89 gtk_container_foreach ((GtkContainer *)
menus[
id], (GtkCallback)
93 for (GList * node =
items[
id]; node; node = next)
97 if (((
struct Item *) node->data)->func == func)
99 g_slice_free (
struct Item, node->data);