Mercurial > pidgin
annotate src/dialogs.c @ 4685:794cc8ec1166
[gaim-migrate @ 4996]
this fixes the ever-red tabs, the convo titles not switching, and some other
fun stuff. Oh, and the font-face button in the convo toolbar is back.
committer: Tailor Script <tailor@pidgin.im>
| author | Nathan Walp <nwalp@pidgin.im> |
|---|---|
| date | Mon, 10 Mar 2003 04:11:18 +0000 |
| parents | 4bf9c6e8e432 |
| children | 283fb289c510 |
| rev | line source |
|---|---|
| 1 | 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 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2086
diff
changeset
|
23 #include <config.h> |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
24 #endif |
| 1 | 25 #include <string.h> |
| 26 #include <stdio.h> | |
| 27 #include <stdlib.h> | |
| 28 #include <sys/types.h> | |
| 29 #include <sys/stat.h> | |
| 30 #include <fcntl.h> | |
|
967
17ff662183b2
[gaim-migrate @ 977]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
31 #include <ctype.h> |
| 3630 | 32 |
| 33 #ifdef _WIN32 | |
| 34 #include <winsock.h> | |
| 35 #else | |
| 1 | 36 #include <sys/socket.h> |
| 3630 | 37 #include <time.h> |
| 1 | 38 #include <netdb.h> |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
39 #include <netinet/in.h> |
| 1 | 40 #include <unistd.h> |
| 41 #include <arpa/inet.h> | |
| 3630 | 42 #endif |
| 43 | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
44 #include <errno.h> |
| 3048 | 45 #include <math.h> |
| 1 | 46 |
| 47 #include <gtk/gtk.h> | |
| 48 #include "gaim.h" | |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
49 #include "gtkimhtml.h" |
|
1270
babea41afa7e
[gaim-migrate @ 1280]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1267
diff
changeset
|
50 #include "prpl.h" |
| 1 | 51 |
| 3630 | 52 #ifdef _WIN32 |
| 53 #include "win32dep.h" | |
| 54 #endif | |
| 55 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
56 #include "pixmaps/gnome_preferences.xpm" |
| 441 | 57 #include "pixmaps/cancel.xpm" |
| 58 #include "pixmaps/save.xpm" | |
| 443 | 59 #include "pixmaps/ok.xpm" |
| 459 | 60 #include "pixmaps/add.xpm" |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
61 #include "pixmaps/close.xpm" |
| 441 | 62 |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
63 #define PATHSIZE 1024 |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
64 |
| 728 | 65 GdkColor bgcolor; |
| 66 GdkColor fgcolor; | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
67 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
68 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ |
| 1 | 69 static GList *dialogwindows = NULL; |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
70 static GtkWidget *importdialog; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
71 static struct gaim_connection *importgc; |
| 2344 | 72 static GtkWidget *icondlg; |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
73 static GtkWidget *aliasdlg = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
74 static GtkWidget *aliasentry = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
75 static GtkWidget *aliasname = NULL; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
76 static GtkWidget *rename_dialog = NULL; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
77 static GtkWidget *rename_bud_dialog = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
78 |
| 3649 | 79 |
| 2743 | 80 struct confirm_del { |
| 81 GtkWidget *window; | |
| 82 GtkWidget *label; | |
| 83 GtkWidget *ok; | |
| 84 GtkWidget *cancel; | |
| 85 char name[1024]; | |
| 86 struct gaim_connection *gc; | |
| 87 }; | |
| 88 | |
| 1 | 89 struct create_away { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
90 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
91 GtkWidget *entry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
92 GtkWidget *text; |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
93 struct away_message *mess; |
| 1 | 94 }; |
| 95 | |
| 96 struct warning { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
97 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
98 GtkWidget *anon; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
99 char *who; |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
967
diff
changeset
|
100 struct gaim_connection *gc; |
| 1 | 101 }; |
| 102 | |
| 103 struct addbuddy { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
104 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
105 GtkWidget *combo; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
106 GtkWidget *entry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
107 GtkWidget *entry_for_alias; |
| 2527 | 108 GtkWidget *account; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
109 struct gaim_connection *gc; |
| 1 | 110 }; |
| 111 | |
| 112 struct addperm { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
113 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
114 GtkWidget *entry; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
115 struct gaim_connection *gc; |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
116 gboolean permit; |
| 1 | 117 }; |
| 118 | |
| 119 struct addbp { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
120 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
121 GtkWidget *nameentry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
122 GtkWidget *messentry; |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
123 GtkWidget *commentry; |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
124 GtkWidget *command; |
| 1 | 125 GtkWidget *sendim; |
| 126 GtkWidget *openwindow; | |
| 2550 | 127 GtkWidget *popupnotify; |
| 1137 | 128 GtkWidget *p_signon; |
| 129 GtkWidget *p_unaway; | |
| 130 GtkWidget *p_unidle; | |
| 2993 | 131 GtkWidget *p_typing; |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
132 GtkWidget *save; |
| 1137 | 133 GtkWidget *menu; |
| 1694 | 134 GtkWidget *sound; |
| 135 GtkWidget *soundentry; | |
| 1139 | 136 |
| 4491 | 137 struct gaim_account *account; |
| 2986 | 138 struct buddy_pounce *buddy_pounce; |
| 1 | 139 }; |
| 140 | |
| 141 struct findbyemail { | |
| 142 GtkWidget *window; | |
| 143 GtkWidget *emailentry; | |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
144 struct gaim_connection *gc; |
| 1 | 145 }; |
| 146 | |
| 147 struct findbyinfo { | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
148 struct gaim_connection *gc; |
| 1 | 149 GtkWidget *window; |
| 150 GtkWidget *firstentry; | |
| 151 GtkWidget *middleentry; | |
| 152 GtkWidget *lastentry; | |
| 153 GtkWidget *maidenentry; | |
| 154 GtkWidget *cityentry; | |
| 155 GtkWidget *stateentry; | |
| 156 GtkWidget *countryentry; | |
| 157 }; | |
| 158 | |
| 159 struct info_dlg { | |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
160 struct gaim_connection *gc; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
161 char *who; |
| 1 | 162 GtkWidget *window; |
| 163 GtkWidget *text; | |
| 164 }; | |
| 3197 | 165 |
| 166 struct getuserinfo { | |
| 167 GtkWidget *window; | |
| 168 GtkWidget *entry; | |
| 169 GtkWidget *account; | |
| 170 struct gaim_connection *gc; | |
| 171 }; | |
| 172 | |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
173 static GSList *info_dlgs = NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
174 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
175 static struct info_dlg *find_info_dlg(struct gaim_connection *gc, char *who) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
176 { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
177 GSList *i = info_dlgs; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
178 while (i) { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
179 struct info_dlg *d = i->data; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
180 i = i->next; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
181 if (d->gc != gc) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
182 continue; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
183 if (d->who == NULL) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
184 continue; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
185 if (!who) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
186 continue; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
187 if (!g_strcasecmp(normalize(who), d->who)) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
188 return d; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
189 } |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
190 return NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
191 } |
| 1 | 192 |
| 193 struct set_info_dlg { | |
| 194 GtkWidget *window; | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
195 GtkWidget *menu; |
| 4491 | 196 struct gaim_account *account; |
| 1 | 197 GtkWidget *text; |
| 198 GtkWidget *save; | |
| 199 GtkWidget *cancel; | |
| 200 }; | |
| 201 | |
| 2344 | 202 struct set_icon_dlg { |
| 203 GtkWidget *window; | |
| 4491 | 204 struct gaim_account *account; |
| 2344 | 205 GtkWidget *ok; |
| 206 GtkWidget *cancel; | |
| 207 GtkWidget *entry; | |
| 208 }; | |
| 209 | |
| 1 | 210 struct set_dir_dlg { |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
211 struct gaim_connection *gc; |
| 1 | 212 GtkWidget *window; |
| 213 GtkWidget *first; | |
| 214 GtkWidget *middle; | |
| 215 GtkWidget *last; | |
| 216 GtkWidget *maiden; | |
| 217 GtkWidget *city; | |
| 218 GtkWidget *state; | |
| 219 GtkWidget *country; | |
| 220 GtkWidget *web; | |
| 221 GtkWidget *cancel; | |
| 222 GtkWidget *save; | |
| 223 }; | |
| 224 | |
| 225 struct linkdlg { | |
| 226 GtkWidget *ok; | |
| 227 GtkWidget *cancel; | |
| 228 GtkWidget *window; | |
| 229 GtkWidget *url; | |
| 230 GtkWidget *text; | |
| 231 GtkWidget *toggle; | |
| 232 GtkWidget *entry; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
233 struct gaim_conversation *c; |
| 1 | 234 }; |
| 235 | |
| 146 | 236 struct passwddlg { |
| 237 GtkWidget *window; | |
| 238 GtkWidget *ok; | |
| 239 GtkWidget *cancel; | |
| 240 GtkWidget *original; | |
| 241 GtkWidget *new1; | |
| 242 GtkWidget *new2; | |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
243 struct gaim_connection *gc; |
| 146 | 244 }; |
| 1 | 245 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
246 struct view_log { |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
247 long offset; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
248 int options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
249 char *name; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
250 GtkWidget *bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
251 GtkWidget *window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
252 GtkWidget *layout; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
253 }; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
254 |
| 4119 | 255 /* Wrapper to get all the text from a GtkTextView */ |
| 256 gchar* gtk_text_view_get_text(GtkTextView *text, gboolean include_hidden_chars) | |
| 257 { | |
| 258 GtkTextBuffer *buffer; | |
| 259 GtkTextIter start, end; | |
| 260 | |
| 261 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); | |
| 262 gtk_text_buffer_get_start_iter(buffer, &start); | |
| 263 gtk_text_buffer_get_end_iter(buffer, &end); | |
| 264 | |
| 265 return gtk_text_buffer_get_text(buffer, &start, &end, include_hidden_chars); | |
| 266 } | |
| 267 | |
| 1 | 268 /*------------------------------------------------------------------------*/ |
| 269 /* Destroys */ | |
| 270 /*------------------------------------------------------------------------*/ | |
| 271 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
272 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct gaim_conversation *c) |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
273 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
274 struct gaim_gtk_conversation *gtkconv; |
| 605 | 275 gchar *object_data; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
276 |
| 4635 | 277 object_data = g_object_get_data(G_OBJECT(w), "dialog_type"); |
| 605 | 278 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
279 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
280 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
281 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
282 if (w == gtkconv->dialogs.fg_color) { |
| 4635 | 283 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
284 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
285 gtkconv->dialogs.fg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
286 } else { |
| 4635 | 287 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
288 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
289 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
290 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
291 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { |
| 4635 | 292 gtk_toggle_button_set_active( |
| 4685 | 293 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
294 gtkconv->dialogs.font = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
295 } else if (!g_strcasecmp(object_data, "smiley dialog")) { |
| 4635 | 296 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
297 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
298 gtkconv->dialogs.smiley = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
299 } else if (!g_strcasecmp(object_data, "log dialog")) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
300 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
301 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
302 gtkconv->dialogs.log = NULL; |
| 608 | 303 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
304 |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
305 dialogwindows = g_list_remove(dialogwindows, w); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
306 gtk_widget_destroy(w); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
307 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
308 return FALSE; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
309 } |
| 1 | 310 |
| 311 static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 312 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
313 GtkWidget *dest; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
314 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
315 if (!GTK_IS_WIDGET(w2)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
316 dest = w; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
317 else |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
318 dest = w2; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
319 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
320 if (dest == imdialog) |
| 1 | 321 imdialog = NULL; |
| 322 | |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
323 if (dest == importdialog) { |
| 1 | 324 importdialog = NULL; |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
325 importgc = NULL; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
326 } |
| 1 | 327 |
| 2344 | 328 if (dest == icondlg) |
| 329 icondlg = NULL; | |
| 330 | |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
331 if (dest == aliasdlg) { |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
332 aliasdlg = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
333 aliasentry = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
334 aliasname = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
335 } |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
336 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
337 if (dest == rename_dialog) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
338 rename_dialog = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
339 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
340 if (dest == rename_bud_dialog) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
341 rename_bud_dialog = NULL; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
342 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
343 dialogwindows = g_list_remove(dialogwindows, dest); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
344 gtk_widget_destroy(dest); |
| 1 | 345 |
| 346 } | |
| 347 | |
| 348 | |
| 349 void destroy_all_dialogs() | |
| 350 { | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
351 while (dialogwindows) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
352 destroy_dialog(NULL, dialogwindows->data); |
| 1 | 353 |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
354 if (awaymessage) |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
355 do_im_back(NULL, NULL); |
| 84 | 356 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
357 if (imdialog) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
358 destroy_dialog(NULL, imdialog); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
359 imdialog = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
360 } |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
361 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
362 if (importdialog) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
363 destroy_dialog(NULL, importdialog); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
364 importdialog = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
365 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
366 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
367 if (icondlg) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
368 destroy_dialog(NULL, icondlg); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
369 icondlg = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
370 } |
| 1 | 371 } |
| 372 | |
| 3757 | 373 static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
| 1 | 374 { |
| 3757 | 375 if (resp == GTK_RESPONSE_OK) |
| 376 serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
377 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
378 destroy_dialog(NULL, w->window); |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
379 g_free(w); |
|
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
380 } |
| 1 | 381 |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
967
diff
changeset
|
382 void show_warn_dialog(struct gaim_connection *gc, char *who) |
| 1 | 383 { |
| 3757 | 384 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); |
| 385 char *labeltext; | |
| 386 GtkWidget *hbox, *vbox; | |
| 1 | 387 GtkWidget *label; |
| 3757 | 388 GtkWidget *img = gtk_image_new_from_file(filename); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
389 struct gaim_conversation *c = gaim_find_conversation(who); |
| 441 | 390 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
391 struct warning *w = g_new0(struct warning, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
392 w->who = who; |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
393 w->gc = gc; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
394 |
| 3757 | 395 g_free(filename); |
| 396 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 397 | |
| 4586 | 398 w->window = gtk_dialog_new_with_buttons(_("Gaim - Warn User"), GTK_WINDOW(c->window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("_Warn"), GTK_RESPONSE_OK, NULL); |
| 4118 | 399 gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); |
| 3757 | 400 g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(do_warn), w); |
| 401 | |
| 402 gtk_container_set_border_width (GTK_CONTAINER(w->window), 6); | |
| 403 gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
| 404 gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
| 405 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), 12); | |
| 406 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), 6); | |
| 407 | |
| 408 hbox = gtk_hbox_new(FALSE, 12); | |
| 409 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
| 410 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 411 | |
| 412 vbox = gtk_vbox_new(FALSE, 0); | |
| 413 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 414 labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
| 415 "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
| 416 label = gtk_label_new(NULL); | |
| 417 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 418 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 419 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 420 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 421 g_free(labeltext); | |
| 422 | |
| 423 w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
| 424 gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
| 425 | |
| 426 hbox = gtk_hbox_new(FALSE, 6); | |
| 427 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 428 img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
| 429 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 430 labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
| 431 /* labeltext = _("Anonymous warnings are less severe."); */ | |
| 432 label = gtk_label_new(NULL); | |
| 433 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 434 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 435 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 436 | |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
437 dialogwindows = g_list_prepend(dialogwindows, w->window); |
| 3757 | 438 gtk_widget_show_all(w->window); |
| 1 | 439 } |
| 440 | |
| 3753 | 441 void do_remove_buddy(struct buddy *b) |
| 2743 | 442 { |
| 4349 | 443 struct group *g = find_group_by_buddy(b); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
444 struct gaim_conversation *c; |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
445 gchar *name = g_strdup(b->name); /* b->name is null after remove_buddy */ |
| 2743 | 446 |
| 447 if (!b) | |
| 448 return; | |
| 449 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
450 g = find_group_by_buddy(b); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
451 |
| 4059 | 452 debug_printf(_("Removing '%s' from buddy list.\n"), b->name); |
| 4491 | 453 serv_remove_buddy(b->account->gc, name, g->name); |
| 4349 | 454 remove_buddy(b); |
| 455 gaim_blist_save(); | |
| 2743 | 456 |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
457 c = gaim_find_conversation(name); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
458 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
459 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
460 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
461 |
|
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
462 g_free(name); |
| 2743 | 463 } |
| 464 | |
| 465 void show_confirm_del(struct gaim_connection *gc, gchar *name) | |
| 466 { | |
| 4491 | 467 struct buddy *bd = find_buddy(gc->account, name); |
| 3753 | 468 char *text; |
| 469 if (!bd) | |
| 470 return; | |
| 471 | |
| 4309 | 472 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), name); |
| 473 do_ask_dialog(_("Remove Buddy"), text, bd, _("Remove Buddy"), do_remove_buddy, _("Cancel"), NULL, NULL, FALSE); | |
| 3753 | 474 g_free(text); |
| 2743 | 475 } |
| 476 | |
| 477 | |
| 1 | 478 |
| 479 /*------------------------------------------------------------------------*/ | |
| 480 /* The dialog for getting an error */ | |
| 481 /*------------------------------------------------------------------------*/ | |
| 482 | |
| 3466 | 483 GtkWidget *do_error_dialog(const char *primary, const char *secondary, int type) |
| 1 | 484 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
485 GtkWidget *d; |
| 1 | 486 GtkWidget *label; |
| 3374 | 487 GtkWidget *img = NULL; |
| 3427 | 488 GtkWidget *hbox; |
| 489 char labeltext[1024 * 2]; | |
| 490 char *filename = NULL; | |
| 491 | |
| 492 /* These are the GTK stock dialog icons with our little Gaim logo on top. | |
| 493 * Inspired by the GIMP. */ | |
| 3374 | 494 switch (type){ |
| 495 case GAIM_LOGO: | |
| 3427 | 496 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); |
| 497 break; | |
| 498 case GAIM_INFO: | |
| 499 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); | |
| 500 break; | |
| 3516 | 501 case GAIM_WARNING: |
| 3427 | 502 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); |
| 503 break; | |
| 3516 | 504 case GAIM_ERROR: |
| 3427 | 505 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); |
| 506 break; | |
| 507 /* case GAIM_QUESTION: | |
| 508 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); | |
| 509 break; | |
| 510 */ | |
| 511 } | |
| 512 if (filename) { | |
| 513 img = gtk_image_new_from_file(filename); | |
| 3523 | 514 g_free(filename); |
| 3427 | 515 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3374 | 516 } |
| 4272 | 517 d = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); |
| 3427 | 518 g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL); |
| 519 | |
| 520 gtk_container_set_border_width (GTK_CONTAINER(d), 6); | |
| 521 gtk_window_set_resizable(GTK_WINDOW(d), FALSE); | |
| 522 gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE); | |
| 523 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(d)->vbox), 12); | |
| 524 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(d)->vbox), 6); | |
| 525 | |
| 526 hbox = gtk_hbox_new(FALSE, 12); | |
| 527 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox); | |
| 528 if (filename) { | |
| 529 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 530 } | |
| 531 gtk_widget_show(img); | |
| 532 | |
| 533 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : ""); | |
| 534 | |
| 535 label = gtk_label_new(NULL); | |
| 536 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
537 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 3427 | 538 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 1 | 539 gtk_widget_show(label); |
| 3427 | 540 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 541 | |
| 542 gtk_widget_show(hbox); | |
| 1 | 543 |
| 544 gtk_widget_show(d); | |
|
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
545 return d; |
| 1 | 546 } |
| 547 | |
| 548 | |
| 549 | |
| 3816 | 550 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 1 | 551 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
552 const char *who; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
553 struct gaim_conversation *conv; |
| 4491 | 554 struct gaim_account *account; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
555 |
| 3802 | 556 if (resp == GTK_RESPONSE_OK) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
557 who = gtk_entry_get_text(GTK_ENTRY(info->entry)); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
558 |
| 4613 | 559 if (!who || !*who) { |
| 560 /* this shouldn't ever happen */ | |
| 3802 | 561 return; |
| 562 } | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
563 |
| 4491 | 564 account = (info->gc ? info->gc->account : NULL); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
565 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
566 conv = gaim_find_conversation(who); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
567 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
568 if (conv == NULL) |
| 4491 | 569 conv = gaim_conversation_new(GAIM_CONV_IM, account, who); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
570 else { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
571 gaim_window_raise(gaim_conversation_get_window(conv)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
572 |
| 4491 | 573 if (account) |
| 574 gaim_conversation_set_account(conv, account); | |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
575 } |
| 1 | 576 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
577 |
| 3816 | 578 destroy_dialog(NULL, imdialog); |
| 579 imdialog = NULL; | |
| 4138 | 580 g_free(info); |
| 1 | 581 } |
| 582 | |
| 3802 | 583 static void do_info(GtkWidget *widget, int resp, struct getuserinfo *info) |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
584 { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
585 char *who; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
586 |
| 3802 | 587 if (resp == GTK_RESPONSE_OK) { |
| 588 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(info->entry)))); | |
| 589 | |
| 590 if (!g_strcasecmp(who, "")) { | |
| 591 g_free(who); | |
| 592 return; | |
| 593 } | |
| 594 | |
| 595 /* what do we want to do about this case? */ | |
| 596 if (info->gc) | |
| 597 serv_get_info(info->gc, who); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
598 g_free(who); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
599 } |
| 3802 | 600 gtk_widget_destroy(GTK_WIDGET(widget)); |
| 4138 | 601 g_free(info); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
602 } |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
603 |
| 1 | 604 void show_ee_dialog(int ee) |
| 605 { | |
| 3767 | 606 GtkWidget *window; |
| 607 GtkWidget *hbox; | |
| 1 | 608 GtkWidget *label; |
| 3767 | 609 |
| 610 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_cool.png", NULL); | |
| 611 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 612 | |
| 613 label = gtk_label_new(NULL); | |
| 1 | 614 if (ee == 0) |
| 3767 | 615 gtk_label_set_markup(GTK_LABEL(label), |
| 616 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); | |
| 1 | 617 else if (ee == 1) |
| 3767 | 618 gtk_label_set_markup(GTK_LABEL(label), |
| 619 "<span weight=\"bold\" size=\"large\" foreground=\"#1f6bad\">Pimpin\' Penguin Style! *Waddle Waddle*</span>"); | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
620 else if (ee == 2) |
| 3767 | 621 gtk_label_set_markup(GTK_LABEL(label), |
| 622 "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>"); | |
| 2472 | 623 else if (ee == 3) |
| 3767 | 624 gtk_label_set_markup(GTK_LABEL(label), |
| 625 "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>"); | |
| 2993 | 626 else if (ee == 4) |
| 3767 | 627 gtk_label_set_markup(GTK_LABEL(label), |
| 628 "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>"); | |
| 3043 | 629 else if (ee == 5) |
| 3767 | 630 gtk_label_set_markup(GTK_LABEL(label), |
| 631 "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>"); | |
| 3152 | 632 else if (ee == 6) |
| 3767 | 633 gtk_label_set_markup(GTK_LABEL(label), |
| 634 "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>"); | |
| 3508 | 635 else if (ee == 7) |
| 3767 | 636 gtk_label_set_markup(GTK_LABEL(label), |
| 637 "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>"); | |
| 3508 | 638 else |
| 3767 | 639 gtk_label_set_markup(GTK_LABEL(label), |
| 640 "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>"); | |
| 641 | |
| 642 window = gtk_dialog_new_with_buttons("", GTK_WINDOW(blist), GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); | |
| 643 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 644 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL); | |
| 3152 | 645 |
| 3767 | 646 gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
| 647 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 648 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 649 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 650 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 651 | |
| 652 hbox = gtk_hbox_new(FALSE, 12); | |
| 653 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 654 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 655 | |
| 656 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 657 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 658 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 659 |
| 3767 | 660 gtk_widget_show_all(window); |
| 1 | 661 } |
| 662 | |
| 4635 | 663 void show_info_select_account(GObject *w, struct gaim_connection *gc) |
| 3816 | 664 { |
| 4635 | 665 struct getuserinfo *info = g_object_get_data(w, "getuserinfo"); |
| 3816 | 666 info->gc = gc; |
| 667 } | |
| 668 | |
| 4614 | 669 static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) { |
| 4613 | 670 const char *txt = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4614 | 671 gtk_dialog_set_response_sensitive(GTK_DIALOG(dlg), GTK_RESPONSE_OK, |
| 4613 | 672 (*txt != '\0')); |
| 673 } | |
| 674 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
675 void show_im_dialog() |
| 1 | 676 { |
| 3802 | 677 GtkWidget *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
678 GtkWidget *label; |
| 3816 | 679 GtkWidget *table, *menu, *opt; |
| 680 GSList *g = connections; | |
| 681 struct gaim_connection *c; | |
| 682 char buf[256]; | |
| 3802 | 683 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 684 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 3816 | 685 struct getuserinfo *info = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
686 |
| 4138 | 687 g_free(filename); |
| 688 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
689 if (!imdialog) { |
| 3816 | 690 info = g_new0(struct getuserinfo, 1); |
| 691 info->gc = connections->data; | |
| 4613 | 692 imdialog = gtk_dialog_new_with_buttons(_("Gaim - New Message"), blist ? GTK_WINDOW(blist) : NULL, GTK_DIALOG_MODAL, |
| 3802 | 693 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 694 gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK); | |
| 695 gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6); | |
| 696 gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE); | |
| 697 gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE); | |
| 698 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12); | |
| 699 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6); | |
| 4613 | 700 gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE); |
| 701 | |
| 3802 | 702 hbox = gtk_hbox_new(FALSE, 12); |
| 703 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox); | |
| 704 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 705 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 706 | |
| 707 vbox = gtk_vbox_new(FALSE, 0); | |
| 708 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4613 | 709 |
| 3802 | 710 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
| 3825 | 711 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
| 3802 | 712 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 713 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 714 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4613 | 715 |
| 3802 | 716 hbox = gtk_hbox_new(FALSE, 6); |
| 717 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4613 | 718 |
| 3816 | 719 table = gtk_table_new(2, 2, FALSE); |
| 720 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 721 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 722 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 723 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 4613 | 724 |
| 3802 | 725 label = gtk_label_new(NULL); |
| 3816 | 726 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); |
| 3823 | 727 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 3816 | 728 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 729 | |
| 730 info->entry = gtk_entry_new(); | |
| 731 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 732 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
| 733 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4613 | 734 g_signal_connect(G_OBJECT(info->entry), "changed", |
| 4614 | 735 G_CALLBACK(dialog_set_ok_sensitive), imdialog); |
| 3816 | 736 |
| 737 if (connections->next) { | |
| 738 | |
| 739 label = gtk_label_new(NULL); | |
| 740 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 741 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
| 742 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4613 | 743 |
| 3816 | 744 info->account = gtk_option_menu_new(); |
| 745 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 746 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
| 4613 | 747 |
| 3816 | 748 menu = gtk_menu_new(); |
| 4613 | 749 |
| 3816 | 750 while (g) { |
| 751 c = (struct gaim_connection *)g->data; | |
| 752 if (!c->prpl->send_im) { | |
| 753 g = g->next; | |
| 754 continue; | |
| 755 } | |
| 756 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); | |
| 757 opt = gtk_menu_item_new_with_label(buf); | |
| 4635 | 758 g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 4613 | 759 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
760 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
761 G_CALLBACK(show_info_select_account), c); |
| 4613 | 762 |
| 4635 | 763 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3816 | 764 g = g->next; |
| 765 } | |
| 4613 | 766 |
| 3816 | 767 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); |
| 768 } | |
| 4613 | 769 |
| 3816 | 770 g_signal_connect(G_OBJECT(imdialog), "response", G_CALLBACK(do_im), info); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
771 } |
| 4613 | 772 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
773 gtk_widget_show_all(imdialog); |
| 3816 | 774 if (info) |
| 775 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 3197 | 776 } |
| 777 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
778 void show_info_dialog() |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
779 { |
| 3802 | 780 GtkWidget *window, *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
781 GtkWidget *label; |
| 3802 | 782 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 783 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 784 GtkWidget *table, *menu, *opt; | |
| 3197 | 785 GSList *g = connections; |
| 786 struct gaim_connection *c; | |
| 787 struct getuserinfo *info = g_new0(struct getuserinfo, 1); | |
| 3802 | 788 char buf[256]; |
| 789 | |
| 4138 | 790 g_free(filename); |
| 3197 | 791 info->gc = connections->data; |
| 792 | |
| 4472 | 793 window = gtk_dialog_new_with_buttons(_("Gaim - Get User Info"), blist ? GTK_WINDOW(blist) : NULL, GTK_DIALOG_MODAL, |
| 3802 | 794 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 795 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 796 gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 797 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 798 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 799 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 800 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 4614 | 801 |
| 3802 | 802 hbox = gtk_hbox_new(FALSE, 12); |
| 803 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 804 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 805 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4614 | 806 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, |
| 807 FALSE); | |
| 808 | |
| 3802 | 809 vbox = gtk_vbox_new(FALSE, 0); |
| 810 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 811 | |
| 812 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); | |
| 813 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 814 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 815 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 816 | |
| 3197 | 817 table = gtk_table_new(2, 2, FALSE); |
| 3802 | 818 gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
| 819 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 820 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 821 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 822 | |
| 823 label = gtk_label_new(NULL); | |
| 824 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 3822 | 825 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3197 | 826 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 827 | |
| 828 info->entry = gtk_entry_new(); | |
| 829 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 3802 | 830 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); |
| 831 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4614 | 832 |
| 833 g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 834 G_CALLBACK(dialog_set_ok_sensitive), window); | |
| 3802 | 835 |
| 3197 | 836 if (connections->next) { |
| 837 | |
| 3802 | 838 label = gtk_label_new(NULL); |
| 3197 | 839 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3802 | 840 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); |
| 841 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1225 | 842 |
| 3197 | 843 info->account = gtk_option_menu_new(); |
| 844 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 3802 | 845 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
| 846 | |
| 3197 | 847 menu = gtk_menu_new(); |
| 848 | |
| 849 while (g) { | |
| 850 c = (struct gaim_connection *)g->data; | |
| 3802 | 851 if (!c->prpl->get_info) { |
| 852 g = g->next; | |
| 853 continue; | |
| 854 } | |
| 3572 | 855 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); |
| 3197 | 856 opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 857 g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 3197 | 858 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
859 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
860 G_CALLBACK(show_info_select_account), c); |
| 3197 | 861 |
| 4635 | 862 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3197 | 863 g = g->next; |
| 864 } | |
| 3802 | 865 |
| 3197 | 866 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
867 } |
| 3197 | 868 |
| 3802 | 869 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
| 870 | |
| 871 | |
| 872 gtk_widget_show_all(window); | |
| 873 if (info->entry) | |
| 874 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
875 } |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
876 |
| 1 | 877 |
| 878 /*------------------------------------------------------------------------*/ | |
| 879 /* The dialog for adding buddies */ | |
| 880 /*------------------------------------------------------------------------*/ | |
| 881 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
882 extern void add_callback(GtkWidget *, struct gaim_conversation *); |
|
654
ea811c6dd3e0
[gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
653
diff
changeset
|
883 |
| 4180 | 884 void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a) |
| 1 | 885 { |
| 3466 | 886 const char *grp, *who, *whoalias; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
887 struct gaim_conversation *c; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
888 |
| 4180 | 889 if (resp == GTK_RESPONSE_OK) { |
| 890 | |
| 891 who = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 892 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); | |
| 893 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias)); | |
| 894 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
895 c = gaim_find_conversation(who); |
| 4180 | 896 |
| 4491 | 897 add_buddy(a->gc->account, grp, who, whoalias); |
| 4180 | 898 serv_add_buddy(a->gc, who); |
| 899 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
900 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
901 gaim_conversation_update(c, GAIM_CONV_UPDATE_ADD); |
| 4180 | 902 |
| 4349 | 903 gaim_blist_save(); |
|
654
ea811c6dd3e0
[gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
653
diff
changeset
|
904 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
905 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
906 destroy_dialog(NULL, a->window); |
| 1 | 907 } |
| 908 | |
| 3819 | 909 void do_add_group(GtkWidget *w, int resp, struct addbuddy *a) |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
910 { |
| 3466 | 911 const char *grp; |
| 4349 | 912 |
| 3819 | 913 if (resp == GTK_RESPONSE_OK) { |
| 914 grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 915 | |
| 916 if (!a->gc) | |
| 917 a->gc = connections->data; | |
| 918 | |
| 4349 | 919 add_group(grp); |
| 920 gaim_blist_save(); | |
| 3819 | 921 } |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
922 |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
923 destroy_dialog(NULL, a->window); |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
924 } |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
925 |
| 1 | 926 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
927 static GList *groups_tree(struct gaim_connection *gc) |
| 1 | 928 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
929 GList *tmp = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
930 char *tmp2; |
| 1 | 931 struct group *g; |
| 4349 | 932 GSList *grp = groups; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
933 |
| 1 | 934 if (!grp) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
935 tmp2 = g_strdup(_("Buddies")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
936 tmp = g_list_append(tmp, tmp2); |
| 1 | 937 } else { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
938 while (grp) { |
| 1 | 939 g = (struct group *)grp->data; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
940 tmp2 = g->name; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
941 tmp = g_list_append(tmp, tmp2); |
| 940 | 942 grp = g_slist_next(grp); |
| 1 | 943 } |
| 944 } | |
| 945 return tmp; | |
| 946 } | |
| 947 | |
|
825
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
948 static void free_dialog(GtkWidget *w, struct addbuddy *a) |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
949 { |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
950 g_free(a); |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
951 } |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
952 |
| 1 | 953 |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
954 void show_add_group(struct gaim_connection *gc) |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
955 { |
| 3819 | 956 |
| 957 GtkWidget *hbox, *vbox; | |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
958 GtkWidget *label; |
| 3819 | 959 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 960 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
961 struct addbuddy *a = g_new0(struct addbuddy, 1); |
| 4138 | 962 |
| 963 g_free(filename); | |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
964 a->gc = gc; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
965 |
| 4183 | 966 a->window = gtk_dialog_new_with_buttons(_("Gaim - Add Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, |
| 3819 | 967 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
| 968 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 969 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6); | |
| 970 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 971 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 972 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
| 973 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); | |
| 974 | |
| 975 hbox = gtk_hbox_new(FALSE, 12); | |
| 976 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 977 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 978 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 979 | |
| 980 vbox = gtk_vbox_new(FALSE, 0); | |
| 981 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 982 | |
| 983 label = gtk_label_new(_("Please enter the name of the group to be added.\n")); | |
| 984 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 985 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 986 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 987 | |
| 988 hbox = gtk_hbox_new(FALSE, 6); | |
| 989 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 990 | |
| 991 label = gtk_label_new(NULL); | |
| 992 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 993 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 994 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
995 a->entry = gtk_entry_new(); |
| 3819 | 996 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); |
| 997 gtk_box_pack_start(GTK_BOX(hbox), a->entry, FALSE, FALSE, 0); | |
| 998 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->entry)); | |
| 999 | |
| 1000 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_group), a); | |
| 1001 | |
| 1002 gtk_widget_show_all(a->window); | |
| 1003 gtk_widget_grab_focus(GTK_WIDGET(a->entry)); | |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1004 } |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1005 |
| 4635 | 1006 static void addbuddy_select_account(GObject *w, struct gaim_connection *gc) |
| 2527 | 1007 { |
| 4635 | 1008 struct addbuddy *b = g_object_get_data(w, "addbuddy"); |
| 2527 | 1009 |
| 2561 | 1010 /* Save our account */ |
| 2527 | 1011 b->gc = gc; |
| 2561 | 1012 |
| 1013 /* We also want to update our group list */ | |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1014 gtk_combo_set_popdown_strings(GTK_COMBO(b->combo), groups_tree(gc)); |
| 2527 | 1015 } |
| 1016 | |
| 1017 static void create_online_user_names(struct addbuddy *b) | |
| 1018 { | |
| 1019 char buf[2048]; /* Never hurts to be safe ;-) */ | |
| 1020 GSList *g = connections; | |
| 1021 struct gaim_connection *c; | |
| 1022 GtkWidget *menu, *opt; | |
| 1023 int count = 0; | |
| 1024 int place = 0; | |
| 1025 | |
| 1026 menu = gtk_menu_new(); | |
| 1027 | |
| 1028 while (g) { | |
| 1029 c = (struct gaim_connection *)g->data; | |
| 1030 g_snprintf(buf, sizeof(buf), "%s (%s)", | |
| 3572 | 1031 c->username, c->prpl->name); |
| 2527 | 1032 opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 1033 g_object_set_data(G_OBJECT(opt), "addbuddy", b); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1034 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1035 G_CALLBACK(addbuddy_select_account), |
| 2527 | 1036 c); |
| 1037 gtk_widget_show(opt); | |
| 4635 | 1038 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 2527 | 1039 |
| 1040 /* Now check to see if it's our current menu */ | |
| 1041 if (c == b->gc) { | |
| 1042 place = count; | |
| 1043 gtk_menu_item_activate(GTK_MENU_ITEM(opt)); | |
| 1044 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), count); | |
| 1045 | |
| 1046 /* Do the cha cha cha */ | |
| 1047 } | |
| 1048 | |
| 1049 count++; | |
| 1050 | |
| 1051 g = g->next; | |
| 1052 } | |
| 1053 | |
| 1054 gtk_option_menu_remove_menu(GTK_OPTION_MENU(b->account)); | |
| 1055 gtk_option_menu_set_menu(GTK_OPTION_MENU(b->account), menu); | |
| 1056 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), place); | |
| 1057 | |
| 1058 gtk_widget_show(b->account); | |
| 1059 gtk_widget_show(b->account->parent); | |
| 1060 | |
| 1061 } | |
| 1062 | |
|
2582
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2572
diff
changeset
|
1063 void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group, char *alias) |
| 1 | 1064 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1065 GtkWidget *table; |
| 1 | 1066 GtkWidget *label; |
| 4180 | 1067 GtkWidget *hbox; |
| 1068 GtkWidget *vbox; | |
| 1069 | |
| 1070 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); | |
| 1071 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 236 | 1072 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1073 struct addbuddy *a = g_new0(struct addbuddy, 1); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1074 a->gc = gc ? gc : connections->data; |
| 1210 | 1075 |
| 4180 | 1076 g_free(filename); |
| 1077 | |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1078 GAIM_DIALOG(a->window); |
| 4180 | 1079 a->window = gtk_dialog_new_with_buttons(_("Gaim - Add Buddy"), blist ? GTK_WINDOW(blist) : NULL, GTK_DIALOG_MODAL, |
| 1080 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); | |
| 1081 | |
| 1082 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 1083 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 1084 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 1085 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 1086 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
| 1087 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); | |
| 4074 | 1088 gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy"); |
| 4180 | 1089 |
| 1090 hbox = gtk_hbox_new(FALSE, 12); | |
| 1091 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 1092 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1093 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 1094 | |
| 1095 vbox = gtk_vbox_new(FALSE, 0); | |
| 1096 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 1097 | |
| 4599 | 1098 label = gtk_label_new(_("Please enter the screen name of the person you would like to add to your buddy list. You may optionally enter an alias, or nickname, for the buddy. The alias will be displayed in place of the screen name whenever possible.\n")); |
| 4180 | 1099 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1); |
| 1100 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1101 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1102 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 1103 | |
| 1104 hbox = gtk_hbox_new(FALSE, 6); | |
| 1105 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 1106 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1107 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1108 g_signal_connect(GTK_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a); |
|
1151
428372cc1e39
[gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1144
diff
changeset
|
1109 dialogwindows = g_list_prepend(dialogwindows, a->window); |
|
428372cc1e39
[gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1144
diff
changeset
|
1110 |
| 2529 | 1111 table = gtk_table_new(4, 2, FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1112 gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1113 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
| 4180 | 1114 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
| 1115 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 1116 | |
| 1117 label = gtk_label_new(_("Screen Name")); | |
| 1118 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1119 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1120 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1121 a->entry = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1122 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); |
| 3333 | 1123 gtk_widget_grab_focus(a->entry); |
| 4183 | 1124 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1125 if (buddy != NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1126 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); |
| 4183 | 1127 |
| 1128 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1129 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1130 label = gtk_label_new(_("Alias")); |
| 4180 | 1131 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1132 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1133 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1134 a->entry_for_alias = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1135 gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); |
|
2582
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2572
diff
changeset
|
1136 if (alias != NULL) |
|
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2572
diff
changeset
|
1137 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); |
| 4183 | 1138 gtk_entry_set_activates_default (GTK_ENTRY(a->entry_for_alias), TRUE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1139 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1140 label = gtk_label_new(_("Group")); |
| 4180 | 1141 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1142 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1143 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1144 a->combo = gtk_combo_new(); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1145 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree(a->gc)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1146 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3); |
| 1210 | 1147 |
| 2527 | 1148 /* Set up stuff for the account box */ |
| 1149 label = gtk_label_new(_("Add To")); | |
| 4180 | 1150 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2527 | 1151 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); |
| 1152 | |
| 1153 a->account = gtk_option_menu_new(); | |
| 1154 gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4); | |
| 1155 | |
| 1156 create_online_user_names(a); | |
| 1157 | |
| 1158 /* End of account box */ | |
| 1159 | |
| 4180 | 1160 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_buddy), a); |
|
1151
428372cc1e39
[gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1144
diff
changeset
|
1161 |
| 1210 | 1162 gtk_widget_show_all(a->window); |
| 4180 | 1163 |
| 2995 | 1164 if (group != NULL) |
| 1165 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); | |
| 1 | 1166 } |
| 1167 | |
| 1168 | |
| 3367 | 1169 /*------------------------------------------------------------------------* |
| 1170 * Privacy Settings * | |
| 1171 *------------------------------------------------------------------------*/ | |
| 1172 static GtkWidget *deny_type = NULL; | |
| 1173 static GtkWidget *deny_conn_hbox = NULL; | |
| 1174 static GtkWidget *deny_opt_menu = NULL; | |
| 1175 static struct gaim_connection *current_deny_gc = NULL; | |
| 1176 static gboolean current_is_deny = FALSE; | |
| 1177 static GtkWidget *allow_list = NULL; | |
| 1178 static GtkWidget *block_list = NULL; | |
| 1179 | |
| 4177 | 1180 static GtkListStore *block_store = NULL; |
| 1181 static GtkListStore *allow_store = NULL; | |
| 1182 | |
| 3367 | 1183 static void set_deny_mode(GtkWidget *w, int data) |
| 1184 { | |
| 1185 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) | |
| 1186 return; | |
| 1187 debug_printf("setting deny mode %d\n", data); | |
| 4491 | 1188 current_deny_gc->account->permdeny = data; |
| 3367 | 1189 serv_set_permit_deny(current_deny_gc); |
| 4349 | 1190 gaim_blist_save(); |
| 3367 | 1191 } |
| 1192 | |
| 4178 | 1193 static GtkWidget *deny_opt(char *label, int which, GtkWidget *set) |
| 3367 | 1194 { |
| 1195 GtkWidget *opt; | |
| 1196 | |
| 1197 if (!set) | |
| 1198 opt = gtk_radio_button_new_with_label(NULL, label); | |
| 1199 else | |
| 1200 opt = | |
| 4635 | 1201 gtk_radio_button_new_with_label(gtk_radio_button_get_group( |
| 1202 GTK_RADIO_BUTTON(set)), | |
| 3367 | 1203 label); |
| 4178 | 1204 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1205 g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which); |
| 3367 | 1206 gtk_widget_show(opt); |
| 4491 | 1207 if (current_deny_gc->account->permdeny == which) |
| 4635 | 1208 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE); |
| 3367 | 1209 |
| 1210 return opt; | |
| 1211 } | |
| 1212 | |
| 1213 static void des_deny_opt(GtkWidget *d, gpointer e) | |
| 1214 { | |
| 1215 gtk_widget_destroy(d); | |
| 1216 current_deny_gc = NULL; | |
| 1217 deny_conn_hbox = NULL; | |
| 1218 deny_type = NULL; | |
| 1219 deny_opt_menu = NULL; | |
| 1220 current_is_deny = FALSE; | |
| 1221 allow_list = NULL; | |
| 4177 | 1222 allow_store = NULL; |
| 1223 | |
| 3367 | 1224 block_list = NULL; |
| 4177 | 1225 block_store = NULL; |
| 3367 | 1226 } |
| 1227 | |
| 1228 static void set_deny_type() | |
| 1229 { | |
| 4635 | 1230 GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type)); |
| 3367 | 1231 |
| 4491 | 1232 switch (current_deny_gc->account->permdeny) { |
| 3786 | 1233 case 5: |
| 1234 bg = bg->next->next; | |
| 1235 break; | |
| 3367 | 1236 case 4: |
| 1237 break; | |
| 1238 case 3: | |
| 3786 | 1239 bg = bg->next->next->next; |
| 3367 | 1240 break; |
| 1241 case 2: | |
| 1242 bg = bg->next; | |
| 1243 break; | |
| 1244 case 1: | |
| 3786 | 1245 bg = bg->next->next->next->next; |
| 3367 | 1246 break; |
| 1247 } | |
| 1248 | |
| 4635 | 1249 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE); |
| 3367 | 1250 } |
| 1251 | |
| 1252 void build_allow_list() | |
| 1253 { | |
| 1254 GSList *p; | |
| 4177 | 1255 GtkListStore *ls; |
| 1256 GtkTreeIter iter; | |
| 3367 | 1257 |
| 1258 if (!current_is_deny) | |
| 1259 return; | |
| 1260 | |
| 4491 | 1261 p = current_deny_gc->account->permit; |
| 3367 | 1262 |
| 4177 | 1263 gtk_list_store_clear(GTK_LIST_STORE(allow_store)); |
| 3367 | 1264 |
| 1265 while (p) { | |
| 4177 | 1266 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list))); |
| 1267 | |
| 1268 gtk_list_store_append(ls, &iter); | |
| 1269 gtk_list_store_set(ls, &iter, 0, p->data, -1); | |
| 1270 | |
| 3367 | 1271 p = p->next; |
| 1272 } | |
| 1273 } | |
| 1274 | |
| 4177 | 1275 |
| 3367 | 1276 void build_block_list() |
| 1277 { | |
| 1278 GSList *d; | |
| 4177 | 1279 GtkListStore *ls; |
| 1280 GtkTreeIter iter; | |
| 3367 | 1281 |
| 1282 if (!current_is_deny) | |
| 1283 return; | |
| 1284 | |
| 4491 | 1285 d = current_deny_gc->account->deny; |
| 3367 | 1286 |
| 4177 | 1287 gtk_list_store_clear(GTK_LIST_STORE(block_store)); |
| 3367 | 1288 |
| 1289 while (d) { | |
| 4177 | 1290 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(block_list))); |
| 1291 | |
| 1292 gtk_list_store_append(ls, &iter); | |
| 1293 gtk_list_store_set(ls, &iter, 0, d->data, -1); | |
| 1294 | |
| 3367 | 1295 d = d->next; |
| 1296 } | |
| 1297 } | |
| 1298 | |
| 1299 static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc) | |
| 1300 { | |
| 1301 current_deny_gc = gc; | |
| 1302 set_deny_type(); | |
| 1303 build_allow_list(); | |
| 1304 build_block_list(); | |
| 1305 } | |
| 1306 | |
| 1307 static void build_deny_menu() | |
| 1308 { | |
| 1309 GtkWidget *menu; | |
| 1310 GtkWidget *opt; | |
| 1311 GSList *c = connections; | |
| 1312 struct gaim_connection *gc; | |
| 1313 int count = 0; | |
| 1314 gboolean found = FALSE; | |
| 1315 char buf[2048]; | |
| 1316 | |
| 1317 if (g_slist_length(connections) == 1) { | |
| 1318 gtk_widget_hide(deny_conn_hbox); | |
| 1319 return; | |
| 1320 } else | |
| 1321 gtk_widget_show(deny_conn_hbox); | |
| 1322 | |
| 1323 menu = gtk_menu_new(); | |
| 1324 | |
| 1325 while (c) { | |
| 1326 gc = (struct gaim_connection *)c->data; | |
| 1327 c = c->next; | |
| 1328 if (!gc->prpl->set_permit_deny) | |
| 1329 continue; | |
| 3572 | 1330 g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name); |
| 3367 | 1331 opt = gtk_menu_item_new_with_label(buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1332 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc); |
| 3367 | 1333 gtk_widget_show(opt); |
| 4635 | 1334 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3367 | 1335 if (gc == current_deny_gc) |
| 1336 found = TRUE; | |
| 1337 else if (!found) | |
| 1338 count++; | |
| 1339 } | |
| 1340 | |
| 1341 if (!found) { | |
| 1342 current_deny_gc = connections->data; | |
| 1343 count = 0; | |
| 1344 } | |
| 1345 | |
| 1346 gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu)); | |
| 1347 gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu); | |
| 1348 gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count); | |
| 1349 | |
| 1350 gtk_widget_show(menu); | |
| 1351 gtk_widget_show(deny_opt_menu); | |
| 1352 } | |
| 1353 | |
| 1354 static void pref_deny_add(GtkWidget *button, gboolean permit) | |
| 1355 { | |
| 1356 show_add_perm(current_deny_gc, NULL, permit); | |
| 1357 } | |
| 1358 | |
| 4177 | 1359 |
| 1360 gchar *find_permdeny_by_name(GSList *l, char *who) { | |
| 1361 gchar *name; | |
| 1362 | |
| 1363 while (l) { | |
| 1364 name = (gchar *)l->data; | |
| 1365 if (!strcmp(name, who)) { | |
| 1366 return name; | |
| 1367 } | |
| 1368 | |
| 1369 l = l->next; | |
| 1370 } | |
| 1371 | |
| 1372 return NULL; | |
| 1373 } | |
| 1374 | |
| 3367 | 1375 static void pref_deny_rem(GtkWidget *button, gboolean permit) |
| 1376 { | |
| 4177 | 1377 gchar *who; |
| 1378 GtkTreeIter iter; | |
| 1379 GtkTreeModel *mod; | |
| 1380 GtkTreeSelection *sel; | |
| 1381 | |
| 1382 if (permit) { | |
| 1383 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list)); | |
| 1384 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(allow_list)); | |
| 1385 } else { | |
| 1386 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(block_list)); | |
| 1387 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(block_list)); | |
| 1388 } | |
| 1389 | |
| 1390 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
| 1391 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 0, &who, -1); | |
| 1392 else { | |
| 1393 return; | |
| 1394 } | |
| 3367 | 1395 |
| 1396 if (permit && !allow_list) | |
| 1397 return; | |
| 4177 | 1398 |
| 3367 | 1399 if (!permit && !block_list) |
| 1400 return; | |
| 1401 | |
| 1402 if (permit) { | |
| 4491 | 1403 char *name = find_permdeny_by_name(current_deny_gc->account->permit, who); |
| 4177 | 1404 |
| 1405 if (name) { | |
| 4491 | 1406 gaim_privacy_permit_remove(current_deny_gc->account, name); |
| 4308 | 1407 serv_rem_permit(current_deny_gc, who); |
| 4177 | 1408 build_allow_list(); |
| 1409 } | |
| 3367 | 1410 } else { |
| 4491 | 1411 char *name = find_permdeny_by_name(current_deny_gc->account->deny, who); |
| 4177 | 1412 |
| 1413 if (name) { | |
| 4491 | 1414 gaim_privacy_deny_remove(current_deny_gc->account, name); |
| 4177 | 1415 serv_rem_deny(current_deny_gc, who); |
| 1416 build_block_list(); | |
| 1417 } | |
| 3367 | 1418 } |
| 1419 | |
| 4349 | 1420 gaim_blist_save(); |
| 3367 | 1421 } |
| 1422 | |
| 1423 GtkWidget *privacy_win; | |
| 1424 void update_privacy_connections() { /* This is a slightly better name */ | |
| 1425 gboolean needdeny = FALSE; | |
| 1426 GSList *c = connections; | |
| 1427 struct gaim_connection *gc = NULL; | |
| 1428 | |
| 1429 if (!privacy_win) | |
| 1430 return; | |
| 1431 | |
| 1432 while (c) { | |
| 1433 gc = c->data; | |
| 1434 if (gc->prpl->set_permit_deny) | |
| 1435 break; | |
| 1436 gc = NULL; | |
| 1437 c = c->next; | |
| 1438 } | |
| 1439 needdeny = (gc != NULL); | |
| 1440 | |
| 1441 | |
| 1442 if (needdeny) { | |
| 1443 gtk_widget_set_sensitive(privacy_win, TRUE); | |
| 1444 build_deny_menu(); | |
| 1445 build_allow_list(); | |
| 1446 build_block_list(); | |
| 1447 } else { | |
| 1448 gtk_widget_set_sensitive(privacy_win, FALSE); | |
| 1449 } | |
| 1450 } | |
| 1451 static void destroy_privacy() { | |
| 1452 current_deny_gc = NULL; | |
| 1453 privacy_win = NULL; | |
| 1454 } | |
| 1455 | |
| 4177 | 1456 void show_privacy_options() { |
| 1457 GtkWidget *pwin; | |
| 1458 GtkWidget *box; | |
| 1459 GtkWidget *hbox; | |
| 1460 GtkWidget *label; | |
| 1461 GtkWidget *sw; | |
| 1462 GtkWidget *bbox; | |
| 1463 GtkWidget *button; | |
| 1464 GtkWidget *sep; | |
| 1465 GtkWidget *close_button; | |
| 1466 GtkSizeGroup *sg1 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1467 GtkSizeGroup *sg2 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1468 GtkCellRenderer *rend; | |
| 1469 GtkTreeViewColumn *col; | |
| 4178 | 1470 GtkWidget *table; |
| 4177 | 1471 |
| 1472 current_deny_gc = connections->data; /* this is safe because this screen will only be | |
| 1473 available when there are connections */ | |
| 1474 current_is_deny = TRUE; | |
| 1475 | |
| 1476 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 4635 | 1477 gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE); |
| 4177 | 1478 gtk_window_set_role(GTK_WINDOW(pwin), "privacy"); |
| 1479 gtk_window_set_title(GTK_WINDOW(pwin), _("Gaim - Privacy")); | |
| 1480 g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL); | |
| 1481 gtk_widget_realize(pwin); | |
| 1482 | |
| 4637 | 1483 gtk_widget_set_size_request(pwin, -1, 400); |
| 4177 | 1484 |
| 1485 box = gtk_vbox_new(FALSE, 5); | |
| 1486 gtk_container_set_border_width(GTK_CONTAINER(box), 5); | |
| 1487 gtk_container_add(GTK_CONTAINER(pwin), box); | |
| 1488 gtk_widget_show(box); | |
| 1489 | |
| 1490 label = gtk_label_new(_("Changes to privacy settings take effect immediately.")); | |
| 1491 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
| 1492 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1493 gtk_widget_show(label); | |
| 1494 | |
| 1495 deny_conn_hbox = gtk_hbox_new(FALSE, 5); | |
| 1496 gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0); | |
| 1497 gtk_widget_show(deny_conn_hbox); | |
| 1498 | |
| 1499 label = gtk_label_new(_("Set privacy for:")); | |
| 1500 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5); | |
| 1501 gtk_widget_show(label); | |
| 1502 | |
| 1503 deny_opt_menu = gtk_option_menu_new(); | |
| 1504 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5); | |
| 1505 g_signal_connect(GTK_OBJECT(deny_opt_menu), "destroy", G_CALLBACK(des_deny_opt), NULL); | |
| 1506 gtk_widget_show(deny_opt_menu); | |
| 1507 | |
| 1508 build_deny_menu(); | |
| 1509 | |
| 4178 | 1510 table = gtk_table_new(5, 2, FALSE); |
| 1511 gtk_box_pack_start(GTK_BOX(box), table, TRUE, TRUE, 0); | |
| 1512 gtk_table_set_row_spacings(GTK_TABLE(table), 7); | |
| 1513 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1514 gtk_widget_show(table); | |
| 1515 | |
| 1516 deny_type = deny_opt(_("Allow all users to contact me"), 1, NULL); | |
| 4177 | 1517 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1518 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
| 1519 | |
| 1520 deny_type = deny_opt(_("Allow only users on my buddy list"), 5, deny_type); | |
| 4177 | 1521 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1522 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
| 1523 | |
| 1524 deny_type = deny_opt(_("Allow only the users below"), 3, deny_type); | |
| 4177 | 1525 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1526 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1527 |
| 1528 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1529 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1530 gtk_table_attach(GTK_TABLE(table), sw, 0, 1, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1531 gtk_widget_show(sw); |
| 1532 | |
| 1533 allow_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1534 allow_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(allow_store)); | |
| 1535 | |
| 1536 rend = gtk_cell_renderer_text_new(); | |
| 1537 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1538 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1539 gtk_tree_view_append_column(GTK_TREE_VIEW(allow_list), col); | |
| 1540 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allow_list), FALSE); | |
| 1541 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list); | |
| 1542 gtk_widget_show(allow_list); | |
| 1543 | |
| 1544 build_allow_list(); | |
| 1545 | |
| 4179 | 1546 bbox = gtk_hbox_new(TRUE, 0); |
| 4177 | 1547 gtk_widget_show(bbox); |
| 4178 | 1548 gtk_table_attach(GTK_TABLE(table), bbox, 0, 1, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1549 |
| 1550 button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1551 gtk_size_group_add_widget(sg2, button); | |
| 1552 gtk_widget_show(button); | |
| 1553 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), (void *)TRUE); | |
| 4179 | 1554 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1555 |
| 1556 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1557 gtk_size_group_add_widget(sg2, button); | |
| 1558 gtk_widget_show(button); | |
| 1559 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), (void *)TRUE); | |
| 4179 | 1560 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1561 |
| 4178 | 1562 deny_type = deny_opt(_("Deny all users"), 2, deny_type); |
| 4177 | 1563 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1564 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
| 1565 | |
| 1566 deny_type = deny_opt(_("Block the users below"), 4, deny_type); | |
| 4177 | 1567 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1568 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1569 |
| 1570 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1571 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1572 gtk_table_attach(GTK_TABLE(table), sw, 1, 2, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1573 gtk_widget_show(sw); |
| 1574 | |
| 1575 block_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1576 block_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(block_store)); | |
| 1577 | |
| 1578 rend = gtk_cell_renderer_text_new(); | |
| 1579 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1580 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1581 gtk_tree_view_append_column(GTK_TREE_VIEW(block_list), col); | |
| 1582 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(block_list), FALSE); | |
| 1583 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list); | |
| 1584 gtk_widget_show(block_list); | |
| 1585 | |
| 1586 build_block_list(); | |
| 1587 | |
| 4179 | 1588 bbox = gtk_hbox_new(TRUE, 0); |
| 4178 | 1589 gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1590 gtk_widget_show(bbox); |
| 1591 | |
| 1592 button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1593 gtk_size_group_add_widget(sg2, button); | |
| 1594 gtk_widget_show(button); | |
| 1595 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), FALSE); | |
| 4179 | 1596 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1597 |
| 1598 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1599 gtk_size_group_add_widget(sg2, button); | |
| 1600 gtk_widget_show(button); | |
| 1601 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), FALSE); | |
| 4179 | 1602 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1603 |
| 1604 sep = gtk_hseparator_new(); | |
| 1605 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | |
| 1606 gtk_widget_show(sep); | |
| 1607 | |
| 4178 | 1608 hbox = gtk_hbox_new(FALSE, 0); |
| 1609 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); | |
| 4177 | 1610 gtk_widget_show(hbox); |
| 4178 | 1611 |
| 4177 | 1612 close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
| 1613 gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 0); | |
| 1614 g_signal_connect_swapped(GTK_OBJECT(close_button), "clicked", G_CALLBACK(gtk_widget_destroy), pwin); | |
| 4178 | 1615 gtk_widget_show(close_button); |
| 4177 | 1616 |
| 1617 gtk_widget_show(pwin); | |
| 1618 | |
| 1619 } | |
| 1620 | |
| 1 | 1621 /*------------------------------------------------------------------------*/ |
| 1622 /* The dialog for new buddy pounces */ | |
| 1623 /*------------------------------------------------------------------------*/ | |
| 1624 | |
| 1625 | |
| 1626 void do_new_bp(GtkWidget *w, struct addbp *b) | |
| 1627 { | |
| 2986 | 1628 struct buddy_pounce *bp; |
| 1629 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1630 if (strlen(gtk_entry_get_text(GTK_ENTRY(b->nameentry))) == 0) { |
| 3427 | 1631 do_error_dialog(_("Please enter a buddy to pounce."), NULL, GAIM_ERROR); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1632 return; |
| 1292 | 1633 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1634 |
| 2986 | 1635 if(!b->buddy_pounce) |
| 1636 bp = g_new0(struct buddy_pounce, 1); | |
| 1637 else | |
| 1638 bp = b->buddy_pounce; | |
| 1639 | |
| 1640 | |
| 26 | 1641 g_snprintf(bp->name, 80, "%s", gtk_entry_get_text(GTK_ENTRY(b->nameentry))); |
| 1642 g_snprintf(bp->message, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->messentry))); | |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1643 g_snprintf(bp->command, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->commentry))); |
| 1694 | 1644 g_snprintf(bp->sound, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->soundentry))); |
| 4491 | 1645 g_snprintf(bp->pouncer, 80, "%s", b->account->username); |
| 1646 | |
| 1647 bp->protocol = b->account->protocol; | |
| 1155 | 1648 |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1649 bp->options = 0; |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1650 |
| 2550 | 1651 if (GTK_TOGGLE_BUTTON(b->popupnotify)->active) |
| 1652 bp->options |= OPT_POUNCE_NOTIFY; | |
| 1653 | |
| 1 | 1654 if (GTK_TOGGLE_BUTTON(b->openwindow)->active) |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1655 bp->options |= OPT_POUNCE_POPUP; |
| 1 | 1656 |
| 1657 if (GTK_TOGGLE_BUTTON(b->sendim)->active) | |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1658 bp->options |= OPT_POUNCE_SEND_IM; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1659 |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1660 if (GTK_TOGGLE_BUTTON(b->command)->active) |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1661 bp->options |= OPT_POUNCE_COMMAND; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1662 |
| 1694 | 1663 if (GTK_TOGGLE_BUTTON(b->sound)->active) |
| 1664 bp->options |= OPT_POUNCE_SOUND; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1665 |
| 1137 | 1666 if (GTK_TOGGLE_BUTTON(b->p_signon)->active) |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1667 bp->options |= OPT_POUNCE_SIGNON; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1668 |
| 1137 | 1669 if (GTK_TOGGLE_BUTTON(b->p_unaway)->active) |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1670 bp->options |= OPT_POUNCE_UNAWAY; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1671 |
| 1137 | 1672 if (GTK_TOGGLE_BUTTON(b->p_unidle)->active) |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1673 bp->options |= OPT_POUNCE_UNIDLE; |
| 2993 | 1674 |
| 1675 if (GTK_TOGGLE_BUTTON(b->p_typing)->active) | |
| 1676 bp->options |= OPT_POUNCE_TYPING; | |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1677 |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1678 if (GTK_TOGGLE_BUTTON(b->save)->active) |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1679 bp->options |= OPT_POUNCE_SAVE; |
| 26 | 1680 |
| 2986 | 1681 if(!b->buddy_pounce) |
| 1682 buddy_pounces = g_list_append(buddy_pounces, bp); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1683 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1684 do_bp_menu(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1685 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1686 destroy_dialog(NULL, b->window); |
| 1137 | 1687 |
|
786
ffb824f6cd24
[gaim-migrate @ 796]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
780
diff
changeset
|
1688 save_prefs(); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1689 g_free(b); |
| 1 | 1690 } |
| 1691 | |
| 1139 | 1692 static void pounce_choose(GtkWidget *opt, struct addbp *b) |
| 1693 { | |
| 4635 | 1694 struct gaim_account *account = g_object_get_data(G_OBJECT(opt), "gaim_account"); |
| 4491 | 1695 b->account = account; |
| 1139 | 1696 } |
| 1697 | |
| 2564 | 1698 static GtkWidget *pounce_user_menu(struct addbp *b, struct gaim_connection *gc) |
| 1137 | 1699 { |
| 1700 GtkWidget *optmenu; | |
| 1701 GtkWidget *menu; | |
| 1702 GtkWidget *opt; | |
| 4491 | 1703 GSList *u = gaim_accounts; |
| 1704 struct gaim_account *account; | |
| 3082 | 1705 struct prpl *p; |
| 2564 | 1706 int count = 0; |
| 1707 int place = 0; | |
| 3082 | 1708 char buf[2048]; |
| 1137 | 1709 |
| 3795 | 1710 |
| 1137 | 1711 optmenu = gtk_option_menu_new(); |
| 1712 | |
| 1713 menu = gtk_menu_new(); | |
| 1714 | |
| 1715 while (u) { | |
| 4491 | 1716 account = (struct gaim_account *)u->data; |
| 1717 p = (struct prpl *)find_prpl(account->protocol); | |
| 1718 g_snprintf(buf, sizeof buf, "%s (%s)", account->username, (p && p->name)?p->name:_("Unknown")); | |
| 3082 | 1719 opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 1720 g_object_set_data(G_OBJECT(opt), "gaim_account", account); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1721 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(pounce_choose), b); |
| 4635 | 1722 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 1137 | 1723 gtk_widget_show(opt); |
| 2564 | 1724 |
| 4491 | 1725 if (b->account == account) { |
| 2564 | 1726 gtk_menu_item_activate(GTK_MENU_ITEM(opt)); |
| 1727 place = count; | |
| 1728 } | |
| 1729 | |
| 1730 count++; | |
| 4491 | 1731 |
| 1137 | 1732 u = u->next; |
| 1733 } | |
| 1734 | |
| 1735 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); | |
| 2564 | 1736 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), place); |
| 1137 | 1737 |
| 1738 b->menu = optmenu; | |
| 2550 | 1739 |
| 1740 return optmenu; | |
| 1137 | 1741 } |
| 1742 | |
| 1 | 1743 |
| 2986 | 1744 void show_new_bp(char *name, struct gaim_connection *gc, int idle, int away, struct buddy_pounce *edit_bp) |
| 1 | 1745 { |
| 1746 GtkWidget *label; | |
| 1747 GtkWidget *bbox; | |
| 1748 GtkWidget *vbox; | |
| 443 | 1749 GtkWidget *button; |
| 2550 | 1750 GtkWidget *frame; |
| 1751 GtkWidget *table; | |
| 1752 GtkWidget *optmenu; | |
| 3795 | 1753 GtkWidget *sep; |
| 1754 GtkSizeGroup *sg; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1755 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1756 struct addbp *b = g_new0(struct addbp, 1); |
| 2986 | 1757 |
| 1758 if(edit_bp) { | |
| 1759 b->buddy_pounce = edit_bp; | |
| 4491 | 1760 b->account = gaim_account_find(edit_bp->pouncer, edit_bp->protocol); |
| 2986 | 1761 } else { |
| 4491 | 1762 b->account = gc ? gc->account : gaim_accounts->data; |
| 2986 | 1763 b->buddy_pounce = NULL; |
| 1764 } | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1765 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1766 GAIM_DIALOG(b->window); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1767 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4635 | 1768 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 1769 gtk_window_set_role(GTK_WINDOW(b->window), "new_bp"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1770 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - New Buddy Pounce")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1771 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
1141
8f4ce8b74901
[gaim-migrate @ 1151]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1140
diff
changeset
|
1772 gtk_widget_realize(b->window); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1773 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1774 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1775 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1776 gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1777 gtk_widget_show(vbox); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1778 |
| 2550 | 1779 /* <pounce type="who"> */ |
| 1780 frame = gtk_frame_new(_("Pounce Who")); | |
| 1781 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); | |
| 1782 gtk_widget_show(GTK_WIDGET(frame)); | |
| 1783 | |
| 1784 table = gtk_table_new(2, 2, FALSE); | |
| 1785 gtk_container_add(GTK_CONTAINER(frame), table); | |
| 1786 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 1787 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1788 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 1789 gtk_widget_show(table); | |
| 1790 | |
| 1791 label = gtk_label_new(_("Account")); | |
| 1792 gtk_misc_set_alignment(GTK_MISC(label), 0, .5); | |
| 1793 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
| 1794 gtk_widget_show(label); | |
| 1795 | |
| 2564 | 1796 optmenu = pounce_user_menu(b, gc); |
| 2550 | 1797 gtk_table_attach(GTK_TABLE(table), optmenu, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
| 1798 gtk_widget_show(optmenu); | |
| 1799 | |
| 1800 label = gtk_label_new(_("Buddy")); | |
| 1801 gtk_misc_set_alignment(GTK_MISC(label), 0, .5); | |
| 1802 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1803 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1804 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1805 b->nameentry = gtk_entry_new(); |
| 2550 | 1806 gtk_table_attach(GTK_TABLE(table), b->nameentry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1807 if (name !=NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1808 gtk_entry_set_text(GTK_ENTRY(b->nameentry), name); |
| 2986 | 1809 else if(edit_bp) |
| 1810 gtk_entry_set_text(GTK_ENTRY(b->nameentry), edit_bp->name); | |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1811 gtk_window_set_focus(GTK_WINDOW(b->window), b->nameentry); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1812 gtk_widget_show(b->nameentry); |
| 2550 | 1813 /* </pounce type="who"> */ |
| 1814 | |
| 1815 | |
| 1816 /* <pounce type="when"> */ | |
| 1817 frame = gtk_frame_new(_("Pounce When")); | |
| 1818 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); | |
| 1819 gtk_widget_show(GTK_WIDGET(frame)); | |
| 1820 | |
| 1821 table = gtk_table_new(2, 2, FALSE); | |
| 1822 gtk_container_add(GTK_CONTAINER(frame), table); | |
| 1823 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 1824 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1825 gtk_widget_show(table); | |
| 4635 | 1826 |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1827 b->p_signon = gtk_check_button_new_with_label(_("Pounce on sign on")); |
| 2986 | 1828 if(edit_bp) |
| 4635 | 1829 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon), |
| 2986 | 1830 (edit_bp->options & OPT_POUNCE_SIGNON) ? TRUE : FALSE); |
| 1831 else | |
| 4635 | 1832 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_signon), TRUE); |
| 2550 | 1833 gtk_table_attach(GTK_TABLE(table), b->p_signon, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1834 gtk_widget_show(b->p_signon); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1835 |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1836 b->p_unaway = gtk_check_button_new_with_label(_("Pounce on return from away")); |
| 2564 | 1837 if (away) |
| 4635 | 1838 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway), TRUE); |
| 2986 | 1839 else if(edit_bp) |
| 4635 | 1840 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unaway), |
| 2986 | 1841 (edit_bp->options & OPT_POUNCE_UNAWAY) ? TRUE : FALSE); |
| 2550 | 1842 gtk_table_attach(GTK_TABLE(table), b->p_unaway, 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1843 gtk_widget_show(b->p_unaway); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1844 |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1845 b->p_unidle = gtk_check_button_new_with_label(_("Pounce on return from idle")); |
| 2564 | 1846 if (idle) |
| 4635 | 1847 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle), TRUE); |
| 2986 | 1848 else if(edit_bp) |
| 4635 | 1849 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_unidle), |
| 2986 | 1850 (edit_bp->options & OPT_POUNCE_UNIDLE) ? TRUE : FALSE); |
| 2550 | 1851 gtk_table_attach(GTK_TABLE(table), b->p_unidle, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1852 gtk_widget_show(b->p_unidle); |
| 4635 | 1853 |
| 2993 | 1854 b->p_typing = gtk_check_button_new_with_label(_("Pounce when buddy is typing to you")); |
| 4635 | 1855 if (edit_bp) |
| 1856 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->p_typing), | |
| 2996 | 1857 (edit_bp->options & OPT_POUNCE_TYPING) ? TRUE : FALSE); |
| 2993 | 1858 gtk_table_attach(GTK_TABLE(table), b->p_typing,1,2,1,2, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
| 1859 gtk_widget_show(b->p_typing); | |
| 1860 | |
| 2550 | 1861 /* </pounce type="when"> */ |
| 4635 | 1862 |
| 2550 | 1863 /* <pounce type="action"> */ |
| 1864 frame = gtk_frame_new(_("Pounce Action")); | |
| 1865 gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); | |
| 1866 gtk_widget_show(GTK_WIDGET(frame)); | |
| 1867 | |
| 1868 table = gtk_table_new(4, 2, FALSE); | |
| 1869 gtk_container_add(GTK_CONTAINER(frame), table); | |
| 1870 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 1871 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1872 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 1873 gtk_widget_show(table); | |
| 4635 | 1874 |
| 2550 | 1875 b->openwindow = gtk_check_button_new_with_label(_("Open IM Window")); |
| 2986 | 1876 if(edit_bp) |
| 4635 | 1877 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow), |
| 2986 | 1878 (edit_bp->options & OPT_POUNCE_POPUP) ? TRUE : FALSE); |
| 1879 else | |
| 4635 | 1880 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->openwindow), FALSE); |
| 2550 | 1881 gtk_table_attach(GTK_TABLE(table), b->openwindow, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1882 gtk_widget_show(b->openwindow); |
| 4635 | 1883 |
| 2550 | 1884 b->popupnotify = gtk_check_button_new_with_label(_("Popup Notification")); |
| 2986 | 1885 if(edit_bp) |
| 4635 | 1886 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify), |
| 2986 | 1887 (edit_bp->options & OPT_POUNCE_NOTIFY) ? TRUE : FALSE); |
| 1888 else | |
| 4635 | 1889 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->popupnotify), FALSE); |
| 2550 | 1890 gtk_table_attach(GTK_TABLE(table), b->popupnotify, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); |
| 1891 gtk_widget_show(b->popupnotify); | |
| 1892 | |
| 1893 b->sendim = gtk_check_button_new_with_label(_("Send Message")); | |
| 2986 | 1894 if(edit_bp) |
| 4635 | 1895 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim), |
| 2986 | 1896 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE); |
| 1897 else | |
| 4635 | 1898 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sendim), TRUE); |
| 2550 | 1899 gtk_table_attach(GTK_TABLE(table), b->sendim, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1900 gtk_widget_show(b->sendim); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1901 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1902 b->messentry = gtk_entry_new(); |
| 2550 | 1903 gtk_table_attach(GTK_TABLE(table), b->messentry, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1904 g_signal_connect(GTK_OBJECT(b->messentry), "activate", G_CALLBACK(do_new_bp), b); |
| 2986 | 1905 if(edit_bp) { |
| 4635 | 1906 gtk_widget_set_sensitive(GTK_WIDGET(b->messentry), |
| 2986 | 1907 (edit_bp->options & OPT_POUNCE_SEND_IM) ? TRUE : FALSE); |
| 1908 gtk_entry_set_text(GTK_ENTRY(b->messentry), edit_bp->message); | |
| 1909 } | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1910 gtk_widget_show(b->messentry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1911 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1912 g_signal_connect(GTK_OBJECT(b->sendim), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1913 G_CALLBACK(gaim_gtk_toggle_sensitive), b->messentry); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1914 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1915 b->command = gtk_check_button_new_with_label(_("Execute command on pounce")); |
| 2550 | 1916 gtk_table_attach(GTK_TABLE(table), b->command, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); |
| 2986 | 1917 if(edit_bp) |
| 4635 | 1918 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command), |
| 2986 | 1919 (edit_bp->options & OPT_POUNCE_COMMAND) ? TRUE : FALSE); |
| 1920 else | |
| 4635 | 1921 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->command), FALSE); |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1922 gtk_widget_show(b->command); |
|
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1923 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1924 b->commentry = gtk_entry_new(); |
| 2550 | 1925 gtk_table_attach(GTK_TABLE(table), b->commentry, 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1926 g_signal_connect(GTK_OBJECT(b->commentry), "activate", G_CALLBACK(do_new_bp), b); |
| 2986 | 1927 if(edit_bp) { |
| 1928 gtk_widget_set_sensitive(GTK_WIDGET(b->commentry), | |
| 1929 (edit_bp->options & OPT_POUNCE_COMMAND) ? TRUE : FALSE); | |
| 1930 gtk_entry_set_text(GTK_ENTRY(b->commentry), edit_bp->command); | |
| 1931 } | |
| 1932 else | |
| 1933 gtk_widget_set_sensitive(GTK_WIDGET(b->commentry), FALSE); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1934 gtk_widget_show(b->commentry); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1935 g_signal_connect(GTK_OBJECT(b->command), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1936 G_CALLBACK(gaim_gtk_toggle_sensitive), b->commentry); |
| 4635 | 1937 |
| 1694 | 1938 b->sound = gtk_check_button_new_with_label(_("Play sound on pounce")); |
| 2986 | 1939 if(edit_bp) |
| 4635 | 1940 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound), |
| 2986 | 1941 (edit_bp->options & OPT_POUNCE_SOUND) ? TRUE : FALSE); |
| 1942 else | |
| 4635 | 1943 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->sound), FALSE); |
| 2550 | 1944 gtk_table_attach(GTK_TABLE(table), b->sound, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); |
| 1694 | 1945 gtk_widget_show(b->sound); |
| 1946 | |
| 1947 b->soundentry = gtk_entry_new(); | |
| 2550 | 1948 gtk_table_attach(GTK_TABLE(table), b->soundentry, 1, 2, 3, 4, GTK_FILL | GTK_EXPAND, 0, 0, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1949 g_signal_connect(GTK_OBJECT(b->soundentry), "activate", G_CALLBACK(do_new_bp), b); |
| 2986 | 1950 if(edit_bp) { |
| 1951 gtk_widget_set_sensitive(GTK_WIDGET(b->soundentry), | |
| 1952 (edit_bp->options & OPT_POUNCE_SOUND) ? TRUE : FALSE); | |
| 1953 gtk_entry_set_text(GTK_ENTRY(b->soundentry), edit_bp->sound); | |
| 1954 } else | |
| 1955 gtk_widget_set_sensitive(GTK_WIDGET(b->soundentry), FALSE); | |
| 1694 | 1956 gtk_widget_show(b->soundentry); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1957 g_signal_connect(GTK_OBJECT(b->sound), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
1958 G_CALLBACK(gaim_gtk_toggle_sensitive), b->soundentry); |
| 2550 | 1959 /* </pounce type="action"> */ |
|
1229
229bf438c591
[gaim-migrate @ 1239]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1225
diff
changeset
|
1960 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1961 b->save = gtk_check_button_new_with_label(_("Save this pounce after activation")); |
| 2550 | 1962 gtk_container_set_border_width(GTK_CONTAINER(b->save), 7); |
| 2986 | 1963 if(edit_bp) |
| 4635 | 1964 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save), |
| 2986 | 1965 (edit_bp->options & OPT_POUNCE_SAVE) ? TRUE : FALSE); |
| 1966 else | |
| 4635 | 1967 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(b->save), FALSE); |
|
1235
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1968 gtk_box_pack_start(GTK_BOX(vbox), b->save, FALSE, FALSE, 0); |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1969 gtk_widget_show(b->save); |
|
a9cf2f61a7b1
[gaim-migrate @ 1245]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
1970 |
| 3795 | 1971 sep = gtk_hseparator_new(); |
| 1972 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0); | |
| 1973 gtk_widget_show(sep); | |
| 1974 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1975 bbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1976 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1977 gtk_widget_show(bbox); |
| 443 | 1978 |
| 3795 | 1979 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 1980 | |
| 4011 | 1981 button = gaim_pixbuf_button_from_stock(_("_Save"), "gtk-execute", GAIM_BUTTON_HORIZONTAL); |
| 3795 | 1982 gtk_size_group_add_widget(sg, button); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1983 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_new_bp), b); |
| 3795 | 1984 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 1985 gtk_widget_show(button); | |
| 1986 | |
| 1987 button = gaim_pixbuf_button_from_stock(_("C_ancel"), "gtk-cancel", GAIM_BUTTON_HORIZONTAL); | |
| 1988 gtk_size_group_add_widget(sg, button); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1989 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window); |
| 1185 | 1990 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 3795 | 1991 gtk_widget_show(button); |
| 1992 | |
| 443 | 1993 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1994 gtk_widget_show(b->window); |
| 1 | 1995 } |
| 1996 | |
| 1997 | |
| 1998 | |
| 1999 /*------------------------------------------------------------------------*/ | |
| 2000 /* The dialog for SET INFO / SET DIR INFO */ | |
| 2001 /*------------------------------------------------------------------------*/ | |
| 2002 | |
| 2003 void do_save_info(GtkWidget *widget, struct set_info_dlg *b) | |
| 2004 { | |
| 2005 gchar *junk; | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
2006 struct gaim_connection *gc; |
| 1 | 2007 |
| 4119 | 2008 junk = gtk_text_view_get_text(GTK_TEXT_VIEW(b->text), FALSE); |
| 1 | 2009 |
| 4491 | 2010 if (b->account) { |
| 2011 strncpy_withhtml(b->account->user_info, junk, sizeof b->account->user_info); | |
| 2012 gc = b->account->gc; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2013 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
2014 save_prefs(); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
2015 |
| 1292 | 2016 if (gc) |
| 4491 | 2017 serv_set_info(gc, b->account->user_info); |
|
122
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
2018 } |
| 25 | 2019 g_free(junk); |
| 1 | 2020 destroy_dialog(NULL, b->window); |
| 2021 g_free(b); | |
| 2022 } | |
| 2023 | |
| 2024 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b) | |
| 2025 { | |
| 3466 | 2026 const char *first = gtk_entry_get_text(GTK_ENTRY(b->first)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2027 int web = GTK_TOGGLE_BUTTON(b->web)->active; |
| 3466 | 2028 const char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle)); |
| 2029 const char *last = gtk_entry_get_text(GTK_ENTRY(b->last)); | |
| 2030 const char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden)); | |
| 2031 const char *city = gtk_entry_get_text(GTK_ENTRY(b->city)); | |
| 2032 const char *state = gtk_entry_get_text(GTK_ENTRY(b->state)); | |
| 2033 const char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); | |
| 1 | 2034 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2035 serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web); |
| 1 | 2036 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2037 destroy_dialog(NULL, b->window); |
| 1 | 2038 g_free(b); |
| 2039 } | |
| 2040 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2041 void show_set_dir(struct gaim_connection *gc) |
| 1 | 2042 { |
| 2043 GtkWidget *label; | |
| 2044 GtkWidget *bot; | |
| 484 | 2045 GtkWidget *vbox; |
| 2046 GtkWidget *hbox; | |
| 2047 GtkWidget *frame; | |
| 2048 GtkWidget *fbox; | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2049 char buf[256]; |
| 1 | 2050 |
| 2051 struct set_dir_dlg *b = g_new0(struct set_dir_dlg, 1); | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2052 b->gc = gc; |
| 1 | 2053 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2054 GAIM_DIALOG(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2055 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4074 | 2056 gtk_window_set_role(GTK_WINDOW(b->window), "set_dir"); |
| 4635 | 2057 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2058 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set Dir Info")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2059 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2060 gtk_widget_realize(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2061 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2062 fbox = gtk_vbox_new(FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2063 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2064 gtk_widget_show(fbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2065 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2066 frame = gtk_frame_new(_("Directory Info")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2067 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2068 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2069 gtk_widget_show(frame); |
| 484 | 2070 |
| 2071 vbox = gtk_vbox_new(FALSE, 5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2072 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2073 gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2074 gtk_widget_show(vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2075 |
| 4472 | 2076 g_snprintf(buf, sizeof(buf), _("Setting Dir Info for %s:"), gc->username); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2077 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2078 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2079 gtk_widget_show(label); |
| 1 | 2080 |
| 2081 b->first = gtk_entry_new(); | |
| 2082 b->middle = gtk_entry_new(); | |
| 2083 b->last = gtk_entry_new(); | |
| 2084 b->maiden = gtk_entry_new(); | |
| 2085 b->city = gtk_entry_new(); | |
| 2086 b->state = gtk_entry_new(); | |
| 2087 b->country = gtk_entry_new(); | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2088 b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info")); |
| 484 | 2089 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2090 /* Line 1 */ |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2091 label = gtk_label_new(_("First Name")); |
| 1 | 2092 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2093 |
| 484 | 2094 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2095 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2096 gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0); | |
| 2097 | |
| 2098 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2099 gtk_widget_show(hbox); |
| 2100 | |
| 2101 /* Line 2 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2102 label = gtk_label_new(_("Middle Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2103 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2104 |
| 484 | 2105 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2106 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2107 gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0); | |
| 2108 | |
| 2109 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2110 gtk_widget_show(hbox); |
| 2111 | |
| 2112 | |
| 2113 /* Line 3 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2114 label = gtk_label_new(_("Last Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2115 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2116 |
| 484 | 2117 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2118 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2119 gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0); | |
| 2120 | |
| 2121 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2122 gtk_widget_show(hbox); |
| 2123 | |
| 2124 /* Line 4 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2125 label = gtk_label_new(_("Maiden Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2126 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2127 |
| 484 | 2128 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2129 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2130 gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0); | |
| 2131 | |
| 2132 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2133 gtk_widget_show(hbox); |
| 2134 | |
| 2135 /* Line 5 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2136 label = gtk_label_new(_("City")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2137 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2138 |
| 484 | 2139 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2140 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2141 gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0); | |
| 2142 | |
| 2143 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2144 gtk_widget_show(hbox); |
| 2145 | |
| 2146 /* Line 6 */ | |
| 1185 | 2147 label = gtk_label_new(_("State")); |
| 1 | 2148 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2149 |
| 484 | 2150 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2151 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2152 gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0); | |
| 2153 | |
| 2154 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2155 gtk_widget_show(hbox); |
| 2156 | |
| 2157 /* Line 7 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2158 label = gtk_label_new(_("Country")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2159 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2160 |
| 484 | 2161 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2162 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2163 gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0); | |
| 2164 | |
| 2165 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 2166 gtk_widget_show(hbox); |
| 2167 | |
| 2168 /* Line 8 */ | |
| 2169 | |
| 2170 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 2171 gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0); |
| 484 | 2172 gtk_widget_show(hbox); |
| 1185 | 2173 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2174 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2175 gtk_widget_show(b->first); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2176 gtk_widget_show(b->middle); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2177 gtk_widget_show(b->last); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2178 gtk_widget_show(b->maiden); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2179 gtk_widget_show(b->city); |
| 1 | 2180 gtk_widget_show(b->state); |
| 2181 gtk_widget_show(b->country); | |
| 2182 gtk_widget_show(b->web); | |
| 2183 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2184 /* And add the buttons */ |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2185 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2186 bot = gtk_hbox_new(FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2187 gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2188 gtk_widget_show(bot); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2189 |
| 4092 | 2190 b->save = picture_button(b->window, _("Save"), save_xpm); |
| 2191 gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2192 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_set_dir), b); |
| 4092 | 2193 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2194 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2195 gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2196 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2197 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2198 gtk_window_set_focus(GTK_WINDOW(b->window), b->first); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2199 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2200 gtk_widget_show(b->window); |
| 1 | 2201 } |
| 2202 | |
| 149 | 2203 void do_change_password(GtkWidget *widget, struct passwddlg *b) |
| 2204 { | |
| 3466 | 2205 const gchar *orig, *new1, *new2; |
| 149 | 2206 |
| 2207 orig = gtk_entry_get_text(GTK_ENTRY(b->original)); | |
| 2208 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1)); | |
| 2209 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); | |
| 2210 | |
|
2048
3366311426df
[gaim-migrate @ 2058]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1979
diff
changeset
|
2211 if (g_strcasecmp(new1, new2)) { |
| 3427 | 2212 do_error_dialog(_("New Passwords Do Not Match"), NULL, GAIM_ERROR); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2213 return; |
| 149 | 2214 } |
| 2215 | |
| 2216 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { | |
| 3427 | 2217 do_error_dialog(_("Fill out all fields completely"), NULL, GAIM_ERROR); |
| 149 | 2218 return; |
| 2219 } | |
| 2220 | |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2221 serv_change_passwd(b->gc, orig, new1); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2222 |
| 149 | 2223 destroy_dialog(NULL, b->window); |
| 2224 g_free(b); | |
| 2225 } | |
| 2226 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2227 void show_change_passwd(struct gaim_connection *gc) |
| 146 | 2228 { |
| 2229 GtkWidget *hbox; | |
| 2230 GtkWidget *label; | |
| 2231 GtkWidget *vbox; | |
| 475 | 2232 GtkWidget *fbox; |
| 2233 GtkWidget *frame; | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2234 char buf[256]; |
| 454 | 2235 |
| 146 | 2236 struct passwddlg *b = g_new0(struct passwddlg, 1); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2237 b->gc = gc; |
| 146 | 2238 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2239 GAIM_DIALOG(b->window); |
| 4635 | 2240 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 2241 gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd"); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2242 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Password Change")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2243 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2244 gtk_widget_realize(b->window); |
| 146 | 2245 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 149 | 2246 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2247 fbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 2248 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2249 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2250 gtk_widget_show(fbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2251 |
| 475 | 2252 frame = gtk_frame_new(_("Change Password")); |
| 1185 | 2253 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2254 gtk_widget_show(frame); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2255 |
| 475 | 2256 vbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 2257 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2258 gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2259 gtk_widget_show(vbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2260 |
| 4472 | 2261 g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2262 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2263 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2264 gtk_widget_show(label); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2265 |
| 475 | 2266 /* First Line */ |
| 2267 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 2268 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2269 gtk_widget_show(hbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2270 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2271 label = gtk_label_new(_("Original Password")); |
| 1185 | 2272 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 146 | 2273 gtk_widget_show(label); |
| 475 | 2274 |
| 146 | 2275 b->original = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
2276 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); |
| 1185 | 2277 gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0); |
| 149 | 2278 gtk_widget_show(b->original); |
| 475 | 2279 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2280 /* Next Line */ |
| 475 | 2281 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 2282 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2283 gtk_widget_show(hbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2284 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2285 label = gtk_label_new(_("New Password")); |
| 1185 | 2286 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2287 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2288 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2289 b->new1 = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
2290 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE); |
| 1185 | 2291 gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2292 gtk_widget_show(b->new1); |
| 475 | 2293 |
| 2294 /* Next Line */ | |
| 2295 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 2296 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2297 gtk_widget_show(hbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2298 |
| 475 | 2299 label = gtk_label_new(_("New Password (again)")); |
| 1185 | 2300 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2301 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2302 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2303 b->new2 = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
2304 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); |
| 1185 | 2305 gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2306 gtk_widget_show(b->new2); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2307 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2308 /* Now do our row of buttons */ |
| 1185 | 2309 hbox = gtk_hbox_new(FALSE, 5); |
| 2310 gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); | |
| 146 | 2311 gtk_widget_show(hbox); |
| 475 | 2312 |
| 4092 | 2313 b->ok = picture_button(b->window, _("OK"), ok_xpm); |
| 2314 gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2315 g_signal_connect(GTK_OBJECT(b->ok), "clicked", G_CALLBACK(do_change_password), b); |
| 4092 | 2316 |
| 1185 | 2317 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 2318 gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2319 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
| 1185 | 2320 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
2321 gtk_widget_show(b->window); |
| 146 | 2322 } |
| 2323 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2324 void show_set_info(struct gaim_connection *gc) |
| 1 | 2325 { |
| 1185 | 2326 GtkWidget *buttons; |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2327 GtkWidget *label; |
| 1185 | 2328 GtkWidget *vbox; |
| 4119 | 2329 GtkTextBuffer *buffer; |
| 2330 GtkWidget *frame; | |
| 1292 | 2331 gchar *buf; |
| 4491 | 2332 struct gaim_account *account; |
| 1292 | 2333 |
| 1 | 2334 struct set_info_dlg *b = g_new0(struct set_info_dlg, 1); |
| 4491 | 2335 account = gc->account; |
| 2336 b->account = account; | |
| 1 | 2337 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2338 GAIM_DIALOG(b->window); |
| 4074 | 2339 gtk_window_set_role(GTK_WINDOW(b->window), "set_info"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2340 dialogwindows = g_list_prepend(dialogwindows, b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2341 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Set User Info")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2342 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
2343 gtk_widget_realize(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2344 |
| 1185 | 2345 vbox = gtk_vbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2346 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2347 gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2348 gtk_widget_show(vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2349 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2350 buf = g_malloc(256); |
| 4491 | 2351 g_snprintf(buf, 256, _("Changing info for %s:"), account->username); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2352 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2353 g_free(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2354 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2355 gtk_widget_show(label); |
| 4491 | 2356 |
| 4119 | 2357 frame = gtk_frame_new(NULL); |
| 2358 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 2359 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 2360 gtk_widget_show(frame); | |
| 2361 | |
| 2362 b->text = gtk_text_view_new(); | |
| 2363 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD); | |
| 2364 gtk_widget_set_size_request(b->text, 300, 200); | |
| 4491 | 2365 buf = g_malloc(strlen(account->user_info) + 1); |
| 2366 strncpy_nohtml(buf, account->user_info, strlen(account->user_info) + 1); | |
| 4119 | 2367 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(b->text)); |
| 2368 gtk_text_buffer_set_text(buffer, buf, -1); | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2369 g_free(buf); |
| 4119 | 2370 gtk_container_add(GTK_CONTAINER(frame), b->text); |
| 1 | 2371 gtk_widget_show(b->text); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2372 gtk_window_set_focus(GTK_WINDOW(b->window), b->text); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2373 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2374 buttons = gtk_hbox_new(FALSE, 5); |
| 1185 | 2375 gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2376 gtk_widget_show(buttons); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2377 |
| 4092 | 2378 b->save = picture_button(b->window, _("Save"), save_xpm); |
| 2379 gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2380 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b); |
| 4092 | 2381 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2382 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2383 gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2384 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2385 |
| 1 | 2386 gtk_widget_show(b->window); |
| 2387 | |
| 2388 } | |
| 2389 | |
| 2390 /*------------------------------------------------------------------------*/ | |
| 2391 /* The dialog for the info requests */ | |
| 2392 /*------------------------------------------------------------------------*/ | |
| 2393 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2394 static void info_dlg_free(GtkWidget *b, struct info_dlg *d) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2395 { |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2396 if (g_slist_find(info_dlgs, d)) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2397 info_dlgs = g_slist_remove(info_dlgs, d); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2398 g_free(d->who); |
|
1051
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2399 g_free(d); |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2400 } |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2401 |
|
2791
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2402 /* if away is 0, show regardless and try to get away message |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2403 * 1, don't show if regular info isn't shown |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2404 * 2, show regardless but don't try to get away message |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2405 * |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2406 * i wish this were my client. if i were i wouldn't have to deal with this shit. |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2407 */ |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2408 void g_show_info_text(struct gaim_connection *gc, char *who, int away, char *info, ...) |
| 1 | 2409 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2410 GtkWidget *ok; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2411 GtkWidget *label; |
| 1 | 2412 GtkWidget *text; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2413 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2414 GtkWidget *sw; |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2415 gint options = 0; |
|
2137
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2416 char *more_info; |
|
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2417 va_list ap; |
| 1 | 2418 |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2419 struct info_dlg *b = find_info_dlg(gc, who); |
|
2791
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2420 if (!b && (away == 1)) |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2421 return; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2422 if (!b) { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2423 b = g_new0(struct info_dlg, 1); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2424 b->gc = gc; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2425 b->who = who ? g_strdup(normalize(who)) : NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2426 info_dlgs = g_slist_append(info_dlgs, b); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2427 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2428 GAIM_DIALOG(b->window); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2429 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); |
| 4635 | 2430 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2431 gtk_widget_realize(GTK_WIDGET(b->window)); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2432 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2433 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2434 bbox = gtk_vbox_new(FALSE, 5); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2435 gtk_container_add(GTK_CONTAINER(b->window), bbox); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2436 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2437 label = gtk_label_new(_("Below are the results of your search: ")); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2438 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2439 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2440 sw = gtk_scrolled_window_new(NULL, NULL); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2441 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3926 | 2442 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2443 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2444 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2445 text = gtk_imhtml_new(NULL, NULL); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2446 b->text = text; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2447 gtk_container_add(GTK_CONTAINER(sw), text); |
| 4635 | 2448 gtk_widget_set_size_request(sw, 300, 250); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2449 gaim_setup_imhtml(text); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2450 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2451 ok = picture_button(b->window, _("OK"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2452 g_signal_connect_swapped(GTK_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy), |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2453 GTK_OBJECT(b->window)); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2454 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2455 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2456 gtk_widget_show_all(b->window); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2457 } |
| 1 | 2458 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2459 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2460 options ^= GTK_IMHTML_NO_COLOURS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2461 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2462 options ^= GTK_IMHTML_NO_FONTS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2463 if (convo_options & OPT_CONVO_IGNORE_SIZES) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
2464 options ^= GTK_IMHTML_NO_SIZES; |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2465 options ^= GTK_IMHTML_NO_COMMENTS; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2466 options ^= GTK_IMHTML_NO_TITLE; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2467 options ^= GTK_IMHTML_NO_NEWLINE; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2468 options ^= GTK_IMHTML_NO_SCROLL; |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2469 |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
2470 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, -1, options); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2471 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2472 va_start(ap, info); |
|
2137
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2473 while ((more_info = va_arg(ap, char *)) != NULL) |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
2474 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, -1, options); |
|
2137
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2475 va_end(ap); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2476 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2477 if (away) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2478 info_dlgs = g_slist_remove(info_dlgs, b); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2479 else |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2480 serv_get_away(gc, who); |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
2481 } |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
2482 |
| 1 | 2483 /*------------------------------------------------------------------------*/ |
| 2484 /* The dialog for adding to permit/deny */ | |
| 2485 /*------------------------------------------------------------------------*/ | |
| 2486 | |
| 2487 | |
| 2488 static void do_add_perm(GtkWidget *w, struct addperm *p) | |
| 2489 { | |
| 2490 | |
| 3466 | 2491 const char *who; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2492 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2493 who = gtk_entry_get_text(GTK_ENTRY(p->entry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2494 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2495 if (!p->permit) { |
| 4491 | 2496 if (gaim_privacy_deny_add(p->gc->account, who)) { |
| 4349 | 2497 serv_add_deny(p->gc, who); |
| 2498 build_block_list(); | |
| 2499 gaim_blist_save(); | |
|
1126
c8118e7ec981
[gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1125
diff
changeset
|
2500 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2501 } else { |
| 4491 | 2502 if (gaim_privacy_permit_add(p->gc->account, who)) { |
| 4349 | 2503 serv_add_permit(p->gc, who); |
| 2504 build_allow_list(); | |
| 2505 gaim_blist_save(); | |
|
1126
c8118e7ec981
[gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1125
diff
changeset
|
2506 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2507 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2508 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2509 destroy_dialog(NULL, p->window); |
| 1 | 2510 } |
| 2511 | |
| 2512 | |
| 2513 | |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2514 void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit) |
| 1 | 2515 { |
| 2516 GtkWidget *cancel; | |
| 2517 GtkWidget *add; | |
| 2518 GtkWidget *label; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2519 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2520 GtkWidget *vbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2521 GtkWidget *topbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2522 |
| 486 | 2523 struct addperm *p = g_new0(struct addperm, 1); |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2524 p->gc = gc; |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2525 p->permit = permit; |
| 1 | 2526 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2527 GAIM_DIALOG(p->window); |
| 487 | 2528 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); |
| 4635 | 2529 gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE); |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2530 gtk_widget_realize(p->window); |
| 487 | 2531 |
| 486 | 2532 dialogwindows = g_list_prepend(dialogwindows, p->window); |
| 2533 | |
| 4107 | 2534 bbox = gtk_hbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2535 topbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2536 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2537 p->entry = gtk_entry_new(); |
| 1 | 2538 |
| 486 | 2539 /* Build Add Button */ |
| 2540 | |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2541 if (permit) |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2542 add = picture_button(p->window, _("Permit"), add_xpm); |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2543 else |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2544 add = picture_button(p->window, _("Deny"), add_xpm); |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2545 cancel = picture_button(p->window, _("Cancel"), cancel_xpm); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2546 |
| 486 | 2547 /* End of Cancel Button */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2548 if (who != NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2549 gtk_entry_set_text(GTK_ENTRY(p->entry), who); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2550 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2551 /* Put the buttons in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2552 |
| 4107 | 2553 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2554 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2555 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2556 label = gtk_label_new(_("Add")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2557 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2558 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2559 gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2560 /* And the boxes in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2561 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2562 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); |
| 4107 | 2563 gtk_widget_show(topbox); |
| 2564 topbox=gtk_hbox_new(FALSE, 5); | |
| 2565 gtk_box_pack_start(GTK_BOX(topbox), vbox, FALSE, FALSE, 5); | |
| 1 | 2566 |
| 2567 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2568 /* Handle closes right */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2569 g_signal_connect(GTK_OBJECT(p->window), "destroy", G_CALLBACK(destroy_dialog), p->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2570 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), p->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2571 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_add_perm), p); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2572 g_signal_connect(GTK_OBJECT(p->entry), "activate", G_CALLBACK(do_add_perm), p); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2573 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2574 /* Finish up */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2575 gtk_widget_show(add); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2576 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2577 gtk_widget_show(p->entry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2578 gtk_widget_show(topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2579 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2580 gtk_widget_show(vbox); |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2581 if (permit) |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2582 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Permit")); |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2583 else |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2584 gtk_window_set_title(GTK_WINDOW(p->window), _("Gaim - Add Deny")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2585 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); |
| 4107 | 2586 gtk_container_add(GTK_CONTAINER(p->window), topbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2587 gtk_widget_realize(p->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2588 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2589 gtk_widget_show(p->window); |
| 1 | 2590 } |
| 2591 | |
| 2592 | |
| 2593 /*------------------------------------------------------------------------*/ | |
| 608 | 2594 /* Functions Called To Add A Log */ |
| 1 | 2595 /*------------------------------------------------------------------------*/ |
| 2596 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2597 void cancel_log(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2598 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2599 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2600 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2601 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2602 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2603 if (gtkconv->toolbar.log) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2604 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2605 FALSE); |
| 608 | 2606 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2607 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2608 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2609 gtk_widget_destroy(gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2610 gtkconv->dialogs.log = NULL; |
| 608 | 2611 } |
| 2612 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2613 void do_log(GtkWidget *w, struct gaim_conversation *c) |
| 1 | 2614 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2615 struct gaim_gtk_conversation *gtkconv; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2616 struct log_conversation *l; |
| 3466 | 2617 const char *file; |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2618 char path[PATHSIZE]; |
| 1 | 2619 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2620 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2621 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2622 if (!find_log_info(c->name)) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2623 file = gtk_file_selection_get_filename( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2624 GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2625 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2626 strncpy(path, file, PATHSIZE - 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2627 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2628 if (file_is_dir(path, gtkconv->dialogs.log)) |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2629 return; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2630 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2631 l = (struct log_conversation *)g_new0(struct log_conversation, 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2632 strcpy(l->name, gaim_conversation_get_name(c)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2633 strcpy(l->filename, file); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2634 log_conversations = g_list_append(log_conversations, l); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2635 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2636 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2637 gaim_conversation_set_logging(c, TRUE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2638 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2639 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2640 save_prefs(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2641 cancel_log(NULL, c); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2642 } |
| 1 | 2643 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2644 void show_log_dialog(struct gaim_conversation *c) |
| 1 | 2645 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2646 struct gaim_gtk_conversation *gtkconv; |
| 1 | 2647 char *buf = g_malloc(BUF_LEN); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2648 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2649 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2650 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2651 if (!gtkconv->dialogs.log) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2652 gtkconv->dialogs.log = gtk_file_selection_new(_("Gaim - Log Conversation")); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2653 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2654 gtk_file_selection_hide_fileop_buttons( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2655 GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2656 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2657 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2658 gaim_home_dir(), normalize(c->name)); |
| 4635 | 2659 g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type", |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2660 "log dialog"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2661 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2662 buf); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2663 g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2664 G_CALLBACK(delete_event_dialog), c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2665 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->ok_button), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2666 G_CALLBACK(do_log), c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2667 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->cancel_button), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2668 G_CALLBACK(cancel_log), c); |
| 1 | 2669 } |
| 2670 | |
| 25 | 2671 g_free(buf); |
| 2672 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2673 gtk_widget_show(gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2674 gdk_window_raise(gtkconv->dialogs.log->window); |
| 1 | 2675 } |
| 2676 | |
| 2677 /*------------------------------------------------------*/ | |
| 2678 /* Find Buddy By Email */ | |
| 2679 /*------------------------------------------------------*/ | |
| 2680 | |
| 2681 void do_find_info(GtkWidget *w, struct findbyinfo *b) | |
| 2682 { | |
| 3466 | 2683 const char *first; |
| 2684 const char *middle; | |
| 2685 const char *last; | |
| 2686 const char *maiden; | |
| 2687 const char *city; | |
| 2688 const char *state; | |
| 2689 const char *country; | |
| 1 | 2690 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2691 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry)); |
| 1 | 2692 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry)); |
| 2693 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry)); | |
| 2694 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2695 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2696 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2697 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry)); |
| 1 | 2698 |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2699 serv_dir_search(b->gc, first, middle, last, maiden, city, state, country, ""); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2700 destroy_dialog(NULL, b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2701 } |
| 1 | 2702 |
| 2703 void do_find_email(GtkWidget *w, struct findbyemail *b) | |
| 2704 { | |
| 3466 | 2705 const char *email; |
| 1 | 2706 |
| 2707 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2708 |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2709 serv_dir_search(b->gc, "", "", "", "", "", "", "", email); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2710 |
| 1 | 2711 destroy_dialog(NULL, b->window); |
| 2712 } | |
| 2713 | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2714 void show_find_info(struct gaim_connection *gc) |
| 1 | 2715 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2716 GtkWidget *cancel; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2717 GtkWidget *ok; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2718 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2719 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2720 GtkWidget *vbox; |
| 479 | 2721 GtkWidget *hbox; |
| 2722 GtkWidget *fbox; | |
| 2723 GtkWidget *frame; | |
| 1 | 2724 |
| 2725 struct findbyinfo *b = g_new0(struct findbyinfo, 1); | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2726 b->gc = gc; |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2727 GAIM_DIALOG(b->window); |
| 4635 | 2728 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 2729 gtk_window_set_role(GTK_WINDOW(b->window), "find_info"); |
| 479 | 2730 gtk_widget_show(b->window); |
| 2731 | |
| 2732 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 2733 | |
| 2734 frame = gtk_frame_new(_("Search for Buddy")); | |
| 2735 fbox = gtk_vbox_new(FALSE, 5); | |
| 2736 | |
| 2737 /* Build OK Button */ | |
| 2738 | |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2739 ok = picture_button(b->window, _("OK"), ok_xpm); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2740 cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 1 | 2741 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2742 bbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2743 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2744 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2745 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2746 b->firstentry = gtk_entry_new(); |
| 1 | 2747 b->middleentry = gtk_entry_new(); |
| 2748 b->lastentry = gtk_entry_new(); | |
| 2749 b->maidenentry = gtk_entry_new(); | |
| 2750 b->cityentry = gtk_entry_new(); | |
| 2751 b->stateentry = gtk_entry_new(); | |
| 2752 b->countryentry = gtk_entry_new(); | |
| 2753 | |
| 4333 | 2754 gtk_box_pack_end(GTK_BOX(bbox), ok, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2755 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); |
| 1 | 2756 |
| 479 | 2757 /* Line 1 */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2758 label = gtk_label_new(_("First Name")); |
| 1 | 2759 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2760 |
| 1185 | 2761 hbox = gtk_hbox_new(FALSE, 5); |
| 2762 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2763 gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0); | |
| 479 | 2764 |
| 2765 gtk_widget_show(hbox); | |
| 1185 | 2766 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2767 |
| 2768 /* Line 2 */ | |
| 1 | 2769 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2770 label = gtk_label_new(_("Middle Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2771 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2772 |
| 1185 | 2773 hbox = gtk_hbox_new(FALSE, 5); |
| 2774 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2775 gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0); | |
| 479 | 2776 |
| 2777 gtk_widget_show(hbox); | |
| 1185 | 2778 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2779 |
| 2780 /* Line 3 */ | |
| 2781 | |
| 2782 label = gtk_label_new(_("Last Name")); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2783 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2784 |
| 1185 | 2785 hbox = gtk_hbox_new(FALSE, 5); |
| 2786 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2787 gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0); | |
| 479 | 2788 |
| 2789 gtk_widget_show(hbox); | |
| 1185 | 2790 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2791 |
| 2792 /* Line 4 */ | |
| 2793 | |
| 2794 label = gtk_label_new(_("Maiden Name")); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2795 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2796 |
| 1185 | 2797 hbox = gtk_hbox_new(FALSE, 5); |
| 2798 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2799 gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0); | |
| 479 | 2800 |
| 2801 gtk_widget_show(hbox); | |
| 1185 | 2802 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2803 |
| 2804 /* Line 5 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2805 |
| 479 | 2806 label = gtk_label_new(_("City")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2807 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2808 |
| 1185 | 2809 hbox = gtk_hbox_new(FALSE, 5); |
| 2810 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2811 gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0); | |
| 479 | 2812 |
| 2813 gtk_widget_show(hbox); | |
| 1185 | 2814 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2815 |
| 2816 /* Line 6 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2817 label = gtk_label_new(_("State")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2818 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2819 |
| 1185 | 2820 hbox = gtk_hbox_new(FALSE, 5); |
| 2821 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2822 gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0); | |
| 479 | 2823 |
| 2824 gtk_widget_show(hbox); | |
| 1185 | 2825 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2826 |
| 2827 /* Line 7 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2828 label = gtk_label_new(_("Country")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2829 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2830 |
| 1185 | 2831 hbox = gtk_hbox_new(FALSE, 5); |
| 2832 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2833 gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0); | |
| 479 | 2834 |
| 2835 gtk_widget_show(hbox); | |
| 1185 | 2836 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2837 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2838 /* Merge The Boxes */ |
| 479 | 2839 |
| 2840 gtk_container_add(GTK_CONTAINER(frame), vbox); | |
| 1185 | 2841 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
| 2842 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0); | |
| 1 | 2843 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2844 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2845 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2846 g_signal_connect(GTK_OBJECT(ok), "clicked", G_CALLBACK(do_find_info), b); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2847 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2848 gtk_widget_show(ok); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2849 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2850 gtk_widget_show(b->firstentry); |
| 1 | 2851 gtk_widget_show(b->middleentry); |
| 2852 gtk_widget_show(b->lastentry); | |
| 2853 gtk_widget_show(b->maidenentry); | |
| 2854 gtk_widget_show(b->cityentry); | |
| 2855 gtk_widget_show(b->stateentry); | |
| 2856 gtk_widget_show(b->countryentry); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2857 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2858 gtk_widget_show(vbox); |
| 479 | 2859 gtk_widget_show(frame); |
| 2860 gtk_widget_show(fbox); | |
| 2861 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2862 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Info")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2863 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2864 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
| 4635 | 2865 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2866 gtk_widget_realize(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2867 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2868 gtk_widget_show(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2869 } |
| 1 | 2870 |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2871 void show_find_email(struct gaim_connection *gc) |
| 1 | 2872 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2873 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2874 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2875 GtkWidget *vbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2876 GtkWidget *frame; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2877 GtkWidget *topbox; |
| 444 | 2878 GtkWidget *button; |
| 1 | 2879 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2880 struct findbyemail *b = g_new0(struct findbyemail, 1); |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2881 if (g_slist_find(connections, gc)) |
|
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2882 b->gc = gc; |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2883 GAIM_DIALOG(b->window); |
| 4635 | 2884 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 2885 gtk_window_set_role(GTK_WINDOW(b->window), "find_email"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2886 gtk_widget_realize(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2887 dialogwindows = g_list_prepend(dialogwindows, b->window); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2888 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2889 gtk_window_set_title(GTK_WINDOW(b->window), _("Gaim - Find Buddy By Email")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2890 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2891 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2892 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2893 gtk_container_add(GTK_CONTAINER(b->window), vbox); |
| 1185 | 2894 |
| 444 | 2895 frame = gtk_frame_new(_("Search for Buddy")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2896 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2897 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2898 topbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2899 gtk_container_add(GTK_CONTAINER(frame), topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2900 gtk_container_set_border_width(GTK_CONTAINER(topbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2901 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2902 label = gtk_label_new(_("Email")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2903 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2904 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2905 b->emailentry = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2906 gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, TRUE, TRUE, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2907 g_signal_connect(GTK_OBJECT(b->emailentry), "activate", G_CALLBACK(do_find_email), b); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2908 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2909 |
| 1185 | 2910 bbox = gtk_hbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2911 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
| 444 | 2912 |
| 4094 | 2913 button = picture_button(b->window, _("OK"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2914 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_find_email), b); |
| 4094 | 2915 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 2916 | |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2917 button = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2918 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window); |
| 1185 | 2919 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 2920 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2921 gtk_widget_show_all(b->window); |
| 1 | 2922 } |
| 2923 | |
| 2924 /*------------------------------------------------------*/ | |
| 2925 /* Link Dialog */ | |
| 2926 /*------------------------------------------------------*/ | |
| 2927 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2928 void cancel_link(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 2929 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2930 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2931 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2932 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2933 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2934 if (gtkconv->toolbar.link) { |
| 4635 | 2935 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2936 FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2937 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2938 |
| 4685 | 2939 destroy_dialog(NULL, gtkconv->dialogs.link); |
| 2940 gtkconv->dialogs.link = NULL; | |
| 1 | 2941 } |
| 2942 | |
| 4262 | 2943 void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 1 | 2944 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2945 struct gaim_gtk_conversation *gtkconv; |
| 1 | 2946 char *open_tag; |
| 3466 | 2947 const char *urltext, *showtext; |
| 4262 | 2948 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2949 gtkconv = GAIM_GTK_CONVERSATION(b->c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2950 |
| 4262 | 2951 if (resp == GTK_RESPONSE_OK) { |
| 2952 | |
| 2953 open_tag = g_malloc(2048); | |
| 2954 | |
| 2955 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); | |
| 2956 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 2957 | |
| 2958 if (!strlen(showtext)) | |
| 2959 showtext = urltext; | |
| 2960 | |
| 2961 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2962 gaim_gtk_surround(gtkconv, open_tag, "</A>"); |
| 4262 | 2963 |
| 2964 g_free(open_tag); | |
| 2965 } | |
| 2966 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2967 if (gtkconv->toolbar.link) { |
| 4635 | 2968 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2969 FALSE); |
| 4262 | 2970 } |
| 2971 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2972 gtkconv->dialogs.link = NULL; |
| 1 | 2973 destroy_dialog(NULL, b->window); |
| 2974 } | |
| 2975 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2976 void show_insert_link(GtkWidget *linky, struct gaim_conversation *c) |
| 1 | 2977 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2978 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2979 struct gaim_gtk_window *gtkwin; |
| 4262 | 2980 GtkWidget *table; |
| 2981 GtkWidget *label; | |
| 2982 GtkWidget *hbox; | |
| 1 | 2983 GtkWidget *vbox; |
| 2984 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2985 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2986 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2987 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2988 if (gtkconv->dialogs.link == NULL) { |
| 4262 | 2989 struct linkdlg *a = g_new0(struct linkdlg, 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2990 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2991 "dialogs", "gaim_question.png", NULL); |
| 4262 | 2992 GtkWidget *img = gtk_image_new_from_file(filename); |
| 2993 | |
| 2994 g_free(filename); | |
| 2995 | |
| 2996 a->c = c; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2997 a->window = gtk_dialog_new_with_buttons(_("Gaim - Insert Link"), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2998 GTK_WINDOW(gtkwin->window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2999 GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL); |
| 4262 | 3000 |
| 3001 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 3002 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 3003 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 3004 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 3005 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3006 gtk_container_set_border_width( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3007 GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 4262 | 3008 gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
| 3009 | |
| 3010 hbox = gtk_hbox_new(FALSE, 12); | |
| 3011 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 3012 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 3013 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 3014 | |
| 3015 vbox = gtk_vbox_new(FALSE, 0); | |
| 3016 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 3017 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3018 label = gtk_label_new(_("Please enter the URL and description of " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3019 "the link that you want to insert. The " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3020 "description is optional.\n")); |
| 4262 | 3021 |
| 3022 gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1); | |
| 3023 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 3024 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3025 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 3026 | |
| 3027 hbox = gtk_hbox_new(FALSE, 6); | |
| 3028 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3029 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3030 g_signal_connect(G_OBJECT(a->window), "destroy", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3031 G_CALLBACK(destroy_dialog), a->window); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3032 g_signal_connect(G_OBJECT(a->window), "destroy", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3033 G_CALLBACK(free_dialog), a); |
| 4262 | 3034 dialogwindows = g_list_prepend(dialogwindows, a->window); |
| 3035 | |
| 3036 table = gtk_table_new(4, 2, FALSE); | |
| 3037 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 3038 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 3039 gtk_container_set_border_width(GTK_CONTAINER(table), 0); | |
| 3040 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 3041 | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3042 label = gtk_label_new(_("URL")); |
| 4262 | 3043 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 3044 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 3045 | |
| 3046 a->url = gtk_entry_new(); | |
| 3047 gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); | |
| 3048 gtk_widget_grab_focus(a->url); | |
| 3049 | |
| 3050 gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); | |
| 3051 | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3052 label = gtk_label_new(_("Description")); |
| 4262 | 3053 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 3054 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 3055 | |
| 3056 a->text = gtk_entry_new(); | |
| 3057 gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); | |
| 3058 gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); | |
| 3059 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3060 g_signal_connect(G_OBJECT(a->window), "response", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3061 G_CALLBACK(do_insert_link), a); |
| 4262 | 3062 |
| 3063 a->toggle = linky; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3064 gtkconv->dialogs.link = a->window; |
| 1 | 3065 } |
| 3066 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3067 gtk_widget_show_all(gtkconv->dialogs.link); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3068 gdk_window_raise(gtkconv->dialogs.link->window); |
| 1 | 3069 } |
| 3070 | |
| 3071 /*------------------------------------------------------*/ | |
| 3072 /* Color Selection Dialog */ | |
| 3073 /*------------------------------------------------------*/ | |
| 3074 | |
| 3367 | 3075 GtkWidget *fgcseld = NULL; |
| 3076 GtkWidget *bgcseld = NULL; | |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3077 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3078 void cancel_fgcolor(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 3079 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3080 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3081 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3082 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3083 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3084 if (gtkconv->toolbar.fgcolor && widget) { |
| 4635 | 3085 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3086 FALSE); |
| 61 | 3087 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3088 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3089 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3090 gtk_widget_destroy(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3091 gtkconv->dialogs.fg_color = NULL; |
| 1 | 3092 } |
| 3093 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3094 void cancel_bgcolor(GtkWidget *widget, struct gaim_conversation *c) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3095 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3096 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3097 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3098 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3099 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3100 if (gtkconv->toolbar.bgcolor && widget) { |
| 4635 | 3101 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3102 FALSE); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3103 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3104 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3105 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3106 gtk_widget_destroy(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3107 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3108 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3109 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3110 void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
| 1 | 3111 { |
| 3112 GdkColor text_color; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3113 struct gaim_conversation *c; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3114 struct gaim_gtk_conversation *gtkconv; |
| 1 | 3115 char *open_tag; |
| 3116 | |
| 3117 open_tag = g_malloc(30); | |
| 3118 | |
| 3557 | 3119 gtk_color_selection_get_current_color(colorsel, &text_color); |
| 1 | 3120 |
| 4635 | 3121 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
411
a330017b3aa4
[gaim-migrate @ 421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
401
diff
changeset
|
3122 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3123 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3124 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3125 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3126 gtkconv->fg_color = text_color; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3127 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3128 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3129 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3130 text_color.blue / 256); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3131 gaim_gtk_surround(gtkconv, open_tag, "</FONT>"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3132 debug_printf("#%02X%02X%02X\n", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3133 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3134 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3135 text_color.blue / 256); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3136 g_free(open_tag); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3137 cancel_fgcolor(NULL, c); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3138 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3139 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3140 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3141 { |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3142 GdkColor text_color; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3143 struct gaim_conversation *c; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3144 struct gaim_gtk_conversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3145 char *open_tag; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3146 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3147 open_tag = g_malloc(30); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3148 |
| 3557 | 3149 gtk_color_selection_get_current_color(colorsel, &text_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3150 |
| 4635 | 3151 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3152 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3153 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3154 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3155 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3156 gtkconv->bg_color = text_color; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3157 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3158 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3159 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3160 text_color.blue / 256); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3161 gaim_gtk_surround(gtkconv, open_tag, "</BODY>"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3162 debug_printf("#%02X%02X%02X\n", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3163 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3164 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3165 text_color.blue / 256); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3166 g_free(open_tag); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3167 cancel_bgcolor(NULL, c); |
| 1 | 3168 } |
| 3169 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3170 void show_fgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
| 1 | 3171 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3172 struct gaim_gtk_conversation *gtkconv; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3173 GtkWidget *colorsel; |
| 1 | 3174 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3175 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3176 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3177 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3178 if (fgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3179 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
3180 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3181 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); |
| 4198 | 3182 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 3183 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3184 g_signal_connect(GTK_OBJECT(fgcseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3185 G_CALLBACK(destroy_colorsel), (void *)1); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3186 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3187 "clicked", G_CALLBACK(destroy_colorsel), (void *)1); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3188 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3189 G_CALLBACK(apply_color_dlg), (void *)1); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3190 gtk_widget_realize(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3191 gtk_widget_show(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3192 gdk_window_raise(fgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3193 return; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3194 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3195 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3196 if (!gtkconv->dialogs.fg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3197 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3198 gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3199 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; |
| 4198 | 3200 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); |
| 4635 | 3201 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
3202 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3203 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.fg_color), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3204 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3205 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3206 "clicked", G_CALLBACK(do_fgcolor), colorsel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3207 g_signal_connect(GTK_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3208 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3209 "clicked", G_CALLBACK(cancel_fgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3210 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3211 gtk_widget_realize(gtkconv->dialogs.fg_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3212 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3213 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3214 gtk_widget_show(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3215 gdk_window_raise(gtkconv->dialogs.fg_color->window); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3216 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3217 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3218 void show_bgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3219 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3220 struct gaim_gtk_conversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3221 GtkWidget *colorsel; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3222 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3223 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3224 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3225 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3226 if (bgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3227 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
3228 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3229 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); |
| 4198 | 3230 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 3231 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3232 g_signal_connect(GTK_OBJECT(bgcseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3233 G_CALLBACK(destroy_colorsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3234 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3235 "clicked", G_CALLBACK(destroy_colorsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3236 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3237 G_CALLBACK(apply_color_dlg), (void *)2); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3238 gtk_widget_realize(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3239 gtk_widget_show(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3240 gdk_window_raise(bgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3241 return; |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3242 } |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
3243 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3244 if (!gtkconv->dialogs.bg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3245 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3246 gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3247 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; |
| 4198 | 3248 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); |
| 4635 | 3249 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
3250 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3251 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.bg_color), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3252 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3253 g_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3254 "clicked", G_CALLBACK(do_bgcolor), colorsel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3255 g_signal_connect(GTK_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3256 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3257 "clicked", G_CALLBACK(cancel_bgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
3258 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3259 gtk_widget_realize(gtkconv->dialogs.bg_color); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3260 } |
| 1 | 3261 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3262 gtk_widget_show(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3263 gdk_window_raise(gtkconv->dialogs.bg_color->window); |
| 1 | 3264 } |
| 3265 | |
| 3266 /*------------------------------------------------------------------------*/ | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3267 /* Font Selection Dialog */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3268 /*------------------------------------------------------------------------*/ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3269 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3270 void cancel_font(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3271 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3272 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3273 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3274 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3275 |
| 4685 | 3276 if (gtkconv->toolbar.font && widget) { |
| 4635 | 3277 gtk_toggle_button_set_active( |
| 4685 | 3278 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3279 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3280 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3281 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3282 gtk_widget_destroy(gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3283 gtkconv->dialogs.font = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3284 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3285 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3286 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3287 { |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3288 /* this could be expanded to include font size, weight, etc. |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3289 but for now only works with font face */ |
| 3473 | 3290 int i = 0; |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
657
diff
changeset
|
3291 char *fontname; |
| 4635 | 3292 struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel), |
| 3293 "gaim_conversation"); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3294 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3295 if (c) { |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
657
diff
changeset
|
3296 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 4635 | 3297 while(fontname[i] && !isdigit(fontname[i])) { |
| 3473 | 3298 i++; |
| 3299 } | |
| 3300 fontname[i] = 0; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3301 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3302 } else { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3303 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 3473 | 3304 while(fontface[i] && !isdigit(fontname[i]) && i < sizeof(fontface)) { |
| 3305 fontface[i] = fontname[i]; | |
| 3306 i++; | |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
3307 } |
| 3473 | 3308 fontface[i] = 0; |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
3309 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3310 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
3311 cancel_font(NULL, c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3312 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3313 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3314 void destroy_fontsel(GtkWidget *w, gpointer d) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3315 { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3316 gtk_widget_destroy(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3317 fontseld = NULL; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3318 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3319 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3320 void show_font_dialog(struct gaim_conversation *c, GtkWidget *font) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3321 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3322 struct gaim_gtk_conversation *gtkconv; |
| 3473 | 3323 char fonttif[128]; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3324 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3325 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3326 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3327 if (!font) { /* we came from the prefs dialog */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3328 if (fontseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3329 return; |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3330 fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
| 3473 | 3331 if (fontface[0]) { |
| 3332 g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface); | |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3333 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 3334 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3335 } else { |
|
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3336 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 3337 DEFAULT_FONT_FACE " 12"); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3338 } |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3339 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3340 g_signal_connect(GTK_OBJECT(fontseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3341 G_CALLBACK(destroy_fontsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3342 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3343 "clicked", G_CALLBACK(destroy_fontsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3344 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3345 G_CALLBACK(apply_font_dlg), fontseld); |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3346 gtk_widget_realize(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3347 gtk_widget_show(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3348 gdk_window_raise(fontseld->window); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3349 return; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3350 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3351 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3352 if (!gtkconv->dialogs.font) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3353 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
3354 |
| 4635 | 3355 g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3356 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3357 if (gtkconv->fontface[0]) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3358 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3359 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3360 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3361 } else { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3362 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3363 DEFAULT_FONT_FACE); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3364 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3365 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3366 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.font), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3367 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3368 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->ok_button), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3369 "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3370 g_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3371 "clicked", G_CALLBACK(cancel_font), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3372 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3373 gtk_widget_realize(gtkconv->dialogs.font); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3374 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3375 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3376 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3377 gtk_widget_show(gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3378 gdk_window_raise(gtkconv->dialogs.font->window); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3379 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3380 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3381 /*------------------------------------------------------------------------*/ |
| 1 | 3382 /* The dialog for import/export */ |
| 3383 /*------------------------------------------------------------------------*/ | |
| 3384 | |
| 4350 | 3385 static void do_import_dialog(GtkWidget *w, gpointer data) |
| 229 | 3386 { |
| 3466 | 3387 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(importdialog)); |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3388 if (file_is_dir(file, importdialog)) { |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3389 return; |
| 229 | 3390 } |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
3391 if (g_slist_find(connections, importgc)) { |
| 4491 | 3392 do_import(importgc->account, file); |
| 4349 | 3393 gaim_blist_save(); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
3394 } |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3395 destroy_dialog(NULL, importdialog); |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3396 } |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3397 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3398 static void set_import_gc(gpointer data, struct gaim_connection *gc) |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3399 { |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3400 importgc = gc; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3401 } |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3402 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3403 static void create_import_dropdown(GtkFileSelection *fs) |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3404 { |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3405 GtkWidget *hbox; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3406 GtkWidget *label; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3407 GSList *g = connections; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3408 struct gaim_connection *c; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3409 GtkWidget *optmenu; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3410 GtkWidget *menu; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3411 char buf[256]; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3412 GtkWidget *opt; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3413 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3414 if (!connections) |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3415 return; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3416 importgc = connections->data; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3417 if (!connections->next) |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3418 return; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3419 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3420 hbox = gtk_hbox_new(FALSE, 0); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3421 gtk_box_pack_end(GTK_BOX(fs->action_area), hbox, FALSE, FALSE, 0); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3422 gtk_widget_show(hbox); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3423 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3424 optmenu = gtk_option_menu_new(); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3425 gtk_box_pack_end(GTK_BOX(hbox), optmenu, FALSE, FALSE, 5); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3426 gtk_widget_show(optmenu); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3427 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3428 label = gtk_label_new(_("Import to:")); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3429 gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3430 gtk_widget_show(label); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3431 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3432 menu = gtk_menu_new(); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3433 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3434 while (g) { |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3435 c = (struct gaim_connection *)g->data; |
| 3572 | 3436 g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name); |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3437 opt = gtk_menu_item_new_with_label(buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3438 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_import_gc), c); |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3439 gtk_widget_show(opt); |
| 4635 | 3440 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3441 g = g->next; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3442 } |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3443 |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3444 gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu), menu); |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3445 gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), 0); |
| 229 | 3446 } |
| 3447 | |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3448 void show_import_dialog() |
| 1 | 3449 { |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3450 char *buf = g_malloc(BUF_LEN); |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3451 if (!importdialog) { |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3452 importdialog = gtk_file_selection_new(_("Gaim - Import Buddy List")); |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3453 |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3454 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(importdialog)); |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3455 |
| 3630 | 3456 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, gaim_home_dir()); |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3457 |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3458 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3459 g_signal_connect(GTK_OBJECT(importdialog), "destroy", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3460 G_CALLBACK(destroy_dialog), importdialog); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3461 |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3462 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3463 "clicked", G_CALLBACK(do_import_dialog), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3464 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3465 "clicked", G_CALLBACK(destroy_dialog), importdialog); |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3466 |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
3467 create_import_dropdown(GTK_FILE_SELECTION(importdialog)); |
| 228 | 3468 } |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
3469 |
|
2382
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3470 g_free(buf); |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3471 gtk_widget_show(importdialog); |
|
569ae9f2bb89
[gaim-migrate @ 2395]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2379
diff
changeset
|
3472 gdk_window_raise(importdialog->window); |
| 1 | 3473 } |
| 3474 | |
| 3475 /*------------------------------------------------------------------------*/ | |
| 3476 /* The dialog for new away messages */ | |
| 3477 /*------------------------------------------------------------------------*/ | |
| 3478 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3479 static struct away_message *save_away_message(struct create_away *ca) |
| 717 | 3480 { |
| 3481 struct away_message *am; | |
| 3482 gchar *away_message; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3483 |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3484 if (!ca->mess) |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3485 am = g_new0(struct away_message, 1); |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
3486 else { |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3487 am = ca->mess; |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
3488 } |
| 1387 | 3489 |
| 4119 | 3490 |
| 717 | 3491 g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3492 away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 717 | 3493 |
| 3494 g_snprintf(am->message, sizeof(am->message), "%s", away_message); | |
| 3495 g_free(away_message); | |
| 3496 | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3497 if (!ca->mess) { |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3498 away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3499 } |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3500 |
| 717 | 3501 save_prefs(); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3502 do_away_menu(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3503 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3504 return am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3505 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3506 |
| 1387 | 3507 int check_away_mess(struct create_away *ca, int type) |
| 3508 { | |
| 4630 | 3509 char *msg; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3510 if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { |
| 1387 | 3511 /* We shouldn't allow a blank title */ |
| 3427 | 3512 do_error_dialog(_("You cannot save an away message with a blank title"), |
| 3513 _("Please give the message a title, or choose \"Make Away\" to use " | |
| 3514 "without saving."), GAIM_ERROR); | |
| 1387 | 3515 return 0; |
| 3516 } | |
| 3517 | |
| 4630 | 3518 msg = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 3519 | |
| 3520 if (!msg && (type <= 1)) { | |
| 1387 | 3521 /* We shouldn't allow a blank message */ |
| 3427 | 3522 do_error_dialog(_("You cannot create an empty away message"), NULL, GAIM_ERROR); |
| 1387 | 3523 return 0; |
| 3524 } | |
| 3525 | |
| 4630 | 3526 g_free(msg); |
| 3527 | |
| 1387 | 3528 return 1; |
| 3529 } | |
| 3530 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3531 void save_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3532 { |
| 1387 | 3533 if (!check_away_mess(ca, 1)) |
| 3534 return; | |
| 3535 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3536 save_away_message(ca); |
| 717 | 3537 destroy_dialog(NULL, ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3538 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3539 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3540 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3541 void use_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3542 { |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3543 static struct away_message am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3544 gchar *away_message; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3545 |
| 1387 | 3546 if (!check_away_mess(ca, 0)) |
| 3547 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3548 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3549 g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3550 away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3551 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3552 g_snprintf(am.message, sizeof(am.message), "%s", away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3553 g_free(away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3554 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3555 do_away_message(NULL, &am); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3556 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3557 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3558 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3559 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3560 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3561 void su_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3562 { |
| 1387 | 3563 if (!check_away_mess(ca, 1)) |
| 3564 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3565 do_away_message(NULL, save_away_message(ca)); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3566 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3567 g_free(ca); |
| 717 | 3568 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3569 |
| 1 | 3570 void create_away_mess(GtkWidget *widget, void *dummy) |
| 3571 { | |
| 439 | 3572 GtkWidget *hbox; |
| 1 | 3573 GtkWidget *titlebox; |
| 3574 GtkWidget *tbox; | |
| 3575 GtkWidget *label; | |
| 439 | 3576 GtkWidget *frame; |
| 3577 GtkWidget *fbox; | |
| 441 | 3578 GtkWidget *button; |
| 1 | 3579 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3580 struct create_away *ca = g_new0(struct create_away, 1); |
| 1185 | 3581 |
| 1 | 3582 /* Set up window */ |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3583 GAIM_DIALOG(ca->window); |
| 4635 | 3584 gtk_widget_set_size_request(ca->window, -1, 250); |
| 3585 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); | |
| 4074 | 3586 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3587 gtk_window_set_title(GTK_WINDOW(ca->window), _("Gaim - New away message")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3588 g_signal_connect(GTK_OBJECT(ca->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3589 G_CALLBACK(destroy_dialog), ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3590 gtk_widget_realize(ca->window); |
| 1185 | 3591 |
| 3592 tbox = gtk_vbox_new(FALSE, 5); | |
| 3593 gtk_container_add(GTK_CONTAINER(ca->window), tbox); | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3594 gtk_widget_show(tbox); |
| 439 | 3595 |
| 3596 frame = gtk_frame_new(_("New away message")); | |
| 1185 | 3597 gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3598 gtk_widget_show(frame); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3599 |
| 1172 | 3600 fbox = gtk_vbox_new(FALSE, 5); |
|
1224
0bbe3aaa6a3e
[gaim-migrate @ 1234]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1216
diff
changeset
|
3601 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
| 1185 | 3602 gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3603 gtk_widget_show(fbox); |
| 1185 | 3604 |
| 3605 titlebox = gtk_hbox_new(FALSE, 5); | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3606 gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3607 gtk_widget_show(titlebox); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3608 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3609 label = gtk_label_new(_("Away title: ")); |
| 1172 | 3610 gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); |
| 441 | 3611 gtk_widget_show(label); |
| 1185 | 3612 |
| 1 | 3613 ca->entry = gtk_entry_new(); |
| 1172 | 3614 gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3615 gtk_widget_grab_focus(ca->entry); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3616 gtk_widget_show(ca->entry); |
| 1 | 3617 |
| 4119 | 3618 frame = gtk_frame_new(NULL); |
| 3619 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 3620 gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); | |
| 3621 gtk_widget_show(frame); | |
| 3622 | |
| 3623 ca->text = gtk_text_view_new(); | |
| 3624 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD); | |
| 3625 | |
| 3626 gtk_container_add(GTK_CONTAINER(frame), ca->text); | |
| 1 | 3627 gtk_widget_show(ca->text); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3628 |
| 3374 | 3629 |
| 3630 if (dummy) { | |
| 3631 struct away_message *amt; | |
| 3632 GtkTreeIter iter; | |
| 3633 int pos = 0; | |
| 3634 GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy))); | |
| 3635 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy)); | |
| 3636 GValue val = { 0, }; | |
| 4119 | 3637 GtkTextIter start; |
| 3638 GtkTextBuffer *buffer; | |
| 3374 | 3639 |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3640 if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter)) |
| 3374 | 3641 return; |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3642 gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val); |
| 3374 | 3643 amt = g_value_get_pointer (&val); |
| 3644 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); | |
| 4119 | 3645 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text)); |
| 3646 gtk_text_buffer_get_iter_at_offset(buffer, &start, pos); | |
| 3647 gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message)); | |
| 3648 | |
| 3374 | 3649 ca->mess = amt; |
| 3650 } | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3651 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3652 hbox = gtk_hbox_new(FALSE, 5); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3653 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); |
| 439 | 3654 gtk_widget_show(hbox); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3655 |
| 4092 | 3656 button = picture_button(ca->window, _("Save"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3657 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); |
| 4092 | 3658 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3659 | |
| 3660 button = picture_button(ca->window, _("Save & Use"), add_xpm); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3661 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3662 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3663 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3664 button = picture_button(ca->window, _("Use"), gnome_preferences_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3665 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3666 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3667 |
| 4092 | 3668 button = picture_button(ca->window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3669 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3670 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3671 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3672 gtk_widget_show(ca->window); |
| 1 | 3673 } |
| 555 | 3674 |
| 3675 /* smiley dialog */ | |
| 3676 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3677 void close_smiley_dialog(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3678 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3679 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3680 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3681 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3682 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3683 if (gtkconv->toolbar.smiley) { |
| 4635 | 3684 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3685 FALSE); |
| 570 | 3686 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3687 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3688 gtk_widget_destroy(gtkconv->dialogs.smiley); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3689 gtkconv->dialogs.smiley = NULL; |
| 555 | 3690 } |
| 3691 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3692 void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c) |
| 555 | 3693 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3694 struct gaim_gtk_conversation *gtkconv; |
| 4667 | 3695 char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3696 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3697 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3698 |
| 4667 | 3699 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); |
| 555 | 3700 close_smiley_dialog(NULL, c); |
| 3701 } | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3702 |
| 4667 | 3703 static void add_smiley(struct gaim_conversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
| 4034 | 3704 { |
|
4061
890b4f1318df
[gaim-migrate @ 4271]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4060
diff
changeset
|
3705 GtkWidget *image; |
| 4034 | 3706 GtkWidget *button; |
| 4667 | 3707 struct gaim_gtk_conversation *gtkconv = GAIM_GTK_CONVERSATION(c); |
| 3708 | |
| 3709 image = gtk_image_new_from_file(filename); | |
| 3710 button = gtk_button_new(); | |
| 3711 gtk_container_add(GTK_CONTAINER(button), image); | |
| 3712 g_object_set_data(G_OBJECT(button), "smiley_text", face); | |
| 3713 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), c); | |
| 3714 | |
| 3715 gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL); | |
| 3716 | |
| 3717 gtk_table_attach_defaults(GTK_TABLE(table), button, col, col+1, row, row+1); | |
| 4034 | 3718 |
| 3719 /* these look really weird with borders */ | |
| 3720 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4667 | 3721 |
| 3722 gtk_widget_show(button); | |
| 3723 } | |
| 3724 | |
| 3725 static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { | |
| 3726 while(list) { | |
| 3727 GtkIMHtmlSmiley *cur = list->data; | |
| 3728 if(!strcmp(cur->file, smiley->file)) | |
| 3729 return FALSE; | |
| 3730 list = list->next; | |
| 3731 } | |
| 3732 return TRUE; | |
| 4034 | 3733 } |
| 3734 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3735 void show_smiley_dialog(struct gaim_conversation *c, GtkWidget *widget) |
| 555 | 3736 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3737 struct gaim_gtk_conversation *gtkconv; |
| 555 | 3738 GtkWidget *dialog; |
| 4667 | 3739 GtkWidget *smiley_table = NULL; |
| 3740 GSList *smileys, *unique_smileys = NULL; | |
| 3741 int width; | |
| 3742 int row = 0, col = 0; | |
| 555 | 3743 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3744 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3745 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3746 if (gtkconv->dialogs.smiley) |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
3747 return; |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3748 |
| 4667 | 3749 if(c->account) |
| 3750 smileys = get_proto_smileys(c->account->protocol); | |
| 3751 else | |
| 3752 smileys = get_proto_smileys(DEFAULT_PROTO); | |
| 3753 | |
| 3754 while(smileys) { | |
| 3755 GtkIMHtmlSmiley *smiley = smileys->data; | |
| 3756 if(!smiley->hidden) { | |
| 3757 if(smiley_is_unique(unique_smileys, smiley)) | |
| 3758 unique_smileys = g_slist_append(unique_smileys, smiley); | |
| 3759 } | |
| 3760 smileys = smileys->next; | |
| 3761 } | |
| 3762 | |
| 3763 | |
| 3764 width = floor(sqrt(g_slist_length(unique_smileys))); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3765 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3766 GAIM_DIALOG(dialog); |
| 4635 | 3767 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
| 4074 | 3768 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); |
| 934 | 3769 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3770 |
| 4667 | 3771 smiley_table = gtk_table_new(width, width, TRUE); |
| 555 | 3772 |
| 3773 /* pack buttons */ | |
| 4667 | 3774 |
| 3775 while(unique_smileys) { | |
| 3776 GtkIMHtmlSmiley *smiley = unique_smileys->data; | |
| 3777 if(!smiley->hidden) { | |
| 3778 add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile); | |
| 3779 if(++col >= width) { | |
| 3780 col = 0; | |
| 3781 row++; | |
| 3782 } | |
| 3783 } | |
| 3784 unique_smileys = unique_smileys->next; | |
| 3785 } | |
| 3786 | |
| 3787 gtk_container_add(GTK_CONTAINER(dialog), smiley_table); | |
| 3788 | |
| 3789 gtk_widget_show(smiley_table); | |
| 3790 | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3791 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
| 555 | 3792 |
| 605 | 3793 /* connect signals */ |
| 4635 | 3794 g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog"); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3795 g_signal_connect(G_OBJECT(dialog), "delete_event", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3796 G_CALLBACK(delete_event_dialog), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3797 |
| 555 | 3798 /* show everything */ |
|
567
102afb84ce45
[gaim-migrate @ 577]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
558
diff
changeset
|
3799 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); |
| 584 | 3800 gtk_widget_show_all(dialog); |
| 555 | 3801 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3802 gtkconv->dialogs.smiley = dialog; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3803 |
| 555 | 3804 return; |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
3805 } |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3806 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3807 static void do_alias_bud(GtkWidget *w, struct buddy *b) |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3808 { |
| 3466 | 3809 const char *al = gtk_entry_get_text(GTK_ENTRY(aliasname)); |
| 4227 | 3810 if (al && strlen(al)) |
| 3811 g_snprintf(b->alias, sizeof(b->alias), "%s", al); | |
| 3812 else | |
| 3813 b->alias[0] = '\0'; | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3814 handle_buddy_rename(b, b->name); |
| 3136 | 3815 serv_alias_buddy(b); |
| 4349 | 3816 gaim_blist_save(); |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3817 destroy_dialog(aliasdlg, aliasdlg); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3818 } |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3819 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3820 void alias_dialog_bud(struct buddy *b) |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3821 { |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3822 GtkWidget *vbox; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3823 GtkWidget *bbox; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3824 GtkWidget *cancel; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3825 static GtkWidget *add = NULL; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3826 GtkWidget *label; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3827 GtkWidget *topbox; |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3828 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3829 if (aliasdlg) |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3830 gtk_widget_destroy(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3831 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3832 GAIM_DIALOG(aliasdlg); |
| 4635 | 3833 gtk_window_set_resizable(GTK_WINDOW(aliasdlg), FALSE); |
| 4074 | 3834 gtk_window_set_role(GTK_WINDOW(aliasdlg), "alias_dialog"); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3835 gtk_widget_realize(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3836 dialogwindows = g_list_prepend(dialogwindows, aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3837 |
| 4092 | 3838 topbox = gtk_vbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3839 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3840 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3841 aliasentry = gtk_entry_new(); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3842 aliasname = gtk_entry_new(); |
| 4092 | 3843 |
| 3844 /* Make the buddy name box */ | |
| 3845 bbox = gtk_hbox_new(FALSE, 5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3846 label = gtk_label_new(_("Buddy")); |
| 4092 | 3847 gtk_widget_show(bbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3848 gtk_widget_show(label); |
| 4092 | 3849 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5); |
| 3850 gtk_box_pack_end(GTK_BOX(bbox), aliasentry, FALSE, FALSE, 5); | |
| 4635 | 3851 gtk_editable_set_editable(GTK_EDITABLE(aliasentry), FALSE); |
| 4092 | 3852 gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0); |
| 3853 | |
| 3854 /* And the buddy alias box */ | |
| 3855 bbox = gtk_hbox_new(FALSE, 5); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3856 label = gtk_label_new(_("Alias")); |
| 4092 | 3857 gtk_widget_show(bbox); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3858 gtk_widget_show(label); |
| 4092 | 3859 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5); |
| 3860 gtk_box_pack_end(GTK_BOX(bbox), aliasname, FALSE, FALSE, 5); | |
| 3861 gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3862 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3863 gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name); |
| 4227 | 3864 gtk_entry_set_text(GTK_ENTRY(aliasname), b->alias); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3865 |
| 4092 | 3866 /* Put the buttons in the box */ |
| 3867 bbox = gtk_hbox_new(FALSE, 5); | |
| 3868 | |
| 3869 add = picture_button(aliasdlg, _("Alias"), add_xpm); | |
| 3870 cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm); | |
| 3871 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0); | |
| 3872 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 3873 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3874 /* And the boxes in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3875 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3876 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3877 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3878 /* Handle closes right */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3879 g_signal_connect(GTK_OBJECT(aliasdlg), "destroy", G_CALLBACK(destroy_dialog), aliasdlg); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3880 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), aliasdlg); |
| 4635 | 3881 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b); |
| 3882 g_signal_connect(GTK_OBJECT(aliasname), "activate", G_CALLBACK(do_alias_bud), b); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3883 /* Finish up */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3884 gtk_widget_show(add); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3885 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3886 gtk_widget_show(aliasentry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3887 gtk_widget_show(aliasname); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3888 gtk_widget_show(topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3889 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3890 gtk_widget_show(vbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3891 gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Gaim - Alias Buddy")); |
| 4092 | 3892 gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasname); |
| 3893 gtk_container_add(GTK_CONTAINER(aliasdlg), vbox); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3894 gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3895 gtk_widget_realize(aliasdlg); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3896 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3897 gtk_widget_show(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3898 } |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3899 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3900 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3901 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3902 { |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3903 return TRUE; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3904 } |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3905 |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3906 static void do_save_log(GtkWidget *w, GtkWidget *filesel) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3907 { |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3908 const char *file; |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3909 char path[PATHSIZE]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3910 char buf[BUF_LONG]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3911 char error[BUF_LEN]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3912 FILE *fp_old, *fp_new; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3913 char filename[PATHSIZE]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3914 char *name; |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3915 char *tmp; |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3916 |
| 4635 | 3917 name = g_object_get_data(G_OBJECT(filesel), "name"); |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3918 tmp = gaim_user_dir(); |
| 3630 | 3919 g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3920 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3921 |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3922 file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3923 strncpy(path, file, PATHSIZE - 1); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3924 if (file_is_dir(path, filesel)) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3925 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3926 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3927 if ((fp_new = fopen(path, "w")) == NULL) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3928 g_snprintf(error, BUF_LONG, |
| 3427 | 3929 _("Couldn't write to %s."), path); |
| 3930 do_error_dialog(error, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3931 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3932 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3933 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3934 if ((fp_old = fopen(filename, "r")) == NULL) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3935 g_snprintf(error, BUF_LONG, |
| 3427 | 3936 _("Couldn't write to %s."), filename); |
| 3937 do_error_dialog(error, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3938 fclose(fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3939 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3940 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3941 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3942 while (fgets(buf, BUF_LONG, fp_old)) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3943 fputs(buf, fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3944 fclose(fp_old); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3945 fclose(fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3946 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3947 gtk_widget_destroy(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3948 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3949 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3950 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3951 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3952 static void show_save_log(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3953 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3954 GtkWidget *filesel; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3955 gchar buf[BUF_LEN]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3956 |
| 3630 | 3957 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s%s", gaim_home_dir(), |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3958 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3959 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3960 filesel = gtk_file_selection_new(_("Gaim - Save Log File")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3961 g_signal_connect(GTK_OBJECT(filesel), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3962 G_CALLBACK(destroy_dialog), filesel); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3963 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3964 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel)); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3965 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3966 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3967 "clicked", G_CALLBACK(do_save_log), filesel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3968 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3969 "clicked", G_CALLBACK(destroy_dialog), filesel); |
| 4635 | 3970 g_object_set_data(G_OBJECT(filesel), "name", name); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3971 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3972 gtk_widget_realize(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3973 gtk_widget_show(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3974 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3975 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3976 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3977 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3978 static void do_clear_log_file(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3979 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3980 gchar buf[256]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3981 gchar filename[256]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3982 GtkWidget *window; |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3983 char *tmp; |
|
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3984 |
|
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3985 tmp = gaim_user_dir(); |
| 3630 | 3986 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3987 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3988 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3989 if ((remove(filename)) == -1) { |
| 3427 | 3990 g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); |
| 3991 do_error_dialog(buf, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3992 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3993 |
| 4635 | 3994 window = g_object_get_data(G_OBJECT(w), "log_window"); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3995 destroy_dialog(NULL, window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3996 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3997 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3998 static void show_clear_log(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3999 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4000 GtkWidget *window; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4001 GtkWidget *box; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4002 GtkWidget *hbox; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4003 GtkWidget *button; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4004 GtkWidget *label; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4005 GtkWidget *hsep; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4006 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
4007 GAIM_DIALOG(window); |
| 4074 | 4008 gtk_window_set_role(GTK_WINDOW(window), "dialog"); |
| 4586 | 4009 gtk_window_set_title(GTK_WINDOW(window), _("Gaim - Clear Log")); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4010 gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 4011 gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4012 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4013 gtk_widget_realize(window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4014 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4015 box = gtk_vbox_new(FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4016 gtk_container_add(GTK_CONTAINER(window), box); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4017 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4018 label = gtk_label_new(_("Really clear log?")); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4019 gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 15); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4020 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4021 hsep = gtk_hseparator_new(); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4022 gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4023 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4024 hbox = gtk_hbox_new(FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4025 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4026 gtk_widget_show(hbox); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4027 |
| 4333 | 4028 button = picture_button(window, _("Okay"), ok_xpm); |
| 4635 | 4029 g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w), |
| 4030 "log_window")); | |
| 4333 | 4031 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4032 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4033 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4034 gtk_widget_show(button); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4035 |
| 4333 | 4036 button = picture_button(window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4037 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4038 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4039 gtk_widget_show(button); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4040 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4041 gtk_widget_show_all(window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4042 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4043 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4044 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4045 |
| 4635 | 4046 static void log_show_convo(struct view_log *view) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4047 { |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4048 gchar buf[BUF_LONG]; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4049 FILE *fp; |
| 2570 | 4050 char filename[256]; |
| 4051 int i=0; | |
| 4052 GString *string; | |
| 2602 | 4053 guint block; |
| 4054 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4055 string = g_string_new(""); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4056 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4057 if (view->name) { |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
4058 char *tmp = gaim_user_dir(); |
| 3630 | 4059 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(view->name)); |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
4060 } else { |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
4061 char *tmp = gaim_user_dir(); |
| 3630 | 4062 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "system", tmp); |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
4063 } |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4064 if ((fp = fopen(filename, "r")) == NULL) { |
| 4472 | 4065 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename); |
| 3427 | 4066 do_error_dialog(buf, strerror(errno), GAIM_ERROR); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4067 return; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4068 } |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4069 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4070 gtk_widget_set_sensitive(view->bbox, FALSE); |
| 4635 | 4071 g_signal_handlers_disconnect_by_func(G_OBJECT(view->window), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4072 G_CALLBACK(destroy_dialog), view->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4073 block = g_signal_connect(GTK_OBJECT(view->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4074 G_CALLBACK(dont_destroy), view->window); |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4075 |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4076 fseek(fp, view->offset, SEEK_SET); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4077 gtk_imhtml_clear(GTK_IMHTML(view->layout)); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4078 /* |
| 2570 | 4079 while (gtk_events_pending()) |
| 4080 gtk_main_iteration(); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4081 */ |
| 2570 | 4082 |
| 4083 while (fgets(buf, BUF_LONG, fp) && !strstr(buf, "---- New C")) { | |
| 4084 i++; | |
| 4085 if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5))) | |
| 4086 /* take off the \n */ | |
| 4087 buf[strlen(buf) - 1] = '\0'; | |
| 4088 | |
|
2642
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
4089 /* don't lose the thirtieth line of conversation. thanks FeRD */ |
|
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
4090 g_string_append(string, buf); |
|
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
4091 |
| 2570 | 4092 if (i == 30) { |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
4093 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); |
| 2570 | 4094 g_string_free(string, TRUE); |
| 4095 string = g_string_new(""); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4096 /* you can't have these anymore. if someone clicks on another item while one is |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4097 * drawing, it will try to move to that item, and that causes problems here. |
| 2570 | 4098 while (gtk_events_pending()) |
| 4099 gtk_main_iteration(); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4100 */ |
| 2570 | 4101 i = 0; |
| 4102 } | |
| 4103 | |
| 4104 } | |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
4105 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); |
|
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
4106 gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options); |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4107 |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4108 gtk_widget_set_sensitive(view->bbox, TRUE); |
| 4635 | 4109 g_signal_handler_disconnect(G_OBJECT(view->window), block); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4110 g_signal_connect(GTK_OBJECT(view->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4111 G_CALLBACK(destroy_dialog), view->window); |
| 2570 | 4112 g_string_free(string, TRUE); |
| 4113 fclose(fp); | |
| 4114 } | |
| 4115 | |
| 4635 | 4116 static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model) |
| 4117 { | |
| 4118 GValue val = { 0, }; | |
| 4119 GtkTreeIter iter; | |
| 4120 | |
| 4121 if(!gtk_tree_selection_get_selected(sel, &model, &iter)) | |
| 4122 return; | |
| 4123 gtk_tree_model_get_value(model, &iter, 1, &val); | |
| 4124 log_show_convo(g_value_get_pointer(&val)); | |
| 4125 } | |
| 4126 | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4127 static void des_view_item(GtkObject *obj, struct view_log *view) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4128 { |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4129 if (view->name) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4130 g_free(view->name); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4131 g_free(view); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4132 } |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4133 |
| 4635 | 4134 static void des_log_win(GObject *win, gpointer data) |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4135 { |
| 4635 | 4136 char *x = g_object_get_data(win, "log_window"); |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4137 if (x) |
|
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4138 g_free(x); |
|
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4139 } |
|
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4140 |
| 3484 | 4141 void conv_show_log(GtkWidget *w, gpointer data) |
| 4142 { | |
| 4143 char *name = g_strdup(data); | |
| 4144 show_log(name); | |
| 4145 g_free(name); | |
| 4146 } | |
| 4147 | |
| 3532 | 4148 void chat_show_log(GtkWidget *w, gpointer data) |
| 4149 { | |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
4150 char *name = g_strdup_printf("%s.chat", (char*)data); |
| 3532 | 4151 show_log(name); |
| 4152 g_free(name); | |
| 4153 } | |
| 4154 | |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4155 void show_log(char *nm) |
| 2570 | 4156 { |
| 4157 gchar filename[256]; | |
| 4158 gchar buf[BUF_LONG]; | |
| 4159 FILE *fp; | |
| 4160 GtkWidget *window; | |
| 4161 GtkWidget *box; | |
| 4162 GtkWidget *hbox; | |
| 2602 | 4163 GtkWidget *bbox; |
| 2570 | 4164 GtkWidget *sw; |
| 4165 GtkWidget *layout; | |
| 4166 GtkWidget *close_button; | |
| 4167 GtkWidget *clear_button; | |
| 4168 GtkWidget *save_button; | |
| 4635 | 4169 GtkListStore *list_store; |
| 4170 GtkWidget *tree_view; | |
| 4171 GtkTreeSelection *sel = NULL; | |
| 4172 GtkTreePath *path; | |
| 2612 | 4173 GtkWidget *item = NULL; |
| 4174 GtkWidget *last = NULL; | |
| 2570 | 4175 GtkWidget *frame; |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4176 struct view_log *view; |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
4177 char *name = nm ? g_strdup(nm) : NULL; |
| 2570 | 4178 |
| 4179 int options; | |
| 4180 guint block; | |
| 4181 char convo_start[32]; | |
| 4182 long offset = 0; | |
| 4183 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4184 options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
4185 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4186 options ^= GTK_IMHTML_NO_COLOURS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
4187 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4188 options ^= GTK_IMHTML_NO_FONTS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
4189 if (convo_options & OPT_CONVO_IGNORE_SIZES) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4190 options ^= GTK_IMHTML_NO_SIZES; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4191 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4192 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 4635 | 4193 g_object_set_data(G_OBJECT(window), "name", name); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4194 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL); |
| 4074 | 4195 gtk_window_set_role(GTK_WINDOW(window), "log"); |
|
1648
09445224e2d9
[gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
4196 if (name) |
| 4472 | 4197 g_snprintf(buf, BUF_LONG, _("Gaim - Conversations with %s"), name); |
|
1648
09445224e2d9
[gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
4198 else |
| 4472 | 4199 g_snprintf(buf, BUF_LONG, _("Gaim - System Log")); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4200 gtk_window_set_title(GTK_WINDOW(window), buf); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4201 gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 4202 gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4203 block = g_signal_connect(GTK_OBJECT(window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4204 G_CALLBACK(dont_destroy), window); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4205 gtk_widget_realize(window); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4206 |
| 2570 | 4207 layout = gtk_imhtml_new(NULL, NULL); |
| 2602 | 4208 bbox = gtk_hbox_new(FALSE, 0); |
| 4209 | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4210 box = gtk_vbox_new(FALSE, 5); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4211 gtk_container_add(GTK_CONTAINER(window), box); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4212 |
| 2570 | 4213 hbox = gtk_hbox_new(FALSE, 5); |
| 4214 gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0); | |
| 4215 | |
| 4216 if (name) { | |
| 4217 char *tmp = gaim_user_dir(); | |
| 3630 | 4218 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(name)); |
| 2570 | 4219 if ((fp = fopen(filename, "r")) == NULL) { |
| 4472 | 4220 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename); |
| 3427 | 4221 do_error_dialog(buf, strerror(errno), GAIM_ERROR); |
| 2570 | 4222 return; |
| 4223 } | |
| 4224 | |
| 4635 | 4225 list_store = gtk_list_store_new(2, |
| 4226 G_TYPE_STRING, | |
| 4227 G_TYPE_POINTER); | |
| 4228 | |
| 4229 tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)); | |
| 4230 | |
| 4231 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE); | |
| 4232 | |
| 4233 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), | |
| 4234 -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL); | |
| 4235 | |
| 4236 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); | |
| 4237 g_signal_connect(G_OBJECT(sel), "changed", | |
| 4238 G_CALLBACK(log_select_convo), | |
| 4239 NULL); | |
| 2570 | 4240 |
| 4241 frame = gtk_frame_new(_("Date")); | |
| 4242 gtk_widget_show(frame); | |
| 4243 | |
| 4244 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 4245 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4635 | 4246 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view); |
|
2613
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2612
diff
changeset
|
4247 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2612
diff
changeset
|
4248 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4635 | 4249 gtk_widget_set_size_request(sw, 220, 220); |
| 2570 | 4250 gtk_container_add(GTK_CONTAINER(frame), sw); |
| 4251 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 4252 | |
| 4253 while (fgets(buf, BUF_LONG, fp)) { | |
| 4254 if (strstr(buf, "---- New C")) { | |
| 4255 int length; | |
| 4256 char *temp = strchr(buf, '@'); | |
| 4635 | 4257 GtkTreeIter iter; |
| 2612 | 4258 |
| 2570 | 4259 if (temp == NULL || strlen(temp) < 2) |
| 4260 continue; | |
| 2612 | 4261 |
| 2570 | 4262 temp++; |
| 4263 length = strcspn(temp, "-"); | |
| 4264 if (length > 31) length = 31; | |
| 4265 | |
| 4266 offset = ftell(fp); | |
| 4267 g_snprintf(convo_start, length, "%s", temp); | |
| 4635 | 4268 gtk_list_store_append(list_store, &iter); |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4269 view = g_new0(struct view_log, 1); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4270 view->options = options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4271 view->offset = offset; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4272 view->name = g_strdup(name); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4273 view->bbox = bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4274 view->window = window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4275 view->layout = layout; |
| 4635 | 4276 gtk_list_store_set(list_store, &iter, |
| 4277 0, convo_start, | |
| 4278 1, view, | |
| 4279 -1); | |
| 4280 g_signal_connect(G_OBJECT(window), "destroy", | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4281 G_CALLBACK(des_view_item), view); |
| 2612 | 4282 last = item; |
| 2570 | 4283 } |
| 4284 } | |
| 4285 fclose(fp); | |
| 4635 | 4286 |
| 4287 path = gtk_tree_path_new_first(); | |
| 4288 gtk_tree_selection_select_path(sel, path); | |
| 4289 gtk_tree_path_free(path); | |
| 4290 | |
| 4291 g_object_unref(G_OBJECT(list_store)); | |
| 2612 | 4292 } |
| 4293 | |
| 4635 | 4294 |
| 4295 g_signal_handler_disconnect(GTK_OBJECT(window), block); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4296 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
| 2602 | 4297 |
| 2570 | 4298 frame = gtk_frame_new(_("Conversation")); |
| 4299 gtk_widget_show(frame); | |
| 4300 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4301 sw = gtk_scrolled_window_new(NULL, NULL); |
| 2570 | 4302 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4303 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4333 | 4304 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 4635 | 4305 gtk_widget_set_size_request(sw, 390, 220); |
| 2570 | 4306 gtk_container_add(GTK_CONTAINER(frame), sw); |
| 4307 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 4308 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4309 g_signal_connect(GTK_OBJECT(layout), "url_clicked", G_CALLBACK(open_url), NULL); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4310 gtk_container_add(GTK_CONTAINER(sw), layout); |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
4311 gaim_setup_imhtml(layout); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4312 |
| 2602 | 4313 gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0); |
| 4314 gtk_widget_set_sensitive(bbox, FALSE); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4315 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4316 close_button = picture_button(window, _("Close"), cancel_xpm); |
| 2602 | 4317 gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4318 g_signal_connect(GTK_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4319 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4320 clear_button = picture_button(window, _("Clear"), close_xpm); |
| 4635 | 4321 g_object_set_data(G_OBJECT(clear_button), "log_window", window); |
| 2602 | 4322 gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4323 g_signal_connect(GTK_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4324 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4325 save_button = picture_button(window, _("Save"), save_xpm); |
| 2602 | 4326 gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4327 g_signal_connect(GTK_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
4328 |
| 4635 | 4329 gtk_widget_show_all(window); |
| 4330 | |
| 2570 | 4331 if (!name) { |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4332 view = g_new0(struct view_log, 1); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4333 view->options = options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4334 view->name = NULL; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4335 view->bbox = bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4336 view->window = window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
4337 view->layout = layout; |
| 4635 | 4338 log_show_convo(view); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4339 g_signal_connect(GTK_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4340 } |
| 4635 | 4341 |
| 2602 | 4342 gtk_widget_set_sensitive(bbox, TRUE); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4343 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4344 return; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
4345 } |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4346 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4347 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4348 /* The dialog for renaming groups */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4349 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4350 |
| 4183 | 4351 static void do_rename_group(GtkObject *obj, int resp, GtkWidget *entry) |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4352 { |
| 3466 | 4353 const char *new_name; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4354 struct group *g; |
|
1748
2eec724fdbcd
[gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1736
diff
changeset
|
4355 struct group *orig; |
| 4349 | 4356 GSList *accts; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4357 |
| 4183 | 4358 if (resp == GTK_RESPONSE_OK) { |
| 4359 | |
| 4360 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 4635 | 4361 g = g_object_get_data(G_OBJECT(entry), "group"); |
| 4183 | 4362 |
| 4363 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { | |
| 4364 char *prevname; | |
| 4365 | |
| 4349 | 4366 if ((orig = find_group(new_name)) != NULL && g_strcasecmp(new_name, g->name)) { |
| 4183 | 4367 orig->members = g_slist_concat(orig->members, g->members); |
| 4368 handle_group_rename(orig, g->name); | |
| 4349 | 4369 groups = g_slist_remove(groups, g); |
| 4183 | 4370 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); |
| 4349 | 4371 accts = gaim_group_get_accounts(g); |
| 4372 while(accts) { | |
| 4491 | 4373 struct gaim_account *account = accts->data; |
| 4374 serv_rename_group(account->gc, g, new_name); | |
| 4349 | 4375 accts = g_slist_remove(accts, accts->data); |
| 4376 } | |
| 4183 | 4377 g_free(g); |
| 4378 } else { | |
| 4379 prevname = g_strdup(g->name); | |
| 4349 | 4380 accts = gaim_group_get_accounts(g); |
| 4381 while(accts) { | |
| 4491 | 4382 struct gaim_account *account = accts->data; |
| 4383 serv_rename_group(account->gc, g, new_name); | |
| 4349 | 4384 accts = g_slist_remove(accts, accts->data); |
| 4385 } | |
| 4183 | 4386 g_snprintf(g->name, sizeof(g->name), "%s", new_name); |
| 4387 handle_group_rename(g, prevname); | |
| 4388 /* FIXME, i don't like calling this. it's sloppy. */ build_edit_tree(); | |
| 4389 g_free(prevname); | |
| 4390 } | |
| 4349 | 4391 gaim_blist_save(); |
|
1748
2eec724fdbcd
[gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1736
diff
changeset
|
4392 } |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4393 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4394 destroy_dialog(rename_dialog, rename_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4395 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4396 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4397 void show_rename_group(GtkWidget *unused, struct group *g) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4398 { |
| 4183 | 4399 |
| 4400 GtkWidget *hbox, *vbox; | |
| 4401 GtkWidget *label; | |
| 4402 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); | |
| 4403 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4404 GtkWidget *name_entry = NULL; |
| 4183 | 4405 |
| 4406 g_free(filename); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4407 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4408 if (!rename_dialog) { |
| 4635 | 4409 rename_dialog = gtk_dialog_new_with_buttons(_("Gaim - Rename Group"), GTK_WINDOW(blist), GTK_DIALOG_MODAL, |
| 4183 | 4410 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 4411 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK); | |
| 4412 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6); | |
| 4413 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); | |
| 4414 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE); | |
| 4415 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12); | |
| 4416 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6); | |
| 4635 | 4417 |
| 4183 | 4418 hbox = gtk_hbox_new(FALSE, 12); |
| 4419 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox); | |
| 4420 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 4421 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4422 | |
| 4423 vbox = gtk_vbox_new(FALSE, 0); | |
| 4424 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4635 | 4425 |
| 4183 | 4426 label = gtk_label_new(_("Please enter a new name for the selected group.\n")); |
| 4427 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 4428 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4429 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4635 | 4430 |
| 4183 | 4431 hbox = gtk_hbox_new(FALSE, 6); |
| 4432 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4635 | 4433 |
| 4183 | 4434 label = gtk_label_new(NULL); |
| 4435 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 4436 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 4437 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4438 name_entry = gtk_entry_new(); |
| 4183 | 4439 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); |
| 4635 | 4440 g_object_set_data(G_OBJECT(name_entry), "group", g); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4441 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); |
| 4183 | 4442 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0); |
| 4443 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); | |
| 4444 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry)); | |
| 4635 | 4445 |
| 4183 | 4446 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry); |
| 4182 | 4447 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4448 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4449 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4450 gtk_widget_show_all(rename_dialog); |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4451 if(name_entry) |
|
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4452 gtk_widget_grab_focus(GTK_WIDGET(name_entry)); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4453 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4454 |
| 2743 | 4455 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4456 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4457 /* The dialog for renaming buddies */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4458 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4459 |
| 4635 | 4460 static void do_rename_buddy(GObject *obj, GtkWidget *entry) |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4461 { |
| 3466 | 4462 const char *new_name; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4463 struct buddy *b; |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4464 GSList *gr; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4465 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4466 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4635 | 4467 b = g_object_get_data(obj, "buddy"); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4468 |
| 4491 | 4469 if (!g_slist_find(connections, b->account->gc)) { |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4470 destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4471 return; |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4472 } |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4473 |
| 4349 | 4474 gr = groups; |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4475 while (gr) { |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4476 if (g_slist_find(((struct group *)gr->data)->members, b)) |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4477 break; |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4478 gr = gr->next; |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4479 } |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4480 if (!gr) { |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4481 destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4482 return; |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4483 } |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4484 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4485 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) { |
| 4349 | 4486 struct group *g = find_group_by_buddy(b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4487 char *prevname = g_strdup(b->name); |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4488 if (g) |
| 4491 | 4489 serv_remove_buddy(b->account->gc, b->name, g->name); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4490 g_snprintf(b->name, sizeof(b->name), "%s", new_name); |
| 4491 | 4491 serv_add_buddy(b->account->gc, b->name); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4492 handle_buddy_rename(b, prevname); |
| 4349 | 4493 gaim_blist_save(); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4494 g_free(prevname); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4495 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4496 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4497 destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4498 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4499 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4500 void show_rename_buddy(GtkWidget *unused, struct buddy *b) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4501 { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4502 GtkWidget *mainbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4503 GtkWidget *frame; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4504 GtkWidget *fbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4505 GtkWidget *bbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4506 GtkWidget *button; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4507 GtkWidget *name_entry; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4508 GtkWidget *label; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4509 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4510 if (!rename_bud_dialog) { |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
4511 GAIM_DIALOG(rename_bud_dialog); |
| 4074 | 4512 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog"); |
| 4635 | 4513 gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4514 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Gaim - Rename Buddy")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4515 g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4516 G_CALLBACK(destroy_dialog), rename_bud_dialog); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4517 gtk_widget_realize(rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4518 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4519 mainbox = gtk_vbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4520 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4521 gtk_container_add(GTK_CONTAINER(rename_bud_dialog), mainbox); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4522 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4523 frame = gtk_frame_new(_("Rename Buddy")); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4524 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4525 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4526 fbox = gtk_hbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4527 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4528 gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4529 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4530 label = gtk_label_new(_("New name:")); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4531 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4532 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4533 name_entry = gtk_entry_new(); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4534 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0); |
| 4635 | 4535 g_object_set_data(G_OBJECT(name_entry), "buddy", b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4536 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4537 g_signal_connect(GTK_OBJECT(name_entry), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4538 G_CALLBACK(do_rename_buddy), name_entry); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4539 gtk_widget_grab_focus(name_entry); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4540 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4541 bbox = gtk_hbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4542 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4543 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4544 button = picture_button(rename_bud_dialog, _("OK"), ok_xpm); |
| 4635 | 4545 g_object_set_data(G_OBJECT(button), "buddy", b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4546 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4547 g_signal_connect(GTK_OBJECT(button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4548 G_CALLBACK(do_rename_buddy), name_entry); |
| 4236 | 4549 |
| 4550 button = picture_button(rename_bud_dialog, _("Cancel"), cancel_xpm); | |
| 4551 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
| 4552 g_signal_connect(GTK_OBJECT(button), "clicked", | |
| 4553 G_CALLBACK(destroy_dialog), rename_bud_dialog); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4554 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4555 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4556 gtk_widget_show_all(rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4557 } |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4558 |
|
2377
466b29d35b85
[gaim-migrate @ 2390]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
4559 #ifdef USE_PERL |
|
466b29d35b85
[gaim-migrate @ 2390]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
4560 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4561 static GtkWidget *perl_config = NULL; |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4562 static char *perl_last_dir = NULL; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4563 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4564 static void cfdes(GtkWidget *m, gpointer n) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4565 { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4566 if (perl_config) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4567 gtk_widget_destroy(perl_config); |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4568 perl_config = NULL; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4569 } |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4570 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4571 static void do_load(GtkWidget *m, gpointer n) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4572 { |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4573 const char *file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(perl_config)); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4574 gchar *f = NULL; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4575 if (!file || !strlen(file)) { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4576 return; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4577 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4578 |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4579 if (file_is_dir(file, perl_config)) { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4580 return; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4581 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4582 |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4583 if (perl_last_dir) { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4584 g_free(perl_last_dir); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4585 } |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4586 perl_last_dir = g_dirname(file); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4587 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4588 debug_printf("Loading perl script: %s\n", file); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4589 |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4590 f = g_strdup(file); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4591 perl_load_file(f); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4592 g_free(f); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4593 cfdes(perl_config, NULL); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4594 } |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4595 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4596 void load_perl_script() |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4597 { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4598 char *buf, *temp; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4599 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4600 if (perl_config) { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4601 gtk_widget_show(perl_config); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4602 gdk_window_raise(perl_config->window); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4603 return; |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4604 } |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4605 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4606 /* Below is basically stolen from plugins.c */ |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4607 perl_config = gtk_file_selection_new(_("Gaim - Select Perl Script")); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4608 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4609 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(perl_config)); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4610 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4611 if (!perl_last_dir) { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4612 temp = gaim_user_dir(); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4613 buf = g_strconcat(temp, G_DIR_SEPARATOR_S, NULL); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4614 } else { |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4615 buf = g_strconcat(perl_last_dir, G_DIR_SEPARATOR_S, NULL); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4616 } |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4617 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4618 gtk_file_selection_set_filename(GTK_FILE_SELECTION(perl_config), buf); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
4619 gtk_file_selection_complete(GTK_FILE_SELECTION(perl_config), "*.pl"); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4620 g_signal_connect(GTK_OBJECT(perl_config), "destroy", G_CALLBACK(cfdes), perl_config); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4621 |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4622 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4623 "clicked", G_CALLBACK(do_load), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4624 |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4625 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(perl_config)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4626 "clicked", G_CALLBACK(cfdes), NULL); |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4627 |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4628 g_free(buf); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4629 gtk_widget_show(perl_config); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4630 gdk_window_raise(perl_config->window); |
|
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4631 } |
|
2377
466b29d35b85
[gaim-migrate @ 2390]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
4632 |
|
466b29d35b85
[gaim-migrate @ 2390]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
4633 #endif /* USE_PERL */ |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4634 |
| 3668 | 4635 GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon) |
| 4636 { | |
| 4637 GtkWidget *button, *image, *bbox; | |
| 4638 | |
| 4639 button = gtk_toggle_button_new(); | |
| 4640 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4641 | |
| 4642 bbox = gtk_vbox_new(FALSE, 0); | |
| 4643 | |
| 4644 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4645 | |
| 4646 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU); | |
| 4647 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4648 | |
| 4649 gtk_widget_show_all(bbox); | |
| 4650 return button; | |
| 4651 } | |
| 4652 | |
| 3671 | 4653 GtkWidget *gaim_pixbuf_toolbar_button_from_file(char *icon) |
| 4654 { | |
| 4655 GtkWidget *button, *image, *bbox; | |
| 4656 char *filename; | |
| 4657 | |
| 4658 if (!icon) | |
| 4659 return NULL; | |
| 4660 | |
| 4661 button = gtk_toggle_button_new(); | |
| 4662 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4663 | |
| 4664 bbox = gtk_vbox_new(FALSE, 0); | |
| 4665 | |
| 4666 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4667 | |
| 4668 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", icon, NULL); | |
| 4669 debug_printf("Loading: %s\n", filename); | |
| 4670 image = gtk_image_new_from_file(filename); | |
| 4671 g_free(filename); | |
| 4672 | |
| 4673 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4674 | |
| 4675 gtk_widget_show_all(bbox); | |
| 4676 return button; | |
| 4677 } | |
| 4678 | |
| 4679 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4680 GtkWidget * |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4681 gaim_pixbuf_button_from_stock(const char *text, const char *icon, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4682 GaimButtonStyle style) |
| 3668 | 4683 { |
| 4684 GtkWidget *button, *image, *label, *bbox; | |
| 4685 button = gtk_button_new(); | |
| 4686 | |
| 4687 if (style == GAIM_BUTTON_HORIZONTAL) | |
| 4688 bbox = gtk_hbox_new(FALSE, 5); | |
| 4689 else | |
| 4690 bbox = gtk_vbox_new(FALSE, 0); | |
| 4691 | |
| 4692 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4693 | |
| 4694 if (icon) { | |
| 4695 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON); | |
| 4696 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4697 } | |
| 4698 | |
| 4699 if (text) { | |
| 4700 label = gtk_label_new(NULL); | |
| 4701 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4702 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
| 4703 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
| 4704 } | |
| 4705 | |
| 4706 gtk_widget_show_all(bbox); | |
| 4707 return button; | |
| 4708 } | |
| 4709 | |
| 3649 | 4710 GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonStyle style) |
| 3367 | 4711 { |
| 4712 GtkWidget *button, *image, *label, *bbox; | |
| 4713 button = gtk_button_new(); | |
| 3649 | 4714 |
| 4715 if (style == GAIM_BUTTON_HORIZONTAL) | |
| 4716 bbox = gtk_hbox_new(FALSE, 5); | |
| 4717 else | |
| 4718 bbox = gtk_vbox_new(FALSE, 0); | |
| 4719 | |
| 3367 | 4720 gtk_container_add (GTK_CONTAINER(button), bbox); |
| 3649 | 4721 |
| 3367 | 4722 if (iconfile) { |
| 4723 char *filename; | |
| 4724 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL); | |
| 4725 debug_printf("Loading: %s\n", filename); | |
| 4726 image = gtk_image_new_from_file(filename); | |
| 4727 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4728 g_free(filename); | |
| 4729 } | |
| 3649 | 4730 |
| 3367 | 4731 if (text) { |
| 4732 label = gtk_label_new(NULL); | |
| 4733 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4734 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
| 4735 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
| 4736 } | |
| 4737 gtk_widget_show_all(bbox); | |
| 4738 return button; | |
| 4739 } | |
| 3427 | 4740 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4741 GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4742 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4743 GtkWidget *button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4744 GtkWidget *button_box, *button_box_2, *button_box_3; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4745 GtkWidget *label; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4746 GdkBitmap *mask; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4747 GdkPixmap *pm; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4748 GtkWidget *pixmap; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4749 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4750 button = gtk_button_new(); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4751 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4752 button_box = gtk_hbox_new(FALSE, 5); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4753 gtk_container_add(GTK_CONTAINER(button), button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4754 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4755 button_box_2 = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4756 button_box_3 = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4757 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4758 gtk_box_pack_start(GTK_BOX(button_box), button_box_3, TRUE, TRUE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4759 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); |
| 4635 | 4760 pixmap = gtk_image_new_from_pixmap(pm, mask); |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4761 gtk_box_pack_end(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4762 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4763 if (text) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4764 label = gtk_label_new(text); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4765 gtk_box_pack_start(GTK_BOX(button_box_3), label, FALSE, FALSE, 2); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4766 gtk_widget_show(label); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4767 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4768 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4769 gtk_widget_show(pixmap); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4770 gtk_widget_show(button_box_2); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4771 gtk_widget_show(button_box_3); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4772 gtk_widget_show(button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4773 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4774 /* this causes clipping on lots of buttons with long text */ |
| 4635 | 4775 /* gtk_widget_set_size_request(button, 75, 30);*/ |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4776 gtk_widget_show(button); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4777 gdk_pixmap_unref(pm); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4778 gdk_bitmap_unref(mask); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4779 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4780 return button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4781 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4782 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4783 static GtkTooltips *button_tips = NULL; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4784 GtkWidget *picture_button2(GtkWidget *window, char *text, char **xpm, short dispstyle) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4785 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4786 GtkWidget *button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4787 GtkWidget *button_box, *button_box_2; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4788 GdkBitmap *mask; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4789 GdkPixmap *pm; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4790 GtkWidget *pixmap; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4791 GtkWidget *label; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4792 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4793 if (!button_tips) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4794 button_tips = gtk_tooltips_new(); |
| 3902 | 4795 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4796 button = gtk_button_new(); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4797 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4798 button_box = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4799 gtk_container_add(GTK_CONTAINER(button), button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4800 |
| 3320 | 4801 button_box_2 = gtk_vbox_new(FALSE, 0); |
| 4802 | |
| 4803 gtk_box_pack_start(GTK_BOX(button_box), button_box_2, TRUE, TRUE, 0); | |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4804 gtk_widget_show(button_box_2); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4805 gtk_widget_show(button_box); |
| 3327 | 4806 if (dispstyle == 2 || dispstyle == 0) { |
| 4807 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); | |
| 4635 | 4808 pixmap = gtk_image_new_from_pixmap(pm, mask); |
| 3327 | 4809 gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); |
| 4810 | |
| 4811 gtk_widget_show(pixmap); | |
| 4812 | |
| 4813 gdk_pixmap_unref(pm); | |
| 4814 gdk_bitmap_unref(mask); | |
| 4815 } | |
| 4816 | |
| 4817 if (dispstyle == 2 || dispstyle == 1) { | |
| 4818 label = gtk_label_new(text); | |
| 4819 gtk_widget_show(label); | |
| 4820 gtk_box_pack_end(GTK_BOX(button_box_2), label, FALSE, FALSE, 0); | |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4821 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4822 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4823 gtk_tooltips_set_tip(button_tips, button, text, "Gaim"); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4824 gtk_widget_show(button); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4825 return button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4826 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4827 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4828 int file_is_dir(const char *path, GtkWidget *w) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4829 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4830 struct stat st; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4831 char *name; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4832 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4833 if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4834 /* append a / if needed */ |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4835 if (path[strlen(path) - 1] != '/') { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4836 name = g_strconcat(path, "/", NULL); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4837 } else { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4838 name = g_strdup(path); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4839 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4840 gtk_file_selection_set_filename(GTK_FILE_SELECTION(w), name); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4841 g_free(name); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4842 return 1; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4843 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4844 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4845 return 0; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4846 } |
| 2956 | 4847 |
| 4848 /*------------------------------------------------------------------------*/ | |
| 4849 /* The dialog for setting V-Card info */ | |
| 4850 /*------------------------------------------------------------------------*/ | |
| 4851 /* | |
| 4852 * There are actually two "chunks" of code following: generic "multi-entry dialog" | |
| 4853 * support and V-Card dialog specific support. | |
| 4854 * | |
| 4855 * At first blush, this may seem like an unnecessary duplication of effort given | |
| 4856 * that a "set dir info" dialog already exists. However, this is not so because: | |
| 4857 * | |
| 4858 * 1. V-Cards can have a lot more data in them than what the current | |
| 4859 * "set dir" dialog supports. | |
| 4860 * | |
| 4861 * 2. V-Card data, at least with respect to Jabber, is currently in a | |
| 4862 * state of flux. As the data and format changes, all that need be | |
| 4863 * changed with the V-Card support I've written is the "template" | |
| 4864 * data. | |
| 4865 * | |
| 4866 * 3. The "multi entry dialog" support itself was originally written | |
| 4867 * to support Jabber server user registration (TBD). A "dynamically | |
| 4868 * configurable" multi-entry dialog is needed for that, as different | |
| 4869 * servers may require different registration information. It just | |
| 4870 * turned out to be well-suited to adding V-Card setting support, as | |
| 4871 * well :-). | |
| 4872 * | |
| 4873 * TBD: Add check-box support to the generic multi-entry dialog support so that | |
| 4874 * it can be used to "replace" the "set dir info" support? | |
| 4875 * | |
| 4876 * Multiple-language support. Currently Not In There. I think this should | |
| 4877 * be easy. Note that when it's added: if anybody saved their data in | |
| 4878 * English, it'll be lost when MLS is added and they'll have to re-enter it. | |
| 4879 * | |
| 4880 * More "TBDs" noted in the code. | |
| 4881 */ | |
| 4882 | |
| 4883 | |
| 4884 /*------------------------------------*/ | |
| 4885 /* generic multi-entry dialog support */ | |
| 4886 /*------------------------------------*/ | |
| 4887 | |
| 4888 /* | |
| 4889 * Print all multi-entry items | |
| 4890 * | |
| 4891 * Note: Simply a debug helper | |
| 4892 */ | |
| 4893 void multi_entry_item_print_all(const GSList *list) { | |
| 4894 | |
| 4895 int cnt = 0; | |
| 4896 | |
| 4897 /* While there's something to print... */ | |
| 4898 while(list != NULL) { | |
| 4899 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiEntryData *) (list->data))->label); | |
| 4900 if(((MultiEntryData *) (list->data))->text != NULL) { | |
| 4901 fprintf(stderr, ", text: \"%s\"", ((MultiEntryData *) (list->data))->text); | |
| 4902 } | |
| 4903 fputs("\n", stderr); | |
| 4904 list = list->next; | |
| 4905 } | |
| 4906 } | |
| 4907 | |
| 4908 /* | |
| 4909 * Print all multi-text items | |
| 4910 * | |
| 4911 * Note: Simply a debug helper | |
| 4912 */ | |
| 4913 void multi_text_item_print_all(const GSList *list) { | |
| 4914 | |
| 4915 int cnt = 0; | |
| 4916 | |
| 4917 /* While there's something to print... */ | |
| 4918 while(list != NULL) { | |
| 4919 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiTextData *) (list->data))->label); | |
| 4920 if(((MultiTextData *) (list->data))->text != NULL) { | |
| 4921 fprintf(stderr, ", text: \"%s\"", ((MultiTextData *) (list->data))->text); | |
| 4922 } | |
| 4923 fputs("\n", stderr); | |
| 4924 list = list->next; | |
| 4925 } | |
| 4926 } | |
| 4927 | |
| 4928 | |
| 4929 /* | |
| 4930 * Free all multi-entry item allocs and NULL the list pointer | |
| 4931 */ | |
| 4932 void multi_entry_items_free_all(GSList **list) | |
| 4933 { | |
| 4934 | |
| 4935 GSList *next = *list; | |
| 4936 MultiEntryData *data; | |
| 4937 | |
| 4938 /* While there's something to free() ... */ | |
| 4939 while(next != NULL) { | |
| 4940 data = (MultiEntryData *) next->data; | |
| 4941 g_free(data->label); | |
| 4942 g_free(data->text); | |
| 4943 g_free(data); | |
| 4944 next = next->next; | |
| 4945 } | |
| 4946 g_slist_free(*list); | |
| 4947 *list = NULL; | |
| 4948 } | |
| 4949 | |
| 4950 /* | |
| 4951 * Free all multi-text item allocs and NULL the list pointer | |
| 4952 */ | |
| 4953 void multi_text_items_free_all(GSList **list) | |
| 4954 { | |
| 4955 | |
| 4956 GSList *next = *list; | |
| 4957 MultiTextData *data; | |
| 4958 | |
| 4959 /* While there's something to free() ... */ | |
| 4960 while(next != NULL) { | |
| 4961 data = (MultiTextData *) next->data; | |
| 4962 g_free(data->label); | |
| 4963 g_free(data->text); | |
| 4964 g_free(data); | |
| 4965 next = next->next; | |
| 4966 } | |
| 4967 g_slist_free(*list); | |
| 4968 *list = NULL; | |
| 4969 } | |
| 4970 | |
| 4971 /* | |
| 4972 * See if a MultiEntryData item contains a given label | |
| 4973 * | |
| 4974 * See: glib docs for g_slist_compare_custom() for details | |
| 4975 */ | |
| 4976 static gint multi_entry_data_label_compare(gconstpointer data, gconstpointer label) | |
| 4977 { | |
| 4978 return(strcmp(((MultiEntryData *) (data))->label, (char *) label)); | |
| 4979 } | |
| 4980 | |
| 4981 /* | |
| 4982 * Add a new multi-entry item to list | |
| 4983 * | |
| 4984 * If adding to existing list: will search the list for existence of | |
| 4985 * "label" and change/create "text" entry if necessary. | |
| 4986 */ | |
| 4987 | |
| 4988 MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 4989 { | |
| 4990 GSList *found; | |
| 4991 MultiEntryData *data; | |
| 4992 | |
| 2975 | 4993 if((found = g_slist_find_custom(*list, (void *)label, multi_entry_data_label_compare)) == NULL) { |
| 2956 | 4994 if(add_it) { |
| 4995 data = (MultiEntryData *) g_slist_last(*list = | |
| 4996 g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data; | |
| 4997 data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 4998 data->text = NULL; | |
| 4999 /* | |
| 5000 * default to setting "visible" and editable to TRUE - they can be | |
| 5001 * overridden later, of course. | |
| 5002 */ | |
| 5003 data->visible = TRUE; | |
| 5004 data->editable = TRUE; | |
| 5005 } else { | |
| 5006 data = NULL; | |
| 5007 } | |
| 5008 } else { | |
| 5009 data = found->data; | |
| 5010 } | |
| 5011 | |
| 5012 if(data != NULL && text != NULL && text[0] != '\0') { | |
| 5013 if(data->text == NULL) { | |
| 5014 data->text = g_malloc(strlen(text) + 1); | |
| 5015 } else { | |
| 5016 data->text = g_realloc(data->text, strlen(text) + 1); | |
| 5017 } | |
| 5018 strcpy(data->text, text); | |
| 5019 } | |
| 5020 | |
| 5021 return(data); | |
| 5022 } | |
| 5023 | |
| 5024 /* | |
| 5025 * See if a MultiTextData item contains a given label | |
| 5026 * | |
| 5027 * See: glib docs for g_slist_compare_custom() for details | |
| 5028 */ | |
| 5029 static gint multi_text_data_label_compare(gconstpointer data, gconstpointer label) | |
| 5030 { | |
| 5031 return(strcmp(((MultiTextData *) (data))->label, (char *) label)); | |
| 5032 } | |
| 5033 | |
| 5034 /* | |
| 5035 * Add a new multi-text item to list | |
| 5036 * | |
| 5037 * If adding to existing list: will search the list for existence of | |
| 5038 * "label" and change/create "text" text if necessary. | |
| 5039 */ | |
| 5040 | |
| 5041 MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 5042 { | |
| 5043 GSList *found; | |
| 5044 MultiTextData *data; | |
| 5045 | |
| 2975 | 5046 if((found = g_slist_find_custom(*list, (void *)label, multi_text_data_label_compare)) == NULL) { |
| 2956 | 5047 if(add_it) { |
| 5048 data = (MultiTextData *) g_slist_last(*list = | |
| 5049 g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data; | |
| 5050 data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 5051 data->text = NULL; | |
| 5052 } else { | |
| 5053 data = NULL; | |
| 5054 } | |
| 5055 } else { | |
| 5056 data = found->data; | |
| 5057 } | |
| 5058 | |
| 5059 if(data != NULL && text != NULL && text[0] != '\0') { | |
| 5060 if(data->text == NULL) { | |
| 5061 data->text = g_malloc(strlen(text) + 1); | |
| 5062 } else { | |
| 5063 data->text = g_realloc(data->text, strlen(text) + 1); | |
| 5064 } | |
| 5065 strcpy(data->text, text); | |
| 5066 } | |
| 5067 | |
| 5068 return(data); | |
| 5069 } | |
| 5070 | |
| 5071 /* | |
| 5072 * Free-up the multi-entry item list and the MultiEntryDlg | |
| 5073 * struct alloc. | |
| 5074 */ | |
| 5075 void multi_entry_free(struct multi_entry_dlg *b) | |
| 5076 { | |
| 5077 multi_entry_items_free_all(&(b->multi_entry_items)); | |
| 5078 multi_text_items_free_all(&(b->multi_text_items)); | |
| 5079 g_free(b->instructions->text); | |
| 5080 g_free(b->instructions); | |
| 2975 | 5081 g_free(b->entries_title); |
| 2956 | 5082 g_free(b); |
| 5083 } | |
| 5084 | |
| 5085 /* | |
| 5086 * Multi-Entry dialog "destroyed" catcher | |
| 5087 * | |
| 5088 * Free-up the multi-entry item list, destroy the dialog widget | |
| 5089 * and free the MultiEntryDlg struct alloc. | |
| 5090 * | |
| 5091 */ | |
| 5092 void multi_entry_dialog_destroy(GtkWidget *widget, gpointer data) | |
| 5093 { | |
| 5094 MultiEntryDlg *b = data; | |
| 5095 | |
| 5096 multi_entry_free(b); | |
| 5097 } | |
| 5098 | |
| 5099 /* | |
| 5100 * Show/Re-show instructions | |
| 5101 */ | |
| 5102 void re_show_multi_entry_instr(MultiInstrData *instructions) | |
| 5103 { | |
| 5104 if(instructions->label != NULL) { | |
| 5105 if(instructions->text == NULL) { | |
| 5106 gtk_widget_hide(instructions->label); | |
| 5107 } else { | |
| 5108 gtk_label_set_text(GTK_LABEL (instructions->label), instructions->text); | |
| 5109 gtk_widget_show(instructions->label); | |
| 5110 } | |
| 5111 } | |
| 5112 } | |
| 5113 | |
| 5114 /* | |
| 5115 * Show/Re-show entry boxes | |
| 5116 */ | |
| 5117 void re_show_multi_entry_entries(GtkWidget **entries_table, | |
| 5118 GtkWidget *entries_frame, | |
| 5119 GSList *multi_entry_items) | |
| 5120 { | |
| 5121 GtkWidget *label; | |
| 5122 GSList *multi_entry; | |
| 5123 MultiEntryData *med; | |
| 2975 | 5124 int rows, row_num, col_num, col_offset; |
| 5125 int cols = 1; | |
| 2956 | 5126 |
| 5127 /* Figure-out number of rows needed for table */ | |
| 2975 | 5128 if((rows = g_slist_length(multi_entry_items)) > 9) { |
| 5129 rows /= 2; | |
| 5130 ++cols; | |
| 5131 } | |
| 2956 | 5132 |
| 5133 if(*entries_table != NULL) { | |
| 5134 gtk_widget_destroy(GTK_WIDGET (*entries_table)); | |
| 5135 } | |
| 2975 | 5136 *entries_table = gtk_table_new(rows, 3 * cols, FALSE); |
| 2956 | 5137 gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table); |
| 5138 | |
| 2975 | 5139 for(col_num = 0, multi_entry = multi_entry_items; col_num < cols && multi_entry != NULL; |
| 5140 ++col_num) { | |
| 5141 col_offset = col_num * 3; | |
| 5142 for(row_num = 0; row_num < rows && multi_entry != NULL; | |
| 5143 ++row_num, multi_entry = multi_entry->next) { | |
| 5144 | |
| 5145 med = (MultiEntryData *) multi_entry->data; | |
| 5146 | |
| 5147 label = gtk_label_new(med->label); | |
| 5148 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5); | |
| 5149 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 5150 col_offset, 1 + col_offset, row_num, row_num +1); | |
| 5151 gtk_widget_show(label); | |
| 5152 | |
| 5153 label = gtk_label_new(": "); | |
| 5154 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5); | |
| 5155 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 5156 1 + col_offset, 2 + col_offset, row_num, row_num +1); | |
| 5157 gtk_widget_show(label); | |
| 5158 | |
| 4635 | 5159 med->widget = gtk_entry_new(); |
| 5160 gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50); | |
| 2975 | 5161 if(med->text != NULL) { |
| 5162 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text); | |
| 5163 } | |
| 5164 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible); | |
| 4635 | 5165 gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable); |
| 2975 | 5166 gtk_table_attach(GTK_TABLE (*entries_table), med->widget, |
| 5167 2 + col_offset, 3 + col_offset, row_num, row_num +1, | |
| 5168 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0); | |
| 5169 gtk_widget_show(med->widget); | |
| 2956 | 5170 } |
| 5171 } | |
| 5172 | |
| 5173 gtk_widget_show(*entries_table); | |
| 5174 } | |
| 5175 | |
| 5176 /* | |
| 5177 * Show/Re-show textboxes | |
| 5178 */ | |
| 5179 void re_show_multi_entry_textboxes(GtkWidget **texts_ibox, | |
| 5180 GtkWidget *texts_obox, | |
| 5181 GSList *multi_text_items) | |
| 5182 { | |
| 5183 GSList *multi_text; | |
| 5184 MultiTextData *mtd; | |
| 4635 | 5185 GtkWidget *frame; |
| 5186 GtkWidget *sw; | |
| 2956 | 5187 |
| 5188 if(*texts_ibox != NULL) { | |
| 5189 gtk_widget_destroy(GTK_WIDGET (*texts_ibox)); | |
| 5190 } | |
| 5191 *texts_ibox = gtk_vbox_new(FALSE, 5); | |
| 5192 gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox); | |
| 5193 | |
| 5194 for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) { | |
| 5195 mtd = (MultiTextData *) multi_text->data; | |
| 5196 frame = gtk_frame_new(mtd->label); | |
| 4635 | 5197 sw = gtk_scrolled_window_new(NULL, NULL); |
| 5198 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 5199 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 5200 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 5201 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
| 5202 GTK_SHADOW_IN); | |
| 5203 gtk_widget_set_size_request(sw, 300, 100); | |
| 5204 gtk_container_add(GTK_CONTAINER (frame), sw); | |
| 2956 | 5205 gtk_container_add(GTK_CONTAINER (*texts_ibox), frame); |
| 4635 | 5206 mtd->textbox = gtk_text_view_new(); |
| 5207 gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE); | |
| 5208 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD); | |
| 5209 gtk_text_buffer_set_text( | |
| 5210 gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)), | |
| 5211 mtd->text?mtd->text:"", -1); | |
| 5212 gtk_container_add(GTK_CONTAINER (sw), mtd->textbox); | |
| 2956 | 5213 gtk_widget_show(mtd->textbox); |
| 4635 | 5214 gtk_widget_show(sw); |
| 2956 | 5215 gtk_widget_show(frame); |
| 5216 } | |
| 5217 | |
| 5218 gtk_widget_show(*texts_ibox); | |
| 5219 } | |
| 5220 | |
| 5221 /* | |
| 5222 * Create and initialize a new Multi-Entry Dialog struct | |
| 5223 */ | |
| 5224 MultiEntryDlg *multi_entry_dialog_new() | |
| 5225 { | |
| 5226 MultiEntryDlg *b = g_new0(MultiEntryDlg, 1); | |
| 5227 b->instructions = g_new0(MultiInstrData, 1); | |
| 5228 b->multi_entry_items = NULL; | |
| 5229 b->multi_text_items = NULL; | |
| 5230 return(b); | |
| 5231 } | |
| 5232 | |
| 5233 /* | |
| 5234 * Instantiate a new multi-entry dialog | |
| 5235 * | |
| 5236 * data == pointer to MultiEntryDlg with the following | |
| 5237 * initialized: | |
| 5238 * | |
| 4074 | 5239 * role |
| 2956 | 5240 * title |
| 5241 * user | |
| 5242 * multi_entry_items - pointers to MultiEntryData list | |
| 5243 * and MultiTextData list | |
| 5244 * instructions (optional) | |
| 5245 * ok function pointer | |
| 5246 * cancel function pointer (actually used to set | |
| 5247 * window destroy signal--cancel asserts destroy) | |
| 5248 * | |
| 5249 * sets the following in the MultiEntryDialog struct: | |
| 5250 * | |
| 5251 * window | |
| 5252 */ | |
| 5253 void show_multi_entry_dialog(gpointer data) | |
| 5254 { | |
| 5255 GtkWidget *vbox, *hbox; | |
| 5256 GtkWidget *button; | |
| 5257 MultiEntryDlg *b = data; | |
| 5258 | |
| 5259 GAIM_DIALOG(b->window); | |
| 2969 | 5260 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
| 4074 | 5261 gtk_window_set_role(GTK_WINDOW(b->window), b->role); |
| 2956 | 5262 gtk_window_set_title(GTK_WINDOW (b->window), b->title); |
| 2969 | 5263 |
| 2956 | 5264 /* Clean up if user dismisses window via window manager! */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
5265 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(b->cancel), (gpointer) b); |
| 2956 | 5266 gtk_widget_realize(b->window); |
| 5267 | |
| 5268 vbox = gtk_vbox_new(FALSE, 5); | |
| 5269 gtk_container_add(GTK_CONTAINER (b->window), vbox); | |
| 5270 | |
| 5271 b->instructions->label = gtk_label_new(NULL); | |
| 5272 gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE); | |
| 5273 gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5); | |
| 5274 re_show_multi_entry_instr(b->instructions); | |
| 5275 | |
| 2975 | 5276 b->entries_frame = gtk_frame_new(b->entries_title); |
| 2956 | 5277 gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5); |
| 5278 gtk_widget_show(b->entries_frame); | |
| 5279 b->entries_table = NULL; | |
| 5280 re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items); | |
| 5281 | |
| 5282 b->texts_obox = gtk_vbox_new(FALSE, 0); | |
| 2969 | 5283 gtk_box_pack_start(GTK_BOX (vbox), b->texts_obox, TRUE, TRUE, 5); |
| 2956 | 5284 gtk_widget_show(b->texts_obox); |
| 5285 b->texts_ibox = NULL; | |
| 5286 re_show_multi_entry_textboxes(&(b->texts_ibox), b->texts_obox, b->multi_text_items); | |
| 5287 | |
| 5288 hbox = gtk_hbox_new(FALSE, 0); | |
| 2969 | 5289 gtk_box_pack_start(GTK_BOX (vbox), hbox, FALSE, FALSE, 5); |
| 2956 | 5290 gtk_widget_show(hbox); |
| 5291 | |
| 4236 | 5292 button = picture_button(b->window, _("Save"), save_xpm); |
| 5293 g_signal_connect(GTK_OBJECT (button), "clicked", | |
| 5294 G_CALLBACK (b->ok), (gpointer) b); | |
| 5295 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); | |
| 5296 gtk_widget_show(button); | |
| 5297 | |
| 2956 | 5298 button = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 2969 | 5299 |
| 2956 | 5300 /* Let "destroy handling" (set above) handle cleanup */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
5301 g_signal_connect_swapped(GTK_OBJECT (button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
5302 G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (b->window)); |
| 2969 | 5303 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); |
| 2956 | 5304 gtk_widget_show(button); |
| 5305 | |
| 5306 gtk_widget_show(vbox); | |
| 5307 gtk_widget_show(b->window); | |
| 5308 } | |
| 5309 | |
| 5310 | |
| 5311 /*------------------------------------*/ | |
| 5312 /* V-Card dialog specific support */ | |
| 5313 /*------------------------------------*/ | |
| 5314 | |
| 5315 /* | |
| 5316 * V-Card "set info" dialog "Save" clicked | |
| 5317 * | |
| 5318 * Copy data from GTK+ dialogs into GSLists, call protocol-specific | |
| 5319 * formatter and save the user info data. | |
| 5320 */ | |
| 5321 void set_vcard_dialog_ok_clicked(GtkWidget *widget, gpointer data) | |
| 5322 { | |
| 5323 MultiEntryDlg *b = (MultiEntryDlg *) data; | |
| 5324 struct gaim_connection *gc; | |
| 5325 gchar *tmp; | |
| 5326 GSList *list; | |
| 5327 | |
| 5328 for(list = b->multi_entry_items; list != NULL; list = list->next) { | |
| 5329 if(((MultiEntryData *) list->data)->text != NULL) { | |
| 5330 g_free(((MultiEntryData *) list->data)->text); | |
| 5331 } | |
| 5332 ((MultiEntryData *) list->data)->text = | |
| 5333 g_strdup(gtk_entry_get_text(GTK_ENTRY(((MultiEntryData *) list->data)->widget))); | |
| 5334 } | |
| 5335 | |
| 5336 for(list = b->multi_text_items; list != NULL; list = list->next) { | |
| 5337 if(((MultiTextData *) list->data)->text != NULL) { | |
| 5338 g_free(((MultiTextData *) list->data)->text); | |
| 5339 } | |
| 5340 ((MultiTextData *) list->data)->text = | |
| 4635 | 5341 gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE); |
| 2956 | 5342 } |
| 5343 | |
| 5344 | |
| 5345 tmp = b->custom(b); | |
| 5346 | |
| 5347 /* | |
| 5348 * Set the user info and (possibly) send to the server | |
| 5349 */ | |
| 4491 | 5350 if (b->account) { |
| 5351 strncpy(b->account->user_info, tmp, sizeof b->account->user_info); | |
| 5352 gc = b->account->gc; | |
| 2956 | 5353 |
| 5354 save_prefs(); | |
| 5355 | |
| 5356 if (gc) | |
| 4491 | 5357 serv_set_info(gc, b->account->user_info); |
| 2956 | 5358 } |
| 5359 | |
| 5360 g_free(tmp); | |
| 5361 | |
| 5362 /* Let multi-edit dialog window "destroy" event catching handle remaining cleanup */ | |
| 5363 gtk_widget_destroy(GTK_WIDGET (b->window)); | |
| 5364 } | |
| 5365 | |
| 5366 /* | |
| 5367 * Instantiate a v-card dialog | |
| 5368 */ | |
| 5369 void show_set_vcard(MultiEntryDlg *b) | |
| 5370 { | |
| 5371 b->ok = set_vcard_dialog_ok_clicked; | |
| 5372 b->cancel = multi_entry_dialog_destroy; | |
| 5373 | |
| 5374 show_multi_entry_dialog(b); | |
| 5375 } | |
| 5376 | |
| 5377 | |
| 5378 /*------------------------------------------------------------------------*/ | |
| 5379 /* End dialog for setting v-card info */ | |
| 5380 /*------------------------------------------------------------------------*/ | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
5381 |
