Commit 3f279bba1b058c39370bef91805463fb5df902b3
1 parent
4be60cbe
Exists in
master
and in
4 other branches
Refactorin window actions.
Showing
5 changed files
with
54 additions
and
12 deletions
Show diff stats
src/include/pw3270/actions.h
... | ... | @@ -82,7 +82,7 @@ |
82 | 82 | } PW3270ActionClass; |
83 | 83 | |
84 | 84 | GType PW3270Action_get_type(void) G_GNUC_CONST; |
85 | - PW3270Action * pw3270action_new(); | |
85 | + PW3270Action * pw3270_action_new(); | |
86 | 86 | PW3270Action * pw3270_dialog_action_new(GtkWidget * (*factory)(PW3270Action *action, GtkApplication *application)); |
87 | 87 | |
88 | 88 | // | ... | ... |
src/objects/actions/abstract.c
... | ... | @@ -249,8 +249,8 @@ |
249 | 249 | // |
250 | 250 | // Action methods. |
251 | 251 | // |
252 | - GAction * pw3270_action_new() { | |
253 | - return G_ACTION(g_object_new(PW3270_TYPE_ACTION, NULL)); | |
252 | + PW3270Action * pw3270_action_new() { | |
253 | + return PW3270_ACTION(g_object_new(PW3270_TYPE_ACTION, NULL)); | |
254 | 254 | } |
255 | 255 | |
256 | 256 | GdkPixbuf * pw3270_action_get_pixbuf(GAction *action, GtkIconSize icon_size, GtkIconLookupFlags flags) { | ... | ... |
src/objects/application/actions/window.c
... | ... | @@ -33,9 +33,9 @@ |
33 | 33 | |
34 | 34 | #include "../private.h" |
35 | 35 | #include <pw3270/application.h> |
36 | + #include <pw3270/actions.h> | |
36 | 37 | |
37 | - | |
38 | - void pw3270_application_quit_activated(GSimpleAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), gpointer G_GNUC_UNUSED(application)) { | |
38 | + static void quit_activated(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkApplication *application) { | |
39 | 39 | |
40 | 40 | g_print("Exiting application\n"); |
41 | 41 | |
... | ... | @@ -56,16 +56,56 @@ |
56 | 56 | |
57 | 57 | } |
58 | 58 | |
59 | - void pw3270_application_new_tab_activated(GSimpleAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), gpointer application) { | |
59 | + GAction * pw3270_quit_action_new() { | |
60 | + | |
61 | + PW3270Action * action = pw3270_action_new(); | |
62 | + | |
63 | + action->name = "quit"; | |
64 | + action->label = _( "Quit" ); | |
65 | + action->tooltip = _( "Quit application" ); | |
66 | + action->icon_name = "gtk-quit"; | |
67 | + action->activate = quit_activated; | |
68 | + | |
69 | + return G_ACTION(action); | |
70 | + } | |
71 | + | |
72 | + static void new_tab_activated(GAction *action, GVariant *parameter, GtkApplication *application) { | |
60 | 73 | |
61 | 74 | debug("%s",__FUNCTION__); |
62 | 75 | pw3270_application_window_new_tab(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))), NULL); |
63 | 76 | |
64 | 77 | } |
65 | 78 | |
66 | - void pw3270_application_new_window_activated(GSimpleAction G_GNUC_UNUSED(* action), GVariant G_GNUC_UNUSED(*parameter), gpointer application) { | |
79 | + GAction * pw3270_new_tab_action_new() { | |
80 | + | |
81 | + PW3270Action * action = pw3270_action_new(); | |
82 | + | |
83 | + action->name = "new.tab"; | |
84 | + action->label = _( "New tab" ); | |
85 | + action->tooltip = _( "New tab with default session" ); | |
86 | + action->icon_name = "tab-new"; | |
87 | + action->activate = new_tab_activated; | |
88 | + | |
89 | + return G_ACTION(action); | |
90 | + } | |
91 | + | |
92 | + static void new_window_activated(GAction *action, GVariant *parameter, GtkApplication *application) { | |
67 | 93 | |
68 | 94 | debug("%s",__FUNCTION__); |
69 | 95 | g_application_activate(application); |
70 | 96 | |
71 | 97 | } |
98 | + | |
99 | + GAction * pw3270_new_window_action_new() { | |
100 | + | |
101 | + PW3270Action * action = pw3270_action_new(); | |
102 | + | |
103 | + action->name = "new.window"; | |
104 | + action->label = _( "New window" ); | |
105 | + action->tooltip = _( "New window with default session" ); | |
106 | + action->icon_name = "window-new"; | |
107 | + action->activate = new_window_activated; | |
108 | + | |
109 | + return G_ACTION(action); | |
110 | + } | |
111 | + | ... | ... |
src/objects/application/application.c
... | ... | @@ -378,7 +378,10 @@ |
378 | 378 | |
379 | 379 | GAction * actions[] = { |
380 | 380 | pw3270_about_action_new(), |
381 | - pw3270_preferences_action_new() | |
381 | + pw3270_preferences_action_new(), | |
382 | + pw3270_new_tab_action_new(), | |
383 | + pw3270_new_window_action_new(), | |
384 | + pw3270_quit_action_new() | |
382 | 385 | }; |
383 | 386 | |
384 | 387 | for(ix = 0; ix < G_N_ELEMENTS(actions); ix++) { | ... | ... |
src/objects/application/private.h
... | ... | @@ -52,12 +52,11 @@ |
52 | 52 | // Actions |
53 | 53 | G_GNUC_INTERNAL GAction * pw3270_about_action_new(); |
54 | 54 | G_GNUC_INTERNAL GAction * pw3270_preferences_action_new(); |
55 | + G_GNUC_INTERNAL GAction * pw3270_new_tab_action_new(); | |
56 | + G_GNUC_INTERNAL GAction * pw3270_new_window_action_new(); | |
57 | + G_GNUC_INTERNAL GAction * pw3270_quit_action_new(); | |
55 | 58 | |
56 | 59 | G_GNUC_INTERNAL void pw3270_application_generic_activated(GSimpleAction * action, GVariant *parameter, gpointer application); |
57 | - G_GNUC_INTERNAL void pw3270_application_quit_activated(GSimpleAction * action, GVariant *parameter, gpointer application); | |
58 | - G_GNUC_INTERNAL void pw3270_application_new_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application); | |
59 | - G_GNUC_INTERNAL void pw3270_application_new_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application); | |
60 | - G_GNUC_INTERNAL void pw3270_application_preferences_activated(GSimpleAction * action, GVariant *parameter, gpointer application); | |
61 | 60 | |
62 | 61 | G_GNUC_INTERNAL void pw3270_application_open_activated(GSimpleAction * action, GVariant *parameter, gpointer application); |
63 | 62 | G_GNUC_INTERNAL void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application); | ... | ... |