comparison src/multi.c @ 3510:e23909729192

[gaim-migrate @ 3576] A GNOME2 docklet. This follows the opendesktop.org specs used by GNOME2 and (I think) KDE in Redhat's null (I don't think vanilla KDE supports it yet) For GNOME--you will need to have the GNOME Panel Notification Area installed. This replaces the applet--thanks Robert McQueen. CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: configure.ac configure.in plugins/Makefile.am src/aim.c CVS: src/buddy.c src/core.h src/module.c src/multi.c src/perl.c CVS: src/server.c src/ui.h CVS: ---------------------------------------------------------------------- committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Sat, 14 Sep 2002 23:27:28 +0000
parents cfbdfe334975
children 6b0cb60162f4
comparison
equal deleted inserted replaced
3509:8bad870eaea1 3510:e23909729192
99 { 99 {
100 GSList *g = gc->groups; 100 GSList *g = gc->groups;
101 GSList *h; 101 GSList *h;
102 struct group *m; 102 struct group *m;
103 struct buddy *n; 103 struct buddy *n;
104 connections = g_slist_remove(connections, gc);
105 while (g) { 104 while (g) {
106 m = (struct group *)g->data; 105 m = (struct group *)g->data;
107 g = g_slist_remove(g, m); 106 g = g_slist_remove(g, m);
108 h = m->members; 107 h = m->members;
109 while (h) { 108 while (h) {
124 while (g) { 123 while (g) {
125 g_free(g->data); 124 g_free(g->data);
126 g = g_slist_remove(g, g->data); 125 g = g_slist_remove(g, g->data);
127 } 126 }
128 g_free(gc); 127 g_free(gc);
129 /* fixme: docklet */ 128
130 if (!connections && mainwindow) 129 if (!connections && mainwindow)
131 gtk_widget_show(mainwindow); 130 gtk_widget_show(mainwindow);
132 } 131 }
133 132
134 static void delete_acctedit(GtkWidget *w, gpointer d) 133 static void delete_acctedit(GtkWidget *w, gpointer d)
1154 do_away_menu(); 1153 do_away_menu();
1155 do_proto_menu(); 1154 do_proto_menu();
1156 redo_convo_menus(); 1155 redo_convo_menus();
1157 gaim_setup(gc); 1156 gaim_setup(gc);
1158 1157
1158 gc->user->connecting = FALSE;
1159 plugin_event(event_signon, gc, 0, 0, 0); 1159 plugin_event(event_signon, gc, 0, 0, 0);
1160 system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); 1160 system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
1161 1161
1162 /* away option given? */ 1162 /* away option given? */
1163 if (opt_away) { 1163 if (opt_away) {
1435 } 1435 }
1436 } 1436 }
1437 1437
1438 void signoff(struct gaim_connection *gc) 1438 void signoff(struct gaim_connection *gc)
1439 { 1439 {
1440 /* UI stuff */
1441 convo_menu_remove(gc);
1442 remove_icon_data(gc);
1443
1440 /* core stuff */ 1444 /* core stuff */
1445 /* remove this here so plugins get a sensible count of connections */
1446 connections = g_slist_remove(connections, gc);
1441 debug_printf("date: %s\n", full_date()); 1447 debug_printf("date: %s\n", full_date());
1442 plugin_event(event_signoff, gc, 0, 0, 0); 1448 plugin_event(event_signoff, gc, 0, 0, 0);
1443 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); 1449 system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
1444 1450 /* set this in case the plugin died before really connecting.
1445 /* UI stuff */ 1451 do it after calling the plugins so they can determine if
1446 convo_menu_remove(gc); 1452 this user was ever on-line or not */
1447 remove_icon_data(gc); 1453 gc->user->connecting = FALSE;
1448 serv_close(gc); 1454 serv_close(gc);
1455
1456 /* more UI stuff */
1449 redo_buddy_list(); 1457 redo_buddy_list();
1450 build_edit_tree(); 1458 build_edit_tree();
1451 do_away_menu(); 1459 do_away_menu();
1452 do_proto_menu(); 1460 do_proto_menu();
1453 redo_convo_menus(); 1461 redo_convo_menus();
1454 update_privacy_connections(); 1462 update_privacy_connections();
1455 1463
1464 /* in, out, shake it all about */
1456 if (connections) 1465 if (connections)
1457 return; 1466 return;
1458 1467
1459 destroy_all_dialogs(); 1468 destroy_all_dialogs();
1460 destroy_buddy(); 1469 destroy_buddy();
1461 /* fixme: docklet
1462 set_user_state(offline);
1463 applet_buddy_show = FALSE;
1464
1465 if (applet) {
1466 /* These don't have any purpose if the applet is gone :-P
1467 applet_widget_unregister_callback(APPLET_WIDGET(applet), "signoff");
1468 applet_widget_register_callback(APPLET_WIDGET(applet),
1469 "autologin", _("Auto-login"), (AppletCallbackFunc)auto_login, NULL);
1470 remove_applet_away();
1471 } */
1472 1470
1473 show_login(); 1471 show_login();
1474 } 1472 }
1475 1473
1476 struct aim_user *new_user(const char *name, int proto, int opts) 1474 struct aim_user *new_user(const char *name, int proto, int opts)