--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/plugins/perl/common/AccountOpts.xs Sun Apr 15 03:56:08 2007 +0000 @@ -0,0 +1,168 @@ +#include "module.h" + +MODULE = Purple::Account::Option PACKAGE = Purple::Account::Option PREFIX = purple_account_option_ +PROTOTYPES: ENABLE + +void +purple_account_option_destroy(option) + Purple::Account::Option option + +const char * +purple_account_option_get_default_string(option) + Purple::Account::Option option + +void +purple_account_option_add_list_item(option, key, value) + Purple::Account::Option option + const char * key + const char * value + +void +purple_account_option_set_default_string(option, value); + Purple::Account::Option option + const char * value + +void +purple_account_option_set_default_int(option, value); + Purple::Account::Option option + int value + +void +purple_account_option_set_default_bool(option, value); + Purple::Account::Option option + gboolean value + +Purple::Account::Option +purple_account_option_list_new(class, text, pref_name, values) + const char * text + const char * pref_name + SV * values +PREINIT: + GList *t_GL; + int i, t_len; +CODE: + t_GL = NULL; + t_len = av_len((AV *)SvRV(values)); + + for (i = 0; i < t_len; i++) { + STRLEN t_sl; + t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(values), i, 0), t_sl)); + } + RETVAL = purple_account_option_list_new(text, pref_name, t_GL); +OUTPUT: + RETVAL + +Purple::Account::Option +purple_account_option_string_new(class, text, pref_name, default_value) + const char * text + const char * pref_name + const char * default_value + C_ARGS: + text, pref_name, default_value + +Purple::Account::Option +purple_account_option_int_new(class, text, pref_name, default_value) + const char * text + const char * pref_name + gboolean default_value + C_ARGS: + text, pref_name, default_value + +Purple::Account::Option +purple_account_option_bool_new(class, text, pref_name, default_value) + const char * text + const char * pref_name + gboolean default_value + C_ARGS: + text, pref_name, default_value + +Purple::Account::Option +purple_account_option_new(class, type, text, pref_name) + Purple::PrefType type + const char * text + const char * pref_name + C_ARGS: + type, text, pref_name + +void +purple_account_option_get_list(option) + Purple::Account::Option option +PREINIT: + const GList *l; +PPCODE: + for (l = purple_account_option_get_list(option); l != NULL; l = l->next) { + /* XXX These are actually PurpleKeyValuePairs but we don't have a + * type for that and even if we did I don't think there's + * anything perl could do with them, so I'm just going to + * leave this as a Purple::ListEntry for now. */ + XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::ListEntry"))); + } + +Purple::PrefType +purple_account_option_get_type(option) + Purple::Account::Option option + +gboolean +purple_account_option_get_masked(option) + Purple::Account::Option option + +int +purple_account_option_get_default_int(option) + Purple::Account::Option option; + +gboolean +purple_account_option_get_default_bool(option) + Purple::Account::Option option; + +const char * +purple_account_option_get_setting(option) + Purple::Account::Option option + +const char * +purple_account_option_get_text(option) + Purple::Account::Option option + +void +purple_account_option_set_list(option, values) + Purple::Account::Option option + SV * values +PREINIT: + GList *t_GL; + int i, t_len; +PPCODE: + t_GL = NULL; + t_len = av_len((AV *)SvRV(values)); + + for (i = 0; i < t_len; i++) { + STRLEN t_sl; + t_GL = g_list_append(t_GL, SvPV(*av_fetch((AV *)SvRV(values), i, 0), t_sl)); + } + purple_account_option_set_list(option, t_GL); + +void +purple_account_option_set_masked(option, masked) + Purple::Account::Option option + gboolean masked + +MODULE = Purple::Account::Option PACKAGE = Purple::Account::UserSplit PREFIX = purple_account_user_split_ +PROTOTYPES: ENABLE + +Purple::Account::UserSplit +purple_account_user_split_new(class, text, default_value, sep) + const char * text + const char * default_value + char sep + C_ARGS: + text, default_value, sep + +char +purple_account_user_split_get_separator(split) + Purple::Account::UserSplit split + +const char * +purple_account_user_split_get_text(split) + Purple::Account::UserSplit split + +void +purple_account_user_split_destroy(split) + Purple::Account::UserSplit split