diff --git a/src/include/pw3270/application.h b/src/include/pw3270/application.h index 504687a..53f7e6f 100644 --- a/src/include/pw3270/application.h +++ b/src/include/pw3270/application.h @@ -71,6 +71,11 @@ gboolean pw3270_settings_set_int(const gchar *key, gint value); + + // Actions + void pw3270_application_print_copy_activated(GAction *action, GVariant *parameter, GtkWidget *terminal); + void pw3270_application_save_copy_activated(GAction *action, GVariant *parameter, GtkWidget *terminal); + G_END_DECLS diff --git a/src/objects/actions/abstract.c b/src/objects/actions/abstract.c index 515288f..27b953e 100644 --- a/src/objects/actions/abstract.c +++ b/src/objects/actions/abstract.c @@ -396,6 +396,7 @@ } void internal_activate(GAction *action, GVariant G_GNUC_UNUSED(*parameter), GtkWidget G_GNUC_UNUSED(*terminal)) { + debug("%s",__FUNCTION__); g_message("Action %s can't be activated",pw3270_action_get_name(action)); } diff --git a/src/objects/actions/print.c b/src/objects/actions/print.c index b3f9194..a21c67c 100644 --- a/src/objects/actions/print.c +++ b/src/objects/actions/print.c @@ -34,23 +34,22 @@ #include "private.h" #include + #include static void activate_print_screen(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { - debug("%s",__FUNCTION__); - + v3270_print_all(terminal,NULL); } static void activate_print_selected(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { - debug("%s",__FUNCTION__); - + v3270_print_selected(terminal,NULL); } - static void activate_print_copy(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { + void pw3270_application_print_copy_activated(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { debug("%s",__FUNCTION__); - + v3270_print_copy(terminal,NULL); } static void activate_print(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { diff --git a/src/objects/actions/save.c b/src/objects/actions/save.c index 16f9e56..f6e6d46 100644 --- a/src/objects/actions/save.c +++ b/src/objects/actions/save.c @@ -34,23 +34,21 @@ #include "private.h" #include + #include static void activate_save_screen(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { - debug("%s",__FUNCTION__); - + v3270_save_all(terminal,NULL,NULL); } static void activate_save_selected(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { - debug("%s",__FUNCTION__); - + v3270_save_selected(terminal,NULL,NULL); } - static void activate_save_copy(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { - + void pw3270_application_save_copy_activated(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { debug("%s",__FUNCTION__); - + v3270_save_copy(terminal,NULL,NULL); } static void activate_save(GAction G_GNUC_UNUSED(*action), GVariant G_GNUC_UNUSED(*parameter), GtkWidget *terminal) { diff --git a/src/objects/application/application.c b/src/objects/application/application.c index 9effc89..bd4de4f 100644 --- a/src/objects/application/application.c +++ b/src/objects/application/application.c @@ -305,16 +305,19 @@ const gchar * tooltip; const gchar * action_name; const gchar * property_name; + void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); } conditional_actions[] = { { .label = N_("Save copy"), .action_name = "save_copy", - .property_name = "has_copy" + .property_name = "has_copy", + .activate = pw3270_application_save_copy_activated }, { .label = N_("Print copy"), .action_name = "print_copy", - .property_name = "has_copy" + .property_name = "has_copy", + .activate = pw3270_application_print_copy_activated } }; @@ -325,6 +328,7 @@ action->parent.name = conditional_actions[ix].action_name; action->label = conditional_actions[ix].label; action->tooltip = conditional_actions[ix].tooltip; + PW3270_ACTION(action)->activate = conditional_actions[ix].activate; g_action_map_add_action( G_ACTION_MAP(window), diff --git a/src/objects/window/actions/sethost.c b/src/objects/window/actions/sethost.c index 8f4b13e..cc028e9 100644 --- a/src/objects/window/actions/sethost.c +++ b/src/objects/window/actions/sethost.c @@ -47,6 +47,7 @@ return G_ACTION(action); } + /* static void on_response(GtkWidget *dialog, gint response_id, GtkWidget *settings) { if(response_id == GTK_RESPONSE_APPLY) { @@ -65,6 +66,7 @@ gtk_widget_destroy(GTK_WIDGET(dialog)); } + */ GtkWidget * factory(GtkWidget *terminal) { -- libgit2 0.21.2