libpurple/plugins.h

Wed, 07 Aug 2013 04:54:32 +0530

author
Ankit Vani <a@nevitus.org>
date
Wed, 07 Aug 2013 04:54:32 +0530
branch
soc.2013.gobjectification.plugins
changeset 36461
e769bd450874
parent 36460
8c939ea45957
child 36463
b1ce7f2998e4
permissions
-rw-r--r--

Add a note in the documentation for purple_plugins_find_all() that the list is owned by caller

5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
2 * @file plugins.h Plugins API
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 * @ingroup core
36391
dbf2a8af2eb1 Added a reference to signal, id, and i18n docs
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
4 * @see @ref plugin-signals
dbf2a8af2eb1 Added a reference to signal, id, and i18n docs
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
5 * @see @ref plugin-ids
dbf2a8af2eb1 Added a reference to signal, id, and i18n docs
Ankit Vani <a@nevitus.org>
parents: 36389
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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
11 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8028
diff changeset
12 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 8028
diff changeset
13 * source distribution.
6485
3c7ba18e32f1 [gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents: 5949
diff changeset
14 *
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * This program is free software; you can redistribute it and/or modify
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * it under the terms of the GNU General Public License as published by
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * the Free Software Foundation; either version 2 of the License, or
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * (at your option) any later version.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * This program is distributed in the hope that it will be useful,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * GNU General Public License for more details.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 * You should have received a copy of the GNU General Public License
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
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
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
29 #ifndef _PURPLE_PLUGINS_H_
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
30 #define _PURPLE_PLUGINS_H_
5944
f19df037ac58 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5840
diff changeset
31
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
32 #ifdef PURPLE_PLUGINS
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
33 #include <gplugin.h>
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
34 #include <gplugin-native.h>
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
35 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
36 #include <glib.h>
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
37 #include <glib-object.h>
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
38 #endif
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39
36450
ffa06ea2a4f8 Added PURPLE_ABI_VERSION macro to use for the "abi_version" property of PurplePluginInfo
Ankit Vani <a@nevitus.org>
parents: 36447
diff changeset
40 #include "version.h"
ffa06ea2a4f8 Added PURPLE_ABI_VERSION macro to use for the "abi_version" property of PurplePluginInfo
Ankit Vani <a@nevitus.org>
parents: 36447
diff changeset
41
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
42 #ifdef PURPLE_PLUGINS
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
43
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
44 #define PURPLE_TYPE_PLUGIN GPLUGIN_TYPE_PLUGIN
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
45 #define PURPLE_PLUGIN(obj) GPLUGIN_PLUGIN(obj)
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
46 #define PURPLE_PLUGIN_CLASS(klass) GPLUGIN_PLUGIN_CLASS(klass)
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
47 #define PURPLE_IS_PLUGIN(obj) GPLUGIN_IS_PLUGIN(obj)
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
48 #define PURPLE_IS_PLUGIN_CLASS(klass) GPLUGIN_IS_PLUGIN_CLASS(klass)
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
49 #define PURPLE_PLUGIN_GET_CLASS(obj) GPLUGIN_PLUGIN_GET_CLASS(obj)
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
50
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
51 /**
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
52 * Represents a plugin handle.
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
53 * This type is an alias for GPluginPlugin.
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
54 */
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
55 typedef GPluginPlugin PurplePlugin;
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
56
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
57 /**
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
58 * The base class for all #PurplePlugin's.
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
59 * This type is an alias for GPluginPluginClass.
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
60 */
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
61 typedef GPluginPluginClass PurplePluginClass;
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
62
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
63 #else /* !defined(PURPLE_PLUGINS) */
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
64
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
65 #define PURPLE_TYPE_PLUGIN G_TYPE_OBJECT
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
66 #define PURPLE_PLUGIN(obj) G_OBJECT(obj)
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
67 #define PURPLE_PLUGIN_CLASS(klass) G_OBJECT_CLASS(klass)
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
68 #define PURPLE_IS_PLUGIN(obj) G_IS_OBJECT(obj)
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
69 #define PURPLE_IS_PLUGIN_CLASS(klass) G_IS_OBJECT_CLASS(klass)
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
70 #define PURPLE_PLUGIN_GET_CLASS(obj) G_OBJECT_GET_CLASS(obj)
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
71
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
72 typedef GObject PurplePlugin;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
73 typedef GObjectClass PurplePluginClass;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
74
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
75 #endif /* PURPLE_PLUGINS */
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
76
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
77 #define PURPLE_TYPE_PLUGIN_INFO (purple_plugin_info_get_type())
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
78 #define PURPLE_PLUGIN_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PURPLE_TYPE_PLUGIN_INFO, PurplePluginInfo))
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
79 #define PURPLE_PLUGIN_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PURPLE_TYPE_PLUGIN_INFO, PurplePluginInfoClass))
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
80 #define PURPLE_IS_PLUGIN_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PURPLE_TYPE_PLUGIN_INFO))
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
81 #define PURPLE_IS_PLUGIN_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PURPLE_TYPE_PLUGIN_INFO))
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
82 #define PURPLE_PLUGIN_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PURPLE_TYPE_PLUGIN_INFO, PurplePluginInfoClass))
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34778
diff changeset
83
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
84 /** @copydoc _PurplePluginInfo */
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
85 typedef struct _PurplePluginInfo PurplePluginInfo;
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
86 /** @copydoc _PurplePluginInfoClass */
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
87 typedef struct _PurplePluginInfoClass PurplePluginInfoClass;
8749
fb487e9e101a [gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents: 8735
diff changeset
88
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
89 #define PURPLE_TYPE_PLUGIN_ACTION (purple_plugin_action_get_type())
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
90
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
91 /** @copydoc _PurplePluginAction */
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
92 typedef struct _PurplePluginAction PurplePluginAction;
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
93
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
94 #include "pluginpref.h"
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
95
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
96 typedef void (*PurplePluginActionCallback)(PurplePluginAction *);
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
97 typedef PurplePluginPrefFrame *(*PurplePluginPrefFrameCallback)(PurplePlugin *);
36364
4a5544383bc8 Refactored account to use the initial GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
98
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
99 /**
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
100 * Holds information about a plugin.
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
101 */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
102 struct _PurplePluginInfo {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
103 #ifdef PURPLE_PLUGINS
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
104 /*< private >*/
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
105 GPluginPluginInfo parent;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
106 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
107 /*< private >*/
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
108 GObject parent;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
109 #endif
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
110 };
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
111
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
112 /**
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
113 * PurplePluginInfoClass:
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
114 *
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
115 * The base class for all #PurplePluginInfo's.
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
116 */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
117 struct _PurplePluginInfoClass {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
118 #ifdef PURPLE_PLUGINS
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34801
diff changeset
119 /*< private >*/
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
120 GPluginPluginInfoClass parent_class;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
121 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
122 /*< private >*/
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
123 GObjectClass parent_class;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
124 #endif
16743
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
125
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_reserved1)(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_reserved2)(void);
1ce5ffe12e2a Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15884
diff changeset
128 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
129 void (*_purple_reserved4)(void);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
130 };
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
131
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
132 /**
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
133 * Represents an action that the plugin can perform. This shows up in the Tools
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
134 * menu, under a submenu with the name of the plugin.
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
135 */
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
136 struct _PurplePluginAction {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
137 char *label;
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
138 PurplePluginActionCallback callback;
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
139 PurplePlugin *plugin;
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
140 };
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
141
36458
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
142 /** Returns an ABI version to set in plugins using major and minor versions */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
143 #define PURPLE_PLUGIN_ABI_VERSION(major,minor) ((major << 16) + minor)
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
144 /** Returns the major version from an ABI version */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
145 #define PURPLE_PLUGIN_ABI_MAJOR_VERSION(abi) (abi >> 16)
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
146 /** Returns the minor version from an ABI version */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
147 #define PURPLE_PLUGIN_ABI_MINOR_VERSION(abi) (abi & 0xFFFF)
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
148
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
149 /**
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
150 * A convenience‎ macro that returns an ABI version using PURPLE_MAJOR_VERSION
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
151 * and PURPLE_MINOR_VERSION
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
152 */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
153 #define PURPLE_ABI_VERSION PURPLE_PLUGIN_ABI_VERSION(PURPLE_MAJOR_VERSION,\
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
154 PURPLE_MINOR_VERSION)
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
155
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
156 /**
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
157 * Handles the initialization of modules.
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
158 */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
159 #if !defined(PURPLE_PLUGINS) || defined(PURPLE_STATIC_PRPL)
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
160 #define PURPLE_PLUGIN_INIT(pluginname,pluginquery,pluginload,pluginunload) \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
161 PurplePluginInfo * pluginname##_plugin_query(void); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
162 PurplePluginInfo * pluginname##_plugin_query(void) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
163 return pluginquery(); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
164 } \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
165 gboolean pluginname##_plugin_load(void); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
166 gboolean pluginname##_plugin_load(void) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
167 return pluginload(NULL); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
168 } \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
169 gboolean pluginname##_plugin_unload(void); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
170 gboolean pluginname##_plugin_unload(void) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
171 return pluginunload(NULL); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
172 }
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
173 #else /* PURPLE_PLUGINS && !PURPLE_STATIC_PRPL */
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
174 #define PURPLE_PLUGIN_INIT(pluginname,pluginquery,pluginload,pluginunload) \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
175 G_MODULE_EXPORT GPluginPluginInfo *gplugin_plugin_query(void); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
176 G_MODULE_EXPORT GPluginPluginInfo *gplugin_plugin_query(void) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
177 return GPLUGIN_PLUGIN_INFO(pluginquery()); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
178 } \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
179 G_MODULE_EXPORT gboolean gplugin_plugin_load(GPluginNativePlugin *); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
180 G_MODULE_EXPORT gboolean gplugin_plugin_load(GPluginNativePlugin *p) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
181 return pluginload(PURPLE_PLUGIN(p)); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
182 } \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
183 G_MODULE_EXPORT gboolean gplugin_plugin_unload(GPluginNativePlugin *); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
184 G_MODULE_EXPORT gboolean gplugin_plugin_unload(GPluginNativePlugin *p) { \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
185 return pluginunload(PURPLE_PLUGIN(p)); \
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
186 }
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
187 #endif
a9cccad073e9 Static prpls now work. Added macro PURPLE_PLUGIN_INIT(plugin-name, query-func, load-func, unload-func).
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
188
32787
7072f190d6ad Use G_BEGIN/END_DECLS in public libpurple files. This was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32604
diff changeset
189 G_BEGIN_DECLS
5944
f19df037ac58 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5840
diff changeset
190
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
191 /**************************************************************************/
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
192 /** @name Plugin API */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
193 /**************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
194 /*@{*/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
195
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
196 /**
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
197 * Attempts to load a plugin.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
198 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
199 * @param plugin The plugin to load.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
200 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
201 * @return @c TRUE if successful, or @c FALSE otherwise.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
202 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
203 * @see purple_plugin_unload()
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
204 */
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
205 gboolean purple_plugin_load(PurplePlugin *plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
206
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
207 /**
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
208 * Unloads the specified plugin.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
209 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
210 * @param plugin The plugin handle.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
211 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
212 * @return @c TRUE if successful, or @c FALSE otherwise.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
213 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
214 * @see purple_plugin_load()
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
215 */
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
216 gboolean purple_plugin_unload(PurplePlugin *plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
217
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
218 /**
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
219 * Returns whether or not a plugin is currently loaded.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
220 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
221 * @param plugin The plugin.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
222 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
223 * @return @c TRUE if loaded, or @c FALSE otherwise.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
224 */
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
225 gboolean purple_plugin_is_loaded(const PurplePlugin *plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
226
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
227 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
228 * Returns a plugin's filename, along with the path.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
229 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
230 * @param info The plugin.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
231 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
232 * @return The plugin's filename.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
233 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
234 const gchar *purple_plugin_get_filename(const PurplePlugin *plugin);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
235
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
236 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
237 * Returns a plugin's #PurplePluginInfo instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
238 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
239 * @param info The plugin.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
240 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
241 * @return The plugin's #PurplePluginInfo instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
242 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
243 PurplePluginInfo *purple_plugin_get_info(const PurplePlugin *plugin);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
244
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
245 /**
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
246 * Disable a plugin.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
247 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
248 * This function adds the plugin to a list of plugins to "disable at the next
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
249 * startup" by excluding said plugins from the list of plugins to save. The
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
250 * UI needs to call purple_plugins_save_loaded() after calling this for it
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
251 * to have any effect.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
252 */
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
253 void purple_plugin_disable(PurplePlugin *plugin);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
254
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
255 /**
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
256 * Registers a new dynamic type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
257 *
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
258 * @param plugin The plugin that is registering the type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
259 * @param parent Type from which this type will be derived.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
260 * @param name Name of the new type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
261 * @param info Information to initialize and destroy a type's classes and
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
262 * instances.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
263 * @param flags Bitwise combination of values that determines the nature
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
264 * (e.g. abstract or not) of the type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
265 *
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
266 * @return The new GType, or @c G_TYPE_INVALID if registration failed.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
267 */
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
268 GType purple_plugin_register_type(PurplePlugin *plugin, GType parent,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
269 const gchar *name, const GTypeInfo *info,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
270 GTypeFlags flags);
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
271
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
272 /**
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
273 * Adds a dynamic interface type to an instantiable type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
274 *
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
275 * @param plugin The plugin that is adding the interface type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
276 * @param instance_type The GType of the instantiable type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
277 * @param interface_type The GType of the interface type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
278 * @param interface_info Information used to manage the interface type.
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
279 */
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
280 void purple_plugin_add_interface(PurplePlugin *plugin, GType instance_type,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
281 GType interface_type,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
282 const GInterfaceInfo *interface_info);
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
283
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36458
diff changeset
284 /**
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
285 * Adds a new action to a plugin.
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
286 *
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
287 * @param plugin The plugin to add the action to.
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
288 * @param label The description of the action to show to the user.
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
289 * @param callback The callback to call when the user selects this action.
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
290 */
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
291 void purple_plugin_add_action(PurplePlugin *plugin, const char* label,
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
292 PurplePluginActionCallback callback);
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
293
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
294 /**
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
295 * Returns a list of actions that a plugin can perform.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
296 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
297 * @param plugin The plugin to get the actions from.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
298 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
299 * @constreturn A list of #PurplePluginAction instances corresponding to the
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
300 * actions a plugin can perform.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
301 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
302 * @see purple_plugin_add_action()
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
303 */
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
304 GList *purple_plugin_get_actions(const PurplePlugin *plugin);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
305
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
306 /**
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
307 * Returns whether or not a plugin is loadable.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
308 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
309 * If this returns @c FALSE, the plugin is guaranteed to not
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
310 * be loadable. However, a return value of @c TRUE does not
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
311 * guarantee the plugin is loadable.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
312 * An error is set if the plugin is not loadable.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
313 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
314 * @param plugin The plugin.
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
315 *
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
316 * @return @c TRUE if the plugin may be loadable, @c FALSE if the plugin is not
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
317 * loadable.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
318 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
319 * @see purple_plugin_get_error()
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
320 */
36439
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
321 gboolean purple_plugin_is_loadable(const PurplePlugin *plugin);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
322
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
323 /**
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
324 * If a plugin is not loadable, this returns the reason.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
325 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
326 * @param plugin The plugin.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
327 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
328 * @return The reason why the plugin is not loadable.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
329 */
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
330 gchar *purple_plugin_get_error(const PurplePlugin *plugin);
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
331
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
332 /**
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
333 * Returns a list of plugins that depend on a particular plugin.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
334 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
335 * @param plugin The plugin whose dependent plugins are returned.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
336 *
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
337 * @constreturn The list of a plugins that depend on the specified plugin.
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
338 */
7f8921ef1bfc Moved PurplePluginInfo's get_actions(), is_loadable(), get_error(), get_dependent_plugins() API to PurplePlugin
Ankit Vani <a@nevitus.org>
parents: 36437
diff changeset
339 GSList *purple_plugin_get_dependent_plugins(const PurplePlugin *plugin);
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
340
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
341 /*@}*/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
342
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
343 /**************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
344 /** @name PluginInfo API */
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
345 /**************************************************************************/
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346 /*@{*/
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
347
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
348 /**
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
349 * Returns the GType for the PurplePluginInfo object.
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34778
diff changeset
350 */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
351 GType purple_plugin_info_get_type(void);
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34778
diff changeset
352
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
353 /**
36446
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
354 * Creates a new #PurplePluginInfo instance to be returned from
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
355 * gplugin_plugin_query() of a plugin, using the provided name/value pairs.
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
356 *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
357 * All properties except "id" are optional.
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
358 *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
359 * Valid property names are: \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
360 * "id" (string) The ID of the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
361 * "name" (string) The name of the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
362 * "version" (string) Version of the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
363 * "category" (string) Primary category of the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
364 * "summary" (string) Summary of the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
365 * "description" (string) Description of the plugin \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
366 * "author" (string) Author of the plugin \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
367 * "website" (string) Website of the plugin \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
368 * "icon" (string) Path to a plugin's icon \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
369 * "license" (string) The plugin's license \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
370 * "abi_version" (guint32) The required ABI version for the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
371 * "dependencies" (GSList) List of plugin IDs required by the plugin. \n
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
372 * "preferences_frame" (PurplePluginPrefFrameCallback) Callback that returns
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
373 * a preferences frame for the plugin.
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
374 *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
375 * @param first_property The first property name
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
376 * @param ... The value of the first property, followed optionally by more
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
377 * name/value pairs, followed by @c NULL
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
378 *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
379 * @return A new #PurplePluginInfo instance.
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
380 *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
381 * @see PURPLE_PLUGIN_ABI_VERSION
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
382 * @see @ref plugin-ids
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
383 */
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
384 PurplePluginInfo *purple_plugin_info_new(const char *first_property, ...);
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
385
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
386 /**
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
387 * Returns a plugin's ID.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
388 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
389 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
390 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
391 * @return The plugin's ID.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
392 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
393 const gchar *purple_plugin_info_get_id(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
394
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
395 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
396 * Returns a plugin's name.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
397 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
398 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
399 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
400 * @return The name of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
401 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
402 const gchar *purple_plugin_info_get_name(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
403
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
404 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
405 * Returns a plugin's version.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
406 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
407 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
408 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
409 * @return The version of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
410 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
411 const gchar *purple_plugin_info_get_version(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
412
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
413 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
414 * Returns a plugin's primary category.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
415 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
416 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
417 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
418 * @return The primary category of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
419 */
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
420 const gchar *purple_plugin_info_get_category(const PurplePluginInfo *info);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
421
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
422 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
423 * Returns a plugin's summary.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
424 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
425 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
426 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
427 * @return The summary of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
428 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
429 const gchar *purple_plugin_info_get_summary(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
430
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
431 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
432 * Returns a plugin's description.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
433 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
434 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
435 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
436 * @return The description of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
437 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
438 const gchar *purple_plugin_info_get_description(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
439
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
440 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
441 * Returns a plugin's author.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
442 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
443 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
444 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
445 * @return The author of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
446 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
447 const gchar *purple_plugin_info_get_author(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
448
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
449 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
450 * Returns a plugin's website.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
451 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
452 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
453 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
454 * @return The website of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
455 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
456 const gchar *purple_plugin_info_get_website(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
457
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
458 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
459 * Returns the path to a plugin's icon.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
460 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
461 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
462 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
463 * @return The path to the plugin's icon, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
464 */
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
465 const gchar *purple_plugin_info_get_icon(const PurplePluginInfo *info);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
466
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
467 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
468 * Returns a plugin's license.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
469 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
470 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
471 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
472 * @return The license of the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
473 */
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
474 const gchar *purple_plugin_info_get_license(const PurplePluginInfo *info);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
475
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
476 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
477 * Returns the required ABI version for a plugin.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
478 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
479 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
480 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
481 * @return The required ABI version for the plugin, or @c NULL.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
482 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
483 guint32 purple_plugin_info_get_abi_version(const PurplePluginInfo *info);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
484
36389
8d86658a3b68 Added 'plugin' field to PurplePluginAction. Added purple_plugin_info_get_actions().
Ankit Vani <a@nevitus.org>
parents: 36387
diff changeset
485 /**
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
486 * Returns a list of plugins that a particular plugin depends on.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
487 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
488 * @param info The plugin's info instance.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
489 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
490 * @constreturn The list of dependencies of a plugin.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
491 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
492 GSList *purple_plugin_info_get_dependencies(const PurplePluginInfo *info);
36412
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
493
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
494 /**
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
495 * Returns the callback that retrieves the preferences frame for a plugin.
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
496 *
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
497 * @param info The plugin info to get the callback from.
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
498 *
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
499 * @return The callback that returns the preferences frame.
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
500 */
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
501 PurplePluginPrefFrameCallback
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
502 purple_plugin_info_get_pref_frame_callback(const PurplePluginInfo *info);
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36392
diff changeset
503
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
504 /*@}*/
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
505
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
506 /**************************************************************************/
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
507 /** @name PluginAction API */
36386
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
508 /**************************************************************************/
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
509 /*@{*/
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
510
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
511 /**
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
512 * Returns the GType for the PurplePluginAction boxed structure.
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
513 */
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
514 GType purple_plugin_action_get_type(void);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
515
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
516 /*@}*/
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
517
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36377
diff changeset
518 /**************************************************************************/
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
519 /** @name Plugins API */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
520 /**************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
521 /*@{*/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
522
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
523 /**
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
524 * Returns a list of all plugins, whether loaded or not.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
525 *
36461
e769bd450874 Add a note in the documentation for purple_plugins_find_all() that the list is owned by caller
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
526 * @return A list of all plugins. The list is owned by the caller, and must be
e769bd450874 Add a note in the documentation for purple_plugins_find_all() that the list is owned by caller
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
527 * g_list_free()d to avoid leaking the nodes.
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
528 */
36400
2ccd829171ec Renamed purple_plugins_get_all() to purple_plugins_find_all() since the list is generated.
Ankit Vani <a@nevitus.org>
parents: 36399
diff changeset
529 GList *purple_plugins_find_all(void);
2ccd829171ec Renamed purple_plugins_get_all() to purple_plugins_find_all() since the list is generated.
Ankit Vani <a@nevitus.org>
parents: 36399
diff changeset
530
2ccd829171ec Renamed purple_plugins_get_all() to purple_plugins_find_all() since the list is generated.
Ankit Vani <a@nevitus.org>
parents: 36399
diff changeset
531 /**
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
532 * Returns a list of all loaded plugins.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
533 *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
534 * @constreturn A list of all loaded plugins.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
535 */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
536 GList *purple_plugins_get_loaded(void);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
537
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
538 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
539 * Add a new directory to search for plugins
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
540 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
541 * @param path The new search path.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
542 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
543 void purple_plugins_add_search_path(const gchar *path);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
544
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
545 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
546 * Forces a refresh of all plugins found in the search paths.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
547 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
548 * @see purple_plugins_add_search_path()
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
549 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
550 void purple_plugins_refresh(void);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
551
36436
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
552 /**
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
553 * Finds a plugin with the specified plugin ID.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
554 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
555 * @param id The plugin ID.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
556 *
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
557 * @return The plugin if found, or @c NULL if not found.
28bd31dc7287 Added documentation for all functions
Ankit Vani <a@nevitus.org>
parents: 36435
diff changeset
558 */
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
559 PurplePlugin *purple_plugins_find_plugin(const gchar *id);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
560
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
561 /**
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
562 * Finds a plugin with the specified filename (filename with a path).
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
563 *
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
564 * @param filename The plugin filename.
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
565 *
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
566 * @return The plugin if found, or @c NULL if not found.
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
567 */
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
568 PurplePlugin *purple_plugins_find_by_filename(const char *filename);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
569
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36398
diff changeset
570 /**
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
571 * Saves the list of loaded plugins to the specified preference key
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
572 *
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
573 * @param key The preference key to save the list of plugins to.
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
574 */
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
575 void purple_plugins_save_loaded(const char *key);
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
576
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
577 /**
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
578 * Attempts to load all the plugins in the specified preference key
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
579 * that were loaded when purple last quit.
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
580 *
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
581 * @param key The preference key containing the list of plugins.
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
582 */
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
583 void purple_plugins_load_saved(const char *key);
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
584
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
585 /**
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
586 * Unloads all loaded plugins.
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
587 */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
588 void purple_plugins_unload_all(void);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
589
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
590 /*@}*/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
591
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
592 /**************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
593 /** @name Plugins Subsystem API */
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
594 /**************************************************************************/
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
595 /*@{*/
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
596
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
597 /**
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
598 * Returns the plugin subsystem handle.
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
599 *
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
600 * @return The plugin sybsystem handle.
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
601 */
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
602 void *purple_plugins_get_handle(void);
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
603
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
604 /**
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
605 * Initializes the plugin subsystem
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
606 */
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
607 void purple_plugins_init(void);
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
608
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
609 /**
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
610 * Uninitializes the plugin subsystem
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
611 */
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
612 void purple_plugins_uninit(void);
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
613
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
614 /*@}*/
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36364
diff changeset
615
32787
7072f190d6ad Use G_BEGIN/END_DECLS in public libpurple files. This was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32604
diff changeset
616 G_END_DECLS
5944
f19df037ac58 [gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents: 5840
diff changeset
617
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
618 #endif /* _PURPLE_PLUGINS_H_ */

mercurial