Tue, 27 May 2003 08:09:10 +0000
[gaim-migrate @ 5938]
No more connection_has_mail()!
| 981 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 | * | |
| 6 | * This program is free software; you can redistribute it and/or modify | |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation; either version 2 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program; if not, write to the Free Software | |
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 | * | |
| 20 | */ | |
| 21 | ||
|
2417
7751d1269b09
[gaim-migrate @ 2430]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2403
diff
changeset
|
22 | #include "gaim.h" |
| 4687 | 23 | #include "gtkutils.h" |
|
5228
83adaad2deb1
[gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
5211
diff
changeset
|
24 | #include "gtkblist.h" |
| 981 | 25 | #include "prpl.h" |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
26 | #include "notify.h" |
|
2050
4e44376b2c6f
[gaim-migrate @ 2060]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2007
diff
changeset
|
27 | #include <sys/types.h> |
|
4e44376b2c6f
[gaim-migrate @ 2060]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2007
diff
changeset
|
28 | #include <sys/stat.h> |
|
4e44376b2c6f
[gaim-migrate @ 2060]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2007
diff
changeset
|
29 | #include <unistd.h> |
| 4235 | 30 | #include <string.h> |
| 4802 | 31 | #include <errno.h> |
|
1000
66436e94d53f
[gaim-migrate @ 1010]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
981
diff
changeset
|
32 | |
| 3738 | 33 | #ifdef _WIN32 |
| 34 | #include "win32dep.h" | |
| 35 | #endif | |
| 36 | ||
| 981 | 37 | GSList *protocols = NULL; |
| 38 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
39 | GtkWidget *protomenu = NULL; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
40 | |
|
1500
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
41 | struct _prompt { |
|
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
42 | GtkWidget *window; |
|
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
43 | GtkWidget *entry; |
| 3466 | 44 | void (*doit)(void *, const char *); |
|
1500
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
45 | void (*dont)(void *); |
|
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
46 | void *data; |
|
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
47 | }; |
|
f8a21f4aa105
[gaim-migrate @ 1510]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
48 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
49 | GaimPlugin * |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
50 | gaim_find_prpl(GaimProtocol type) |
| 981 | 51 | { |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
52 | GSList *l; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
53 | GaimPlugin *plugin; |
| 981 | 54 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
55 | for (l = protocols; l != NULL; l = l->next) { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
56 | plugin = (GaimPlugin *)l->data; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
57 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
58 | /* Just In Case (TM) */ |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
59 | if (GAIM_IS_PROTOCOL_PLUGIN(plugin)) { |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
60 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
61 | if (GAIM_PLUGIN_PROTOCOL_INFO(plugin)->protocol == type) |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
62 | return plugin; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
63 | } |
| 981 | 64 | } |
| 65 | ||
| 66 | return NULL; | |
| 67 | } | |
| 68 | ||
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
69 | static void proto_act(GtkObject *obj, struct proto_actions_menu *pam) |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
70 | { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
71 | if (pam->callback && pam->gc) |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
72 | pam->callback(pam->gc); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
73 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
74 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
75 | void do_proto_menu() |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
76 | { |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
77 | GtkWidget *menuitem; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
78 | GtkWidget *submenu; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
79 | GaimPluginProtocolInfo *prpl_info = NULL; |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
80 | GList *l; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
81 | GSList *c = connections; |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
82 | struct proto_actions_menu *pam; |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
83 | struct gaim_connection *gc = NULL; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
84 | int count = 0; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
85 | char buf[256]; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
86 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
87 | if (!protomenu) |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
88 | return; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
89 | |
| 4635 | 90 | l = gtk_container_get_children(GTK_CONTAINER(protomenu)); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
91 | while (l) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
92 | menuitem = l->data; |
| 4635 | 93 | pam = g_object_get_data(G_OBJECT(menuitem), "proto_actions_menu"); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
94 | if (pam) |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
95 | g_free(pam); |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
96 | gtk_container_remove(GTK_CONTAINER(protomenu), GTK_WIDGET(menuitem)); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
97 | l = l->next; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
98 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
99 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
100 | while (c) { |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
101 | gc = c->data; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
102 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
103 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
104 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
105 | if (prpl_info->actions && gc->login_time) |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
106 | count++; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
107 | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
108 | c = g_slist_next(c); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
109 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
110 | c = connections; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
111 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
112 | if (!count) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
113 | g_snprintf(buf, sizeof(buf), _("No actions available")); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
114 | menuitem = gtk_menu_item_new_with_label(buf); |
| 4635 | 115 | gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
116 | gtk_widget_show(menuitem); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
117 | return; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
118 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
119 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
120 | if (count == 1) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
121 | GList *act; |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
122 | while (c) { |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
123 | gc = c->data; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
124 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
125 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
126 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
127 | if (prpl_info->actions && gc->login_time) |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
128 | break; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
129 | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
130 | c = g_slist_next(c); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
131 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
132 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
133 | act = prpl_info->actions(gc); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
134 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
135 | while (act) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
136 | if (act->data) { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
137 | struct proto_actions_menu *pam = act->data; |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
138 | menuitem = gtk_menu_item_new_with_label(pam->label); |
| 4635 | 139 | gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
140 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
141 | G_CALLBACK(proto_act), pam); |
| 4635 | 142 | g_object_set_data(G_OBJECT(menuitem), "proto_actions_menu", pam); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
143 | gtk_widget_show(menuitem); |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
144 | } else { |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
145 | gaim_separator(protomenu); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
146 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
147 | act = g_list_next(act); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
148 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
149 | } else { |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
150 | while (c) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
151 | GList *act; |
| 5154 | 152 | GdkPixbuf *pixbuf, *scale; |
| 153 | GtkWidget *image; | |
| 154 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
155 | gc = c->data; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
156 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
157 | prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
158 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
159 | if (!prpl_info->actions || !gc->login_time) { |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
160 | c = g_slist_next(c); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
161 | continue; |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
162 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
163 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
164 | g_snprintf(buf, sizeof(buf), "%s (%s)", |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
165 | gc->username, gc->prpl->info->name); |
| 5161 | 166 | menuitem = gtk_image_menu_item_new_with_label(buf); |
| 167 | ||
| 5154 | 168 | pixbuf = create_prpl_icon(gc->account); |
| 169 | if(pixbuf) { | |
| 170 | scale = gdk_pixbuf_scale_simple(pixbuf, 16, 16, | |
| 171 | GDK_INTERP_BILINEAR); | |
| 172 | image = gtk_image_new_from_pixbuf(scale); | |
| 173 | g_object_unref(G_OBJECT(pixbuf)); | |
| 174 | g_object_unref(G_OBJECT(scale)); | |
| 5161 | 175 | gtk_widget_show(image); |
| 176 | gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuitem), image); | |
| 5154 | 177 | } |
| 178 | ||
| 4635 | 179 | gtk_menu_shell_append(GTK_MENU_SHELL(protomenu), menuitem); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
180 | gtk_widget_show(menuitem); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
181 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
182 | submenu = gtk_menu_new(); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
183 | gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
184 | gtk_widget_show(submenu); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
185 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
186 | act = prpl_info->actions(gc); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
187 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
188 | while (act) { |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
189 | if (act->data) { |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
190 | struct proto_actions_menu *pam = act->data; |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
191 | menuitem = gtk_menu_item_new_with_label(pam->label); |
| 4635 | 192 | gtk_menu_shell_append(GTK_MENU_SHELL(submenu), menuitem); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
193 | g_signal_connect(G_OBJECT(menuitem), "activate", |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
194 | G_CALLBACK(proto_act), pam); |
| 4635 | 195 | g_object_set_data(G_OBJECT(menuitem), "proto_actions_menu", |
| 196 | pam); | |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
197 | gtk_widget_show(menuitem); |
|
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4309
diff
changeset
|
198 | } else { |
|
1536
b7f4756b2b31
[gaim-migrate @ 1546]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1530
diff
changeset
|
199 | gaim_separator(submenu); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
200 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
201 | act = g_list_next(act); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
202 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
203 | c = g_slist_next(c); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
204 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
205 | } |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1470
diff
changeset
|
206 | } |
|
2050
4e44376b2c6f
[gaim-migrate @ 2060]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2007
diff
changeset
|
207 | |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
208 | struct icon_data { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
209 | struct gaim_connection *gc; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
210 | char *who; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
211 | void *data; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
212 | int len; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
213 | }; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
214 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
215 | static GList *icons = NULL; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
216 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
217 | static gint find_icon_data(gconstpointer a, gconstpointer b) |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
218 | { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
219 | const struct icon_data *x = a; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
220 | const struct icon_data *y = b; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
221 | |
| 4793 | 222 | return ((x->gc != y->gc) || gaim_utf8_strcasecmp(x->who, y->who)); |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
223 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
224 | |
| 4777 | 225 | void set_icon_data(struct gaim_connection *gc, const char *who, void *data, int len) |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
226 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
227 | struct gaim_conversation *conv; |
| 3281 | 228 | struct icon_data tmp; |
| 229 | GList *l; | |
| 230 | struct icon_data *id; | |
| 4757 | 231 | struct buddy *b; |
| 4799 | 232 | /* i'm going to vent here a little bit about normalize(). normalize() |
| 233 | * uses a static buffer, so when we call functions that use normalize() from | |
| 234 | * functions that use normalize(), whose parameters are the result of running | |
| 235 | * normalize(), bad things happen. To prevent some of this, we're going | |
| 236 | * to make a copy of what we get from normalize(), so we know nothing else | |
| 237 | * touches it, and buddy icons don't go to the wrong person. Some day I | |
| 238 | * will kill normalize(), and dance on its grave. That will be a very happy | |
| 239 | * day for everyone. | |
| 240 | * --ndw | |
| 241 | */ | |
| 242 | char *realwho = g_strdup(normalize(who)); | |
| 3281 | 243 | tmp.gc = gc; |
| 4799 | 244 | tmp.who = realwho; |
| 3281 | 245 | tmp.data=NULL; |
| 4799 | 246 | tmp.len = 0; |
| 3281 | 247 | l = g_list_find_custom(icons, &tmp, find_icon_data); |
| 248 | id = l ? l->data : NULL; | |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
249 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
250 | if (id) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
251 | g_free(id->data); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
252 | if (!data) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
253 | icons = g_list_remove(icons, id); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
254 | g_free(id->who); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
255 | g_free(id); |
| 4799 | 256 | g_free(realwho); |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
257 | return; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
258 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
259 | } else if (data) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
260 | id = g_new0(struct icon_data, 1); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
261 | icons = g_list_append(icons, id); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
262 | id->gc = gc; |
| 4799 | 263 | id->who = g_strdup(realwho); |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
264 | } else { |
| 4799 | 265 | g_free(realwho); |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
266 | return; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
267 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
268 | |
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
269 | gaim_debug(GAIM_DEBUG_MISC, "prpl", "Got icon for %s (length %d)\n", |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
270 | realwho, len); |
|
2284
3a2222ceff7d
[gaim-migrate @ 2294]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2279
diff
changeset
|
271 | |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
272 | id->data = g_memdup(data, len); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
273 | id->len = len; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
274 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
275 | /* Update the buddy icon for this user. */ |
| 4799 | 276 | conv = gaim_find_conversation(realwho); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
277 | |
| 4687 | 278 | /* XXX Buddy Icon should probalby be part of struct buddy instead of this weird global |
| 279 | * linked list stuff. */ | |
| 280 | ||
| 4799 | 281 | if ((b = gaim_find_buddy(gc->account, realwho)) != NULL) { |
| 4757 | 282 | char *random = g_strdup_printf("%x", g_random_int()); |
| 283 | char *filename = g_build_filename(gaim_user_dir(), "icons", random, | |
| 284 | NULL); | |
| 285 | char *dirname = g_build_filename(gaim_user_dir(), "icons", NULL); | |
| 286 | char *old_icon = gaim_buddy_get_setting(b, "buddy_icon"); | |
| 4687 | 287 | FILE *file = NULL; |
| 288 | ||
| 4757 | 289 | g_free(random); |
| 290 | ||
| 4802 | 291 | if(!g_file_test(dirname, G_FILE_TEST_IS_DIR)) { |
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
292 | gaim_debug(GAIM_DEBUG_INFO, "buddy icons", |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
293 | "Creating icon cache directory.\n"); |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
294 | |
| 4802 | 295 | if(mkdir(dirname, S_IRUSR | S_IWUSR | S_IXUSR) < 0) |
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
296 | gaim_debug(GAIM_DEBUG_ERROR, "buddy icons", |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
297 | "Unable to create directory %s: %s\n", |
|
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
298 | dirname, strerror(errno)); |
| 4802 | 299 | } |
| 4757 | 300 | |
| 301 | g_free(dirname); | |
| 302 | ||
| 4687 | 303 | file = fopen(filename, "wb"); |
| 4757 | 304 | if (file) { |
| 305 | fwrite(data, 1, len, file); | |
| 306 | fclose(file); | |
| 307 | } | |
| 308 | ||
| 309 | if(old_icon) { | |
| 310 | unlink(old_icon); | |
| 311 | g_free(old_icon); | |
| 312 | } | |
| 313 | ||
| 314 | gaim_buddy_set_setting(b, "buddy_icon", filename); | |
| 315 | gaim_blist_save(); | |
| 316 | ||
| 317 | g_free(filename); | |
| 318 | ||
| 319 | gaim_blist_update_buddy_icon(b); | |
| 4687 | 320 | } |
| 4757 | 321 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
322 | if (conv != NULL && gaim_conversation_get_gc(conv) == gc) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4349
diff
changeset
|
323 | gaim_gtkconv_update_buddy_icon(conv); |
| 4799 | 324 | |
| 325 | g_free(realwho); | |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
326 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
327 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
328 | void remove_icon_data(struct gaim_connection *gc) |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
329 | { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
330 | GList *list = icons; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
331 | struct icon_data *id; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
332 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
333 | while (list) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
334 | id = list->data; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
335 | if (id->gc == gc) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
336 | g_free(id->data); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
337 | g_free(id->who); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
338 | list = icons = g_list_remove(icons, id); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
339 | g_free(id); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
340 | } else |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
341 | list = list->next; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
342 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
343 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
344 | |
| 4777 | 345 | void *get_icon_data(struct gaim_connection *gc, const char *who, int *len) |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
346 | { |
|
2718
89bcc8fa8bfd
[gaim-migrate @ 2731]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2662
diff
changeset
|
347 | struct icon_data tmp = { gc, normalize(who), NULL, 0 }; |
|
2191
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
348 | GList *l = g_list_find_custom(icons, &tmp, find_icon_data); |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
349 | struct icon_data *id = l ? l->data : NULL; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
350 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
351 | if (id) { |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
352 | *len = id->len; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
353 | return id->data; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
354 | } |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
355 | |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
356 | *len = 0; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
357 | return NULL; |
|
a40e37f5bf27
[gaim-migrate @ 2201]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2189
diff
changeset
|
358 | } |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
359 | |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
360 | struct got_add { |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
361 | struct gaim_connection *gc; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
362 | char *who; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
363 | char *alias; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
364 | }; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
365 | |
| 3730 | 366 | static void dont_add(struct got_add *ga) |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
367 | { |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
368 | g_free(ga->who); |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
369 | if (ga->alias) |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
370 | g_free(ga->alias); |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
371 | g_free(ga); |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
372 | } |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
373 | |
| 3730 | 374 | static void do_add(struct got_add *ga) |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
375 | { |
|
2585
7f3e347fc1d2
[gaim-migrate @ 2598]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2582
diff
changeset
|
376 | if (g_slist_find(connections, ga->gc)) |
|
7f3e347fc1d2
[gaim-migrate @ 2598]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2582
diff
changeset
|
377 | show_add_buddy(ga->gc, ga->who, NULL, ga->alias); |
| 3730 | 378 | dont_add(ga); |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
379 | } |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
380 | |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
381 | void show_got_added(struct gaim_connection *gc, const char *id, |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
382 | const char *who, const char *alias, const char *msg) |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
383 | { |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
384 | char buf[BUF_LONG]; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
385 | struct got_add *ga = g_new0(struct got_add, 1); |
| 4687 | 386 | struct buddy *b = gaim_find_buddy(gc->account, who); |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
387 | |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
388 | ga->gc = gc; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
389 | ga->who = g_strdup(who); |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
390 | ga->alias = alias ? g_strdup(alias) : NULL; |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
391 | |
| 4349 | 392 | |
| 3150 | 393 | g_snprintf(buf, sizeof(buf), _("%s%s%s%s has made %s his or her buddy%s%s%s"), |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
394 | who, |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
395 | alias ? " (" : "", |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
396 | alias ? alias : "", |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
397 | alias ? ")" : "", |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
398 | id ? id : gc->displayname[0] ? gc->displayname : gc->username, |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
399 | msg ? ": " : ".", |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
400 | msg ? msg : "", |
| 4349 | 401 | b ? "" : _("\n\nDo you wish to add him or her to your buddy list?")); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
402 | |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
403 | if (b) { |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
404 | gaim_notify_info(NULL, NULL, _("Gaim - Information"), buf); |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
405 | } |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
406 | else |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5496
diff
changeset
|
407 | gaim_request_action(NULL, NULL, _("Add buddy to your list?"), buf, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5496
diff
changeset
|
408 | 0, ga, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5496
diff
changeset
|
409 | _("Add"), G_CALLBACK(do_add), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5496
diff
changeset
|
410 | _("Cancel"), G_CALLBACK(dont_add)); |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2558
diff
changeset
|
411 | } |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
412 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
413 | static GtkWidget *regdlg = NULL; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
414 | static GtkWidget *reg_list = NULL; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
415 | static GtkWidget *reg_area = NULL; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
416 | static GtkWidget *reg_reg = NULL; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
417 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
418 | static void delete_regdlg() |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
419 | { |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
420 | GtkWidget *tmp = regdlg; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
421 | regdlg = NULL; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
422 | if (tmp) |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
423 | gtk_widget_destroy(tmp); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
424 | } |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
425 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
426 | static void reset_reg_dlg() |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
427 | { |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
428 | GSList *P = protocols; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
429 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
430 | if (!regdlg) |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
431 | return; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
432 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
433 | while (GTK_BOX(reg_list)->children) |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
434 | gtk_container_remove(GTK_CONTAINER(reg_list), |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
435 | ((GtkBoxChild *)GTK_BOX(reg_list)->children->data)->widget); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
436 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
437 | while (GTK_BOX(reg_area)->children) |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
438 | gtk_container_remove(GTK_CONTAINER(reg_area), |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
439 | ((GtkBoxChild *)GTK_BOX(reg_area)->children->data)->widget); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
440 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
441 | while (P) { |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
442 | GaimPlugin *p = P->data; |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
443 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
444 | if (GAIM_PLUGIN_PROTOCOL_INFO(p)->register_user) |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
445 | break; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
446 | |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
447 | P = P->next; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
448 | } |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
449 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
450 | if (!P) { |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
451 | GtkWidget *no = gtk_label_new(_("You do not currently have any protocols available" |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
452 | " that are able to register new accounts.")); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
453 | gtk_box_pack_start(GTK_BOX(reg_area), no, FALSE, FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
454 | gtk_widget_show(no); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
455 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
456 | gtk_widget_set_sensitive(reg_reg, FALSE); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
457 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
458 | return; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
459 | } |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
460 | |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
461 | gtk_widget_set_sensitive(reg_reg, TRUE); |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
462 | |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
463 | while (P) { /* we can safely ignore all the previous ones */ |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
464 | GaimPlugin *p = P->data; |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
465 | P = P->next; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
466 | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5161
diff
changeset
|
467 | if (GAIM_PLUGIN_PROTOCOL_INFO(p)->register_user) |
|
2843
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
468 | continue; |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
469 | |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
470 | /* do stuff */ |
|
6dd0497437e3
[gaim-migrate @ 2856]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
471 | } |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
472 | } |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
473 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
474 | void register_dialog() |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
475 | { |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
476 | /* this is just one big hack */ |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
477 | GtkWidget *vbox; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
478 | GtkWidget *frame; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
479 | GtkWidget *hbox; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
480 | GtkWidget *close; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
481 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
482 | if (regdlg) { |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
483 | gdk_window_raise(regdlg->window); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
484 | return; |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
485 | } |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
486 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
487 | regdlg = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
488 | gtk_window_set_title(GTK_WINDOW(regdlg), _("Gaim - Registration")); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4053
diff
changeset
|
489 | gtk_window_set_role(GTK_WINDOW(regdlg), "register"); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
490 | gtk_widget_realize(regdlg); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
491 | g_signal_connect(G_OBJECT(regdlg), "destroy", |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
492 | G_CALLBACK(delete_regdlg), NULL); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
493 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
494 | vbox = gtk_vbox_new(FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
495 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
496 | gtk_container_add(GTK_CONTAINER(regdlg), vbox); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
497 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
498 | reg_list = gtk_hbox_new(FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
499 | gtk_box_pack_start(GTK_BOX(vbox), reg_list, FALSE, FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
500 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
501 | frame = gtk_frame_new(_("Registration Information")); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
502 | gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
503 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
504 | reg_area = gtk_hbox_new(FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
505 | gtk_container_add(GTK_CONTAINER(frame), reg_area); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
506 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
507 | hbox = gtk_hbox_new(FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
508 | gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
509 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4966
diff
changeset
|
510 | close = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
511 | gtk_box_pack_end(GTK_BOX(hbox), close, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
512 | g_signal_connect(G_OBJECT(close), "clicked", |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5271
diff
changeset
|
513 | G_CALLBACK(delete_regdlg), NULL); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
514 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4966
diff
changeset
|
515 | reg_reg = gaim_pixbuf_button_from_stock(_("Register"), GTK_STOCK_JUMP_TO, GAIM_BUTTON_HORIZONTAL); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
516 | gtk_box_pack_end(GTK_BOX(hbox), reg_reg, FALSE, FALSE, 5); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
517 | |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
518 | /* fuck me */ |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
519 | reset_reg_dlg(); |
|
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
520 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4966
diff
changeset
|
521 | gtk_widget_show_all(regdlg); |
|
2827
e3d10df95e74
[gaim-migrate @ 2840]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2725
diff
changeset
|
522 | } |
| 3035 | 523 |