Commit cbc69e8d47bed7f27e3197f34628ebee4728ade6
1 parent
43023aba
Exists in
master
and in
5 other branches
Melhorando dialogos de transferencia de arquivos
Showing
1 changed file
with
53 additions
and
8 deletions
Show diff stats
src/pw3270/filetransfer.c
| ... | ... | @@ -176,19 +176,68 @@ static void check_entry(GtkEditable *editable, struct ftdialog *dlg) |
| 176 | 176 | { |
| 177 | 177 | gtk_widget_set_sensitive(dlg->ready,is_dialog_ok(editable,dlg)); |
| 178 | 178 | } |
| 179 | + | |
| 180 | +static GtkWidget * add_filename_entry(GObject *action, int ix, int row, struct ftdialog *dlg, GtkTable *table) | |
| 181 | +{ | |
| 182 | + static const gchar * label_text[] = { N_( "_Local file name:" ), N_( "_Host file name:" ) }; | |
| 183 | + static const gchar * attr[] = { "local", "remote" }; | |
| 184 | + | |
| 185 | + GtkWidget * entry = gtk_entry_new(); | |
| 186 | + GtkWidget * label = gtk_label_new_with_mnemonic(gettext(label_text[ix])); | |
| 187 | + gchar * val; | |
| 188 | + | |
| 189 | + gtk_misc_set_alignment(GTK_MISC(label),0,.5); | |
| 190 | + gtk_table_attach(GTK_TABLE(table),label,0,1,row,row+1,GTK_FILL,GTK_FILL,2,2); | |
| 191 | + | |
| 192 | + gtk_widget_set_name(entry,attr[ix]); | |
| 193 | + | |
| 194 | + val = get_attribute(action,dlg,attr[ix]); | |
| 195 | + gtk_entry_set_text(dlg->file[ix],val); | |
| 196 | + g_free(val); | |
| 197 | + | |
| 198 | + gtk_entry_set_width_chars(GTK_ENTRY(entry),40); | |
| 199 | + | |
| 200 | + gtk_label_set_mnemonic_widget(GTK_LABEL(label),entry); | |
| 201 | + | |
| 202 | + gtk_table_attach(GTK_TABLE(table),entry,1,3,row,row+1,GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,2,2); | |
| 203 | + | |
| 204 | + return entry; | |
| 205 | +} | |
| 179 | 206 | |
| 180 | 207 | static void add_file_fields(GObject *action, struct ftdialog *dlg) |
| 181 | 208 | { |
| 182 | - static const gchar * label[] = { N_( "_Local file name:" ), N_( "_Host file name:" ) }; | |
| 183 | - static const gchar * attr[] = { "local", "remote" }; | |
| 184 | 209 | GtkTable * table = GTK_TABLE(gtk_table_new(2,3,FALSE)); |
| 185 | 210 | GtkWidget * widget; |
| 186 | 211 | int f; |
| 187 | 212 | |
| 188 | 213 | gtk_container_set_border_width(GTK_CONTAINER(table),2); |
| 214 | + | |
| 215 | + if(dlg->option&LIB3270_FT_OPTION_RECEIVE) | |
| 216 | + { | |
| 217 | + // Receiving file, first the remote filename | |
| 218 | + dlg->file[1] = add_filename_entry(action,1,0,dlg,table); | |
| 219 | + | |
| 220 | + dlg->file[0] = add_filename_entry(action,0,1,dlg,table); | |
| 221 | + widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | |
| 222 | + g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | |
| 223 | + gtk_table_attach(GTK_TABLE(table),widget,3,4,1,2,0,0,2,2); | |
| 224 | + } | |
| 225 | + else | |
| 226 | + { | |
| 227 | + // Sending file, first the local filename | |
| 228 | + dlg->file[0] = add_filename_entry(action,0,0,dlg,table); | |
| 229 | + widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | |
| 230 | + g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | |
| 231 | + gtk_table_attach(GTK_TABLE(table),widget,3,4,0,1,0,0,2,2); | |
| 232 | + | |
| 233 | + dlg->file[1] = add_filename_entry(action,1,1,dlg,table); | |
| 234 | + } | |
| 235 | + | |
| 189 | 236 | |
| 237 | +/* | |
| 190 | 238 | for(f=0;f<2;f++) |
| 191 | - { | |
| 239 | + { | |
| 240 | + | |
| 192 | 241 | gchar *val; |
| 193 | 242 | |
| 194 | 243 | widget = gtk_label_new_with_mnemonic(gettext(label[f])); |
| ... | ... | @@ -209,12 +258,8 @@ static void add_file_fields(GObject *action, struct ftdialog *dlg) |
| 209 | 258 | gtk_label_set_mnemonic_widget(GTK_LABEL(widget),GTK_WIDGET(dlg->file[f])); |
| 210 | 259 | |
| 211 | 260 | gtk_table_attach(GTK_TABLE(table),GTK_WIDGET(dlg->file[f]),1,3,f,f+1,GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,2,2); |
| 212 | - | |
| 213 | 261 | } |
| 214 | - | |
| 215 | - widget = gtk_button_new_with_mnemonic( _( "_Browse" ) ); | |
| 216 | - g_signal_connect(G_OBJECT(widget),"clicked",G_CALLBACK(browse_file),dlg); | |
| 217 | - gtk_table_attach(GTK_TABLE(table),widget,3,4,0,1,0,0,2,2); | |
| 262 | +*/ | |
| 218 | 263 | |
| 219 | 264 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg->dialog))),GTK_WIDGET(table),FALSE,FALSE,2); |
| 220 | 265 | ... | ... |