Commit 891467e0aa734130bfaf5da3845a4327c25900e4
1 parent
5e333817
Exists in
master
and in
5 other branches
Implementando novos dialogos de transferencia de arquivos
Showing
5 changed files
with
251 additions
and
49 deletions
Show diff stats
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 | +} |
@@ -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 |