【发布时间】:2014-04-30 04:21:52
【问题描述】:
我需要在 Pidgin 中添加首选项以提供我的自定义菜单项,如 How do I add item to Pidgin menu 所示。我怎样才能做到这一点?
【问题讨论】:
我需要在 Pidgin 中添加首选项以提供我的自定义菜单项,如 How do I add item to Pidgin menu 所示。我怎样才能做到这一点?
【问题讨论】:
您需要在pidgin/gtkblist.c 中找到函数pidgin_blist_init 并添加以下行:
purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_groups", FALSE);
之后
purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE);
还有添加int、string、none、string_list、path和path_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 之后添加_prefs_change_redo_list_groups 函数:
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 也将在我开发完成后发布,我保证;)
【讨论】: