Mercurial > pidgin
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) |