Commit 891467e0aa734130bfaf5da3845a4327c25900e4

Authored by perry.werneck@gmail.com
1 parent 5e333817

Implementando novos dialogos de transferencia de arquivos

src/pw3270/ft/ft.cbp
@@ -40,6 +40,9 @@ @@ -40,6 +40,9 @@
40 <Unit filename="ftdialog.c"> 40 <Unit filename="ftdialog.c">
41 <Option compilerVar="CC" /> 41 <Option compilerVar="CC" />
42 </Unit> 42 </Unit>
  43 + <Unit filename="ftprogress.c">
  44 + <Option compilerVar="CC" />
  45 + </Unit>
43 <Unit filename="testprogram.c"> 46 <Unit filename="testprogram.c">
44 <Option compilerVar="CC" /> 47 <Option compilerVar="CC" />
45 </Unit> 48 </Unit>
src/pw3270/ft/ftdialog.c
@@ -54,7 +54,8 @@ @@ -54,7 +54,8 @@
54 { 54 {
55 GtkDialog parent; 55 GtkDialog parent;
56 GtkWidget * filename[FILENAME_COUNT]; /**< Filenames for the transfer */ 56 GtkWidget * filename[FILENAME_COUNT]; /**< Filenames for the transfer */
57 - int value[VALUE_COUNT]; 57 + GtkWidget * units; /**< Units frame box */
  58 + GtkSpinButton * value[VALUE_COUNT];
58 LIB3270_FT_OPTION options; 59 LIB3270_FT_OPTION options;
59 }; 60 };
60 61
@@ -166,22 +167,6 @@ static GtkWidget * ftoption_new(v3270FTD *dialog, const struct ftoptions *opt) @@ -166,22 +167,6 @@ static GtkWidget * ftoption_new(v3270FTD *dialog, const struct ftoptions *opt)
166 return GTK_WIDGET(frame); 167 return GTK_WIDGET(frame);
167 } 168 }
168 169
169 -/*  
170 -http://stackoverflow.com/questions/16539127/gtkentry-change-text-on-user-input  
171 -void entry_insert(GtkEntryBuffer *buffer, guint position, gchar *chars, guint n_chars, gpointer user_data)  
172 -{  
173 -  
174 -}  
175 -static void setup_numeric_entry(GtkEntry *entry)  
176 -{  
177 - gtk_entry_set_max_length(entry,10);  
178 - gtk_entry_set_width_chars(entry,10);  
179 - gtk_entry_set_alignment(entry,1);  
180 - gtk_entry_set_input_purpose(entry,GTK_INPUT_PURPOSE_NUMBER);  
181 - g_signal_connect_after(G_OBJECT(entry), "insert-text", G_CALLBACK(entry_insert),NULL);  
182 -}  
183 -*/  
184 -  
185 static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const struct ftvalues *val) 170 static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const struct ftvalues *val)
186 { 171 {
187 int f; 172 int f;
@@ -190,20 +175,22 @@ static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const str @@ -190,20 +175,22 @@ static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const str
190 { 175 {
191 int col = (f&1)*2; 176 int col = (f&1)*2;
192 int row = (f/2)+r; 177 int row = (f/2)+r;
  178 + int id = val[f].id;
193 GtkWidget * label = gtk_label_new_with_mnemonic(gettext(val[f].label)); 179 GtkWidget * label = gtk_label_new_with_mnemonic(gettext(val[f].label));
194 - GtkWidget * entry = GTK_WIDGET(gtk_spin_button_new_with_range(0,99999,1)); 180 +
  181 + dialog->value[id] = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(0,99999,1));
195 182
196 gtk_widget_set_hexpand(GTK_WIDGET(label),TRUE); 183 gtk_widget_set_hexpand(GTK_WIDGET(label),TRUE);
197 gtk_widget_set_tooltip_text(GTK_WIDGET(label),gettext(val[f].tooltip)); 184 gtk_widget_set_tooltip_text(GTK_WIDGET(label),gettext(val[f].tooltip));
198 gtk_misc_set_alignment(GTK_MISC(label),0,0.5); 185 gtk_misc_set_alignment(GTK_MISC(label),0,0.5);
199 186
200 - gtk_label_set_mnemonic_widget(GTK_LABEL(label),GTK_WIDGET(entry));  
201 - gtk_widget_set_tooltip_text(GTK_WIDGET(entry),gettext(val[f].tooltip)); 187 + gtk_label_set_mnemonic_widget(GTK_LABEL(label),GTK_WIDGET(dialog->value[id]));
  188 + gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->value[id]),gettext(val[f].tooltip));
202 189
203 - g_object_set_data(G_OBJECT(entry),"cfg",(gpointer) &val[f]); 190 + g_object_set_data(G_OBJECT(dialog->value[id]),"cfg",(gpointer) &val[f]);
204 191
205 gtk_grid_attach(grid,GTK_WIDGET(label),col,row,1,1); 192 gtk_grid_attach(grid,GTK_WIDGET(label),col,row,1,1);
206 - gtk_grid_attach(grid,GTK_WIDGET(entry),col+1,row,1,1); 193 + gtk_grid_attach(grid,GTK_WIDGET(dialog->value[id]),col+1,row,1,1);
207 194
208 } 195 }
209 196
@@ -237,7 +224,7 @@ static GtkWidget * ftradio_new(v3270FTD *dialog, const gchar *title, const gchar @@ -237,7 +224,7 @@ static GtkWidget * ftradio_new(v3270FTD *dialog, const gchar *title, const gchar
237 return GTK_WIDGET(frame); 224 return GTK_WIDGET(frame);
238 } 225 }
239 226
240 -GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) 227 +GtkWidget * v3270_ft_dialog_new(LIB3270_FT_OPTION options)
241 { 228 {
242 v3270FTD *dialog = g_object_new(GTK_TYPE_V3270FTD, NULL); 229 v3270FTD *dialog = g_object_new(GTK_TYPE_V3270FTD, NULL);
243 230
@@ -266,7 +253,12 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -266,7 +253,12 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
266 gtk_grid_set_column_spacing(grid,5); 253 gtk_grid_set_column_spacing(grid,5);
267 gtk_grid_set_row_spacing(grid,5); 254 gtk_grid_set_row_spacing(grid,5);
268 255
  256 +#if GTK_CHECK_VERSION(3,10,0)
269 GtkButton * browse = GTK_BUTTON(gtk_button_new_from_icon_name("text-x-generic",GTK_ICON_SIZE_BUTTON)); 257 GtkButton * browse = GTK_BUTTON(gtk_button_new_from_icon_name("text-x-generic",GTK_ICON_SIZE_BUTTON));
  258 +#else
  259 + GtkButton * browse = GTK_BUTTON(gtk_button_new_from_stock(GTK_STOCK_FILE));
  260 +#endif // GTK_CHECK_VERSION
  261 +
270 gtk_button_set_focus_on_click(browse,FALSE); 262 gtk_button_set_focus_on_click(browse,FALSE);
271 gtk_widget_set_tooltip_text(GTK_WIDGET(browse),_("Select file")); 263 gtk_widget_set_tooltip_text(GTK_WIDGET(browse),_("Select file"));
272 g_signal_connect(G_OBJECT(browse),"clicked",G_CALLBACK(browse_file),dialog); 264 g_signal_connect(G_OBJECT(browse),"clicked",G_CALLBACK(browse_file),dialog);
@@ -308,7 +300,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -308,7 +300,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
308 }, 300 },
309 { 301 {
310 LIB3270_FT_OPTION_REMAP, 302 LIB3270_FT_OPTION_REMAP,
311 - N_("_Remap to ASCII Characters."), 303 + N_("Re_map to ASCII Characters."),
312 N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") 304 N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.")
313 }, 305 },
314 { 306 {
@@ -320,25 +312,19 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -320,25 +312,19 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
320 312
321 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),ftoption_new(dialog,opt),FALSE,TRUE,2); 313 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),ftoption_new(dialog,opt),FALSE,TRUE,2);
322 314
323 - // Create values box  
324 - /*  
325 - static const struct ftvalues val[] =  
326 - {  
327 - {  
328 - VALUE_DFT,  
329 - N_( "DFT B_uffer size:" ),  
330 - N_( "Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them." )  
331 - }, 315 + // Create DFT
  316 + GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2));
  317 + GtkWidget * label = gtk_label_new_with_mnemonic(_("DFT B_uffer size:"));
  318 + dialog->value[VALUE_DFT] = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(256,32768,1));
  319 + gtk_misc_set_alignment(GTK_MISC(label),0,0.5);
332 320
333 - {  
334 - 0,  
335 - NULL,  
336 - NULL  
337 - }  
338 - }; 321 + gtk_label_set_mnemonic_widget(GTK_LABEL(label),GTK_WIDGET(dialog->value[VALUE_DFT]));
  322 +
  323 + gtk_box_pack_start(box,label,FALSE,TRUE,2);
  324 + gtk_box_pack_start(box,GTK_WIDGET(dialog->value[VALUE_DFT]),FALSE,TRUE,2);
  325 +
  326 + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(box),FALSE,TRUE,2);
339 327
340 - // gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),ftvalue_new(dialog,val),FALSE,TRUE,2);  
341 - */  
342 } 328 }
343 else 329 else
344 { 330 {
@@ -378,7 +364,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -378,7 +364,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
378 }, 364 },
379 { 365 {
380 LIB3270_FT_OPTION_REMAP, 366 LIB3270_FT_OPTION_REMAP,
381 - N_("_Remap to EBCDIC Characters."), 367 + N_("Re_map to EBCDIC Characters."),
382 N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") 368 N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.")
383 }, 369 },
384 { 370 {
@@ -462,8 +448,10 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -462,8 +448,10 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
462 } 448 }
463 }; 449 };
464 450
  451 + dialog->units = ftradio_new(dialog,_("Space allocation units"),_("Specifies the units for the TSO host primary and secondary space options."),units);
  452 +
