From 3f279bba1b058c39370bef91805463fb5df902b3 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 17 Jan 2020 16:35:28 -0300 Subject: [PATCH] Refactorin window actions. --- src/include/pw3270/actions.h | 2 +- src/objects/actions/abstract.c | 4 ++-- src/objects/application/actions/window.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- src/objects/application/application.c | 5 ++++- src/objects/application/private.h | 7 +++---- 5 files changed, 54 insertions(+), 12 deletions(-) diff --git a/src/include/pw3270/actions.h b/src/include/pw3270/actions.h index 8781663..086cdb2 100644 --- a/src/include/pw3270/actions.h +++ b/src/include/pw3270/actions.h @@ -82,7 +82,7 @@ } PW3270ActionClass; GType PW3270Action_get_type(void) G_GNUC_CONST; - PW3270Action * pw3270action_new(); + PW3270Action * pw3270_action_new(); PW3270Action * pw3270_dialog_action_new(GtkWidget * (*factory)(PW3270Action *action, GtkApplication *application)); // diff --git a/src/objects/actions/abstract.c b/src/objects/actions/abstract.c index 6d92452..343faf0 100644 --- a/src/objects/actions/abstract.c +++ b/src/objects/actions/abstract.c @@ -249,8 +249,8 @@ // // Action methods. // - GAction * pw3270_action_new() { - return G_ACTION(g_object_new(PW3270_TYPE_ACTION, NULL)); + PW3270Action * pw3270_action_new() { + return PW3270_ACTION(g_object_new(PW3270_TYPE_ACTION, NULL)); } GdkPixbuf * pw3270_action_get_pixbuf(GAction *action, GtkIconSize icon_size, GtkIconLookupFlags flags) { diff --git a/src/objects/application/actions/window.c b/src/objects/application/actions/window.c index ead5c67..cfc500f 100644 --- a/src/objects/application/actions/window.c +++ b/src/objects/application/actions/window.c @@ -33,9 +33,9 @@ #include "../private.h" #include + #include - - void pw3270_application_quit_activated(GSimpleAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), gpointer G_GNUC_UNUSED(application)) { + static void quit_activated(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkApplication *application) { g_print("Exiting application\n"); @@ -56,16 +56,56 @@ } - void pw3270_application_new_tab_activated(GSimpleAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), gpointer application) { + GAction * pw3270_quit_action_new() { + + PW3270Action * action = pw3270_action_new(); + + action->name = "quit"; + action->label = _( "Quit" ); + action->tooltip = _( "Quit application" ); + action->icon_name = "gtk-quit"; + action->activate = quit_activated; + + return G_ACTION(action); + } + + static void new_tab_activated(GAction *action, GVariant *parameter, GtkApplication *application) { debug("%s",__FUNCTION__); pw3270_application_window_new_tab(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))), NULL); } - void pw3270_application_new_window_activated(GSimpleAction G_GNUC_UNUSED(* action), GVariant G_GNUC_UNUSED(*parameter), gpointer application) { + GAction * pw3270_new_tab_action_new() { + + PW3270Action * action = pw3270_action_new(); + + action->name = "new.tab"; + action->label = _( "New tab" ); + action->tooltip = _( "New tab with default session" ); + action->icon_name = "tab-new"; + action->activate = new_tab_activated; + + return G_ACTION(action); + } + + static void new_window_activated(GAction *action, GVariant *parameter, GtkApplication *application) { debug("%s",__FUNCTION__); g_application_activate(application); } + + GAction * pw3270_new_window_action_new() { + + PW3270Action * action = pw3270_action_new(); + + action->name = "new.window"; + action->label = _( "New window" ); + action->tooltip = _( "New window with default session" ); + action->icon_name = "window-new"; + action->activate = new_window_activated; + + return G_ACTION(action); + } + diff --git a/src/objects/application/application.c b/src/objects/application/application.c index b6174b7..162afcc 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -378,7 +378,10 @@ GAction * actions[] = { pw3270_about_action_new(), - pw3270_preferences_action_new() + pw3270_preferences_action_new(), + pw3270_new_tab_action_new(), + pw3270_new_window_action_new(), + pw3270_quit_action_new() }; for(ix = 0; ix < G_N_ELEMENTS(actions); ix++) { diff --git a/src/objects/application/private.h b/src/objects/application/private.h index d4c24ff..5adad13 100644 --- a/src/objects/application/private.h +++ b/src/objects/application/private.h @@ -52,12 +52,11 @@ // Actions G_GNUC_INTERNAL GAction * pw3270_about_action_new(); G_GNUC_INTERNAL GAction * pw3270_preferences_action_new(); + G_GNUC_INTERNAL GAction * pw3270_new_tab_action_new(); + G_GNUC_INTERNAL GAction * pw3270_new_window_action_new(); + G_GNUC_INTERNAL GAction * pw3270_quit_action_new(); G_GNUC_INTERNAL void pw3270_application_generic_activated(GSimpleAction * action, GVariant *parameter, gpointer application); - G_GNUC_INTERNAL void pw3270_application_quit_activated(GSimpleAction * action, GVariant *parameter, gpointer application); - G_GNUC_INTERNAL void pw3270_application_new_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application); - G_GNUC_INTERNAL void pw3270_application_new_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application); - G_GNUC_INTERNAL void pw3270_application_preferences_activated(GSimpleAction * action, GVariant *parameter, gpointer application); G_GNUC_INTERNAL void pw3270_application_open_activated(GSimpleAction * action, GVariant *parameter, gpointer application); G_GNUC_INTERNAL void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application); -- libgit2 0.21.2