#include static void destroy_cb (GtkWidget *window, GtkBuilder *builder) { gtk_main_quit (); } static void populate_popup_cb (GtkAppChooserWidget *app_chooser_widget, GtkMenu *menu, GAppInfo *app_info, gpointer user_data) { GtkWidget *menu_item; menu_item = gtk_menu_item_new_with_label ("Menu Item A"); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); menu_item = gtk_menu_item_new_with_label ("Menu Item B"); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); menu_item = gtk_menu_item_new_with_label ("Menu Item C"); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); menu_item = gtk_menu_item_new_with_label ("Menu Item D"); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); menu_item = gtk_menu_item_new_with_label ("Menu Item E"); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); } int main (int argc, char *argv[]) { GtkBuilder *builder; GtkWidget *window; GtkWidget *app_chooser_widget; gtk_init (&argc, &argv); builder = gtk_builder_new_from_file ("popupat.ui"); window = GTK_WIDGET (gtk_builder_get_object (builder, "window")); g_signal_connect (window, "destroy", G_CALLBACK (destroy_cb), builder); app_chooser_widget = GTK_WIDGET (gtk_builder_get_object (builder, "appchooserwidget")); g_signal_connect (app_chooser_widget, "populate-popup", G_CALLBACK (populate_popup_cb), builder); gtk_widget_show_all (window); gtk_main (); g_object_unref (builder); return 0; }