Commit ed90bd96022beb9c40cc3389b0418d89175c5f26
1 parent
110bebbe
Exists in
master
and in
1 other branch
Adjustments in host settings dialog.
Showing
1 changed file
with
58 additions
and
46 deletions
Show diff stats
src/dialogs/settings/host.c
... | ... | @@ -42,10 +42,19 @@ |
42 | 42 | |
43 | 43 | /*--[ Globals ]--------------------------------------------------------------------------------------*/ |
44 | 44 | |
45 | + enum { | |
46 | + CONNECTION, | |
47 | + EMULATION, | |
48 | + | |
49 | + GRID_COUNT | |
50 | + }; | |
51 | + | |
45 | 52 | static const struct ToggleList |
46 | 53 | { |
47 | 54 | gint left; |
48 | 55 | gint top; |
56 | + gint width; | |
57 | + unsigned short grid; | |
49 | 58 | |
50 | 59 | LIB3270_TOGGLE_ID id; |
51 | 60 | } |
... | ... | @@ -54,19 +63,32 @@ |
54 | 63 | { |
55 | 64 | .left = 2, |
56 | 65 | .top = 3, |
66 | + .width = 1, | |
67 | + .grid = CONNECTION, | |
57 | 68 | .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP, |
58 | 69 | }, |
59 | 70 | { |
60 | 71 | .left = 3, |
61 | 72 | .top = 3, |
73 | + .width = 1, | |
74 | + .grid = CONNECTION, | |
62 | 75 | .id = LIB3270_TOGGLE_RECONNECT, |
63 | 76 | }, |
64 | 77 | { |
65 | 78 | .left = 4, |
66 | 79 | .top = 3, |
80 | + .width = 1, | |
81 | + .grid = CONNECTION, | |
67 | 82 | .id = LIB3270_TOGGLE_KEEP_ALIVE, |
68 | - } | |
83 | + }, | |
69 | 84 | |
85 | + { | |
86 | + .left = 6, | |
87 | + .top = 1, | |
88 | + .width = 2, | |
89 | + .grid = EMULATION, | |
90 | + .id = LIB3270_TOGGLE_ALTSCREEN, | |
91 | + } | |
70 | 92 | }; |
71 | 93 | |
72 | 94 | enum _entry |
... | ... | @@ -185,6 +207,7 @@ |
185 | 207 | { |
186 | 208 | ENTRY_FIELD_HEAD |
187 | 209 | |
210 | + unsigned short grid; | |
188 | 211 | gint max_length; |
189 | 212 | gint width_chars; |
190 | 213 | |
... | ... | @@ -194,6 +217,7 @@ |
194 | 217 | .top = 0, |
195 | 218 | .width = 4, |
196 | 219 | .height = 1, |
220 | + .grid = CONNECTION, | |
197 | 221 | |
198 | 222 | .label = N_( "_Host" ), |
199 | 223 | .tooltip = N_("Address or name of the host to connect."), |
... | ... | @@ -206,6 +230,7 @@ |
206 | 230 | .top = 1, |
207 | 231 | .width = 1, |
208 | 232 | .height = 1, |
233 | + .grid = CONNECTION, | |
209 | 234 | |
210 | 235 | .label = N_( "_Service" ), |
211 | 236 | .tooltip = N_("Port or service name (empty for \"telnet\")."), |
... | ... | @@ -218,6 +243,7 @@ |
218 | 243 | .left = 3, |
219 | 244 | .width = 2, |
220 | 245 | .height = 1, |
246 | + .grid = EMULATION, | |
221 | 247 | |
222 | 248 | .label = N_( "Oversize" ), |
223 | 249 | .tooltip = N_("Makes the screen larger than the default for the chosen model number."), |
... | ... | @@ -230,6 +256,7 @@ |
230 | 256 | .left = 0, |
231 | 257 | .width = 8, |
232 | 258 | .height = 1, |
259 | + .grid = EMULATION, | |
233 | 260 | |
234 | 261 | .label = N_( "Custom Remap" ), |
235 | 262 | .tooltip = N_("Path to XML file with custom charset mapping."), |
... | ... | @@ -242,6 +269,7 @@ |
242 | 269 | .top = 1, |
243 | 270 | .width = 2, |
244 | 271 | .height = 1, |
272 | + .grid = CONNECTION, | |
245 | 273 | |
246 | 274 | .label = N_( "L_U Names" ), |
247 | 275 | .tooltip = N_("Comma separated list of LU names."), |
... | ... | @@ -398,28 +426,36 @@ static gboolean auto_disconnect_format(GtkSpinButton *spin, G_GNUC_UNUSED gpoint |
398 | 426 | |
399 | 427 | static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
400 | 428 | { |
429 | + GtkWidget *grids[GRID_COUNT]; | |
430 | + | |
431 | + { | |
432 | + size_t grid; | |
433 | + | |
434 | + for(grid = 0; grid < G_N_ELEMENTS(grids); grid++) | |
435 | + grids[grid] = gtk_grid_new(); | |
436 | + | |
437 | + } | |
438 | + | |
401 | 439 | // Cell renderer |
402 | 440 | GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); |
403 | 441 | |
404 | 442 | // Connection properties |
405 | - GtkWidget * connection = gtk_grid_new(); | |
406 | - gtk_grid_set_row_spacing(GTK_GRID(connection),6); | |
407 | - gtk_grid_set_column_spacing(GTK_GRID(connection),12); | |
443 | + gtk_grid_set_row_spacing(GTK_GRID(grids[CONNECTION]),6); | |
444 | + gtk_grid_set_column_spacing(GTK_GRID(grids[CONNECTION]),12); | |
408 | 445 | |
409 | 446 | gtk_grid_attach( |
410 | 447 | GTK_GRID(widget), |
411 | - v3270_dialog_create_frame(connection,_("Connection")), | |
448 | + v3270_dialog_create_frame(grids[CONNECTION],_("Connection")), | |
412 | 449 | 0,0,10,5 |
413 | 450 | ); |
414 | 451 | |
415 | 452 | // Emulation properties |
416 | - GtkWidget * emulation = gtk_grid_new(); | |
417 | - gtk_grid_set_row_spacing(GTK_GRID(emulation),6); | |
418 | - gtk_grid_set_column_spacing(GTK_GRID(emulation),12); | |
453 | + gtk_grid_set_row_spacing(GTK_GRID(grids[EMULATION]),6); | |
454 | + gtk_grid_set_column_spacing(GTK_GRID(grids[EMULATION]),12); | |
419 | 455 | |
420 | 456 | gtk_grid_attach( |
421 | 457 | GTK_GRID(widget), |
422 | - v3270_dialog_create_frame(emulation,_("Emulation")), | |
458 | + v3270_dialog_create_frame(grids[EMULATION],_("Emulation")), | |
423 | 459 | 0,6,10,5 |
424 | 460 | ); |
425 | 461 | |
... | ... | @@ -432,6 +468,13 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
432 | 468 | widget->input.entry[entry] = GTK_ENTRY(gtk_entry_new()); |
433 | 469 | gtk_entry_set_max_length(widget->input.entry[entry],entryfields[entry].max_length); |
434 | 470 | gtk_entry_set_width_chars(widget->input.entry[entry],entryfields[entry].width_chars); |
471 | + | |
472 | + v3270_grid_attach( | |
473 | + GTK_GRID(grids[entryfields[entry].grid]), | |
474 | + (struct v3270_entry_field *) & entryfields[entry], | |
475 | + GTK_WIDGET(widget->input.entry[entry]) | |
476 | + ); | |
477 | + | |
435 | 478 | } |
436 | 479 | |
437 | 480 | // Custom settings |
... | ... | @@ -449,37 +492,6 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
449 | 492 | |
450 | 493 | g_signal_connect(G_OBJECT(widget->input.entry[ENTRY_OVERSIZE]),"changed",G_CALLBACK(oversize_changed),widget); |
451 | 494 | |
452 | - // Add to containers | |
453 | - v3270_grid_attach( | |
454 | - GTK_GRID(connection), | |
455 | - (struct v3270_entry_field *) & entryfields[0], | |
456 | - GTK_WIDGET(widget->input.entry[0]) | |
457 | - ); | |
458 | - | |
459 | - v3270_grid_attach( | |
460 | - GTK_GRID(connection), | |
461 | - (struct v3270_entry_field *) & entryfields[1], | |
462 | - GTK_WIDGET(widget->input.entry[1]) | |
463 | - ); | |
464 | - | |
465 | - v3270_grid_attach( | |
466 | - GTK_GRID(emulation), | |
467 | - (struct v3270_entry_field *) & entryfields[2], | |
468 | - GTK_WIDGET(widget->input.entry[2]) | |
469 | - ); | |
470 | - | |
471 | - v3270_grid_attach( | |
472 | - GTK_GRID(emulation), | |
473 | - (struct v3270_entry_field *) & entryfields[3], | |
474 | - GTK_WIDGET(widget->input.entry[3]) | |
475 | - ); | |
476 | - | |
477 | - v3270_grid_attach( | |
478 | - GTK_GRID(connection), | |
479 | - (struct v3270_entry_field *) & entryfields[4], | |
480 | - GTK_WIDGET(widget->input.entry[4]) | |
481 | - ); | |
482 | - | |
483 | 495 | } |
484 | 496 | |
485 | 497 | // Auto disconnect |
... | ... | @@ -494,8 +506,8 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
494 | 506 | |
495 | 507 | gtk_spin_button_set_increments(widget->input.auto_disconnect,1,1); |
496 | 508 | |
497 | - gtk_grid_attach(GTK_GRID(connection),label,0,2,1,1); | |
498 | - gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.auto_disconnect),1,2,1,1); | |
509 | + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),label,0,2,1,1); | |
510 | + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.auto_disconnect),1,2,1,1); | |
499 | 511 | g_signal_connect(G_OBJECT(widget->input.auto_disconnect),"output",G_CALLBACK(auto_disconnect_format),widget); |
500 | 512 | } |
501 | 513 | |
... | ... | @@ -504,7 +516,7 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
504 | 516 | widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." ))); |
505 | 517 | gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." )); |
506 | 518 | gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START); |
507 | - gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.ssl),1,3,1,1); | |
519 | + gtk_grid_attach(GTK_GRID(grids[CONNECTION]),GTK_WIDGET(widget->input.ssl),1,3,1,1); | |
508 | 520 | } |
509 | 521 | |
510 | 522 | // Toggle checkboxes |
... | ... | @@ -525,7 +537,7 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
525 | 537 | gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),tooltip); |
526 | 538 | |
527 | 539 | gtk_widget_set_halign(GTK_WIDGET(widget->input.toggles[toggle]),GTK_ALIGN_START); |
528 | - gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.toggles[toggle]),toggleList[toggle].left,toggleList[toggle].top,1,1); | |
540 | + gtk_grid_attach(GTK_GRID(grids[toggleList[toggle].grid]),GTK_WIDGET(widget->input.toggles[toggle]),toggleList[toggle].left,toggleList[toggle].top,toggleList[toggle].width,1); | |
529 | 541 | |
530 | 542 | } |
531 | 543 | |
... | ... | @@ -556,7 +568,7 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
556 | 568 | gtk_list_store_set((GtkListStore *) model, &iter, 0, g_dgettext(PACKAGE_NAME, combos[combo].labels[item]), 1, combos[combo].values[item], -1); |
557 | 569 | } |
558 | 570 | |
559 | - v3270_grid_attach(GTK_GRID(emulation), (struct v3270_entry_field *) & combos[combo], GTK_WIDGET(widget->input.combos[combo])); | |
571 | + v3270_grid_attach(GTK_GRID(grids[EMULATION]), (struct v3270_entry_field *) & combos[combo], GTK_WIDGET(widget->input.combos[combo])); | |
560 | 572 | |
561 | 573 | } |
562 | 574 | |
... | ... | @@ -598,7 +610,7 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
598 | 610 | |
599 | 611 | }; |
600 | 612 | |
601 | - v3270_grid_attach(GTK_GRID(emulation), &descriptor, GTK_WIDGET(widget->input.charset)); | |
613 | + v3270_grid_attach(GTK_GRID(grids[EMULATION]), &descriptor, GTK_WIDGET(widget->input.charset)); | |
602 | 614 | |
603 | 615 | } |
604 | 616 | ... | ... |