Mercurial > pidgin
diff src/prefs.c @ 1881:a02584b98823
[gaim-migrate @ 1891]
C:)
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 23 May 2001 07:59:05 +0000 |
parents | 00aef397a1fe |
children | 43006f782adb |
line wrap: on
line diff
--- a/src/prefs.c Tue May 22 23:23:28 2001 +0000 +++ b/src/prefs.c Wed May 23 07:59:05 2001 +0000 @@ -45,6 +45,7 @@ #include "pixmaps/bgcolor.xpm" #include "pixmaps/fgcolor.xpm" #include "pixmaps/save.xpm" +#include "proxy.h" struct debug_window *dw = NULL; static GtkWidget *prefs = NULL; @@ -313,6 +314,170 @@ gtk_widget_show(prefdialog); } +#define PROXYHOST 0 +#define PROXYPORT 1 +#define PROXYTYPE 2 +#define PROXYUSER 3 +#define PROXYPASS 4 + +static void proxy_print_option(GtkEntry *entry, int entrynum) +{ + if (entrynum == PROXYHOST) + g_snprintf(proxyhost, sizeof(proxyhost), "%s", gtk_entry_get_text(entry)); + else if (entrynum == PROXYPORT) + proxyport = atoi(gtk_entry_get_text(entry)); + else if (entrynum == PROXYUSER) + g_snprintf(proxyuser, sizeof(proxyuser), "%s", gtk_entry_get_text(entry)); + else if (entrynum == PROXYPASS) + g_snprintf(proxypass, sizeof(proxypass), "%s", gtk_entry_get_text(entry)); + save_prefs(); +} + +static void proxy_print_optionrad(GtkRadioButton *entry, int entrynum) +{ + proxytype = entrynum; + save_prefs(); +} + +static void proxy_page() +{ + GtkWidget *parent; + GtkWidget *vbox; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *entry; + GtkWidget *first, *opt; + + parent = prefdialog->parent; + gtk_widget_destroy(prefdialog); + + prefdialog = gtk_frame_new(_("Proxy Options")); + gtk_container_add(GTK_CONTAINER(parent), prefdialog); + + vbox = gtk_vbox_new(FALSE, 5); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); + gtk_container_add(GTK_CONTAINER(prefdialog), vbox); + gtk_widget_show(vbox); + + label = gtk_label_new(_("All options take effect immediately unless otherwise noted.")); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + label = gtk_label_new(_("Not all protocols can use these proxy options. Please see the " + "README file for details.")); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + hbox = gtk_hbox_new(TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + first = gtk_radio_button_new_with_label(NULL, "No proxy"); + gtk_box_pack_start(GTK_BOX(hbox), first, FALSE, FALSE, 0); + gtk_signal_connect(GTK_OBJECT(first), "clicked", + GTK_SIGNAL_FUNC(proxy_print_optionrad), (void*)PROXY_NONE); + gtk_widget_show(first); + if (proxytype == PROXY_NONE) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(first), TRUE); + + opt = + gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(first)), "SOCKS 4"); + gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 0); + gtk_signal_connect(GTK_OBJECT(opt), "clicked", + GTK_SIGNAL_FUNC(proxy_print_optionrad), (void*)PROXY_SOCKS4); + gtk_widget_show(opt); + if (proxytype == PROXY_SOCKS4) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + + hbox = gtk_hbox_new(TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + opt = + gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(first)), "SOCKS 5"); + gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 0); + gtk_signal_connect(GTK_OBJECT(opt), "clicked", + GTK_SIGNAL_FUNC(proxy_print_optionrad), (void*)PROXY_SOCKS5); + gtk_widget_show(opt); + if (proxytype == PROXY_SOCKS5) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + + opt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(first)), "HTTP"); + gtk_box_pack_start(GTK_BOX(hbox), opt, FALSE, FALSE, 0); + gtk_signal_connect(GTK_OBJECT(opt), "clicked", + GTK_SIGNAL_FUNC(proxy_print_optionrad), (void*)PROXY_HTTP); + gtk_widget_show(opt); + if (proxytype == PROXY_HTTP) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); + + hbox = gtk_hbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + label = gtk_label_new("Proxy Host:"); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + entry = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(entry), "changed", + GTK_SIGNAL_FUNC(proxy_print_option), (void*)PROXYHOST); + gtk_entry_set_text(GTK_ENTRY(entry), proxyhost); + gtk_widget_show(entry); + + hbox = gtk_hbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + label = gtk_label_new("Proxy Port:"); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + entry = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(entry), "changed", + GTK_SIGNAL_FUNC(proxy_print_option), (void*)PROXYPORT); + if (proxyport) { + char buf[128]; + g_snprintf(buf, sizeof(buf), "%d", proxyport); + gtk_entry_set_text(GTK_ENTRY(entry), buf); + } + gtk_widget_show(entry); + + hbox = gtk_hbox_new(TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + label = gtk_label_new("Proxy User:"); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + entry = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 5); + gtk_signal_connect(GTK_OBJECT(entry), "changed", + GTK_SIGNAL_FUNC(proxy_print_option), (void*)PROXYUSER); + gtk_entry_set_text(GTK_ENTRY(entry), proxyuser); + gtk_widget_show(entry); + + hbox = gtk_hbox_new(TRUE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + + label = gtk_label_new("Proxy Password:"); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); + gtk_widget_show(label); + + entry = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 5); + gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); + gtk_signal_connect(GTK_OBJECT(entry), "changed", + GTK_SIGNAL_FUNC(proxy_print_option), (void*)PROXYPASS); + gtk_entry_set_text(GTK_ENTRY(entry), proxypass); + gtk_widget_show(entry); + + gtk_widget_show(prefdialog); +} + static void buddy_page() { GtkWidget *parent; @@ -914,7 +1079,7 @@ static void refresh_list(GtkWidget *w, gpointer *m) { - grab_url(NULL, "http://www.aol.com/community/chat/allchats.html", ref_list_callback, NULL); + grab_url("http://www.aol.com/community/chat/allchats.html", ref_list_callback, NULL); } static void add_chat(GtkWidget *w, gpointer *m) @@ -2479,6 +2644,7 @@ void prefs_build_general() { + GtkCTreeNode *node; char *text[1]; text[0] = _("General"); @@ -2486,6 +2652,11 @@ text, 5, NULL, NULL, NULL, NULL, 0, 1); gtk_ctree_node_set_row_data(GTK_CTREE(preftree), general_node, general_page); + text[0] = _("Proxy"); + node = gtk_ctree_insert_node(GTK_CTREE(preftree), general_node, NULL, + text, 5, NULL, NULL, NULL, NULL, 0, 1); + gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, proxy_page); + gtk_ctree_select(GTK_CTREE(preftree), general_node); }