view plugins/mono/loader/blist-glue.c @ 11927:0d9c6d2ad64b

[gaim-migrate @ 14218] Better error handling for Howl when your mDNS daemon is not running committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Mon, 31 Oct 2005 06:06:14 +0000
parents a3302d271199
children 67fbd2ff4c4e
line wrap: on
line source

#include <string.h>
#include "blist.h"
#include "mono-helper.h"

MonoObject* gaim_blist_get_handle_glue(void)
{
	void *handle = gaim_blist_get_handle();
	
	return mono_value_box(mono_loader_get_domain(), mono_get_intptr_class(), &handle);
}

MonoObject* gaim_blist_build_buddy_object(void* data)
{
	MonoObject *obj = NULL;
	MonoClass *klass = NULL;
			
	GaimBuddy *buddy = (GaimBuddy*)data;
	
	klass = mono_class_from_name(mono_loader_get_api_image(), "Gaim", "Buddy");
	if (!klass) {
		gaim_debug(GAIM_DEBUG_FATAL, "mono", "couldn't build the class!\n");
	}
	
	obj = mono_object_new(mono_loader_get_domain(), klass);
	if (!obj) {
		gaim_debug(GAIM_DEBUG_FATAL, "mono", "couldn't create the object!\n");
	}
	
	mono_runtime_object_init(obj);
	
	mono_loader_set_prop_string(obj, "Name", (char*)gaim_buddy_get_name(buddy));
	mono_loader_set_prop_string(obj, "Alias", (char*)gaim_buddy_get_alias(buddy));
	
	return obj;
}