Mercurial > pidgin.yaz
comparison src/gtkblist.c @ 8815:ada0cf2f49fe
[gaim-migrate @ 9577]
" This patch creates the subsystem like most of the core
to connect to signals and emit them. It also adds a
"gtkblist-created" signal so plugins that want to add
something to the gtkblist know when it's created.
Using the same subsytem setup as the rest of gaim helps
plugin authors avoid connecting to the buddy signon
even to know when they can connect to the
"drawing-menu" signal." --Gary Kramlich
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Mon, 26 Apr 2004 16:10:16 +0000 |
parents | 36b043fe2740 |
children | 48c6552be372 |
comparison
equal
deleted
inserted
replaced
8814:c61be128dff3 | 8815:ada0cf2f49fe |
---|---|
2901 gtk_window_deiconify(GTK_WINDOW(gtkblist->window)); | 2901 gtk_window_deiconify(GTK_WINDOW(gtkblist->window)); |
2902 gdk_window_raise(gtkblist->window->window); | 2902 gdk_window_raise(gtkblist->window->window); |
2903 } | 2903 } |
2904 } | 2904 } |
2905 | 2905 |
2906 | |
2907 /********************************************************************************** | 2906 /********************************************************************************** |
2908 * Public API Functions * | 2907 * Public API Functions * |
2909 **********************************************************************************/ | 2908 **********************************************************************************/ |
2910 static void gaim_gtk_blist_new_list(GaimBuddyList *blist) | 2909 static void gaim_gtk_blist_new_list(GaimBuddyList *blist) |
2911 { | 2910 { |
2912 GaimGtkBuddyList *gtkblist; | 2911 GaimGtkBuddyList *gtkblist; |
2913 | 2912 |
2914 gtkblist = g_new0(GaimGtkBuddyList, 1); | 2913 gtkblist = g_new0(GaimGtkBuddyList, 1); |
2915 blist->ui_data = gtkblist; | 2914 blist->ui_data = gtkblist; |
2916 | |
2917 /* Register some of our own. */ | |
2918 gaim_signal_register(gtkblist, "drawing-menu", | |
2919 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, | |
2920 gaim_value_new(GAIM_TYPE_BOXED, "GtkMenu"), | |
2921 gaim_value_new(GAIM_TYPE_SUBTYPE, | |
2922 GAIM_SUBTYPE_BLIST_BUDDY)); | |
2923 | 2915 |
2924 /* All of these signal handlers are for the "Raise on Events" option */ | 2916 /* All of these signal handlers are for the "Raise on Events" option */ |
2925 gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", | 2917 gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-on", |
2926 gtkblist, GAIM_CALLBACK(raise_on_events_cb), NULL); | 2918 gtkblist, GAIM_CALLBACK(raise_on_events_cb), NULL); |
2927 gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-off", | 2919 gaim_signal_connect(gaim_blist_get_handle(), "buddy-signed-off", |
3252 /* Setup some gaim signal handlers. */ | 3244 /* Setup some gaim signal handlers. */ |
3253 gaim_signal_connect(gaim_connections_get_handle(), "signing-on", | 3245 gaim_signal_connect(gaim_connections_get_handle(), "signing-on", |
3254 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); | 3246 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); |
3255 gaim_signal_connect(gaim_connections_get_handle(), "signing-off", | 3247 gaim_signal_connect(gaim_connections_get_handle(), "signing-off", |
3256 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); | 3248 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); |
3249 | |
3250 /* emit our created signal */ | |
3251 gaim_signal_emit(gaim_gtk_blist_get_handle(), "gtkblist-created", list); | |
3257 } | 3252 } |
3258 | 3253 |
3259 /* XXX: does this need fixing? */ | 3254 /* XXX: does this need fixing? */ |
3260 static void redo_buddy_list(GaimBuddyList *list, gboolean remove) | 3255 static void redo_buddy_list(GaimBuddyList *list, gboolean remove) |
3261 { | 3256 { |
4456 serv_join_chat(gc, chat->components); | 4451 serv_join_chat(gc, chat->components); |
4457 } | 4452 } |
4458 } | 4453 } |
4459 } | 4454 } |
4460 | 4455 |
4456 void * | |
4457 gaim_gtk_blist_get_handle() { | |
4458 static int handle; | |
4459 | |
4460 return &handle; | |
4461 } | |
4462 | |
4461 void gaim_gtk_blist_init(void) | 4463 void gaim_gtk_blist_init(void) |
4462 { | 4464 { |
4463 /* XXX */ | 4465 void *gtk_blist_handle = gaim_gtk_blist_get_handle(); |
4464 static int gtk_blist_handle; | |
4465 | 4466 |
4466 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", | 4467 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", |
4467 >k_blist_handle, GAIM_CALLBACK(account_signon_cb), | 4468 gtk_blist_handle, GAIM_CALLBACK(account_signon_cb), |
4468 NULL); | 4469 NULL); |
4469 | 4470 |
4470 /* Initialize prefs */ | 4471 /* Initialize prefs */ |
4471 gaim_prefs_add_none("/gaim/gtk/blist"); | 4472 gaim_prefs_add_none("/gaim/gtk/blist"); |
4472 gaim_prefs_add_bool("/gaim/gtk/blist/auto_expand_contacts", TRUE); | 4473 gaim_prefs_add_bool("/gaim/gtk/blist/auto_expand_contacts", TRUE); |
4484 gaim_prefs_add_int("/gaim/gtk/blist/y", 0); | 4485 gaim_prefs_add_int("/gaim/gtk/blist/y", 0); |
4485 gaim_prefs_add_int("/gaim/gtk/blist/width", 0); | 4486 gaim_prefs_add_int("/gaim/gtk/blist/width", 0); |
4486 gaim_prefs_add_int("/gaim/gtk/blist/height", 0); | 4487 gaim_prefs_add_int("/gaim/gtk/blist/height", 0); |
4487 gaim_prefs_add_int("/gaim/gtk/blist/tooltip_delay", 500); | 4488 gaim_prefs_add_int("/gaim/gtk/blist/tooltip_delay", 500); |
4488 | 4489 |
4489 } | 4490 /* Register our signals */ |
4490 | 4491 gaim_signal_register(gtk_blist_handle, "drawing-menu", |
4491 | 4492 gaim_marshal_VOID__POINTER_POINTER, NULL, 2, |
4493 gaim_value_new(GAIM_TYPE_BOXED, "GtkMenu"), | |
4494 gaim_value_new(GAIM_TYPE_SUBTYPE, | |
4495 GAIM_SUBTYPE_BLIST_BUDDY)); | |
4496 | |
4497 gaim_signal_register(gtk_blist_handle, "gtkblist-created", | |
4498 gaim_marshal_VOID__POINTER, NULL, 1, | |
4499 gaim_value_new(GAIM_TYPE_SUBTYPE, | |
4500 GAIM_SUBTYPE_BLIST)); | |
4501 } | |
4502 | |
4503 void | |
4504 gaim_gtk_blist_uninit(void) { | |
4505 gaim_signals_unregister_by_instance(gaim_gtk_blist_get_handle()); | |
4506 } | |
4492 | 4507 |
4493 /********************************************************************* | 4508 /********************************************************************* |
4494 * Public utility functions * | 4509 * Public utility functions * |
4495 *********************************************************************/ | 4510 *********************************************************************/ |
4496 | 4511 |