Mercurial > pidgin
diff src/gtkblist.c @ 8937:fd1a4ff1f7ed
[gaim-migrate @ 9707]
Tools->Room List will now be grayed out when you're not signed on
with an account that supports listing rooms.
This involved 2 big changes:
-Change when the sign_on_off_cb function in gtkblist gets called...
it used to get called when the signing-on and signing-off signal
was emitted, but I changed it to signed-on and signed-off. This
makes more sense to me, and it makes my code work :-) Let me know
if you notice any side-effects
-Add functions to the roomlist API for determining if any online
accounts support chatting or not. This involved extracting a
function from gtkroomlist.c and putting it in roomlist.c, and
adding a little helper TRUE/FALSE function
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Sat, 15 May 2004 21:56:17 +0000 |
| parents | 35b68d76cb4c |
| children | 88ec59dec95a |
line wrap: on
line diff
--- a/src/gtkblist.c Sat May 15 21:24:43 2004 +0000 +++ b/src/gtkblist.c Sat May 15 21:56:17 2004 +0000 @@ -2882,12 +2882,16 @@ } static void -signed_on_off_cb(GaimConnection *gc, GaimBuddyList *blist) +sign_on_off_cb(GaimConnection *gc, GaimBuddyList *blist) { GaimGtkBuddyList *gtkblist = GAIM_GTK_BLIST(blist); + GtkWidget *widget; gaim_gtk_blist_update_protocol_actions(); gaim_gtkpounce_menu_build(gtkblist->bpmenu); + + widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List")); + gtk_widget_set_sensitive(widget, gaim_roomlist_is_showable()); } /* this is called on all sorts of signals, and we have no reason to pass @@ -3244,10 +3248,10 @@ gaim_gtk_blist_update_columns, NULL))); /* Setup some gaim signal handlers. */ - gaim_signal_connect(gaim_connections_get_handle(), "signing-on", - gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); - gaim_signal_connect(gaim_connections_get_handle(), "signing-off", - gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); + gaim_signal_connect(gaim_connections_get_handle(), "signed-on", + gtkblist, GAIM_CALLBACK(sign_on_off_cb), list); + gaim_signal_connect(gaim_connections_get_handle(), "signed-off", + gtkblist, GAIM_CALLBACK(sign_on_off_cb), list); /* emit our created signal */ gaim_signal_emit(gaim_gtk_blist_get_handle(), "gtkblist-created", list); @@ -3737,10 +3741,10 @@ if (!gtkblist) return; - gaim_signal_disconnect(gaim_connections_get_handle(), "signing-on", - gtkblist, GAIM_CALLBACK(signed_on_off_cb)); - gaim_signal_disconnect(gaim_connections_get_handle(), "signing-off", - gtkblist, GAIM_CALLBACK(signed_on_off_cb)); + gaim_signal_disconnect(gaim_connections_get_handle(), "signed-on", + gtkblist, GAIM_CALLBACK(sign_on_off_cb)); + gaim_signal_disconnect(gaim_connections_get_handle(), "signed-off", + gtkblist, GAIM_CALLBACK(sign_on_off_cb)); gtk_widget_destroy(gtkblist->window);
