| 126 |
126 |
| 127 /* Proxy Options */ |
127 /* Proxy Options */ |
| 128 GtkWidget *proxy_frame; |
128 GtkWidget *proxy_frame; |
| 129 GtkWidget *proxy_vbox; |
129 GtkWidget *proxy_vbox; |
| 130 GtkWidget *proxy_dropdown; |
130 GtkWidget *proxy_dropdown; |
| |
131 #if !GTK_CHECK_VERSION(2,4,0) |
| 131 GtkWidget *proxy_menu; |
132 GtkWidget *proxy_menu; |
| |
133 #endif |
| 132 GtkWidget *proxy_host_entry; |
134 GtkWidget *proxy_host_entry; |
| 133 GtkWidget *proxy_port_entry; |
135 GtkWidget *proxy_port_entry; |
| 134 GtkWidget *proxy_user_entry; |
136 GtkWidget *proxy_user_entry; |
| 135 GtkWidget *proxy_pass_entry; |
137 GtkWidget *proxy_pass_entry; |
| 136 |
138 |
| 760 |
762 |
| 761 static GtkWidget * |
763 static GtkWidget * |
| 762 make_proxy_dropdown(void) |
764 make_proxy_dropdown(void) |
| 763 { |
765 { |
| 764 GtkWidget *dropdown; |
766 GtkWidget *dropdown; |
| |
767 |
| |
768 #if GTK_CHECK_VERSION(2,4,0) |
| |
769 GtkListStore *model; |
| |
770 GtkTreeIter iter; |
| |
771 GtkCellRenderer *renderer; |
| |
772 |
| |
773 model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT); |
| |
774 dropdown = gtk_combo_box_new_with_model(GTK_TREE_MODEL(model)); |
| |
775 |
| |
776 gtk_list_store_append(model, &iter); |
| |
777 gtk_list_store_set(model, &iter, |
| |
778 0, _("Use Global Proxy Settings"), |
| |
779 1, GAIM_PROXY_USE_GLOBAL |
| |
780 -1); |
| |
781 |
| |
782 gtk_list_store_append(model, &iter); |
| |
783 gtk_list_store_set(model, &iter, |
| |
784 0, _("No Proxy"), |
| |
785 1, GAIM_PROXY_NONE, |
| |
786 -1); |
| |
787 |
| |
788 gtk_list_store_append(model, &iter); |
| |
789 gtk_list_store_set(model, &iter, |
| |
790 0, _("HTTP"), |
| |
791 1, GAIM_PROXY_HTTP, |
| |
792 -1); |
| |
793 |
| |
794 gtk_list_store_append(model, &iter); |
| |
795 gtk_list_store_set(model, &iter, |
| |
796 0, _("SOCKS 4"), |
| |
797 1, GAIM_PROXY_SOCKS4, |
| |
798 -1); |
| |
799 |
| |
800 gtk_list_store_append(model, &iter); |
| |
801 gtk_list_store_set(model, &iter, |
| |
802 0, _("SOCKS 5"), |
| |
803 1, GAIM_PROXY_SOCKS5, |
| |
804 -1); |
| |
805 |
| |
806 gtk_list_store_append(model, &iter); |
| |
807 gtk_list_store_set(model, &iter, |
| |
808 0, _("Use Environmental Settings"), |
| |
809 1, GAIM_PROXY_USE_ENVVAR, |
| |
810 -1); |
| |
811 |
| |
812 renderer = gtk_cell_renderer_text_new(); |
| |
813 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dropdown), renderer, TRUE); |
| |
814 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dropdown), renderer, |
| |
815 "text", 0, NULL); |
| |
816 |
| |
817 #else |
| 765 GtkWidget *menu; |
818 GtkWidget *menu; |
| 766 GtkWidget *item; |
819 GtkWidget *item; |
| 767 |
820 |
| 768 dropdown = gtk_option_menu_new(); |
821 dropdown = gtk_option_menu_new(); |
| 769 menu = gtk_menu_new(); |
822 menu = gtk_menu_new(); |
| 809 GINT_TO_POINTER(GAIM_PROXY_USE_ENVVAR)); |
862 GINT_TO_POINTER(GAIM_PROXY_USE_ENVVAR)); |
| 810 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
863 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
| 811 gtk_widget_show(item); |
864 gtk_widget_show(item); |
| 812 |
865 |
| 813 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
866 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
| |
867 #endif |
| 814 |
868 |
| 815 return dropdown; |
869 return dropdown; |
| 816 } |
870 } |
| 817 |
871 |
| 818 static void |
872 static void |
| 819 proxy_type_changed_cb(GtkWidget *optmenu, AccountPrefsDialog *dialog) |
873 proxy_type_changed_cb(GtkWidget *menu, AccountPrefsDialog *dialog) |
| 820 { |
874 { |
| |
875 #if GTK_CHECK_VERSION(2,4,0) |
| 821 dialog->new_proxy_type = |
876 dialog->new_proxy_type = |
| 822 gtk_option_menu_get_history(GTK_OPTION_MENU(optmenu)) - 1; |
877 gtk_combo_box_get_active(GTK_COMBO_BOX(menu)) - 1; |
| |
878 #else |
| |
879 dialog->new_proxy_type = |
| |
880 gtk_option_menu_get_history(GTK_OPTION_MENU(menu)) - 1; |
| |
881 #endif |
| 823 |
882 |
| 824 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL || |
883 if (dialog->new_proxy_type == GAIM_PROXY_USE_GLOBAL || |
| 825 dialog->new_proxy_type == GAIM_PROXY_NONE || |
884 dialog->new_proxy_type == GAIM_PROXY_NONE || |
| 826 dialog->new_proxy_type == GAIM_PROXY_USE_ENVVAR) { |
885 dialog->new_proxy_type == GAIM_PROXY_USE_ENVVAR) { |
| 827 |
886 |
| 868 gtk_container_add(GTK_CONTAINER(frame), vbox); |
927 gtk_container_add(GTK_CONTAINER(frame), vbox); |
| 869 gtk_widget_show(vbox); |
928 gtk_widget_show(vbox); |
| 870 |
929 |
| 871 /* Proxy Type drop-down. */ |
930 /* Proxy Type drop-down. */ |
| 872 dialog->proxy_dropdown = make_proxy_dropdown(); |
931 dialog->proxy_dropdown = make_proxy_dropdown(); |
| |
932 #if !GTK_CHECK_VERSION(2,4,0) |
| 873 dialog->proxy_menu = |
933 dialog->proxy_menu = |
| 874 gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->proxy_dropdown)); |
934 gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->proxy_dropdown)); |
| |
935 #endif |
| 875 |
936 |
| 876 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown); |
937 add_pref_box(dialog, vbox, _("Proxy _type:"), dialog->proxy_dropdown); |
| 877 |
938 |
| 878 /* Setup the second vbox, which may be hidden at times. */ |
939 /* Setup the second vbox, which may be hidden at times. */ |
| 879 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, 6); |
940 dialog->proxy_vbox = vbox2 = gtk_vbox_new(FALSE, 6); |
| 907 GaimProxyType type = gaim_proxy_info_get_type(proxy_info); |
968 GaimProxyType type = gaim_proxy_info_get_type(proxy_info); |
| 908 |
969 |
| 909 /* Hah! */ |
970 /* Hah! */ |
| 910 /* I dunno what you're laughing about, fuzz ball. */ |
971 /* I dunno what you're laughing about, fuzz ball. */ |
| 911 dialog->new_proxy_type = type; |
972 dialog->new_proxy_type = type; |
| |
973 #if GTK_CHECK_VERSION(2,4,0) |
| |
974 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown), |
| |
975 type - 1); |
| |
976 #else |
| 912 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown), |
977 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown), |
| 913 (int)type + 1); |
978 (int)type + 1); |
| |
979 #endif |
| 914 |
980 |
| 915 if (type == GAIM_PROXY_USE_GLOBAL || type == GAIM_PROXY_NONE || |
981 if (type == GAIM_PROXY_USE_GLOBAL || type == GAIM_PROXY_NONE || |
| 916 type == GAIM_PROXY_USE_ENVVAR) { |
982 type == GAIM_PROXY_USE_ENVVAR) { |
| 917 gtk_widget_hide_all(vbox2); |
983 gtk_widget_hide_all(vbox2); |
| 918 } |
984 } |
| 938 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value); |
1004 gtk_entry_set_text(GTK_ENTRY(dialog->proxy_pass_entry), value); |
| 939 } |
1005 } |
| 940 } |
1006 } |
| 941 else { |
1007 else { |
| 942 dialog->new_proxy_type = GAIM_PROXY_USE_GLOBAL; |
1008 dialog->new_proxy_type = GAIM_PROXY_USE_GLOBAL; |
| |
1009 #if GTK_CHECK_VERSION(2,4,0) |
| |
1010 gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->proxy_dropdown), |
| |
1011 dialog->new_proxy_type + 1); |
| |
1012 #else |
| 943 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown), |
1013 gtk_option_menu_set_history(GTK_OPTION_MENU(dialog->proxy_dropdown), |
| 944 dialog->new_proxy_type + 1); |
1014 dialog->new_proxy_type + 1); |
| |
1015 #endif |
| 945 gtk_widget_hide_all(vbox2); |
1016 gtk_widget_hide_all(vbox2); |
| 946 } |
1017 } |
| 947 |
1018 |
| 948 /* Connect signals. */ |
1019 /* Connect signals. */ |
| 949 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed", |
1020 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed", |