diff libpurple/plugins/perl/common/PluginPref.xs @ 15374:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 2f8274ce570a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/plugins/perl/common/PluginPref.xs	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,144 @@
+#include "module.h"
+
+MODULE = Gaim::PluginPref  PACKAGE = Gaim::PluginPref::Frame  PREFIX = gaim_plugin_pref_frame_
+PROTOTYPES: ENABLE
+
+void
+gaim_plugin_pref_frame_add(frame, pref)
+	Gaim::PluginPref::Frame frame
+	Gaim::PluginPref pref
+
+void
+gaim_plugin_pref_frame_destroy(frame)
+	Gaim::PluginPref::Frame frame
+
+void
+gaim_plugin_pref_frame_get_prefs(frame)
+	Gaim::PluginPref::Frame frame
+PREINIT:
+	GList *l;
+PPCODE:
+	for (l = gaim_plugin_pref_frame_get_prefs(frame); l != NULL; l = l->next) {
+		XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::PluginPref")));
+	}
+
+Gaim::PluginPref::Frame
+gaim_plugin_pref_frame_new(class)
+    C_ARGS: /* void */
+
+MODULE = Gaim::PluginPref  PACKAGE = Gaim::PluginPref  PREFIX = gaim_plugin_pref_
+PROTOTYPES: ENABLE
+
+void
+gaim_plugin_pref_add_choice(pref, label, choice)
+	Gaim::PluginPref pref
+	const char *label
+# Do the appropriate conversion based on the perl type specified.
+# Currently only Strings and Ints will work.
+	gpointer choice = (SvPOKp($arg) ? SvPV($arg, PL_na) : (SvIOKp($arg) ? GINT_TO_POINTER(SvIV($arg)) : NULL));
+
+void
+gaim_plugin_pref_destroy(pref)
+	Gaim::PluginPref pref
+
+
+void
+gaim_plugin_pref_get_bounds(pref, min, max)
+	Gaim::PluginPref pref
+	int *min
+	int *max
+
+void
+gaim_plugin_pref_get_choices(pref)
+	Gaim::PluginPref pref
+PREINIT:
+	GList *l;
+PPCODE:
+	for (l = gaim_plugin_pref_get_choices(pref); l != NULL; l = l->next) {
+		XPUSHs(sv_2mortal(gaim_perl_bless_object(l->data, "Gaim::ListItem")));
+	}
+
+const char *
+gaim_plugin_pref_get_label(pref)
+	Gaim::PluginPref pref
+
+gboolean
+gaim_plugin_pref_get_masked(pref)
+	Gaim::PluginPref pref
+
+unsigned int
+gaim_plugin_pref_get_max_length(pref)
+	Gaim::PluginPref pref
+
+const char *
+gaim_plugin_pref_get_name(pref)
+	Gaim::PluginPref pref
+
+Gaim::PluginPrefType
+gaim_plugin_pref_get_type(pref)
+	Gaim::PluginPref pref
+
+Gaim::PluginPref
+gaim_plugin_pref_new(class)
+    C_ARGS: /* void */
+
+Gaim::PluginPref
+gaim_plugin_pref_new_with_label(class, label)
+	const char *label
+    C_ARGS:
+	label
+
+Gaim::PluginPref
+gaim_plugin_pref_new_with_name(class, name)
+	const char *name
+    C_ARGS:
+	name
+
+Gaim::PluginPref
+gaim_plugin_pref_new_with_name_and_label(class, name, label)
+	const char *name
+	const char *label
+    C_ARGS:
+	name, label
+
+void
+gaim_plugin_pref_set_bounds(pref, min, max)
+	Gaim::PluginPref pref
+	int min
+	int max
+
+void
+gaim_plugin_pref_set_label(pref, label)
+	Gaim::PluginPref pref
+	const char *label
+
+void
+gaim_plugin_pref_set_masked(pref, mask)
+	Gaim::PluginPref pref
+	gboolean mask
+
+void
+gaim_plugin_pref_set_max_length(pref, max_length)
+	Gaim::PluginPref pref
+	unsigned int max_length
+
+void
+gaim_plugin_pref_set_name(pref, name)
+	Gaim::PluginPref pref
+	const char *name
+
+void
+gaim_plugin_pref_set_type(pref, type)
+	Gaim::PluginPref pref
+	Gaim::PluginPrefType type
+PREINIT:
+	GaimPluginPrefType gpp_type;
+CODE:
+	gpp_type = GAIM_PLUGIN_PREF_NONE;
+
+	if (type == 1) {
+		gpp_type = GAIM_PLUGIN_PREF_CHOICE;
+	} else if (type == 2) {
+		gpp_type = GAIM_PLUGIN_PREF_INFO;
+	}
+	gaim_plugin_pref_set_type(pref, gpp_type);