465 gtk_grid_attach( grid, 453 gtk_grid_attach( grid,
466 - ftradio_new(dialog,_("Space allocation units"),_("Specifies the units for the TSO host primary and secondary space options."),units), 454 + dialog->units,
467 2,0,2,1 455 2,0,2,1
468 ); 456 );
469 457
@@ -499,7 +487,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -499,7 +487,7 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
499 { 487 {
500 VALUE_DFT, 488 VALUE_DFT,
501 N_( "DFT B_uffer size:" ), 489 N_( "DFT B_uffer size:" ),
502 - N_( "Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them." ) 490 + ""
503 }, 491 },
504 492
505 { 493 {
@@ -513,8 +501,79 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options) @@ -513,8 +501,79 @@ GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options)
513 501
514 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(grid),FALSE,TRUE,2); 502 gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(grid),FALSE,TRUE,2);
515 503
  504 + gtk_spin_button_set_range(dialog->value[VALUE_DFT],256,32768);
516 } 505 }
517 506
  507 + gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->value[VALUE_DFT]),_( "Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them."));
  508 + gtk_spin_button_set_value(dialog->value[VALUE_DFT],4096);
  509 +
  510 + gtk_dialog_add_buttons(GTK_DIALOG(dialog),
  511 + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
  512 + (options & LIB3270_FT_OPTION_RECEIVE) != 0 ? GTK_STOCK_SAVE : GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
  513 + NULL);
  514 +
  515 + gtk_widget_show_all(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
  516 +
518 return GTK_WIDGET(dialog); 517 return GTK_WIDGET(dialog);
519 } 518 }
520 519
  520 +void v3270_ft_dialog_set_host_filename(GtkWidget *widget, const gchar *name)
  521 +{
  522 + g_return_if_fail(GTK_IS_V3270FTD(widget));
  523 + gtk_entry_set_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_HOST]),name);
  524 +}
  525 +
  526 +void v3270_ft_dialog_set_local_filename(GtkWidget *widget, const gchar *name)
  527 +{
  528 + g_return_if_fail(GTK_IS_V3270FTD(widget));
  529 + gtk_entry_set_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_LOCAL]),name);
  530 +}
  531 +
  532 +const gchar * v3270_ft_dialog_get_host_filename(GtkWidget *widget)
  533 +{
  534 + g_return_val_if_fail(GTK_IS_V3270FTD(widget),NULL);
  535 + return gtk_entry_get_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_HOST]));
  536 +}
  537 +
  538 +const gchar * v3270_ft_dialog_get_local_filename(GtkWidget *widget)
  539 +{
  540 + g_return_val_if_fail(GTK_IS_V3270FTD(widget),NULL);
  541 + return gtk_entry_get_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_LOCAL]));
  542 +}
  543 +
  544 +LIB3270_FT_OPTION v3270_ft_dialog_get_options(GtkWidget *widget)
  545 +{
  546 + g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
  547 + return GTK_V3270FTD(widget)->options;
  548 +}
  549 +
  550 +void v3270_ft_dialog_set_options(GtkWidget *widget,LIB3270_FT_OPTION options)
  551 +{
  552 + g_return_if_fail(GTK_IS_V3270FTD(widget));
  553 +
  554 + #warning Implementar
  555 +}
  556 +
  557 +void v3270_ft_dialog_set_tso(GtkWidget *widget,gboolean flag)
  558 +{
  559 + g_return_if_fail(GTK_IS_V3270FTD(widget));
  560 +
  561 + v3270FTD *dialog = GTK_V3270FTD(widget);
  562 +
  563 + GtkWidget *tsoWidget[] =
  564 + {
  565 + GTK_WIDGET(dialog->value[VALUE_BLKSIZE]),
  566 + GTK_WIDGET(dialog->value[VALUE_PRIMSPACE]),
  567 + GTK_WIDGET(dialog->value[VALUE_SECSPACE]),
  568 + GTK_WIDGET(dialog->units),
  569 + };
  570 +
  571 + int f;
  572 +
  573 + for(f=0;f<G_N_ELEMENTS(tsoWidget);f++)
  574 + {
  575 + if(tsoWidget[f])
  576 + gtk_widget_set_sensitive(tsoWidget[f],flag);
  577 + }
  578 +
  579 +}
