Sat, 12 Aug 2017 16:44:50 -0500
A bunch more tweaks and added build and runtime library versions
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* pidgin |
| 5205 | 2 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
3 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 8046 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
|
6927
528988ef2781
[gaim-migrate @ 7474]
Christian Hammond <chipx86@chipx86.com>
parents:
5982
diff
changeset
|
6 | * |
| 5205 | 7 | * This program is free software; you can redistribute it and/or modify |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 18 | * 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:
19733
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 5205 | 20 | */ |
| 11740 | 21 | #include "internal.h" |
| 15577 | 22 | #include "pidgin.h" |
| 5205 | 23 | #include "gtkplugin.h" |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
24 | #include "gtkpluginpref.h" |
|
13436
b80f8990bc67
[gaim-migrate @ 15810]
Richard Laager <rlaager@pidgin.im>
parents:
13435
diff
changeset
|
25 | #include "gtkutils.h" |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
26 | #include "debug.h" |
|
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
27 | #include "prefs.h" |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
28 | #include "request.h" |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
29 | #include "pidgintooltip.h" |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
30 | |
| 5205 | 31 | #include <string.h> |
| 32 | ||
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33168
diff
changeset
|
33 | #include "gtk3compat.h" |
|
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33168
diff
changeset
|
34 | |
|
36406
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
35 | #define PIDGIN_PLUGIN_INFO_GET_PRIVATE(obj) \ |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
36 | (G_TYPE_INSTANCE_GET_PRIVATE((obj), PIDGIN_TYPE_PLUGIN_INFO, PidginPluginInfoPrivate)) |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
37 | |
|
15880
d275b025481c
More Gaim to Pidgin changes
Sean Egan <seanegan@pidgin.im>
parents:
15692
diff
changeset
|
38 | #define PIDGIN_RESPONSE_CONFIGURE 98121 |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
39 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
40 | typedef struct |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
41 | { |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
42 | PidginPluginConfigFrameCb config_frame_cb; |
|
36406
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
43 | } PidginPluginInfoPrivate; |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
44 | |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
45 | enum |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
46 | { |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
47 | PROP_0, |
| 36936 | 48 | PROP_GTK_CONFIG_FRAME_CB, |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
49 | PROP_LAST |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
50 | }; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
51 | |
| 36929 | 52 | typedef struct |
| 53 | { | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
54 | enum |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
55 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
56 | PIDGIN_PLUGIN_UI_DATA_TYPE_FRAME, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
57 | PIDGIN_PLUGIN_UI_DATA_TYPE_REQUEST |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
58 | } type; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
59 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
60 | union |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
61 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
62 | struct |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
63 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
64 | GtkWidget *dialog; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
65 | PurplePluginPrefFrame *pref_frame; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
66 | } frame; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
67 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
68 | gpointer request_handle; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
69 | } u; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
70 | } PidginPluginUiData; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
71 | |
| 15884 | 72 | static void plugin_toggled_stage_two(PurplePlugin *plug, GtkTreeModel *model, |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
73 | GtkTreeIter *iter, GError *error, gboolean unload); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
74 | |
|
12343
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
75 | static GtkWidget *expander = NULL; |
| 11740 | 76 | static GtkWidget *plugin_dialog = NULL; |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
77 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
78 | static GtkLabel *plugin_name = NULL; |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
79 | static GtkTextBuffer *plugin_desc = NULL; |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
80 | static GtkLabel *plugin_error = NULL; |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
81 | static GtkLabel *plugin_authors = NULL; |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
82 | static GtkLabel *plugin_website = NULL; |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
83 | static gchar *plugin_website_uri = NULL; |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
84 | static GtkLabel *plugin_filename = NULL; |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
85 | |
| 11740 | 86 | static GtkWidget *pref_button = NULL; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
87 | |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
88 | /* Set method for GObject properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
89 | static void |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
90 | pidgin_plugin_info_set_property(GObject *obj, guint param_id, const GValue *value, |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
91 | GParamSpec *pspec) |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
92 | { |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
93 | PidginPluginInfoPrivate *priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(obj); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
94 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
95 | switch (param_id) { |
| 36936 | 96 | case PROP_GTK_CONFIG_FRAME_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
|
97 | priv->config_frame_cb = g_value_get_pointer(value); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
98 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
99 | default: |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
100 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
101 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
102 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
103 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
104 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
105 | /* Get method for GObject properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
106 | static void |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
107 | pidgin_plugin_info_get_property(GObject *obj, guint param_id, GValue *value, |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
108 | GParamSpec *pspec) |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
109 | { |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
110 | PidginPluginInfoPrivate *priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(obj); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
111 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
112 | switch (param_id) { |
| 36936 | 113 | case PROP_GTK_CONFIG_FRAME_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
|
114 | g_value_set_pointer(value, priv->config_frame_cb); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
115 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
116 | default: |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
117 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
118 | break; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
119 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
120 | } |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
121 | |
|
36406
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
122 | /* Class initializer function */ |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
123 | static void pidgin_plugin_info_class_init(PidginPluginInfoClass *klass) |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
124 | { |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
125 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
126 | |
|
36406
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
127 | g_type_class_add_private(klass, sizeof(PidginPluginInfoPrivate)); |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
128 | |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
129 | /* Setup properties */ |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
130 | obj_class->get_property = pidgin_plugin_info_get_property; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
131 | obj_class->set_property = pidgin_plugin_info_set_property; |
|
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
132 | |
| 36936 | 133 | g_object_class_install_property(obj_class, PROP_GTK_CONFIG_FRAME_CB, |
|
36935
5384600e613c
Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents:
36934
diff
changeset
|
134 | g_param_spec_pointer("gtk-config-frame-cb", |
|
5384600e613c
Made finch and pidgin pref property names shorter: "gnt-pref-frame-cb" and "gtk-config-frame-cb"
Ankit Vani <a@nevitus.org>
parents:
36934
diff
changeset
|
135 | "GTK configuration frame callback", |
|
36447
2d36e433e617
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
Ankit Vani <a@nevitus.org>
parents:
36446
diff
changeset
|
136 | "Callback that returns a GTK configuration frame", |
|
36954
26c2cf81a97a
Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents:
36936
diff
changeset
|
137 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | |
|
26c2cf81a97a
Added G_PARAM_STATIC_STRINGS flag to PluginInfo properties
Ankit Vani <a@nevitus.org>
parents:
36936
diff
changeset
|
138 | G_PARAM_STATIC_STRINGS)); |
|
36406
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
139 | } |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
140 | |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
141 | GType |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
142 | pidgin_plugin_info_get_type(void) |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
143 | { |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
144 | static GType type = 0; |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
145 | |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
146 | if (G_UNLIKELY(type == 0)) { |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
147 | static const GTypeInfo info = { |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
148 | .class_size = sizeof(PidginPluginInfoClass), |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
149 | .class_init = (GClassInitFunc)pidgin_plugin_info_class_init, |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
150 | .instance_size = sizeof(PidginPluginInfo), |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
151 | }; |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
152 | |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
153 | type = g_type_register_static(PURPLE_TYPE_PLUGIN_INFO, |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
154 | "PidginPluginInfo", &info, 0); |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
155 | } |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
156 | |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
157 | return type; |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
158 | } |
|
8fba0d44840d
Added PidginPluginInfo, inheriting PurplePluginInfo to hold UI information
Ankit Vani <a@nevitus.org>
parents:
33271
diff
changeset
|
159 | |
|
36446
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
160 | PidginPluginInfo * |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
161 | pidgin_plugin_info_new(const char *first_property, ...) |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
162 | { |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
163 | GObject *info; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
164 | va_list var_args; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
165 | |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
166 | /* at least ID is required */ |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
167 | if (!first_property) |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
168 | return NULL; |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
169 | |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
170 | va_start(var_args, first_property); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
171 | info = g_object_new_valist(PIDGIN_TYPE_PLUGIN_INFO, first_property, |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
172 | var_args); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
173 | va_end(var_args); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
174 | |
|
36479
345ec7248f48
Updated plugin info properties as per changes in GPlugin
Ankit Vani <a@nevitus.org>
parents:
36467
diff
changeset
|
175 | g_object_set(info, "ui-requirement", PIDGIN_UI, NULL); |
|
36446
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
176 | |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
177 | return PIDGIN_PLUGIN_INFO(info); |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
178 | } |
|
e75794a5a7f0
Added [purple,pidgin,finch]_plugin_info_new()
Ankit Vani <a@nevitus.org>
parents:
36440
diff
changeset
|
179 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
180 | static gboolean |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
181 | pidgin_plugin_has_prefs(PurplePlugin *plugin) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
182 | { |
| 36929 | 183 | PurplePluginInfo *info = purple_plugin_get_info(plugin); |
| 184 | PidginPluginInfoPrivate *priv = NULL; | |
| 185 | gboolean ret; | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
186 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
187 | g_return_val_if_fail(plugin != NULL, FALSE); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
188 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
189 | if (!purple_plugin_is_loaded(plugin)) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
190 | return FALSE; |
| 11747 | 191 | |
| 36929 | 192 | if (PIDGIN_IS_PLUGIN_INFO(info)) |
| 193 | priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(info); | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
194 | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
195 | ret = ((priv && priv->config_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
|
196 | purple_plugin_info_get_pref_frame_cb(info) || |
|
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
197 | purple_plugin_info_get_pref_request_cb(info)); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
198 | |
| 36929 | 199 | return ret; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
200 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
201 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
202 | static GtkWidget * |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
203 | pidgin_plugin_get_config_frame(PurplePlugin *plugin, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
204 | PurplePluginPrefFrame **purple_pref_frame) |
| 5205 | 205 | { |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
206 | GtkWidget *config = NULL; |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
207 | PurplePluginInfo *info; |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
208 | PurplePluginPrefFrameCb pref_frame_cb = NULL; |
| 5205 | 209 | |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
210 | g_return_val_if_fail(PURPLE_IS_PLUGIN(plugin), NULL); |
| 5205 | 211 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
212 | info = purple_plugin_get_info(plugin); |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
213 | if(!PURPLE_IS_PLUGIN_INFO(info)) |
|
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
214 | return NULL; |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
215 | |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
216 | pref_frame_cb = purple_plugin_info_get_pref_frame_cb(info); |
|
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
217 | if(pref_frame_cb) { |
|
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
218 | PurplePluginPrefFrame *frame = pref_frame_cb(plugin); |
| 5205 | 219 | |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
220 | if(frame) { |
|
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
221 | config = pidgin_plugin_pref_create_frame(frame); |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
222 | |
|
37575
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
223 | *purple_pref_frame = frame; |
|
32611080681c
Cleanup the plugin pref stuff so it works and doesn't crash
Gary Kramlich <grim@reaperworld.com>
parents:
37422
diff
changeset
|
224 | } |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
225 | } |
|
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
226 | |
|
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
227 | return config; |
| 5205 | 228 | } |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
229 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
230 | static void |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
231 | pref_dialog_close(PurplePlugin *plugin) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
232 | { |
| 36929 | 233 | PurplePluginInfo *info; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
234 | PidginPluginUiData *ui_data; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
235 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
236 | g_return_if_fail(plugin != NULL); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
237 | |
| 36929 | 238 | info = purple_plugin_get_info(plugin); |
| 239 | ||
| 240 | ui_data = purple_plugin_info_get_ui_data(info); | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
241 | if (ui_data == NULL) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
242 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
243 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
244 | if (ui_data->type == PIDGIN_PLUGIN_UI_DATA_TYPE_REQUEST) { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
245 | purple_request_close(PURPLE_REQUEST_FIELDS, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
246 | ui_data->u.request_handle); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
247 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
248 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
249 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
250 | g_return_if_fail(ui_data->type == PIDGIN_PLUGIN_UI_DATA_TYPE_FRAME); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
251 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
252 | gtk_widget_destroy(ui_data->u.frame.dialog); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
253 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
254 | if (ui_data->u.frame.pref_frame) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
255 | purple_plugin_pref_frame_destroy(ui_data->u.frame.pref_frame); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
256 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
257 | g_free(ui_data); |
| 36929 | 258 | purple_plugin_info_set_ui_data(info, NULL); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
259 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
260 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
261 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
262 | static void |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
263 | pref_dialog_response_cb(GtkWidget *dialog, int response, PurplePlugin *plugin) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
264 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
265 | if (response == GTK_RESPONSE_CLOSE || |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
266 | response == GTK_RESPONSE_DELETE_EVENT) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
267 | { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
268 | pref_dialog_close(plugin); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
269 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
270 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
271 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
272 | static void |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
273 | pidgin_plugin_open_config(PurplePlugin *plugin, GtkWindow *parent) |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
274 | { |
| 36929 | 275 | PurplePluginInfo *info; |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
276 | PidginPluginInfoPrivate *priv = NULL; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
277 | PidginPluginUiData *ui_data; |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
278 | PurplePluginPrefFrameCb 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
|
279 | PurplePluginPrefRequestCb 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
|
280 | PidginPluginConfigFrameCb get_pidgin_frame = NULL; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
281 | gint prefs_count; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
282 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
283 | g_return_if_fail(plugin != NULL); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
284 | |
| 36929 | 285 | info = purple_plugin_get_info(plugin); |
| 286 | ||
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
287 | if (!pidgin_plugin_has_prefs(plugin)) { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
288 | purple_debug_warning("gtkplugin", "Plugin has no prefs"); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
289 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
290 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
291 | |
| 36929 | 292 | if (purple_plugin_info_get_ui_data(info)) |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
293 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
294 | |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
295 | if (PIDGIN_IS_PLUGIN_INFO(info)) |
|
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
296 | priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(info); |
|
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
297 | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
298 | pref_frame_cb = purple_plugin_info_get_pref_frame_cb(info); |
|
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
299 | pref_request_cb = purple_plugin_info_get_pref_request_cb(info); |
| 36929 | 300 | |
| 301 | if (priv) | |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
302 | get_pidgin_frame = priv->config_frame_cb; |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
303 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
304 | prefs_count = 0; |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
305 | if (pref_frame_cb) |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
306 | prefs_count++; |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
307 | if (pref_request_cb) |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
308 | prefs_count++; |
| 36929 | 309 | if (get_pidgin_frame) |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
310 | prefs_count++; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
311 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
312 | if (prefs_count > 1) { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
313 | purple_debug_warning("gtkplugin", "Plugin %s contains more than" |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
314 | " one prefs callback, some will be ignored.", |
| 36929 | 315 | purple_plugin_info_get_name(info)); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
316 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
317 | g_return_if_fail(prefs_count > 0); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
318 | |
| 36929 | 319 | ui_data = g_new0(PidginPluginUiData, 1); |
| 320 | purple_plugin_info_set_ui_data(info, ui_data); | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
321 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
322 | /* Priority: pidgin frame > purple request > purple frame |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
323 | * Purple frame could be replaced with purple request some day. |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
324 | */ |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
325 | if (pref_request_cb && !get_pidgin_frame) { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
326 | ui_data->type = PIDGIN_PLUGIN_UI_DATA_TYPE_REQUEST; |
|
36934
e7268aeb3b89
Renamed plugin info callback properties to end with "-cb", and their respective symbols.
Ankit Vani <a@nevitus.org>
parents:
36929
diff
changeset
|
327 | ui_data->u.request_handle = pref_request_cb(plugin); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
328 | purple_request_add_close_notify(ui_data->u.request_handle, |
| 36929 | 329 | purple_callback_set_zero, &info->ui_data); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
330 | purple_request_add_close_notify(ui_data->u.request_handle, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
331 | g_free, ui_data); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
332 | } else { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
333 | GtkWidget *box, *dialog; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
334 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
335 | ui_data->type = PIDGIN_PLUGIN_UI_DATA_TYPE_FRAME; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
336 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
337 | box = pidgin_plugin_get_config_frame(plugin, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
338 | &ui_data->u.frame.pref_frame); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
339 | if (box == NULL) { |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
340 | purple_debug_error("gtkplugin", |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
341 | "Failed to display prefs frame"); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
342 | g_free(ui_data); |
| 36929 | 343 | purple_plugin_info_set_ui_data(info, NULL); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
344 | return; |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
345 | } |
|
37688
7d9ac7dbfdac
gtkplugin: fix plugin preferences dialog resize
Jakub Adam <jakub.adam@ktknet.cz>
parents:
37576
diff
changeset
|
346 | gtk_widget_set_vexpand(box, TRUE); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
347 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
348 | ui_data->u.frame.dialog = dialog = gtk_dialog_new_with_buttons( |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
349 | PIDGIN_ALERT_TITLE, parent, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
350 | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CLOSE, |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
351 | GTK_RESPONSE_CLOSE, NULL); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
352 | |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
353 | g_signal_connect(G_OBJECT(dialog), "response", |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
354 | G_CALLBACK(pref_dialog_response_cb), plugin); |
| 36212 | 355 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
356 | gtk_container_add(GTK_CONTAINER( |
| 36212 | 357 | gtk_dialog_get_content_area(GTK_DIALOG(dialog))), |
|
37576
3cf4744a9521
Don't allow horizontal scrolling. The default width right now is too low for 2 out of 3 plugins that I checked causing some seriously weird scrolling to become necessary
Gary Kramlich <grim@reaperworld.com>
parents:
37575
diff
changeset
|
358 | pidgin_make_scrollable(box, GTK_POLICY_NEVER, |
| 36212 | 359 | GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, 400, 400)); |
| 360 | ||
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
361 | gtk_window_set_role(GTK_WINDOW(dialog), "plugin_config"); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
362 | gtk_window_set_title(GTK_WINDOW(dialog), |
| 36929 | 363 | _(purple_plugin_info_get_name(info))); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
364 | gtk_widget_show_all(dialog); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
365 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
366 | } |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
367 | |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
368 | void |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
369 | pidgin_plugins_save(void) |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
370 | { |
|
16123
8b98683319e7
Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15931
diff
changeset
|
371 | purple_plugins_save_loaded(PIDGIN_PREFS_ROOT "/plugins/loaded"); |
|
5981
c91ece01ad12
[gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
372 | } |
| 11740 | 373 | |
| 374 | static void | |
| 375 | update_plugin_list(void *data) | |
| 376 | { | |
| 377 | GtkListStore *ls = GTK_LIST_STORE(data); | |
| 378 | GtkTreeIter iter; | |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
379 | GList *plugins, *l; |
| 15884 | 380 | PurplePlugin *plug; |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
381 | PurplePluginInfo *info; |
| 11740 | 382 | |
| 383 | gtk_list_store_clear(ls); | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
384 | purple_plugins_refresh(); |
| 11740 | 385 | |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
386 | plugins = purple_plugins_find_all(); |
|
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
387 | |
|
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
388 | for (l = plugins; l != NULL; l = l->next) |
| 11740 | 389 | { |
|
12702
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
390 | char *name; |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
391 | char *version; |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
392 | char *summary; |
| 11740 | 393 | char *desc; |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
394 | plug = PURPLE_PLUGIN(l->data); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
395 | info = purple_plugin_get_info(plug); |
| 11740 | 396 | |
|
36467
52aa83c47311
Replaced purple_plugin_loads_on_query() with purple_plugin_is_internal().
Ankit Vani <a@nevitus.org>
parents:
36464
diff
changeset
|
397 | if (purple_plugin_is_internal(plug)) |
|
15336
a2454071e986
[gaim-migrate @ 18064]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
15177
diff
changeset
|
398 | continue; |
| 11740 | 399 | |
| 400 | gtk_list_store_append (ls, &iter); | |
|
12702
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
401 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
402 | if (purple_plugin_info_get_name(info)) { |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
403 | name = g_markup_escape_text(_(purple_plugin_info_get_name(info)), -1); |
|
26756
874b154f4220
More Pidgin updates for GTK+ 3.0. Removes any deprecated functions for GLib
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23180
diff
changeset
|
404 | } else { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
405 | char *tmp = g_path_get_basename(purple_plugin_get_filename(plug)); |
|
26756
874b154f4220
More Pidgin updates for GTK+ 3.0. Removes any deprecated functions for GLib
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23180
diff
changeset
|
406 | name = g_markup_escape_text(tmp, -1); |
|
874b154f4220
More Pidgin updates for GTK+ 3.0. Removes any deprecated functions for GLib
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23180
diff
changeset
|
407 | g_free(tmp); |
|
874b154f4220
More Pidgin updates for GTK+ 3.0. Removes any deprecated functions for GLib
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23180
diff
changeset
|
408 | } |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
409 | version = g_markup_escape_text(purple_plugin_info_get_version(info), -1); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
410 | summary = g_markup_escape_text(purple_plugin_info_get_summary(info), -1); |
|
12702
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
411 | |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
412 | desc = g_strdup_printf("<b>%s</b> %s\n%s", name, |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
413 | version, |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
414 | summary); |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
415 | g_free(name); |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
416 | g_free(version); |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
417 | g_free(summary); |
|
fbd3bef47358
[gaim-migrate @ 15045]
Richard Laager <rlaager@pidgin.im>
parents:
12695
diff
changeset
|
418 | |
| 11740 | 419 | gtk_list_store_set(ls, &iter, |
| 15884 | 420 | 0, purple_plugin_is_loaded(plug), |
| 11740 | 421 | 1, desc, |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
422 | 2, plug, |
|
36760
88a9488af4e8
Fixed pidgin's plugin list display
Ankit Vani <a@nevitus.org>
parents:
36701
diff
changeset
|
423 | 3, purple_plugin_info_get_error(info), |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
424 | -1); |
| 11740 | 425 | g_free(desc); |
| 426 | } | |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
427 | |
|
36430
559d5d9d8a6c
Refactored the codebase to remove purple_plugins_free_found_list()
Ankit Vani <a@nevitus.org>
parents:
36422
diff
changeset
|
428 | g_list_free(plugins); |
| 11740 | 429 | } |
| 430 | ||
|
36780
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
431 | static gboolean |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
432 | check_if_loaded(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
433 | { |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
434 | PurplePlugin *plugin; |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
435 | gtk_tree_model_get(model, iter, 2, &plugin, -1); |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
436 | gtk_list_store_set(GTK_LIST_STORE(model), iter, |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
437 | 0, purple_plugin_is_loaded(plugin), |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
438 | -1); |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
439 | return FALSE; |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
440 | } |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
441 | |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
442 | static void |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
443 | update_loaded_plugins(GtkTreeModel *model) |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
444 | { |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
445 | gtk_tree_model_foreach(model, check_if_loaded, NULL); |
| 11740 | 446 | } |
| 447 | ||
| 15884 | 448 | static void plugin_loading_common(PurplePlugin *plugin, GtkTreeView *view, gboolean loaded) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
449 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
450 | GtkTreeIter iter; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
451 | GtkTreeModel *model = gtk_tree_view_get_model(view); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
452 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
453 | if (gtk_tree_model_get_iter_first(model, &iter)) { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
454 | do { |
| 15884 | 455 | PurplePlugin *plug; |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
456 | GtkTreeSelection *sel; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
457 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
458 | gtk_tree_model_get(model, &iter, 2, &plug, -1); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
459 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
460 | if (plug != plugin) |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
461 | continue; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
462 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
463 | gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, loaded, -1); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
464 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
465 | /* If the loaded/unloaded plugin is the selected row, |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
466 | * update the pref_button. */ |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
467 | sel = gtk_tree_view_get_selection(view); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
468 | if (gtk_tree_selection_get_selected(sel, &model, &iter)) |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
469 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
470 | gtk_tree_model_get(model, &iter, 2, &plug, -1); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
471 | if (plug == plugin) |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
472 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
473 | gtk_widget_set_sensitive(pref_button, |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
474 | pidgin_plugin_has_prefs(plug)); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
475 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
476 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
477 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
478 | break; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
479 | } while (gtk_tree_model_iter_next(model, &iter)); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
480 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
481 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
482 | |
| 15884 | 483 | static void plugin_load_cb(PurplePlugin *plugin, gpointer data) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
484 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
485 | GtkTreeView *view = (GtkTreeView *)data; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
486 | plugin_loading_common(plugin, view, TRUE); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
487 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
488 | |
| 15884 | 489 | static void plugin_unload_cb(PurplePlugin *plugin, gpointer data) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
490 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
491 | GtkTreeView *view = (GtkTreeView *)data; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
492 | plugin_loading_common(plugin, view, FALSE); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
493 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
494 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
495 | static void plugin_unload_confirm_cb(gpointer *data) |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
496 | { |
| 15884 | 497 | PurplePlugin *plugin = (PurplePlugin *)data[0]; |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
498 | GtkTreeModel *model = (GtkTreeModel *)data[1]; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
499 | GtkTreeIter *iter = (GtkTreeIter *)data[2]; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
500 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
501 | plugin_toggled_stage_two(plugin, model, iter, NULL, TRUE); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
502 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
503 | g_free(data); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
504 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
505 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
506 | static void plugin_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
| 11740 | 507 | { |
| 508 | GtkTreeModel *model = (GtkTreeModel *)data; | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
509 | GtkTreeIter *iter = g_new(GtkTreeIter, 1); |
| 11740 | 510 | GtkTreePath *path = gtk_tree_path_new_from_string(pth); |
| 15884 | 511 | PurplePlugin *plug; |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
512 | GError *error = NULL; |
| 11740 | 513 | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
514 | gtk_tree_model_get_iter(model, iter, path); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
515 | gtk_tree_path_free(path); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
516 | gtk_tree_model_get(model, iter, 2, &plug, -1); |
| 11740 | 517 | |
| 15884 | 518 | if (!purple_plugin_is_loaded(plug)) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
519 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
520 | pidgin_set_cursor(plugin_dialog, GDK_WATCH); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
521 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
522 | purple_plugin_load(plug, &error); |
|
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
523 | plugin_toggled_stage_two(plug, model, iter, error, FALSE); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
524 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
525 | pidgin_clear_cursor(plugin_dialog); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
526 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
527 | else |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
528 | { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
529 | pref_dialog_close(plug); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
530 | |
|
36440
58d31fb6330a
Refactored the codebase according to the API changes
Ankit Vani <a@nevitus.org>
parents:
36438
diff
changeset
|
531 | if (purple_plugin_get_dependent_plugins(plug) != NULL) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
532 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
533 | GString *tmp = g_string_new(_("The following plugins will be unloaded.")); |
| 36438 | 534 | GSList *l; |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
535 | gpointer *cb_data; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
536 | |
|
36440
58d31fb6330a
Refactored the codebase according to the API changes
Ankit Vani <a@nevitus.org>
parents:
36438
diff
changeset
|
537 | for (l = purple_plugin_get_dependent_plugins(plug); l != NULL ; l = l->next) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
538 | { |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
539 | const char *dep_name = (const char *)l->data; |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
540 | PurplePlugin *dep_plugin = purple_plugins_find_plugin(dep_name); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
541 | PurplePluginInfo *dep_info; |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
542 | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
543 | g_return_if_fail(dep_plugin != NULL); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
544 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
545 | dep_info = purple_plugin_get_info(dep_plugin); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
546 | g_string_append_printf(tmp, "\n\t%s\n", purple_plugin_info_get_name(dep_info)); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
547 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
548 | |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
549 | cb_data = g_new(gpointer, 3); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
550 | cb_data[0] = plug; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
551 | cb_data[1] = model; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
552 | cb_data[2] = iter; |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
553 | |
|
21175
c6d76b49c206
disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents:
21174
diff
changeset
|
554 | purple_request_action(plugin_dialog, NULL, |
|
34331
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33271
diff
changeset
|
555 | _("Multiple plugins will be unloaded."), |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33271
diff
changeset
|
556 | tmp->str, 0, NULL, cb_data, 2, |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33271
diff
changeset
|
557 | _("Unload Plugins"), |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33271
diff
changeset
|
558 | G_CALLBACK(plugin_unload_confirm_cb), |
|
c8486462bb63
Request API refactoring: switch purple_request_action to PurpleRequestCommonParameters
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
33271
diff
changeset
|
559 | _("Cancel"), g_free); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
560 | g_string_free(tmp, TRUE); |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
561 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
562 | else |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
563 | plugin_toggled_stage_two(plug, model, iter, NULL, TRUE); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
564 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
565 | } |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
566 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
567 | static void plugin_toggled_stage_two(PurplePlugin *plug, GtkTreeModel *model, GtkTreeIter *iter, GError *error, gboolean unload) |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
568 | { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
569 | PurplePluginInfo *info = purple_plugin_get_info(plug); |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
570 | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
571 | if (unload) |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
572 | { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
573 | pidgin_set_cursor(plugin_dialog, GDK_WATCH); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
574 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
575 | if (!purple_plugin_unload(plug, &error)) |
|
20872
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
576 | { |
|
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
577 | const char *primary = _("Could not unload plugin"); |
|
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
578 | const char *reload = _("The plugin could not be unloaded now, but will be disabled at the next startup."); |
|
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
579 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
580 | char *tmp = g_strdup_printf("%s\n\n%s", reload, error->message); |
| 36782 | 581 | purple_notify_warning(NULL, NULL, primary, tmp, NULL); |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
582 | g_free(tmp); |
|
20872
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
583 | |
|
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
584 | purple_plugin_disable(plug); |
|
fc317689cfef
Use the new purple_plugin_disable() function and purple_plugin_unload()'s
Richard Laager <rlaager@pidgin.im>
parents:
20147
diff
changeset
|
585 | } |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
586 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
587 | pidgin_clear_cursor(plugin_dialog); |
| 11781 | 588 | } |
|
36831
9d29e248716d
Notify plugin load error in pidgin
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
589 | else if (!unload && error) |
|
9d29e248716d
Notify plugin load error in pidgin
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
590 | { |
|
9d29e248716d
Notify plugin load error in pidgin
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
591 | purple_notify_warning(NULL, NULL, _("Could not load plugin"), error->message, NULL); |
|
9d29e248716d
Notify plugin load error in pidgin
Ankit Vani <a@nevitus.org>
parents:
36782
diff
changeset
|
592 | } |
| 11740 | 593 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
594 | gtk_widget_set_sensitive(pref_button, pidgin_plugin_has_prefs(plug)); |
| 11740 | 595 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
596 | if (error != NULL) |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
597 | { |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
598 | gchar *name = g_markup_escape_text(purple_plugin_info_get_name(info), -1); |
| 11781 | 599 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
600 | gchar *disp_error = g_markup_escape_text(error->message, -1); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
601 | gchar *text; |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
602 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
603 | text = g_strdup_printf( |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
604 | "<b>%s</b> %s\n<span weight=\"bold\" color=\"red\"%s</span>", |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
605 | purple_plugin_info_get_name(info), |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
606 | purple_plugin_info_get_version(info), disp_error); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
607 | gtk_list_store_set(GTK_LIST_STORE (model), iter, |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
608 | 1, text, |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
609 | -1); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
610 | g_free(text); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
611 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
612 | text = g_strdup_printf( |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
613 | "<span weight=\"bold\" color=\"red\">%s</span>", |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
614 | disp_error); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
615 | gtk_label_set_markup(plugin_error, text); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
616 | g_free(text); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
617 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
618 | g_free(disp_error); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
619 | g_free(name); |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
620 | |
|
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
621 | g_error_free(error); |
| 11740 | 622 | } |
| 623 | ||
|
36780
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
624 | if ((unload && purple_plugin_get_dependent_plugins(plug)) || |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
625 | (!unload && purple_plugin_info_get_dependencies(info))) |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
626 | update_loaded_plugins(model); |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
627 | else |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
628 | gtk_list_store_set(GTK_LIST_STORE (model), iter, |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
629 | 0, purple_plugin_is_loaded(plug), |
|
2e95872a71c3
Update the automatically loaded plugins via dependencies/dependent plugins on plugin load/unload in pidgin
Ankit Vani <a@nevitus.org>
parents:
36760
diff
changeset
|
630 | -1); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
631 | g_free(iter); |
| 11740 | 632 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
633 | pidgin_plugins_save(); |
| 11740 | 634 | } |
| 635 | ||
| 11877 | 636 | static gboolean ensure_plugin_visible(void *data) |
| 637 | { | |
| 638 | GtkTreeSelection *sel = GTK_TREE_SELECTION(data); | |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
639 | GtkTreeView *tv = gtk_tree_selection_get_tree_view(sel); |
| 11877 | 640 | GtkTreeModel *model = gtk_tree_view_get_model(tv); |
| 641 | GtkTreePath *path; | |
| 642 | GtkTreeIter iter; | |
| 643 | if (!gtk_tree_selection_get_selected (sel, &model, &iter)) | |
| 644 | return FALSE; | |
| 645 | path = gtk_tree_model_get_path(model, &iter); | |
| 646 | gtk_tree_view_scroll_to_cell(gtk_tree_selection_get_tree_view(sel), path, NULL, FALSE, 0, 0); | |
| 647 | gtk_tree_path_free(path); | |
| 648 | return FALSE; | |
| 649 | } | |
| 650 | ||
| 11740 | 651 | static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) |
| 652 | { | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
653 | gchar *buf, *tmp, *name, *version; |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
654 | gchar *authors = NULL; |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
655 | const gchar * const *authorlist; |
| 11740 | 656 | GtkTreeIter iter; |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12343
diff
changeset
|
657 | GValue val; |
| 15884 | 658 | PurplePlugin *plug; |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
659 | PurplePluginInfo *info; |
| 11740 | 660 | |
|
11833
119ea75db24b
[gaim-migrate @ 14124]
Mark Doliner <markdoliner@pidgin.im>
parents:
11817
diff
changeset
|
661 | if (!gtk_tree_selection_get_selected (sel, &model, &iter)) |
|
119ea75db24b
[gaim-migrate @ 14124]
Mark Doliner <markdoliner@pidgin.im>
parents:
11817
diff
changeset
|
662 | { |
|
119ea75db24b
[gaim-migrate @ 14124]
Mark Doliner <markdoliner@pidgin.im>
parents:
11817
diff
changeset
|
663 | gtk_widget_set_sensitive(pref_button, FALSE); |
|
12343
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
664 | |
|
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
665 | /* Collapse and disable the expander widget */ |
|
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
666 | gtk_expander_set_expanded(GTK_EXPANDER(expander), FALSE); |
|
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
667 | gtk_widget_set_sensitive(expander, FALSE); |
|
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
668 | |
| 11740 | 669 | return; |
|
11833
119ea75db24b
[gaim-migrate @ 14124]
Mark Doliner <markdoliner@pidgin.im>
parents:
11817
diff
changeset
|
670 | } |
|
119ea75db24b
[gaim-migrate @ 14124]
Mark Doliner <markdoliner@pidgin.im>
parents:
11817
diff
changeset
|
671 | |
|
12343
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
672 | gtk_widget_set_sensitive(expander, TRUE); |
|
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
673 | |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12343
diff
changeset
|
674 | val.g_type = 0; |
| 11740 | 675 | gtk_tree_model_get_value (model, &iter, 2, &val); |
| 676 | plug = g_value_get_pointer(&val); | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
677 | info = purple_plugin_get_info(plug); |
| 11740 | 678 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
679 | name = g_markup_escape_text(purple_plugin_info_get_name(info), -1); |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
680 | version = g_markup_escape_text(purple_plugin_info_get_version(info), -1); |
| 11740 | 681 | buf = g_strdup_printf( |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
682 | "<span size=\"larger\" weight=\"bold\">%s</span> " |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
683 | "<span size=\"smaller\">%s</span>", |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
684 | name, version); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
685 | gtk_label_set_markup(plugin_name, buf); |
|
23180
5d6a0a35837f
applied changes from 97a20dd56598fa5c690eabcbc8ec3ff6e560aefd
Daniel Atallah <datallah@pidgin.im>
parents:
23100
diff
changeset
|
686 | g_free(name); |
|
5d6a0a35837f
applied changes from 97a20dd56598fa5c690eabcbc8ec3ff6e560aefd
Daniel Atallah <datallah@pidgin.im>
parents:
23100
diff
changeset
|
687 | g_free(version); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
688 | g_free(buf); |
| 11740 | 689 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
690 | gtk_text_buffer_set_text(plugin_desc, purple_plugin_info_get_description(info), -1); |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
691 | |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
692 | authorlist = purple_plugin_info_get_authors(info); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
693 | if (authorlist) |
|
36760
88a9488af4e8
Fixed pidgin's plugin list display
Ankit Vani <a@nevitus.org>
parents:
36701
diff
changeset
|
694 | authors = g_strjoinv(",\n", (gchar **)authorlist); |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
695 | gtk_label_set_text(plugin_authors, authors); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
696 | g_free(authors); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
697 | |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
698 | gtk_label_set_text(plugin_filename, purple_plugin_get_filename(plug)); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
699 | |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
700 | g_free(plugin_website_uri); |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
701 | plugin_website_uri = g_strdup(purple_plugin_info_get_website(info)); |
|
36420
7a5cb79a8243
Refactored gtkplugin to use the new API. Handling of dependent plugins on unload is left till GPlugin implements it.
Ankit Vani <a@nevitus.org>
parents:
36417
diff
changeset
|
702 | |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
703 | if (plugin_website_uri) |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
704 | { |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
705 | tmp = g_markup_escape_text(plugin_website_uri, -1); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
706 | buf = g_strdup_printf("<span underline=\"single\" " |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
707 | "foreground=\"blue\">%s</span>", tmp); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
708 | gtk_label_set_markup(plugin_website, buf); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
709 | g_free(tmp); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
710 | g_free(buf); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
711 | } |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
712 | else |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
713 | { |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
714 | gtk_label_set_text(plugin_website, NULL); |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
715 | } |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
716 | |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
717 | if (purple_plugin_info_get_error(info) == NULL) |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
718 | { |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
719 | gtk_label_set_text(plugin_error, NULL); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
720 | } |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
721 | else |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
722 | { |
|
36516
cbf16b28176c
Refactored pidgin according to the changes
Ankit Vani <a@nevitus.org>
parents:
36479
diff
changeset
|
723 | tmp = g_markup_escape_text(purple_plugin_info_get_error(info), -1); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
724 | buf = g_strdup_printf( |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
725 | _("<span foreground=\"red\" weight=\"bold\">" |
|
12705
7780ec726bdb
[gaim-migrate @ 15048]
Richard Laager <rlaager@pidgin.im>
parents:
12702
diff
changeset
|
726 | "Error: %s\n" |
|
7780ec726bdb
[gaim-migrate @ 15048]
Richard Laager <rlaager@pidgin.im>
parents:
12702
diff
changeset
|
727 | "Check the plugin website for an update." |
|
7780ec726bdb
[gaim-migrate @ 15048]
Richard Laager <rlaager@pidgin.im>
parents:
12702
diff
changeset
|
728 | "</span>"), |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
729 | tmp); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
730 | gtk_label_set_markup(plugin_error, buf); |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
731 | g_free(buf); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
732 | g_free(tmp); |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
733 | } |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
734 | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
735 | gtk_widget_set_sensitive(pref_button, pidgin_plugin_has_prefs(plug)); |
|
11817
b8622a510778
[gaim-migrate @ 14108]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11813
diff
changeset
|
736 | |
| 11877 | 737 | /* Make sure the selected plugin is still visible */ |
| 738 | g_idle_add(ensure_plugin_visible, sel); | |
| 739 | ||
| 11740 | 740 | g_value_unset(&val); |
| 741 | } | |
| 742 | ||
| 11741 | 743 | static void plugin_dialog_response_cb(GtkWidget *d, int response, GtkTreeSelection *sel) |
| 11740 | 744 | { |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
745 | PurplePlugin *plugin; |
| 11740 | 746 | GtkTreeModel *model; |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12343
diff
changeset
|
747 | GValue val; |
| 11740 | 748 | GtkTreeIter iter; |
| 36929 | 749 | GList *list, *it; |
| 11740 | 750 | |
|
37234
bfacdb2fbfdc
Prevent a segfault caused by opening the ExtPlacement plugin's config window.
Michael McConville <mmcconville@mykolab.com>
parents:
37158
diff
changeset
|
751 | g_return_if_fail(d != NULL); |
|
bfacdb2fbfdc
Prevent a segfault caused by opening the ExtPlacement plugin's config window.
Michael McConville <mmcconville@mykolab.com>
parents:
37158
diff
changeset
|
752 | |
| 11740 | 753 | switch (response) { |
| 754 | case GTK_RESPONSE_CLOSE: | |
| 755 | case GTK_RESPONSE_DELETE_EVENT: | |
| 15884 | 756 | purple_request_close_with_handle(plugin_dialog); |
| 757 | purple_signals_disconnect_by_handle(plugin_dialog); | |
| 36929 | 758 | list = purple_plugins_find_all(); |
| 759 | for (it = list; it; it = g_list_next(it)) | |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
760 | pref_dialog_close(it->data); |
| 36929 | 761 | g_list_free(list); |
| 11740 | 762 | gtk_widget_destroy(d); |
| 763 | plugin_dialog = NULL; | |
| 764 | break; | |
|
15880
d275b025481c
More Gaim to Pidgin changes
Sean Egan <seanegan@pidgin.im>
parents:
15692
diff
changeset
|
765 | case PIDGIN_RESPONSE_CONFIGURE: |
| 11740 | 766 | if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 767 | return; | |
|
12600
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12343
diff
changeset
|
768 | val.g_type = 0; |
|
7ecd4441fdc7
[gaim-migrate @ 14934]
Richard Laager <rlaager@pidgin.im>
parents:
12343
diff
changeset
|
769 | gtk_tree_model_get_value(model, &iter, 2, &val); |
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
770 | plugin = g_value_get_pointer(&val); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
771 | g_value_unset(&val); |
|
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
772 | if (plugin == NULL) |
| 11740 | 773 | break; |
| 774 | ||
|
34479
7d4651f1035e
Plugins API: add an option to provide plugin configuration using Request API
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
34477
diff
changeset
|
775 | pidgin_plugin_open_config(plugin, GTK_WINDOW(d)); |
| 11781 | 776 | |
| 11740 | 777 | break; |
| 778 | } | |
| 779 | } | |
| 780 | ||
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
781 | static void |
|
13718
f29249a2856c
[gaim-migrate @ 16125]
Richard Laager <rlaager@pidgin.im>
parents:
13436
diff
changeset
|
782 | show_plugin_prefs_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, GtkWidget *dialog) |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
783 | { |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
784 | GtkTreeSelection *sel; |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
785 | GtkTreeIter iter; |
| 15884 | 786 | PurplePlugin *plugin; |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
787 | GtkTreeModel *model; |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
788 | |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
789 | sel = gtk_tree_view_get_selection(view); |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
790 | |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
791 | if (!gtk_tree_selection_get_selected(sel, &model, &iter)) |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
792 | return; |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
793 | |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
794 | gtk_tree_model_get(model, &iter, 2, &plugin, -1); |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
795 | |
| 15884 | 796 | if (!purple_plugin_is_loaded(plugin)) |
|
12174
3b0b53e84591
[gaim-migrate @ 14476]
Richard Laager <rlaager@pidgin.im>
parents:
12162
diff
changeset
|
797 | return; |
|
3b0b53e84591
[gaim-migrate @ 14476]
Richard Laager <rlaager@pidgin.im>
parents:
12162
diff
changeset
|
798 | |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
799 | /* Now show the pref-dialog for the plugin */ |
|
15880
d275b025481c
More Gaim to Pidgin changes
Sean Egan <seanegan@pidgin.im>
parents:
15692
diff
changeset
|
800 | plugin_dialog_response_cb(dialog, PIDGIN_RESPONSE_CONFIGURE, sel); |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
801 | } |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
802 | |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
803 | static gboolean |
|
33161
c248c062f272
Pass the cairo context to the tooltip paint function.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33158
diff
changeset
|
804 | pidgin_plugins_paint_tooltip(GtkWidget *tipwindow, cairo_t *cr, gpointer data) |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
805 | { |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
806 | PangoLayout *layout = g_object_get_data(G_OBJECT(tipwindow), "tooltip-plugin"); |
|
33271
53bf180b9eb1
Use GtkStyleContext instead of GtkStyle on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
807 | GtkStyleContext *context = gtk_widget_get_style_context(tipwindow); |
|
53bf180b9eb1
Use GtkStyleContext instead of GtkStyle on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
808 | gtk_style_context_add_class(context, GTK_STYLE_CLASS_TOOLTIP); |
|
53bf180b9eb1
Use GtkStyleContext instead of GtkStyle on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
809 | gtk_render_layout(context, cr, 6, 6, layout); |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
810 | return TRUE; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
811 | } |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
812 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
813 | static gboolean |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
814 | pidgin_plugins_create_tooltip(GtkWidget *tipwindow, GtkTreePath *path, |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
815 | gpointer data, int *w, int *h) |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
816 | { |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
817 | GtkTreeIter iter; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
818 | GtkTreeView *treeview = GTK_TREE_VIEW(data); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
819 | PurplePlugin *plugin = NULL; |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
820 | PurplePluginInfo *info; |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
821 | GtkTreeModel *model = gtk_tree_view_get_model(treeview); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
822 | PangoLayout *layout; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
823 | int width, height; |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
824 | const char * const *authorlist; |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
825 | char *markup, *name, *desc; |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
826 | char *authors = NULL, *pauthors = NULL; |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
827 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
828 | if (!gtk_tree_model_get_iter(model, &iter, path)) |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
829 | return FALSE; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
830 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
831 | gtk_tree_model_get(model, &iter, 2, &plugin, -1); |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
832 | info = purple_plugin_get_info(plugin); |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
833 | authorlist = purple_plugin_info_get_authors(info); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
834 | |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
835 | if (authorlist) |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
836 | authors = g_strjoinv(", ", (gchar **)authorlist); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
837 | if (authors) |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
838 | pauthors = g_markup_escape_text(authors, -1); |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
839 | |
|
22533
7e1e39d5db7e
Allow translation/transliteration foo in the plugin window tooltip.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22065
diff
changeset
|
840 | markup = g_strdup_printf("<span size='x-large' weight='bold'>%s</span>\n<b>%s:</b> %s\n<b>%s:</b> %s", |
|
36431
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
841 | name = g_markup_escape_text(purple_plugin_info_get_name(info), -1), |
|
ea007725fd4d
Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents:
36430
diff
changeset
|
842 | _("Description"), desc = g_markup_escape_text(purple_plugin_info_get_description(info), -1), |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
843 | (g_strv_length((gchar **)authorlist) > 1 ? _("Authors") : _("Author")), pauthors); |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
844 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
845 | layout = gtk_widget_create_pango_layout(tipwindow, NULL); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
846 | pango_layout_set_markup(layout, markup, -1); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
847 | pango_layout_set_wrap(layout, PANGO_WRAP_WORD); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
848 | pango_layout_set_width(layout, 600000); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
849 | pango_layout_get_size(layout, &width, &height); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
850 | g_object_set_data_full(G_OBJECT(tipwindow), "tooltip-plugin", layout, g_object_unref); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
851 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
852 | if (w) |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
853 | *w = PANGO_PIXELS(width) + 12; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
854 | if (h) |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
855 | *h = PANGO_PIXELS(height) + 12; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
856 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
857 | g_free(markup); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
858 | g_free(name); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
859 | g_free(desc); |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
860 | g_free(pauthors); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
861 | g_free(authors); |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
862 | |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
863 | return TRUE; |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
864 | } |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
865 | |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
866 | static gboolean |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
867 | website_button_motion_cb(GtkWidget *button, GdkEventCrossing *event, |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
868 | gpointer unused) |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
869 | { |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
870 | if (plugin_website_uri) { |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
871 | pidgin_set_cursor(button, GDK_HAND2); |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
872 | return TRUE; |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
873 | } |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
874 | return FALSE; |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
875 | } |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
876 | |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
877 | static gboolean |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
878 | website_button_clicked_cb(GtkButton *button, GdkEventButton *event, |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
879 | gpointer unused) |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
880 | { |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
881 | if (plugin_website_uri) { |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
882 | purple_notify_uri(NULL, plugin_website_uri); |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
883 | return TRUE; |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
884 | } |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
885 | return FALSE; |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
886 | } |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
887 | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
888 | static GtkWidget * |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
889 | create_details() |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
890 | { |
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35454
diff
changeset
|
891 | GtkBox *vbox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 3)); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
892 | GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
893 | GtkWidget *label, *view, *website_button; |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
894 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
895 | plugin_name = GTK_LABEL(gtk_label_new(NULL)); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
896 | gtk_label_set_xalign(plugin_name, 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
897 | gtk_label_set_yalign(plugin_name, 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
898 | gtk_label_set_line_wrap(plugin_name, FALSE); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
899 | gtk_label_set_selectable(plugin_name, TRUE); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
900 | gtk_box_pack_start(vbox, GTK_WIDGET(plugin_name), FALSE, FALSE, 0); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
901 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
902 | view = gtk_text_view_new(); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
903 | plugin_desc = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
904 | g_object_set(view, "wrap-mode", GTK_WRAP_WORD, |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
905 | "editable", FALSE, |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
906 | "left-margin", PIDGIN_HIG_CAT_SPACE, |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
907 | "right-margin", PIDGIN_HIG_CAT_SPACE, |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
908 | NULL); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
909 | gtk_box_pack_start(vbox, view, TRUE, TRUE, 0); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
910 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
911 | plugin_error = GTK_LABEL(gtk_label_new(NULL)); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
912 | gtk_label_set_xalign(plugin_error, 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
913 | gtk_label_set_yalign(plugin_error, 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
914 | gtk_label_set_line_wrap(plugin_error, FALSE); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
915 | gtk_label_set_selectable(plugin_error, TRUE); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
916 | gtk_box_pack_start(vbox, GTK_WIDGET(plugin_error), FALSE, FALSE, 0); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
917 | |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
918 | plugin_authors = GTK_LABEL(gtk_label_new(NULL)); |
|
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
919 | gtk_label_set_line_wrap(plugin_authors, FALSE); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
920 | gtk_label_set_xalign(plugin_authors, 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
921 | gtk_label_set_yalign(plugin_authors, 0); |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
922 | gtk_label_set_selectable(plugin_authors, TRUE); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
923 | pidgin_add_widget_to_vbox(vbox, "", sg, |
|
36644
e06a238d2864
Refactored pidgin to show multiple authors
Ankit Vani <a@nevitus.org>
parents:
36516
diff
changeset
|
924 | GTK_WIDGET(plugin_authors), TRUE, &label); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
925 | gtk_label_set_markup(GTK_LABEL(label), _("<b>Written by:</b>")); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
926 | gtk_label_set_xalign(GTK_LABEL(label), 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
927 | gtk_label_set_yalign(GTK_LABEL(label), 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
928 | |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
929 | website_button = gtk_event_box_new(); |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
930 | gtk_event_box_set_visible_window(GTK_EVENT_BOX(website_button), FALSE); |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
931 | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
932 | plugin_website = GTK_LABEL(gtk_label_new(NULL)); |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
933 | g_object_set(G_OBJECT(plugin_website), |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
934 | "ellipsize", PANGO_ELLIPSIZE_MIDDLE, NULL); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
935 | gtk_label_set_xalign(plugin_website, 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
936 | gtk_label_set_yalign(plugin_website, 0); |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
937 | gtk_container_add(GTK_CONTAINER(website_button), |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
938 | GTK_WIDGET(plugin_website)); |
|
22788
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
939 | g_signal_connect(website_button, "button-release-event", |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
940 | G_CALLBACK(website_button_clicked_cb), NULL); |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
941 | g_signal_connect(website_button, "enter-notify-event", |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
942 | G_CALLBACK(website_button_motion_cb), NULL); |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
943 | g_signal_connect(website_button, "leave-notify-event", |
|
113ae3a1f584
Use an event-box instead of a button for the link, and change the cursor
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
22785
diff
changeset
|
944 | G_CALLBACK(pidgin_clear_cursor), NULL); |
|
22785
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
945 | |
|
d712839ebf36
Make plugin website URLs clickable; it's a button with blue underlined text.
Will Thompson <resiak@pidgin.im>
parents:
22781
diff
changeset
|
946 | pidgin_add_widget_to_vbox(vbox, "", sg, website_button, TRUE, &label); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
947 | gtk_label_set_markup(GTK_LABEL(label), _("<b>Web site:</b>")); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
948 | gtk_label_set_xalign(GTK_LABEL(label), 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
949 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
950 | plugin_filename = GTK_LABEL(gtk_label_new(NULL)); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
951 | gtk_label_set_line_wrap(plugin_filename, FALSE); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
952 | gtk_label_set_xalign(plugin_filename, 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
953 | gtk_label_set_yalign(plugin_filename, 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
954 | gtk_label_set_selectable(plugin_filename, TRUE); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
955 | pidgin_add_widget_to_vbox(vbox, "", sg, |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
956 | GTK_WIDGET(plugin_filename), TRUE, &label); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
957 | gtk_label_set_markup(GTK_LABEL(label), _("<b>Filename:</b>")); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
958 | gtk_label_set_xalign(GTK_LABEL(label), 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
959 | gtk_label_set_yalign(GTK_LABEL(label), 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
960 | |
|
23180
5d6a0a35837f
applied changes from 97a20dd56598fa5c690eabcbc8ec3ff6e560aefd
Daniel Atallah <datallah@pidgin.im>
parents:
23100
diff
changeset
|
961 | g_object_unref(sg); |
|
5d6a0a35837f
applied changes from 97a20dd56598fa5c690eabcbc8ec3ff6e560aefd
Daniel Atallah <datallah@pidgin.im>
parents:
23100
diff
changeset
|
962 | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
963 | return GTK_WIDGET(vbox); |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
964 | } |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
965 | |
|
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
966 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
967 | void pidgin_plugin_dialog_show() |
| 11740 | 968 | { |
| 969 | GtkWidget *event_view; | |
| 970 | GtkListStore *ls; | |
| 971 | GtkCellRenderer *rend, *rendt; | |
| 972 | GtkTreeViewColumn *col; | |
| 973 | GtkTreeSelection *sel; | |
| 974 | ||
| 975 | if (plugin_dialog != NULL) { | |
| 976 | gtk_window_present(GTK_WINDOW(plugin_dialog)); | |
| 977 | return; | |
| 978 | } | |
| 979 | ||
|
33168
f51e53d27b99
Fix a minor warning.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33161
diff
changeset
|
980 | plugin_dialog = gtk_dialog_new(); |
|
f51e53d27b99
Fix a minor warning.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33161
diff
changeset
|
981 | gtk_window_set_title(GTK_WINDOW(plugin_dialog), _("Plugins")); |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
982 | pref_button = gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
|
15880
d275b025481c
More Gaim to Pidgin changes
Sean Egan <seanegan@pidgin.im>
parents:
15692
diff
changeset
|
983 | _("Configure Pl_ugin"), PIDGIN_RESPONSE_CONFIGURE); |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
984 | gtk_dialog_add_button(GTK_DIALOG(plugin_dialog), |
|
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
985 | GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); |
| 11813 | 986 | gtk_widget_set_sensitive(pref_button, FALSE); |
| 11747 | 987 | gtk_window_set_role(GTK_WINDOW(plugin_dialog), "plugins"); |
| 11740 | 988 | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
989 | ls = gtk_list_store_new(4, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN); |
| 11740 | 990 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(ls), |
| 991 | 1, GTK_SORT_ASCENDING); | |
| 992 | ||
| 993 | update_plugin_list(ls); | |
| 11813 | 994 | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
995 | event_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(ls)); |
| 11740 | 996 | |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
997 | g_signal_connect(G_OBJECT(event_view), "row-activated", |
|
13718
f29249a2856c
[gaim-migrate @ 16125]
Richard Laager <rlaager@pidgin.im>
parents:
13436
diff
changeset
|
998 | G_CALLBACK(show_plugin_prefs_cb), plugin_dialog); |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12066
diff
changeset
|
999 | |
| 15884 | 1000 | purple_signal_connect(purple_plugins_get_handle(), "plugin-load", plugin_dialog, |
| 1001 | PURPLE_CALLBACK(plugin_load_cb), event_view); | |
| 1002 | purple_signal_connect(purple_plugins_get_handle(), "plugin-unload", plugin_dialog, | |
| 1003 | PURPLE_CALLBACK(plugin_unload_cb), event_view); | |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
1004 | |
| 11740 | 1005 | rend = gtk_cell_renderer_toggle_new(); |
| 1006 | sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1007 | ||
| 1008 | col = gtk_tree_view_column_new_with_attributes (_("Enabled"), | |
| 1009 | rend, | |
| 1010 | "active", 0, | |
| 1011 | NULL); | |
| 1012 | gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
|
11794
6c39942d27a9
[gaim-migrate @ 14085]
Gary Kramlich <grim@reaperworld.com>
parents:
11783
diff
changeset
|
1013 | gtk_tree_view_column_set_sort_column_id(col, 0); |
|
12927
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
1014 | g_signal_connect(G_OBJECT(rend), "toggled", |
|
f3e4ef8958a3
[gaim-migrate @ 15280]
Richard Laager <rlaager@pidgin.im>
parents:
12889
diff
changeset
|
1015 | G_CALLBACK(plugin_toggled), ls); |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
1016 | |
| 11740 | 1017 | rendt = gtk_cell_renderer_text_new(); |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
1018 | g_object_set(rendt, |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
1019 | "foreground", "#c0c0c0", |
|
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
1020 | NULL); |
| 11740 | 1021 | col = gtk_tree_view_column_new_with_attributes (_("Name"), |
| 1022 | rendt, | |
| 1023 | "markup", 1, | |
|
12695
0c93a42b7ee2
[gaim-migrate @ 15038]
Richard Laager <rlaager@pidgin.im>
parents:
12600
diff
changeset
|
1024 | "foreground-set", 3, |
| 11740 | 1025 | NULL); |
| 1026 | gtk_tree_view_column_set_expand (col, TRUE); | |
| 1027 | g_object_set(rendt, "ellipsize", PANGO_ELLIPSIZE_END, NULL); | |
| 1028 | gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
|
11794
6c39942d27a9
[gaim-migrate @ 14085]
Gary Kramlich <grim@reaperworld.com>
parents:
11783
diff
changeset
|
1029 | gtk_tree_view_column_set_sort_column_id(col, 1); |
| 11740 | 1030 | g_object_unref(G_OBJECT(ls)); |
|
33158
ad941796372e
Remove some added trailing spaces.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33133
diff
changeset
|
1031 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(plugin_dialog))), |
|
36210
115560993ff5
Make the plugin preferences frame scrollable
Daniel Atallah <datallah@pidgin.im>
parents:
31321
diff
changeset
|
1032 | pidgin_make_scrollable(event_view, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1), |
|
31321
1fef3832cfa2
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
Gabriel Schulhof <nix@go-nix.ca>
parents:
30785
diff
changeset
|
1033 | TRUE, TRUE, 0); |
|
15177
8b6c66e09388
[gaim-migrate @ 17901]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14359
diff
changeset
|
1034 | gtk_tree_view_set_search_column(GTK_TREE_VIEW(event_view), 1); |
|
8b6c66e09388
[gaim-migrate @ 17901]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
14359
diff
changeset
|
1035 | gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(event_view), |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
1036 | pidgin_tree_view_search_equal_func, NULL, NULL); |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12240
diff
changeset
|
1037 | |
|
22065
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
1038 | pidgin_tooltip_setup_for_treeview(event_view, event_view, |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
1039 | pidgin_plugins_create_tooltip, |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
1040 | pidgin_plugins_paint_tooltip); |
|
4bfdea9613d1
Add tooltips to the plugin window. I did it mostly to test the new tooltip
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
21352
diff
changeset
|
1041 | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
1042 | |
| 11740 | 1043 | expander = gtk_expander_new(_("<b>Plugin Details</b>")); |
| 1044 | gtk_expander_set_use_markup(GTK_EXPANDER(expander), TRUE); | |
|
12343
0ede7c5a9465
[gaim-migrate @ 14647]
Mark Doliner <markdoliner@pidgin.im>
parents:
12290
diff
changeset
|
1045 | gtk_widget_set_sensitive(expander, FALSE); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
1046 | gtk_container_add(GTK_CONTAINER(expander), create_details()); |
|
33133
9a31f084f259
Fix some merge errors.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32438
diff
changeset
|
1047 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(plugin_dialog))), |
|
33170
ce4447562d64
Add checks for old GTK+2 stuff.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33168
diff
changeset
|
1048 | expander, FALSE, FALSE, 0); |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
1049 | |
| 11740 | 1050 | |
| 1051 | g_signal_connect (G_OBJECT (sel), "changed", G_CALLBACK (prefs_plugin_sel), NULL); | |
| 1052 | g_signal_connect(G_OBJECT(plugin_dialog), "response", G_CALLBACK(plugin_dialog_response_cb), sel); | |
|
22781
c85c7a3609dc
Improve the layout of the plugin description pane.
Will Thompson <resiak@pidgin.im>
parents:
22608
diff
changeset
|
1053 | gtk_window_set_default_size(GTK_WINDOW(plugin_dialog), 430, 530); |
|
30760
7b0121a454cd
Auto-parent the Plugins dialog.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29500
diff
changeset
|
1054 | |
|
30785
9c4ea3886ce5
Remove an unnecessary cast. Get's rid of this compile warning:
Mark Doliner <markdoliner@pidgin.im>
parents:
30760
diff
changeset
|
1055 | pidgin_auto_parent_window(plugin_dialog); |
|
30760
7b0121a454cd
Auto-parent the Plugins dialog.
Gabriel Schulhof <nix@go-nix.ca>
parents:
29500
diff
changeset
|
1056 | |
| 11740 | 1057 | gtk_widget_show_all(plugin_dialog); |
| 1058 | } |