From: Etan R. <de...@us...> - 2006-01-17 23:22:30
|
Update of /cvsroot/gaim/gaim/src/protocols/silc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8809/src/protocols/silc Modified Files: buddy.c chat.c Log Message: Replace GaimBlistNodeAction with the more generic GaimMenuAction, this is in preparation for letting the chat room user list have extensible menus like the blist entries do. (I know it's not exactly the prettiest, and the callback isn't exactly type-safe, when we eventually gobjectify everything we can get some safety back by using (GObject, gpointer) but that's for later.) I'm planning to look into merging GaimPluginActions into GaimMenuActions as well. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/buddy.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -p -r1.35 -r1.36 --- buddy.c 8 Jan 2006 16:17:22 -0000 1.35 +++ buddy.c 17 Jan 2006 23:22:19 -0000 1.36 @@ -1619,7 +1619,7 @@ GList *silcgaim_buddy_menu(GaimBuddy *bu SilcClientConnection conn = sg->conn; const char *pkfile = NULL; SilcClientEntry client_entry = NULL; - GaimBlistNodeAction *act; + GaimMenuAction *act; GList *m = NULL; SilcGaimBuddyWb wb; @@ -1629,36 +1629,40 @@ GList *silcgaim_buddy_menu(GaimBuddy *bu buddy->proto_data); if (client_entry && client_entry->send_key) { - act = gaim_blist_node_action_new(_("Reset IM Key"), - silcgaim_buddy_resetkey, NULL, NULL); + act = gaim_menu_action_new(_("Reset IM Key"), + GAIM_CALLBACK(silcgaim_buddy_resetkey), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("IM with Key Exchange"), - silcgaim_buddy_keyagr, NULL, NULL); + act = gaim_menu_action_new(_("IM with Key Exchange"), + GAIM_CALLBACK(silcgaim_buddy_keyagr), + NULL, NULL); m = g_list_append(m, act); - act = gaim_blist_node_action_new(_("IM with Password"), - silcgaim_buddy_privkey_menu, - NULL, NULL); + act = gaim_menu_action_new(_("IM with Password"), + GAIM_CALLBACK(silcgaim_buddy_privkey_menu), + NULL, NULL); m = g_list_append(m, act); } if (pkfile) { - act = gaim_blist_node_action_new(_("Show Public Key"), - silcgaim_buddy_showkey, NULL, NULL); + act = gaim_menu_action_new(_("Show Public Key"), + GAIM_CALLBACK(silcgaim_buddy_showkey), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("Get Public Key..."), - silcgaim_buddy_getkey_menu, - NULL, NULL); + act = gaim_menu_action_new(_("Get Public Key..."), + GAIM_CALLBACK(silcgaim_buddy_getkey_menu), + NULL, NULL); m = g_list_append(m, act); } if (conn && conn->local_entry->mode & SILC_UMODE_ROUTER_OPERATOR) { - act = gaim_blist_node_action_new(_("Kill User"), - silcgaim_buddy_kill, NULL, NULL); + act = gaim_menu_action_new(_("Kill User"), + GAIM_CALLBACK(silcgaim_buddy_kill), + NULL, NULL); m = g_list_append(m, act); } @@ -1666,8 +1670,9 @@ GList *silcgaim_buddy_menu(GaimBuddy *bu wb = silc_calloc(1, sizeof(*wb)); wb->sg = sg; wb->client_entry = client_entry; - act = gaim_blist_node_action_new(_("Draw On Whiteboard"), - silcgaim_buddy_wb, (void *)wb, NULL); + act = gaim_menu_action_new(_("Draw On Whiteboard"), + GAIM_CALLBACK(silcgaim_buddy_wb), + (void *)wb, NULL); m = g_list_append(m, act); } return m; Index: chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/silc/chat.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -p -r1.29 -r1.30 --- chat.c 15 Jan 2006 16:34:06 -0000 1.29 +++ chat.c 17 Jan 2006 23:22:19 -0000 1.30 @@ -858,7 +858,7 @@ GList *silcgaim_chat_menu(GaimChat *chat SilcUInt32 mode = 0; GList *m = NULL; - GaimBlistNodeAction *act; + GaimMenuAction *act; if (components) chname = g_hash_table_lookup(components, "channel"); @@ -874,103 +874,104 @@ GList *silcgaim_chat_menu(GaimChat *chat if (strstr(chname, "[Private Group]")) return NULL; - act = gaim_blist_node_action_new(_("Get Info"), - silcgaim_chat_getinfo_menu, - NULL, NULL); + act = gaim_menu_action_new(_("Get Info"), + GAIM_CALLBACK(silcgaim_chat_getinfo_menu), + NULL, NULL); m = g_list_append(m, act); #if 0 /* XXX For now these are not implemented. We need better listview dialog from Gaim for these. */ if (mode & SILC_CHANNEL_UMODE_CHANOP) { - act = gaim_blist_node_action_new(_("Invite List"), - silcgaim_chat_invitelist, - NULL, NULL); + act = gaim_menu_action_new(_("Invite List"), + GAIM_CALLBACK(silcgaim_chat_invitelist), + NULL, NULL); m = g_list_append(m, act); - act = gaim_blist_node_action_new(_("Ban List"), - silcgaim_chat_banlist, - NULL, NULL); + act = gaim_menu_action_new(_("Ban List"), + GAIM_CALLBACK(silcgaim_chat_banlist), + NULL, NULL); m = g_list_append(m, act); } #endif if (chu) { - act = gaim_blist_node_action_new(_("Add Private Group"), - silcgaim_chat_prv, - NULL, NULL); + act = gaim_menu_action_new(_("Add Private Group"), + GAIM_CALLBACK(silcgaim_chat_prv), + NULL, NULL); m = g_list_append(m, act); } if (mode & SILC_CHANNEL_UMODE_CHANFO) { - act = gaim_blist_node_action_new(_("Channel Authentication"), - silcgaim_chat_chauth, - NULL, NULL); + act = gaim_menu_action_new(_("Channel Authentication"), + GAIM_CALLBACK(silcgaim_chat_chauth), + NULL, NULL); m = g_list_append(m, act); if (channel->mode & SILC_CHANNEL_MODE_FOUNDER_AUTH) { - act = gaim_blist_node_action_new(_("Reset Permanent"), - silcgaim_chat_permanent_reset, - NULL, NULL); + act = gaim_menu_action_new(_("Reset Permanent"), + GAIM_CALLBACK(silcgaim_chat_permanent_reset), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("Set Permanent"), - silcgaim_chat_permanent, - NULL, NULL); + act = gaim_menu_action_new(_("Set Permanent"), + GAIM_CALLBACK(silcgaim_chat_permanent), + NULL, NULL); m = g_list_append(m, act); } } if (mode & SILC_CHANNEL_UMODE_CHANOP) { - act = gaim_blist_node_action_new(_("Set User Limit"), - silcgaim_chat_ulimit, - NULL, NULL); + act = gaim_menu_action_new(_("Set User Limit"), + GAIM_CALLBACK(silcgaim_chat_ulimit), + NULL, NULL); m = g_list_append(m, act); if (channel->mode & SILC_CHANNEL_MODE_TOPIC) { - act = gaim_blist_node_action_new(_("Reset Topic Restriction"), - silcgaim_chat_resettopic, - NULL, NULL); + act = gaim_menu_action_new(_("Reset Topic Restriction"), + GAIM_CALLBACK(silcgaim_chat_resettopic), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("Set Topic Restriction"), - silcgaim_chat_settopic, - NULL, NULL); + act = gaim_menu_action_new(_("Set Topic Restriction"), + GAIM_CALLBACK(silcgaim_chat_settopic), + NULL, NULL); m = g_list_append(m, act); } if (channel->mode & SILC_CHANNEL_MODE_PRIVATE) { - act = gaim_blist_node_action_new(_("Reset Private Channel"), - silcgaim_chat_resetprivate, - NULL, NULL); + act = gaim_menu_action_new(_("Reset Private Channel"), + GAIM_CALLBACK(silcgaim_chat_resetprivate), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("Set Private Channel"), - silcgaim_chat_setprivate, - NULL, NULL); + act = gaim_menu_action_new(_("Set Private Channel"), + GAIM_CALLBACK(silcgaim_chat_setprivate), + NULL, NULL); m = g_list_append(m, act); } if (channel->mode & SILC_CHANNEL_MODE_SECRET) { - act = gaim_blist_node_action_new(_("Reset Secret Channel"), - silcgaim_chat_resetsecret, - NULL, NULL); + act = gaim_menu_action_new(_("Reset Secret Channel"), + GAIM_CALLBACK(silcgaim_chat_resetsecret), + NULL, NULL); m = g_list_append(m, act); } else { - act = gaim_blist_node_action_new(_("Set Secret Channel"), - silcgaim_chat_setsecret, - NULL, NULL); + act = gaim_menu_action_new(_("Set Secret Channel"), + GAIM_CALLBACK(silcgaim_chat_setsecret), + NULL, NULL); m = g_list_append(m, act); } } if (channel) { SilcGaimChatWb wb; - wb = silc_calloc(1, sizeof(*wb)); - wb->sg = sg; - wb->channel = channel; - act = gaim_blist_node_action_new(_("Draw On Whiteboard"), - silcgaim_chat_wb, (void *)wb, NULL); - m = g_list_append(m, act); + wb = silc_calloc(1, sizeof(*wb)); + wb->sg = sg; + wb->channel = channel; + act = gaim_menu_action_new(_("Draw On Whiteboard"), + GAIM_CALLBACK(silcgaim_chat_wb), + (void *)wb, NULL); + m = g_list_append(m, act); } return m; |