Mercurial > pidgin
comparison src/multi.c @ 2956:b68c648618a3
[gaim-migrate @ 2969]
I Love Rock & Roll....
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Sun, 17 Feb 2002 18:08:12 +0000 |
parents | f3c094e78609 |
children | 626729653436 |
comparison
equal
deleted
inserted
replaced
2955:8b03506b8c1e | 2956:b68c648618a3 |
---|---|
236 { | 236 { |
237 GList *tmp; | 237 GList *tmp; |
238 const char *txt; | 238 const char *txt; |
239 int i; | 239 int i; |
240 struct aim_user *a; | 240 struct aim_user *a; |
241 struct prpl *p; | |
241 | 242 |
242 if (!u->user) { | 243 if (!u->user) { |
243 txt = gtk_entry_get_text(GTK_ENTRY(u->name)); | 244 txt = gtk_entry_get_text(GTK_ENTRY(u->name)); |
244 u->user = new_user(txt, u->protocol, u->options); | 245 u->user = new_user(txt, u->protocol, u->options); |
245 } | 246 } |
276 g_snprintf(a->iconfile, sizeof(a->iconfile), "%s", u->iconfile); | 277 g_snprintf(a->iconfile, sizeof(a->iconfile), "%s", u->iconfile); |
277 if (u->icondlg) | 278 if (u->icondlg) |
278 gtk_widget_destroy(u->icondlg); | 279 gtk_widget_destroy(u->icondlg); |
279 u->icondlg = NULL; | 280 u->icondlg = NULL; |
280 | 281 |
282 /* | |
283 * See if user registration is supported/required | |
284 */ | |
285 if((p = find_prpl(u->protocol)) == NULL) { | |
286 /* TBD: error dialog here! (This should never happen, you know...) */ | |
287 fprintf(stderr, "dbg: couldn't find protocol for protocol number %d!\n", u->protocol); | |
288 fflush(stderr); | |
289 } else { | |
290 if(p->register_user != NULL && | |
291 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(u->register_user)) == TRUE) { | |
292 | |
293 p->register_user(a); | |
294 } | |
295 } | |
296 | |
297 save_prefs(); | |
298 | |
281 gtk_widget_destroy(u->mod); | 299 gtk_widget_destroy(u->mod); |
282 | |
283 save_prefs(); | |
284 } | 300 } |
285 | 301 |
286 static void cancel_mod(GtkWidget *w, struct mod_user *u) | 302 static void cancel_mod(GtkWidget *w, struct mod_user *u) |
287 { | 303 { |
288 if (u->opt_entries) | 304 if (u->opt_entries) |
646 u->opt_entries = g_list_append(u->opt_entries, entry); | 662 u->opt_entries = g_list_append(u->opt_entries, entry); |
647 | 663 |
648 g_free(puo); | 664 g_free(puo); |
649 op = op->next; | 665 op = op->next; |
650 } | 666 } |
667 | |
668 if(p->register_user != NULL) { | |
669 u->register_user = gtk_check_button_new_with_label("Register with server"); | |
670 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(u->register_user), FALSE); | |
671 gtk_box_pack_start(GTK_BOX(vbox), u->register_user, FALSE, FALSE, 0); | |
672 gtk_widget_show(u->register_user); | |
673 } | |
674 | |
651 g_list_free(tmp); | 675 g_list_free(tmp); |
652 } | 676 } |
653 | 677 |
654 static void show_acct_mod(struct aim_user *a) | 678 static void show_acct_mod(struct aim_user *a) |
655 { | 679 { |
1216 { | 1240 { |
1217 kicks = g_slist_remove(kicks, k); | 1241 kicks = g_slist_remove(kicks, k); |
1218 g_free(k); | 1242 g_free(k); |
1219 } | 1243 } |
1220 | 1244 |
1221 void hide_login_progress(struct gaim_connection *gc, char *why) | 1245 /* |
1246 * Common code for hide_login_progress(), and hide_login_progress_info() | |
1247 */ | |
1248 static void hide_login_progress_common(struct gaim_connection *gc, | |
1249 char *details, | |
1250 char *title, | |
1251 char *prologue) | |
1222 { | 1252 { |
1223 char buf[2048]; | 1253 char buf[2048]; |
1224 struct kick_dlg *k = find_kick_dlg(gc->user); | 1254 struct kick_dlg *k = find_kick_dlg(gc->user); |
1225 struct signon_meter *meter = find_signon_meter(gc); | 1255 struct signon_meter *meter = find_signon_meter(gc); |
1226 sprintf(buf, _("%s\n%s was unable to sign on: %s"), full_date(), gc->username, why); | 1256 sprintf(buf, _("%s\n%s: %s"), full_date(), prologue, details); |
1227 if (k) | 1257 if (k) |
1228 gtk_widget_destroy(k->dlg); | 1258 gtk_widget_destroy(k->dlg); |
1229 k = g_new0(struct kick_dlg, 1); | 1259 k = g_new0(struct kick_dlg, 1); |
1230 k->user = gc->user; | 1260 k->user = gc->user; |
1231 k->dlg = do_error_dialog(buf, _("Signon Error")); | 1261 k->dlg = do_error_dialog(buf, title); |
1232 kicks = g_slist_append(kicks, k); | 1262 kicks = g_slist_append(kicks, k); |
1233 gtk_signal_connect(GTK_OBJECT(k->dlg), "destroy", GTK_SIGNAL_FUNC(set_kick_null), k); | 1263 gtk_signal_connect(GTK_OBJECT(k->dlg), "destroy", GTK_SIGNAL_FUNC(set_kick_null), k); |
1234 if (meter) { | 1264 if (meter) { |
1235 gtk_widget_destroy(meter->window); | 1265 gtk_widget_destroy(meter->window); |
1236 meters = g_slist_remove(meters, meter); | 1266 meters = g_slist_remove(meters, meter); |
1237 g_free(meter); | 1267 g_free(meter); |
1238 } | 1268 } |
1269 } | |
1270 | |
1271 void hide_login_progress(struct gaim_connection *gc, char *why) | |
1272 { | |
1273 char buf[2048]; | |
1274 | |
1275 sprintf(buf, _("%s was unable to sign on"), gc->username); | |
1276 hide_login_progress_common(gc, why, _("Signon Error"), buf); | |
1277 } | |
1278 | |
1279 /* | |
1280 * Like hide_login_progress(), but for informational, not error/warning, | |
1281 * messages. | |
1282 * | |
1283 */ | |
1284 void hide_login_progress_notice(struct gaim_connection *gc, char *why) | |
1285 { | |
1286 hide_login_progress_common(gc, why, _("Notice"), gc->username); | |
1239 } | 1287 } |
1240 | 1288 |
1241 void signoff_all() | 1289 void signoff_all() |
1242 { | 1290 { |
1243 GSList *c = connections; | 1291 GSList *c = connections; |