From: Sean E. <sea...@us...> - 2002-09-14 23:27:31
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv29141/src Modified Files: aim.c buddy.c core.h module.c multi.c perl.c server.c ui.h Log Message: 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: ---------------------------------------------------------------------- Index: aim.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/aim.c,v retrieving revision 1.194 retrieving revision 1.195 diff -u -d -r1.194 -r1.195 --- aim.c 12 Sep 2002 15:56:05 -0000 1.194 +++ aim.c 14 Sep 2002 23:27:26 -0000 1.195 @@ -302,8 +302,6 @@ gtk_widget_show(bbox); cancel = gtk_button_new_with_label(_("Quit")); -/* fixme: docklet * - * cancel = gtk_button_new_with_label(_("Close")); */ #ifndef NO_MULTI accts = gtk_button_new_with_label(_("Accounts")); #endif Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.328 retrieving revision 1.329 diff -u -d -r1.328 -r1.329 --- buddy.c 14 Sep 2002 18:47:45 -0000 1.328 +++ buddy.c 14 Sep 2002 23:27:26 -0000 1.329 @@ -1995,40 +1995,26 @@ /* used by this file, and by iconaway.so */ void hide_buddy_list() { - if (!blist) return; - if (!connections || docklet_refcount) { - gtk_widget_hide(blist); - } else { - gtk_window_iconify(GTK_WINDOW(blist)); - } - blist_hidden = TRUE; -} - -/* shared code... not in lschiere/faceprint tree though. oh well */ -static void move_buddy_list() { - if (blist_options & OPT_BLIST_SAVED_WINDOWS) { - if (blist_pos.width != 0) { /* Sanity check! */ - gtk_widget_set_uposition(blist, blist_pos.x - blist_pos.xoff, - blist_pos.y - blist_pos.yoff); - gtk_widget_set_usize(blist, blist_pos.width, blist_pos.height); + if (blist) { + if (!connections || docklet_refcount) { + gtk_widget_hide(blist); + } else { + gtk_window_iconify(GTK_WINDOW(blist)); } } } /* mostly used by code in this file */ void unhide_buddy_list() { - if (!blist) return; - gtk_window_present(GTK_WINDOW(blist)); - move_buddy_list(); - blist_hidden = FALSE; -} - -/* used by the docklet */ -void toggle_buddy_list() { - if (blist_hidden) { - unhide_buddy_list(); - } else { - hide_buddy_list(); + if (blist) { + gtk_window_present(GTK_WINDOW(blist)); + if (blist_options & OPT_BLIST_SAVED_WINDOWS) { + if (blist_pos.width != 0) { /* Sanity check! */ + gtk_widget_set_uposition(blist, blist_pos.x - blist_pos.xoff, + blist_pos.y - blist_pos.yoff); + gtk_widget_set_usize(blist, blist_pos.width, blist_pos.height); + } + } } } @@ -2442,9 +2428,6 @@ gdk_window_get_position(blist->window, &x, &y); gdk_window_get_size(blist->window, &width, &height); -/* fixme: docklet * - * if (applet_buddy_show){ */ - if (e->send_event) { /* Is a position event */ if (blist_pos.x != x || blist_pos.y != y) save = 1; @@ -2910,8 +2893,9 @@ gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); - move_buddy_list(); - blist_hidden = FALSE; + + /* this conveniently moves it to the right place and stuff */ + unhide_buddy_list(); } void refresh_buddy_window() Index: core.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/core.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- core.h 31 Aug 2002 02:40:51 -0000 1.24 +++ core.h 14 Sep 2002 23:27:27 -0000 1.25 @@ -64,6 +64,7 @@ char iconfile[256]; struct gaim_connection *gc; + gboolean connecting; }; enum gaim_event { @@ -98,6 +99,7 @@ event_chat_send_invite, event_got_typing, event_del_conversation, + event_connecting, /* any others? it's easy to add... */ }; Index: module.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/module.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- module.c 29 Aug 2002 01:47:14 -0000 1.19 +++ module.c 14 Sep 2002 23:27:27 -0000 1.20 @@ -363,6 +363,12 @@ case event_got_typing: sprintf(buf, "event_got_typing"); break; + case event_del_conversation: + sprintf(buf, "event_del_conversation"); + break; + case event_connecting: + sprintf(buf, "event_connecting"); + break; default: sprintf(buf, "event_unknown"); break; @@ -376,6 +382,12 @@ return; switch (event) { + case event_blist_update: + /* this happens *really* often */ + if (opt_debug) { + debug_printf("%s\n", event_name(event)); + } + break; case event_quit: debug_printf("%s\n", event_name(event)); break; @@ -385,10 +397,10 @@ ((struct gaim_connection *)arg1)->username); break; case event_new_conversation: - debug_printf("event_new_conversation: %s\n", (char *)arg1); + debug_printf("%s: %s\n", event_name(event), (char *)arg1); break; case event_error: - debug_printf("event_error: %d\n", (int)arg1); + debug_printf("%s: %d\n", event_name(event), (int)arg1); break; case event_buddy_signon: case event_buddy_signoff: @@ -398,11 +410,11 @@ case event_buddy_unidle: case event_set_info: case event_got_typing: - debug_printf("%s: %s %s\n", event_name(event), + debug_printf("%s: %s %s\n", event_name(event), ((struct gaim_connection *)arg1)->username, (char *)arg2); break; case event_chat_leave: - debug_printf("event_chat_leave: %s %d\n", + debug_printf("%s: %s %d\n", event_name(event), ((struct gaim_connection *)arg1)->username, (int)arg2); break; case event_im_send: @@ -464,7 +476,14 @@ (char *)arg2, (char *)arg3, (char *)arg4 ? (char *)arg4 : ""); break; + case event_del_conversation: + debug_printf("%s: %s\n", event_name(event), (char *)arg1); + break; + case event_connecting: + debug_printf("%s: %s\n", event_name(event), ((struct aim_user *)arg1)->username); + break; default: + debug_printf("%s: um, right. yeah.\n", event_name(event)); break; } } @@ -503,6 +522,7 @@ case event_new_conversation: case event_del_conversation: case event_error: + case event_connecting: one = g->function; one(arg1, g->data); break; Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.127 retrieving revision 1.128 diff -u -d -r1.127 -r1.128 --- multi.c 30 Aug 2002 03:14:02 -0000 1.127 +++ multi.c 14 Sep 2002 23:27:27 -0000 1.128 @@ -101,7 +101,6 @@ GSList *h; struct group *m; struct buddy *n; - connections = g_slist_remove(connections, gc); while (g) { m = (struct group *)g->data; g = g_slist_remove(g, m); @@ -126,7 +125,7 @@ g = g_slist_remove(g, g->data); } g_free(gc); -/* fixme: docklet */ + if (!connections && mainwindow) gtk_widget_show(mainwindow); } @@ -1156,6 +1155,7 @@ redo_convo_menus(); gaim_setup(gc); + gc->user->connecting = FALSE; plugin_event(event_signon, gc, 0, 0, 0); system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); @@ -1437,15 +1437,23 @@ void signoff(struct gaim_connection *gc) { + /* UI stuff */ + convo_menu_remove(gc); + remove_icon_data(gc); + /* core stuff */ + /* remove this here so plugins get a sensible count of connections */ + connections = g_slist_remove(connections, gc); debug_printf("date: %s\n", full_date()); plugin_event(event_signoff, gc, 0, 0, 0); system_log(log_signoff, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); - - /* UI stuff */ - convo_menu_remove(gc); - remove_icon_data(gc); + /* set this in case the plugin died before really connecting. + do it after calling the plugins so they can determine if + this user was ever on-line or not */ + gc->user->connecting = FALSE; serv_close(gc); + + /* more UI stuff */ redo_buddy_list(); build_edit_tree(); do_away_menu(); @@ -1453,22 +1461,12 @@ redo_convo_menus(); update_privacy_connections(); + /* in, out, shake it all about */ if (connections) return; destroy_all_dialogs(); destroy_buddy(); -/* fixme: docklet - set_user_state(offline); - applet_buddy_show = FALSE; - - if (applet) { - /* These don't have any purpose if the applet is gone :-P - applet_widget_unregister_callback(APPLET_WIDGET(applet), "signoff"); - applet_widget_register_callback(APPLET_WIDGET(applet), - "autologin", _("Auto-login"), (AppletCallbackFunc)auto_login, NULL); - remove_applet_away(); - } */ show_login(); } Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.75 retrieving revision 1.76 diff -u -d -r1.75 -r1.76 --- perl.c 28 Aug 2002 02:38:18 -0000 1.75 +++ perl.c 14 Sep 2002 23:27:27 -0000 1.76 @@ -757,6 +757,7 @@ buf = g_malloc0(1); break; case event_new_conversation: + case event_del_conversation: buf = g_strdup_printf("'%s'", escape_quotes(arg1)); break; case event_im_displayed_sent: @@ -780,6 +781,7 @@ } break; default: + debug_printf("someone forgot to handle %s in the perl binding\n", event_name(event)); return 0; } Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.234 retrieving revision 1.235 diff -u -d -r1.234 -r1.235 --- server.c 30 Aug 2002 03:14:05 -0000 1.234 +++ server.c 14 Sep 2002 23:27:28 -0000 1.235 @@ -54,6 +54,8 @@ } debug_printf(PACKAGE " " VERSION " logging in %s using %s\n", user->username, p->name()); + user->connecting = TRUE; + plugin_event(event_connecting, user, 0, 0, 0); p->login(user); } } Index: ui.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/ui.h,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- ui.h 31 Aug 2002 02:40:51 -0000 1.51 +++ ui.h 14 Sep 2002 23:27:28 -0000 1.52 @@ -269,6 +269,7 @@ extern int auto_away; extern GtkWidget *awaymenu; extern GtkWidget *clistqueue; +extern GtkWidget *imaway; /* Globals in buddy.c */ extern GtkWidget *buddies; @@ -349,7 +350,6 @@ extern void set_blist_tab(); extern void hide_buddy_list(); extern void unhide_buddy_list(); -extern void toggle_buddy_list(); extern void docklet_add(); extern void docklet_remove(); |