void setup_menuitem (GtkWidget *menuitem, GtkIconSize icon_size, GtkWidget *image, const char *title) { GtkWidget *label; char *_title; /* this creates a label with an invisible mnemonic */ label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); _title = menu_escape_underscores_and_prepend (title); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _title); g_free (_title); gtk_label_set_pattern (GTK_LABEL (label), ""); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuitem); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (menuitem), label); if (image) { g_object_set_data_full (G_OBJECT (menuitem), "Panel:Image", g_object_ref (image), (GDestroyNotify) g_object_unref); gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); } else if (icon_size != GTK_ICON_SIZE_INVALID) #if GTK_CHECK_VERSION (3, 0, 0) image_menuitem_set_size_request (menuitem, icon_size); #else g_signal_connect (menuitem, "size_request", G_CALLBACK (image_menuitem_size_request), GINT_TO_POINTER (icon_size)); #endif gtk_widget_show (menuitem); }
void setup_menuitem (GtkWidget *menuitem, GtkIconSize icon_size, GtkWidget *image, const char *title) { GtkWidget *label; char *_title; /* this creates a label with an invisible mnemonic */ label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); _title = menu_escape_underscores_and_prepend (title); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _title); g_free (_title); gtk_label_set_pattern (GTK_LABEL (label), ""); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuitem); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (menuitem), label); if (image) { g_object_set_data_full (G_OBJECT (menuitem), "Panel:Image", g_object_ref (image), (GDestroyNotify) g_object_unref); gtk_widget_show (image); panel_image_menu_item_set_image (PANEL_IMAGE_MENU_ITEM (menuitem), image); } else if (icon_size != GTK_ICON_SIZE_INVALID) image_menuitem_set_size_request (menuitem, icon_size); gtk_widget_show (menuitem); }