Commit e9ccd4ae952e6c1f7ac179acf83aa8e3b602a419
1 parent
18e845d5
Exists in
master
and in
5 other branches
Implementando metodo para mudar as opcoes do dialogo de transferencia de arquivos
Showing
2 changed files
with
49 additions
and
4 deletions
Show diff stats
src/pw3270/ft/ftdialog.c
... | ... | @@ -50,12 +50,23 @@ |
50 | 50 | VALUE_COUNT |
51 | 51 | }; |
52 | 52 | |
53 | + enum _button | |
54 | + { | |
55 | + BUTTON_ASCII, | |
56 | + BUTTON_CRLF, | |
57 | + BUTTON_APPEND, | |
58 | + BUTTON_REMAP, | |
59 | + | |
60 | + BUTTON_COUNT | |
61 | + }; | |
62 | + | |
53 | 63 | struct _v3270FTD |
54 | 64 | { |
55 | 65 | GtkDialog parent; |
56 | 66 | GtkWidget * filename[FILENAME_COUNT]; /**< Filenames for the transfer */ |
57 | 67 | GtkWidget * units; /**< Units frame box */ |
58 | 68 | GtkWidget * ready; /**< Send/Save button */ |
69 | + GtkToggleButton * button[BUTTON_COUNT]; /**< Buttons */ | |
59 | 70 | GtkSpinButton * value[VALUE_COUNT]; |
60 | 71 | gboolean local; /**< TRUE if local filename is ok */ |
61 | 72 | gboolean remote; /**< TRUE if remote filename is ok */ |
... | ... | @@ -74,6 +85,14 @@ |
74 | 85 | struct ftoptions |
75 | 86 | { |
76 | 87 | LIB3270_FT_OPTION flag; |
88 | + enum _button id; | |
89 | + const gchar * label; | |
90 | + const gchar * tooltip; | |
91 | + }; | |
92 | + | |
93 | + struct rdoptions | |
94 | + { | |
95 | + LIB3270_FT_OPTION flag; | |
77 | 96 | const gchar * label; |
78 | 97 | const gchar * tooltip; |
79 | 98 | }; |
... | ... | @@ -167,6 +186,7 @@ static GtkWidget * ftoption_new(v3270FTD *dialog, const struct ftoptions *opt) |
167 | 186 | gtk_grid_attach(grid,button,f&1,f/2,1,1); |
168 | 187 | g_object_set_data(G_OBJECT(button),"cfg",(gpointer) &opt[f]); |
169 | 188 | g_signal_connect(G_OBJECT(button),"toggled",G_CALLBACK(toggle_option),dialog); |
189 | + dialog->button[opt->id] = GTK_TOGGLE_BUTTON(button); | |
170 | 190 | } |
171 | 191 | |
172 | 192 | gtk_container_add(frame,GTK_WIDGET(grid)); |
... | ... | @@ -209,7 +229,7 @@ static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const str |
209 | 229 | |
210 | 230 | } |
211 | 231 | |
212 | -static GtkWidget * ftradio_new(v3270FTD *dialog, const gchar *title, const gchar *tooltip, const struct ftoptions *opt) | |
232 | +static GtkWidget * ftradio_new(v3270FTD *dialog, const gchar *title, const gchar *tooltip, const struct rdoptions *opt) | |
213 | 233 | { |
214 | 234 | GtkContainer * frame = GTK_CONTAINER(gtk_frame_new(title)); |
215 | 235 | GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2)); |
... | ... | @@ -366,26 +386,31 @@ GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) |
366 | 386 | { |
367 | 387 | { |
368 | 388 | LIB3270_FT_OPTION_ASCII, |
389 | + BUTTON_ASCII, | |
369 | 390 | N_( "_Text file." ), |
370 | 391 | N_( "Check for text files.") |
371 | 392 | }, |
372 | 393 | { |
373 | 394 | LIB3270_FT_OPTION_CRLF, |
395 | + BUTTON_CRLF, | |
374 | 396 | N_( "Add _CR at end of line." ), |
375 | 397 | N_( "Adds Newline characters to each host file record before transferring it to the local workstation.") |
376 | 398 | }, |
377 | 399 | { |
378 | 400 | LIB3270_FT_OPTION_APPEND, |
401 | + BUTTON_APPEND, | |
379 | 402 | N_( "_Append to destination" ), |
380 | 403 | N_( "Appends the source file to the destination file.") |
381 | 404 | }, |
382 | 405 | { |
383 | 406 | LIB3270_FT_OPTION_REMAP, |
407 | + BUTTON_REMAP, | |
384 | 408 | N_("Re_map to ASCII Characters."), |
385 | 409 | N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") |
386 | 410 | }, |
387 | 411 | { |
388 | 412 | 0, |
413 | + 0, | |
389 | 414 | NULL, |
390 | 415 | NULL |
391 | 416 | } |
... | ... | @@ -432,26 +457,31 @@ GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) |
432 | 457 | { |
433 | 458 | { |
434 | 459 | LIB3270_FT_OPTION_ASCII, |
460 | + BUTTON_ASCII, | |
435 | 461 | N_( "_Text file." ), |
436 | 462 | N_( "Check for text files.") |
437 | 463 | }, |
438 | 464 | { |
439 | 465 | LIB3270_FT_OPTION_CRLF, |
466 | + BUTTON_CRLF, | |
440 | 467 | N_( "_CR delimited file." ), |
441 | 468 | N_( "Remove the default newline characters in local files before transferring them to the host.") |
442 | 469 | }, |
443 | 470 | { |
444 | 471 | LIB3270_FT_OPTION_APPEND, |
472 | + BUTTON_APPEND, | |
445 | 473 | N_( "_Append to destination" ), |
446 | 474 | N_( "Appends the source file to the destination file.") |
447 | 475 | }, |
448 | 476 | { |
449 | 477 | LIB3270_FT_OPTION_REMAP, |
478 | + BUTTON_REMAP, | |
450 | 479 | N_("Re_map to EBCDIC Characters."), |
451 | 480 | N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") |
452 | 481 | }, |
453 | 482 | { |
454 | 483 | 0, |
484 | + 0, | |
455 | 485 | NULL, |
456 | 486 | NULL |
457 | 487 | } |
... | ... | @@ -466,7 +496,7 @@ GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) |
466 | 496 | gtk_grid_set_row_spacing(grid,5); |
467 | 497 | |
468 | 498 | // Create record format box |
469 | - static const struct ftoptions recfm[] = | |
499 | + static const struct rdoptions recfm[] = | |
470 | 500 | { |
471 | 501 | { |
472 | 502 | LIB3270_FT_RECORD_FORMAT_DEFAULT, |
... | ... | @@ -502,7 +532,7 @@ GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options) |
502 | 532 | |
503 | 533 | |
504 | 534 | // Create allocation unit box |
505 | - static const struct ftoptions units[] = | |
535 | + static const struct rdoptions units[] = | |
506 | 536 | { |
507 | 537 | { |
508 | 538 | LIB3270_FT_ALLOCATION_UNITS_DEFAULT, |
... | ... | @@ -628,6 +658,17 @@ LIB3270_FT_OPTION v3270_ft_dialog_get_options(GtkWidget *widget) |
628 | 658 | void v3270_ft_dialog_set_options(GtkWidget *widget,LIB3270_FT_OPTION options) |
629 | 659 | { |
630 | 660 | g_return_if_fail(GTK_IS_V3270FTD(widget)); |
661 | + int f; | |
662 | + | |
663 | + for(f=0;f<BUTTON_COUNT;f++) | |
664 | + { | |
665 | + GtkToggleButton *button = GTK_V3270FTD(widget)->button[f]; | |
666 | + if(button) | |
667 | + { | |
668 | + const struct ftoptions * opt = (const struct ftoptions *) g_object_get_data(G_OBJECT(button),"cfg"); | |
669 | + gtk_toggle_button_set_active(button,(options & opt->flag) != 0); | |
670 | + } | |
671 | + } | |
631 | 672 | |
632 | 673 | #warning Implementar |
633 | 674 | } | ... | ... |
src/pw3270/ft/testprogram.c
... | ... | @@ -38,8 +38,12 @@ int main (int argc, char *argv[]) |
38 | 38 | |
39 | 39 | gtk_init (&argc, &argv); |
40 | 40 | |
41 | + { | |
42 | + GtkWidget *win = v3270_ft_dialog_new(NULL,LIB3270_FT_OPTION_RECEIVE); | |
43 | + v3270_ft_dialog_set_options(win,LIB3270_FT_OPTION_REMAP); | |
44 | + gtk_dialog_run(GTK_DIALOG(win)); | |
45 | + } | |
41 | 46 | // gtk_dialog_run(GTK_DIALOG(v3270_ft_dialog_new(NULL,LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_REMAP))); |
42 | - gtk_dialog_run(GTK_DIALOG(v3270_ft_dialog_new(NULL,LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_REMAP))); | |
43 | 47 | |
44 | 48 | |
45 | 49 | // v3270_ft_dialog_set_tso(win,TRUE); | ... | ... |