src/gtkplugin.c

Wed, 02 Jun 2004 00:44:51 +0000

author
Tim Ringenbach <marv@pidgin.im>
date
Wed, 02 Jun 2004 00:44:51 +0000
changeset 9161
0561de0af1c6
parent 8046
c581b20a47d6
child 9791
f5c5bda0b96b
permissions
-rw-r--r--

[gaim-migrate @ 9946]
wing added support for yahoo profiles in, well pretty much every language.
Looks pretty impressive to me.

Someone may want to double check his src/util.c changes. I think we have
some crazy patch writers who know those functions better than me.
This also introduces a couple of warning because wing didn't add his new
util.c function to util.h. Rather than adding it myself, I'm going to bug
him to add it and document it.

5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
6927
528988ef2781 [gaim-migrate @ 7474]
Christian Hammond <chipx86@chipx86.com>
parents: 5982
diff changeset
2 * @file gtkplugin.c GTK+ Plugins support
528988ef2781 [gaim-migrate @ 7474]
Christian Hammond <chipx86@chipx86.com>
parents: 5982
diff changeset
3 * @ingroup gtkui
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 * gaim
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 *
8046
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 6927
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 6927
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
c581b20a47d6 [gaim-migrate @ 8730]
Sean Egan <seanegan@pidgin.im>
parents: 6927
diff changeset
9 * source distribution.
6927
528988ef2781 [gaim-migrate @ 7474]
Christian Hammond <chipx86@chipx86.com>
parents: 5982
diff changeset
10 *
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 * (at your option) any later version.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 * GNU General Public License for more details.
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 */
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 #include "gtkplugin.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"
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
28
5205
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #include <string.h>
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 GtkWidget *
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 gaim_gtk_plugin_get_config_frame(GaimPlugin *plugin)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 {
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 GaimGtkPluginUiInfo *ui_info;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 g_return_val_if_fail(plugin != NULL, NULL);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 g_return_val_if_fail(GAIM_IS_GTK_PLUGIN(plugin), NULL);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 if (plugin->info->ui_info == NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 return NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 ui_info = GAIM_GTK_PLUGIN_UI_INFO(plugin);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44 if (ui_info->get_config_frame == NULL)
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
45 return NULL;
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
47 return ui_info->get_config_frame(plugin);
242b8aa81328 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
48 }
5981
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
49
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
50 void
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
51 gaim_gtk_plugins_save(void)
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
52 {
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
53 GList *pl;
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
54 GList *files = NULL;
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
55 GaimPlugin *p;
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
56
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
57 for (pl = gaim_plugins_get_loaded(); pl != NULL; pl = pl->next) {
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
58 p = pl->data;
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
59
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
60 if (p->info->type != GAIM_PLUGIN_PROTOCOL &&
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
61 p->info->type != GAIM_PLUGIN_LOADER) {
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
62
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
63 files = g_list_append(files, p->path);
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
64 }
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
65 }
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
66
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
67 gaim_prefs_set_string_list("/gaim/gtk/plugins/loaded", files);
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
68 g_list_free(files);
c91ece01ad12 [gaim-migrate @ 6429]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
69 }

mercurial