Wed, 08 Feb 2006 23:13:56 +0000
[gaim-migrate @ 15553]
perl scripts can use signal priority now.
Also it's always bothered me that the debug and signal stuff was just stuck at
the bottom of Gaim.xs so I've moved them to their own files,
| 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 | ||
| 6520 | 11 | typedef struct |
| 12 | { | |
| 12882 | 13 | GaimCmdId id; |
| 14 | SV *callback; | |
| 15 | SV *data; | |
| 16 | char *prpl_id; | |
| 17 | char *cmd; | |
| 18 | GaimPlugin *plugin; | |
| 19 | } GaimPerlCmdHandler; | |
| 20 | ||
| 21 | typedef struct | |
| 22 | { | |
|
6568
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
23 | SV *callback; |
|
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
24 | SV *data; |
| 6520 | 25 | GaimPlugin *plugin; |
| 26 | int iotag; | |
| 27 | ||
| 28 | } GaimPerlTimeoutHandler; | |
| 29 | ||
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
30 | typedef struct |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
31 | { |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
32 | char *signal; |
|
6567
761a1feb5561
[gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents:
6550
diff
changeset
|
33 | SV *callback; |
|
761a1feb5561
[gaim-migrate @ 7089]
Christian Hammond <chipx86@chipx86.com>
parents:
6550
diff
changeset
|
34 | SV *data; |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
35 | void *instance; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
36 | GaimPlugin *plugin; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
37 | |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
38 | } GaimPerlSignalHandler; |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
39 | |
| 11170 | 40 | void gaim_perl_plugin_action_cb(GaimPluginAction * gpa); |
| 12988 | 41 | GList *gaim_perl_plugin_actions(GaimPlugin *plugin, gpointer context); |
| 11170 | 42 | |
| 11123 | 43 | GaimPluginPrefFrame *gaim_perl_get_plugin_frame(GaimPlugin *plugin); |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
44 | |
| 11170 | 45 | GtkWidget *gaim_perl_gtk_get_plugin_frame(GaimPlugin *plugin); |
| 46 | ||
|
6568
5c8c70b63dc3
[gaim-migrate @ 7090]
Christian Hammond <chipx86@chipx86.com>
parents:
6567
diff
changeset
|
47 | void gaim_perl_timeout_add(GaimPlugin *plugin, int seconds, SV *callback, |
| 12882 | 48 | SV *data); |
| 6520 | 49 | void gaim_perl_timeout_clear_for_plugin(GaimPlugin *plugin); |
| 50 | void gaim_perl_timeout_clear(void); | |
| 51 | ||
|
6550
1f3edf39ef51
[gaim-migrate @ 7072]
Christian Hammond <chipx86@chipx86.com>
parents:
6549
diff
changeset
|
52 | void gaim_perl_signal_connect(GaimPlugin *plugin, void *instance, |
| 12882 | 53 | const char *signal, SV *callback, |
| 13191 | 54 | SV *data, int priority); |
|
6550
1f3edf39ef51
[gaim-migrate @ 7072]
Christian Hammond <chipx86@chipx86.com>
parents:
6549
diff
changeset
|
55 | void gaim_perl_signal_disconnect(GaimPlugin *plugin, void *instance, |
| 12882 | 56 | const char *signal); |
|
6549
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
57 | void gaim_perl_signal_clear_for_plugin(GaimPlugin *plugin); |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
58 | void gaim_perl_signal_clear(void); |
|
8e6ba2a45698
[gaim-migrate @ 7071]
Christian Hammond <chipx86@chipx86.com>
parents:
6520
diff
changeset
|
59 | |
| 12882 | 60 | GaimCmdId gaim_perl_cmd_register(GaimPlugin *plugin, const gchar *cmd, |
| 61 | const gchar *args, GaimCmdPriority priority, | |
| 62 | GaimCmdFlag flag, const gchar *prpl_id, | |
| 63 | SV *callback, const gchar *helpstr, SV *data); | |
| 64 | void gaim_perl_cmd_unregister(GaimCmdId id); | |
| 65 | void gaim_perl_cmd_clear_for_plugin(GaimPlugin *plugin); | |
| 66 | ||
| 6520 | 67 | #endif /* _GAIM_PERL_HANDLERS_H_ */ |