Commit 8a4e45488a53e851f9fef6860a9d4de211f22d42

Authored by perry.werneck@gmail.com
1 parent cfae1c9c

Incluindo opção de linha de comando para ativar/desativar toggles

src/include/pw3270.h
... ... @@ -56,6 +56,7 @@
56 56 LIB3270_EXPORT const gchar * pw3270_get_host(GtkWidget *widget);
57 57  
58 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 60 LIB3270_EXPORT H3270 * pw3270_get_session(GtkWidget *widget);
60 61 LIB3270_EXPORT GtkWidget * pw3270_get_terminal_widget(GtkWidget *widget);
61 62  
... ...
src/pw3270/main.c
... ... @@ -53,6 +53,8 @@
53 53 static GtkWidget * toplevel = NULL;
54 54 static unsigned int syscolors = 16;
55 55 static const gchar * systype = NULL;
  56 + static const gchar * toggleset = NULL;
  57 + static const gchar * togglereset = NULL;
56 58  
57 59 #ifdef HAVE_GTKMAC
58 60 GtkOSXApplication * osxapp = NULL;
... ... @@ -308,6 +310,9 @@ int main(int argc, char *argv[])
308 310 { "host", 'h', 0, G_OPTION_ARG_STRING, &host, N_( "Host to connect"), NULL },
309 311 { "colors", 'c', 0, G_OPTION_ARG_CALLBACK, optcolors, N_( "Set reported colors (8/16)" ), "16" },
310 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 316 #if defined( HAVE_SYSLOG )
312 317 { "syslog", 'l', 0, G_OPTION_ARG_NONE, &log_to_syslog, N_( "Send messages to syslog" ), NULL },
313 318 #endif
... ... @@ -408,7 +413,31 @@ int main(int argc, char *argv[])
408 413  
409 414 toplevel = pw3270_new(host,systype,syscolors);
410 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 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 119 {
120 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 46 <menuitem action='save' src='copy' group='clipboard' label='Save copy' />
47 47  
48 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 50 <menuitem action='print' src='selected' group='selection' label='Print selected' />
51 51 <menuitem action='print' src='copy' group='clipboard' label='Print copy' />
52 52 <separator/>
... ...