view plugins/perl/perl-handlers.h @ 11217:f854402837ba

[gaim-migrate @ 13349] The history plugin really should require logging be on. Otherwise, you can end up seeing a really old conversation instead of the "last" conversation. I've made this change. Now, the history plugin can't be silently failing to do its job if logging is disabled. I've coded it to display a warning dialog under the following conditions: 1) The user enables the history plugin and neither IM nor chat logging is enabled. 2) The user starts Gaim with the history plugin and no logging enabled. 3) The user disables logging while the history plugin is enabled. I thought about automatically disabling the history plugin after displaying the dialog, but I imagine (hope?) people will enable the history plugin, see the dialog, and enable logging. If this is what happens, they would be confused if the history plugin automatically disabled itself when it displayed the dialog. This should address RFE 1241878, "History plugin should have a more helpful description". committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Tue, 09 Aug 2005 05:20:07 +0000
parents 0e9e2b923d09
children e1603fd610fa
line wrap: on
line source

#ifndef _GAIM_PERL_HANDLERS_H_
#define _GAIM_PERL_HANDLERS_H_

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

/* TODO: Find a better way to access the perl names from the plugin prober	*/
/* and store them for gaim_perl_plugin_action_* functions.			*/
char * gaim_perl_plugin_action_callback_sub;
char * gaim_perl_plugin_action_label;

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_action(GaimPlugin *plugin, gpointer context); 

GaimPluginUiInfo *gaim_perl_plugin_pref(const char * frame_cb);
GaimPluginPrefFrame *gaim_perl_get_plugin_frame(GaimPlugin *plugin);

GaimGtkPluginUiInfo *gaim_perl_gtk_plugin_pref(const char * frame_cb);
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);
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);

#endif /* _GAIM_PERL_HANDLERS_H_ */