Commit 1c49b810deabb6422f80273e4243c28270da1396
1 parent
cd9a3e63
Exists in
master
and in
1 other branch
Adding connection toggles in the host settings dialog.
Showing
1 changed file
with
74 additions
and
7 deletions
Show diff stats
src/dialogs/hostselect.c
| @@ -37,8 +37,31 @@ | @@ -37,8 +37,31 @@ | ||
| 37 | #include <v3270/dialogs.h> | 37 | #include <v3270/dialogs.h> |
| 38 | #include <v3270/settings.h> | 38 | #include <v3270/settings.h> |
| 39 | #include <lib3270/log.h> | 39 | #include <lib3270/log.h> |
| 40 | + #include <lib3270/toggle.h> | ||
| 40 | 41 | ||
| 41 | -/*--[ Widget definition ]----------------------------------------------------------------------------*/ | 42 | +/*--[ Globals ]--------------------------------------------------------------------------------------*/ |
| 43 | + | ||
| 44 | + static const struct ToggleList | ||
| 45 | + { | ||
| 46 | + gint left; | ||
| 47 | + gint top; | ||
| 48 | + | ||
| 49 | + LIB3270_TOGGLE_ID id; | ||
| 50 | + } | ||
| 51 | + toggleList[] = | ||
| 52 | + { | ||
| 53 | + { | ||
| 54 | + .left = 3, | ||
| 55 | + .top = 1, | ||
| 56 | + .id = LIB3270_TOGGLE_CONNECT_ON_STARTUP, | ||
| 57 | + }, | ||
| 58 | + { | ||
| 59 | + .left = 4, | ||
| 60 | + .top = 1, | ||
| 61 | + .id = LIB3270_TOGGLE_RECONNECT, | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + }; | ||
| 42 | 65 | ||
| 43 | enum _entry | 66 | enum _entry |
| 44 | { | 67 | { |
| @@ -162,7 +185,7 @@ | @@ -162,7 +185,7 @@ | ||
| 162 | { | 185 | { |
| 163 | .left = 0, | 186 | .left = 0, |
| 164 | .top = 0, | 187 | .top = 0, |
| 165 | - .width = 5, | 188 | + .width = 4, |
| 166 | .height = 1, | 189 | .height = 1, |
| 167 | 190 | ||
| 168 | .label = N_( "_Host" ), | 191 | .label = N_( "_Host" ), |
| @@ -215,10 +238,11 @@ | @@ -215,10 +238,11 @@ | ||
| 215 | 238 | ||
| 216 | struct | 239 | struct |
| 217 | { | 240 | { |
| 218 | - GtkEntry * entry[G_N_ELEMENTS(entryfields)]; ///< @brief Entry fields for host & service name | ||
| 219 | - GtkToggleButton * ssl; ///< @brief SSL Connection? | ||
| 220 | - GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes | ||
| 221 | - GtkComboBox * charset; ///< @brief Charset combo box | 241 | + GtkEntry * entry[G_N_ELEMENTS(entryfields)]; ///< @brief Entry fields for host & service name. |
| 242 | + GtkToggleButton * ssl; ///< @brief SSL Connection? | ||
| 243 | + GtkComboBox * combos[G_N_ELEMENTS(combos)]; ///< @brief Combo-boxes. | ||
| 244 | + GtkComboBox * charset; ///< @brief Charset combo box. | ||
| 245 | + GtkToggleButton * toggles[G_N_ELEMENTS(toggleList)]; ///< @brief Toggle checks. | ||
| 222 | 246 | ||
| 223 | } input; | 247 | } input; |
| 224 | 248 | ||
| @@ -423,7 +447,31 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) | @@ -423,7 +447,31 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) | ||
| 423 | widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." ))); | 447 | widget->input.ssl = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_mnemonic(_( "_Secure connection." ))); |
| 424 | gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." )); | 448 | gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.ssl),_( "Check for SSL secure connection." )); |
| 425 | gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START); | 449 | gtk_widget_set_halign(GTK_WIDGET(widget->input.ssl),GTK_ALIGN_START); |
| 426 | - gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.ssl),3,1,1,1); | 450 | + gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.ssl),2,1,1,1); |
| 451 | + } | ||
| 452 | + | ||
| 453 | + // Toggle checkboxes | ||
| 454 | + { | ||
| 455 | + size_t toggle; | ||
| 456 | + | ||
| 457 | + for(toggle = 0; toggle < G_N_ELEMENTS(toggleList); toggle++) | ||
| 458 | + { | ||
| 459 | + const LIB3270_TOGGLE * descriptor = lib3270_toggle_get_from_id(toggleList[toggle].id); | ||
| 460 | + | ||
| 461 | + if(descriptor) | ||
| 462 | + { | ||
| 463 | + widget->input.toggles[toggle] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(gettext(descriptor->label))); | ||
| 464 | + | ||
| 465 | + if(descriptor->summary) | ||
| 466 | + gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),gettext(descriptor->summary)); | ||
| 467 | + | ||
| 468 | + gtk_widget_set_halign(GTK_WIDGET(widget->input.toggles[toggle]),GTK_ALIGN_START); | ||
| 469 | + gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.toggles[toggle]),toggleList[toggle].left,toggleList[toggle].top,1,1); | ||
| 470 | + | ||
| 471 | + } | ||
| 472 | + | ||
| 473 | + } | ||
| 474 | + | ||
| 427 | } | 475 | } |
| 428 | 476 | ||
| 429 | // Create combo boxes | 477 | // Create combo boxes |
| @@ -613,6 +661,15 @@ static void apply(GtkWidget *w, GtkWidget *terminal) | @@ -613,6 +661,15 @@ static void apply(GtkWidget *w, GtkWidget *terminal) | ||
| 613 | 661 | ||
| 614 | } | 662 | } |
| 615 | 663 | ||
| 664 | + // Apply toggles | ||
| 665 | + size_t toggle; | ||
| 666 | + | ||
| 667 | + for(toggle = 0; toggle < G_N_ELEMENTS(toggleList); toggle++) | ||
| 668 | + { | ||
| 669 | + if(widget->input.toggles[toggle]) | ||
| 670 | + v3270_set_toggle(terminal, toggleList[toggle].id, gtk_toggle_button_get_active(widget->input.toggles[toggle])); | ||
| 671 | + } | ||
| 672 | + | ||
| 616 | } | 673 | } |
| 617 | 674 | ||
| 618 | static void load(GtkWidget *w, GtkWidget *terminal) | 675 | static void load(GtkWidget *w, GtkWidget *terminal) |
| @@ -717,6 +774,7 @@ static void load(GtkWidget *w, GtkWidget *terminal) | @@ -717,6 +774,7 @@ static void load(GtkWidget *w, GtkWidget *terminal) | ||
| 717 | 774 | ||
| 718 | } while(gtk_tree_model_iter_next(model,&iter)); | 775 | } while(gtk_tree_model_iter_next(model,&iter)); |
| 719 | 776 | ||
| 777 | + | ||
| 720 | } | 778 | } |
| 721 | 779 | ||
| 722 | } | 780 | } |
| @@ -727,5 +785,14 @@ static void load(GtkWidget *w, GtkWidget *terminal) | @@ -727,5 +785,14 @@ static void load(GtkWidget *w, GtkWidget *terminal) | ||
| 727 | 785 | ||
| 728 | } | 786 | } |
| 729 | 787 | ||
| 788 | + // Load toggles | ||
| 789 | + size_t toggle; | ||
| 790 | + | ||
| 791 | + for(toggle = 0; toggle < G_N_ELEMENTS(toggleList); toggle++) | ||
| 792 | + { | ||
| 793 | + if(widget->input.toggles[toggle]) | ||
| 794 | + gtk_toggle_button_set_active(widget->input.toggles[toggle],v3270_get_toggle(terminal,toggleList[toggle].id)); | ||
| 795 | + } | ||
| 796 | + | ||
| 730 | } | 797 | } |
| 731 | 798 |