comparison src/gtkaccount.c @ 12073:c59115994f67

[gaim-migrate @ 14368] We're including GtkComboBox, so we don't need this alternate code, right? committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 13 Nov 2005 22:16:54 +0000
parents e4666705944b
children 36a0c8719af3
comparison
equal deleted inserted replaced
12072:1f8bab186e80 12073:c59115994f67
128 128
129 /* Proxy Options */ 129 /* Proxy Options */
130 GtkWidget *proxy_frame; 130 GtkWidget *proxy_frame;
131 GtkWidget *proxy_vbox; 131 GtkWidget *proxy_vbox;
132 GtkWidget *proxy_dropdown; 132 GtkWidget *proxy_dropdown;
133 #if !GTK_CHECK_VERSION(2,4,0)
134 GtkWidget *proxy_menu;
135 #endif
136 GtkWidget *proxy_host_entry; 133 GtkWidget *proxy_host_entry;
137 GtkWidget *proxy_port_entry; 134 GtkWidget *proxy_port_entry;
138 GtkWidget *proxy_user_entry; 135 GtkWidget *proxy_user_entry;
139 GtkWidget *proxy_pass_entry; 136 GtkWidget *proxy_pass_entry;
140 137
1116 1113
1117 static GtkWidget * 1114 static GtkWidget *
1118 make_proxy_dropdown(void) 1115 make_proxy_dropdown(void)
1119 { 1116 {
1120 GtkWidget *dropdown; 1117 GtkWidget *dropdown;
1121
1122 #if GTK_CHECK_VERSION(2,4,0)
1123 GtkListStore *model; 1118 GtkListStore *model;
1124 GtkTreeIter iter; 1119 GtkTreeIter iter;
1125 GtkCellRenderer *renderer; 1120 GtkCellRenderer *renderer;
1126 1121
1127 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); 1122 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
1166 renderer = gtk_cell_renderer_text_new(); 1161 renderer = gtk_cell_renderer_text_new();
1167 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE); 1162 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE);
1168 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, 1163 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer,
1169 "text", 0, NULL); 1164 "text", 0, NULL);
1170 1165
1171 #else
1172 GtkWidget *menu;
1173 GtkWidget *item;
1174
1175 dropdown = gtk_option_menu_new();
1176 menu = gtk_menu_new();
1177
1178 /* Use Global Proxy Settings */
1179 item = gtk_menu_item_new_with_label(_("Use Global Proxy Settings"));
1180 g_object_set_data(G_OBJECT(item), "proxytype",
1181 GINT_TO_POINTER(GAIM_PROXY_USE_GLOBAL));
1182 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1183 gtk_widget_show(item);
1184
1185 /* No Proxy */
1186 item = gtk_menu_item_new_with_label(_("No Proxy"));
1187 g_object_set_data(G_OBJECT(item), "proxytype",
1188 GINT_TO_POINTER(GAIM_PROXY_NONE));
1189 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1190 gtk_widget_show(item);
1191
1192 /* HTTP */
1193 item = gtk_menu_item_new_with_label(_("HTTP"));
1194 g_object_set_data(G_OBJECT(item), "proxytype",
1195 GINT_TO_POINTER(GAIM_PROXY_HTTP));
1196 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1197 gtk_widget_show(item);
1198
1199 /* SOCKS 4 */
1200 item = gtk_menu_item_new_with_label(_("SOCKS 4"));
1201 g_object_set_data(G_OBJECT(item), "proxytype",
1202 GINT_TO_POINTER(GAIM_PROXY_SOCKS4));
1203 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1204 gtk_widget_show(item);
1205
1206 /* SOCKS 5 */
1207 item = gtk_menu_item_new_with_label(_("SOCKS 5"));
1208 g_object_set_data(G_OBJECT(item), "proxytype",
1209 GINT_TO_POINTER(GAIM_PROXY_SOCKS5));
1210 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1211 gtk_widget_show(item);
1212
1213 /* Use Environmental Settings */
1214 item = gtk_menu_item_new_with_label(_("Use Environmental Settings"));
1215 g_object_set_data(G_OBJECT(item), "proxytype",
1216 GINT_TO_POINTER(GAIM_PROXY_USE_ENVVAR));
1217 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
1218 gtk_widget_show(item);
1219
1220 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu);
1221 #endif
1222
1223 return dropdown; 1166 return dropdown;
1224 } 1167 }
1225 1168
1226 static void 1169 static void
1227 proxy_type_changed_cb(GtkWidget *menu, AccountPrefsDialog *dialog) 1170 proxy_type_changed_cb(GtkWidget *menu, AccountPrefsDialog *dialog)
1228 { 1171 {
1229 #if GTK_CHECK_VERSION(2,4,0)
1230 dialog->new_proxy_type = 1172 dialog->new_proxy_type =
1231 gtk_combo_box_get_active(GTK_COMBO_BOX(menu)) - 1; 1173 gtk_combo_box_get_active(GTK_COMBO_BOX(menu)) - 1;
1232 #else
1233 dialog->new_proxy_type =
1234 gtk_option_menu_get_history(GTK_OPTION_MENU(menu)) - 1;
1235 #endif
1236 1174
1237 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL || 1175 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL ||
1238 dialog->new_proxy_type == GAIM_PROXY_NONE || 1176 dialog->new_proxy_type == GAIM_PROXY_NONE ||
1239 dialog->new_proxy_type == GAIM_PROXY_USE_ENVVAR) { 1177 dialog->new_proxy_type == GAIM_PROXY_USE_ENVVAR) {
1240 1178
1281 gtk_container_add(GTK_CONTAINER(frame), vbox); 1219 gtk_container_add(GTK_CONTAINER(frame), vbox);
1282 gtk_widget_show(vbox); 1220 gtk_widget_show(vbox);
1283 1221
1284 /* Proxy Type drop-down. */ 1222 /* Proxy Type drop-down. */
1285 dialog->proxy_dropdown = make_proxy_dropdown(); 1223 dialog->proxy_dropdown = make_proxy_dropdown();
1286 #if !GTK_CHECK_VERSION(2,4,0)
1287 dialog->proxy_menu =
1288 gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->proxy_dropdown));
1289 #endif
1290 1224
1291 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown); 1225 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown);
1292 1226
1293 /* Setup the second vbox, which may be hidden at times. */ 1227 /* Setup the second vbox, which may be hidden at times. */
1294 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE); 1228 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, GAIM_HIG_BOX_SPACE);
1323 GaimProxyType type = gaim_proxy_info_get_type(proxy_info); 1257 GaimProxyType type = gaim_proxy_info_get_type(proxy_info);
1324 1258
1325 /* Hah! */ 1259 /* Hah! */
1326 /* I dunno what you're laughing about, fuzz ball. */ 1260 /* I dunno what you're laughing about, fuzz ball. */
1327 dialog->new_proxy_type = type; 1261 dialog->new_proxy_type = type;
1328 #if GTK_CHECK_VERSION(2,4,0)
1329 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown), 1262 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
1330 type + 1); 1263 type + 1);
1331 #else
1332 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown),
1333 (int)type + 1);
1334 #endif
1335 1264
1336 if (type == GAIM_PROXY_USE_GLOBAL || type == GAIM_PROXY_NONE || 1265 if (type == GAIM_PROXY_USE_GLOBAL || type == GAIM_PROXY_NONE ||
1337 type == GAIM_PROXY_USE_ENVVAR) { 1266 type == GAIM_PROXY_USE_ENVVAR) {
1338 gtk_widget_hide_all(vbox2); 1267 gtk_widget_hide_all(vbox2);
1339 } 1268 }
1359 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value); 1288 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value);
1360 } 1289 }
1361 } 1290 }
1362 else { 1291 else {
1363 dialog->new_proxy_type = GAIM_PROXY_USE_GLOBAL; 1292 dialog->new_proxy_type = GAIM_PROXY_USE_GLOBAL;
1364 #if GTK_CHECK_VERSION(2,4,0)
1365 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown), 1293 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown),
1366 dialog->new_proxy_type + 1); 1294 dialog->new_proxy_type + 1);
1367 #else
1368 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown),
1369 dialog->new_proxy_type + 1);
1370 #endif
1371 gtk_widget_hide_all(vbox2); 1295 gtk_widget_hide_all(vbox2);
1372 } 1296 }
1373 1297
1374 /* Connect signals. */ 1298 /* Connect signals. */
1375 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed", 1299 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed",