view libgaim/plugins/perl/perl-handlers.h @ 14457:737a6c286a65

[gaim-migrate @ 17171] SF Patch #1551607 from Alex Badea: "I'm not entirely sure what causes it in general, but on my system it's triggered (only sometimes) by the History plugin on a Yahoo account." The almost identical SF Patch #1549604 from Valdis Kletnieks says: "Unchecked dereference of 'oldfont' in gtkimhtml.c causes a crash when starting up, as 'oldfont' isn't set." committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Wed, 06 Sep 2006 00:36:04 +0000
parents d5c22258df09
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"
#ifdef GAIM_GTKPERL
#include "gtkplugin.h"
#include "gtkutils.h"
#endif

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);

#ifdef GAIM_GTKPERL
GtkWidget *gaim_perl_gtk_get_plugin_frame(GaimPlugin *plugin);
#endif

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_ */