view libpurple/plugins/perl/common/typemap @ 23712:af603a54ae5a

Some Perl bindings fixes and additions from Zsombor Welker. Technically some of these change the API, but in those couple cases, the way it is now is either broken, not usable or pretty unlikely to be used. Feel free to yell at me and/or revert this if you think this is unacceptable. Fixes #5912
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 07 Aug 2008 02:48:21 +0000
parents 66057702ae5d
children 9d7ebd28d339
line wrap: on
line source

TYPEMAP
guint					T_IV
gint					T_IV
const gint *				T_PTR
const guint *				T_PTR
const guint8 *				T_PTR
guint8					T_IV
guint8 *				T_PTR
time_t					T_IV
gboolean				T_BOOL
gpointer				T_PurpleObj
gconstpointer				T_PTR
const gchar *				T_PV
const char *				T_PV
const char **				T_PTR
char **					T_PTR
gchar					T_IV
gchar *					T_PV
gchar_own *				T_GCHAR_OWN
guchar					T_IV
guchar *				T_PV
guchar **				T_PTR
const guchar *				T_PV
char *					T_PV
int *					T_PTR
long *					T_PTR
size_t *				T_PTR
GCallback				T_PTR
va_list					T_PTR
GString *				T_PTR
GData *					T_PTR
GData **				T_PTR
const unsigned char *			T_PV
struct tm *				T_PTR
const struct tm *			T_PTR
xmlnode *				T_PTR
const xmlnode *				T_PTR
gssize					T_IV
const void *				T_PTR

Purple::Account				T_PurpleObj
Purple::Account::Option			T_PurpleObj
Purple::Account::UiOps			T_PurpleObj
Purple::Account::UserSplit		T_PurpleObj

Purple::Buddy::Icon			T_PurpleObj
Purple::Buddy::Icon::Spec			T_PurpleObj
Purple::BuddyList				T_PurpleObj
Purple::BuddyList::Buddy			T_PurpleObj
Purple::BuddyList::Chat			T_PurpleObj
Purple::BuddyList::Contact		T_PurpleObj
Purple::BuddyList::Group			T_PurpleObj
Purple::BuddyList::Node			T_PurpleObj
Purple::BuddyList::NodeFlags		T_IV
Purple::BuddyList::NodeType		T_IV
Purple::BuddyList::UiOps			T_PurpleObj

Purple::Cipher				T_PurpleObj
Purple::CipherCaps			T_IV
Purple::Cipher::Ops			T_PurpleObj
Purple::Cipher::Context			T_PurpleObj
Purple::Cmd::Flag				T_IV
Purple::Cmd::Id				T_IV
Purple::Cmd::Priority			T_IV
Purple::Cmd::Ret				T_IV
Purple::Connection			T_PurpleObj
Purple::Connection::UiOps			T_PurpleObj
Purple::Conversation			T_PurpleObj
Purple::Conversation::Chat		T_PurpleObj
Purple::Conversation::ChatBuddy		T_PurpleObj
Purple::Conversation::IM			T_PurpleObj
Purple::Conversation::UiOps		T_PurpleObj
Purple::Core				T_PurpleObj
Purple::Core::UiOps			T_PurpleObj

Purple::Desktop::Item			T_PurpleObj
Purple::DesktopItemType			T_IV

Purple::Handle				T_PurpleObj

Purple::IconScaleRules			T_IV

Purple::Log				T_PurpleObj
Purple::LogType				T_IV
Purple::Log::CommonLoggerData		T_PurpleObj
Purple::Log::Logger			T_PurpleObj
Purple::Log::ReadFlags			T_PurpleObj
Purple::Log::Set				T_PurpleObj

Purple::Menu::Action			T_PurpleObj

Purple::NetworkListenData			T_PurpleObj
Purple::NetworkListenCallback		T_PTR

Purple::NotifyCloseCallback		T_PTR
Purple::NotifyMsgType			T_IV
Purple::NotifySearchButtonType		T_IV
Purple::NotifySearchResults		T_PurpleObj
Purple::NotifySearchColumn		T_PurpleObj
Purple::NotifySearchButton		T_PurpleObj
Purple::NotifyType			T_IV
Purple::NotifyUiOps			T_PurpleObj
Purple::NotifyUserInfo			T_PurpleObj
Purple::NotifyUserInfoEntry		T_PurpleObj

