diff --git a/demos/gtk-demo/builder.c b/demos/gtk-demo/builder.c index c4f03fecef..ee25820d1c 100644 --- a/demos/gtk-demo/builder.c +++ b/demos/gtk-demo/builder.c @@ -2,13 +2,15 @@ * * Demonstrates an interface loaded from a XML description. */ -#undef GTK_DISABLE_DEPRECATED + #include static GtkBuilder *builder; -G_MODULE_EXPORT void -quit_activate (GtkAction *action) +static void +quit_activate (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { GtkWidget *window; @@ -16,8 +18,10 @@ quit_activate (GtkAction *action) gtk_widget_destroy (window); } -G_MODULE_EXPORT void -about_activate (GtkAction *action) +static void +about_activate (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { GtkWidget *about_dlg; @@ -26,18 +30,29 @@ about_activate (GtkAction *action) gtk_widget_hide (about_dlg); } -G_MODULE_EXPORT void -help_activate (GtkAction *action) +static void +help_activate (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { g_print ("Help not available\n"); } +static GActionEntry win_entries[] = { + { "quit", quit_activate, NULL, NULL, NULL }, + { "about", about_activate, NULL, NULL, NULL }, + { "help", help_activate, NULL, NULL, NULL } +}; + GtkWidget * do_builder (GtkWidget *do_widget) { static GtkWidget *window = NULL; GError *err = NULL; GtkWidget *toolbar; + GActionGroup *actions; + GtkAccelGroup *accel_group; + GtkWidget *item; if (!window) { @@ -57,6 +72,49 @@ do_builder (GtkWidget *do_widget) toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "toolbar1")); gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar"); + actions = (GActionGroup*)g_simple_action_group_new (); + g_action_map_add_action_entries (G_ACTION_MAP (actions), + win_entries, G_N_ELEMENTS (win_entries), + NULL); + gtk_widget_insert_action_group (window, "win", actions); + accel_group = gtk_accel_group_new (); + gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); + + item = (GtkWidget*)gtk_builder_get_object (builder, "new_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_n, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "open_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_o, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "save_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "quit_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "copy_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_c, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "cut_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_x, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "paste_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_v, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "help_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_F1, 0, GTK_ACCEL_VISIBLE); + + item = (GtkWidget*)gtk_builder_get_object (builder, "about_item"); + gtk_widget_add_accelerator (item, "activate", accel_group, + GDK_KEY_F7, 0, GTK_ACCEL_VISIBLE); } if (!gtk_widget_get_visible (window)) diff --git a/demos/gtk-demo/demo.ui b/demos/gtk-demo/demo.ui index e535c8dc35..4bfa641edf 100644 --- a/demos/gtk-demo/demo.ui +++ b/demos/gtk-demo/demo.ui @@ -1,264 +1,302 @@ - + + - - - - - - - - - - John - Doe - 25 - This is the John Doe row - - - Mary - Unknown - 50 - This is the Mary Unknown row - - - - + + + + + + + + + + John + Doe + 25 + This is the John Doe row + + + Mary + Unknown + 50 + This is the Mary Unknown row + + + + + GtkBuilder demo + gtk3-demo + + + + + + 250 + 440 + GtkBuilder demo + + + True - - - - Copy - Copy selected object into the clipboard - gtk-copy - - - - - Cut - Cut selected object into the clipboard - gtk-cut - - - - - EditMenu - _Edit - - - - - FileMenu - _File - - - - - New - Create a new file - gtk-new - - - - - Open - Open a file - gtk-open - - - - - Paste - Paste object from the Clipboard - gtk-paste - - - - - Quit - Quit the program - gtk-quit - - - - - - Save - True - Save a file - gtk-save - - - - - SaveAs - Save with a different name - gtk-save-as - - - - - HelpMenu - _Help - - - - - About - gtk-about - - - - - - - Help - gtk-help - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GtkBuilder demo - gtk3-demo - - - - - - 250 - 440 - GtkBuilder demo - - + + True + + + The menubar + + + + True - - + _File + True + + + + True - - - The menubar - - - - - False - - - - + _New + True + + + + True - - - The toolbar - - - - - False - 1 - + _Open + True + + + + + True + _Save + True + + + + + True + Save _As + True + + + + + True + + + + + True + _Quit + True + win.quit + + + - - - automatic - in - True - automatic - - - True - liststore1 - 3 - - - Name list - + + + + + True + _Edit + True + + + + + True + _Copy + True + + + + + True + _Cut + True + + + + + True + _Paste + True + + + + + + + + + True + _Help + True + + + + + True + _Help + True + win.help + + + + + True + _About + True + win.about + + + + + + + + + False + + + + + True + + + The toolbar + + + + + True + New + Create a new file + document-new + + + + + True + Open + Open a file + document-open + + + + + True + Save + Save a file + document-save + True + + + + + True + + + + + True + Copy + Copy selected object into the clipboard + edit-copy + + + + + True + Cut + Cut selected object into the clipboard + edit-cut + + + + + True + Paste + Paste object from the clipboard + edit-paste + + + + + 1 + False + + + + + in + True + + + True + liststore1 + 3 + + + Name list + A list of person with name, surname and age columns - - - - - Name - - - - 0 - - - - - - - Surname - - - - 1 - - - - - - - Age - - - - 2 - - - - - - - - - 2 - + - - True - - - False - 3 - + + Name + + + + 0 + + + - + + + Surname + + + + 1 + + + + + + + Age + + + + 2 + + + + + + + + + 2 + True + - + + + True + + + 3 + False + + + + +