Commit 4ff7cbe02c60df3a5fed41d6ee35d6865869507f

Authored by perry.werneck@gmail.com
1 parent 0c06052f

Incluindo opcao para acesso a hosts com 8 cores

src/pw3270/actions.c
... ... @@ -73,6 +73,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget)
73 73  
74 74 if(host)
75 75 {
  76 + lib3270_set_options(v3270_get_session(widget),0);
76 77 v3270_connect(widget,host);
77 78 return;
78 79 }
... ... @@ -80,6 +81,7 @@ static void connect_action(GtkAction *action, GtkWidget *widget)
80 81 host = get_string_from_config("host","uri","");
81 82 if(*host)
82 83 {
  84 + load_3270_options_from_config(widget);
83 85 v3270_connect(widget,host);
84 86 g_free(host);
85 87 return;
... ...
src/pw3270/dialog.c
... ... @@ -32,7 +32,46 @@
32 32 #include "globals.h"
33 33 #include <pw3270/v3270.h>
34 34  
35   -/*--[ Implement ]------------------------------------------------------------------------------------*/
  35 + static const struct _lib3270_options
  36 + {
  37 + LIB3270_OPTION value;
  38 + const gchar * key;
  39 + const gchar * text;
  40 + const gchar * tooltip;
  41 + } lib3270_options[] =
  42 + {
  43 + {
  44 + LIB3270_OPTION_COLOR8,
  45 + "color8",
  46 + N_( "_8 colors" ),
  47 + N_( "If active, pw3270 will respond to a Query(Color) with a list of 8 supported colors." )
  48 + },
  49 +
  50 + {
  51 + LIB3270_OPTION_AS400,
  52 + "as400",
  53 + N_( "Host is AS_400" ),
  54 + NULL
  55 + },
  56 +
  57 + };
  58 +
  59 +
  60 +/*--[ Globals ]--------------------------------------------------------------------------------------*/
  61 +
  62 + void load_3270_options_from_config(GtkWidget *widget)
  63 + {
  64 + int f;
  65 + LIB3270_OPTION opt = 0;
  66 +
  67 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
  68 + {
  69 + if(get_boolean_from_config("host",lib3270_options[f].key,FALSE))
  70 + opt |= lib3270_options[f].value;
  71 + }
  72 + lib3270_set_options(v3270_get_session(widget),opt);
  73 + }
  74 +
36 75  
37 76 static void charset_changed(GtkComboBox *widget,gchar **encoding)
38 77 {
... ... @@ -286,28 +325,9 @@
286 325 return 0;
287 326 }
288 327  
  328 +
289 329 void hostname_action(GtkAction *action, GtkWidget *widget)
290 330 {
291   - static const struct _option
292   - {
293   - LIB3270_OPTION value;
294   - const gchar * text;
295   - const gchar * tooltip;
296   - } option[] =
297   - {
298   - {
299   - LIB3270_OPTION_COLOR8,
300   - N_( "_8 colors" ),
301   - N_( "If active, pw3270 will respond to a Query(Color) with a list of 8 supported colors." )
302   - },
303   -
304   - {
305   - LIB3270_OPTION_AS400,
306   - N_( "Host is AS_400" ),
307   - NULL
308   - },
309   - };
310   -
311 331 const gchar * title = g_object_get_data(G_OBJECT(action),"title");
312 332 gchar * cfghost = get_string_from_config("host","uri","");
313 333 gchar * hostname;
... ... @@ -318,7 +338,7 @@
318 338 GtkEntry * host = GTK_ENTRY(gtk_entry_new());
319 339 GtkEntry * port = GTK_ENTRY(gtk_entry_new());
320 340 GtkToggleButton * sslcheck = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( _( "_Secure connection" ) ));
321   - GtkToggleButton * optcheck[G_N_ELEMENTS(option)];
  341 + GtkToggleButton * optcheck[G_N_ELEMENTS(lib3270_options)];
322 342 GtkWidget * dialog = gtk_dialog_new_with_buttons( gettext(title ? title : N_( "Select hostname" )),
323 343 GTK_WINDOW(gtk_widget_get_toplevel(widget)),
324 344 GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
... ... @@ -347,20 +367,19 @@
347 367 int f;
348 368 int col = 1;
349 369 int row = 0;
350   - LIB3270_OPTION optval = lib3270_get_options(v3270_get_session(widget));
351 370  
352 371 GtkTable * frame = GTK_TABLE(gtk_table_new(2,2,FALSE));
353 372 gtk_table_attach(frame,GTK_WIDGET(sslcheck), 0,1,0,1,GTK_EXPAND|GTK_FILL,0,0,0);
354 373  
355   - for(f=0;f<G_N_ELEMENTS(option);f++)
  374 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
356 375 {
357   - optcheck[f] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( gettext( option[f].text ) ));
  376 + optcheck[f] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic( gettext( lib3270_options[f].text ) ));
358 377  
359   - if(option[f].tooltip)
360   - gtk_widget_set_tooltip_markup(GTK_WIDGET(optcheck[f]),gettext(option[f].tooltip));
  378 + if(lib3270_options[f].tooltip)
  379 + gtk_widget_set_tooltip_markup(GTK_WIDGET(optcheck[f]),gettext(lib3270_options[f].tooltip));
361 380  
362 381 gtk_table_attach(frame,GTK_WIDGET(optcheck[f]),col,col+1,row,row+1,GTK_EXPAND|GTK_FILL,0,0,0);
363   - gtk_toggle_button_set_active(optcheck[f],optval & option[f].value ? TRUE : FALSE);
  382 + gtk_toggle_button_set_active(optcheck[f],get_boolean_from_config("host", lib3270_options[f].key, FALSE));
364 383  
365 384 if(++col > 1);
366 385 {
... ... @@ -423,6 +442,22 @@
423 442 NULL
424 443 );
425 444  
  445 + {
  446 + int f;
  447 + LIB3270_OPTION opt = 0;
  448 +
  449 + for(f=0;f<G_N_ELEMENTS(lib3270_options);f++)
  450 + {
  451 + gboolean val = gtk_toggle_button_get_active(optcheck[f]);
  452 + if(val)
  453 + opt |= lib3270_options[f].value;
  454 + set_boolean_to_config("host", lib3270_options[f].key, val);
  455 + }
  456 +
  457 + lib3270_set_options(v3270_get_session(widget),opt);
  458 +
  459 + }
  460 +
426 461 if(!lib3270_connect(v3270_get_session(widget),hostname,1))
427 462 again = FALSE;
428 463  
... ...
src/pw3270/globals.h
... ... @@ -62,6 +62,9 @@
62 62 G_GNUC_INTERNAL void load_color_schemes(GtkWidget *widget, gchar *active);
63 63 G_GNUC_INTERNAL GtkWidget * color_scheme_new(const GdkColor *current);
64 64  
  65 + G_GNUC_INTERNAL void load_3270_options_from_config(GtkWidget *widget);
  66 +
  67 +
65 68 // actions
66 69 G_GNUC_INTERNAL void paste_file_action(GtkAction *action, GtkWidget *widget);
67 70 G_GNUC_INTERNAL void hostname_action(GtkAction *action, GtkWidget *widget);
... ...