view plugins/perl/common/BuddyList.xs @ 12242:976677e67239

[gaim-migrate @ 14544] Rework the notify API close callbacks. They are now called by the core, instead of the UI. Prior to a couple days ago, they weren't actually implemented in the UI at all. As a side note, if anyone knows why gpointer is declared as a T_GaimObj instead of a T_PTR, please let me know. That seems wrong, especially since void * is a T_PTR and gconstpointer is a T_PTR. This may or may not cause problems for the notify change (void * -> gpointer) to user_data. NOTE: I did not change this, even though I think it's wrong. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Mon, 28 Nov 2005 01:50:56 +0000
parents 980c877bd238
children 33ddb29406a1
line wrap: on
line source

#include "module.h"
#include "../perl-handlers.h"

MODULE = Gaim::BuddyList  PACKAGE = Gaim::BuddyList  PREFIX = gaim_
PROTOTYPES: ENABLE

Gaim::BuddyList
gaim_get_blist()


MODULE = Gaim::BuddyList  PACKAGE = Gaim::Find  PREFIX = gaim_find_
PROTOTYPES: ENABLE

Gaim::BuddyList::Buddy 
gaim_find_buddy(account, name)
	Gaim::Account account
	const char * name

void
gaim_find_buddies(account, name)
	Gaim::Account account
	const char * name
PREINIT:
	GSList *l;
PPCODE:
	for (l = gaim_find_buddies(account, name); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::BuddyList::Buddy")));
	}

gboolean 
gaim_group_on_account(group, account)
	Gaim::BuddyList::Group  group
	Gaim::Account account

Gaim::BuddyList::Group  
gaim_find_group(name)
	const char *name




MODULE = Gaim::BuddyList  PACKAGE = Gaim::Contact  PREFIX = gaim_contact_
PROTOTYPES: ENABLE

Gaim::BuddyList::Contact
gaim_contact_new();

Gaim::BuddyList::Buddy 
gaim_contact_get_priority_buddy(contact)
	Gaim::BuddyList::Contact contact

void
gaim_contact_set_alias(contact, alias)
	Gaim::BuddyList::Contact contact
	const char * alias

const char *
gaim_contact_get_alias(contact)
	Gaim::BuddyList::Contact contact

gboolean 
gaim_contact_on_account(contact, account)
	Gaim::BuddyList::Contact contact
	Gaim::Account account

void
gaim_contact_invalidate_priority_buddy(contact)
	Gaim::BuddyList::Contact contact

MODULE = Gaim::BuddyList  PACKAGE = Gaim::Group  PREFIX = gaim_group_
PROTOTYPES: ENABLE


Gaim::BuddyList::Group  
gaim_group_new(name)
	const char *name

void 
gaim_group_get_accounts(group)
	Gaim::BuddyList::Group  group
PREINIT:
	GSList *l;
PPCODE:
	for (l = gaim_group_get_accounts(group); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::ListEntry")));
	}

gboolean 
gaim_group_on_account(group, account)
	Gaim::BuddyList::Group  group
	Gaim::Account account


MODULE = Gaim::BuddyList  PACKAGE = Gaim::BuddyList  PREFIX = gaim_blist_
PROTOTYPES: ENABLE

void
gaim_blist_add_contact(contact, group, node)
	Gaim::BuddyList::Contact contact
	Gaim::BuddyList::Group  group
	Gaim::BuddyList::Node node

void
gaim_blist_merge_contact(source, node)
	Gaim::BuddyList::Contact source
	Gaim::BuddyList::Node node

void
gaim_blist_add_group(group, node)
	Gaim::BuddyList::Group  group
	Gaim::BuddyList::Node node

void
gaim_blist_add_buddy(buddy, contact, group, node)
	Gaim::BuddyList::Buddy buddy
	Gaim::BuddyList::Contact contact
	Gaim::BuddyList::Group  group
	Gaim::BuddyList::Node node

void
gaim_blist_remove_buddy(buddy)
	Gaim::BuddyList::Buddy buddy

void
gaim_blist_remove_contact(contact)
	Gaim::BuddyList::Contact contact

void
gaim_blist_remove_chat(chat)
	Gaim::BuddyList::Chat chat

void
gaim_blist_remove_group(group)
	Gaim::BuddyList::Group  group

Gaim::BuddyList::Chat
gaim_blist_find_chat(account, name)
	Gaim::Account account
	const char *name

void
gaim_blist_add_chat(chat, group, node)
	Gaim::BuddyList::Chat chat
	Gaim::BuddyList::Group  group
	Gaim::BuddyList::Node node

Gaim::BuddyList
gaim_blist_new()

void
gaim_set_blist(blist)
	Gaim::BuddyList blist

void
gaim_blist_show()

void
gaim_blist_destroy();

void
gaim_blist_set_visible(show)
	gboolean show

void
gaim_blist_update_buddy_status(buddy, old_status)
	Gaim::BuddyList::Buddy buddy
	Gaim::Status old_status