src/pw3270/ft/ftprogress.c 0 → 100644
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como ftprogress.c e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include "v3270ft.h"
  31 +
  32 +/*--[ Widget definition ]----------------------------------------------------------------------------*/
  33 +
  34 + enum _filename
  35 + {
  36 + TEXT_LOCALFILE,
  37 + TEXT_HOSTFILE,
  38 + TEXT_STATUS,
  39 +
  40 + TEXT_COUNT
  41 + };
  42 +
  43 + struct _v3270FTProgress
  44 + {
  45 + GtkBin parent;
  46 + GtkWidget * text[TEXT_COUNT];
  47 + };
  48 +
  49 + struct _v3270FTProgressClass
  50 + {
  51 + GtkBinClass parent_class;
  52 +
  53 + };
  54 +
  55 + G_DEFINE_TYPE(v3270FTProgress, v3270FTProgress, GTK_TYPE_BIN);
  56 +
  57 +
  58 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  59 +
  60 +static void v3270FTProgress_class_init(v3270FTProgressClass *klass)
  61 +{
  62 +// GtkDialogClass * widget_class = GTK_DIALOG_CLASS(klass);
  63 +
  64 +#if GTK_CHECK_VERSION(3,0,0)
  65 +
  66 +#else
  67 +
  68 + #error Implementar
  69 +
  70 +#endif // GTK_CHECK_VERSION
  71 +
  72 +}
  73 +
  74 +static void v3270FTProgress_init(v3270FTProgress *widget)
  75 +{
  76 + int f;
  77 +
  78 + // Create From/to fields
  79 + static const gchar * label[TEXT_COUNT] = { N_("From"), N_("To"), N_("Status") };
  80 + GtkWidget * frame = gtk_frame_new( _( "Informations" ) );
  81 + GtkGrid * grid = GTK_GRID(gtk_grid_new());
  82 +
  83 + gtk_grid_set_column_spacing(grid,5);
  84 + gtk_grid_set_row_spacing(grid,5);
  85 +
  86 + for(f=0;f<TEXT_COUNT;f++)
  87 + {
  88 + GtkWidget * l = gtk_label_new("");
  89 + gchar * ptr = g_strdup_printf("<b>%s:</b>",gettext(label[f]));
  90 +
  91 + gtk_label_set_markup(GTK_LABEL(l),ptr);
  92 + gtk_misc_set_alignment(GTK_MISC(l),0,0);
  93 + g_free(ptr);
  94 +
  95 + gtk_grid_attach(grid,l,0,f,1,1);
  96 +
  97 + }
  98 + gtk_container_add(GTK_CONTAINER(frame),GTK_WIDGET(grid));
  99 +
  100 +
  101 +
  102 + gtk_container_add(GTK_CONTAINER(widget),GTK_WIDGET(frame));
  103 +
  104 +}
  105 +
  106 +GtkWidget * v3270_ft_progress_new(void)
  107 +{
  108 + return g_object_new(GTK_TYPE_V3270FTProgress, NULL);
  109 +}
