view plugins/perl/perl-handlers.h @ 13845:d0ff520f87da

[gaim-migrate @ 16301] This is tcl /cmd support. It doesn't currently let tcl plugins return error message (I couldn't ever get that to work). But other than that it works. Ethan please look over this when you get a chance. committer: Tailor Script <tailor@pidgin.im>
author Etan Reisner <pidgin@unreliablesource.net>
date Wed, 21 Jun 2006 04:57:27 +0000
parents 60b863ecd89b
children
line wrap: on
line source

#ifndef _GAIM_PERL_HANDLERS_H_
#define _GAIM_PERL_HANDLERS_H_

#include "cmds.h"
#include "plugin.h"
#include "prefs.h"
#include "pluginpref.h"
#include "gtkplugin.h"
#include "gtkutils.h"

typedef struct
{
	GaimCmdId id;
	SV *callback;
	SV *data;
	char *prpl_id;
	char *cmd;
	GaimPlugin *plugin;
} GaimPerlCmdHandler;

typedef struct
{
	SV *callback;
	SV *data;
	GaimPlugin *plugin;
	int iotag;

} GaimPerlTimeoutHandler;

typedef struct
{
	char *signal;
	SV *callback;
	SV *data;
	void *instance;
	GaimPlugin *plugin;

} GaimPerlSignalHandler;

void gaim_perl_plugin_action_cb(GaimPluginAction * gpa);
GList *gaim_perl_plugin_actions(GaimPlugin *plugin, gpointer context); 

GaimPluginPrefFrame *gaim_perl_get_plugin_frame(GaimPlugin *plugin);

GtkWidget *gaim_perl_gtk_get_plugin_frame(GaimPlugin *plugin);

void gaim_perl_timeout_add(GaimPlugin *plugin, int seconds, SV *callback,
                           SV *data);
void gaim_perl_timeout_clear_for_plugin(GaimPlugin *plugin);
void gaim_perl_timeout_clear(void);

void gaim_perl_signal_connect(GaimPlugin *plugin, void *instance,
                              const char *signal, SV *callback,
                              SV *data, int priority);
void gaim_perl_signal_disconnect(GaimPlugin *plugin, void *instance,
                                 const char *signal);
void gaim_perl_signal_clear_for_plugin(GaimPlugin *plugin);
void gaim_perl_signal_clear(void);

GaimCmdId gaim_perl_cmd_register(GaimPlugin *plugin, const gchar *cmd,
                                 const gchar *args, GaimCmdPriority priority,
                                 GaimCmdFlag flag, const gchar *prpl_id,
                                 SV *callback, const gchar *helpstr, SV *data);
void gaim_perl_cmd_unregister(GaimCmdId id);
void gaim_perl_cmd_clear_for_plugin(GaimPlugin *plugin);

#endif /* _GAIM_PERL_HANDLERS_H_ */