| 167 /************************************************************************** |
167 /************************************************************************** |
| 168 * Add/Modify Account dialog |
168 * Add/Modify Account dialog |
| 169 **************************************************************************/ |
169 **************************************************************************/ |
| 170 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
170 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
| 171 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
171 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
| 172 static void add_protocol_options(AccountPrefsDialog *dialog); |
172 static void add_account_options(AccountPrefsDialog *dialog); |
| 173 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
173 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
| 174 static void add_voice_options(AccountPrefsDialog *dialog); |
174 static void add_voice_options(AccountPrefsDialog *dialog); |
| 175 |
175 |
| 176 static GtkWidget * |
176 static GtkWidget * |
| 177 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent, |
177 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent, |
| 244 if (dialog->account != NULL) |
244 if (dialog->account != NULL) |
| 245 purple_account_clear_settings(dialog->account); |
245 purple_account_clear_settings(dialog->account); |
| 246 |
246 |
| 247 add_login_options(dialog, dialog->top_vbox); |
247 add_login_options(dialog, dialog->top_vbox); |
| 248 add_user_options(dialog, dialog->top_vbox); |
248 add_user_options(dialog, dialog->top_vbox); |
| 249 add_protocol_options(dialog); |
249 add_account_options(dialog); |
| 250 add_voice_options(dialog); |
250 add_voice_options(dialog); |
| 251 |
251 |
| 252 gtk_widget_grab_focus(dialog->protocol_menu); |
252 gtk_widget_grab_focus(dialog->protocol_menu); |
| 253 |
253 |
| 254 if (!dialog->protocol || !PURPLE_PROTOCOL_IMPLEMENTS(dialog->protocol, SERVER_IFACE, register_user)) { |
254 if (!dialog->protocol || !PURPLE_PROTOCOL_IMPLEMENTS(dialog->protocol, SERVER_IFACE, register_user)) { |
| 889 } |
889 } |
| 890 #endif |
890 #endif |
| 891 } |
891 } |
| 892 |
892 |
| 893 static void |
893 static void |
| 894 add_protocol_options(AccountPrefsDialog *dialog) |
894 add_account_options(AccountPrefsDialog *dialog) |
| 895 { |
895 { |
| 896 PurpleAccountOption *option; |
896 PurpleAccountOption *option; |
| 897 PurpleAccount *account; |
897 PurpleAccount *account; |
| 898 GtkWidget *vbox, *check, *entry, *combo; |
898 GtkWidget *vbox, *check, *entry, *combo; |
| 899 GList *list, *node; |
899 GList *list, *node; |
| 921 g_free(opt_entry); |
921 g_free(opt_entry); |
| 922 dialog->protocol_opt_entries = g_list_delete_link(dialog->protocol_opt_entries, dialog->protocol_opt_entries); |
922 dialog->protocol_opt_entries = g_list_delete_link(dialog->protocol_opt_entries, dialog->protocol_opt_entries); |
| 923 } |
923 } |
| 924 |
924 |
| 925 if (dialog->protocol == NULL || |
925 if (dialog->protocol == NULL || |
| 926 purple_protocol_get_protocol_options(dialog->protocol) == NULL) |
926 purple_protocol_get_account_options(dialog->protocol) == NULL) |
| 927 return; |
927 return; |
| 928 |
928 |
| 929 account = dialog->account; |
929 account = dialog->account; |
| 930 |
930 |
| 931 /* Main vbox */ |
931 /* Main vbox */ |
| 933 gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER); |
933 gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BORDER); |
| 934 gtk_notebook_insert_page(GTK_NOTEBOOK(dialog->notebook), vbox, |
934 gtk_notebook_insert_page(GTK_NOTEBOOK(dialog->notebook), vbox, |
| 935 gtk_label_new_with_mnemonic(_("Ad_vanced")), 1); |
935 gtk_label_new_with_mnemonic(_("Ad_vanced")), 1); |
| 936 gtk_widget_show(vbox); |
936 gtk_widget_show(vbox); |
| 937 |
937 |
| 938 for (l = purple_protocol_get_protocol_options(dialog->protocol); l != NULL; l = l->next) |
938 for (l = purple_protocol_get_account_options(dialog->protocol); l != NULL; l = l->next) |
| 939 { |
939 { |
| 940 option = (PurpleAccountOption *)l->data; |
940 option = (PurpleAccountOption *)l->data; |
| 941 |
941 |
| 942 opt_entry = g_new0(ProtocolOptEntry, 1); |
942 opt_entry = g_new0(ProtocolOptEntry, 1); |
| 943 opt_entry->type = purple_account_option_get_type(option); |
943 opt_entry->type = purple_account_option_get_type(option); |
| 1784 |
1784 |
| 1785 if (!dialog->protocol || !PURPLE_PROTOCOL_IMPLEMENTS(dialog->protocol, SERVER_IFACE, register_user)) |
1785 if (!dialog->protocol || !PURPLE_PROTOCOL_IMPLEMENTS(dialog->protocol, SERVER_IFACE, register_user)) |
| 1786 gtk_widget_hide(button); |
1786 gtk_widget_hide(button); |
| 1787 |
1787 |
| 1788 /* Setup the page with 'Advanced' (protocol options). */ |
1788 /* Setup the page with 'Advanced' (protocol options). */ |
| 1789 add_protocol_options(dialog); |
1789 add_account_options(dialog); |
| 1790 |
1790 |
| 1791 /* Setup the page with 'Proxy'. */ |
1791 /* Setup the page with 'Proxy'. */ |
| 1792 dbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); |
1792 dbox = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); |
| 1793 gtk_container_set_border_width(GTK_CONTAINER(dbox), PIDGIN_HIG_BORDER); |
1793 gtk_container_set_border_width(GTK_CONTAINER(dbox), PIDGIN_HIG_BORDER); |
| 1794 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox, |
1794 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox, |