Sun, 22 Jan 2006 05:17:38 +0000
[gaim-migrate @ 15337]
Perl plugins now have ids. Not having them was causing crashes with the
dependent plugin unloading stuff. Some fixes to that code in a minute.
| 6520 | 1 | #ifndef _GAIM_PERL_HANDLERS_H_ |
| 2 | #define _GAIM_PERL_HANDLERS_H_ | |
| 3 | ||
| 12882 | 4 | #include "cmds.h" |
| 6520 | 5 | #include "plugin.h" |
| 11123 | 6 | #include "prefs.h" |
| 7 | #include "pluginpref.h" | |
| 11170 | 8 | #include "gtkplugin.h" |
| 9 | #include "gtkutils.h" | |
| 10 | ||
| 12882 | 11 | /* TODO: Find a better way to access the perl names from the plugin prober */ |
| 12 | /* and store them for gaim_perl_plugin_action_* functions. */ | |
| 11170 | 13 | char * gaim_perl_plugin_action_callback_sub; |
| 14 | char * gaim_perl_plugin_action_label; | |
| 6520 | 15 | |
| 16 | typedef struct | |
| 17 | { | |
| 12882 | 18 | GaimCmdId id; |
| 19 | SV *callback; | |
| 20 | SV *data; | |
| 21 | char *prpl_id; | |
| 22 | char *cmd; | |
| 23 | GaimPlugin *plugin; | |
| 24 | } GaimPerlCmdHandler; | |
| 25 | ||
| 26 | typedef struct | |
| 27 | { | |
|
6568
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
28 | SV *callback; |
|
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
29 | SV *data; |
| 6520 | 30 | GaimPlugin *plugin; |
| 31 | int iotag; | |
| 32 | ||
| 33 | } GaimPerlTimeoutHandler; | |
| 34 | ||
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
35 | typedef struct |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
36 | { |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
37 | char *signal; |
|
6567
761a1feb5561
[gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents:
6550
diff
changeset
|
38 | SV *callback; |
|
761a1feb5561
[gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents:
6550
diff
changeset
|
39 | SV *data; |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
40 | void *instance; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
41 | GaimPlugin *plugin; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
42 | |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
43 | } GaimPerlSignalHandler; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
44 | |
| 11170 | 45 | void gaim_perl_plugin_action_cb(GaimPluginAction * gpa); |
| 46 | GList *gaim_perl_plugin_action(GaimPlugin *plugin, gpointer context); | |
| 47 | ||
| 11123 | 48 | GaimPluginPrefFrame *gaim_perl_get_plugin_frame(GaimPlugin *plugin); |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
49 | |
| 11170 | 50 | GtkWidget *gaim_perl_gtk_get_plugin_frame(GaimPlugin *plugin); |
| 51 | ||
|
6568
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
52 | void gaim_perl_timeout_add(GaimPlugin *plugin, int seconds, SV *callback, |
| 12882 | 53 | SV *data); |
| 6520 | 54 | void gaim_perl_timeout_clear_for_plugin(GaimPlugin *plugin); |
| 55 | void gaim_perl_timeout_clear(void); | |
| 56 | ||
|
6550
1f3edf39ef51
[gaim-migrate @ 7072]
Christian Hammond <chipx86@chipx86.com>
parents:
6549
diff
changeset
|
57 | void gaim_perl_signal_connect(GaimPlugin *plugin, void *instance, |
| 12882 | 58 | const char *signal, SV *callback, |
| 59 | SV *data); | |
|
6550
1f3edf39ef51
[gaim-migrate @ 7072]
Christian Hammond <chipx86@chipx86.com>
parents:
6549
diff
changeset
|
60 | void gaim_perl_signal_disconnect(GaimPlugin *plugin, void *instance, |
| 12882 | 61 | const char *signal); |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
62 | void gaim_perl_signal_clear_for_plugin(GaimPlugin *plugin); |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
63 | void gaim_perl_signal_clear(void); |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
64 | |
| 12882 | 65 | GaimCmdId gaim_perl_cmd_register(GaimPlugin *plugin, const gchar *cmd, |
| 66 | const gchar *args, GaimCmdPriority priority, | |
| 67 | GaimCmdFlag flag, const gchar *prpl_id, | |
| 68 | SV *callback, const gchar *helpstr, SV *data); | |
| 69 | void gaim_perl_cmd_unregister(GaimCmdId id); | |
| 70 | void gaim_perl_cmd_clear_for_plugin(GaimPlugin *plugin); | |
| 71 | ||
| 6520 | 72 | #endif /* _GAIM_PERL_HANDLERS_H_ */ |