int main (int argc, char **argv) { GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; IgeMacMenuGroup *group; IgeMacDock *dock; GtkWidget *bbox; GtkWidget *button; gtk_init (&argc, &argv); dock = ige_mac_dock_get_default (); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); menubar = test_setup_menu (); gtk_box_pack_start (GTK_BOX (vbox), menubar, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new ("Some window content here"), FALSE, FALSE, 12); bbox = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_CENTER); gtk_button_box_set_spacing (GTK_BUTTON_BOX (bbox), 12); gtk_box_pack_start (GTK_BOX (vbox), bbox, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Bounce"); g_signal_connect (button, "clicked", G_CALLBACK (bounce_cb), dock); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Change Icon"); g_signal_connect (button, "clicked", G_CALLBACK (change_icon_cb), dock); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Change Menu"); g_signal_connect (button, "clicked", G_CALLBACK (change_menu_cb), NULL); gtk_box_pack_start (GTK_BOX (bbox), button, FALSE, FALSE, 0); gtk_widget_show_all (window); gtk_widget_hide (menubar); ige_mac_menu_set_menu_bar (GTK_MENU_SHELL (menubar)); ige_mac_menu_set_quit_menu_item (GTK_MENU_ITEM (quit_item)); group = ige_mac_menu_add_app_menu_group (); ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (about_item), NULL); group = ige_mac_menu_add_app_menu_group (); ige_mac_menu_add_app_menu_item (group, GTK_MENU_ITEM (preferences_item), NULL); dock = ige_mac_dock_new (); g_signal_connect (dock, "clicked", G_CALLBACK (dock_clicked_cb), window); g_signal_connect (dock, "quit-activate", G_CALLBACK (gtk_main_quit), window); gtk_main (); return 0; }
static void gui_restore_after_callback (Gimp *gimp, GimpInitStatusFunc status_callback) { GimpGuiConfig *gui_config = GIMP_GUI_CONFIG (gimp->config); GimpDisplay *display; if (gimp->be_verbose) g_print ("INIT: %s\n", G_STRFUNC); gimp->message_handler = GIMP_MESSAGE_BOX; if (gui_config->restore_accels) menus_restore (gimp); ui_configurer = g_object_new (GIMP_TYPE_UI_CONFIGURER, "gimp", gimp, NULL); image_ui_manager = gimp_menu_factory_manager_new (global_menu_factory, "<Image>", gimp, gui_config->tearoff_menus); gimp_ui_manager_update (image_ui_manager, gimp); #ifdef GDK_WINDOWING_QUARTZ { IgeMacMenuGroup *group; GtkWidget *menu; GtkWidget *item; menu = gtk_ui_manager_get_widget (GTK_UI_MANAGER (image_ui_manager), "/dummy-menubar/image-popup"); if (GTK_IS_MENU_ITEM (menu)) menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu)); ige_mac_menu_set_menu_bar (GTK_MENU_SHELL (menu)); item = gtk_ui_manager_get_widget (GTK_UI_MANAGER (image_ui_manager), "/dummy-menubar/image-popup/File/file-quit"); if (GTK_IS_MENU_ITEM (item)) ige_mac_menu_set_quit_menu_item (GTK_MENU_ITEM (item)); /* the about group */ group = ige_mac_menu_add_app_menu_group (); gui_add_to_app_menu (image_ui_manager, group, "/dummy-menubar/image-popup/Help/dialogs-about", _("About GIMP")); /* the preferences group */ group = ige_mac_menu_add_app_menu_group (); #define PREFERENCES "/dummy-menubar/image-popup/Edit/Preferences/" gui_add_to_app_menu (image_ui_manager, group, PREFERENCES "dialogs-preferences", NULL); gui_add_to_app_menu (image_ui_manager, group, PREFERENCES "dialogs-input-devices", NULL); gui_add_to_app_menu (image_ui_manager, group, PREFERENCES "dialogs-keyboard-shortcuts", NULL); gui_add_to_app_menu (image_ui_manager, group, PREFERENCES "dialogs-module-dialog", NULL); gui_add_to_app_menu (image_ui_manager, group, PREFERENCES "plug-in-unit-editor", NULL); #undef PREFERENCES } #endif /* GDK_WINDOWING_QUARTZ */ g_signal_connect_object (gui_config, "notify::single-window-mode", G_CALLBACK (gui_single_window_mode_notify), ui_configurer, 0); g_signal_connect_object (gui_config, "notify::tearoff-menus", G_CALLBACK (gui_tearoff_menus_notify), image_ui_manager, 0); g_signal_connect (image_ui_manager, "show-tooltip", G_CALLBACK (gui_menu_show_tooltip), gimp); g_signal_connect (image_ui_manager, "hide-tooltip", G_CALLBACK (gui_menu_hide_tooltip), gimp); gimp_devices_restore (gimp); gimp_controllers_restore (gimp, image_ui_manager); if (status_callback == splash_update) splash_destroy (); color_history_restore (gimp); if (gimp_get_show_gui (gimp)) { GimpDisplayShell *shell; /* create the empty display */ display = GIMP_DISPLAY (gimp_create_display (gimp, NULL, GIMP_UNIT_PIXEL, 1.0)); shell = gimp_display_get_shell (display); if (gui_config->restore_session) session_restore (gimp); /* move keyboard focus to the display */ gtk_window_present (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (shell)))); } /* indicate that the application has finished loading */ gdk_notify_startup_complete (); }