#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "GtkDefs.h" #include "GnomeDefs.h" static void interaction_handler(GnomeClient * client, gint key, GnomeDialogType dialog_type, gpointer data) { AV * args = (AV*)data; SV * handler = *av_fetch(args, 0, 0); int i; dSP; PUSHMARK(sp); for (i=1;i<=av_len(args);i++) XPUSHs(sv_2mortal(newSVsv(*av_fetch(args, i, 0)))); XPUSHs(sv_2mortal(newSViv(key))); XPUSHs(sv_2mortal(newSVGnomeDialogType(dialog_type))); PUTBACK; perl_call_sv(handler, G_DISCARD); } MODULE = Gnome::Client PACKAGE = Gnome::Client PREFIX = gnome_client_ #ifdef GNOME_CLIENT Gnome::Client_Sink master(Class) SV * Class CODE: RETVAL = GNOME_CLIENT(gnome_master_client()); OUTPUT: RETVAL Gnome::Client_Sink cloned(Class) SV * Class CODE: RETVAL = GNOME_CLIENT(gnome_cloned_client()); OUTPUT: RETVAL Gnome::Client_Sink new(Class) SV * Class CODE: RETVAL = GNOME_CLIENT(gnome_client_new()); OUTPUT: RETVAL Gnome::Client_Sink new_without_connection(Class) SV * Class CODE: RETVAL = GNOME_CLIENT(gnome_client_new_without_connection()); OUTPUT: RETVAL void gnome_client_connect(client) Gnome::Client client void gnome_client_disconnect(client) Gnome::Client client void gnome_client_set_id(client, client_id) Gnome::Client client char * client_id char * gnome_client_get_id(client) Gnome::Client client char * gnome_client_get_previous_id(client) Gnome::Client client char * gnome_client_get_config_prefix(client) Gnome::Client client char * gnome_client_get_global_config_prefix(client) Gnome::Client client void gnome_client_set_clone_command(client, ...) Gnome::Client client CODE: { char ** a = (char**)malloc(sizeof(char*) + items); int i; for(i=1;i