Mon, 20 Nov 2000 07:24:18 +0000
[gaim-migrate @ 1116]
lots of changes.
buddy.c: just in general tried to get things to work better. moving things in the edit list window and signing off should be handled better in the main buddy list window (watch out for flashes).
gaim.h: removed toc-specific things and moved them to toc.c and rvous.c as needed.
gtkhtml.c: possible fix for AOL 6.0 problems (I wasn't able to reproduce the problem before or after the fix, but i fixed what i think might have been causing the problem).
multi.c: moved LOGIN_STEPS from gaim.h here and actually use it now
oscar.c: moved an oscar-specific struct definition from gaim.h here and also handle problems better
perl.c: fix for stupid problem
rvous.c: first pass at attempt to be able to remove toc.c and rvous.c (though this will never happen; gaim will support toc as long as aol does) without cruft. gaim is now only dependent on toc.c and rvous.c for toc_build_config and parse_toc_buddy_list, which gaim needs to save and read its buddy list.
toc.c: rewrote the signin process so that the read()'s won't block. it's not actually a non-blocking read; it's just that it won't ever get to the read until there's data to be read (thanks to the gdk_input watcher). this means the cancel button should work after it's connected, but it's still not a non-blocking connect.
| 960 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 | * | |
| 6 | * This program is free software; you can redistribute it and/or modify | |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation; either version 2 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program; if not, write to the Free Software | |
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 | * | |
| 20 | */ | |
| 21 | ||
| 22 | #include <gtk/gtk.h> | |
|
981
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
23 | #include "prpl.h" |
| 960 | 24 | #include "multi.h" |
| 25 | #include "gaim.h" | |
|
966
57ba1b059564
[gaim-migrate @ 976]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
26 | #include "gnome_applet_mgr.h" |
| 960 | 27 | |
| 28 | #include "pixmaps/gnome_add.xpm" | |
| 29 | #include "pixmaps/gnome_preferences.xpm" | |
| 30 | #include "pixmaps/join.xpm" | |
| 31 | #include "pixmaps/gnome_remove.xpm" | |
| 32 | #include "pixmaps/gnome_close.xpm" | |
| 33 | #include "pixmaps/cancel.xpm" | |
| 34 | #include "pixmaps/ok.xpm" | |
| 35 | ||
|
1106
7f3041b0632a
[gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1089
diff
changeset
|
36 | #define LOGIN_STEPS 5 |
|
7f3041b0632a
[gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1089
diff
changeset
|
37 | |
| 960 | 38 | GSList *connections; |
| 39 | ||
| 40 | static GtkWidget *acctedit = NULL; | |
| 41 | static GtkWidget *list = NULL; /* the clist of names in the accteditor */ | |
| 42 | static GtkWidget *newmod = NULL; /* the dialog for creating a new account */ | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
43 | static GtkWidget *newmain = NULL; /* the frame that holds the possible notebook for options */ |
| 960 | 44 | static struct aim_user tmpusr; |
| 45 | ||
| 46 | struct mod_usr_opt { | |
| 47 | struct aim_user *user; | |
| 48 | int opt; | |
| 49 | }; | |
| 50 | ||
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
51 | struct gaim_connection *new_gaim_conn(struct aim_user *user) |
| 960 | 52 | { |
| 53 | struct gaim_connection *gc = g_new0(struct gaim_connection, 1); | |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
54 | gc->protocol = user->protocol; |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
55 | gc->prpl = find_prpl(user->protocol); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
56 | g_snprintf(gc->username, sizeof(gc->username), "%s", user->username); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
57 | g_snprintf(gc->password, sizeof(gc->password), "%s", user->password); |
| 960 | 58 | gc->keepalive = -1; |
|
998
53c98c4801b3
[gaim-migrate @ 1008]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
993
diff
changeset
|
59 | gc->inpa = -1; |
|
53c98c4801b3
[gaim-migrate @ 1008]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
993
diff
changeset
|
60 | gc->buddy_chats = NULL; |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
61 | gc->groups = NULL; |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
62 | gc->permit = NULL; |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
63 | gc->deny = NULL; |
| 960 | 64 | |
| 65 | connections = g_slist_append(connections, gc); | |
| 66 | ||
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
67 | user->gc = gc; |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
68 | gc->user = user; |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
69 | |
| 960 | 70 | return gc; |
| 71 | } | |
| 72 | ||
| 73 | void destroy_gaim_conn(struct gaim_connection *gc) | |
| 74 | { | |
|
1063
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
75 | GSList *g = gc->groups; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
76 | GSList *h; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
77 | struct group *m; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
78 | struct buddy *n; |
| 960 | 79 | connections = g_slist_remove(connections, gc); |
|
1063
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
80 | while (g) { |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
81 | m = (struct group *)g->data; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
82 | g = g_slist_remove(g, m); |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
83 | h = m->members; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
84 | while (h) { |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
85 | n = (struct buddy *)h->data; |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
86 | h = g_slist_remove(h, n); |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
87 | g_free(n); |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
88 | } |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
89 | g_free(m); |
|
f766a178ee59
[gaim-migrate @ 1073]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1058
diff
changeset
|
90 | } |
| 960 | 91 | g_free(gc); |
| 92 | redo_convo_menus(); | |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
93 | if (!connections && mainwindow) |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
94 | gtk_widget_show(mainwindow); |
| 960 | 95 | } |
| 96 | ||
| 97 | struct gaim_connection *find_gaim_conn_by_name(char *name) { | |
| 98 | char *who = g_strdup(normalize(name)); | |
| 99 | GSList *c = connections; | |
| 100 | struct gaim_connection *g = NULL; | |
| 101 | ||
| 102 | while (c) { | |
| 103 | g = (struct gaim_connection *)c->data; | |
| 104 | if (!strcmp(normalize(g->username), who)) { | |
| 105 | g_free(who); | |
| 106 | return g; | |
| 107 | } | |
| 108 | c = c->next; | |
| 109 | } | |
| 110 | ||
| 111 | g_free(who); | |
| 112 | return NULL; | |
| 113 | } | |
| 114 | ||
| 115 | static void delete_acctedit(GtkWidget *w, gpointer d) | |
| 116 | { | |
| 117 | if (acctedit) { | |
| 118 | save_prefs(); | |
| 119 | gtk_widget_destroy(acctedit); | |
| 120 | } | |
| 121 | acctedit = NULL; | |
| 1009 | 122 | if (d == NULL && blist == NULL) |
| 123 | exit(0); | |
| 960 | 124 | } |
| 125 | ||
| 126 | static gint acctedit_close(GtkWidget *w, gpointer d) | |
| 127 | { | |
| 128 | gtk_widget_destroy(acctedit); | |
| 1009 | 129 | if (d == NULL && blist == NULL) |
| 130 | exit(0); | |
| 960 | 131 | return FALSE; |
| 132 | } | |
| 133 | ||
| 134 | static char *proto_name(int proto) | |
| 135 | { | |
|
981
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
136 | struct prpl *p = find_prpl(proto); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
137 | if (p && p->name) |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
138 | return (*p->name)(); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
139 | else |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
140 | return "Unknown"; |
| 960 | 141 | } |
| 142 | ||
| 143 | static GtkWidget *generate_list() | |
| 144 | { | |
| 145 | GtkWidget *win; | |
| 146 | char *titles[4] = {"Screenname", "Currently Online", "Auto-login", "Protocol"}; | |
| 147 | GList *u = aim_users; | |
| 148 | struct aim_user *a; | |
| 149 | int i; | |
| 150 | ||
| 151 | win = gtk_scrolled_window_new(0, 0); | |
| 152 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(win), GTK_POLICY_AUTOMATIC, | |
| 153 | GTK_POLICY_ALWAYS); | |
| 154 | ||
| 155 | list = gtk_clist_new_with_titles(4, titles); | |
| 156 | gtk_clist_set_column_width(GTK_CLIST(list), 0, 90); | |
| 157 | gtk_clist_set_selection_mode(GTK_CLIST(list), GTK_SELECTION_BROWSE); | |
| 158 | gtk_clist_column_titles_passive(GTK_CLIST(list)); | |
| 159 | gtk_container_add(GTK_CONTAINER(win), list); | |
| 160 | gtk_widget_show(list); | |
| 161 | ||
| 162 | while (u) { | |
| 163 | a = (struct aim_user *)u->data; | |
| 164 | titles[0] = a->username; | |
|
1074
1a6b053a22c5
[gaim-migrate @ 1084]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1063
diff
changeset
|
165 | titles[1] = a->gc ? "Yes" : "No"; |
| 960 | 166 | titles[2] = (a->options & OPT_USR_AUTO) ? "True" : "False"; |
| 167 | titles[3] = proto_name(a->protocol); | |
| 168 | i = gtk_clist_append(GTK_CLIST(list), titles); | |
| 169 | gtk_clist_set_row_data(GTK_CLIST(list), i, a); | |
| 170 | u = u->next; | |
| 171 | } | |
| 172 | ||
| 173 | gtk_widget_show(win); | |
| 174 | return win; | |
| 175 | } | |
| 176 | ||
| 177 | static void delmod(GtkWidget *w, struct aim_user *u) | |
| 178 | { | |
| 179 | gtk_widget_destroy(w); | |
| 180 | if (u) { | |
| 181 | u->mod = NULL; | |
| 182 | } else { | |
| 183 | newmod = NULL; | |
| 184 | } | |
| 185 | } | |
| 186 | ||
| 187 | static void mod_opt(GtkWidget *b, struct mod_usr_opt *m) | |
| 188 | { | |
| 189 | if (m->user) { | |
| 190 | m->user->tmp_options = m->user->tmp_options ^ m->opt; | |
| 191 | } else { | |
| 192 | tmpusr.options = tmpusr.options ^ m->opt; | |
| 193 | } | |
| 194 | } | |
| 195 | ||
|
1051
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
196 | static void free_muo(GtkWidget *b, struct mod_usr_opt *m) { |
|
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
197 | g_free(m); |
|
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
198 | } |
|
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
199 | |
| 960 | 200 | static GtkWidget *acct_button(const char *text, struct aim_user *u, int option, GtkWidget *box) |
| 201 | { | |
| 202 | GtkWidget *button; | |
| 203 | struct mod_usr_opt *muo = g_new0(struct mod_usr_opt, 1); | |
| 204 | button = gtk_check_button_new_with_label(text); | |
| 205 | if (u) { | |
| 206 | gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (u->options & option)); | |
| 207 | } else { | |
| 208 | gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (tmpusr.options & option)); | |
| 209 | } | |
| 210 | gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); | |
| 211 | muo->user = u; muo->opt = option; | |
| 212 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(mod_opt), muo); | |
|
1051
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1030
diff
changeset
|
213 | gtk_signal_connect(GTK_OBJECT(button), "destroy", GTK_SIGNAL_FUNC(free_muo), muo); |
| 960 | 214 | gtk_widget_show(button); |
| 215 | return button; | |
| 216 | } | |
| 217 | ||
| 218 | static void ok_mod(GtkWidget *w, struct aim_user *u) | |
| 219 | { | |
| 220 | char *txt; | |
| 221 | int i; | |
| 222 | if (u) { | |
| 223 | u->options = u->tmp_options; | |
| 224 | u->protocol = u->tmp_protocol; | |
| 225 | txt = gtk_entry_get_text(GTK_ENTRY(u->pass)); | |
| 226 | if (u->options & OPT_USR_REM_PASS) | |
| 227 | g_snprintf(u->password, sizeof(u->password), "%s", txt); | |
| 228 | else | |
| 229 | u->password[0] = '\0'; | |
| 230 | gtk_widget_destroy(u->mod); | |
| 231 | i = gtk_clist_find_row_from_data(GTK_CLIST(list), u); | |
| 232 | gtk_clist_set_text(GTK_CLIST(list), i, 2, (u->options & OPT_USR_AUTO) ? "True" : "False"); | |
| 233 | gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(u->protocol)); | |
| 234 | } else { | |
| 235 | char *titles[4]; | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
236 | int i; |
| 960 | 237 | txt = gtk_entry_get_text(GTK_ENTRY(tmpusr.name)); |
| 238 | u = g_new0(struct aim_user, 1); | |
| 239 | g_snprintf(u->username, sizeof(u->username), "%s", txt); | |
| 240 | txt = gtk_entry_get_text(GTK_ENTRY(tmpusr.pass)); | |
| 241 | g_snprintf(u->password, sizeof(u->password), "%s", txt); | |
| 242 | u->options = tmpusr.options; | |
| 243 | u->protocol = tmpusr.protocol; | |
| 244 | gtk_widget_destroy(newmod); | |
| 245 | titles[0] = u->username; | |
|
1074
1a6b053a22c5
[gaim-migrate @ 1084]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1063
diff
changeset
|
246 | titles[1] = u->gc ? "Yes" : "No"; |
| 960 | 247 | titles[2] = (u->options & OPT_USR_AUTO) ? "True" : "False"; |
| 248 | titles[3] = proto_name(u->protocol); | |
| 249 | i = gtk_clist_append(GTK_CLIST(list), titles); | |
| 250 | gtk_clist_set_row_data(GTK_CLIST(list), i, u); | |
|
984
b4b8d9fb7cc8
[gaim-migrate @ 994]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
982
diff
changeset
|
251 | aim_users = g_list_append(aim_users, u); |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
252 | for (i = 0; i < 6; i++) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
253 | g_snprintf(u->proto_opt[i], sizeof(u->proto_opt[i]), "%s", tmpusr.proto_opt[i]); |
| 960 | 254 | } |
| 255 | save_prefs(); | |
| 256 | } | |
| 257 | ||
| 258 | static void cancel_mod(GtkWidget *w, struct aim_user *u) | |
| 259 | { | |
| 260 | if (u) { | |
| 261 | gtk_widget_destroy(u->mod); | |
| 262 | } else { | |
| 263 | gtk_widget_destroy(newmod); | |
| 264 | } | |
| 265 | } | |
| 266 | ||
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
267 | static void generate_options(struct aim_user *, GtkWidget *); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
268 | |
| 960 | 269 | static void set_prot(GtkWidget *opt, int proto) |
| 270 | { | |
| 271 | struct aim_user *u = gtk_object_get_user_data(GTK_OBJECT(opt)); | |
|
1086
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
272 | if (u && (u->tmp_protocol != proto)) { |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
273 | int i; |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
274 | for (i = 0; i < 6; i++) |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
275 | u->proto_opt[i][0] = '\0'; |
| 960 | 276 | u->tmp_protocol = proto; |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
277 | generate_options(u, u->main); |
|
1086
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
278 | } else if (tmpusr.tmp_protocol != proto) { |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
279 | int i; |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
280 | for (i = 0; i < 6; i++) |
|
30dae9f299ce
[gaim-migrate @ 1096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1075
diff
changeset
|
281 | tmpusr.proto_opt[i][0] = '\0'; |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
282 | tmpusr.tmp_protocol = tmpusr.protocol = proto; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
283 | generate_options(NULL, newmain); |
| 960 | 284 | } |
| 285 | } | |
| 286 | ||
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
287 | static GtkWidget *make_protocol_menu(GtkWidget *box, struct aim_user *u, GtkWidget *frame) |
| 960 | 288 | { |
| 289 | GtkWidget *optmenu; | |
| 290 | GtkWidget *menu; | |
| 291 | GtkWidget *opt; | |
|
981
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
292 | GSList *p = protocols; |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
293 | struct prpl *e; |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
294 | int count = 0; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
295 | gboolean found = FALSE; |
| 960 | 296 | |
| 297 | optmenu = gtk_option_menu_new(); | |
| 298 | gtk_box_pack_start(GTK_BOX(box), optmenu, FALSE, FALSE, 5); | |
| 299 | gtk_widget_show(optmenu); | |
| 300 | ||
| 301 | menu = gtk_menu_new(); | |
| 302 | ||
|
981
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
303 | while (p) { |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
304 | e = (struct prpl *)p->data; |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
305 | if (u) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
306 | if (e->protocol == u->tmp_protocol) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
307 | found = TRUE; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
308 | if (!found) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
309 | count++; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
310 | } else { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
311 | if (e->protocol == tmpusr.tmp_protocol) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
312 | found = TRUE; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
313 | if (!found) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
314 | count++; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
315 | } |
|
981
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
316 | if (e->name) |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
317 | opt = gtk_menu_item_new_with_label((*e->name)()); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
318 | else |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
319 | opt = gtk_menu_item_new_with_label("Unknown"); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
320 | gtk_object_set_user_data(GTK_OBJECT(opt), u); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
321 | gtk_signal_connect(GTK_OBJECT(opt), "activate", |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
322 | GTK_SIGNAL_FUNC(set_prot), (void *)e->protocol); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
323 | gtk_menu_append(GTK_MENU(menu), opt); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
324 | gtk_widget_show(opt); |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
325 | p = p->next; |
|
00723c9a507c
[gaim-migrate @ 991]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
980
diff
changeset
|
326 | } |
| 960 | 327 | |
| 328 | gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
329 | gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), count); |
| 960 | 330 | |
| 331 | return optmenu; | |
| 332 | } | |
| 333 | ||
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
334 | static void generate_options(struct aim_user *u, GtkWidget *frame) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
335 | GList *tmp; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
336 | GtkWidget *book; |
| 960 | 337 | GtkWidget *vbox; |
| 338 | GtkWidget *hbox; | |
| 339 | GtkWidget *label; | |
| 340 | GtkWidget *name; | |
| 341 | GtkWidget *pass; | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
342 | struct prpl *p; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
343 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
344 | tmp = gtk_container_children(GTK_CONTAINER(frame)); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
345 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
346 | if (u) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
347 | p = find_prpl(u->tmp_protocol); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
348 | else |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
349 | p = find_prpl(tmpusr.protocol); |
| 960 | 350 | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
351 | if (p && p->user_opts) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
352 | if (tmp && !GTK_IS_NOTEBOOK(tmp->data)) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
353 | gtk_widget_destroy(tmp->data); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
354 | tmp = NULL; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
355 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
356 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
357 | if (!tmp) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
358 | book = gtk_notebook_new(); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
359 | gtk_container_add(GTK_CONTAINER(frame), book); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
360 | gtk_widget_show(book); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
361 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
362 | vbox = gtk_vbox_new(FALSE, 0); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
363 | gtk_notebook_append_page(GTK_NOTEBOOK(book), vbox, |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
364 | gtk_label_new(_("General Options"))); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
365 | gtk_widget_show(vbox); |
| 960 | 366 | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
367 | if (u) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
368 | (*p->user_opts)(book, u); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
369 | else |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
370 | (*p->user_opts)(book, &tmpusr); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
371 | } else { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
372 | book = (GtkWidget *)tmp->data; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
373 | gtk_notebook_remove_page(GTK_NOTEBOOK(book), 1); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
374 | if (u) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
375 | (*p->user_opts)(book, u); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
376 | else |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
377 | (*p->user_opts)(book, &tmpusr); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
378 | return; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
379 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
380 | } else { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
381 | if (tmp && GTK_IS_NOTEBOOK(tmp->data)) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
382 | gtk_widget_destroy(tmp->data); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
383 | tmp = NULL; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
384 | } |
| 960 | 385 | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
386 | if (!tmp) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
387 | vbox = gtk_vbox_new(FALSE, 0); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
388 | gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
389 | gtk_widget_show(vbox); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
390 | } else { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
391 | return; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
392 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
393 | } |
| 960 | 394 | |
| 395 | hbox = gtk_hbox_new(FALSE, 0); | |
| 396 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 397 | gtk_widget_show(hbox); | |
| 398 | ||
| 399 | label = gtk_label_new(_("Screenname:")); | |
| 400 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
| 401 | gtk_widget_show(label); | |
| 402 | ||
| 403 | name = gtk_entry_new(); | |
| 404 | gtk_box_pack_start(GTK_BOX(hbox), name, FALSE, FALSE, 5); | |
| 405 | gtk_widget_show(name); | |
| 406 | ||
| 407 | hbox = gtk_hbox_new(FALSE, 5); | |
| 408 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 409 | gtk_widget_show(hbox); | |
| 410 | ||
| 411 | label = gtk_label_new(_("Password:")); | |
| 412 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
| 413 | gtk_widget_show(label); | |
| 414 | ||
| 415 | pass = gtk_entry_new(); | |
| 416 | gtk_box_pack_start(GTK_BOX(hbox), pass, FALSE, FALSE, 5); | |
| 417 | gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE); | |
| 418 | gtk_widget_show(pass); | |
| 419 | ||
| 420 | hbox = gtk_hbox_new(FALSE, 5); | |
| 421 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 422 | gtk_widget_show(hbox); | |
| 423 | ||
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
424 | make_protocol_menu(hbox, u, frame); |
| 960 | 425 | |
| 426 | acct_button(_("Remember Password"), u, OPT_USR_REM_PASS, vbox); | |
| 427 | acct_button(_("Auto-Login"), u, OPT_USR_AUTO, vbox); | |
| 428 | acct_button(_("Send KeepAlive packet (6 bytes/second)"), u, OPT_USR_KEEPALV, vbox); | |
| 429 | ||
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
430 | if (u) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
431 | u->name = name; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
432 | u->pass = pass; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
433 | gtk_entry_set_text(GTK_ENTRY(name), u->username); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
434 | gtk_entry_set_text(GTK_ENTRY(pass), u->password); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
435 | gtk_entry_set_editable(GTK_ENTRY(name), FALSE); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
436 | } else { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
437 | tmpusr.name = name; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
438 | tmpusr.pass = pass; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
439 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
440 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
441 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
442 | static void show_acct_mod(struct aim_user *u) |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
443 | { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
444 | /* here we can have all the aim_user options, including ones not shown in the main acctedit |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
445 | * window. this can keep the size of the acctedit window small and readable, and make this |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
446 | * one the powerful editor. this is where things like name/password are edited, but can |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
447 | * also have toggles (and even more complex options) like whether to autologin or whether |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
448 | * to send keepalives or whatever. this would be the perfect place to specify which protocol |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
449 | * to use. make sure to account for the possibility of protocol plugins. */ |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
450 | GtkWidget *mod; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
451 | GtkWidget *box; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
452 | GtkWidget *frame; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
453 | GtkWidget *hbox; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
454 | GtkWidget *button; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
455 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
456 | if (!u && newmod) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
457 | gtk_widget_show(newmod); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
458 | return; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
459 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
460 | if (u && u->mod) { |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
461 | gtk_widget_show(u->mod); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
462 | return; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
463 | } |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
464 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
465 | mod = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
466 | gtk_window_set_wmclass(GTK_WINDOW(mod), "account", "Gaim"); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
467 | gtk_widget_realize(mod); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
468 | aol_icon(mod->window); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
469 | gtk_container_border_width(GTK_CONTAINER(mod), 10); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
470 | gtk_window_set_title(GTK_WINDOW(mod), _("Gaim - Modify Account")); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
471 | gtk_window_set_policy(GTK_WINDOW(mod), 0, 1, 1); /* i know, i'm odd */ |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
472 | gtk_signal_connect(GTK_OBJECT(mod), "destroy", |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
473 | GTK_SIGNAL_FUNC(delmod), u); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
474 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
475 | box = gtk_vbox_new(FALSE, 0); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
476 | gtk_container_add(GTK_CONTAINER(mod), box); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
477 | gtk_widget_show(box); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
478 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
479 | frame = gtk_frame_new(_("Modify Account")); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
480 | gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
481 | gtk_widget_show(frame); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
482 | |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
483 | if (u) u->tmp_protocol = u->protocol; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
484 | else tmpusr.tmp_protocol = tmpusr.protocol; |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
485 | generate_options(u, frame); |
|
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
486 | |
| 960 | 487 | hbox = gtk_hbox_new(FALSE, 5); |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
488 | gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); |
| 960 | 489 | gtk_widget_show(hbox); |
| 490 | ||
| 491 | button = picture_button(mod, _("Cancel"), cancel_xpm); | |
| 492 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
| 493 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cancel_mod), u); | |
| 494 | gtk_widget_show(button); | |
| 495 | ||
| 496 | button = picture_button(mod, _("OK"), ok_xpm); | |
| 497 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
| 498 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ok_mod), u); | |
| 499 | gtk_widget_show(button); | |
| 500 | ||
| 501 | if (u) { | |
| 502 | u->mod = mod; | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
503 | u->main = frame; /* ha, get it? :) */ |
| 960 | 504 | u->tmp_options = u->options; |
| 505 | } else { | |
| 506 | newmod = mod; | |
|
1075
626b13be66c3
[gaim-migrate @ 1085]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1074
diff
changeset
|
507 | newmain = frame; |
| 960 | 508 | } |
| 509 | ||
| 510 | gtk_widget_show(mod); | |
| 511 | } | |
| 512 | ||
| 513 | static void add_acct(GtkWidget *w, gpointer d) | |
| 514 | { | |
| 515 | show_acct_mod(NULL); | |
| 516 | } | |
| 517 | ||
| 518 | static void mod_acct(GtkWidget *w, gpointer d) | |
| 519 | { | |
| 520 | int row = -1; | |
| 521 | struct aim_user *u; | |
| 522 | if (GTK_CLIST(list)->selection) | |
| 523 | row = (int)GTK_CLIST(list)->selection->data; | |
| 524 | if (row != -1) { | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
525 | u = g_list_nth_data(aim_users, row); |
| 960 | 526 | if (u) |
| 527 | show_acct_mod(u); | |
| 528 | } | |
| 529 | } | |
| 530 | ||
| 531 | static void pass_des(GtkWidget *w, struct aim_user *u) | |
| 532 | { | |
| 533 | gtk_widget_destroy(w); | |
| 534 | u->passprmt = NULL; | |
| 535 | } | |
| 536 | ||
| 537 | static void pass_cancel(GtkWidget *w, struct aim_user *u) | |
| 538 | { | |
| 539 | gtk_widget_destroy(u->passprmt); | |
| 540 | u->passprmt = NULL; | |
| 541 | } | |
| 542 | ||
| 543 | static void pass_signon(GtkWidget *w, struct aim_user *u) | |
| 544 | { | |
| 545 | char *txt = gtk_entry_get_text(GTK_ENTRY(u->passentry)); | |
|
980
dd522f25c5c4
[gaim-migrate @ 990]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
977
diff
changeset
|
546 | g_snprintf(u->password, sizeof(u->password), "%s", txt); |
| 960 | 547 | #ifdef USE_APPLET |
| 548 | set_user_state(signing_on); | |
| 549 | #endif | |
| 550 | gtk_widget_destroy(u->passprmt); | |
| 551 | u->passprmt = NULL; | |
|
980
dd522f25c5c4
[gaim-migrate @ 990]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
977
diff
changeset
|
552 | serv_login(u); |
| 960 | 553 | } |
| 554 | ||
| 555 | static void do_pass_dlg(struct aim_user *u) | |
| 556 | { | |
| 557 | /* we can safely assume that u is not NULL */ | |
| 558 | GtkWidget *frame; | |
| 559 | GtkWidget *vbox; | |
| 560 | GtkWidget *hbox; | |
| 561 | char buf[96]; | |
| 562 | GtkWidget *label; | |
| 563 | GtkWidget *button; | |
| 564 | ||
| 565 | if (u->passprmt) { gtk_widget_show(u->passprmt); return; } | |
| 566 | u->passprmt = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 567 | gtk_window_set_wmclass(GTK_WINDOW(u->passprmt), "password", "Gaim"); | |
| 568 | gtk_container_border_width(GTK_CONTAINER(u->passprmt), 5); | |
| 569 | gtk_signal_connect(GTK_OBJECT(u->passprmt), "destroy", GTK_SIGNAL_FUNC(pass_des), u); | |
| 570 | gtk_widget_realize(u->passprmt); | |
| 571 | aol_icon(u->passprmt->window); | |
| 572 | ||
| 573 | frame = gtk_frame_new(_("Enter Password")); | |
| 574 | gtk_container_add(GTK_CONTAINER(u->passprmt), frame); | |
| 575 | gtk_widget_show(frame); | |
| 576 | ||
| 577 | vbox = gtk_vbox_new(FALSE, 5); | |
| 578 | gtk_container_add(GTK_CONTAINER(frame), vbox); | |
| 579 | gtk_widget_show(vbox); | |
| 580 | ||
| 581 | hbox = gtk_hbox_new(FALSE, 5); | |
| 582 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 583 | gtk_widget_show(hbox); | |
| 584 | ||
| 585 | g_snprintf(buf, sizeof(buf), "Password for %s:", u->username); | |
| 586 | label = gtk_label_new(buf); | |
| 587 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); | |
| 588 | gtk_widget_show(label); | |
| 589 | ||
| 590 | u->passentry = gtk_entry_new(); | |
| 591 | gtk_entry_set_visibility(GTK_ENTRY(u->passentry), FALSE); | |
| 592 | gtk_box_pack_start(GTK_BOX(hbox), u->passentry, FALSE, FALSE, 5); | |
| 593 | gtk_signal_connect(GTK_OBJECT(u->passentry), "activate", GTK_SIGNAL_FUNC(pass_signon), u); | |
| 594 | gtk_widget_grab_focus(u->passentry); | |
| 595 | gtk_widget_show(u->passentry); | |
| 596 | ||
| 597 | hbox = gtk_hbox_new(FALSE, 5); | |
| 598 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 599 | gtk_widget_show(hbox); | |
| 600 | ||
| 601 | button = picture_button(u->passprmt, _("Cancel"), cancel_xpm); | |
| 602 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pass_cancel), u); | |
| 603 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
| 604 | ||
| 605 | button = picture_button(u->passprmt, _("Signon"), ok_xpm); | |
| 606 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(pass_signon), u); | |
| 607 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); | |
| 608 | ||
| 609 | gtk_widget_show(u->passprmt); | |
| 610 | } | |
| 611 | ||
| 612 | static void acct_signin(GtkWidget *w, gpointer d) | |
| 613 | { | |
| 614 | int row = -1; | |
| 615 | struct aim_user *u; | |
| 616 | if (GTK_CLIST(list)->selection) | |
| 617 | row = (int)GTK_CLIST(list)->selection->data; | |
| 618 | if (row != -1) { | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
619 | u = g_list_nth_data(aim_users, row); |
|
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
620 | if (!u->gc) { |
| 960 | 621 | if (!u->password[0]) { |
| 622 | do_pass_dlg(u); | |
| 623 | } else { | |
| 624 | #ifdef USE_APPLET | |
| 625 | set_user_state(signing_on); | |
| 626 | #endif /* USE_APPLET */ | |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
627 | gtk_clist_set_text(GTK_CLIST(list), row, 1, "Attempting"); |
|
980
dd522f25c5c4
[gaim-migrate @ 990]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
977
diff
changeset
|
628 | serv_login(u); |
| 960 | 629 | } |
| 630 | } else { | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
631 | signoff(u->gc); |
| 960 | 632 | } |
| 633 | } | |
| 634 | } | |
| 635 | ||
| 636 | static void del_acct(GtkWidget *w, gpointer d) | |
| 637 | { | |
| 638 | int row = -1; | |
| 639 | struct aim_user *u; | |
| 640 | if (GTK_CLIST(list)->selection) | |
| 641 | row = (int)GTK_CLIST(list)->selection->data; | |
| 642 | if (row != -1) { | |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
643 | u = g_list_nth_data(aim_users, row); |
| 960 | 644 | if (u) { |
|
1058
e878d758cff6
[gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1056
diff
changeset
|
645 | if (u->gc) |
|
e878d758cff6
[gaim-migrate @ 1068]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1056
diff
changeset
|
646 | signoff(u->gc); |
| 960 | 647 | aim_users = g_list_remove(aim_users, u); |
| 648 | save_prefs(); | |
| 649 | } | |
| 650 | gtk_clist_remove(GTK_CLIST(list), row); | |
| 651 | } | |
| 652 | } | |
| 653 | ||
| 654 | void account_editor(GtkWidget *w, GtkWidget *W) | |
| 655 | { | |
| 656 | /* please kill me */ | |
| 657 | GtkWidget *frame; | |
| 658 | GtkWidget *box; | |
| 659 | GtkWidget *list; | |
| 660 | GtkWidget *hbox; | |
| 661 | GtkWidget *button; /* used for many things */ | |
| 662 | ||
| 663 | if (acctedit) { gtk_widget_show(acctedit); return; } | |
| 664 | ||
| 665 | acctedit = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 666 | gtk_window_set_title(GTK_WINDOW(acctedit), _("Gaim - Account Editor")); | |
| 667 | gtk_window_set_wmclass(GTK_WINDOW(acctedit), "accounteditor", "Gaim"); | |
| 668 | gtk_widget_realize(acctedit); | |
| 669 | aol_icon(acctedit->window); | |
| 670 | gtk_container_border_width(GTK_CONTAINER(acctedit), 10); | |
| 671 | gtk_widget_set_usize(acctedit, -1, 200); | |
| 672 | gtk_signal_connect(GTK_OBJECT(acctedit), "destroy", | |
| 1009 | 673 | GTK_SIGNAL_FUNC(delete_acctedit), W); |
| 960 | 674 | |
| 675 | frame = gtk_frame_new(_("Account Editor")); | |
| 676 | gtk_container_add(GTK_CONTAINER(acctedit), frame); | |
| 677 | gtk_widget_show(frame); | |
| 678 | ||
| 679 | box = gtk_vbox_new(FALSE, 5); | |
| 680 | gtk_container_add(GTK_CONTAINER(frame), box); | |
| 681 | gtk_widget_show(box); | |
| 682 | ||
| 683 | list = generate_list(); | |
| 684 | gtk_box_pack_start(GTK_BOX(box), list, TRUE, TRUE, 5); | |
| 685 | ||
| 686 | hbox = gtk_hbox_new(TRUE, 5); | |
| 687 | gtk_box_pack_end(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
| 688 | gtk_widget_show(hbox); | |
| 689 | ||
| 690 | button = picture_button(acctedit, _("Add"), gnome_add_xpm); | |
| 691 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); | |
| 692 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(add_acct), NULL); | |
| 693 | ||
| 694 | button = picture_button(acctedit, _("Modify"), gnome_preferences_xpm); | |
| 695 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); | |
| 696 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(mod_acct), NULL); | |
| 697 | ||
| 698 | button = picture_button(acctedit, _("Sign On/Off"), join_xpm); | |
| 699 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); | |
| 700 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(acct_signin), NULL); | |
| 701 | ||
| 702 | button = picture_button(acctedit, _("Delete"), gnome_remove_xpm); | |
| 703 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); | |
| 704 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(del_acct), NULL); | |
| 705 | ||
| 706 | button = picture_button(acctedit, _("Close"), gnome_close_xpm); | |
| 707 | gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 5); | |
| 1009 | 708 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(acctedit_close), W); |
| 960 | 709 | |
| 710 | gtk_widget_show(acctedit); | |
| 711 | } | |
| 712 | ||
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
713 | void account_online(struct gaim_connection *gc) |
| 960 | 714 | { |
| 715 | int i; | |
|
1002
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
716 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
717 | /* first we hide the login progress meter */ |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
718 | if (gc->meter) |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
719 | gtk_widget_destroy(gc->meter); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
720 | gc->meter = NULL; |
|
1002
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
721 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
722 | /* then we do the buddy list stuff */ |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
723 | if (mainwindow) |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
724 | gtk_widget_hide(mainwindow); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
725 | show_buddy_list(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
726 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
727 | #ifdef USE_APPLET |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
728 | if (general_options & OPT_GEN_APP_BUDDY_SHOW) { |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
729 | refresh_buddy_window(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
730 | createOnlinePopup(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
731 | applet_buddy_show = TRUE; |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
732 | } else { |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
733 | gtk_widget_hide(blist); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
734 | applet_buddy_show = FALSE; |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
735 | } |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
736 | set_user_state(online); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
737 | #else |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
738 | refresh_buddy_window(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
739 | #endif |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
740 | setup_buddy_chats(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
741 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
742 | redo_convo_menus(); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
743 | gaim_setup(gc); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
744 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
745 | plugin_event(event_signon, gc, 0, 0, 0); |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
746 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
747 | /* everything for the account editor */ |
| 960 | 748 | if (!acctedit) return; |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
749 | i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); |
|
977
c3d76bd2ac55
[gaim-migrate @ 987]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
969
diff
changeset
|
750 | gtk_clist_set_text(GTK_CLIST(list), i, 1, "Yes"); |
| 960 | 751 | gtk_clist_set_text(GTK_CLIST(list), i, 3, proto_name(gc->protocol)); |
|
1002
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
752 | |
|
0c559888b1fb
[gaim-migrate @ 1012]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
998
diff
changeset
|
753 | return; |
| 960 | 754 | } |
| 755 | ||
| 756 | void account_offline(struct gaim_connection *gc) | |
| 757 | { | |
| 758 | int i; | |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
759 | if (gc->meter) |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
760 | gtk_widget_destroy(gc->meter); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
761 | gc->meter = NULL; |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
762 | gc->user->gc = NULL; /* wasn't that awkward? */ |
| 960 | 763 | if (!acctedit) return; |
|
1030
b9fa9eadc0a4
[gaim-migrate @ 1040]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1009
diff
changeset
|
764 | i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); |
|
977
c3d76bd2ac55
[gaim-migrate @ 987]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
969
diff
changeset
|
765 | gtk_clist_set_text(GTK_CLIST(list), i, 1, "No"); |
|
993
8798e0ac047d
[gaim-migrate @ 1003]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
988
diff
changeset
|
766 | redo_convo_menus(); |
| 960 | 767 | } |
| 768 | ||
| 769 | void auto_login() | |
| 770 | { | |
| 771 | GList *u = aim_users; | |
| 772 | struct aim_user *a = NULL; | |
| 773 | ||
| 774 | while (u) { | |
| 775 | a = (struct aim_user *)u->data; | |
| 776 | if ((a->options & OPT_USR_AUTO) && (a->options & OPT_USR_REM_PASS)) { | |
| 777 | #ifdef USE_APPLET | |
| 778 | set_user_state(signing_on); | |
| 779 | #endif /* USE_APPLET */ | |
|
980
dd522f25c5c4
[gaim-migrate @ 990]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
977
diff
changeset
|
780 | serv_login(a); |
| 960 | 781 | } |
| 782 | u = u->next; | |
| 783 | } | |
| 784 | } | |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
785 | |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
786 | static void cancel_signon(GtkWidget *button, struct gaim_connection *gc) { |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
787 | signoff(gc); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
788 | } |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
789 | |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
790 | static gint meter_destroy(GtkWidget *meter, GdkEvent *evt, struct gaim_connection *gc) { |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
791 | return TRUE; |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
792 | } |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
793 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
794 | void set_login_progress(struct gaim_connection *gc, float howfar, char *message) { |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
795 | if (mainwindow) |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
796 | gtk_widget_hide(mainwindow); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
797 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
798 | if (!gc->meter) { |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
799 | GtkWidget *box, *label, *button; |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
800 | char buf[256]; |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
801 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
802 | gc->meter = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
803 | gtk_window_set_policy(GTK_WINDOW(gc->meter), 0, 0, 1); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
804 | gtk_window_set_wmclass(GTK_WINDOW(gc->meter), "signon", "Gaim"); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
805 | gtk_container_set_border_width(GTK_CONTAINER(gc->meter), 5); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
806 | g_snprintf(buf, sizeof(buf), "%s Signing On", gc->username); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
807 | gtk_window_set_title(GTK_WINDOW(gc->meter), buf); |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
808 | gtk_signal_connect(GTK_OBJECT(gc->meter), "delete_event", |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
809 | GTK_SIGNAL_FUNC(meter_destroy), gc); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
810 | gtk_widget_realize(gc->meter); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
811 | aol_icon(gc->meter->window); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
812 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
813 | box = gtk_vbox_new(FALSE, 5); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
814 | gtk_container_add(GTK_CONTAINER(gc->meter), box); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
815 | gtk_widget_show(box); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
816 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
817 | label = gtk_label_new(buf); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
818 | gtk_box_pack_start(GTK_BOX(box), label, 0, 0, 5); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
819 | gtk_widget_show(label); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
820 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
821 | gc->progress = gtk_progress_bar_new(); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
822 | gtk_widget_set_usize(gc->progress, 150, 0); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
823 | gtk_box_pack_start(GTK_BOX(box), gc->progress, 0, 0, 5); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
824 | gtk_widget_show(gc->progress); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
825 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
826 | gc->status = gtk_statusbar_new(); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
827 | gtk_widget_set_usize(gc->status, 150, 0); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
828 | gtk_box_pack_start(GTK_BOX(box), gc->status, 0, 0, 5); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
829 | gtk_widget_show(gc->status); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
830 | |
|
1089
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
831 | button = gtk_button_new_with_label(_("Cancel")); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
832 | gtk_box_pack_start(GTK_BOX(box), button, 0, 0, 5); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
833 | gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cancel_signon), gc); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
834 | gtk_widget_show(button); |
|
74f5c108f7a3
[gaim-migrate @ 1099]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1086
diff
changeset
|
835 | |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
836 | gtk_widget_show(gc->meter); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
837 | } |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
838 | |
|
1106
7f3041b0632a
[gaim-migrate @ 1116]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1089
diff
changeset
|
839 | gtk_progress_bar_update(GTK_PROGRESS_BAR(gc->progress), howfar / LOGIN_STEPS); |
|
988
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
840 | gtk_statusbar_pop(GTK_STATUSBAR(gc->status), 1); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
841 | gtk_statusbar_push(GTK_STATUSBAR(gc->status), 1, message); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
842 | } |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
843 | |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
844 | void hide_login_progress(struct gaim_connection *gc, char *why) |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
845 | { |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
846 | char buf[2048]; |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
847 | sprintf(buf, _("%s was unable to sign on: %s"), gc->username, why); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
848 | do_error_dialog(buf, _("Signon Error")); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
849 | if (gc->meter) |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
850 | gtk_widget_destroy(gc->meter); |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
851 | gc->meter = NULL; |
|
8e2d5ba69459
[gaim-migrate @ 998]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
984
diff
changeset
|
852 | } |