Commit 66ae11a5e06d9903a789f2287be487138ed0faa9
Exists in
master
and in
1 other branch
Merge branch 'master' into develop
Showing
11 changed files
with
253 additions
and
206 deletions
Show diff stats
.lgtm.yml
... | ... | @@ -5,10 +5,14 @@ extraction: |
5 | 5 | # Define settings for C/C++ analysis |
6 | 6 | ##################################### |
7 | 7 | cpp: |
8 | + configure: | |
9 | + command: | |
10 | + - NOCONFIGURE=1 ./autogen.sh | |
11 | + - ./configure --prefix=/usr --with-product-name="pw3270" | |
8 | 12 | prepare: |
9 | 13 | packages: |
10 | 14 | - gettext |
11 | - - git | |
15 | + - git | |
12 | 16 | - make |
13 | 17 | - autotools-dev |
14 | 18 | - autoconf | ... | ... |
src/dialogs/settings/accelerator.c
... | ... | @@ -112,7 +112,7 @@ |
112 | 112 | |
113 | 113 | static void V3270AcceleratorSettings_init(V3270AcceleratorSettings *widget) |
114 | 114 | { |
115 | - size_t ix; | |
115 | + //size_t ix; | |
116 | 116 | |
117 | 117 | // Create description list |
118 | 118 | GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); |
... | ... | @@ -144,7 +144,6 @@ |
144 | 144 | gtk_tree_view_set_enable_search(GTK_TREE_VIEW(view),TRUE); |
145 | 145 | gtk_tree_view_set_search_column(GTK_TREE_VIEW(view),1); |
146 | 146 | |
147 | - | |
148 | 147 | g_signal_connect(G_OBJECT(widget),"realize",G_CALLBACK(realize),view); |
149 | 148 | |
150 | 149 | gtk_widget_set_tooltip_markup(view,_("Keyboard accelerators")); |
... | ... | @@ -180,7 +179,7 @@ |
180 | 179 | NULL |
181 | 180 | ); |
182 | 181 | |
183 | - gtk_tree_view_column_set_min_width(column, 500); | |
182 | + gtk_tree_view_column_set_min_width(column, 100); | |
184 | 183 | gtk_tree_view_column_set_resizable(column, TRUE); |
185 | 184 | |
186 | 185 | gtk_tree_view_insert_column( |
... | ... | @@ -210,12 +209,13 @@ |
210 | 209 | NULL |
211 | 210 | ); |
212 | 211 | |
212 | + /* | |
213 | 213 | for(ix = 1; ix < 3; ix++) |
214 | 214 | { |
215 | 215 | column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), ix); |
216 | - gtk_tree_view_column_set_min_width(column, 200); | |
217 | 216 | gtk_tree_view_column_set_resizable(column, TRUE); |
218 | 217 | } |
218 | + */ | |
219 | 219 | |
220 | 220 | // Create scroller view |
221 | 221 | { |
... | ... | @@ -223,14 +223,13 @@ |
223 | 223 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(box),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); |
224 | 224 | gtk_container_add(GTK_CONTAINER(box),view); |
225 | 225 | |
226 | - /* | |
227 | - gtk_widget_set_vexpand(view,TRUE); | |
228 | - gtk_widget_set_hexpand(view,TRUE); | |
229 | - */ | |
230 | - | |
226 | + gtk_scrolled_window_set_propagate_natural_width(GTK_SCROLLED_WINDOW(box),TRUE); | |
227 | + //gtk_scrolled_window_set_propagate_natural_height(GTK_SCROLLED_WINDOW(box),TRUE); | |
231 | 228 | gtk_widget_set_vexpand(box,TRUE); |
232 | 229 | gtk_widget_set_hexpand(box,TRUE); |
233 | 230 | |
231 | + gtk_scrolled_window_set_min_content_width(GTK_SCROLLED_WINDOW(box),800); | |
232 | + //gtk_scrolled_window_set_min_content_height(GTK_SCROLLED_WINDOW(box),600); | |
234 | 233 | gtk_grid_attach(GTK_GRID(widget),box,0,0,10,10); |
235 | 234 | } |
236 | 235 | ... | ... |
src/dialogs/settings/dialog.c
1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
2 | + | |
1 | 3 | /* |
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | - * | |
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | - * | |
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | - * Free Software Foundation. | |
11 | - * | |
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | - * obter mais detalhes. | |
16 | - * | |
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
19 | - * St, Fifth Floor, Boston, MA 02110-1301 USA | |
20 | - * | |
21 | - * Este programa está nomeado como - e possui - linhas de código. | |
4 | + * Copyright (C) 2008 Banco do Brasil S.A. | |
22 | 5 | * |
23 | - * Contatos: | |
6 | + * This program is free software: you can redistribute it and/or modify | |
7 | + * it under the terms of the GNU Lesser General Public License as published | |
8 | + * by the Free Software Foundation, either version 3 of the License, or | |
9 | + * (at your option) any later version. | |
24 | 10 | * |
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
27 | 15 | * |
16 | + * You should have received a copy of the GNU Lesser General Public License | |
17 | + * along with this program. If not, see <https://www.gnu.org/licenses/>. | |
28 | 18 | */ |
29 | 19 | |
30 | 20 | #include "../private.h" |
... | ... | @@ -301,6 +291,11 @@ void v3270_settings_dialog_set_terminal_widget(GtkWidget *widget, GtkWidget *ter |
301 | 291 | g_message("No active page on settings dialog"); |
302 | 292 | } |
303 | 293 | |
294 | + gtk_window_set_transient_for( | |
295 | + GTK_WINDOW(widget), | |
296 | + GTK_WINDOW(gtk_widget_get_toplevel(terminal)) | |
297 | + ); | |
298 | + | |
304 | 299 | } |
305 | 300 | |
306 | 301 | void v3270_settings_dialog_set_has_subtitle(GtkWidget *widget, gboolean has_subtitle) |
... | ... | @@ -332,32 +327,6 @@ void v3270_setttings_dialog_response(GtkDialog *dialog, gint response_id, GtkWid |
332 | 327 | |
333 | 328 | } |
334 | 329 | |
335 | -void v3270_settings_popup_dialog(GtkWidget *widget, GtkWidget *terminal, gboolean modal) | |
336 | -{ | |
337 | - g_return_if_fail(GTK_IS_V3270(terminal) && GTK_IS_V3270_SETTINGS(widget)); | |
338 | - | |
339 | - GtkWidget * dialog = v3270_settings_dialog_new(); | |
340 | - V3270Settings * settings = GTK_V3270_SETTINGS(widget); | |
341 | - | |
342 | - v3270_settings_dialog_set_has_subtitle(dialog,FALSE); | |
343 | - | |
344 | - if(settings->title) | |
345 | - gtk_window_set_title(GTK_WINDOW(dialog),settings->title); | |
346 | - | |
347 | - gtk_container_add(GTK_CONTAINER(dialog), widget); | |
348 | - gtk_dialog_set_toplevel(dialog,terminal); | |
349 | - | |
350 | - gtk_window_set_modal(GTK_WINDOW(dialog),modal); | |
351 | - | |
352 | - v3270_settings_dialog_set_terminal_widget(dialog, terminal); | |
353 | - | |
354 | - g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); | |
355 | - g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),NULL); | |
356 | - | |
357 | - gtk_widget_show_all(dialog); | |
358 | - | |
359 | -} | |
360 | - | |
361 | 330 | GtkWidget * v3270_settings_get_edit_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal) { |
362 | 331 | |
363 | 332 | const gchar * title = GTK_V3270_SETTINGS(settings)->title; | ... | ... |
src/dialogs/settings/host.c
... | ... | @@ -588,6 +588,7 @@ LIB3270_EXPORT GtkWidget * v3270_host_select_new() |
588 | 588 | return v3270_host_settings_new(); |
589 | 589 | } |
590 | 590 | |
591 | +/* | |
591 | 592 | LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) |
592 | 593 | { |
593 | 594 | g_return_if_fail(GTK_IS_V3270(widget)); |
... | ... | @@ -633,6 +634,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) |
633 | 634 | gtk_widget_destroy(dialog); |
634 | 635 | |
635 | 636 | } |
637 | +*/ | |
636 | 638 | |
637 | 639 | static void apply(GtkWidget *w, GtkWidget *terminal) |
638 | 640 | { | ... | ... |
... | ... | @@ -0,0 +1,54 @@ |
1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
2 | + | |
3 | +/* | |
4 | + * Copyright (C) 2008 Banco do Brasil S.A. | |
5 | + * | |
6 | + * This program is free software: you can redistribute it and/or modify | |
7 | + * it under the terms of the GNU Lesser General Public License as published | |
8 | + * by the Free Software Foundation, either version 3 of the License, or | |
9 | + * (at your option) any later version. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License | |
17 | + * along with this program. If not, see <https://www.gnu.org/licenses/>. | |
18 | + */ | |
19 | + | |
20 | + #include "private.h" | |
21 | + #include <v3270/settings.h> | |
22 | + #include <v3270/tools.h> | |
23 | + | |
24 | + GtkWidget * v3270_settings_popup_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal) | |
25 | + { | |
26 | +#ifdef DEBUG | |
27 | + g_message("terminal=%d settings=%d",(int) GTK_IS_V3270(terminal), (int) GTK_IS_V3270_SETTINGS(settings)); | |
28 | +#endif // DEBUG | |
29 | + if( !(GTK_IS_V3270(terminal) && GTK_IS_V3270_SETTINGS(settings))) { | |
30 | + g_message("%s was called with invalid arguments",__FUNCTION__); | |
31 | + if(g_object_is_floating(settings)) { | |
32 | + g_object_ref_sink(settings); | |
33 | + } | |
34 | + g_object_unref(settings); | |
35 | + return; | |
36 | + } | |
37 | + | |
38 | + GtkWidget * dialog = v3270_settings_dialog_new(); | |
39 | + v3270_settings_dialog_set_has_subtitle(dialog,FALSE); | |
40 | + | |
41 | + gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings)); | |
42 | + gtk_container_add(GTK_CONTAINER(dialog), settings); | |
43 | + | |
44 | + gtk_dialog_set_toplevel(dialog,terminal); | |
45 | + gtk_window_set_modal(GTK_WINDOW(dialog),modal); | |
46 | + | |
47 | + v3270_settings_dialog_set_terminal_widget(dialog, terminal); | |
48 | + | |
49 | + g_signal_connect(dialog,"response",G_CALLBACK(v3270_setttings_dialog_response),NULL); | |
50 | + g_signal_connect(dialog,"close",G_CALLBACK(gtk_widget_destroy),NULL); | |
51 | + | |
52 | + return dialog; | |
53 | + | |
54 | + } | ... | ... |
src/include/v3270.h
... | ... | @@ -239,7 +239,7 @@ |
239 | 239 | LIB3270_EXPORT const gchar * v3270_get_remap_filename(GtkWidget *widget); |
240 | 240 | |
241 | 241 | // Auxiliary widgets |
242 | - LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); | |
242 | + // LIB3270_EXPORT void v3270_select_host(GtkWidget *widget); | |
243 | 243 | |
244 | 244 | |
245 | 245 | LIB3270_EXPORT int v3270_print(GtkWidget *widget, GError **error); | ... | ... |
src/include/v3270/settings.h
... | ... | @@ -102,7 +102,7 @@ |
102 | 102 | LIB3270_EXPORT const gchar * v3270_settings_get_tooltip(GtkWidget *widget); |
103 | 103 | |
104 | 104 | /// @brief Popup a settings dialog for the terminal. |
105 | - LIB3270_EXPORT void v3270_settings_popup_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal); | |
105 | + LIB3270_EXPORT GtkWidget * v3270_settings_popup_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal); | |
106 | 106 | |
107 | 107 | /// @brief Get an edit dialog for the settings widget. |
108 | 108 | LIB3270_EXPORT GtkWidget * v3270_settings_get_edit_dialog(GtkWidget *settings, GtkWidget *terminal, gboolean modal); | ... | ... |
src/terminal/actions/table.c
1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
2 | + | |
1 | 3 | /* |
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | - * | |
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | - * | |
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | - * Free Software Foundation. | |
11 | - * | |
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | - * obter mais detalhes. | |
4 | + * Copyright (C) 2008 Banco do Brasil S.A. | |
16 | 5 | * |
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
19 | - * St, Fifth Floor, Boston, MA 02110-1301 USA | |
6 | + * This program is free software: you can redistribute it and/or modify | |
7 | + * it under the terms of the GNU Lesser General Public License as published | |
8 | + * by the Free Software Foundation, either version 3 of the License, or | |
9 | + * (at your option) any later version. | |
20 | 10 | * |
21 | - * Este programa está nomeado como properties.c e possui - linhas de código. | |
22 | - * | |
23 | - * Contatos: | |
24 | - * | |
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
27 | 15 | * |
16 | + * You should have received a copy of the GNU Lesser General Public License | |
17 | + * along with this program. If not, see <https://www.gnu.org/licenses/>. | |
28 | 18 | */ |
29 | 19 | |
30 | 20 | #include "private.h" |
31 | 21 | #include <lib3270/actions.h> |
32 | 22 | #include <v3270/actions.h> |
33 | 23 | #include <v3270/selection.h> |
24 | + #include <v3270/settings.h> | |
34 | 25 | #include <terminal.h> |
35 | 26 | |
36 | -// static int fire_kp_add_action(GtkWidget *widget, const struct _v3270_action * action); | |
37 | -// static int fire_kp_sub_action(GtkWidget *widget, const struct _v3270_action * action); | |
38 | - | |
39 | 27 | static int fire_copy_as_html(GtkWidget *widget, const struct _v3270_action * action); |
40 | 28 | static int fire_copy_as_pixbuff(GtkWidget *widget, const struct _v3270_action * action); |
29 | + static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action); | |
30 | + static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action * action); | |
41 | 31 | |
42 | 32 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
43 | 33 | |
... | ... | @@ -45,22 +35,9 @@ |
45 | 35 | |
46 | 36 | static const V3270_ACTION actions[] = { |
47 | 37 | |
48 | - /* | |
49 | - { | |
50 | - .name = "keypad-add", | |
51 | - .keys = "<Mod2>KP_Add", | |
52 | - .group = LIB3270_ACTION_GROUP_ONLINE, | |
53 | - .activate = fire_kp_add_action | |
54 | - }, | |
55 | - { | |
56 | - .name = "keypad-subtract", | |
57 | - .keys = "<Mod2>KP_Subtract", | |
58 | - .group = LIB3270_ACTION_GROUP_ONLINE, | |
59 | - .activate = fire_kp_sub_action | |
60 | - }, | |
61 | - */ | |
62 | - | |
38 | + // | |
63 | 39 | // Standard Clipboard actions |
40 | + // | |
64 | 41 | { |
65 | 42 | .flags = (V3270_ACTION_FLAGS) V3270_COPY_SMART, |
66 | 43 | .name = "copy", |
... | ... | @@ -74,6 +51,17 @@ |
74 | 51 | }, |
75 | 52 | |
76 | 53 | { |
54 | + .name = "copy-append", | |
55 | + .keys = "<Primary><Shift>c", | |
56 | + .flags = (V3270_ACTION_FLAGS) V3270_COPY_APPEND, | |
57 | + .group = LIB3270_ACTION_GROUP_SELECTION, | |
58 | + .label = N_( "Add to copy" ), | |
59 | + .summary = N_("Append selection to clipboard"), | |
60 | + .description = N_("Append selected area to current clipboard contents"), | |
61 | + .activate = fire_copy_accelerator | |
62 | + }, | |
63 | + | |
64 | + { | |
77 | 65 | .name = "copy-html", |
78 | 66 | .group = LIB3270_ACTION_GROUP_SELECTION, |
79 | 67 | .label = N_( "Copy as HTML" ), |
... | ... | @@ -92,19 +80,7 @@ |
92 | 80 | }, |
93 | 81 | |
94 | 82 | { |
95 | - .name = "copy-append", | |
96 | - .keys = "<Alt>c", | |
97 | - .flags = (V3270_ACTION_FLAGS) V3270_COPY_APPEND, | |
98 | - .group = LIB3270_ACTION_GROUP_SELECTION, | |
99 | - .label = N_( "Add to copy" ), | |
100 | - .summary = N_("Append selection to clipboard"), | |
101 | - .description = N_("Append selected area to current clipboard contents"), | |
102 | - .activate = fire_copy_accelerator | |
103 | - }, | |
104 | - | |
105 | - { | |
106 | 83 | .name = "copy-text", |
107 | - .keys = "<Primary><Shift>c", | |
108 | 84 | .flags = (V3270_ACTION_FLAGS) V3270_COPY_TEXT, |
109 | 85 | .group = LIB3270_ACTION_GROUP_SELECTION, |
110 | 86 | .icon = "edit-copy", |
... | ... | @@ -336,6 +312,30 @@ |
336 | 312 | |
337 | 313 | }, |
338 | 314 | |
315 | + // | |
316 | + // Dialog actions | |
317 | + // | |
318 | + { | |
319 | + .group = LIB3270_ACTION_GROUP_NONE, | |
320 | + .name = "dialog-keyboard", | |
321 | + .icon = "preferences-desktop-keyboard-shortcuts", | |
322 | + .label = N_("Keyboard accelerators"), | |
323 | + .summary = N_("Edit keyboard accelerators"), | |
324 | + .activate = fire_accelerators_dialog | |
325 | + }, | |
326 | + | |
327 | + { | |
328 | + .group = LIB3270_ACTION_GROUP_OFFLINE, | |
329 | + .name = "dialog-host", | |
330 | + .icon = "network-server", | |
331 | + .label = N_("Host settings"), | |
332 | + .summary = N_("Edit host settings"), | |
333 | + .activate = fire_host_dialog | |
334 | + }, | |
335 | + | |
336 | + // | |
337 | + // Terminator | |
338 | + // | |
339 | 339 | { |
340 | 340 | .name = NULL |
341 | 341 | } |
... | ... | @@ -355,26 +355,73 @@ |
355 | 355 | return 0; |
356 | 356 | } |
357 | 357 | |
358 | - /* | |
359 | - int fire_kp_add_action(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) { | |
358 | + static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action) { | |
360 | 359 | |
361 | - if(v3270_get_toggle(widget,LIB3270_TOGGLE_KP_ALTERNATIVE)) | |
362 | - return lib3270_nextfield(GTK_V3270(widget)->host); | |
360 | + GtkWidget * dialog = | |
361 | + v3270_settings_popup_dialog( | |
362 | + v3270_accelerator_settings_new(), | |
363 | + widget, | |
364 | + TRUE | |
365 | + ); | |
363 | 366 | |
364 | - v3270_set_string(widget, "+"); | |
367 | + gtk_window_set_default_size(GTK_WINDOW(dialog),950,400); | |
368 | + gtk_widget_show_all(dialog); | |
365 | 369 | |
366 | 370 | return 0; |
367 | - | |
368 | 371 | } |
369 | 372 | |
370 | - int fire_kp_sub_action(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) { | |
373 | + static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action * action) { | |
371 | 374 | |
372 | - if(v3270_get_toggle(widget,LIB3270_TOGGLE_KP_ALTERNATIVE)) | |
373 | - return lib3270_previousfield(GTK_V3270(widget)->host); | |
374 | - | |
375 | - v3270_set_string(widget, "-"); | |
375 | + gtk_widget_show_all( | |
376 | + v3270_settings_popup_dialog( | |
377 | + v3270_host_settings_new(), | |
378 | + widget, | |
379 | + TRUE | |
380 | + ) | |
381 | + ); | |
376 | 382 | |
377 | 383 | return 0; |
378 | 384 | |
385 | + /* | |
386 | + GtkWidget * dialog = v3270_settings_dialog_new(); | |
387 | + GtkWidget * settings = v3270_host_settings_new(); | |
388 | + | |
389 | + v3270_settings_dialog_set_has_subtitle(dialog,FALSE); | |
390 | + | |
391 | + gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings)); | |
392 | + gtk_container_add(GTK_CONTAINER(dialog), settings); | |
393 | + | |
394 | + gtk_dialog_set_toplevel(dialog,widget); | |
395 | + gtk_window_set_modal(GTK_WINDOW(dialog),TRUE); | |
396 | + | |
397 | + v3270_settings_dialog_set_terminal_widget(dialog, widget); | |
398 | + | |
399 | + gtk_window_set_default_size(GTK_WINDOW(dialog), 700, 150); | |
400 | + gtk_widget_show_all(dialog); | |
401 | + | |
402 | + gboolean again = TRUE; | |
403 | + while(again) | |
404 | + { | |
405 | + gtk_widget_set_sensitive(dialog,TRUE); | |
406 | + gtk_widget_set_visible(dialog,TRUE); | |
407 | + | |
408 | + switch(gtk_dialog_run(GTK_DIALOG(dialog))) | |
409 | + { | |
410 | + case GTK_RESPONSE_APPLY: | |
411 | + debug("V3270HostSelectWidget::%s=%s",__FUNCTION__,"GTK_RESPONSE_APPLY"); | |
412 | + v3270_settings_dialog_apply(dialog); | |
413 | + again = lib3270_reconnect(v3270_get_session(widget),0); | |
414 | + break; | |
415 | + | |
416 | + case GTK_RESPONSE_CANCEL: | |
417 | + again = FALSE; | |
418 | + debug("V3270HostSelectWidget::%s=%s",__FUNCTION__,"GTK_RESPONSE_CANCEL"); | |
419 | + v3270_settings_dialog_revert(dialog); | |
420 | + break; | |
421 | + } | |
422 | + } | |
423 | + | |
424 | + gtk_widget_destroy(dialog); | |
425 | + */ | |
426 | + | |
379 | 427 | } |
380 | -*/ | ... | ... |
src/terminal/keyboard/init.c
... | ... | @@ -130,8 +130,6 @@ |
130 | 130 | accelerator->arg = (gconstpointer) &actions[ix]; |
131 | 131 | accelerator->activate = G_CALLBACK(fire_lib3270_action); |
132 | 132 | |
133 | -// debug("%s=%s",actions[ix].name,keys[key]); | |
134 | - | |
135 | 133 | v3270_accelerator_parse(accelerator,keys[key]); |
136 | 134 | |
137 | 135 | accelerators = g_slist_prepend(accelerators,accelerator); |
... | ... | @@ -228,61 +226,27 @@ |
228 | 226 | |
229 | 227 | accelerators = g_slist_prepend(accelerators,v3270_pfkey_accelerator_new(key,NULL)); |
230 | 228 | |
231 | - if(key == 7) { | |
229 | + switch(key) { | |
230 | + case 7: | |
232 | 231 | accelerators = g_slist_prepend(accelerators,v3270_pfkey_accelerator_new(key,"Page_Up")); |
233 | - } else if(key == 8) { | |
232 | + break; | |
233 | + | |
234 | + case 8: | |
234 | 235 | accelerators = g_slist_prepend(accelerators,v3270_pfkey_accelerator_new(key,"Page_Down")); |
235 | - } | |
236 | + break; | |
236 | 237 | |
237 | - } | |
238 | + case 19: | |
239 | + accelerators = g_slist_prepend(accelerators,v3270_pfkey_accelerator_new(key,"<Shift>Page_Up")); | |
240 | + break; | |
238 | 241 | |
239 | - } | |
240 | - /* | |
241 | - { | |
242 | - static const struct | |
243 | - { | |
244 | - guint key; | |
245 | - GdkModifierType mods; | |
246 | - const gchar * name; | |
247 | - const gchar * description; | |
248 | - unsigned short pfkey; | |
249 | - } accels[] = | |
250 | - { | |
251 | - { | |
252 | - .key = GDK_Page_Up, | |
253 | - .name = "page-up", | |
254 | - .description = N_( "Previous page" ), | |
255 | - .pfkey = 7 | |
256 | - }, | |
257 | - { | |
258 | - .key = GDK_Page_Down, | |
259 | - .name = "page-down", | |
260 | - .description = N_( "Next page" ), | |
261 | - .pfkey = 8 | |
242 | + case 20: | |
243 | + accelerators = g_slist_prepend(accelerators,v3270_pfkey_accelerator_new(key,"<Shift>Page_Down")); | |
244 | + break; | |
262 | 245 | } |
263 | - }; | |
264 | - | |
265 | - for(ix = 0 ; ix < G_N_ELEMENTS(accels); ix++) | |
266 | - { | |
267 | - V3270PFKeyAccelerator * accelerator = g_new0(V3270PFKeyAccelerator,1); | |
268 | - | |
269 | - accelerator->keycode = accels[ix].pfkey; | |
270 | - accelerator->name = accels[ix].name; | |
271 | - accelerator->description = accels[ix].description; | |
272 | - accelerator->parent.type = V3270_ACCELERATOR_TYPE_PFKEY; | |
273 | - accelerator->parent.key = accels[ix].key; | |
274 | - accelerator->parent.mods = accels[ix].mods; | |
275 | - accelerator->parent.arg = (gconstpointer) accelerator; | |
276 | - accelerator->parent.activate = G_CALLBACK(fire_pfkey_action); | |
277 | - | |
278 | - debug("%s Accelerator(%s)=%p pfkey=%d",__FUNCTION__,accelerator->name,accelerator,accelerator->keycode); | |
279 | - | |
280 | - widget->accelerators = g_slist_prepend(widget->accelerators,accelerator); | |
281 | 246 | |
282 | 247 | } |
283 | 248 | |
284 | 249 | } |
285 | - */ | |
286 | 250 | |
287 | 251 | return v3270_accelerator_map_sort(accelerators); |
288 | 252 | ... | ... |
src/trace/exec.c
1 | +/* SPDX-License-Identifier: LGPL-3.0-or-later */ | |
2 | + | |
1 | 3 | /* |
2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | - * | |
6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | - * | |
8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
10 | - * Free Software Foundation. | |
11 | - * | |
12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | - * obter mais detalhes. | |
4 | + * Copyright (C) 2008 Banco do Brasil S.A. | |
16 | 5 | * |
17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
19 | - * St, Fifth Floor, Boston, MA 02110-1301 USA | |
6 | + * This program is free software: you can redistribute it and/or modify | |
7 | + * it under the terms of the GNU Lesser General Public License as published | |
8 | + * by the Free Software Foundation, either version 3 of the License, or | |
9 | + * (at your option) any later version. | |
20 | 10 | * |
21 | - * Este programa está nomeado como - e possui - linhas de código. | |
22 | - * | |
23 | - * Contatos: | |
24 | - * | |
25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
27 | 15 | * |
16 | + * You should have received a copy of the GNU Lesser General Public License | |
17 | + * along with this program. If not, see <https://www.gnu.org/licenses/>. | |
28 | 18 | */ |
29 | 19 | |
30 | 20 | #include "private.h" |
... | ... | @@ -34,6 +24,7 @@ |
34 | 24 | #include <lib3270/actions.h> |
35 | 25 | #include <internals.h> |
36 | 26 | #include <v3270/selection.h> |
27 | + #include <v3270/actions.h> | |
37 | 28 | |
38 | 29 | static const gchar * get_word(gchar **ptr) |
39 | 30 | { |
... | ... | @@ -308,19 +299,33 @@ |
308 | 299 | } |
309 | 300 | |
310 | 301 | // Check for external interpreters |
311 | - gboolean handled = FALSE; | |
312 | - gchar * args = cmdline; | |
302 | + { | |
303 | + gboolean handled = FALSE; | |
304 | + gchar * args = cmdline; | |
313 | 305 | |
314 | - while(*args && !g_ascii_isspace(*args)) | |
315 | - args++; | |
306 | + while(*args && !g_ascii_isspace(*args)) | |
307 | + args++; | |
316 | 308 | |
317 | - if(*args) | |
318 | - *(args++) = 0; | |
309 | + if(*args) | |
310 | + *(args++) = 0; | |
319 | 311 | |
320 | - v3270_trace_signal_emit(GTK_WIDGET(t), V3270_TRACE_SIGNAL_COMMAND, cmdline, args, &handled); | |
312 | + v3270_trace_signal_emit(GTK_WIDGET(t), V3270_TRACE_SIGNAL_COMMAND, cmdline, args, &handled); | |
321 | 313 | |
322 | - if(handled) | |
323 | - return 0; | |
314 | + if(handled) | |
315 | + return 0; | |
316 | + } | |
317 | + | |
318 | + // Check for v3270 actions | |
319 | + { | |
320 | + const V3270_ACTION * action = v3270_get_actions(); | |
321 | + | |
322 | + while(action->name) { | |
323 | + if(!g_ascii_strcasecmp(action->name,cmdline)) { | |
324 | + return action->activate(terminal,action); | |
325 | + } | |
326 | + action++; | |
327 | + } | |
328 | + } | |
324 | 329 | |
325 | 330 | return errno = ENOENT; |
326 | 331 | } | ... | ... |
v3270.cbp
... | ... | @@ -117,6 +117,9 @@ |
117 | 117 | <Unit filename="src/dialogs/settings/host.c"> |
118 | 118 | <Option compilerVar="CC" /> |
119 | 119 | </Unit> |
120 | + <Unit filename="src/dialogs/settings/popup.c"> | |
121 | + <Option compilerVar="CC" /> | |
122 | + </Unit> | |
120 | 123 | <Unit filename="src/dialogs/settings/private.h" /> |
121 | 124 | <Unit filename="src/dialogs/settings/tools.c"> |
122 | 125 | <Option compilerVar="CC" /> | ... | ... |