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/> |