diff options
author | William Jon McCann <william.jon.mccann@gmail.com> | 2013-06-28 12:09:58 -0400 |
---|---|---|
committer | William Jon McCann <william.jon.mccann@gmail.com> | 2013-06-30 11:19:50 -0400 |
commit | 32ce8fa60ab1973f7003162ddf321fcb1d5d3b92 (patch) | |
tree | f44df81c85a3ba80b182b3a0cb6824dfa452a381 /demos | |
parent | f7f46b9155e949b50a3a50d367a3312b14c9b504 (diff) | |
download | gtk+-32ce8fa60ab1973f7003162ddf321fcb1d5d3b92.tar.gz |
Remove deprecated UIManager from the demo
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/Makefile.am | 4 | ||||
-rw-r--r-- | demos/gtk-demo/appwindow.c | 486 | ||||
-rw-r--r-- | demos/gtk-demo/ui_manager.c | 229 |
3 files changed, 1 insertions, 718 deletions
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index a10e4f4931..698372e2f8 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -5,7 +5,6 @@ include $(top_srcdir)/Makefile.decl ## demo app, which means alphabetized by demo title, not filename demos = \ application.c \ - appwindow.c \ assistant.c \ builder.c \ button_box.c \ @@ -52,8 +51,7 @@ demos = \ theming_style_classes.c \ toolpalette.c \ transparent.c \ - tree_store.c \ - ui_manager.c + tree_store.c AM_CPPFLAGS = \ -I$(top_srcdir) \ diff --git a/demos/gtk-demo/appwindow.c b/demos/gtk-demo/appwindow.c deleted file mode 100644 index 155a019013..0000000000 --- a/demos/gtk-demo/appwindow.c +++ /dev/null @@ -1,486 +0,0 @@ -/* Application window - * - * Demonstrates a typical application window with menubar, toolbar, statusbar. - * - * This example uses GtkUIManager and GtkActionGroup. - */ - -#include "config.h" - -#include <glib/gi18n.h> -#include <gtk/gtk.h> - -static GtkWidget *window = NULL; -static GtkWidget *infobar = NULL; -static GtkWidget *messagelabel = NULL; - -static void -activate_action (GtkAction *action) -{ - const gchar *name = gtk_action_get_name (action); - const gchar *typename = G_OBJECT_TYPE_NAME (action); - - GtkWidget *dialog; - - if (g_str_equal (name, "DarkTheme")) - { - gboolean value = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); - GtkSettings *settings = gtk_settings_get_default (); - - g_object_set (G_OBJECT (settings), - "gtk-application-prefer-dark-theme", value, - NULL); - return; - } - - if (g_str_equal (name, "HideTitlebar")) - { - gboolean value = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)); - gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), value); - return; - } - - dialog = gtk_message_dialog_new (GTK_WINDOW (window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, - "You activated action: \"%s\" of type \"%s\"", - name, typename); - - /* Close dialog on user response */ - g_signal_connect (dialog, - "response", - G_CALLBACK (gtk_widget_destroy), - NULL); - - gtk_widget_show (dialog); -} - -static void -activate_radio_action (GtkAction *action, GtkRadioAction *current) -{ - const gchar *name = gtk_action_get_name (GTK_ACTION (current)); - const gchar *typename = G_OBJECT_TYPE_NAME (GTK_ACTION (current)); - gboolean active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (current)); - gint value = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (current)); - - if (active) - { - gchar *text; - - text = g_strdup_printf ("You activated radio action: \"%s\" of type \"%s\".\n" - "Current value: %d", - name, typename, value); - gtk_label_set_text (GTK_LABEL (messagelabel), text); - gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), (GtkMessageType)value); - gtk_widget_show (infobar); - g_free (text); - } -} - -static void -about_cb (GtkAction *action, - GtkWidget *window) -{ - GdkPixbuf *pixbuf; - - const gchar *authors[] = { - "Peter Mattis", - "Spencer Kimball", - "Josh MacDonald", - "and many more...", - NULL - }; - - const gchar *documentors[] = { - "Owen Taylor", - "Tony Gale", - "Matthias Clasen <mclasen@redhat.com>", - "and many more...", - NULL - }; - - pixbuf = gdk_pixbuf_new_from_resource ("/appwindow/gtk-logo-old.png", NULL); - /* We asser the existence of the pixbuf as we load it from a custom resource. */ - g_assert (pixbuf); - - gtk_show_about_dialog (GTK_WINDOW (window), - "program-name", "GTK+ Code Demos", - "version", g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d", - PACKAGE_VERSION, - gtk_get_major_version (), - gtk_get_minor_version (), - gtk_get_micro_version ()), - "copyright", "(C) 1997-2009 The GTK+ Team", - "license-type", GTK_LICENSE_LGPL_2_1, - "website", "http://www.gtk.org", - "comments", "Program to demonstrate GTK+ functions.", - "authors", authors, - "documenters", documentors, - "logo", pixbuf, - "title", "About GTK+ Code Demos", - NULL); - - g_object_unref (pixbuf); -} - -typedef struct -{ - GtkAction action; -} ToolMenuAction; - -typedef struct -{ - GtkActionClass parent_class; -} ToolMenuActionClass; - -G_DEFINE_TYPE(ToolMenuAction, tool_menu_action, GTK_TYPE_ACTION) - -static void -tool_menu_action_class_init (ToolMenuActionClass *class) -{ - GTK_ACTION_CLASS (class)->toolbar_item_type = GTK_TYPE_MENU_TOOL_BUTTON; -} - -static void -tool_menu_action_init (ToolMenuAction *action) -{ -} - -static GtkActionEntry entries[] = { - { "FileMenu", NULL, "_File" }, /* name, stock id, label */ - { "OpenMenu", NULL, "_Open" }, /* name, stock id, label */ - { "PreferencesMenu", NULL, "_Preferences" }, /* name, stock id, label */ - { "ColorMenu", NULL, "_Color" }, /* name, stock id, label */ - { "ShapeMenu", NULL, "_Shape" }, /* name, stock id, label */ - { "HelpMenu", NULL, "_Help" }, /* name, stock id, label */ - { "New", GTK_STOCK_NEW, /* name, stock id */ - "_New", "<control>N", /* label, accelerator */ - "Create a new file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "File1", NULL, /* name, stock id */ - "File1", NULL, /* label, accelerator */ - "Open first file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "Save", GTK_STOCK_SAVE, /* name, stock id */ - "_Save","<control>S", /* label, accelerator */ - "Save current file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "SaveAs", GTK_STOCK_SAVE, /* name, stock id */ - "Save _As...", NULL, /* label, accelerator */ - "Save to a file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "Quit", GTK_STOCK_QUIT, /* name, stock id */ - "_Quit", "<control>Q", /* label, accelerator */ - "Quit", /* tooltip */ - G_CALLBACK (activate_action) }, - { "About", NULL, /* name, stock id */ - "_About", "<control>A", /* label, accelerator */ - "About", /* tooltip */ - G_CALLBACK (about_cb) }, -}; -static guint n_entries = G_N_ELEMENTS (entries); - - -static GtkToggleActionEntry toggle_entries[] = { - { "Bold", GTK_STOCK_BOLD, /* name, stock id */ - "_Bold", "<control>B", /* label, accelerator */ - "Bold", /* tooltip */ - G_CALLBACK (activate_action), - TRUE }, /* is_active */ - { "DarkTheme", NULL, /* name, stock id */ - "_Prefer Dark Theme", NULL, /* label, accelerator */ - "Prefer Dark Theme", /* tooltip */ - G_CALLBACK (activate_action), - FALSE }, /* is_active */ - { "HideTitlebar", NULL, - "_Hide Titlebar when maximized", NULL, - "Hide Titlebar when maximized", - G_CALLBACK (activate_action), - FALSE } -}; -static guint n_toggle_entries = G_N_ELEMENTS (toggle_entries); - -enum { - COLOR_RED, - COLOR_GREEN, - COLOR_BLUE -}; - -static GtkRadioActionEntry color_entries[] = { - { "Red", NULL, /* name, stock id */ - "_Red", "<control>R", /* label, accelerator */ - "Blood", COLOR_RED }, /* tooltip, value */ - { "Green", NULL, /* name, stock id */ - "_Green", "<control>G", /* label, accelerator */ - "Grass", COLOR_GREEN }, /* tooltip, value */ - { "Blue", NULL, /* name, stock id */ - "_Blue", "<control>B", /* label, accelerator */ - "Sky", COLOR_BLUE }, /* tooltip, value */ -}; -static guint n_color_entries = G_N_ELEMENTS (color_entries); - -enum { - SHAPE_SQUARE, - SHAPE_RECTANGLE, - SHAPE_OVAL -}; - -static GtkRadioActionEntry shape_entries[] = { - { "Square", NULL, /* name, stock id */ - "_Square", "<control>S", /* label, accelerator */ - "Square", SHAPE_SQUARE }, /* tooltip, value */ - { "Rectangle", NULL, /* name, stock id */ - "_Rectangle", "<control>R", /* label, accelerator */ - "Rectangle", SHAPE_RECTANGLE }, /* tooltip, value */ - { "Oval", NULL, /* name, stock id */ - "_Oval", "<control>O", /* label, accelerator */ - "Egg", SHAPE_OVAL }, /* tooltip, value */ -}; -static guint n_shape_entries = G_N_ELEMENTS (shape_entries); - -static const gchar *ui_info = -"<ui>" -" <menubar name='MenuBar'>" -" <menu action='FileMenu'>" -" <menuitem action='New'/>" -" <menuitem action='Open'/>" -" <menuitem action='Save'/>" -" <menuitem action='SaveAs'/>" -" <separator/>" -" <menuitem action='Quit'/>" -" </menu>" -" <menu action='PreferencesMenu'>" -" <menuitem action='DarkTheme'/>" -" <menuitem action='HideTitlebar'/>" -" <menu action='ColorMenu'>" -" <menuitem action='Red'/>" -" <menuitem action='Green'/>" -" <menuitem action='Blue'/>" -" </menu>" -" <menu action='ShapeMenu'>" -" <menuitem action='Square'/>" -" <menuitem action='Rectangle'/>" -" <menuitem action='Oval'/>" -" </menu>" -" <menuitem action='Bold'/>" -" </menu>" -" <menu action='HelpMenu'>" -" <menuitem action='About'/>" -" </menu>" -" </menubar>" -" <toolbar name='ToolBar'>" -" <toolitem action='Open'>" -" <menu action='OpenMenu'>" -" <menuitem action='File1'/>" -" </menu>" -" </toolitem>" -" <toolitem action='Quit'/>" -" </toolbar>" -"</ui>"; - -static void -update_statusbar (GtkTextBuffer *buffer, - GtkStatusbar *statusbar) -{ - gchar *msg; - gint row, col; - gint count; - GtkTextIter iter; - - gtk_statusbar_pop (statusbar, 0); /* clear any previous message, - * underflow is allowed - */ - - count = gtk_text_buffer_get_char_count (buffer); - - gtk_text_buffer_get_iter_at_mark (buffer, - &iter, - gtk_text_buffer_get_insert (buffer)); - - row = gtk_text_iter_get_line (&iter); - col = gtk_text_iter_get_line_offset (&iter); - - msg = g_strdup_printf ("Cursor at row %d column %d - %d chars in document", - row, col, count); - - gtk_statusbar_push (statusbar, 0, msg); - - g_free (msg); -} - -static void -mark_set_callback (GtkTextBuffer *buffer, - const GtkTextIter *new_location, - GtkTextMark *mark, - gpointer data) -{ - update_statusbar (buffer, GTK_STATUSBAR (data)); -} - -GtkWidget * -do_appwindow (GtkWidget *do_widget) -{ - if (!window) - { - GtkWidget *table; - GtkWidget *statusbar; - GtkWidget *contents; - GtkWidget *sw; - GtkWidget *bar; - GtkTextBuffer *buffer; - GtkActionGroup *action_group; - GtkAction *open_action; - GtkUIManager *merge; - GError *error = NULL; - - /* Create the toplevel window - */ - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (do_widget)); - gtk_window_set_title (GTK_WINDOW (window), "Application Window"); - gtk_window_set_icon_name (GTK_WINDOW (window), "document-open"); - - /* NULL window variable when window is closed */ - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), - &window); - - table = gtk_grid_new (); - - gtk_container_add (GTK_CONTAINER (window), table); - - /* Create the menubar and toolbar - */ - - action_group = gtk_action_group_new ("AppWindowActions"); - open_action = g_object_new (tool_menu_action_get_type (), - "name", "Open", - "label", "_Open", - "tooltip", "Open a file", - "stock-id", GTK_STOCK_OPEN, - NULL); - gtk_action_group_add_action (action_group, open_action); - g_object_unref (open_action); - gtk_action_group_add_actions (action_group, - entries, n_entries, - window); - gtk_action_group_add_toggle_actions (action_group, - toggle_entries, n_toggle_entries, - NULL); - gtk_action_group_add_radio_actions (action_group, - color_entries, n_color_entries, - COLOR_RED, - G_CALLBACK (activate_radio_action), - NULL); - gtk_action_group_add_radio_actions (action_group, - shape_entries, n_shape_entries, - SHAPE_SQUARE, - G_CALLBACK (activate_radio_action), - NULL); - - merge = gtk_ui_manager_new (); - g_object_set_data_full (G_OBJECT (window), "ui-manager", merge, - g_object_unref); - gtk_ui_manager_insert_action_group (merge, action_group, 0); - gtk_window_add_accel_group (GTK_WINDOW (window), - gtk_ui_manager_get_accel_group (merge)); - - if (!gtk_ui_manager_add_ui_from_string (merge, ui_info, -1, &error)) - { - g_message ("building menus failed: %s", error->message); - g_error_free (error); - } - - bar = gtk_ui_manager_get_widget (merge, "/MenuBar"); - gtk_widget_show (bar); - gtk_widget_set_halign (bar, GTK_ALIGN_FILL); - gtk_grid_attach (GTK_GRID (table), bar, 0, 0, 1, 1); - - bar = gtk_ui_manager_get_widget (merge, "/ToolBar"); - gtk_widget_show (bar); - gtk_widget_set_halign (bar, GTK_ALIGN_FILL); - gtk_grid_attach (GTK_GRID (table), bar, 0, 1, 1, 1); - - /* Create document - */ - - infobar = gtk_info_bar_new (); - gtk_widget_set_no_show_all (infobar, TRUE); - messagelabel = gtk_label_new (""); - gtk_widget_show (messagelabel); - gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar))), - messagelabel, - TRUE, TRUE, 0); - gtk_info_bar_add_button (GTK_INFO_BAR (infobar), - _("OK"), GTK_RESPONSE_OK); - g_signal_connect (infobar, "response", - G_CALLBACK (gtk_widget_hide), NULL); - - gtk_widget_set_halign (infobar, GTK_ALIGN_FILL); - gtk_grid_attach (GTK_GRID (table), infobar, 0, 2, 1, 1); - - sw = gtk_scrolled_window_new (NULL, NULL); - - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), - GTK_SHADOW_IN); - - gtk_widget_set_halign (sw, GTK_ALIGN_FILL); - gtk_widget_set_valign (sw, GTK_ALIGN_FILL); - gtk_widget_set_hexpand (sw, TRUE); - gtk_widget_set_vexpand (sw, TRUE); - gtk_grid_attach (GTK_GRID (table), sw, 0, 3, 1, 1); - - gtk_window_set_default_size (GTK_WINDOW (window), - 200, 200); - - contents = gtk_text_view_new (); - gtk_widget_grab_focus (contents); - - gtk_container_add (GTK_CONTAINER (sw), - contents); - - /* Create statusbar */ - - statusbar = gtk_statusbar_new (); - gtk_widget_set_halign (sw, GTK_ALIGN_FILL); - gtk_grid_attach (GTK_GRID (table), statusbar, 0, 4, 1, 1); - - /* Show text widget info in the statusbar */ - buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (contents)); - - g_signal_connect_object (buffer, - "changed", - G_CALLBACK (update_statusbar), - statusbar, - 0); - - g_signal_connect_object (buffer, - "mark_set", /* cursor moved */ - G_CALLBACK (mark_set_callback), - statusbar, - 0); - - update_statusbar (buffer, GTK_STATUSBAR (statusbar)); - } - - if (!gtk_widget_get_visible (window)) - { - gtk_widget_show_all (window); - } - else - { - gtk_widget_destroy (window); - window = NULL; - infobar = NULL; - messagelabel = NULL; - } - - return window; -} diff --git a/demos/gtk-demo/ui_manager.c b/demos/gtk-demo/ui_manager.c deleted file mode 100644 index dc597fee74..0000000000 --- a/demos/gtk-demo/ui_manager.c +++ /dev/null @@ -1,229 +0,0 @@ -/* UI Manager - * - * The GtkUIManager object allows the easy creation of menus - * from an array of actions and a description of the menu hierarchy. - */ - -#include <gtk/gtk.h> - -static void -activate_action (GtkAction *action) -{ - g_message ("Action \"%s\" activated", gtk_action_get_name (action)); -} - -static void -activate_radio_action (GtkAction *action, GtkRadioAction *current) -{ - g_message ("Radio action \"%s\" selected", - gtk_action_get_name (GTK_ACTION (current))); -} - -static GtkActionEntry entries[] = { - { "FileMenu", NULL, "_File" }, /* name, stock id, label */ - { "PreferencesMenu", NULL, "_Preferences" }, /* name, stock id, label */ - { "ColorMenu", NULL, "_Color" }, /* name, stock id, label */ - { "ShapeMenu", NULL, "_Shape" }, /* name, stock id, label */ - { "HelpMenu", NULL, "_Help" }, /* name, stock id, label */ - { "New", GTK_STOCK_NEW, /* name, stock id */ - "_New", "<control>N", /* label, accelerator */ - "Create a new file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "Open", GTK_STOCK_OPEN, /* name, stock id */ - "_Open","<control>O", /* label, accelerator */ - "Open a file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "Save", GTK_STOCK_SAVE, /* name, stock id */ - "_Save","<control>S", /* label, accelerator */ - "Save current file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "SaveAs", GTK_STOCK_SAVE, /* name, stock id */ - "Save _As...", NULL, /* label, accelerator */ - "Save to a file", /* tooltip */ - G_CALLBACK (activate_action) }, - { "Quit", GTK_STOCK_QUIT, /* name, stock id */ - "_Quit", "<control>Q", /* label, accelerator */ - "Quit", /* tooltip */ - G_CALLBACK (activate_action) }, - { "About", NULL, /* name, stock id */ - "_About", "<control>A", /* label, accelerator */ - "About", /* tooltip */ - G_CALLBACK (activate_action) }, -}; -static guint n_entries = G_N_ELEMENTS (entries); - - -static GtkToggleActionEntry toggle_entries[] = { - { "Bold", GTK_STOCK_BOLD, /* name, stock id */ - "_Bold", "<control>B", /* label, accelerator */ - "Bold", /* tooltip */ - G_CALLBACK (activate_action), - TRUE }, /* is_active */ -}; -static guint n_toggle_entries = G_N_ELEMENTS (toggle_entries); - -enum { - COLOR_RED, - COLOR_GREEN, - COLOR_BLUE -}; - -static GtkRadioActionEntry color_entries[] = { - { "Red", NULL, /* name, stock id */ - "_Red", "<control>R", /* label, accelerator */ - "Blood", COLOR_RED }, /* tooltip, value */ - { "Green", NULL, /* name, stock id */ - "_Green", "<control>G", /* label, accelerator */ - "Grass", COLOR_GREEN }, /* tooltip, value */ - { "Blue", NULL, /* name, stock id */ - "_Blue", "<control>B", /* label, accelerator */ - "Sky", COLOR_BLUE }, /* tooltip, value */ -}; -static guint n_color_entries = G_N_ELEMENTS (color_entries); - -enum { - SHAPE_SQUARE, - SHAPE_RECTANGLE, - SHAPE_OVAL -}; - -static GtkRadioActionEntry shape_entries[] = { - { "Square", NULL, /* name, stock id */ - "_Square", "<control>S", /* label, accelerator */ - "Square", SHAPE_SQUARE }, /* tooltip, value */ - { "Rectangle", NULL, /* name, stock id */ - "_Rectangle", "<control>R", /* label, accelerator */ - "Rectangle", SHAPE_RECTANGLE }, /* tooltip, value */ - { "Oval", NULL, /* name, stock id */ - "_Oval", "<control>O", /* label, accelerator */ - "Egg", SHAPE_OVAL }, /* tooltip, value */ -}; -static guint n_shape_entries = G_N_ELEMENTS (shape_entries); - -static const gchar *ui_info = -"<ui>" -" <menubar name='MenuBar'>" -" <menu action='FileMenu'>" -" <menuitem action='New'/>" -" <menuitem action='Open'/>" -" <menuitem action='Save'/>" -" <menuitem action='SaveAs'/>" -" <separator/>" -" <menuitem action='Quit'/>" -" </menu>" -" <menu action='PreferencesMenu'>" -" <menu action='ColorMenu'>" -" <menuitem action='Red'/>" -" <menuitem action='Green'/>" -" <menuitem action='Blue'/>" -" </menu>" -" <menu action='ShapeMenu'>" -" <menuitem action='Square'/>" -" <menuitem action='Rectangle'/>" -" <menuitem action='Oval'/>" -" </menu>" -" <menuitem action='Bold'/>" -" </menu>" -" <menu action='HelpMenu'>" -" <menuitem action='About'/>" -" </menu>" -" </menubar>" -" <toolbar name='ToolBar'>" -" <toolitem action='Open'/>" -" <toolitem action='Quit'/>" -" </toolbar>" -"</ui>"; - -GtkWidget * -do_ui_manager (GtkWidget *do_widget) -{ - static GtkWidget *window = NULL; - - if (!window) - { - GtkWidget *box1; - GtkWidget *box2; - GtkWidget *separator; - GtkWidget *label; - GtkWidget *button; - GtkUIManager *ui; - GtkActionGroup *actions; - GError *error = NULL; - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_screen (GTK_WINDOW (window), - gtk_widget_get_screen (do_widget)); - - g_signal_connect (window, "destroy", - G_CALLBACK (gtk_widget_destroyed), &window); - g_signal_connect (window, "delete-event", - G_CALLBACK (gtk_true), NULL); - - actions = gtk_action_group_new ("Actions"); - gtk_action_group_add_actions (actions, entries, n_entries, NULL); - gtk_action_group_add_toggle_actions (actions, - toggle_entries, n_toggle_entries, - NULL); - gtk_action_group_add_radio_actions (actions, - color_entries, n_color_entries, - COLOR_RED, - G_CALLBACK (activate_radio_action), - NULL); - gtk_action_group_add_radio_actions (actions, - shape_entries, n_shape_entries, - SHAPE_OVAL, - G_CALLBACK (activate_radio_action), - NULL); - - ui = gtk_ui_manager_new (); - gtk_ui_manager_insert_action_group (ui, actions, 0); - g_object_unref (actions); - gtk_window_add_accel_group (GTK_WINDOW (window), - gtk_ui_manager_get_accel_group (ui)); - gtk_window_set_title (GTK_WINDOW (window), "UI Manager"); - gtk_container_set_border_width (GTK_CONTAINER (window), 0); - - if (!gtk_ui_manager_add_ui_from_string (ui, ui_info, -1, &error)) - { - g_message ("building menus failed: %s", error->message); - g_error_free (error); - } - - box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add (GTK_CONTAINER (window), box1); - - gtk_box_pack_start (GTK_BOX (box1), - gtk_ui_manager_get_widget (ui, "/MenuBar"), - FALSE, FALSE, 0); - - label = gtk_label_new ("Type\n<alt>\nto start"); - gtk_widget_set_size_request (label, 200, 200); - gtk_widget_set_halign (label, GTK_ALIGN_CENTER); - gtk_widget_set_valign (label, GTK_ALIGN_CENTER); - gtk_box_pack_start (GTK_BOX (box1), label, TRUE, TRUE, 0); - - separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); - gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); - - box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); - gtk_container_set_border_width (GTK_CONTAINER (box2), 10); - gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0); - - button = gtk_button_new_with_label ("close"); - g_signal_connect_swapped (button, "clicked", - G_CALLBACK (gtk_widget_destroy), window); - gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0); - gtk_widget_set_can_default (button, TRUE); - gtk_widget_grab_default (button); - - gtk_widget_show_all (window); - g_object_unref (ui); - } - else - { - gtk_widget_destroy (window); - window = NULL; - } - - return window; -} |