Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
| 5205 | 1 | /** |
| 2 | * @file plugin.h Plugin API | |
| 3 | * @ingroup core | |
|
20889
3d0ef192f98c
All the links to libpurple signal pages were in the comment containing the
Will Thompson <resiak@pidgin.im>
parents:
20147
diff
changeset
|
4 | * @see @ref plugin-signals |
|
3d0ef192f98c
All the links to libpurple signal pages were in the comment containing the
Will Thompson <resiak@pidgin.im>
parents:
20147
diff
changeset
|
5 | * @see @ref plugin-ids |
|
3d0ef192f98c
All the links to libpurple signal pages were in the comment containing the
Will Thompson <resiak@pidgin.im>
parents:
20147
diff
changeset
|
6 | * @see @ref plugin-i18n |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
7 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
8 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19897
diff
changeset
|
9 | /* purple |
| 5205 | 10 | * |
| 15884 | 11 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 12 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 13 | * source distribution. | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
5949
diff
changeset
|
14 | * |
| 5205 | 15 | * This program is free software; you can redistribute it and/or modify |
| 16 | * it under the terms of the GNU General Public License as published by | |
| 17 | * the Free Software Foundation; either version 2 of the License, or | |
| 18 | * (at your option) any later version. | |
| 19 | * | |
| 20 | * This program is distributed in the hope that it will be useful, | |
| 21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 23 | * GNU General Public License for more details. | |
| 24 | * | |
| 25 | * You should have received a copy of the GNU General Public License | |
| 26 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18412
diff
changeset
|
27 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5205 | 28 | */ |
| 15884 | 29 | #ifndef _PURPLE_PLUGIN_H_ |
| 30 | #define _PURPLE_PLUGIN_H_ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
31 | |
|
26726
b81bcec8f359
Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25911
diff
changeset
|
32 | #include <glib.h> |
|
5224
8cb89f5b912a
[gaim-migrate @ 5594]
Herman Bloggs <herman@bluedigits.com>
parents:
5205
diff
changeset
|
33 | #include <gmodule.h> |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
34 | #include "signals.h" |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
35 | #include "value.h" |
| 5205 | 36 | |
|
25630
f9fb8da4b5ec
Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents:
24569
diff
changeset
|
37 | /** @copydoc _PurplePlugin */ |
| 15884 | 38 | typedef struct _PurplePlugin PurplePlugin; |
|
25630
f9fb8da4b5ec
Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents:
24569
diff
changeset
|
39 | /** @copydoc _PurplePluginInfo */ |
| 15884 | 40 | typedef struct _PurplePluginInfo PurplePluginInfo; |
|
25630
f9fb8da4b5ec
Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents:
24569
diff
changeset
|
41 | /** @copydoc _PurplePluginUiInfo */ |
| 15884 | 42 | typedef struct _PurplePluginUiInfo PurplePluginUiInfo; |
|
25630
f9fb8da4b5ec
Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents:
24569
diff
changeset
|
43 | /** @copydoc _PurplePluginLoaderInfo */ |
| 15884 | 44 | typedef struct _PurplePluginLoaderInfo PurplePluginLoaderInfo; |
| 5205 | 45 | |
|
25630
f9fb8da4b5ec
Sprinkle some @copydoc directives around to shut up some doxygen whining.
Etan Reisner <deryni@pidgin.im>
parents:
24569
diff
changeset
|
46 | /** @copydoc _PurplePluginAction */ |
| 15884 | 47 | typedef struct _PurplePluginAction PurplePluginAction; |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
48 | |
| 15884 | 49 | typedef int PurplePluginPriority; /**< Plugin priority. */ |
| 5205 | 50 | |
| 8713 | 51 | #include "pluginpref.h" |
| 52 | ||
| 5205 | 53 | /** |
| 54 | * Plugin types. | |
| 55 | */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
56 | typedef enum |
| 5205 | 57 | { |
| 15884 | 58 | PURPLE_PLUGIN_UNKNOWN = -1, /**< Unknown type. */ |
| 59 | PURPLE_PLUGIN_STANDARD = 0, /**< Standard plugin. */ | |
| 60 | PURPLE_PLUGIN_LOADER, /**< Loader plugin. */ | |
| 61 | PURPLE_PLUGIN_PROTOCOL /**< Protocol plugin. */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
62 | |
| 15884 | 63 | } PurplePluginType; |
| 5205 | 64 | |
| 15884 | 65 | #define PURPLE_PRIORITY_DEFAULT 0 |
| 66 | #define PURPLE_PRIORITY_HIGHEST 9999 | |
| 67 | #define PURPLE_PRIORITY_LOWEST -9999 | |
| 5205 | 68 | |
| 15884 | 69 | #define PURPLE_PLUGIN_FLAG_INVISIBLE 0x01 |
|
6928
17e0c572bd97
[gaim-migrate @ 7475]
Christian Hammond <chipx86@chipx86.com>
parents:
6822
diff
changeset
|
70 | |
| 15884 | 71 | #define PURPLE_PLUGIN_MAGIC 5 /* once we hit 6.0.0 I think we can remove this */ |
|
8749
fb487e9e101a
[gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents:
8735
diff
changeset
|
72 | |
| 5205 | 73 | /** |
| 74 | * Detailed information about a plugin. | |
| 75 | * | |
| 76 | * This is used in the version 2.0 API and up. | |
| 77 | */ | |
| 15884 | 78 | struct _PurplePluginInfo |
| 5205 | 79 | { |
| 9943 | 80 | unsigned int magic; |
| 81 | unsigned int major_version; | |
| 82 | unsigned int minor_version; | |
| 15884 | 83 | PurplePluginType type; |
| 5205 | 84 | char *ui_requirement; |
| 85 | unsigned long flags; | |
| 86 | GList *dependencies; | |
| 15884 | 87 | PurplePluginPriority priority; |
| 5205 | 88 | |
| 89 | char *id; | |
| 90 | char *name; | |
| 91 | char *version; | |
| 92 | char *summary; | |
| 93 | char *description; | |
| 94 | char *author; | |
| 95 | char *homepage; | |
| 96 | ||
|
11963
3af2d2a60564
[gaim-migrate @ 14254]
Mark Doliner <markdoliner@pidgin.im>
parents:
11950
diff
changeset
|
97 | /** |
|
3af2d2a60564
[gaim-migrate @ 14254]
Mark Doliner <markdoliner@pidgin.im>
parents:
11950
diff
changeset
|
98 | * If a plugin defines a 'load' function, and it returns FALSE, |
|
3af2d2a60564
[gaim-migrate @ 14254]
Mark Doliner <markdoliner@pidgin.im>
parents:
11950
diff
changeset
|
99 | * then the plugin will not be loaded. |
|
10450
1757208151dc
[gaim-migrate @ 11715]
Mark Doliner <markdoliner@pidgin.im>
parents:
10448
diff
changeset
|
100 | */ |
| 15884 | 101 | gboolean (*load)(PurplePlugin *plugin); |
| 102 | gboolean (*unload)(PurplePlugin *plugin); | |
| 103 | void (*destroy)(PurplePlugin *plugin); | |
| 5205 | 104 | |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11772
diff
changeset
|
105 | void *ui_info; /**< Used only by UI-specific plugins to build a preference screen with a custom UI */ |
| 5205 | 106 | void *extra_info; |
| 15884 | 107 | PurplePluginUiInfo *prefs_info; /**< Used by any plugin to display preferences. If #ui_info has been specified, this will be ignored. */ |
|
26833
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
108 | |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
109 | /** |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
110 | * This callback has a different use depending on whether this |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
111 | * plugin type is PURPLE_PLUGIN_STANDARD or PURPLE_PLUGIN_PROTOCOL. |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
112 | * |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
113 | * If PURPLE_PLUGIN_STANDARD then the list of actions will show up |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
114 | * in the Tools menu, under a submenu with the name of the plugin. |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
115 | * context will be NULL. |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
116 | * |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
117 | * If PURPLE_PLUGIN_PROTOCOL then the list of actions will show up |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
118 | * in the Accounts menu, under a submenu with the name of the |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
119 | * account. context will be set to the PurpleConnection for that |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
120 | * account. This callback will only be called for online accounts. |
|
ad976a772a6d
Document this callback function. Prompted by a question in #pidgin
Mark Doliner <markdoliner@pidgin.im>
parents:
26751
diff
changeset
|
121 | */ |
| 15884 | 122 | GList *(*actions)(PurplePlugin *plugin, gpointer context); |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
123 | |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
124 | void (*_purple_reserved1)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
125 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
126 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
127 | void (*_purple_reserved4)(void); |
| 5205 | 128 | }; |
| 129 | ||
| 130 | /** | |
| 131 | * Extra information for loader plugins. | |
| 132 | */ | |
| 15884 | 133 | struct _PurplePluginLoaderInfo |
| 5205 | 134 | { |
| 135 | GList *exts; | |
| 136 | ||
| 15884 | 137 | gboolean (*probe)(PurplePlugin *plugin); |
| 138 | gboolean (*load)(PurplePlugin *plugin); | |
| 139 | gboolean (*unload)(PurplePlugin *plugin); | |
| 140 | void (*destroy)(PurplePlugin *plugin); | |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
141 | |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
142 | void (*_purple_reserved1)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
143 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
144 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
145 | void (*_purple_reserved4)(void); |
| 5205 | 146 | }; |
| 147 | ||
| 148 | /** | |
| 149 | * A plugin handle. | |
| 150 | */ | |
| 15884 | 151 | struct _PurplePlugin |
| 5205 | 152 | { |
| 153 | gboolean native_plugin; /**< Native C plugin. */ | |
| 154 | gboolean loaded; /**< The loaded state. */ | |
| 155 | void *handle; /**< The module handle. */ | |
| 156 | char *path; /**< The path to the plugin. */ | |
| 15884 | 157 | PurplePluginInfo *info; /**< The plugin information. */ |
| 5205 | 158 | char *error; |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
159 | void *ipc_data; /**< IPC data. */ |
| 5205 | 160 | void *extra; /**< Plugin-specific data. */ |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
161 | gboolean unloadable; /**< Unloadable */ |
| 12926 | 162 | GList *dependent_plugins; /**< Plugins depending on this */ |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
163 | |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
164 | void (*_purple_reserved1)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
165 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
166 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
167 | void (*_purple_reserved4)(void); |
| 5205 | 168 | }; |
| 169 | ||
| 15884 | 170 | #define PURPLE_PLUGIN_LOADER_INFO(plugin) \ |
| 171 | ((PurplePluginLoaderInfo *)(plugin)->info->extra_info) | |
| 5205 | 172 | |
| 15884 | 173 | struct _PurplePluginUiInfo { |
| 174 | PurplePluginPrefFrame *(*get_plugin_pref_frame)(PurplePlugin *plugin); | |
| 8713 | 175 | |
|
10759
c6600b133594
[gaim-migrate @ 12362]
Mark Doliner <markdoliner@pidgin.im>
parents:
10710
diff
changeset
|
176 | int page_num; /**< Reserved */ |
| 15884 | 177 | PurplePluginPrefFrame *frame; /**< Reserved */ |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
178 | |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
179 | void (*_purple_reserved1)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
180 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
181 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
182 | void (*_purple_reserved4)(void); |
| 8713 | 183 | }; |
| 184 | ||
| 15884 | 185 | #define PURPLE_PLUGIN_HAS_PREF_FRAME(plugin) \ |
| 8713 | 186 | ((plugin)->info != NULL && (plugin)->info->prefs_info != NULL) |
| 187 | ||
| 15884 | 188 | #define PURPLE_PLUGIN_UI_INFO(plugin) \ |
| 189 | ((PurplePluginUiInfo*)(plugin)->info->prefs_info) | |
| 8713 | 190 | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
191 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
192 | /** |
| 15884 | 193 | * The structure used in the actions member of PurplePluginInfo |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
194 | */ |
| 15884 | 195 | struct _PurplePluginAction { |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
196 | char *label; |
| 15884 | 197 | void (*callback)(PurplePluginAction *); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
198 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
199 | /** set to the owning plugin */ |
| 15884 | 200 | PurplePlugin *plugin; |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
201 | |
| 15884 | 202 | /** NULL for plugin actions menu, set to the PurpleConnection for |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
203 | account actions menu */ |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
204 | gpointer context; |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
205 | |
|
17817
8e0f271aab78
The server's ad-hoc commands are now listed in the account's action menu. Note that this requires an additional field in the _PurplePluginAction struct. There's no other way, since there was no way to supply user_data, and dynamically created functions are not supported by C. This should be fine, since that struct is only malloced in purple_plugin_action_new, which is part of the core. Applications have to either pass the struct unmodified, or restore the user_data pointer if the action is recreated when necessary (as is the case in Adium).
Andreas Monitzer <am@adiumx.com>
parents:
16743
diff
changeset
|
206 | gpointer user_data; |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
207 | }; |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
208 | |
| 15884 | 209 | #define PURPLE_PLUGIN_HAS_ACTIONS(plugin) \ |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
210 | ((plugin)->info != NULL && (plugin)->info->actions != NULL) |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
211 | |
| 15884 | 212 | #define PURPLE_PLUGIN_ACTIONS(plugin, context) \ |
| 213 | (PURPLE_PLUGIN_HAS_ACTIONS(plugin)? \ | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
214 | (plugin)->info->actions(plugin, context): NULL) |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
215 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
216 | |
| 5205 | 217 | /** |
| 218 | * Handles the initialization of modules. | |
| 219 | */ | |
| 15884 | 220 | #if !defined(PURPLE_PLUGINS) || defined(PURPLE_STATIC_PRPL) |
|
23859
205579211cd3
Allow macros in the plugin name when compiling statically.
Evan Schoenberg <evands@pidgin.im>
parents:
21453
diff
changeset
|
221 | # define _FUNC_NAME(x) purple_init_##x##_plugin |
| 15884 | 222 | # define PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) \ |
|
23859
205579211cd3
Allow macros in the plugin name when compiling statically.
Evan Schoenberg <evands@pidgin.im>
parents:
21453
diff
changeset
|
223 | gboolean _FUNC_NAME(pluginname)(void);\ |
|
205579211cd3
Allow macros in the plugin name when compiling statically.
Evan Schoenberg <evands@pidgin.im>
parents:
21453
diff
changeset
|
224 | gboolean _FUNC_NAME(pluginname)(void) { \ |
| 15884 | 225 | PurplePlugin *plugin = purple_plugin_new(TRUE, NULL); \ |
| 5205 | 226 | plugin->info = &(plugininfo); \ |
| 227 | initfunc((plugin)); \ | |
| 15884 | 228 | purple_plugin_load((plugin)); \ |
| 229 | return purple_plugin_register(plugin); \ | |
| 5205 | 230 | } |
| 15884 | 231 | #else /* PURPLE_PLUGINS && !PURPLE_STATIC_PRPL */ |
| 232 | # define PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) \ | |
| 233 | G_MODULE_EXPORT gboolean purple_init_plugin(PurplePlugin *plugin); \ | |
| 234 | G_MODULE_EXPORT gboolean purple_init_plugin(PurplePlugin *plugin) { \ | |
| 5205 | 235 | plugin->info = &(plugininfo); \ |
| 236 | initfunc((plugin)); \ | |
| 15884 | 237 | return purple_plugin_register(plugin); \ |
| 5205 | 238 | } |
| 239 | #endif | |
| 240 | ||
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
241 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
242 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
243 | extern "C" { |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
244 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
245 | |
| 5205 | 246 | /**************************************************************************/ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
247 | /** @name Plugin API */ |
| 5205 | 248 | /**************************************************************************/ |
| 249 | /*@{*/ | |
| 250 | ||
| 251 | /** | |
| 252 | * Creates a new plugin structure. | |
| 253 | * | |
| 254 | * @param native Whether or not the plugin is native. | |
| 255 | * @param path The path to the plugin, or @c NULL if statically compiled. | |
| 256 | * | |
| 15884 | 257 | * @return A new PurplePlugin structure. |
| 5205 | 258 | */ |
| 15884 | 259 | PurplePlugin *purple_plugin_new(gboolean native, const char *path); |
| 5205 | 260 | |
| 261 | /** | |
| 262 | * Probes a plugin, retrieving the information on it and adding it to the | |
| 263 | * list of available plugins. | |
| 264 | * | |
| 265 | * @param filename The plugin's filename. | |
| 266 | * | |
| 267 | * @return The plugin handle. | |
| 268 | * | |
| 15884 | 269 | * @see purple_plugin_load() |
| 270 | * @see purple_plugin_destroy() | |
| 5205 | 271 | */ |
| 15884 | 272 | PurplePlugin *purple_plugin_probe(const char *filename); |
| 5205 | 273 | |
| 274 | /** | |
| 275 | * Registers a plugin and prepares it for loading. | |
| 276 | * | |
| 277 | * This shouldn't be called by anything but the internal module code. | |
| 15884 | 278 | * Plugins should use the PURPLE_INIT_PLUGIN() macro to register themselves |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
279 | * with the core. |
| 5205 | 280 | * |
| 281 | * @param plugin The plugin to register. | |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
282 | * |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
283 | * @return @c TRUE if the plugin was registered successfully. Otherwise |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
284 | * @c FALSE is returned (this happens if the plugin does not contain |
|
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
285 | * the necessary information). |
| 5205 | 286 | */ |
| 15884 | 287 | gboolean purple_plugin_register(PurplePlugin *plugin); |
| 5205 | 288 | |
| 289 | /** | |
| 290 | * Attempts to load a previously probed plugin. | |
| 291 | * | |
|
6720
cdc5348dd848
[gaim-migrate @ 7247]
Christian Hammond <chipx86@chipx86.com>
parents:
6486
diff
changeset
|
292 | * @param plugin The plugin to load. |
| 5205 | 293 | * |
| 294 | * @return @c TRUE if successful, or @c FALSE otherwise. | |
| 295 | * | |
| 15884 | 296 | * @see purple_plugin_reload() |
| 297 | * @see purple_plugin_unload() | |
| 5205 | 298 | */ |
| 15884 | 299 | gboolean purple_plugin_load(PurplePlugin *plugin); |
| 5205 | 300 | |
| 301 | /** | |
| 302 | * Unloads the specified plugin. | |
| 303 | * | |
| 304 | * @param plugin The plugin handle. | |
| 305 | * | |
| 306 | * @return @c TRUE if successful, or @c FALSE otherwise. | |
| 307 | * | |
| 15884 | 308 | * @see purple_plugin_load() |
| 309 | * @see purple_plugin_reload() | |
| 5205 | 310 | */ |
| 15884 | 311 | gboolean purple_plugin_unload(PurplePlugin *plugin); |
| 5205 | 312 | |
| 313 | /** | |
|
20870
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
314 | * Disable a plugin. |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
315 | * |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
316 | * This function adds the plugin to a list of plugins to "disable at the next |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
317 | * startup" by excluding said plugins from the list of plugins to save. The |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
318 | * UI needs to call purple_plugins_save_loaded() after calling this for it |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
319 | * to have any effect. |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
320 | * |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
321 | * @since 2.3.0 |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
322 | */ |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
323 | void purple_plugin_disable(PurplePlugin *plugin); |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
324 | |
|
0a689ca1985e
* Add purple_plugin_disable() to prevent plugins from loading on the next
Richard Laager <rlaager@pidgin.im>
parents:
20866
diff
changeset
|
325 | /** |
| 5205 | 326 | * Reloads a plugin. |
| 327 | * | |
| 328 | * @param plugin The old plugin handle. | |
|
6486
18da8fdbc85b
[gaim-migrate @ 7000]
Christian Hammond <chipx86@chipx86.com>
parents:
6485
diff
changeset
|
329 | * |
| 5205 | 330 | * @return @c TRUE if successful, or @c FALSE otherwise. |
| 331 | * | |
| 15884 | 332 | * @see purple_plugin_load() |
| 333 | * @see purple_plugin_unload() | |
| 5205 | 334 | */ |
| 15884 | 335 | gboolean purple_plugin_reload(PurplePlugin *plugin); |
| 5205 | 336 | |
| 337 | /** | |
| 338 | * Unloads a plugin and destroys the structure from memory. | |
| 339 | * | |
| 340 | * @param plugin The plugin handle. | |
| 341 | */ | |
| 15884 | 342 | void purple_plugin_destroy(PurplePlugin *plugin); |
| 5205 | 343 | |
| 344 | /** | |
| 345 | * Returns whether or not a plugin is currently loaded. | |
| 346 | * | |
| 347 | * @param plugin The plugin. | |
| 348 | * | |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
349 | * @return @c TRUE if loaded, or @c FALSE otherwise. |
| 5205 | 350 | */ |
| 15884 | 351 | gboolean purple_plugin_is_loaded(const PurplePlugin *plugin); |
| 5205 | 352 | |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
353 | /** |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
354 | * Returns whether or not a plugin is unloadable. |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
355 | * |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
356 | * If this returns @c TRUE, the plugin is guaranteed to not |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
357 | * be loadable. However, a return value of @c FALSE does not |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
358 | * guarantee the plugin is loadable. |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
359 | * |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
360 | * @param plugin The plugin. |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
361 | * |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
362 | * @return @c TRUE if the plugin is known to be unloadable,\ |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
363 | * @c FALSE otherwise |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
364 | */ |
| 15884 | 365 | gboolean purple_plugin_is_unloadable(const PurplePlugin *plugin); |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
366 | |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12323
diff
changeset
|
367 | /** |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
368 | * Returns a plugin's id. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
369 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
370 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
371 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
372 | * @return The plugin's id. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
373 | */ |
| 15884 | 374 | const gchar *purple_plugin_get_id(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
375 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
376 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
377 | * Returns a plugin's name. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
378 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
379 | * @param plugin The plugin. |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24569
diff
changeset
|
380 | * |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
381 | * @return THe name of the plugin, or @c NULL. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
382 | */ |
| 15884 | 383 | const gchar *purple_plugin_get_name(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
384 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
385 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
386 | * Returns a plugin's version. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
387 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
388 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
389 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
390 | * @return The plugin's version or @c NULL. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
391 | */ |
| 15884 | 392 | const gchar *purple_plugin_get_version(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
393 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
394 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
395 | * Returns a plugin's summary. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
396 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
397 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
398 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
399 | * @return The plugin's summary. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
400 | */ |
| 15884 | 401 | const gchar *purple_plugin_get_summary(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
402 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
403 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
404 | * Returns a plugin's description. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
405 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
406 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
407 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
408 | * @return The plugin's description. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
409 | */ |
| 15884 | 410 | const gchar *purple_plugin_get_description(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
411 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
412 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
413 | * Returns a plugin's author. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
414 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
415 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
416 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
417 | * @return The plugin's author. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
418 | */ |
| 15884 | 419 | const gchar *purple_plugin_get_author(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
420 | |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
421 | /** |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
422 | * Returns a plugin's homepage. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
423 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
424 | * @param plugin The plugin. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
425 | * |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
426 | * @return The plugin's homepage. |
|
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
427 | */ |
| 15884 | 428 | const gchar *purple_plugin_get_homepage(const PurplePlugin *plugin); |
|
11772
0124b31e896a
[gaim-migrate @ 14063]
Gary Kramlich <grim@reaperworld.com>
parents:
10759
diff
changeset
|
429 | |
| 5205 | 430 | /*@}*/ |
| 431 | ||
| 432 | /**************************************************************************/ | |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
433 | /** @name Plugin IPC API */ |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
434 | /**************************************************************************/ |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
435 | /*@{*/ |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
436 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
437 | /** |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
438 | * Registers an IPC command in a plugin. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
439 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
440 | * @param plugin The plugin to register the command with. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
441 | * @param command The name of the command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
442 | * @param func The function to execute. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
443 | * @param marshal The marshalling function. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
444 | * @param ret_value The return value type. |
|
7114
6e5e4e674496
[gaim-migrate @ 7681]
Christian Hammond <chipx86@chipx86.com>
parents:
7034
diff
changeset
|
445 | * @param num_params The number of parameters. |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
446 | * @param ... The parameter types. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
447 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
448 | * @return TRUE if the function was registered successfully, or |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
449 | * FALSE otherwise. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
450 | */ |
| 15884 | 451 | gboolean purple_plugin_ipc_register(PurplePlugin *plugin, const char *command, |
| 452 | PurpleCallback func, | |
| 453 | PurpleSignalMarshalFunc marshal, | |
| 454 | PurpleValue *ret_value, int num_params, ...); | |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
455 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
456 | /** |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
457 | * Unregisters an IPC command in a plugin. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
458 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
459 | * @param plugin The plugin to unregister the command from. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
460 | * @param command The name of the command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
461 | */ |
| 15884 | 462 | void purple_plugin_ipc_unregister(PurplePlugin *plugin, const char *command); |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
463 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
464 | /** |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
465 | * Unregisters all IPC commands in a plugin. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
466 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
467 | * @param plugin The plugin to unregister the commands from. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
468 | */ |
| 15884 | 469 | void purple_plugin_ipc_unregister_all(PurplePlugin *plugin); |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
470 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
471 | /** |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
472 | * Returns a list of value types used for an IPC command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
473 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
474 | * @param plugin The plugin. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
475 | * @param command The name of the command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
476 | * @param ret_value The returned return value. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
477 | * @param num_params The returned number of parameters. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
478 | * @param params The returned list of parameters. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
479 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
480 | * @return TRUE if the command was found, or FALSE otherwise. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
481 | */ |
| 15884 | 482 | gboolean purple_plugin_ipc_get_params(PurplePlugin *plugin, const char *command, |
| 483 | PurpleValue **ret_value, int *num_params, | |
| 484 | PurpleValue ***params); | |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
485 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
486 | /** |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
487 | * Executes an IPC command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
488 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
489 | * @param plugin The plugin to execute the command on. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
490 | * @param command The name of the command. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
491 | * @param ok TRUE if the call was successful, or FALSE otherwise. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
492 | * @param ... The parameters to pass. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
493 | * |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
494 | * @return The return value, which will be NULL if the command doesn't |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
495 | * return a value. |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
496 | */ |
| 15884 | 497 | void *purple_plugin_ipc_call(PurplePlugin *plugin, const char *command, |
|
6822
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
498 | gboolean *ok, ...); |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
499 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
500 | /*@}*/ |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
501 | |
|
4adcde13ad17
[gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents:
6720
diff
changeset
|
502 | /**************************************************************************/ |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
503 | /** @name Plugins API */ |
| 5205 | 504 | /**************************************************************************/ |
| 505 | /*@{*/ | |
| 506 | ||
| 507 | /** | |
|
10447
887380ec66f5
[gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents:
9946
diff
changeset
|
508 | * Add a new directory to search for plugins |
| 5205 | 509 | * |
|
10448
4415ffba12e9
[gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents:
10447
diff
changeset
|
510 | * @param path The new search path. |
| 5205 | 511 | */ |
| 15884 | 512 | void purple_plugins_add_search_path(const char *path); |
| 5205 | 513 | |
| 514 | /** | |
|
5242
155da5e9bbf0
[gaim-migrate @ 5613]
Christian Hammond <chipx86@chipx86.com>
parents:
5224
diff
changeset
|
515 | * Unloads all loaded plugins. |
| 5205 | 516 | */ |
| 15884 | 517 | void purple_plugins_unload_all(void); |
| 5205 | 518 | |
|
5242
155da5e9bbf0
[gaim-migrate @ 5613]
Christian Hammond <chipx86@chipx86.com>
parents:
5224
diff
changeset
|
519 | /** |
|
26751
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26726
diff
changeset
|
520 | * Unloads all plugins of a specific type. |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26726
diff
changeset
|
521 | */ |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26726
diff
changeset
|
522 | void purple_plugins_unload(PurplePluginType type); |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26726
diff
changeset
|
523 | |
|
4b0dffa16ffe
Apply patch from darkrain42 to fix the crash-on-exit. Hopefully, the order
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
26726
diff
changeset
|
524 | /** |
|
5242
155da5e9bbf0
[gaim-migrate @ 5613]
Christian Hammond <chipx86@chipx86.com>
parents:
5224
diff
changeset
|
525 | * Destroys all registered plugins. |
|
155da5e9bbf0
[gaim-migrate @ 5613]
Christian Hammond <chipx86@chipx86.com>
parents:
5224
diff
changeset
|
526 | */ |
| 15884 | 527 | void purple_plugins_destroy_all(void); |
|
5242
155da5e9bbf0
[gaim-migrate @ 5613]
Christian Hammond <chipx86@chipx86.com>
parents:
5224
diff
changeset
|
528 | |
| 5205 | 529 | /** |
| 15357 | 530 | * Saves the list of loaded plugins to the specified preference key |
| 531 | * | |
| 532 | * @param key The preference key to save the list of plugins to. | |
| 533 | */ | |
| 15884 | 534 | void purple_plugins_save_loaded(const char *key); |
| 15357 | 535 | |
| 536 | /** | |
|
5949
bb7cbf02dda9
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5944
diff
changeset
|
537 | * Attempts to load all the plugins in the specified preference key |
| 15884 | 538 | * that were loaded when purple last quit. |
|
5949
bb7cbf02dda9
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5944
diff
changeset
|
539 | * |
|
bb7cbf02dda9
[gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents:
5944
diff
changeset
|
540 | * @param key The preference key containing the list of plugins. |
| 5838 | 541 | */ |
| 15884 | 542 | void purple_plugins_load_saved(const char *key); |
| 5838 | 543 | |
| 544 | /** | |
| 5205 | 545 | * Probes for plugins in the registered module paths. |
| 546 | * | |
| 547 | * @param ext The extension type to probe for, or @c NULL for all. | |
| 548 | * | |
| 15884 | 549 | * @see purple_plugin_set_probe_path() |
| 5205 | 550 | */ |
| 15884 | 551 | void purple_plugins_probe(const char *ext); |
| 5205 | 552 | |
| 553 | /** | |
| 554 | * Returns whether or not plugin support is enabled. | |
| 555 | * | |
| 556 | * @return TRUE if plugin support is enabled, or FALSE otherwise. | |
| 557 | */ | |
| 15884 | 558 | gboolean purple_plugins_enabled(void); |
| 5205 | 559 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
560 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 561 | /** |
| 562 | * Registers a function that will be called when probing is finished. | |
| 563 | * | |
| 564 | * @param func The callback function. | |
| 565 | * @param data Data to pass to the callback. | |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
566 | * @deprecated If you need this, ask for a plugin-probe signal to be added. |
| 5205 | 567 | */ |
| 15884 | 568 | void purple_plugins_register_probe_notify_cb(void (*func)(void *), void *data); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
569 | #endif |
| 5205 | 570 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
571 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 572 | /** |
| 573 | * Unregisters a function that would be called when probing is finished. | |
| 574 | * | |
| 575 | * @param func The callback function. | |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
576 | * @deprecated If you need this, ask for a plugin-probe signal to be added. |
| 5205 | 577 | */ |
| 15884 | 578 | void purple_plugins_unregister_probe_notify_cb(void (*func)(void *)); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
579 | #endif |
| 5205 | 580 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
581 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 582 | /** |
| 583 | * Registers a function that will be called when a plugin is loaded. | |
| 584 | * | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8713
diff
changeset
|
585 | * @param func The callback function. |
| 5205 | 586 | * @param data Data to pass to the callback. |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
587 | * @deprecated Use the plugin-load signal instead. |
| 5205 | 588 | */ |
| 15884 | 589 | void purple_plugins_register_load_notify_cb(void (*func)(PurplePlugin *, void *), |
| 5205 | 590 | void *data); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
591 | #endif |
| 5205 | 592 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
593 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 594 | /** |
| 595 | * Unregisters a function that would be called when a plugin is loaded. | |
| 596 | * | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8713
diff
changeset
|
597 | * @param func The callback function. |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
598 | * @deprecated Use the plugin-load signal instead. |
| 5205 | 599 | */ |
| 15884 | 600 | void purple_plugins_unregister_load_notify_cb(void (*func)(PurplePlugin *, void *)); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
601 | #endif |
| 5205 | 602 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
603 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 604 | /** |
| 605 | * Registers a function that will be called when a plugin is unloaded. | |
| 606 | * | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8713
diff
changeset
|
607 | * @param func The callback function. |
| 5205 | 608 | * @param data Data to pass to the callback. |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
609 | * @deprecated Use the plugin-unload signal instead. |
| 5205 | 610 | */ |
| 15884 | 611 | void purple_plugins_register_unload_notify_cb(void (*func)(PurplePlugin *, void *), |
| 5205 | 612 | void *data); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
613 | #endif |
| 5205 | 614 | |
|
24569
5dbd0617a27d
Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
Richard Laager <rlaager@pidgin.im>
parents:
23859
diff
changeset
|
615 | #if !(defined PURPLE_DISABLE_DEPRECATED) || (defined _PURPLE_PLUGIN_C_) |
| 5205 | 616 | /** |
| 617 | * Unregisters a function that would be called when a plugin is unloaded. | |
| 618 | * | |
|
8735
01248ea222d3
[gaim-migrate @ 9490]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
8713
diff
changeset
|
619 | * @param func The callback function. |
|
20807
e9749eea6a46
Deprecate the purple_plugins_register_* and purple_plugins_unregister_* functions. We have plugin-load and plugin-unload signals.
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
620 | * @deprecated Use the plugin-unload signal instead. |
| 5205 | 621 | */ |
| 15884 | 622 | void purple_plugins_unregister_unload_notify_cb(void (*func)(PurplePlugin *, |
| 5205 | 623 | void *)); |
|
20808
e3524e9d502c
Honor a PURPLE_DISABLE_DEPRECATED define to allow plugins to catch
Richard Laager <rlaager@pidgin.im>
parents:
20807
diff
changeset
|
624 | #endif |
| 5205 | 625 | |
| 626 | /** | |
| 627 | * Finds a plugin with the specified name. | |
| 628 | * | |
| 629 | * @param name The plugin name. | |
| 630 | * | |
| 631 | * @return The plugin if found, or @c NULL if not found. | |
| 632 | */ | |
| 15884 | 633 | PurplePlugin *purple_plugins_find_with_name(const char *name); |
| 5205 | 634 | |
| 635 | /** | |
|
7034
b1d44fe5f072
[gaim-migrate @ 7597]
Christian Hammond <chipx86@chipx86.com>
parents:
7033
diff
changeset
|
636 | * Finds a plugin with the specified filename (filename with a path). |
| 5205 | 637 | * |
| 638 | * @param filename The plugin filename. | |
| 639 | * | |
| 640 | * @return The plugin if found, or @c NULL if not found. | |
| 641 | */ | |
| 15884 | 642 | PurplePlugin *purple_plugins_find_with_filename(const char *filename); |
| 5205 | 643 | |
| 644 | /** | |
|
7034
b1d44fe5f072
[gaim-migrate @ 7597]
Christian Hammond <chipx86@chipx86.com>
parents:
7033
diff
changeset
|
645 | * Finds a plugin with the specified basename (filename without a path). |
|
7033
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
646 | * |
|
7034
b1d44fe5f072
[gaim-migrate @ 7597]
Christian Hammond <chipx86@chipx86.com>
parents:
7033
diff
changeset
|
647 | * @param basename The plugin basename. |
|
7033
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
648 | * |
|
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
649 | * @return The plugin if found, or @c NULL if not found. |
|
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
650 | */ |
| 15884 | 651 | PurplePlugin *purple_plugins_find_with_basename(const char *basename); |
|
7033
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
652 | |
|
f6096f69a11e
[gaim-migrate @ 7596]
Robert McQueen <robot101@debian.org>
parents:
6928
diff
changeset
|
653 | /** |
| 5205 | 654 | * Finds a plugin with the specified plugin ID. |
| 655 | * | |
| 656 | * @param id The plugin ID. | |
| 657 | * | |
| 658 | * @return The plugin if found, or @c NULL if not found. | |
| 659 | */ | |
| 15884 | 660 | PurplePlugin *purple_plugins_find_with_id(const char *id); |
| 5205 | 661 | |
| 662 | /** | |
| 663 | * Returns a list of all loaded plugins. | |
| 664 | * | |
|
20971
b5e1eb080f33
Replace a bunch of @return markers with @constreturn markers. I believe these
Etan Reisner <deryni@pidgin.im>
parents:
20889
diff
changeset
|
665 | * @constreturn A list of all loaded plugins. |
| 5205 | 666 | */ |
| 15884 | 667 | GList *purple_plugins_get_loaded(void); |
| 5205 | 668 | |
| 669 | /** | |
|
11950
a522c2da66e5
[gaim-migrate @ 14241]
Evan Schoenberg <evands@pidgin.im>
parents:
11817
diff
changeset
|
670 | * Returns a list of all valid protocol plugins. A protocol |
|
a522c2da66e5
[gaim-migrate @ 14241]
Evan Schoenberg <evands@pidgin.im>
parents:
11817
diff
changeset
|
671 | * plugin is considered invalid if it does not contain the call |
| 15884 | 672 | * to the PURPLE_INIT_PLUGIN() macro, or if it was compiled |
|
11950
a522c2da66e5
[gaim-migrate @ 14241]
Evan Schoenberg <evands@pidgin.im>
parents:
11817
diff
changeset
|
673 | * against an incompatable API version. |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5449
diff
changeset
|
674 | * |
|
20971
b5e1eb080f33
Replace a bunch of @return markers with @constreturn markers. I believe these
Etan Reisner <deryni@pidgin.im>
parents:
20889
diff
changeset
|
675 | * @constreturn A list of all protocol plugins. |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5449
diff
changeset
|
676 | */ |
| 15884 | 677 | GList *purple_plugins_get_protocols(void); |
|
5573
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5449
diff
changeset
|
678 | |
|
633880e3f137
[gaim-migrate @ 5976]
Christian Hammond <chipx86@chipx86.com>
parents:
5449
diff
changeset
|
679 | /** |
| 5205 | 680 | * Returns a list of all plugins, whether loaded or not. |
| 681 | * | |
|
20971
b5e1eb080f33
Replace a bunch of @return markers with @constreturn markers. I believe these
Etan Reisner <deryni@pidgin.im>
parents:
20889
diff
changeset
|
682 | * @constreturn A list of all plugins. |
| 5205 | 683 | */ |
| 15884 | 684 | GList *purple_plugins_get_all(void); |
| 5205 | 685 | |
| 686 | /*@}*/ | |
| 687 | ||
| 10479 | 688 | /**************************************************************************/ |
| 689 | /** @name Plugins SubSytem API */ | |
| 690 | /**************************************************************************/ | |
| 691 | /*@{*/ | |
| 692 | ||
| 693 | /** | |
| 694 | * Returns the plugin subsystem handle. | |
| 695 | * | |
| 696 | * @return The plugin sybsystem handle. | |
| 697 | */ | |
| 15884 | 698 | void *purple_plugins_get_handle(void); |
| 10479 | 699 | |
| 700 | /** | |
| 701 | * Initializes the plugin subsystem | |
| 702 | */ | |
| 15884 | 703 | void purple_plugins_init(void); |
| 10479 | 704 | |
| 705 | /** | |
| 706 | * Uninitializes the plugin subsystem | |
| 707 | */ | |
| 15884 | 708 | void purple_plugins_uninit(void); |
| 10479 | 709 | |
| 710 | /*@}*/ | |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
711 | |
|
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
712 | /** |
| 15884 | 713 | * Allocates and returns a new PurplePluginAction. |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
714 | * |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
715 | * @param label The description of the action to show to the user. |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
716 | * @param callback The callback to call when the user selects this action. |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
717 | */ |
| 15884 | 718 | PurplePluginAction *purple_plugin_action_new(const char* label, void (*callback)(PurplePluginAction *)); |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
719 | |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
720 | /** |
| 15884 | 721 | * Frees a PurplePluginAction |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
722 | * |
| 15884 | 723 | * @param action The PurplePluginAction to free. |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12986
diff
changeset
|
724 | */ |
| 15884 | 725 | void purple_plugin_action_free(PurplePluginAction *action); |
|
9015
3c27e9074fa2
[gaim-migrate @ 9791]
Christopher O'Brien <siege@pidgin.im>
parents:
8990
diff
changeset
|
726 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
727 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
728 | } |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
729 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5840
diff
changeset
|
730 | |
| 15884 | 731 | #endif /* _PURPLE_PLUGIN_H_ */ |