Mon, 23 May 2022 20:27:22 -0500
Remove the ui-requirement property on PurplePluginInfo
This never worked right, even before gplugin. To read the value we had to have
already opened the library, which means all of its symbols were resolved. So
all this really did was stop a plugin for loading under a different UI. As we
move towards separate config directories for each UI this problem goes away.
Testing Done:
Ran and verified that plugins looked alright.
Reviewed at https://reviews.imfreedom.org/r/1462/
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Purple - Internet Messaging Library |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * This library is free software; you can redistribute it and/or |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * modify it under the terms of the GNU Lesser General Public |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * License as published by the Free Software Foundation; either |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * version 2 of the License, or (at your option) any later version. |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * This library is distributed in the hope that it will be useful, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * Lesser General Public License for more details. |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * You should have received a copy of the GNU Lesser General Public |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * License along with this library; if not, see <https://www.gnu.org/licenses/>. |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | #include <glib/gi18n-lib.h> |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | #include "internal.h" |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | #include "core.h" |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include "debug.h" |
|
41007
90d2dee9b3dc
Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents:
40963
diff
changeset
|
24 | #include "purpleenums.h" |
|
40963
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include "util.h" |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #include "purpleplugininfo.h" |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | typedef struct { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | gchar *error; /* Why a plugin is not loadable */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | PurplePluginInfoFlags flags; /* Flags for the plugin */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | /* Callback that returns a list of actions the plugin can perform */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | PurplePluginActionsCb actions_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | /* Callback that returns extra information about a plugin */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | PurplePluginExtraCb extra_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | /* Callback that returns a preferences frame for a plugin */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | PurplePluginPrefFrameCb pref_frame_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | /* Callback that returns a preferences request handle for a plugin */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | PurplePluginPrefRequestCb pref_request_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | /* TRUE if a plugin has been unloaded at least once. Auto-load |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | * plugins that have been unloaded once will not be auto-loaded again. */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | gboolean unloaded; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | } PurplePluginInfoPrivate; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | enum { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | PROP_0, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | PROP_ACTIONS_CB, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | PROP_EXTRA_CB, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | PROP_PREF_FRAME_CB, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | PROP_PREF_REQUEST_CB, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | PROP_FLAGS, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | N_PROPERTIES, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | }; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | static GParamSpec *properties[N_PROPERTIES] = { NULL, }; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | G_DEFINE_TYPE_WITH_PRIVATE(PurplePluginInfo, purple_plugin_info, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | GPLUGIN_TYPE_PLUGIN_INFO); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | /************************************************************************** |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | * GObject Implementation |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | **************************************************************************/ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | purple_plugin_info_init(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | purple_plugin_info_set_property(GObject *obj, guint param_id, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
74 | const GValue *value, GParamSpec *pspec) |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 | PurplePluginInfo *info = PURPLE_PLUGIN_INFO(obj); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
79 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | switch (param_id) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | case PROP_ACTIONS_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 | priv->actions_cb = g_value_get_pointer(value); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | case PROP_EXTRA_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | priv->extra_cb = g_value_get_pointer(value); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | case PROP_PREF_FRAME_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | priv->pref_frame_cb = g_value_get_pointer(value); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | case PROP_PREF_REQUEST_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | priv->pref_request_cb = g_value_get_pointer(value); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | case PROP_FLAGS: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | priv->flags = g_value_get_flags(value); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | default: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | purple_plugin_info_get_property(GObject *obj, guint param_id, GValue *value, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | GParamSpec *pspec) |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | PurplePluginInfo *info = PURPLE_PLUGIN_INFO(obj); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 | switch (param_id) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 | case PROP_ACTIONS_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | g_value_set_pointer(value, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | purple_plugin_info_get_actions_cb(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | case PROP_EXTRA_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | g_value_set_pointer(value, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | purple_plugin_info_get_extra_cb(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 | case PROP_PREF_FRAME_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 | g_value_set_pointer(value, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
120 | purple_plugin_info_get_pref_frame_cb(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 | case PROP_PREF_REQUEST_CB: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 | g_value_set_pointer(value, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | purple_plugin_info_get_pref_request_cb(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | case PROP_FLAGS: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | g_value_set_flags(value, purple_plugin_info_get_flags(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | default: |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | break; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | purple_plugin_info_constructed(GObject *object) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | PurplePluginInfo *info = PURPLE_PLUGIN_INFO(object); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | GPluginPluginInfo *ginfo = GPLUGIN_PLUGIN_INFO(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | const gchar *id = gplugin_plugin_info_get_id(ginfo); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | guint32 version; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
142 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | G_OBJECT_CLASS(purple_plugin_info_parent_class)->constructed(object); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | if(id == NULL || *id == '\0') { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | priv->error = g_strdup(_("This plugin has not defined an ID.")); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | version = gplugin_plugin_info_get_abi_version(ginfo); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | if (PURPLE_PLUGIN_ABI_MAJOR_VERSION(version) != PURPLE_MAJOR_VERSION || |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | PURPLE_PLUGIN_ABI_MINOR_VERSION(version) > PURPLE_MINOR_VERSION) |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | priv->error = g_strdup_printf(_("Your libpurple version is %d.%d.x " |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | "(need %d.%d.x)"), |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | PURPLE_MAJOR_VERSION, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | PURPLE_MINOR_VERSION, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | PURPLE_PLUGIN_ABI_MAJOR_VERSION(version), |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | PURPLE_PLUGIN_ABI_MINOR_VERSION(version)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | purple_debug_error("plugins", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | "%s is not loadable: libpurple version is %d.%d.x " |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | "(need %d.%d.x)\n", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | id, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 | PURPLE_PLUGIN_ABI_MAJOR_VERSION(version), |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | PURPLE_PLUGIN_ABI_MINOR_VERSION(version)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | purple_plugin_info_finalize(GObject *object) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | priv = purple_plugin_info_get_instance_private(PURPLE_PLUGIN_INFO(object)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | g_free(priv->error); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | G_OBJECT_CLASS(purple_plugin_info_parent_class)->finalize(object); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | static void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | purple_plugin_info_class_init(PurplePluginInfoClass *klass) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | obj_class->constructed = purple_plugin_info_constructed; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | obj_class->finalize = purple_plugin_info_finalize; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | obj_class->get_property = purple_plugin_info_get_property; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | obj_class->set_property = purple_plugin_info_set_property; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | properties[PROP_ACTIONS_CB] = g_param_spec_pointer( |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | "actions-cb", "Plugin actions", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | "Callback that returns list of plugin's actions", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | properties[PROP_EXTRA_CB] = g_param_spec_pointer( |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | "extra-cb", "Extra info callback", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | "Callback that returns extra info about the plugin", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | properties[PROP_PREF_FRAME_CB] = g_param_spec_pointer( |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | "pref-frame-cb", "Preferences frame callback", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | "The callback that returns the preferences frame", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 | properties[PROP_PREF_REQUEST_CB] = g_param_spec_pointer( |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 | "pref-request-cb", "Preferences request callback", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 | "Callback that returns preferences request handle", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
209 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
210 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
211 | properties[PROP_FLAGS] = g_param_spec_flags( |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
212 | "flags", "Plugin flags", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 | "The flags for the plugin", |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 | PURPLE_TYPE_PLUGIN_INFO_FLAGS, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
215 | 0, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
219 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | /************************************************************************** |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
222 | * Public API |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
223 | **************************************************************************/ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | GPluginPluginInfo * |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 | purple_plugin_info_new(const char *first_property, ...) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 | GObject *info; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 | va_list var_args; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
229 | /* at least ID is required */ |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 | if (!first_property) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 | return NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
233 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 | va_start(var_args, first_property); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 | info = g_object_new_valist(PURPLE_TYPE_PLUGIN_INFO, first_property, |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 | var_args); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 | va_end(var_args); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
238 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 | return GPLUGIN_PLUGIN_INFO(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
240 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 | PurplePluginActionsCb |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 | purple_plugin_info_get_actions_cb(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 | return priv->actions_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
253 | PurplePluginExtraCb |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 | purple_plugin_info_get_extra_cb(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
256 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
257 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
258 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
259 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
260 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
261 | return priv->extra_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
262 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
263 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
264 | PurplePluginPrefFrameCb |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
265 | purple_plugin_info_get_pref_frame_cb(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
266 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
267 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
268 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
269 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
270 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
271 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
272 | return priv->pref_frame_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
273 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
274 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
275 | PurplePluginPrefRequestCb |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
276 | purple_plugin_info_get_pref_request_cb(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
277 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
278 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
280 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
281 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
282 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
283 | return priv->pref_request_cb; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
284 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
285 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
286 | PurplePluginInfoFlags |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
287 | purple_plugin_info_get_flags(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
288 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
289 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
290 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), 0); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
291 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
292 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
293 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
294 | return priv->flags; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
295 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
296 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
297 | const gchar * |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
298 | purple_plugin_info_get_error(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
299 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
300 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
301 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), NULL); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
302 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
303 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
304 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
305 | return priv->error; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
306 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
307 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
308 | gboolean |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
309 | purple_plugin_info_get_unloaded(PurplePluginInfo *info) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
310 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
311 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
312 | g_return_val_if_fail(PURPLE_IS_PLUGIN_INFO(info), FALSE); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
313 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
314 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
315 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
316 | return priv->unloaded; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
317 | } |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
318 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
319 | void |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
320 | purple_plugin_info_set_unloaded(PurplePluginInfo *info, gboolean unloaded) { |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
321 | PurplePluginInfoPrivate *priv = NULL; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
322 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
323 | g_return_if_fail(PURPLE_IS_PLUGIN_INFO(info)); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
324 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
325 | priv = purple_plugin_info_get_instance_private(info); |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
326 | |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
327 | priv->unloaded = unloaded; |
|
f2abd04191b7
Split PurplePluginInfo out to its own file
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
328 | } |