Mercurial > pidgin
annotate src/multi.c @ 1106:5bc8fdacd2cb
[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.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Mon, 20 Nov 2000 07:24:18 +0000 |
| parents | f0f5c10cce63 |
| children | c73736fa0b7c |
| rev | line source |
|---|---|
| 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
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
23 #include "prpl.h" |
| 960 | 24 #include "multi.h" |
| 25 #include "gaim.h" | |
|
966
f7886476f9d9
[gaim-migrate @ 976]
Eric Warmenhoven <eric@warmenhoven.org>
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
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
36 #define LOGIN_STEPS 5 |
|
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
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
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
54 gc->protocol = user->protocol; |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
55 gc->prpl = find_prpl(user->protocol); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
56 g_snprintf(gc->username, sizeof(gc->username), "%s", user->username); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
57 g_snprintf(gc->password, sizeof(gc->password), "%s", user->password); |
| 960 | 58 gc->keepalive = -1; |
|
998
70c685de2be5
[gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
993
diff
changeset
|
59 gc->inpa = -1; |
|
70c685de2be5
[gaim-migrate @ 1008]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
993
diff
changeset
|
60 gc->buddy_chats = NULL; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
61 gc->groups = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
62 gc->permit = NULL; |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
63 gc->deny = NULL; |
| 960 | 64 |
| 65 connections = g_slist_append(connections, gc); | |
| 66 | |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
67 user->gc = gc; |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
68 gc->user = user; |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
69 |
| 960 | 70 return gc; |
| 71 } | |
| 72 | |
| 73 void destroy_gaim_conn(struct gaim_connection *gc) | |
| 74 { | |
|
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
75 GSList *g = gc->groups; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
76 GSList *h; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
77 struct group *m; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
78 struct buddy *n; |
| 960 | 79 connections = g_slist_remove(connections, gc); |
|
1063
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
80 while (g) { |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
81 m = (struct group *)g->data; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
82 g = g_slist_remove(g, m); |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
83 h = m->members; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
84 while (h) { |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
85 n = (struct buddy *)h->data; |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
86 h = g_slist_remove(h, n); |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
87 g_free(n); |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
88 } |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
89 g_free(m); |
|
e1408fb04c36
[gaim-migrate @ 1073]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1058
diff
changeset
|
90 } |
| 960 | 91 g_free(gc); |
| 92 redo_convo_menus(); | |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
93 if (!connections && mainwindow) |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
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
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
122 if (d == NULL && blist == NULL) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
123 exit(0); |
| 960 | 124 } |
| 125 | |
| 126 static gint acctedit_close(GtkWidget *w, gpointer d) | |
| 127 { | |
| 128 gtk_widget_destroy(acctedit); | |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
129 if (d == NULL && blist == NULL) |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
130 exit(0); |
| 960 | 131 return FALSE; |
| 132 } | |
| 133 | |
| 134 static char *proto_name(int proto) | |
| 135 { | |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
136 struct prpl *p = find_prpl(proto); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
137 if (p && p->name) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
138 return (*p->name)(); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
139 else |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
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
2cff18c2f9c6
[gaim-migrate @ 1084]
Eric Warmenhoven <eric@warmenhoven.org>
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
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
196 static void free_muo(GtkWidget *b, struct mod_usr_opt *m) { |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
197 g_free(m); |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
198 } |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
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
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
2cff18c2f9c6
[gaim-migrate @ 1084]
Eric Warmenhoven <eric@warmenhoven.org>
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
7ec6b092f227
[gaim-migrate @ 994]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
982
diff
changeset
|
251 aim_users = g_list_append(aim_users, u); |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
252 for (i = 0; i < 6; i++) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
267 static void generate_options(struct aim_user *, GtkWidget *); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
272 if (u && (u->tmp_protocol != proto)) { |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
273 int i; |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
274 for (i = 0; i < 6; i++) |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
275 u->proto_opt[i][0] = '\0'; |
| 960 | 276 u->tmp_protocol = proto; |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
277 generate_options(u, u->main); |
|
1086
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
278 } else if (tmpusr.tmp_protocol != proto) { |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
279 int i; |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
280 for (i = 0; i < 6; i++) |
|
ce201056e7a6
[gaim-migrate @ 1096]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1075
diff
changeset
|
281 tmpusr.proto_opt[i][0] = '\0'; |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
282 tmpusr.tmp_protocol = tmpusr.protocol = proto; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
283 generate_options(NULL, newmain); |
| 960 | 284 } |
| 285 } | |
| 286 | |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
292 GSList *p = protocols; |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
293 struct prpl *e; |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
294 int count = 0; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
303 while (p) { |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
304 e = (struct prpl *)p->data; |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
305 if (u) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
306 if (e->protocol == u->tmp_protocol) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
307 found = TRUE; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
308 if (!found) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
309 count++; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
310 } else { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
311 if (e->protocol == tmpusr.tmp_protocol) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
312 found = TRUE; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
313 if (!found) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
314 count++; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
315 } |
|
981
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
316 if (e->name) |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
317 opt = gtk_menu_item_new_with_label((*e->name)()); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
318 else |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
319 opt = gtk_menu_item_new_with_label("Unknown"); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
320 gtk_object_set_user_data(GTK_OBJECT(opt), u); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
321 gtk_signal_connect(GTK_OBJECT(opt), "activate", |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
322 GTK_SIGNAL_FUNC(set_prot), (void *)e->protocol); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
323 gtk_menu_append(GTK_MENU(menu), opt); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
324 gtk_widget_show(opt); |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
325 p = p->next; |
|
7e231bc0018a
[gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
980
diff
changeset
|
326 } |
| 960 | 327 |
| 328 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); | |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
329 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), count); |
| 960 | 330 |
| 331 return optmenu; | |
| 332 } | |
| 333 | |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
334 static void generate_options(struct aim_user *u, GtkWidget *frame) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
335 GList *tmp; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
336 GtkWidget *book; |
| 960 | 337 GtkWidget *vbox; |
| 338 GtkWidget *hbox; | |
| 339 GtkWidget *label; | |
| 340 GtkWidget *name; | |
| 341 GtkWidget *pass; | |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
342 struct prpl *p; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
343 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
344 tmp = gtk_container_children(GTK_CONTAINER(frame)); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
345 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
346 if (u) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
347 p = find_prpl(u->tmp_protocol); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
348 else |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
349 p = find_prpl(tmpusr.protocol); |
| 960 | 350 |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
351 if (p && p->user_opts) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
352 if (tmp && !GTK_IS_NOTEBOOK(tmp->data)) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
353 gtk_widget_destroy(tmp->data); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
354 tmp = NULL; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
355 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
356 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
357 if (!tmp) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
358 book = gtk_notebook_new(); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
359 gtk_container_add(GTK_CONTAINER(frame), book); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
360 gtk_widget_show(book); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
361 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
362 vbox = gtk_vbox_new(FALSE, 0); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
363 gtk_notebook_append_page(GTK_NOTEBOOK(book), vbox, |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
364 gtk_label_new(_("General Options"))); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
365 gtk_widget_show(vbox); |
| 960 | 366 |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
367 if (u) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
368 (*p->user_opts)(book, u); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
369 else |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
370 (*p->user_opts)(book, &tmpusr); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
371 } else { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
372 book = (GtkWidget *)tmp->data; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
373 gtk_notebook_remove_page(GTK_NOTEBOOK(book), 1); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
374 if (u) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
375 (*p->user_opts)(book, u); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
376 else |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
377 (*p->user_opts)(book, &tmpusr); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
378 return; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
379 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
380 } else { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
381 if (tmp && GTK_IS_NOTEBOOK(tmp->data)) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
382 gtk_widget_destroy(tmp->data); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
383 tmp = NULL; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
384 } |
| 960 | 385 |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
386 if (!tmp) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
387 vbox = gtk_vbox_new(FALSE, 0); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
388 gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
389 gtk_widget_show(vbox); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
390 } else { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
391 return; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
392 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
430 if (u) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
431 u->name = name; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
432 u->pass = pass; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
433 gtk_entry_set_text(GTK_ENTRY(name), u->username); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
434 gtk_entry_set_text(GTK_ENTRY(pass), u->password); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
435 gtk_entry_set_editable(GTK_ENTRY(name), FALSE); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
436 } else { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
437 tmpusr.name = name; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
438 tmpusr.pass = pass; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
439 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
440 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
441 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
442 static void show_acct_mod(struct aim_user *u) |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
443 { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
444 /* here we can have all the aim_user options, including ones not shown in the main acctedit |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
445 * window. this can keep the size of the acctedit window small and readable, and make this |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
446 * one the powerful editor. this is where things like name/password are edited, but can |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
447 * also have toggles (and even more complex options) like whether to autologin or whether |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
448 * to send keepalives or whatever. this would be the perfect place to specify which protocol |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
449 * to use. make sure to account for the possibility of protocol plugins. */ |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
450 GtkWidget *mod; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
451 GtkWidget *box; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
452 GtkWidget *frame; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
453 GtkWidget *hbox; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
454 GtkWidget *button; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
455 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
456 if (!u && newmod) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
457 gtk_widget_show(newmod); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
458 return; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
459 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
460 if (u && u->mod) { |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
461 gtk_widget_show(u->mod); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
462 return; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
463 } |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
464 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
465 mod = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
466 gtk_window_set_wmclass(GTK_WINDOW(mod), "account", "Gaim"); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
467 gtk_widget_realize(mod); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
468 aol_icon(mod->window); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
469 gtk_container_border_width(GTK_CONTAINER(mod), 10); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
470 gtk_window_set_title(GTK_WINDOW(mod), _("Gaim - Modify Account")); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
471 gtk_window_set_policy(GTK_WINDOW(mod), 0, 1, 1); /* i know, i'm odd */ |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
472 gtk_signal_connect(GTK_OBJECT(mod), "destroy", |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
473 GTK_SIGNAL_FUNC(delmod), u); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
474 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
475 box = gtk_vbox_new(FALSE, 0); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
476 gtk_container_add(GTK_CONTAINER(mod), box); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
477 gtk_widget_show(box); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
478 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
479 frame = gtk_frame_new(_("Modify Account")); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
480 gtk_box_pack_start(GTK_BOX(box), frame, FALSE, FALSE, 5); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
481 gtk_widget_show(frame); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
482 |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
483 if (u) u->tmp_protocol = u->protocol; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
484 else tmpusr.tmp_protocol = tmpusr.protocol; |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
485 generate_options(u, frame); |
|
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
486 |
| 960 | 487 hbox = gtk_hbox_new(FALSE, 5); |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1074
diff
changeset
|
503 u->main = frame; /* ha, get it? :) */ |
| 960 | 504 u->tmp_options = u->options; |
| 505 } else { | |
| 506 newmod = mod; | |
|
1075
2fe18b2d6105
[gaim-migrate @ 1085]
Eric Warmenhoven <eric@warmenhoven.org>
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
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
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
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
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
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
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
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
619 u = g_list_nth_data(aim_users, row); |
|
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
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
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
627 gtk_clist_set_text(GTK_CLIST(list), row, 1, "Attempting"); |
|
980
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
977
diff
changeset
|
628 serv_login(u); |
| 960 | 629 } |
| 630 } else { | |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
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
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
643 u = g_list_nth_data(aim_users, row); |
| 960 | 644 if (u) { |
|
1058
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1056
diff
changeset
|
645 if (u->gc) |
|
4927ce25d8cc
[gaim-migrate @ 1068]
Eric Warmenhoven <eric@warmenhoven.org>
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
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
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
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1005
diff
changeset
|
708 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(acctedit_close), W); |
| 960 | 709 |
| 710 gtk_widget_show(acctedit); | |
| 711 } | |
| 712 | |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
713 void account_online(struct gaim_connection *gc) |
| 960 | 714 { |
| 715 int i; | |
|
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
716 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
717 /* first we hide the login progress meter */ |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
718 if (gc->meter) |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
719 gtk_widget_destroy(gc->meter); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
720 gc->meter = NULL; |
|
1002
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
721 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
722 /* then we do the buddy list stuff */ |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
723 if (mainwindow) |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
724 gtk_widget_hide(mainwindow); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
725 show_buddy_list(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
726 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
727 #ifdef USE_APPLET |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
728 if (general_options & OPT_GEN_APP_BUDDY_SHOW) { |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
729 refresh_buddy_window(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
730 createOnlinePopup(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
731 applet_buddy_show = TRUE; |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
732 } else { |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
733 gtk_widget_hide(blist); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
734 applet_buddy_show = FALSE; |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
735 } |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
736 set_user_state(online); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
737 #else |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
738 refresh_buddy_window(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
739 #endif |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
740 setup_buddy_chats(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
741 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
742 redo_convo_menus(); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
743 gaim_setup(gc); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
744 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
745 plugin_event(event_signon, gc, 0, 0, 0); |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
746 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
747 /* everything for the account editor */ |
| 960 | 748 if (!acctedit) return; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
749 i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); |
|
977
e5eac6b236f1
[gaim-migrate @ 987]
Eric Warmenhoven <eric@warmenhoven.org>
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
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
752 |
|
1d8f05ea6bdf
[gaim-migrate @ 1012]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
998
diff
changeset
|
753 return; |
| 960 | 754 } |
| 755 | |
| 756 void account_offline(struct gaim_connection *gc) | |
| 757 { | |
| 758 int i; | |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
759 if (gc->meter) |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
760 gtk_widget_destroy(gc->meter); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
761 gc->meter = NULL; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
762 gc->user->gc = NULL; /* wasn't that awkward? */ |
| 960 | 763 if (!acctedit) return; |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
764 i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); |
|
977
e5eac6b236f1
[gaim-migrate @ 987]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
969
diff
changeset
|
765 gtk_clist_set_text(GTK_CLIST(list), i, 1, "No"); |
|
993
eacd93d0089a
[gaim-migrate @ 1003]
Eric Warmenhoven <eric@warmenhoven.org>
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
82c5865f7cfe
[gaim-migrate @ 990]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
977
diff
changeset
|
780 serv_login(a); |
| 960 | 781 } |
| 782 u = u->next; | |
| 783 } | |
| 784 } | |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
785 |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
786 static void cancel_signon(GtkWidget *button, struct gaim_connection *gc) { |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
787 signoff(gc); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
788 } |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
789 |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
790 static gint meter_destroy(GtkWidget *meter, GdkEvent *evt, struct gaim_connection *gc) { |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
791 return TRUE; |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
792 } |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
793 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
794 void set_login_progress(struct gaim_connection *gc, float howfar, char *message) { |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
795 if (mainwindow) |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
796 gtk_widget_hide(mainwindow); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
797 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
798 if (!gc->meter) { |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
799 GtkWidget *box, *label, *button; |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
800 char buf[256]; |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
801 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
802 gc->meter = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
803 gtk_window_set_policy(GTK_WINDOW(gc->meter), 0, 0, 1); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
804 gtk_window_set_wmclass(GTK_WINDOW(gc->meter), "signon", "Gaim"); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
805 gtk_container_set_border_width(GTK_CONTAINER(gc->meter), 5); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
806 g_snprintf(buf, sizeof(buf), "%s Signing On", gc->username); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
807 gtk_window_set_title(GTK_WINDOW(gc->meter), buf); |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
808 gtk_signal_connect(GTK_OBJECT(gc->meter), "delete_event", |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
809 GTK_SIGNAL_FUNC(meter_destroy), gc); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
810 gtk_widget_realize(gc->meter); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
811 aol_icon(gc->meter->window); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
812 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
813 box = gtk_vbox_new(FALSE, 5); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
814 gtk_container_add(GTK_CONTAINER(gc->meter), box); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
815 gtk_widget_show(box); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
816 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
817 label = gtk_label_new(buf); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
818 gtk_box_pack_start(GTK_BOX(box), label, 0, 0, 5); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
819 gtk_widget_show(label); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
820 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
821 gc->progress = gtk_progress_bar_new(); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
822 gtk_widget_set_usize(gc->progress, 150, 0); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
823 gtk_box_pack_start(GTK_BOX(box), gc->progress, 0, 0, 5); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
824 gtk_widget_show(gc->progress); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
825 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
826 gc->status = gtk_statusbar_new(); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
827 gtk_widget_set_usize(gc->status, 150, 0); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
828 gtk_box_pack_start(GTK_BOX(box), gc->status, 0, 0, 5); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
829 gtk_widget_show(gc->status); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
830 |
|
1089
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
831 button = gtk_button_new_with_label(_("Cancel")); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
832 gtk_box_pack_start(GTK_BOX(box), button, 0, 0, 5); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
833 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(cancel_signon), gc); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
834 gtk_widget_show(button); |
|
f0f5c10cce63
[gaim-migrate @ 1099]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1086
diff
changeset
|
835 |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
836 gtk_widget_show(gc->meter); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
837 } |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
838 |
|
1106
5bc8fdacd2cb
[gaim-migrate @ 1116]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1089
diff
changeset
|
839 gtk_progress_bar_update(GTK_PROGRESS_BAR(gc->progress), howfar / LOGIN_STEPS); |
|
988
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
840 gtk_statusbar_pop(GTK_STATUSBAR(gc->status), 1); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
841 gtk_statusbar_push(GTK_STATUSBAR(gc->status), 1, message); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
842 } |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
843 |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
844 void hide_login_progress(struct gaim_connection *gc, char *why) |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
845 { |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
846 char buf[2048]; |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
847 sprintf(buf, _("%s was unable to sign on: %s"), gc->username, why); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
848 do_error_dialog(buf, _("Signon Error")); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
849 if (gc->meter) |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
850 gtk_widget_destroy(gc->meter); |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
851 gc->meter = NULL; |
|
9523b772e546
[gaim-migrate @ 998]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
984
diff
changeset
|
852 } |
