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); | ... | ... |