gpt4 book ai didi

c - 如何将项目添加到 Pidgin 菜单

转载 作者:太空宇宙 更新时间:2023-11-04 08:41:25 25 4
gpt4 key购买 nike

我想在 Pidgin 菜单中添加任意项目。让它成为好友 → 显示 → 群组。我希望它是与自定义功能相关联的复选按钮(如 Buddies → Show → Empty Groups)。我该怎么做?

最佳答案

以下示例适用于 Pidgin 版本 2.10.9。我相信 3.0.0(当前开发分支)中没有太多变化,因此它也适用于那里,只需进行最少的修改。

首先,下载 Pidgin 源代码。在 Ubuntu 中,这只需运行即可完成

apt-get source pidgin

这将获取 libpurple、pidgin 和 finch 源代码。然后进入 pidgin-2.10.9/pidgin/gtkblist.c 并找到该行

static GtkItemFactoryEntry blist_menu[] =

在那里你会看到文本中的 Gtk 菜单。添加以下行:

{ N_("/Buddies/Show/_Groups"), NULL, pidgin_blist_show_groups_cb, 1, "<CheckItem>", NULL },

之后

{ N_("/Buddies/Show/_Empty Groups"), NULL, pidgin_blist_show_empty_groups_cb, 1, "<CheckItem>", NULL },

您可以看到添加的行只是模拟了添加它之后的行。第 3 个数组成员是负责更新菜单项状态的函数。

接下来,添加您刚刚指定的函数,pidgin_blist_show_groups_cb。您可以找到 pidgin_blist_show_empty_groups_cb 并复制它的内容。

static void pidgin_blist_show_groups_cb(gpointer data, guint action, GtkWidget *item)
{
pidgin_set_cursor(gtkblist->window, GDK_WATCH);

purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/blist/show_groups",
gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));

pidgin_clear_cursor(gtkblist->window);
}

此外,您需要在启动时设置项目状态。查找函数

static void pidgin_blist_show(PurpleBuddyList *list)

并添加

gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Groups"))),
purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_groups"));

之后

gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show/Empty Groups"))),
purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups"));

添加首选项 "/blist/show_groups" 以及向其添加回调在 How do I add custom preference into Pidgin? 中进行了说明.要测试您的更改,请编译并安装 pidgin:

sudo apt-get build-dep pidgin
cd pidgin-2.10.9/
fakeroot debian/rules binary
sudo dpkg -i ../pidgin_2.10.9-0ubuntu3.deb

关于c - 如何将项目添加到 Pidgin 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com