src/pw3270/ft/testprogram.c
@@ -37,12 +37,22 @@ int main (int argc, char *argv[]) @@ -37,12 +37,22 @@ int main (int argc, char *argv[])
37 GtkWidget *win; 37 GtkWidget *win;
38 38
39 gtk_init (&argc, &argv); 39 gtk_init (&argc, &argv);
40 -// win = v3270_dialog_ft_new(LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_ASCII);  
41 - win = v3270_dialog_ft_new(LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_REMAP);  
42 40
  41 + /*
  42 +// win = v3270_ft_dialog_new(LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_ASCII);
  43 + win = v3270_ft_dialog_new(LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_REMAP);
  44 + v3270_ft_dialog_set_tso(win,TRUE);
  45 + */
43 46
44 - gtk_widget_show_all (win); 47 + win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  48 + gtk_container_add(GTK_CONTAINER(win),v3270_ft_progress_new());
  49 +
  50 +
  51 + gtk_widget_show_all(win);
45 gtk_main (); 52 gtk_main ();
  53 +
  54 + gtk_dialog_run(GTK_DIALOG(win));
  55 +
46 return 0; 56 return 0;
47 57
48 } 58 }
src/pw3270/ft/v3270ft.h
@@ -47,6 +47,7 @@ @@ -47,6 +47,7 @@
47 47
48 G_BEGIN_DECLS 48 G_BEGIN_DECLS
49 49
  50 +/*--[ Select file dialog ]---------------------------------------------------------------------------*/
