libpurple/plugins.c

Wed, 20 Jun 2018 02:13:44 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 20 Jun 2018 02:13:44 -0400
changeset 39181
f0cd633d86d4
parent 38834
e4144efa975e
child 39352
62bca2fe2e91
permissions
-rw-r--r--

prefs: Add binding versions of pref widget functions.

These just bind settings to existing widgets and copy the saved value to
the widget, except for combos which are produced from runtime lists.
Those are populated in a similar way as before.

There are some extra _bind_ words that will probably be dropped once the
other functions are unused.

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();
37495
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1111 #ifdef PURPLE_PLUGINS
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1112 const gchar *search_path;
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1113 #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
1114
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-load",
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);
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
1118 purple_signal_register(handle, "plugin-unload",
36483
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1119 purple_marshal_VOID__POINTER,
5ecc9c19fd15 Replaced an assertion with a condition
Ankit Vani <a@nevitus.org>
parents: 36482
diff changeset
1120 G_TYPE_NONE, 1, PURPLE_TYPE_PLUGIN);
36503
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1121
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1122 #ifdef PURPLE_PLUGINS
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1123 gplugin_init();
37495
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1124
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1125 search_path = g_getenv("PURPLE_PLUGIN_PATH");
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1126 if (search_path) {
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1127 gchar **paths;
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1128 int i;
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1129
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1130 paths = g_strsplit(search_path, G_SEARCHPATH_SEPARATOR_S, 0);
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1131 for (i = 0; paths[i]; ++i) {
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1132 purple_plugins_add_search_path(paths[i]);
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1133 }
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1134
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1135 g_strfreev(paths);
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1136 }
f28a27411235 Add PURPLE_PLUGIN_PATH environment variable
Mike Ruprecht <cmaiku@gmail.com>
parents: 37178
diff changeset
1137
36937
c6a5ce2be21b Call gplugin_manager_add_default_paths() from purple_plugins_init
Ankit Vani <a@nevitus.org>
parents: 36934
diff changeset
1138 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
1139
38834
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
1140 if(!g_getenv("PURPLE_PLUGINS_SKIP")) {
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
1141 purple_plugins_add_search_path(PURPLE_LIBDIR);
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
1142 } else {
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
1143 purple_debug_info("plugins", "PURPLE_PLUGINS_SKIP environment variable set, skipping normal plugin paths");
e4144efa975e Clean up a bunch of the cruft I accidentally created
Gary Kramlich <grim@reaperworld.com>
parents: 38358
diff changeset
1144 }
36859
6775d88f996a Implemented handlers for GPlugin's "(un)loading-plugin" and "(un)loaded-plugin" signals
Ankit Vani <a@nevitus.org>
parents: 36847
diff changeset
1145
36902
cd1a4ca0b65a Updated plugins.c according to GPlugin's re-namespacing
Ankit Vani <a@nevitus.org>
parents: 36871
diff changeset
1146 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
1147 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
1148 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
1149 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
1150 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
1151 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
1152 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
1153 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
1154
36503
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1155 purple_plugins_refresh();
bdaf9e0edf5c Register signals before initializing gplugin
Ankit Vani <a@nevitus.org>
parents: 36499
diff changeset
1156 #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
1157 }
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
1158
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
1159 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
1160 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
1161 {
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
1162 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
1163
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1164 #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
1165 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
1166 while (loaded_plugins != NULL)
36508
88400e054286 Return a GError if load or unload fails
Ankit Vani <a@nevitus.org>
parents: 36507
diff changeset
1167 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
1168 #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
1169
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
1170 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
1171 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
1172
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1173 #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
1174 gplugin_uninit();
36441
f50c47e1c469 Disable all GPlugin stuff when PURPLE_PLUGINS is not defined
Ankit Vani <a@nevitus.org>
parents: 36439
diff changeset
1175 #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
1176 }

mercurial