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