grim/guifications1

Parents a6de4dd5fdde
Children 410b220948b5
Update to use the new Gaim extended menu functions to create the notification
context menu
--- a/src/guifications.c Fri May 21 19:52:45 2004 +0000
+++ b/src/guifications.c Mon May 24 15:43:15 2004 +0000
@@ -83,7 +83,6 @@
static void gf_menu_im_cb(GtkWidget *widget, GaimBuddy *buddy);
static void gf_menu_pounce_cb(GtkWidget *widget, GaimBuddy *buddy);
static void gf_menu_log_cb(GtkWidget *widget, GaimBuddy *buddy);
-static void gf_proto_menu_cb(GtkMenuItem *item, GaimBuddy *buddy);
static void gf_menu_destroy(GtkWidget *widget, gpointer data);
static void gf_signed_on(GaimConnection *gc, void *data);
@@ -485,10 +484,10 @@
static void
gf_clicked(GtkWidget *widget, GdkEventButton *event_button, gpointer data) {
- GtkWidget *guification = (GtkWidget*)data, *menu, *item;
- GList *list;
+ GtkWidget *guification = (GtkWidget*)data, *menu;
guint timeout_id = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(guification), "timeout"));
GaimBuddy *buddy = g_object_get_data(G_OBJECT(guification), "buddy");
+ GaimConnection *gc;
gboolean destroy = FALSE;
GaimPluginProtocolInfo *prplinfo = NULL;
@@ -529,24 +528,9 @@
gaim_new_item_from_stock(menu, _("Add Buddy _Pounce"), NULL, G_CALLBACK(gf_menu_pounce_cb), buddy, 0, 0, NULL);
gaim_new_item_from_stock(menu, _("View _Log"), NULL, G_CALLBACK(gf_menu_log_cb), buddy, 0, 0, NULL);
- if (prplinfo && prplinfo->buddy_menu) {
- list = prplinfo->buddy_menu(buddy->account->gc, buddy->name);
- while (list) {
- struct proto_buddy_menu *pbm = list->data;
-
- item = gtk_menu_item_new_with_mnemonic(pbm->label);
-
- g_object_set_data(G_OBJECT(item), "gaimcallback", pbm);
- g_signal_connect(G_OBJECT(item), "activate", G_CALLBACK(gf_proto_menu_cb), buddy);
-
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
-
- list = list->next;
- }
- }
-
- /* emit the drawing menu signal so that other plugins can add to the menu */
- gaim_signal_emit(GAIM_GTK_BLIST(gaim_get_blist()), "drawing-menu", menu, buddy);
+ gc = gaim_account_get_connection(buddy->account);
+ gaim_gtk_append_blist_node_proto_menu (menu, gc, (GaimBlistNode*)buddy);
+ gaim_gtk_append_blist_node_extended_menu(menu, (GaimBlistNode*)buddy);
g_source_remove(timeout_id);
g_signal_connect(G_OBJECT(menu), "hide", G_CALLBACK(gf_menu_destroy), guification);
@@ -626,14 +610,6 @@
}
static void
-gf_proto_menu_cb(GtkMenuItem *item, GaimBuddy *buddy) {
- struct proto_buddy_menu *pbm = g_object_get_data(G_OBJECT(item), "gaimcallback");
-
- if (pbm->callback)
- pbm->callback(pbm->gc, buddy->name);
-}
-
-static void
gf_menu_destroy(GtkWidget *widget, gpointer data) {
GtkWidget *guification = (GtkWidget*)data;
gint timeout = (gaim_prefs_get_int(GF_PREF_BEHAVIOR_TIMEOUT) * 1000) / 2;