【问题标题】:How do I add custom preference into Pidgin?如何将自定义首选项添加到 Pidgin?
【发布时间】:2014-04-30 04:21:52
【问题描述】:

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

【问题讨论】:

    标签: c pidgin


    【解决方案1】:

    您需要在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);
    

    还有添加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 之后添加_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 也将在我开发完成后发布,我保证;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2012-04-02
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多