buddylist.xs
来自「Linux下的多协议即时通讯程序源代码」· XS 代码 · 共 407 行
XS
407 行
#include "module.h"#include "../perl-handlers.h"MODULE = Purple::BuddyList PACKAGE = Purple PREFIX = purple_PROTOTYPES: ENABLEBOOT:{ HV *stash = gv_stashpv("Purple::BuddyList::Node", 1); static const constiv *civ, const_iv[] = {#define const_iv(name) {#name, (IV)PURPLE_BLIST_##name##_NODE} const_iv(GROUP), const_iv(CONTACT), const_iv(BUDDY), const_iv(CHAT), const_iv(OTHER),#undef const_iv#define const_iv(name) {#name, (IV)PURPLE_BLIST_NODE_FLAG_##name} const_iv(NO_SAVE), }; for (civ = const_iv + sizeof(const_iv) / sizeof(const_iv[0]); civ-- > const_iv; ) newCONSTSUB(stash, (char *)civ->name, newSViv(civ->iv));}Purple::BuddyListpurple_get_blist()voidpurple_set_blist(blist) Purple::BuddyList blistMODULE = Purple::BuddyList PACKAGE = Purple::Find PREFIX = purple_find_PROTOTYPES: ENABLEPurple::BuddyList::Buddypurple_find_buddy(account, name) Purple::Account account const char * namevoidpurple_find_buddies(account, name) Purple::Account account const char * namePREINIT: GSList *l;PPCODE: for (l = purple_find_buddies(account, name); l != NULL; l = l->next) { XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::BuddyList::Buddy"))); }Purple::BuddyList::Grouppurple_find_group(name) const char *nameMODULE = Purple::BuddyList PACKAGE = Purple::Find PREFIX = purple_PROTOTYPES: ENABLEgbooleanpurple_group_on_account(group, account) Purple::BuddyList::Group group Purple::Account accountMODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Contact PREFIX = purple_contact_PROTOTYPES: ENABLEPurple::BuddyList::Contactpurple_contact_new();Purple::BuddyList::Buddypurple_contact_get_priority_buddy(contact) Purple::BuddyList::Contact contactvoidpurple_contact_set_alias(contact, alias) Purple::BuddyList::Contact contact const char * aliasconst char *purple_contact_get_alias(contact) Purple::BuddyList::Contact contactgbooleanpurple_contact_on_account(contact, account) Purple::BuddyList::Contact contact Purple::Account accountvoidpurple_contact_invalidate_priority_buddy(contact) Purple::BuddyList::Contact contactMODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Group PREFIX = purple_group_PROTOTYPES: ENABLEPurple::BuddyList::Grouppurple_group_new(name) const char *namevoidpurple_group_get_accounts(group) Purple::BuddyList::Group groupPREINIT: GSList *l;PPCODE: for (l = purple_group_get_accounts(group); l != NULL; l = l->next) { XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Account"))); }gbooleanpurple_group_on_account(group, account) Purple::BuddyList::Group group Purple::Account accountMODULE = Purple::BuddyList PACKAGE = Purple::BuddyList PREFIX = purple_blist_PROTOTYPES: ENABLEvoidpurple_blist_add_contact(contact, group, node) Purple::BuddyList::Contact contact Purple::BuddyList::Group group Purple::BuddyList::Node nodevoidpurple_blist_merge_contact(source, node) Purple::BuddyList::Contact source Purple::BuddyList::Node nodevoidpurple_blist_add_group(group, node) Purple::BuddyList::Group group Purple::BuddyList::Node nodevoidpurple_blist_add_buddy(buddy, contact, group, node) Purple::BuddyList::Buddy buddy Purple::BuddyList::Contact contact Purple::BuddyList::Group group Purple::BuddyList::Node nodevoidpurple_blist_remove_buddy(buddy) Purple::BuddyList::Buddy buddyvoidpurple_blist_remove_contact(contact) Purple::BuddyList::Contact contactvoidpurple_blist_remove_chat(chat) Purple::BuddyList::Chat chatvoidpurple_blist_remove_group(group) Purple::BuddyList::Group groupPurple::BuddyList::Chatpurple_blist_find_chat(account, name) Purple::Account account const char *namevoidpurple_blist_add_chat(chat, group, node) Purple::BuddyList::Chat chat Purple::BuddyList::Group group Purple::BuddyList::Node nodePurple::BuddyListpurple_blist_new()voidpurple_blist_show()voidpurple_blist_destroy();voidpurple_blist_set_visible(show) gboolean showvoidpurple_blist_update_buddy_status(buddy, old_status) Purple::BuddyList::Buddy buddy Purple::Status old_statusvoidpurple_blist_update_buddy_icon(buddy) Purple::BuddyList::Buddy buddyvoidpurple_blist_rename_buddy(buddy, name) Purple::BuddyList::Buddy buddy const char * namevoidpurple_blist_alias_buddy(buddy, alias) Purple::BuddyList::Buddy buddy const char * aliasvoidpurple_blist_server_alias_buddy(buddy, alias) Purple::BuddyList::Buddy buddy const char * aliasvoidpurple_blist_alias_chat(chat, alias) Purple::BuddyList::Chat chat const char * aliasvoidpurple_blist_rename_group(group, name) Purple::BuddyList::Group group const char * namevoidpurple_blist_add_account(account) Purple::Account accountvoidpurple_blist_remove_account(account) Purple::Account accountintpurple_blist_get_group_size(group, offline) Purple::BuddyList::Group group gboolean offlineintpurple_blist_get_group_online_count(group) Purple::BuddyList::Group groupvoidpurple_blist_load()voidpurple_blist_schedule_save()voidpurple_blist_request_add_group()voidpurple_blist_set_ui_ops(ops) Purple::BuddyList::UiOps opsPurple::BuddyList::UiOpspurple_blist_get_ui_ops()Purple::Handlepurple_blist_get_handle()voidpurple_blist_init()voidpurple_blist_uninit()MODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Node PREFIX = purple_blist_node_PROTOTYPES: ENABLEvoidpurple_blist_node_get_extended_menu(node) Purple::BuddyList::Node nodePREINIT: GList *l;PPCODE: for (l = purple_blist_node_get_extended_menu(node); l != NULL; l = l->next) { XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Menu::Action"))); }voidpurple_blist_node_set_bool(node, key, value) Purple::BuddyList::Node node const char * key gboolean valuegbooleanpurple_blist_node_get_bool(node, key) Purple::BuddyList::Node node const char * keyvoidpurple_blist_node_set_int(node, key, value) Purple::BuddyList::Node node const char * key int valueintpurple_blist_node_get_int(node, key) Purple::BuddyList::Node node const char * keyconst char *purple_blist_node_get_string(node, key) Purple::BuddyList::Node node const char * keyvoidpurple_blist_node_remove_setting(node, key) Purple::BuddyList::Node node const char * keyvoidpurple_blist_node_set_flags(node, flags) Purple::BuddyList::Node node Purple::BuddyList::NodeFlags flagsPurple::BuddyList::NodeFlagspurple_blist_node_get_flags(node) Purple::BuddyList::Node nodeMODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Chat PREFIX = purple_chat_PROTOTYPES: ENABLEPurple::BuddyList::Grouppurple_chat_get_group(chat) Purple::BuddyList::Chat chatconst char *purple_chat_get_name(chat) Purple::BuddyList::Chat chatPurple::BuddyList::Chatpurple_chat_new(account, alias, components) Purple::Account account const char * alias SV * componentsINIT: HV * t_HV; HE * t_HE; SV * t_SV; GHashTable * t_GHash; I32 len; char *t_key, *t_value;CODE: t_HV = (HV *)SvRV(components); t_GHash = g_hash_table_new(g_str_hash, g_str_equal); for (t_HE = hv_iternext(t_HV); t_HE != NULL; t_HE = hv_iternext(t_HV) ) { t_key = hv_iterkey(t_HE, &len); t_SV = *hv_fetch(t_HV, t_key, len, 0); t_value = SvPV(t_SV, PL_na); g_hash_table_insert(t_GHash, t_key, t_value); } RETVAL = purple_chat_new(account, alias, t_GHash);OUTPUT: RETVALMODULE = Purple::BuddyList PACKAGE = Purple::BuddyList::Buddy PREFIX = purple_buddy_PROTOTYPES: ENABLEPurple::BuddyList::Buddypurple_buddy_new(account, screenname, alias) Purple::Account account const char *screenname const char *aliasconst char *purple_buddy_get_server_alias(buddy) Purple::BuddyList::Buddy buddyvoidpurple_buddy_set_icon(buddy, icon) Purple::BuddyList::Buddy buddy Purple::Buddy::Icon iconPurple::Accountpurple_buddy_get_account(buddy) Purple::BuddyList::Buddy buddyPurple::BuddyList::Grouppurple_buddy_get_group(buddy) Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_name(buddy) Purple::BuddyList::Buddy buddyPurple::Buddy::Iconpurple_buddy_get_icon(buddy) Purple::BuddyList::Buddy buddyPurple::BuddyList::Contactpurple_buddy_get_contact(buddy) Purple::BuddyList::Buddy buddyPurple::Presencepurple_buddy_get_presence(buddy) Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_alias_only(buddy) Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_contact_alias(buddy) Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_local_alias(buddy) Purple::BuddyList::Buddy buddyconst char *purple_buddy_get_alias(buddy) Purple::BuddyList::Buddy buddy
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?