50 #define GTK_TYPE_V3270FTD (v3270FTD_get_type ()) 51 #define GTK_TYPE_V3270FTD (v3270FTD_get_type ())
51 #define GTK_V3270FTD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270FTD, v3270FTD)) 52 #define GTK_V3270FTD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270FTD, v3270FTD))
52 #define GTK_V3270FTD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270FTD, v3270FTDClass)) 53 #define GTK_V3270FTD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270FTD, v3270FTDClass))
@@ -57,9 +58,29 @@ @@ -57,9 +58,29 @@
57 typedef struct _v3270FTD v3270FTD; 58 typedef struct _v3270FTD v3270FTD;
58 typedef struct _v3270FTDClass v3270FTDClass; 59 typedef struct _v3270FTDClass v3270FTDClass;
59 60
60 - // Prototipes  
61 - GtkWidget * v3270_dialog_ft_new(LIB3270_FT_OPTION options); 61 +/*--[ Progress widget ]------------------------------------------------------------------------------*/
62 62
  63 + #define GTK_TYPE_V3270FTProgress (v3270FTProgress_get_type ())
  64 + #define GTK_V3270FTProcess(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270FTProgress, v3270FTProgress))
  65 + #define GTK_V3270FTProgress_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270FTProgress, v3270FTProgressClass))
  66 + #define GTK_IS_V3270FTProgress(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270FTProgress))
  67 + #define GTK_IS_V3270FTProgress_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270FTProgress))
  68 + #define GTK_V3270FTProgress_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270FTProgress, v3270FTProgressClass))
  69 +
  70 + typedef struct _v3270FTProgress v3270FTProgress;
  71 + typedef struct _v3270FTProgressClass v3270FTProgressClass;
  72 +
  73 +/*--[ Prototipes ]-----------------------------------------------------------------------------------*/
  74 + LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(LIB3270_FT_OPTION options);
  75 + LIB3270_EXPORT void v3270_ft_dialog_set_host_filename(GtkWidget *widget, const gchar *name);
  76 + LIB3270_EXPORT void v3270_ft_dialog_set_local_filename(GtkWidget *widget, const gchar *name);
  77 + LIB3270_EXPORT const gchar * v3270_ft_dialog_get_host_filename(GtkWidget *widget);
  78 + LIB3270_EXPORT const gchar * v3270_ft_dialog_get_local_filename(GtkWidget *widget);
  79 + LIB3270_EXPORT void v3270_ft_dialog_set_options(GtkWidget *widget,LIB3270_FT_OPTION options);
  80 + LIB3270_EXPORT LIB3270_FT_OPTION v3270_ft_dialog_get_options(GtkWidget *widget);
  81 + LIB3270_EXPORT void v3270_ft_dialog_set_tso(GtkWidget *widget,gboolean flag);
  82 +
  83 + LIB3270_EXPORT GtkWidget * v3270_ft_progress_new(void);
63 84
64 85
65 G_END_DECLS 86 G_END_DECLS