Commit 8a4e45488a53e851f9fef6860a9d4de211f22d42
1 parent
cfae1c9c
Exists in
master
and in
5 other branches
Incluindo opção de linha de comando para ativar/desativar toggles
Showing
4 changed files
with
44 additions
and
2 deletions
Show diff stats
src/include/pw3270.h
@@ -56,6 +56,7 @@ | @@ -56,6 +56,7 @@ | ||
56 | LIB3270_EXPORT const gchar * pw3270_get_host(GtkWidget *widget); | 56 | LIB3270_EXPORT const gchar * pw3270_get_host(GtkWidget *widget); |
57 | 57 | ||
58 | LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); | 58 | LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); |
59 | + LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag); | ||
59 | LIB3270_EXPORT H3270 * pw3270_get_session(GtkWidget *widget); | 60 | LIB3270_EXPORT H3270 * pw3270_get_session(GtkWidget *widget); |
60 | LIB3270_EXPORT GtkWidget * pw3270_get_terminal_widget(GtkWidget *widget); | 61 | LIB3270_EXPORT GtkWidget * pw3270_get_terminal_widget(GtkWidget *widget); |
61 | 62 |
src/pw3270/main.c
@@ -53,6 +53,8 @@ | @@ -53,6 +53,8 @@ | ||
53 | static GtkWidget * toplevel = NULL; | 53 | static GtkWidget * toplevel = NULL; |
54 | static unsigned int syscolors = 16; | 54 | static unsigned int syscolors = 16; |
55 | static const gchar * systype = NULL; | 55 | static const gchar * systype = NULL; |
56 | + static const gchar * toggleset = NULL; | ||
57 | + static const gchar * togglereset = NULL; | ||
56 | 58 | ||
57 | #ifdef HAVE_GTKMAC | 59 | #ifdef HAVE_GTKMAC |
58 | GtkOSXApplication * osxapp = NULL; | 60 | GtkOSXApplication * osxapp = NULL; |
@@ -308,6 +310,9 @@ int main(int argc, char *argv[]) | @@ -308,6 +310,9 @@ int main(int argc, char *argv[]) | ||
308 | { "host", 'h', 0, G_OPTION_ARG_STRING, &host, N_( "Host to connect"), NULL }, | 310 | { "host", 'h', 0, G_OPTION_ARG_STRING, &host, N_( "Host to connect"), NULL }, |
309 | { "colors", 'c', 0, G_OPTION_ARG_CALLBACK, optcolors, N_( "Set reported colors (8/16)" ), "16" }, | 311 | { "colors", 'c', 0, G_OPTION_ARG_CALLBACK, optcolors, N_( "Set reported colors (8/16)" ), "16" }, |
310 | { "systype", 't', 0, G_OPTION_ARG_STRING, &system, N_( "Host system type" ), "S390" }, | 312 | { "systype", 't', 0, G_OPTION_ARG_STRING, &system, N_( "Host system type" ), "S390" }, |
313 | + { "toggleset", 'S', 0, G_OPTION_ARG_STRING, &toggleset, N_( "Set toggles ON" ), NULL }, | ||
314 | + { "togglereset", 'R', 0, G_OPTION_ARG_STRING, &togglereset, N_( "Set toggles OFF" ), NULL }, | ||
315 | + | ||
311 | #if defined( HAVE_SYSLOG ) | 316 | #if defined( HAVE_SYSLOG ) |
312 | { "syslog", 'l', 0, G_OPTION_ARG_NONE, &log_to_syslog, N_( "Send messages to syslog" ), NULL }, | 317 | { "syslog", 'l', 0, G_OPTION_ARG_NONE, &log_to_syslog, N_( "Send messages to syslog" ), NULL }, |
313 | #endif | 318 | #endif |
@@ -408,7 +413,31 @@ int main(int argc, char *argv[]) | @@ -408,7 +413,31 @@ int main(int argc, char *argv[]) | ||
408 | 413 | ||
409 | toplevel = pw3270_new(host,systype,syscolors); | 414 | toplevel = pw3270_new(host,systype,syscolors); |
410 | pw3270_set_session_name(toplevel,session_name); | 415 | pw3270_set_session_name(toplevel,session_name); |
411 | - // pw3270_set_session_options(toplevel,cmdline_opt.host); | 416 | + |
417 | + if(toggleset) | ||
418 | + { | ||
419 | + gchar **str = g_strsplit(toggleset,",",-1); | ||
420 | + int f; | ||
421 | + | ||
422 | + for(f=0;str[f];f++) | ||
423 | + pw3270_set_toggle_by_name(toplevel,str[f],TRUE); | ||
424 | + | ||
425 | + | ||
426 | + g_strfreev(str); | ||
427 | + } | ||
428 | + | ||
429 | + if(togglereset) | ||
430 | + { | ||
431 | + gchar **str = g_strsplit(togglereset,",",-1); | ||
432 | + int f; | ||
433 | + | ||
434 | + for(f=0;str[f];f++) | ||
435 | + pw3270_set_toggle_by_name(toplevel,str[f],FALSE); | ||
436 | + | ||
437 | + g_strfreev(str); | ||
438 | + } | ||
439 | + | ||
440 | + | ||
412 | 441 | ||
413 | toplevel_setup(GTK_WINDOW(toplevel)); | 442 | toplevel_setup(GTK_WINDOW(toplevel)); |
414 | 443 |
src/pw3270/tools.c
@@ -119,3 +119,15 @@ LIB3270_EXPORT void pw3270_set_boolean(GtkWidget *widget, const gchar *group, co | @@ -119,3 +119,15 @@ LIB3270_EXPORT void pw3270_set_boolean(GtkWidget *widget, const gchar *group, co | ||
119 | { | 119 | { |
120 | set_boolean_to_config(group, key, val); | 120 | set_boolean_to_config(group, key, val); |
121 | } | 121 | } |
122 | + | ||
123 | +LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag) | ||
124 | +{ | ||
125 | + H3270 * hSession = pw3270_get_session(widget); | ||
126 | + LIB3270_TOGGLE id = lib3270_get_toggle_id(name); | ||
127 | + | ||
128 | + if(!hSession || id == (LIB3270_TOGGLE) -1) | ||
129 | + return FALSE; | ||
130 | + | ||
131 | + lib3270_set_toggle(hSession,id,(int) flag); | ||
132 | + return TRUE; | ||
133 | +} |
ui/00default.xml
@@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
46 | <menuitem action='save' src='copy' group='clipboard' label='Save copy' /> | 46 | <menuitem action='save' src='copy' group='clipboard' label='Save copy' /> |
47 | 47 | ||
48 | <separator/> | 48 | <separator/> |
49 | - <menuitem action='print' src='all' key='Print' group='online' icon='print' label='Print' /> | 49 | + <menuitem action='print' src='all' key='Print' icon='print' label='Print' /> |
50 | <menuitem action='print' src='selected' group='selection' label='Print selected' /> | 50 | <menuitem action='print' src='selected' group='selection' label='Print selected' /> |
51 | <menuitem action='print' src='copy' group='clipboard' label='Print copy' /> | 51 | <menuitem action='print' src='copy' group='clipboard' label='Print copy' /> |
52 | <separator/> | 52 | <separator/> |