Commit ee1db88e2ef567fa77c433dce7a99d0c96daa749
1 parent
c03eb89e
Exists in
master
and in
5 other branches
Finalizando diálogo de configuração do host
Showing
1 changed file
with
44 additions
and
5 deletions
Show diff stats
src/pw3270/hostdialog.c
@@ -69,7 +69,39 @@ | @@ -69,7 +69,39 @@ | ||
69 | gtk_label_set_mnemonic_widget(GTK_LABEL(label),widget); | 69 | gtk_label_set_mnemonic_widget(GTK_LABEL(label),widget); |
70 | } | 70 | } |
71 | 71 | ||
72 | - void hostname_action(GtkAction *action, GtkWidget *widget) | 72 | + static void systype_changed(GtkComboBox *widget, int *iHostType) |
73 | + { | ||
74 | + GValue value = { 0, }; | ||
75 | + GtkTreeIter iter; | ||
76 | + | ||
77 | + if(!gtk_combo_box_get_active_iter(widget,&iter)) | ||
78 | + return; | ||
79 | + | ||
80 | + gtk_tree_model_get_value(gtk_combo_box_get_model(widget),&iter,1,&value); | ||
81 | + | ||
82 | + *iHostType = g_value_get_int(&value); | ||
83 | + | ||
84 | + trace("Selected host type: %s",host_type[*iHostType].name); | ||
85 | + | ||
86 | + } | ||
87 | + | ||
88 | + static void color_changed(GtkComboBox *widget, int *iColorTable) | ||
89 | + { | ||
90 | + GValue value = { 0, }; | ||
91 | + GtkTreeIter iter; | ||
92 | + | ||
93 | + if(!gtk_combo_box_get_active_iter(widget,&iter)) | ||
94 | + return; | ||
95 | + | ||
96 | + gtk_tree_model_get_value(gtk_combo_box_get_model(widget),&iter,1,&value); | ||
97 | + | ||
98 | + *iColorTable = g_value_get_int(&value); | ||
99 | + | ||
100 | + trace("Selected color type: %d",(int) colortable[*iColorTable].colors); | ||
101 | + | ||
102 | + } | ||
103 | + | ||
104 | + void hostname_action(GtkAction *action, GtkWidget *widget) | ||
73 | { | 105 | { |
74 | const gchar * title = g_object_get_data(G_OBJECT(action),"title"); | 106 | const gchar * title = g_object_get_data(G_OBJECT(action),"title"); |
75 | gchar * cfghost = get_string_from_config("host","uri",""); | 107 | gchar * cfghost = get_string_from_config("host","uri",""); |
@@ -144,13 +176,15 @@ | @@ -144,13 +176,15 @@ | ||
144 | gtk_list_store_set((GtkListStore *) model, &iter, 0, gettext(host_type[f].description), 1, f, -1); | 176 | gtk_list_store_set((GtkListStore *) model, &iter, 0, gettext(host_type[f].description), 1, f, -1); |
145 | 177 | ||
146 | if(!g_ascii_strcasecmp(host_type[f].name,str)) | 178 | if(!g_ascii_strcasecmp(host_type[f].name,str)) |
147 | - gtk_combo_box_set_active(GTK_COMBO_BOX(widget),f); | 179 | + gtk_combo_box_set_active(GTK_COMBO_BOX(widget),iHostType=f); |
148 | } | 180 | } |
149 | 181 | ||
150 | g_free(str); | 182 | g_free(str); |
151 | 183 | ||
152 | set_row(row++,widget,container,_("System _type:")); | 184 | set_row(row++,widget,container,_("System _type:")); |
153 | 185 | ||
186 | + g_signal_connect(G_OBJECT(widget),"changed",G_CALLBACK(systype_changed),&iHostType); | ||
187 | + | ||
154 | } | 188 | } |
155 | else | 189 | else |
156 | { | 190 | { |
@@ -175,18 +209,20 @@ | @@ -175,18 +209,20 @@ | ||
175 | GtkTreeIter iter; | 209 | GtkTreeIter iter; |
176 | 210 | ||
177 | gtk_list_store_append((GtkListStore *) model,&iter); | 211 | gtk_list_store_append((GtkListStore *) model,&iter); |
178 | - gtk_list_store_set((GtkListStore *) model, &iter, 0, gettext(colortable[f].description), 1, (int) colortable[f].colors, -1); | 212 | + gtk_list_store_set((GtkListStore *) model, &iter, 0, gettext(colortable[f].description), 1, (int) f, -1); |
179 | 213 | ||
180 | if(colortable[f].colors == colors) | 214 | if(colortable[f].colors == colors) |
181 | - gtk_combo_box_set_active(GTK_COMBO_BOX(widget),f); | 215 | + gtk_combo_box_set_active(GTK_COMBO_BOX(widget),iColorTable=f); |
182 | } | 216 | } |
183 | 217 | ||
184 | set_row(row++,widget,container,_("_Color table:")); | 218 | set_row(row++,widget,container,_("_Color table:")); |
185 | 219 | ||
220 | + g_signal_connect(G_OBJECT(widget),"changed",G_CALLBACK(color_changed),&iColorTable); | ||
221 | + | ||
186 | } | 222 | } |
187 | else | 223 | else |
188 | { | 224 | { |
189 | - #warning TODO: Configurar tabela de cores de acordo com systype | 225 | + #warning TODO: Configurar tabela de cores de acordo com colortype |
190 | } | 226 | } |
191 | 227 | ||
192 | gtk_container_add(GTK_CONTAINER(expander),GTK_WIDGET(container)); | 228 | gtk_container_add(GTK_CONTAINER(expander),GTK_WIDGET(container)); |
@@ -244,6 +280,9 @@ | @@ -244,6 +280,9 @@ | ||
244 | 280 | ||
245 | gtk_widget_set_visible(dialog,FALSE); | 281 | gtk_widget_set_visible(dialog,FALSE); |
246 | 282 | ||
283 | + set_string_to_config("host","systype",host_type[iHostType].name); | ||
284 | + set_integer_to_config("host","colortype",colortable[iColorTable].colors); | ||
285 | + | ||
247 | v3270_set_session_options(widget,host_type[iHostType].option); | 286 | v3270_set_session_options(widget,host_type[iHostType].option); |
248 | v3270_set_session_color_type(widget,colortable[iColorTable].colors); | 287 | v3270_set_session_color_type(widget,colortable[iColorTable].colors); |
249 | 288 |