libpurple/plugins.c

Sat, 09 May 2015 10:01:27 +0200

author
Tomasz Wasilczyk <twasilczyk@pidgin.im>
date
Sat, 09 May 2015 10:01:27 +0200
changeset 37178
b6865740b29c
parent 37146
b5b9c75a4b54
child 37495
f28a27411235
permissions
-rw-r--r--

Fix tests built on Fedora

5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /*
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15523
diff changeset
2 * purple
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15523
diff changeset
4 * Purple is the legal property of its developers, whose names are too numerous
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 7956
diff changeset
6 * source distribution.
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 * 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
10 * the Free Software Foundation; either version 2 of the License, or
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * (at your option) any later version.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * GNU General Public License for more details.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * 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: 18889
diff changeset
20 * 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
21 */
36372
5a1fe926f37b Fixed build errors for plugins.c, and used gplugin_plugin_manager_free_plugin_list()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
22 #include "internal.h"
5a1fe926f37b Fixed build errors for plugins.c, and used gplugin_plugin_manager_free_plugin_list()
Ankit Vani <a@nevitus.org>
parents: 36370
diff changeset
23
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
24 #include "core.h"
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
25 #include "debug.h"
36615
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
26 #include "dbus-maybe.h"
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
27 #include "enums.h"
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
28 #include "plugins.h"
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
30 #define PURPLE_PLUGIN_INFO_GET_PRIVATE(obj) \
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
31 (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_PLUGIN_INFO, PurplePluginInfoPrivate))
6822
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
32
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
33 typedef struct _PurplePluginInfoPrivate PurplePluginInfoPrivate;
6822
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
34
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
35 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
36 * Plugin info private data
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
37 **************************************************************************/
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
38 struct _PurplePluginInfoPrivate {
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
39 char *ui_requirement; /* ID of UI that is required to load the plugin */
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
40 char *error; /* Why a plugin is not loadable */
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
41
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
42 PurplePluginInfoFlags flags; /* Flags for the plugin */
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
43
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
44 /* Callback that returns a list of actions the plugin can perform */
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
45 PurplePluginActionsCb actions_cb;
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
46
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
47 /* Callback that returns extra information about a plugin */
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
48 PurplePluginExtraCb extra_cb;
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
49
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
50 /* Callback that returns a preferences frame for a plugin */
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
51 PurplePluginPrefFrameCb pref_frame_cb;
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
52
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
53 /* Callback that returns a preferences request handle for a plugin */
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
54 PurplePluginPrefRequestCb pref_request_cb;
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
55
37071
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
56 /* TRUE if a plugin has been unloaded at least once. Auto-load
3ebf3bb2d317 Merge gtkdoc-conversion
Ankit Vani <a@nevitus.org>
parents: 35462 37008
diff changeset
57 * plugins that have been unloaded once will not be auto-loaded again. */
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
58 gboolean unloaded;
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
59 };
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
61 enum
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
62 {
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
63 PROP_0,
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
64 PROP_UI_REQUIREMENT,
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
65 PROP_ACTIONS_CB,
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
66 PROP_EXTRA_CB,
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
67 PROP_PREF_FRAME_CB,
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
68 PROP_PREF_REQUEST_CB,
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
69 PROP_FLAGS,
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
70 PROP_LAST
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
71 };
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
73 static GObjectClass *parent_class;
10682
c293ad49121e [gaim-migrate @ 12228]
Richard Laager <rlaager@pidgin.im>
parents: 10504
diff changeset
74
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
75 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
76 * Globals
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
77 **************************************************************************/
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
78 #ifdef PURPLE_PLUGINS
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
79 static GList *loaded_plugins = NULL;
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
80 static GList *plugins_to_disable = NULL;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
81 #endif
10682
c293ad49121e [gaim-migrate @ 12228]
Richard Laager <rlaager@pidgin.im>
parents: 10504
diff changeset
82
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
83 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
84 * Plugin API
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
85 **************************************************************************/
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
86 #ifdef PURPLE_PLUGINS
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
87 static gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
88 plugin_loading_cb(GObject *manager, PurplePlugin *plugin, GError **error,
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
89 gpointer data)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
90 {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
91 PurplePluginInfo *info;
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
92 PurplePluginInfoPrivate *priv;
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
93
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
94 g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
95
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
96 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
97 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
98 return TRUE; /* a GPlugin internal plugin */
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
99
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
100 priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
101
36513
e7b9735ffdb9 Removed unnecessary variable 'loadable'
Ankit Vani <a@nevitus.org>
parents: 36511
diff changeset
102 if (priv->error) {
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
103 purple_debug_error("plugins", "Failed to load plugin %s: %s",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
104 purple_plugin_get_filename(plugin), priv->error);
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
105
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
106 g_set_error(error, PURPLE_PLUGINS_DOMAIN, 0,
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
107 "Plugin is not loadable: %s", priv->error);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
108
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
109 return FALSE;
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
110 }
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
111
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
112 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
113 }
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
114
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
115 static void
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
116 plugin_loaded_cb(GObject *manager, PurplePlugin *plugin)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
117 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
118 PurplePluginInfo *info;
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
119
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
120 g_return_if_fail(PURPLE_IS_PLUGIN(plugin));
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
121
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
122 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
123 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
124 return; /* a GPlugin internal plugin */
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
125
37008
9dca610b3bf2 Prepend newly-loaded plugins to the loaded list
Ankit Vani <a@nevitus.org>
parents: 37001
diff changeset
126 loaded_plugins = g_list_prepend(loaded_plugins, plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
127
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
128 purple_debug_info("plugins", "Loaded plugin %s\n",
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
129 purple_plugin_get_filename(plugin));
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
130
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
131 purple_signal_emit(purple_plugins_get_handle(), "plugin-load", plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
132 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
133
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
134 static gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
135 plugin_unloading_cb(GObject *manager, PurplePlugin *plugin, GError **error,
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
136 gpointer data)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
137 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
138 PurplePluginInfo *info;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
139
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
140 g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
141
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
142 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
143 if (info) {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
144 purple_debug_info("plugins", "Unloading plugin %s\n",
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
145 purple_plugin_get_filename(plugin));
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
146 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
147
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
148 return TRUE;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
149 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
150
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
151 static void
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
152 plugin_unloaded_cb(GObject *manager, PurplePlugin *plugin)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
153 {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
154 PurplePluginInfo *info;
36469
304912384a5c Free actions on plugin unload, and updated documentation
Ankit Vani <a@nevitus.org>
parents: 36468
diff changeset
155 PurplePluginInfoPrivate *priv;
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
156
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
157 g_return_if_fail(PURPLE_IS_PLUGIN(plugin));
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
158
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
159 info = purple_plugin_get_info(plugin);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
160 if (!info)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
161 return; /* a GPlugin internal plugin */
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
162
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
163 priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
164
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
165 /* cancel any pending dialogs the plugin has */
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
166 purple_request_close_with_handle(plugin);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
167 purple_notify_close_with_handle(plugin);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
168
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
169 purple_signals_disconnect_by_handle(plugin);
36527
016e4be6f3da Unregister signals on plugin unload and protocol removal
Ankit Vani <a@nevitus.org>
parents: 36515
diff changeset
170 purple_signals_unregister_by_instance(plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
171
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
172 priv->unloaded = TRUE;
36469
304912384a5c Free actions on plugin unload, and updated documentation
Ankit Vani <a@nevitus.org>
parents: 36468
diff changeset
173
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
174 loaded_plugins = g_list_remove(loaded_plugins, plugin);
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
175 plugins_to_disable = g_list_remove(plugins_to_disable, plugin);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
176
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
177 purple_signal_emit(purple_plugins_get_handle(), "plugin-unload", plugin);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
178
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
179 purple_prefs_disconnect_by_handle(plugin);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
180 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
181 #endif /* PURPLE_PLUGINS */
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
182
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
183 gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
184 purple_plugin_load(PurplePlugin *plugin, GError **error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
185 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
186 #ifdef PURPLE_PLUGINS
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
187 GError *err = NULL;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
188
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
189 g_return_val_if_fail(plugin != NULL, FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
190
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
191 if (purple_plugin_is_loaded(plugin))
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
192 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
193
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
194 if (!gplugin_manager_load_plugin(plugin, &err)) {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
195 purple_debug_error("plugins", "Failed to load plugin %s: %s",
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
196 purple_plugin_get_filename(plugin),
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
197 (err ? err->message : "Unknown reason"));
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
198
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
199 if (error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
200 *error = g_error_copy(err);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
201 g_error_free(err);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
202
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
203 return FALSE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
204 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
205
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
206 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
207
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
208 #else
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
209 g_set_error(error, PURPLE_PLUGINS_DOMAIN, 0, "Plugin support is disabled.");
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
210 return FALSE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
211 #endif /* PURPLE_PLUGINS */
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
212 }
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
213
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
214 gboolean
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
215 purple_plugin_unload(PurplePlugin *plugin, GError **error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
216 {
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
217 #ifdef PURPLE_PLUGINS
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
218 GError *err = NULL;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
219
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
220 g_return_val_if_fail(plugin != NULL, FALSE);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
221
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
222 if (!purple_plugin_is_loaded(plugin))
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
223 return TRUE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
224
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
225 if (!gplugin_manager_unload_plugin(plugin, &err)) {
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
226 purple_debug_error("plugins", "Failed to unload plugin %s: %s",
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
227 purple_plugin_get_filename(plugin),
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
228 (err ? err->message : "Unknown reason"));
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
229
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
230 if (error)
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
231 *error = g_error_copy(err);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
232 g_error_free(err);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
233
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
234 return FALSE;
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
235 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
236
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
237 return TRUE;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
238
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
239 #else
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
240 g_set_error(error, PURPLE_PLUGINS_DOMAIN, 0, "Plugin support is disabled.");
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
241 return FALSE;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
242 #endif /* PURPLE_PLUGINS */
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
243 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
244
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
245 gboolean
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
246 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
247 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
248 #ifdef PURPLE_PLUGINS
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
249 g_return_val_if_fail(plugin != NULL, FALSE);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
250
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
251 return (gplugin_plugin_get_state(plugin) == GPLUGIN_PLUGIN_STATE_LOADED);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
252
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
253 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
254 return FALSE;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
255 #endif
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
256 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
257
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
258 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
259 purple_plugin_get_filename(const PurplePlugin *plugin)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
260 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
261 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
262 g_return_val_if_fail(plugin != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
263
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
264 return gplugin_plugin_get_filename(plugin);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
265
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
266 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
267 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
268 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
269 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
270
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
271 PurplePluginInfo *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
272 purple_plugin_get_info(const PurplePlugin *plugin)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
273 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
274 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
275 GPluginPluginInfo *info;
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
276
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
277 g_return_val_if_fail(plugin != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
278
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
279 info = gplugin_plugin_get_info(plugin);
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
280
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
281 /* GPlugin refs the plugin info object before returning it. This workaround
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
282 * is to avoid managing the reference counts everywhere in our codebase
37001
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
283 * where we use the plugin info. The plugin info instance is guaranteed to
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
284 * exist as long as the plugin exists. */
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
285 g_object_unref(info);
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
286
36654
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
287 if (PURPLE_IS_PLUGIN_INFO(info))
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
288 return PURPLE_PLUGIN_INFO(info);
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
289 else
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
290 return NULL;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
291 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
292 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
293 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
294 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
295
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
296 void
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
297 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
298 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
299 #ifdef PURPLE_PLUGINS
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
300 g_return_if_fail(plugin != NULL);
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 if (!g_list_find(plugins_to_disable, 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
303 plugins_to_disable = g_list_prepend(plugins_to_disable, plugin);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
304 #endif
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
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
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
307 GType
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
308 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: 36456
diff changeset
309 const gchar *name, const GTypeInfo *info,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
310 GTypeFlags flags)
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
311 {
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
312 #ifdef PURPLE_PLUGINS
36809
2ce8046ba0bc Check if a plugin is native before registering new types for it
Ankit Vani <a@nevitus.org>
parents: 36806
diff changeset
313 g_return_val_if_fail(GPLUGIN_IS_NATIVE_PLUGIN(plugin), G_TYPE_INVALID);
2ce8046ba0bc Check if a plugin is native before registering new types for it
Ankit Vani <a@nevitus.org>
parents: 36806
diff changeset
314
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
315 return gplugin_native_plugin_register_type(GPLUGIN_NATIVE_PLUGIN(plugin),
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
316 parent, name, info, flags);
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
317
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
318 #else
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
319 return G_TYPE_INVALID;
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
320 #endif
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
321 }
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
322
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
323 void
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
324 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: 36456
diff changeset
325 GType interface_type,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
326 const GInterfaceInfo *interface_info)
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
327 {
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
328 #ifdef PURPLE_PLUGINS
36809
2ce8046ba0bc Check if a plugin is native before registering new types for it
Ankit Vani <a@nevitus.org>
parents: 36806
diff changeset
329 g_return_if_fail(GPLUGIN_IS_NATIVE_PLUGIN(plugin));
2ce8046ba0bc Check if a plugin is native before registering new types for it
Ankit Vani <a@nevitus.org>
parents: 36806
diff changeset
330
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
331 gplugin_native_plugin_add_interface(GPLUGIN_NATIVE_PLUGIN(plugin),
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
332 instance_type, interface_type,
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
333 interface_info);
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
334 #endif
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
335 }
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
336
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
337 gboolean
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
338 purple_plugin_is_internal(const PurplePlugin *plugin)
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
339 {
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
340 PurplePluginInfo *info;
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
341
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
342 g_return_val_if_fail(plugin != NULL, FALSE);
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
343
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
344 info = purple_plugin_get_info(plugin);
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
345 if (!info)
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
346 return TRUE;
36472
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
347
36654
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
348 return (purple_plugin_info_get_flags(info) &
61014b39bac3 Removed an unnecessary call to gplugin
Ankit Vani <a@nevitus.org>
parents: 36653
diff changeset
349 PURPLE_PLUGIN_INFO_FLAGS_INTERNAL);
36467
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
350 }
52aa83c47311 Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents: 36463
diff changeset
351
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
352 GSList *
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
353 purple_plugin_get_dependent_plugins(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
354 {
36986
2326ab164e3a Add reminders to display perl and tcl status in gtkdialog when API available
Ankit Vani <a@nevitus.org>
parents: 36976
diff changeset
355 #warning TODO: Implement this when GPlugin can return dependent plugins.
2326ab164e3a Add reminders to display perl and tcl status in gtkdialog when API available
Ankit Vani <a@nevitus.org>
parents: 36976
diff changeset
356
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
357 #ifdef PURPLE_PLUGINS
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
358 return NULL;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
359 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
360 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
361 #endif
36397
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
362 }
4ae45b445bb9 Added purple_plugin_disable()
Ankit Vani <a@nevitus.org>
parents: 36396
diff changeset
363
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
364 /**************************************************************************
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
365 * GObject code for PurplePluginInfo
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
366 **************************************************************************/
36615
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
367 /* GObject initialization function */
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
368 static void
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
369 purple_plugin_info_init(GTypeInstance *instance, gpointer klass)
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
370 {
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
371 PURPLE_DBUS_REGISTER_POINTER(PURPLE_PLUGIN_INFO(instance), PurplePluginInfo);
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
372 }
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
373
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
374 /* Set method for GObject properties */
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
375 static void
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
376 purple_plugin_info_set_property(GObject *obj, guint param_id, const GValue *value,
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
377 GParamSpec *pspec)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
378 {
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
379 PurplePluginInfo *info = PURPLE_PLUGIN_INFO(obj);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
380 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
381
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
382 switch (param_id) {
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
383 case PROP_UI_REQUIREMENT:
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
384 priv->ui_requirement = g_strdup(g_value_get_string(value));
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
385 break;
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
386 case PROP_ACTIONS_CB:
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
387 priv->actions_cb = g_value_get_pointer(value);
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
388 break;
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
389 case PROP_EXTRA_CB:
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
390 priv->extra_cb = g_value_get_pointer(value);
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
391 break;
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
392 case PROP_PREF_FRAME_CB:
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
393 priv->pref_frame_cb = g_value_get_pointer(value);
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
394 break;
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
395 case PROP_PREF_REQUEST_CB:
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
396 priv->pref_request_cb = g_value_get_pointer(value);
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
397 break;
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
398 case PROP_FLAGS:
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
399 priv->flags = g_value_get_flags(value);
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
400 break;
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
401 default:
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
402 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
403 break;
7956
21d891f33b89 [gaim-migrate @ 8631]
Nathan Walp <nwalp@pidgin.im>
parents: 7279
diff changeset
404 }
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
405 }
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
406
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
407 /* Get method for GObject properties */
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
408 static void
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
409 purple_plugin_info_get_property(GObject *obj, guint param_id, GValue *value,
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
410 GParamSpec *pspec)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
411 {
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
412 PurplePluginInfo *info = PURPLE_PLUGIN_INFO(obj);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
413
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
414 switch (param_id) {
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
415 case PROP_ACTIONS_CB:
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
416 g_value_set_pointer(value,
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
417 purple_plugin_info_get_actions_cb(info));
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
418 break;
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
419 case PROP_EXTRA_CB:
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
420 g_value_set_pointer(value,
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
421 purple_plugin_info_get_extra_cb(info));
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
422 break;
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
423 case PROP_PREF_FRAME_CB:
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
424 g_value_set_pointer(value,
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
425 purple_plugin_info_get_pref_frame_cb(info));
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
426 break;
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
427 case PROP_PREF_REQUEST_CB:
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
428 g_value_set_pointer(value,
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
429 purple_plugin_info_get_pref_request_cb(info));
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
430 break;
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
431 case PROP_FLAGS:
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
432 g_value_set_flags(value, purple_plugin_info_get_flags(info));
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
433 break;
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
434 default:
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
435 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
436 break;
6822
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
437 }
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
438 }
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
439
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
440 /* Called when done constructing */
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
441 static void
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
442 purple_plugin_info_constructed(GObject *object)
6822
4adcde13ad17 [gaim-migrate @ 7366]
Christian Hammond <chipx86@chipx86.com>
parents: 6639
diff changeset
443 {
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
444 PurplePluginInfo *info = PURPLE_PLUGIN_INFO(object);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
445 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
446 const char *id = purple_plugin_info_get_id(info);
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
447 guint32 version;
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
448
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
449 parent_class->constructed(object);
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
450
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
451 if (id == NULL || *id == '\0')
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
452 priv->error = g_strdup(_("This plugin has not defined an ID."));
10479
e9165b73e60b [gaim-migrate @ 11766]
Nathan Walp <nwalp@pidgin.im>
parents: 10464
diff changeset
453
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
454 if (priv->ui_requirement && !purple_strequal(priv->ui_requirement, purple_core_get_ui()))
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
455 {
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
456 priv->error = g_strdup_printf(_("You are using %s, but this plugin requires %s."),
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
457 purple_core_get_ui(), priv->ui_requirement);
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
458 purple_debug_error("plugins", "%s is not loadable: The UI requirement is not met. (%s)\n",
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
459 id, priv->error);
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
460 }
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
461
36482
fbddfc86848d Renamed purple-version to purple-abi. Removed abi-version from docs
Ankit Vani <a@nevitus.org>
parents: 36481
diff changeset
462 version = purple_plugin_info_get_abi_version(info);
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
463 if (PURPLE_PLUGIN_ABI_MAJOR_VERSION(version) != PURPLE_MAJOR_VERSION ||
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
464 PURPLE_PLUGIN_ABI_MINOR_VERSION(version) > PURPLE_MINOR_VERSION)
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
465 {
36514
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
466 priv->error = g_strdup_printf(_("Your libpurple version is %d.%d.x (need %d.%d.x)"),
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
467 PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION,
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
468 PURPLE_PLUGIN_ABI_MAJOR_VERSION(version),
36514
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
469 PURPLE_PLUGIN_ABI_MINOR_VERSION(version));
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
470 purple_debug_error("plugins", "%s is not loadable: libpurple version is %d.%d.x (need %d.%d.x)\n",
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
471 id, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION,
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
472 PURPLE_PLUGIN_ABI_MAJOR_VERSION(version),
2a9bbadc255c Better wording for ABI mismatch error
Ankit Vani <a@nevitus.org>
parents: 36513
diff changeset
473 PURPLE_PLUGIN_ABI_MINOR_VERSION(version));
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
474 }
5838
1e45da0f16db [gaim-migrate @ 6269]
Nathan Walp <nwalp@pidgin.im>
parents: 5794
diff changeset
475 }
1e45da0f16db [gaim-migrate @ 6269]
Nathan Walp <nwalp@pidgin.im>
parents: 5794
diff changeset
476
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
477 /* GObject finalize function */
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
478 static void
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
479 purple_plugin_info_finalize(GObject *object)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
480 {
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: 36383
diff changeset
481 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(object);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
482
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
483 g_free(priv->ui_requirement);
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
484 g_free(priv->error);
b57d4ad74b55 Added purple_plugin_info_is_loadable(), UI requirement, error and PURPLE_ABI_VERSION_* macros
Ankit Vani <a@nevitus.org>
parents: 36402
diff changeset
485
36847
58597c72e6ac Moved dispose() code from PurplePluginInfo and PurpleProtocol to finalize()
Ankit Vani <a@nevitus.org>
parents: 36810
diff changeset
486 PURPLE_DBUS_UNREGISTER_POINTER(object);
58597c72e6ac Moved dispose() code from PurplePluginInfo and PurpleProtocol to finalize()
Ankit Vani <a@nevitus.org>
parents: 36810
diff changeset
487
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
488 parent_class->finalize(object);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
489 }
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
490
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
491 /* Class initializer function */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
492 static void purple_plugin_info_class_init(PurplePluginInfoClass *klass)
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
493 {
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
494 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
8749
fb487e9e101a [gaim-migrate @ 9504]
Christian Hammond <chipx86@chipx86.com>
parents: 8046
diff changeset
495
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
496 parent_class = g_type_class_peek_parent(klass);
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
497
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
498 g_type_class_add_private(klass, sizeof(PurplePluginInfoPrivate));
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
499
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
500 obj_class->constructed = purple_plugin_info_constructed;
36615
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
501 obj_class->finalize = purple_plugin_info_finalize;
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
502
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
503 /* Setup properties */
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
504 obj_class->get_property = purple_plugin_info_get_property;
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
505 obj_class->set_property = purple_plugin_info_set_property;
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
506
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
507 g_object_class_install_property(obj_class, PROP_UI_REQUIREMENT,
36871
8da5914b107a Removed GObject property name defines
Ankit Vani <a@nevitus.org>
parents: 36869
diff changeset
508 g_param_spec_string("ui-requirement",
36949
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
509 "UI Requirement",
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
510 "ID of UI that is required by this plugin", NULL,
36954
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
511 G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
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
512
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
513 g_object_class_install_property(obj_class, PROP_ACTIONS_CB,
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
514 g_param_spec_pointer("actions-cb",
36949
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
515 "Plugin actions",
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
516 "Callback that returns list of plugin's actions",
36954
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
517 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
518 G_PARAM_STATIC_STRINGS));
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
519
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
520 g_object_class_install_property(obj_class, PROP_EXTRA_CB,
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
521 g_param_spec_pointer("extra-cb",
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
522 "Extra info callback",
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
523 "Callback that returns extra info about the plugin",
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
524 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
525 G_PARAM_STATIC_STRINGS));
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
526
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
527 g_object_class_install_property(obj_class, PROP_PREF_FRAME_CB,
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
528 g_param_spec_pointer("pref-frame-cb",
36949
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
529 "Preferences frame callback",
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
530 "The callback that returns the preferences frame",
36954
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
531 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
532 G_PARAM_STATIC_STRINGS));
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
533
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
534 g_object_class_install_property(obj_class, PROP_PREF_REQUEST_CB,
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
535 g_param_spec_pointer("pref-request-cb",
36949
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
536 "Preferences request callback",
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
537 "Callback that returns preferences request handle",
36954
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
538 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
539 G_PARAM_STATIC_STRINGS));
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
540
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
541 g_object_class_install_property(obj_class, PROP_FLAGS,
36871
8da5914b107a Removed GObject property name defines
Ankit Vani <a@nevitus.org>
parents: 36869
diff changeset
542 g_param_spec_flags("flags",
36949
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
543 "Plugin flags",
06cbd6ed97ed Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36937
diff changeset
544 "The flags for the plugin",
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
545 PURPLE_TYPE_PLUGIN_INFO_FLAGS, 0,
36954
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
546 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
26c2cf81a97a Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents: 36949
diff changeset
547 G_PARAM_STATIC_STRINGS));
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
548 }
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
549
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
550 /**************************************************************************
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
551 * PluginInfo API
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
552 **************************************************************************/
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
553 GType
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
554 purple_plugin_info_get_type(void)
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
555 {
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
556 static GType type = 0;
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
557
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
558 if (G_UNLIKELY(type == 0)) {
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
559 static const GTypeInfo info = {
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
560 .class_size = sizeof(PurplePluginInfoClass),
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
561 .class_init = (GClassInitFunc)purple_plugin_info_class_init,
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
562 .instance_size = sizeof(PurplePluginInfo),
36615
5f6a105b4c52 Register and unregister plugin info with dbus
Ankit Vani <a@nevitus.org>
parents: 36527
diff changeset
563 .instance_init = (GInstanceInitFunc)purple_plugin_info_init,
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
564 };
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
565
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
566 type = g_type_register_static(
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
567 #ifdef PURPLE_PLUGINS
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
568 GPLUGIN_TYPE_PLUGIN_INFO,
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
569 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
570 G_TYPE_OBJECT,
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
571 #endif
36368
0898810f4e9c Removed PurplePlugin and added PurplePluginInfo, which inherits GPluginPluginInfo
Ankit Vani <a@nevitus.org>
parents: 36367
diff changeset
572 "PurplePluginInfo", &info, 0);
34783
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
573 }
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
574
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
575 return type;
cefe6df8c6c6 Made PurplePlugin a GBoxed
Ankit Vani <a@nevitus.org>
parents: 34173
diff changeset
576 }
36357
1a49a1a9ce18 Started the new GObject plugin API
Ankit Vani <a@nevitus.org>
parents: 34821
diff changeset
577
36446
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
578 PurplePluginInfo *
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
579 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
580 {
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
581 GObject *info;
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
582 va_list var_args;
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
583
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
584 /* at least ID is required */
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
585 if (!first_property)
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
586 return NULL;
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
587
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
588 va_start(var_args, first_property);
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
589 info = g_object_new_valist(PURPLE_TYPE_PLUGIN_INFO, first_property,
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
590 var_args);
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
591 va_end(var_args);
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
592
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
593 return PURPLE_PLUGIN_INFO(info);
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
594 }
e75794a5a7f0 Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents: 36441
diff changeset
595
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
596 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
597 purple_plugin_info_get_id(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
598 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
599 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
600 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
601
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
602 return gplugin_plugin_info_get_id(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
603
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
604 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
605 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
606 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
607 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
608
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
609 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
610 purple_plugin_info_get_name(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
611 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
612 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
613 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
614
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
615 return gplugin_plugin_info_get_name(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
616
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
617 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
618 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
619 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
620 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
621
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
622 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
623 purple_plugin_info_get_version(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
624 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
625 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
626 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
627
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
628 return gplugin_plugin_info_get_version(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
629
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
630 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
631 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
632 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
633 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
634
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
635 const gchar *
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
636 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: 36432
diff changeset
637 {
36498
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
638 #ifdef PURPLE_PLUGINS
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
639 g_return_val_if_fail(info != NULL, NULL);
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
640
36498
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
641 return gplugin_plugin_info_get_category(GPLUGIN_PLUGIN_INFO(info));
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
642
36498
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
643 #else
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
644 return NULL;
aee400fdb11a Removed category from purple implementation, it is now in GPlugin. Updated dependencies doc string.
Ankit Vani <a@nevitus.org>
parents: 36488
diff changeset
645 #endif
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
646 }
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
647
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
648 const gchar *
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
649 purple_plugin_info_get_summary(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
650 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
651 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
652 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
653
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
654 return gplugin_plugin_info_get_summary(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
655
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
656 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
657 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
658 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
659 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
660
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
661 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
662 purple_plugin_info_get_description(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
663 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
664 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
665 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
666
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
667 return gplugin_plugin_info_get_description(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
668
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
669 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
670 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
671 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
672 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
673
36642
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
674 const gchar * const *
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
675 purple_plugin_info_get_authors(const PurplePluginInfo *info)
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
676 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
677 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
678 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
679
36642
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
680 return gplugin_plugin_info_get_authors(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
681
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
682 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
683 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
684 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
685 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
686
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
687 const gchar *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
688 purple_plugin_info_get_website(const PurplePluginInfo *info)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
689 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
690 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
691 g_return_val_if_fail(info != NULL, NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
692
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
693 return gplugin_plugin_info_get_website(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
694
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
695 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
696 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
697 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
698 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
699
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
700 const gchar *
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
701 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: 36432
diff changeset
702 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
703 #ifdef PURPLE_PLUGINS
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
704 g_return_val_if_fail(info != NULL, NULL);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
705
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
706 return gplugin_plugin_info_get_icon(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
707
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
708 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
709 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
710 #endif
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
711 }
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
712
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
713 const gchar *
36642
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
714 purple_plugin_info_get_license_id(const PurplePluginInfo *info)
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
715 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
716 #ifdef PURPLE_PLUGINS
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
717 g_return_val_if_fail(info != NULL, NULL);
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
718
36642
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
719 return gplugin_plugin_info_get_license_id(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
720
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
721 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
722 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
723 #endif
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
724 }
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
725
36480
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
726 const gchar *
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
727 purple_plugin_info_get_license_text(const PurplePluginInfo *info)
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
728 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
729 #ifdef PURPLE_PLUGINS
36480
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
730 g_return_val_if_fail(info != NULL, NULL);
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
731
36480
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
732 return gplugin_plugin_info_get_license_text(GPLUGIN_PLUGIN_INFO(info));
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
733
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
734 #else
36480
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
735 return NULL;
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
736 #endif
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
737 }
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
738
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
739 const gchar *
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
740 purple_plugin_info_get_license_url(const PurplePluginInfo *info)
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
741 {
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
742 #ifdef PURPLE_PLUGINS
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
743 g_return_val_if_fail(info != NULL, NULL);
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
744
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
745 return gplugin_plugin_info_get_license_url(GPLUGIN_PLUGIN_INFO(info));
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
746
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
747 #else
ea193a32e6c9 Documented all info properties according to GPlugin changes
Ankit Vani <a@nevitus.org>
parents: 36479
diff changeset
748 return NULL;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
749 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
750 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
751
36642
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
752 const gchar * const *
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
753 purple_plugin_info_get_dependencies(const PurplePluginInfo *info)
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
754 {
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
755 #ifdef PURPLE_PLUGINS
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
756 g_return_val_if_fail(info != NULL, NULL);
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
757
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
758 return gplugin_plugin_info_get_dependencies(GPLUGIN_PLUGIN_INFO(info));
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
759
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
760 #else
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
761 return NULL;
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
762 #endif
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
763 }
b8ba53daa445 Updated libpurple to use current GPlugin
Ankit Vani <a@nevitus.org>
parents: 36615
diff changeset
764
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
765 guint32
36482
fbddfc86848d Renamed purple-version to purple-abi. Removed abi-version from docs
Ankit Vani <a@nevitus.org>
parents: 36481
diff changeset
766 purple_plugin_info_get_abi_version(const PurplePluginInfo *info)
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
767 {
36505
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
768 #ifdef PURPLE_PLUGINS
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
769 g_return_val_if_fail(info != NULL, 0);
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
770
36505
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
771 return gplugin_plugin_info_get_abi_version(GPLUGIN_PLUGIN_INFO(info));
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
772
36505
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
773 #else
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
774 return 0;
60c161851325 Integrated purple ABI requirement into GPlugin's "abi-version" property
Ankit Vani <a@nevitus.org>
parents: 36503
diff changeset
775 #endif
36481
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
776 }
76943492ab1b Added property "purple-version"
Ankit Vani <a@nevitus.org>
parents: 36480
diff changeset
777
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
778 PurplePluginActionsCb
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
779 purple_plugin_info_get_actions_cb(const PurplePluginInfo *info)
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
780 {
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
781 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
782
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
783 g_return_val_if_fail(priv != NULL, NULL);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
784
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
785 return priv->actions_cb;
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
786 }
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
787
36976
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
788 PurplePluginExtraCb
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
789 purple_plugin_info_get_extra_cb(const PurplePluginInfo *info)
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
790 {
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
791 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
792
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
793 g_return_val_if_fail(priv != NULL, NULL);
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
794
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
795 return priv->extra_cb;
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
796 }
46c2822b7c58 Added the "extra-cb" property for plugins.
Ankit Vani <a@nevitus.org>
parents: 36954
diff changeset
797
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
798 PurplePluginPrefFrameCb
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
799 purple_plugin_info_get_pref_frame_cb(const PurplePluginInfo *info)
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
800 {
36435
f3ae5a24fb61 Added get functions for GPlugin's plugin icon and license. Added category for plugins.
Ankit Vani <a@nevitus.org>
parents: 36432
diff changeset
801 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
802
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
803 g_return_val_if_fail(priv != NULL, NULL);
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
804
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
805 return priv->pref_frame_cb;
36395
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
806 }
a27e8b7a2938 Added a callback to return preferences frame to plugin info.
Ankit Vani <a@nevitus.org>
parents: 36389
diff changeset
807
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
808 PurplePluginPrefRequestCb
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
809 purple_plugin_info_get_pref_request_cb(const PurplePluginInfo *info)
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
810 {
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
811 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
812
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
813 g_return_val_if_fail(priv != NULL, NULL);
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
814
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
815 return priv->pref_request_cb;
36929
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
816 }
eed15b8d51a1 Merged soc.2013.gobjectification branch
Ankit Vani <a@nevitus.org>
parents: 36926
diff changeset
817
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
818 PurplePluginInfoFlags
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
819 purple_plugin_info_get_flags(const PurplePluginInfo *info)
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
820 {
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
821 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
822
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
823 g_return_val_if_fail(priv != NULL, 0);
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
824
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
825 return priv->flags;
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
826 }
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
827
36515
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
828 const gchar *
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
829 purple_plugin_info_get_error(const PurplePluginInfo *info)
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
830 {
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
831 PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
832
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
833 g_return_val_if_fail(priv != NULL, NULL);
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
834
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
835 return priv->error;
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
836 }
28631d5a44f5 Added purple_plugin_info_get_error()
Ankit Vani <a@nevitus.org>
parents: 36514
diff changeset
837
36926
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
838 void
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
839 purple_plugin_info_set_ui_data(PurplePluginInfo *info, gpointer ui_data)
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
840 {
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
841 g_return_if_fail(PURPLE_IS_PLUGIN_INFO(info));
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
842
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
843 info->ui_data = ui_data;
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
844 }
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
845
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
846 gpointer
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
847 purple_plugin_info_get_ui_data(const PurplePluginInfo *info)
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
848 {
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
849 g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL);
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
850
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
851 return info->ui_data;
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
852 }
d2c0c68a9816 Merged soc.2013.gobjectification branch.
Ankit Vani <a@nevitus.org>
parents: 36902
diff changeset
853
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
854 /**************************************************************************
36396
add1d5e2314c Renamed actions_add functions to add_action functions
Ankit Vani <a@nevitus.org>
parents: 36395
diff changeset
855 * 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: 36383
diff changeset
856 **************************************************************************/
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
857 PurplePluginAction *
36934
e7268aeb3b89 Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents: 36929
diff changeset
858 purple_plugin_action_new(const char* label, PurplePluginActionCb callback)
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
859 {
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
860 PurplePluginAction *action;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
861
36488
48c3419844f0 Undo action-related changes in UI
Ankit Vani <a@nevitus.org>
parents: 36487
diff changeset
862 g_return_val_if_fail(label != NULL && callback != NULL, NULL);
36487
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
863
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
864 action = g_new0(PurplePluginAction, 1);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
865
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
866 action->label = g_strdup(label);
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
867 action->callback = callback;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
868
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
869 return action;
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
870 }
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
871
725e37471387 Make actions a callback again, so that a plugin/protocol can change them
Ankit Vani <a@nevitus.org>
parents: 36483
diff changeset
872 void
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: 36383
diff changeset
873 purple_plugin_action_free(PurplePluginAction *action)
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
874 {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
875 g_return_if_fail(action != NULL);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
876
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
877 g_free(action->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: 36383
diff changeset
878 g_free(action);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
879 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
880
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
881 static 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: 36383
diff changeset
882 purple_plugin_action_copy(PurplePluginAction *action)
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
883 {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
884 g_return_val_if_fail(action != NULL, NULL);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
885
37120
9b5c7e27c8d9 Use purple_plugin_action_new to create a new PurplePluginAction in its GBoxed copy function
Ankit Vani <a@nevitus.org>
parents: 37071
diff changeset
886 return purple_plugin_action_new(action->label, action->callback);
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: 36383
diff changeset
887 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
888
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
889 GType
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
890 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: 36383
diff changeset
891 {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
892 static GType type = 0;
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
893
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
894 if (G_UNLIKELY(type == 0)) {
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
895 type = g_boxed_type_register_static("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: 36383
diff changeset
896 (GBoxedCopyFunc)purple_plugin_action_copy,
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
897 (GBoxedFreeFunc)purple_plugin_action_free);
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
898 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
899
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
900 return 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: 36383
diff changeset
901 }
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
902
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
903 /**************************************************************************
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
904 * Plugins API
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
905 **************************************************************************/
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
906 GList *
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
907 purple_plugins_find_all(void)
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
908 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
909 #ifdef PURPLE_PLUGINS
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
910 GList *ret = NULL, *ids, *l;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
911 GSList *plugins, *ll;
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
912
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
913 ids = gplugin_manager_list_plugins();
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
914
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
915 for (l = ids; l; l = l->next) {
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
916 plugins = gplugin_manager_find_plugins(l->data);
36806
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
917
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
918 for (ll = plugins; ll; ll = ll->next) {
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
919 PurplePlugin *plugin = PURPLE_PLUGIN(ll->data);
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
920 if (purple_plugin_get_info(plugin))
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
921 ret = g_list_append(ret, plugin);
c55849ed482d Make sure purple_plugins_find_all() returns only purple plugins
Ankit Vani <a@nevitus.org>
parents: 36782
diff changeset
922 }
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
923
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
924 gplugin_manager_free_plugin_list(plugins);
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
925 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
926 g_list_free(ids);
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
927
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
928 return ret;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
929
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
930 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
931 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
932 #endif
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
933 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
934
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
935 GList *
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
936 purple_plugins_get_loaded(void)
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
937 {
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
938 #ifdef PURPLE_PLUGINS
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
939 return loaded_plugins;
36460
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
940 #else
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
941 return NULL;
8c939ea45957 Added purple_plugin_register_type() and purple_plugin_add_interface()
Ankit Vani <a@nevitus.org>
parents: 36456
diff changeset
942 #endif
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
943 }
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
944
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
945 void
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
946 purple_plugins_add_search_path(const gchar *path)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
947 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
948 #ifdef PURPLE_PLUGINS
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
949 gplugin_manager_append_path(path);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
950 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
951 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
952
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
953 void
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
954 purple_plugins_refresh(void)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
955 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
956 #ifdef PURPLE_PLUGINS
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
957 GList *plugins, *l;
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
958
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
959 gplugin_manager_refresh();
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
960
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
961 plugins = purple_plugins_find_all();
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
962 for (l = plugins; l != NULL; l = l->next) {
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
963 PurplePlugin *plugin = PURPLE_PLUGIN(l->data);
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
964 PurplePluginInfo *info;
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
965 PurplePluginInfoPrivate *priv;
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
966
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
967 if (purple_plugin_is_loaded(plugin))
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
968 continue;
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
969
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
970 info = purple_plugin_get_info(plugin);
36474
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
971 priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info);
e4f3c025cb62 Do not auto-load load-on-query plugins that have been unloaded once
Ankit Vani <a@nevitus.org>
parents: 36472
diff changeset
972
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
973 if (!priv->unloaded && purple_plugin_info_get_flags(info) &
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
974 PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD) {
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
975 purple_debug_info("plugins", "Auto-loading plugin %s\n",
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
976 purple_plugin_get_filename(plugin));
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
977 purple_plugin_load(plugin, NULL);
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
978 }
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
979 }
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
980
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
981 g_list_free(plugins);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
982 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
983 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
984
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
985 PurplePlugin *
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
986 purple_plugins_find_plugin(const gchar *id)
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
987 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
988 #ifdef PURPLE_PLUGINS
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
989 PurplePlugin *plugin;
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
990
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
991 g_return_val_if_fail(id != NULL && *id != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
992
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
993 plugin = gplugin_manager_find_plugin(id);
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
994
37178
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
995 if (!plugin)
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
996 return NULL;
b6865740b29c Fix tests built on Fedora
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 37146
diff changeset
997
36990
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
998 /* GPlugin refs the plugin object before returning it. This workaround is
b1471cc401a4 Document the g_object_unref before returning a plugin info or a plugin instance
Ankit Vani <a@nevitus.org>
parents: 36986
diff changeset
999 * to avoid managing the reference counts everywhere in our codebase where
37001
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
1000 * we use plugin instances. A plugin object will exist till the plugins
e94e70e965e3 Better wording for comments in plugins.c
Ankit Vani <a@nevitus.org>
parents: 36990
diff changeset
1001 * subsystem is uninitialized. */
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
1002 g_object_unref(plugin);
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
1003
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
1004 return plugin;
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1005
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1006 #else
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1007 return NULL;
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1008 #endif
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
1009 }
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
1010
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
1011 PurplePlugin *
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1012 purple_plugins_find_by_filename(const char *filename)
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1013 {
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
1014 GList *plugins, *l;
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1015
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1016 g_return_val_if_fail(filename != NULL && *filename != '\0', NULL);
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1017
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
1018 plugins = purple_plugins_find_all();
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1019
36401
b820d9a76ce9 Refactored libpurple to use the ref'd plugins list
Ankit Vani <a@nevitus.org>
parents: 36400
diff changeset
1020 for (l = plugins; l != NULL; l = l->next) {
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
1021 PurplePlugin *plugin = PURPLE_PLUGIN(l->data);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1022
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
1023 if (purple_strequal(purple_plugin_get_filename(plugin), filename)) {
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
1024 g_list_free(plugins);
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
1025 return plugin;
36402
a0d82b6f4081 Removed referencing of plugin from PurplePluginAction, since it is a part of the plugin.
Ankit Vani <a@nevitus.org>
parents: 36401
diff changeset
1026 }
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1027 }
36429
5c2bc13927b0 Added wrappers for some gplugin functions
Ankit Vani <a@nevitus.org>
parents: 36428
diff changeset
1028 g_list_free(plugins);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1029
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1030 return NULL;
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1031 }
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1032
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1033 void
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1034 purple_plugins_save_loaded(const char *key)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1035 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1036 #ifdef PURPLE_PLUGINS
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1037 GList *pl;
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1038 GList *files = NULL;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1039
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1040 g_return_if_fail(key != NULL && *key != '\0');
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1041
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1042 for (pl = purple_plugins_get_loaded(); pl != NULL; pl = pl->next) {
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
1043 PurplePlugin *plugin = PURPLE_PLUGIN(pl->data);
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
1044 PurplePluginInfo *info = purple_plugin_get_info(plugin);
36472
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
1045 if (!info)
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
1046 continue;
1945ae79bbb3 Added checks in case a plugin does not return a PluginInfo
Ankit Vani <a@nevitus.org>
parents: 36469
diff changeset
1047
36653
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
1048 if (purple_plugin_info_get_flags(info) &
4084c34c051d Override gplugin info's "flags" property. Added PURPLE_PLUGIN_INFO_FLAGS_INTERNAL and PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD.
Ankit Vani <a@nevitus.org>
parents: 36642
diff changeset
1049 PURPLE_PLUGIN_INFO_FLAGS_AUTO_LOAD)
36463
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
1050 continue;
b1ce7f2998e4 Added purple_plugin_loads_on_query()
Ankit Vani <a@nevitus.org>
parents: 36460
diff changeset
1051
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1052 if (!g_list_find(plugins_to_disable, plugin))
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36429
diff changeset
1053 files = g_list_append(files, (gchar *)purple_plugin_get_filename(plugin));
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1054 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1055
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
1056 purple_prefs_set_path_list(key, files);
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1057 g_list_free(files);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1058 #endif
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1059 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1060
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1061 void
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1062 purple_plugins_load_saved(const char *key)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1063 {
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1064 #ifdef PURPLE_PLUGINS
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1065 GList *l, *files;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1066
36432
2de90f1d0c15 Added some checks
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
1067 g_return_if_fail(key != NULL && *key != '\0');
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1068
36456
380500e9aff2 Fixed the type of pref used to store loaded plugins, and added some debug messages
Ankit Vani <a@nevitus.org>
parents: 36450
diff changeset
1069 files = purple_prefs_get_path_list(key);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1070
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1071 for (l = files; l; l = l->next)
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1072 {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1073 char *file;
36428
ba8ead8477cb Added PurplePlugin as an alias for GPluginPlugin
Ankit Vani <a@nevitus.org>
parents: 36412
diff changeset
1074 PurplePlugin *plugin;
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1075
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1076 if (l->data == NULL)
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1077 continue;
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1078
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1079 file = l->data;
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1080 plugin = purple_plugins_find_by_filename(file);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1081
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1082 if (plugin) {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1083 purple_debug_info("plugins", "Loading saved plugin %s\n", file);
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
1084 purple_plugin_load(plugin, NULL);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1085 } else {
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1086 purple_debug_error("plugins", "Unable to find saved plugin %s\n", file);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1087 }
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: 36383
diff changeset
1088
d402ca995746 Added a boxed type PurplePluginAction with purple_plugin_actions_add() to add an action to a plugin.
Ankit Vani <a@nevitus.org>
parents: 36383
diff changeset
1089 g_free(l->data);
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1090 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1091
36399
f5d2c9da9ea0 Added purple_plugins_find_by_filename()
Ankit Vani <a@nevitus.org>
parents: 36397
diff changeset
1092 g_list_free(files);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1093 #endif /* PURPLE_PLUGINS */
36377
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1094 }
28ec73fbb37d Added purple_plugins_save_loaded() and purple_plugins_load_saved()
Ankit Vani <a@nevitus.org>
parents: 36374
diff changeset
1095
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1096 /**************************************************************************
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1097 * Plugins Subsystem API
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1098 **************************************************************************/
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1099 void *
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1100 purple_plugins_get_handle(void)
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1101 {
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1102 static int handle;
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1103
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1104 return &handle;
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1105 }
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1106
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1107 void
36370
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1108 purple_plugins_init(void)
04a6a552bee4 Added the following functions to plugins.[ch]:
Ankit Vani <a@nevitus.org>
parents: 36368
diff changeset
1109 {
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1110 void *handle = purple_plugins_get_handle();
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1111
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1112 purple_signal_register(handle, "plugin-load",
36483
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1113 purple_marshal_VOID__POINTER,
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1114 G_TYPE_NONE, 1, PURPLE_TYPE_PLUGIN);
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1115 purple_signal_register(handle, "plugin-unload",
36483
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1116 purple_marshal_VOID__POINTER,
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1117 G_TYPE_NONE, 1, PURPLE_TYPE_PLUGIN);
36503
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1118
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1119 #ifdef PURPLE_PLUGINS
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1120 gplugin_init();
36937
c6a5ce2be21b Call gplugin_manager_add_default_paths() from purple_plugins_init
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
1121 gplugin_manager_add_default_paths();
c6a5ce2be21b Call gplugin_manager_add_default_paths() from purple_plugins_init
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
1122
37136
cfa7c57f9ca5 Merge default branch
Ankit Vani <a@nevitus.org>
parents: 35850 37120
diff changeset
1123 purple_plugins_add_search_path(PURPLE_LIBDIR);
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1124
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
1125 g_signal_connect(gplugin_manager_get_instance(), "loading-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1126 G_CALLBACK(plugin_loading_cb), NULL);
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
1127 g_signal_connect(gplugin_manager_get_instance(), "loaded-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1128 G_CALLBACK(plugin_loaded_cb), NULL);
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
1129 g_signal_connect(gplugin_manager_get_instance(), "unloading-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1130 G_CALLBACK(plugin_unloading_cb), NULL);
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
1131 g_signal_connect(gplugin_manager_get_instance(), "unloaded-plugin",
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1132 G_CALLBACK(plugin_unloaded_cb), NULL);
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1133
36503
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1134 purple_plugins_refresh();
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1135 #endif
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1136 }
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1137
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1138 void
36511
1ebd4a8f2b4a Removed purple_plugin_is_loadable() and purple_plugin_get_error() from the API
Ankit Vani <a@nevitus.org>
parents: 36508
diff changeset
1139 purple_plugins_uninit(void)
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1140 {
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1141 void *handle = purple_plugins_get_handle();
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1142
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1143 #ifdef PURPLE_PLUGINS
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1144 purple_debug_info("plugins", "Unloading all plugins\n");
36468
64d359bbe6f6 Removed purple_plugins_unload_all() from the API
Ankit Vani <a@nevitus.org>
parents: 36467
diff changeset
1145 while (loaded_plugins != NULL)
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
1146 purple_plugin_unload(loaded_plugins->data, NULL);
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1147 #endif
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1148
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1149 purple_signals_disconnect_by_handle(handle);
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1150 purple_signals_unregister_by_instance(handle);
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1151
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1152 #ifdef PURPLE_PLUGINS
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1153 gplugin_uninit();
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1154 #endif
36367
891eea799578 Renamed plugin.[ch] to plugins.[ch], since we (will) no longer have a PurplePlugin structure.
Ankit Vani <a@nevitus.org>
parents: 36357
diff changeset
1155 }

mercurial