diff options
Diffstat (limited to 'tests/testmerge.c')
-rw-r--r-- | tests/testmerge.c | 90 |
1 files changed, 49 insertions, 41 deletions
diff --git a/tests/testmerge.c b/tests/testmerge.c index 2bfd78601b..0b9e800716 100644 --- a/tests/testmerge.c +++ b/tests/testmerge.c @@ -2,11 +2,6 @@ #include <string.h> #include <gtk/gtk.h> -#ifndef _ -# define _(String) (String) -# define N_(String) (String) -#endif - struct { const gchar *filename; guint merge_id; } merge_ids[] = { { "merge-1.ui", 0 }, { "merge-2.ui", 0 }, @@ -44,43 +39,54 @@ toggle_action (GtkAction *action) } -static GtkActionGroupEntry entries[] = { - { "StockFileMenuAction", N_("_File"), NULL, NULL, NULL, NULL, NULL }, - { "StockEditMenuAction", N_("_Edit"), NULL, NULL, NULL, NULL, NULL }, - { "StockHelpMenuAction", N_("_Help"), NULL, NULL, NULL, NULL, NULL }, - { "Test", N_("Test"), NULL, NULL, NULL, NULL, NULL }, - - { "NewAction", NULL, GTK_STOCK_NEW, "<control>n", NULL, - G_CALLBACK (activate_action), NULL }, - { "New2Action", NULL, GTK_STOCK_NEW, "<control>m", NULL, - G_CALLBACK (activate_action), NULL }, - { "OpenAction", NULL, GTK_STOCK_OPEN, "<control>o", NULL, - G_CALLBACK (activate_action), NULL }, - { "QuitAction", NULL, GTK_STOCK_QUIT, "<control>q", NULL, - G_CALLBACK (gtk_main_quit), NULL }, - { "CutAction", NULL, GTK_STOCK_CUT, "<control>x", NULL, - G_CALLBACK (activate_action), NULL }, - { "CopyAction", NULL, GTK_STOCK_COPY, "<control>c", NULL, - G_CALLBACK (activate_action), NULL }, - { "PasteAction", NULL, GTK_STOCK_PASTE, "<control>v", NULL, - G_CALLBACK (activate_action), NULL }, - { "justify-left", NULL, GTK_STOCK_JUSTIFY_LEFT, "<control>L", - N_("Left justify the text"), - G_CALLBACK (toggle_action), NULL, GTK_ACTION_RADIO, NULL }, - { "justify-center", NULL, GTK_STOCK_JUSTIFY_CENTER, "<control>E", - N_("Center justify the text"), - G_CALLBACK (toggle_action), NULL, GTK_ACTION_RADIO, "justify-left" }, - { "justify-right", NULL, GTK_STOCK_JUSTIFY_RIGHT, "<control>R", - N_("Right justify the text"), - G_CALLBACK (toggle_action), NULL, GTK_ACTION_RADIO, "justify-left" }, - { "justify-fill", NULL, GTK_STOCK_JUSTIFY_FILL, "<control>J", - N_("Fill justify the text"), - G_CALLBACK (toggle_action), NULL, GTK_ACTION_RADIO, "justify-left" }, - { "AboutAction", N_("_About"), NULL, NULL, NULL, - G_CALLBACK (activate_action), NULL }, +static void +radio_action_changed (GtkAction *action, GtkRadioAction *current) +{ + g_message ("Action %s (type=%s) activated (active=%d) (value %d)", + gtk_action_get_name (GTK_ACTION (current)), + G_OBJECT_TYPE_NAME (GTK_ACTION (current)), + gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (current)), + gtk_radio_action_get_current_value (current)); +} + + +static GtkActionEntry entries[] = { + { "FileMenuAction", NULL, "_File" }, + { "EditMenuAction", NULL, "_Edit" }, + { "HelpMenuAction", NULL, "_Help" }, + { "JustifyMenuAction", NULL, "_Justify" }, + { "Test", NULL, "Test" }, + + { "QuitAction", GTK_STOCK_QUIT, NULL, "<control>q", NULL, G_CALLBACK (gtk_main_quit) }, + { "NewAction", GTK_STOCK_NEW, NULL, "<control>n", NULL, G_CALLBACK (activate_action) }, + { "New2Action", GTK_STOCK_NEW, NULL, "<control>m", NULL, G_CALLBACK (activate_action) }, + { "OpenAction", GTK_STOCK_OPEN, NULL, "<control>o", NULL, G_CALLBACK (activate_action) }, + { "CutAction", GTK_STOCK_CUT, NULL, "<control>x", NULL, G_CALLBACK (activate_action) }, + { "CopyAction", GTK_STOCK_COPY, NULL, "<control>c", NULL, G_CALLBACK (activate_action) }, + { "PasteAction", GTK_STOCK_PASTE, NULL, "<control>v", NULL, G_CALLBACK (activate_action) }, + { "AboutAction", NULL, "_About", NULL, NULL, G_CALLBACK (activate_action) }, }; static guint n_entries = G_N_ELEMENTS (entries); +enum { + JUSTIFY_LEFT, + JUSTIFY_CENTER, + JUSTIFY_RIGHT, + JUSTIFY_FILL +}; + +static GtkRadioActionEntry radio_entries[] = { + { "justify-left", GTK_STOCK_JUSTIFY_LEFT, NULL, "<control>L", + "Left justify the text", JUSTIFY_LEFT }, + { "justify-center", GTK_STOCK_JUSTIFY_CENTER, NULL, "<control>E", + "Center justify the text", JUSTIFY_CENTER }, + { "justify-right", GTK_STOCK_JUSTIFY_RIGHT, NULL, "<control>R", + "Right justify the text", JUSTIFY_RIGHT }, + { "justify-fill", GTK_STOCK_JUSTIFY_FILL, NULL, "<control>J", + "Fill justify the text", JUSTIFY_FILL }, +}; +static guint n_radio_entries = G_N_ELEMENTS (radio_entries); + static void add_widget (GtkUIManager *merge, GtkWidget *widget, @@ -322,7 +328,7 @@ area_press (GtkWidget *drawing_area, if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { - GtkWidget *menu = gtk_ui_manager_get_widget (merge, "/popups/FileMenu"); + GtkWidget *menu = gtk_ui_manager_get_widget (merge, "/FileMenu"); if (GTK_IS_MENU (menu)) { @@ -349,7 +355,9 @@ main (int argc, char **argv) gtk_init (&argc, &argv); action_group = gtk_action_group_new ("TestActions"); - gtk_action_group_add_actions (action_group, entries, n_entries); + gtk_action_group_add_actions (action_group, entries, n_entries, NULL); + gtk_action_group_add_radio_actions (action_group, radio_entries, n_radio_entries, + G_CALLBACK (radio_action_changed), NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), -1, 400); |