如何在Pidgin中添加自定义首选项?

时间:2014-04-30 04:21:53

标签: c pidgin

我需要在Pidgin中添加首选项以提供我的自定义菜单项,如How do I add item to Pidgin menu所示。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要在pidgin_blist_init中找到功能pidgin/gtkblist.c并添加以下行:

purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_groups", FALSE);

purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE);

还有一些功能可以添加intstringnonestring_listpathpath_list类型。现在,我们需要将自定义菜单项与自定义功能相关联。这是在pidgin_blist_show中完成的。只需添加一行

即可
purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_groups",
                              _prefs_change_redo_list_groups, NULL);

purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/blist/show_empty_groups",
                              _prefs_change_redo_list, NULL);

最后,在_prefs_change_redo_list_groups

之后添加_prefs_change_redo_list函数
static void _prefs_change_redo_list_groups(const char *name, PurplePrefType type,
                                           gconstpointer val, gpointer data)
{
    purple_blist_set_groups_visible(purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/blist/show_groups"));
    _prefs_change_redo_list(name, type, val, data);
}

purple_blist_set_groups_visible也将在我开发后发布,我保证;)