Purple::Plugin				T_PurpleObj
Purple::PluginType			T_IV
Purple::PluginUiInfo			T_PurpleObj
Purple::Plugin::Action			T_PurpleObj
Purple::Plugin::Info			T_PurpleObj
Purple::Plugin::Loader::Info		T_PurpleObj
Purple::Plugin::Protocol::Info		T_PurpleObj
Purple::PrefType				T_IV
Purple::PluginPref			T_PurpleObj
Purple::PluginPrefType			T_IV
Purple::PluginPref::Frame			T_PurpleObj
Purple::Pounce				T_PurpleObj
Purple::PounceEvent			T_IV
Purple::Presence				T_PurpleObj
Purple::PrivacyType			T_IV
Purple::Privacy::UiOps			T_PurpleObj
Purple::ProtocolOptions			T_IV
Purple::ProxyInfo				T_PurpleObj
Purple::ProxyType				T_IV

Purple::RequestFieldType			T_IV
Purple::RequestType			T_IV
Purple::Request::Field			T_PurpleObj
Purple::Request::Fields			T_PurpleObj
Purple::Request::Field::Group		T_PurpleObj
Purple::Request::UiOps			T_PurpleObj

Purple::Roomlist				T_PurpleObj
Purple::Roomlist::Room			T_PurpleObj
Purple::Roomlist::Field			T_PurpleObj
Purple::Roomlist::UiOps			T_PurpleObj
Purple::RoomlistFieldType			T_IV
Purple::RoomlistRoomType			T_IV

Purple::SavedStatus			T_PurpleObj
const Purple::SavedStatus			T_PurpleObj
Purple::SavedStatus::Sub			T_PurpleObj
const Purple::SavedStatus::Sub			T_PurpleObj
Purple::SoundEventID			T_IV
Purple::Sound::UiOps			T_PurpleObj

Purple::Input::Condition			T_PurpleObj
Purple::SslErrorType			T_IV
Purple::Ssl::Connection			T_PurpleObj
Purple::Ssl::Ops				T_PurpleObj

Purple::Presence				T_PurpleObj
Purple::PresenceContext			T_IV
Purple::Smiley				T_PurpleObj
Purple::Status				T_PurpleObj
Purple::StatusAttr			T_PurpleObj
Purple::StatusPrimitive			T_IV
Purple::StatusType			T_PurpleObj
const Purple::StatusType			T_PurpleObj

Purple::StoredImage			T_PurpleObj
Purple::String::Format::Type		T_IV
Purple::Stringref				T_PurpleObj
Purple::Util::FetchUrlData	T_PTR
Purple::Util::InfoFieldFormatCallback	T_PTR
Purple::Value				T_PurpleObj

Purple::Xfer				T_PurpleObj
Purple::XferType				T_IV
Purple::XferStatusType			T_IV
Purple::XferUiOps				T_IV

Purple::XMLNode				T_PurpleObj
XMLNode::Type				T_IV

/* enums */

/* cipher.h */
Purple::Cipher::BatchMode	T_IV

/* blist.h */

/* debug.h */
Purple::DebugLevel			T_IV

/* conversation.h */
Purple::ConvChatBuddyFlags		T_IV
Purple::ConvUpdateType			T_IV
Purple::ConversationType			T_IV
Purple::MessageFlags			T_IV
Purple::TypingState			T_IV
Purple::UnseenState			T_IV

/* connection.h */
Purple::ConnectionFlags			T_IV
Purple::ConnectionState			T_IV

INPUT

T_PurpleObj
	$var = purple_perl_ref_object($arg)

OUTPUT

T_PurpleObj
	$arg = purple_perl_bless_object($var, \"$type\");

T_GCHAR_OWN
	/* used when we can directly own the returned string. */
	/* we have to copy in the case when perl's malloc != gtk's malloc,
	 * so best copy all the time. */
	sv_setpv ((SV*)$arg, $var);
	SvUTF8_on ($arg);
	g_free ($var);