void
gaim_blist_update_buddy_icon(buddy)
	Gaim::BuddyList::Buddy buddy

void
gaim_blist_rename_buddy(buddy, name)
	Gaim::BuddyList::Buddy buddy
	const char * name

void
gaim_blist_alias_buddy(buddy, alias)
	Gaim::BuddyList::Buddy buddy
	const char * alias

void
gaim_blist_server_alias_buddy(buddy, alias)
	Gaim::BuddyList::Buddy buddy
	const char * alias

void
gaim_blist_alias_chat(chat, alias)
	Gaim::BuddyList::Chat chat
	const char * alias

void
gaim_blist_rename_group(group, name)
	Gaim::BuddyList::Group  group
	const char * name

void
gaim_blist_add_account(account)
	Gaim::Account account

void
gaim_blist_remove_account(account)
	Gaim::Account account

int 
gaim_blist_get_group_size(group, offline)
	Gaim::BuddyList::Group  group
	gboolean offline

int 
gaim_blist_get_group_online_count(group)
	Gaim::BuddyList::Group  group

void
gaim_blist_load()

void
gaim_blist_schedule_save()

void
gaim_blist_request_add_group()

void
gaim_blist_node_set_bool(node, key, value)
	Gaim::BuddyList::Node node
	const char * key
	gboolean value

gboolean 
gaim_blist_node_get_bool(node, key)
	Gaim::BuddyList::Node node
	const char * key

void
gaim_blist_node_set_int(node, key, value)
	Gaim::BuddyList::Node node
	const char * key
	int value

int 
gaim_blist_node_get_int(node, key)
	Gaim::BuddyList::Node node
	const char * key

const char *
gaim_blist_node_get_string(node, key)
	Gaim::BuddyList::Node node
	const char * key

void
gaim_blist_node_remove_setting(node, key)
	Gaim::BuddyList::Node node
	const char * key

void
gaim_blist_node_set_flags(node, flags)
	Gaim::BuddyList::Node node
	Gaim::BlistNodeFlags flags

Gaim::BlistNodeFlags 
gaim_blist_node_get_flags(node)
	Gaim::BuddyList::Node node

void
gaim_blist_node_get_extended_menu(node)
	Gaim::BuddyList::Node node
PREINIT:
	GList *l;
PPCODE:
	for (l = gaim_blist_node_get_extended_menu(node); l != NULL; l = l->next) {
		XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::ListEntry")));
	}
	

void
gaim_blist_set_ui_ops(ops)
	Gaim::BuddyList::UiOps ops


Gaim::BuddyList::UiOps
gaim_blist_get_ui_ops()

void *
gaim_blist_get_handle()

void
gaim_blist_init()

void
gaim_blist_uninit()


MODULE = Gaim::BuddyList  PACKAGE = Gaim::Chat  PREFIX = gaim_chat_
PROTOTYPES: ENABLE


Gaim::BuddyList::Group  
gaim_chat_get_group(chat)
	Gaim::BuddyList::Chat chat

const char *
gaim_chat_get_name(chat)
	Gaim::BuddyList::Chat chat

Gaim::BuddyList::Chat
gaim_chat_new(account, alias, components)
	Gaim::Account account
	const char * alias 
	SV * components
INIT:
	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(NULL, NULL);

	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 = gaim_chat_new(account, alias, t_GHash);
OUTPUT:
	RETVAL











MODULE = Gaim::BuddyList  PACKAGE = Gaim::Buddy  PREFIX = gaim_buddy_
PROTOTYPES: ENABLE

Gaim::BuddyList::Buddy 
gaim_buddy_new(account, screenname, alias)
	Gaim::Account account
	const char *screenname
	const char *alias

void
gaim_buddy_set_icon(buddy, icon)
	Gaim::BuddyList::Buddy buddy
	Gaim::Buddy::Icon icon

Gaim::Account 
gaim_buddy_get_account(buddy)
	Gaim::BuddyList::Buddy buddy

Gaim::BuddyList::Group
gaim_buddy_get_group(buddy)
	Gaim::BuddyList::Buddy buddy

const char *
gaim_buddy_get_name(buddy)
	Gaim::BuddyList::Buddy buddy

Gaim::Buddy::Icon 
gaim_buddy_get_icon(buddy)
	Gaim::BuddyList::Buddy buddy

Gaim::BuddyList::Contact
gaim_buddy_get_contact(buddy)
	Gaim::BuddyList::Buddy buddy

Gaim::Presence  
gaim_buddy_get_presence(buddy)
	Gaim::BuddyList::Buddy buddy

const char *
gaim_buddy_get_alias_only(buddy)
	Gaim::BuddyList::Buddy buddy

const char *
gaim_buddy_get_contact_alias(buddy)
	Gaim::BuddyList::Buddy buddy

const char *
gaim_buddy_get_local_alias(buddy)
	Gaim::BuddyList::Buddy buddy

const char *
gaim_buddy_get_alias(buddy)
	Gaim::BuddyList::Buddy buddy