Commit 92790c48459458fcea97a673f9c766722d212f74
1 parent
bb522ebf
Exists in
master
and in
4 other branches
Adjustments in dialog actions.
Showing
8 changed files
with
26 additions
and
63 deletions
Show diff stats
src/include/pw3270/actions.h
... | ... | @@ -193,7 +193,7 @@ |
193 | 193 | typedef struct _pw3270DialogAction pw3270DialogAction; |
194 | 194 | typedef struct _pw3270DialogActionClass pw3270DialogActionClass; |
195 | 195 | |
196 | - pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(GtkWidget *)); | |
196 | + pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(pw3270SimpleAction *action, GtkWidget *)); | |
197 | 197 | |
198 | 198 | // |
199 | 199 | // V3270 Property Action | ... | ... |
src/objects/actions/dialog.c
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 | pw3270SimpleAction parent; |
46 | 46 | |
47 | 47 | GtkWidget * dialog; |
48 | - GtkWidget * (*factory)(GtkWidget *); | |
48 | + GtkWidget * (*factory)(pw3270SimpleAction *, GtkWidget *); | |
49 | 49 | |
50 | 50 | }; |
51 | 51 | |
... | ... | @@ -82,7 +82,7 @@ |
82 | 82 | |
83 | 83 | } |
84 | 84 | |
85 | - pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(GtkWidget *)) { | |
85 | + pw3270SimpleAction * pw3270_dialog_action_new(GtkWidget * (*factory)(pw3270SimpleAction *, GtkWidget *)) { | |
86 | 86 | |
87 | 87 | pw3270DialogAction * action = (pw3270DialogAction *) g_object_new(PW3270_TYPE_DIALOG_ACTION, NULL); |
88 | 88 | action->factory = factory; |
... | ... | @@ -109,7 +109,7 @@ |
109 | 109 | if(action->dialog || !action->factory) |
110 | 110 | return; |
111 | 111 | |
112 | - action->dialog = action->factory(terminal); | |
112 | + action->dialog = action->factory((pw3270SimpleAction *) object, terminal); | |
113 | 113 | pw3270_action_notify_enabled(G_ACTION(action)); |
114 | 114 | |
115 | 115 | if(action->dialog) { | ... | ... |
src/objects/actions/save.c
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 | #include <pw3270/application.h> |
39 | 39 | |
40 | 40 | |
41 | - static GtkWidget * factory(GtkWidget *terminal); | |
41 | + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal); | |
42 | 42 | static void response(GtkWidget *dialog, gint response_id, GtkWidget *terminal); |
43 | 43 | |
44 | 44 | GAction * pw3270_action_save_session_as_new(void) { |
... | ... | @@ -46,19 +46,19 @@ |
46 | 46 | pw3270SimpleAction * action = pw3270_dialog_action_new(factory); |
47 | 47 | |
48 | 48 | action->parent.name = "save.session.as"; |
49 | - action->label = N_("Save As"); | |
49 | + action->label = _("Save As"); | |
50 | 50 | action->icon_name = "document-save-as"; |
51 | - action->tooltip = N_("Save session properties to file"); | |
51 | + action->tooltip = _("Save session properties"); | |
52 | 52 | |
53 | 53 | return G_ACTION(action); |
54 | 54 | |
55 | 55 | } |
56 | 56 | |
57 | - GtkWidget * factory(GtkWidget *terminal) { | |
57 | + GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal) { | |
58 | 58 | |
59 | 59 | GtkWidget * dialog = |
60 | 60 | gtk_file_chooser_dialog_new( |
61 | - _("Save session properties"), | |
61 | + action->tooltip, | |
62 | 62 | GTK_WINDOW(gtk_widget_get_toplevel(terminal)), |
63 | 63 | GTK_FILE_CHOOSER_ACTION_SAVE, |
64 | 64 | _("Save"), GTK_RESPONSE_OK, | ... | ... |
src/objects/application/actions/open.c
... | ... | @@ -63,7 +63,7 @@ |
63 | 63 | return filename; |
64 | 64 | } |
65 | 65 | |
66 | - void pw3270_application_open_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { | |
66 | + void pw3270_application_open_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer G_GNUC_UNUSED(application)) { | |
67 | 67 | |
68 | 68 | debug("%s",__FUNCTION__); |
69 | 69 | g_simple_action_set_enabled(action,FALSE); |
... | ... | @@ -71,22 +71,28 @@ |
71 | 71 | g_simple_action_set_enabled(action,TRUE); |
72 | 72 | } |
73 | 73 | |
74 | - void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { | |
74 | + void pw3270_application_open_tab_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer application) { | |
75 | 75 | |
76 | 76 | debug("%s",__FUNCTION__); |
77 | 77 | g_simple_action_set_enabled(action,FALSE); |
78 | 78 | g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new tab")); |
79 | 79 | |
80 | + if(session_file_name) { | |
81 | + pw3270_terminal_new(GTK_WIDGET(gtk_application_get_active_window(GTK_APPLICATION(application))), session_file_name); | |
82 | + } | |
80 | 83 | |
81 | 84 | g_simple_action_set_enabled(action,TRUE); |
82 | 85 | } |
83 | 86 | |
84 | - void pw3270_application_open_window_activated(GSimpleAction * action, GVariant *parameter, gpointer application) { | |
87 | + void pw3270_application_open_window_activated(GSimpleAction * action, GVariant G_GNUC_UNUSED(*parameter), gpointer application) { | |
85 | 88 | |
86 | 89 | debug("%s",__FUNCTION__); |
87 | 90 | g_simple_action_set_enabled(action,FALSE); |
88 | 91 | g_autofree gchar * session_file_name = get_session_file_name(GTK_APPLICATION(application),_("Open session in new window")); |
89 | 92 | |
93 | + if(session_file_name) { | |
94 | +// pw3270_terminal_new(pw3270_application_window_new(GTK_APPLICATION(application)), session_file_name); | |
95 | + } | |
90 | 96 | |
91 | 97 | g_simple_action_set_enabled(action,TRUE); |
92 | 98 | } | ... | ... |
src/objects/application/application.c
... | ... | @@ -310,49 +310,6 @@ |
310 | 310 | |
311 | 311 | } |
312 | 312 | |
313 | - /* | |
314 | - // Create conditional actions. | |
315 | - static const struct { | |
316 | - const gchar * label; | |
317 | - const gchar * tooltip; | |
318 | - const gchar * action_name; | |
319 | - const gchar * icon_name; | |
320 | - const gchar * property_name; | |
321 | - void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); | |
322 | - } conditional_actions[] = { | |
323 | - { | |
324 | - .label = N_("Save copy"), | |
325 | - .action_name = "save.copy", | |
326 | - .property_name = "has_copy", | |
327 | - .activate = pw3270_application_save_copy_activated | |
328 | - }, | |
329 | - { | |
330 | - .label = N_("Print copy"), | |
331 | - .action_name = "print.copy", | |
332 | - .icon_name = "printer", | |
333 | - .property_name = "has_copy", | |
334 | - .activate = pw3270_application_print_copy_activated | |
335 | - } | |
336 | - }; | |
337 | - | |
338 | - for(ix = 0; ix < G_N_ELEMENTS(conditional_actions); ix++) { | |
339 | - | |
340 | - pw3270SimpleAction * action = PW3270_SIMPLE_ACTION(v3270_conditional_action_new(terminal,conditional_actions[ix].property_name)); | |
341 | - | |
342 | - action->parent.name = conditional_actions[ix].action_name; | |
343 | - action->label = conditional_actions[ix].label; | |
344 | - action->tooltip = conditional_actions[ix].tooltip; | |
345 | - action->icon_name = conditional_actions[ix].icon_name; | |
346 | - PW3270_ACTION(action)->activate = conditional_actions[ix].activate; | |
347 | - | |
348 | - g_action_map_add_action( | |
349 | - G_ACTION_MAP(window), | |
350 | - G_ACTION(action) | |
351 | - ); | |
352 | - | |
353 | - } | |
354 | - */ | |
355 | - | |
356 | 313 | // Present the new window |
357 | 314 | pw3270_window_set_current_page(window,0); |
358 | 315 | gtk_window_present(GTK_WINDOW(window)); | ... | ... |
src/objects/window/actions/hostproperties.c
... | ... | @@ -33,7 +33,7 @@ |
33 | 33 | #include <v3270/settings.h> |
34 | 34 | #include <v3270/dialogs.h> |
35 | 35 | |
36 | - static GtkWidget * factory(GtkWidget *terminal); | |
36 | + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal); | |
37 | 37 | |
38 | 38 | GAction * pw3270_action_host_properties_new(void) { |
39 | 39 | |
... | ... | @@ -47,7 +47,7 @@ |
47 | 47 | return G_ACTION(action); |
48 | 48 | } |
49 | 49 | |
50 | - GtkWidget * factory(GtkWidget *terminal) { | |
50 | + GtkWidget * factory(pw3270SimpleAction G_GNUC_UNUSED(*action), GtkWidget *terminal) { | |
51 | 51 | |
52 | 52 | GtkWidget * dialog = v3270_settings_dialog_new(); |
53 | 53 | V3270Settings * settings = GTK_V3270_SETTINGS(v3270_host_settings_new()); | ... | ... |
src/objects/window/actions/sessionproperties.c
... | ... | @@ -34,7 +34,7 @@ |
34 | 34 | #include <v3270/dialogs.h> |
35 | 35 | #include <v3270/colorscheme.h> |
36 | 36 | |
37 | - static GtkWidget * factory(GtkWidget *terminal); | |
37 | + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal); | |
38 | 38 | |
39 | 39 | GAction * pw3270_action_session_properties_new(void) { |
40 | 40 | |
... | ... | @@ -42,20 +42,20 @@ |
42 | 42 | |
43 | 43 | action->parent.name = "session.properties"; |
44 | 44 | action->icon_name = "preferences-other"; |
45 | - action->label = N_("Session properties"); | |
45 | + action->label = _("Session properties"); | |
46 | 46 | |
47 | 47 | return G_ACTION(action); |
48 | 48 | |
49 | 49 | |
50 | 50 | } |
51 | 51 | |
52 | - GtkWidget * factory(GtkWidget *terminal) { | |
52 | + GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal) { | |
53 | 53 | |
54 | 54 | size_t ix; |
55 | 55 | |
56 | 56 | GtkWidget * dialog = v3270_settings_dialog_new(); |
57 | 57 | |
58 | - gtk_window_set_title(GTK_WINDOW(dialog), _("Session properties")); | |
58 | + gtk_window_set_title(GTK_WINDOW(dialog), action->label); | |
59 | 59 | |
60 | 60 | // Add settings pages. |
61 | 61 | GtkWidget * elements[] = { | ... | ... |
src/objects/window/actions/setcolors.c
... | ... | @@ -34,7 +34,7 @@ |
34 | 34 | #include <v3270/dialogs.h> |
35 | 35 | #include <v3270/colorscheme.h> |
36 | 36 | |
37 | - static GtkWidget * factory(GtkWidget *terminal); | |
37 | + static GtkWidget * factory(pw3270SimpleAction *action, GtkWidget *terminal); | |
38 | 38 | |
39 | 39 | GAction * pw3270_set_color_action_new(void) { |
40 | 40 | |
... | ... | @@ -48,7 +48,7 @@ |
48 | 48 | |
49 | 49 | } |
50 | 50 | |
51 | - GtkWidget * factory(GtkWidget *terminal) { | |
51 | + GtkWidget * factory(pw3270SimpleAction G_GNUC_UNUSED(*action), GtkWidget *terminal) { | |
52 | 52 | |
53 | 53 | return v3270_settings_get_edit_dialog(v3270_color_settings_new(),terminal,FALSE); |
54 | 54 | ... | ... |