Mercurial > pidgin
annotate src/dialogs.c @ 4977:503f61301b81
[gaim-migrate @ 5312]
Daniel Bungert (dbungert) noted and patched the situation where changing your password
doesn't save your changed password to .gaimrc, so you can't log in again w/out manually
editing the text file. his patch fixes that.
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Thu, 03 Apr 2003 14:04:02 +0000 |
| parents | 461e8c89514f |
| children | 307c16c4b57e |
| 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" |
| 4687 | 51 #include "gtklist.h" |
| 1 | 52 |
| 3630 | 53 #ifdef _WIN32 |
| 54 #include "win32dep.h" | |
| 55 #endif | |
| 56 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
57 #include "pixmaps/gnome_preferences.xpm" |
| 441 | 58 #include "pixmaps/cancel.xpm" |
| 59 #include "pixmaps/save.xpm" | |
| 443 | 60 #include "pixmaps/ok.xpm" |
| 459 | 61 #include "pixmaps/add.xpm" |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
62 #include "pixmaps/close.xpm" |
| 441 | 63 |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
64 #define PATHSIZE 1024 |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
65 |
| 728 | 66 GdkColor bgcolor; |
| 67 GdkColor fgcolor; | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
68 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
69 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ |
| 1 | 70 static GList *dialogwindows = NULL; |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
71 static GtkWidget *importdialog; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
72 static struct gaim_connection *importgc; |
| 2344 | 73 static GtkWidget *icondlg; |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
74 static GtkWidget *aliasdlg = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
75 static GtkWidget *aliasentry = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
76 static GtkWidget *aliasname = NULL; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
77 static GtkWidget *rename_dialog = NULL; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
78 static GtkWidget *rename_bud_dialog = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
79 |
| 3649 | 80 |
| 2743 | 81 struct confirm_del { |
| 82 GtkWidget *window; | |
| 83 GtkWidget *label; | |
| 84 GtkWidget *ok; | |
| 85 GtkWidget *cancel; | |
| 86 char name[1024]; | |
| 87 struct gaim_connection *gc; | |
| 88 }; | |
| 89 | |
| 1 | 90 struct create_away { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
91 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
92 GtkWidget *entry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
93 GtkWidget *text; |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
94 struct away_message *mess; |
| 1 | 95 }; |
| 96 | |
| 97 struct warning { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
98 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
99 GtkWidget *anon; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
100 char *who; |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
967
diff
changeset
|
101 struct gaim_connection *gc; |
| 1 | 102 }; |
| 103 | |
| 104 struct addbuddy { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
105 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
106 GtkWidget *combo; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
107 GtkWidget *entry; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
108 GtkWidget *entry_for_alias; |
| 2527 | 109 GtkWidget *account; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
110 struct gaim_connection *gc; |
| 1 | 111 }; |
| 112 | |
| 113 struct addperm { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
114 GtkWidget *window; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
115 GtkWidget *entry; |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
116 struct gaim_connection *gc; |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
117 gboolean permit; |
| 1 | 118 }; |
| 119 | |
| 120 struct findbyemail { | |
| 121 GtkWidget *window; | |
| 122 GtkWidget *emailentry; | |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
123 struct gaim_connection *gc; |
| 1 | 124 }; |
| 125 | |
| 126 struct findbyinfo { | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
127 struct gaim_connection *gc; |
| 1 | 128 GtkWidget *window; |
| 129 GtkWidget *firstentry; | |
| 130 GtkWidget *middleentry; | |
| 131 GtkWidget *lastentry; | |
| 132 GtkWidget *maidenentry; | |
| 133 GtkWidget *cityentry; | |
| 134 GtkWidget *stateentry; | |
| 135 GtkWidget *countryentry; | |
| 136 }; | |
| 137 | |
| 138 struct info_dlg { | |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
139 struct gaim_connection *gc; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
140 char *who; |
| 1 | 141 GtkWidget *window; |
| 142 GtkWidget *text; | |
| 143 }; | |
| 3197 | 144 |
| 145 struct getuserinfo { | |
| 146 GtkWidget *window; | |
| 147 GtkWidget *entry; | |
| 148 GtkWidget *account; | |
| 149 struct gaim_connection *gc; | |
| 150 }; | |
| 151 | |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
152 static GSList *info_dlgs = NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
153 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
154 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
|
155 { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
156 GSList *i = info_dlgs; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
157 while (i) { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
158 struct info_dlg *d = i->data; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
159 i = i->next; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
160 if (d->gc != gc) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
161 continue; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
162 if (d->who == NULL) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
163 continue; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
164 if (!who) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
165 continue; |
| 4793 | 166 if (!gaim_utf8_strcasecmp(normalize(who), d->who)) |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
167 return d; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
168 } |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
169 return NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
170 } |
| 1 | 171 |
| 172 struct set_info_dlg { | |
| 173 GtkWidget *window; | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
174 GtkWidget *menu; |
| 4491 | 175 struct gaim_account *account; |
| 1 | 176 GtkWidget *text; |
| 177 GtkWidget *save; | |
| 178 GtkWidget *cancel; | |
| 179 }; | |
| 180 | |
| 2344 | 181 struct set_icon_dlg { |
| 182 GtkWidget *window; | |
| 4491 | 183 struct gaim_account *account; |
| 2344 | 184 GtkWidget *ok; |
| 185 GtkWidget *cancel; | |
| 186 GtkWidget *entry; | |
| 187 }; | |
| 188 | |
| 1 | 189 struct set_dir_dlg { |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
190 struct gaim_connection *gc; |
| 1 | 191 GtkWidget *window; |
| 192 GtkWidget *first; | |
| 193 GtkWidget *middle; | |
| 194 GtkWidget *last; | |
| 195 GtkWidget *maiden; | |
| 196 GtkWidget *city; | |
| 197 GtkWidget *state; | |
| 198 GtkWidget *country; | |
| 199 GtkWidget *web; | |
| 200 GtkWidget *cancel; | |
| 201 GtkWidget *save; | |
| 202 }; | |
| 203 | |
| 204 struct linkdlg { | |
| 205 GtkWidget *ok; | |
| 206 GtkWidget *cancel; | |
| 207 GtkWidget *window; | |
| 208 GtkWidget *url; | |
| 209 GtkWidget *text; | |
| 210 GtkWidget *toggle; | |
| 211 GtkWidget *entry; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
212 struct gaim_conversation *c; |
| 1 | 213 }; |
| 214 | |
| 146 | 215 struct passwddlg { |
| 216 GtkWidget *window; | |
| 217 GtkWidget *ok; | |
| 218 GtkWidget *cancel; | |
| 219 GtkWidget *original; | |
| 220 GtkWidget *new1; | |
| 221 GtkWidget *new2; | |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
222 struct gaim_connection *gc; |
| 146 | 223 }; |
| 1 | 224 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
225 struct view_log { |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
226 long offset; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
227 int options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
228 char *name; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
229 GtkWidget *bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
230 GtkWidget *window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
231 GtkWidget *layout; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
232 }; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
233 |
| 4119 | 234 /* Wrapper to get all the text from a GtkTextView */ |
| 235 gchar* gtk_text_view_get_text(GtkTextView *text, gboolean include_hidden_chars) | |
| 236 { | |
| 237 GtkTextBuffer *buffer; | |
| 238 GtkTextIter start, end; | |
| 239 | |
| 240 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); | |
| 241 gtk_text_buffer_get_start_iter(buffer, &start); | |
| 242 gtk_text_buffer_get_end_iter(buffer, &end); | |
| 243 | |
| 244 return gtk_text_buffer_get_text(buffer, &start, &end, include_hidden_chars); | |
| 245 } | |
| 246 | |
| 1 | 247 /*------------------------------------------------------------------------*/ |
| 248 /* Destroys */ | |
| 249 /*------------------------------------------------------------------------*/ | |
| 250 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
251 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
|
252 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
253 struct gaim_gtk_conversation *gtkconv; |
| 605 | 254 gchar *object_data; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
255 |
| 4635 | 256 object_data = g_object_get_data(G_OBJECT(w), "dialog_type"); |
| 605 | 257 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
258 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
259 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
260 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
261 if (w == gtkconv->dialogs.fg_color) { |
| 4635 | 262 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
263 GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
264 gtkconv->dialogs.fg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
265 } else { |
| 4635 | 266 gtk_toggle_button_set_active( |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
267 GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
268 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
269 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
270 } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { |
| 4635 | 271 gtk_toggle_button_set_active( |
| 4685 | 272 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
273 gtkconv->dialogs.font = NULL; |
| 4793 | 274 } else if (!g_ascii_strcasecmp(object_data, "smiley dialog")) { |
| 4635 | 275 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
|
276 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
277 gtkconv->dialogs.smiley = NULL; |
| 4793 | 278 } else if (!g_ascii_strcasecmp(object_data, "log dialog")) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
279 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
|
280 FALSE); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
281 gtkconv->dialogs.log = NULL; |
| 608 | 282 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
283 |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
284 dialogwindows = g_list_remove(dialogwindows, w); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
285 gtk_widget_destroy(w); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
286 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
287 return FALSE; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
288 } |
| 1 | 289 |
| 290 static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 291 { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
292 GtkWidget *dest; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
293 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
294 if (!GTK_IS_WIDGET(w2)) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
295 dest = w; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
296 else |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
297 dest = w2; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
298 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
299 if (dest == imdialog) |
| 1 | 300 imdialog = NULL; |
| 301 | |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
302 if (dest == importdialog) { |
| 1 | 303 importdialog = NULL; |
|
2493
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
304 importgc = NULL; |
|
1b7a1133962d
[gaim-migrate @ 2506]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2472
diff
changeset
|
305 } |
| 1 | 306 |
| 2344 | 307 if (dest == icondlg) |
| 308 icondlg = NULL; | |
| 309 | |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
310 if (dest == aliasdlg) { |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
311 aliasdlg = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
312 aliasentry = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
313 aliasname = NULL; |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
314 } |
|
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
315 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
316 if (dest == rename_dialog) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
317 rename_dialog = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
318 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
319 if (dest == rename_bud_dialog) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
320 rename_bud_dialog = NULL; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
321 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
322 dialogwindows = g_list_remove(dialogwindows, dest); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
323 gtk_widget_destroy(dest); |
| 1 | 324 |
| 325 } | |
| 326 | |
| 327 | |
| 328 void destroy_all_dialogs() | |
| 329 { | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
330 while (dialogwindows) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
331 destroy_dialog(NULL, dialogwindows->data); |
| 1 | 332 |
|
391
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
333 if (awaymessage) |
|
be408b41c172
[gaim-migrate @ 401]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
350
diff
changeset
|
334 do_im_back(NULL, NULL); |
| 84 | 335 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
336 if (imdialog) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
337 destroy_dialog(NULL, imdialog); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
338 imdialog = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
339 } |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
340 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
341 if (importdialog) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
342 destroy_dialog(NULL, importdialog); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
343 importdialog = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
344 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
345 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
346 if (icondlg) { |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
347 destroy_dialog(NULL, icondlg); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
348 icondlg = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
349 } |
| 1 | 350 } |
| 351 | |
| 3757 | 352 static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
| 1 | 353 { |
| 3757 | 354 if (resp == GTK_RESPONSE_OK) |
| 355 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
|
356 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
357 destroy_dialog(NULL, w->window); |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
358 g_free(w); |
|
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
359 } |
| 1 | 360 |
|
976
2586b2a3725e
[gaim-migrate @ 986]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
967
diff
changeset
|
361 void show_warn_dialog(struct gaim_connection *gc, char *who) |
| 1 | 362 { |
| 3757 | 363 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); |
| 364 char *labeltext; | |
| 365 GtkWidget *hbox, *vbox; | |
| 1 | 366 GtkWidget *label; |
| 3757 | 367 GtkWidget *img = gtk_image_new_from_file(filename); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
368 struct gaim_conversation *c = gaim_find_conversation(who); |
| 441 | 369 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
370 struct warning *w = g_new0(struct warning, 1); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
371 w->who = who; |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
372 w->gc = gc; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
373 |
| 3757 | 374 g_free(filename); |
| 375 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 376 | |
| 4703 | 377 w->window = gtk_dialog_new_with_buttons(_("Warn User"), GTK_WINDOW(c->window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, _("_Warn"), GTK_RESPONSE_OK, NULL); |
| 4118 | 378 gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); |
| 3757 | 379 g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(do_warn), w); |
| 380 | |
| 381 gtk_container_set_border_width (GTK_CONTAINER(w->window), 6); | |
| 382 gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
| 383 gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
| 384 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), 12); | |
| 385 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), 6); | |
| 386 | |
| 387 hbox = gtk_hbox_new(FALSE, 12); | |
| 388 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
| 389 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 390 | |
| 391 vbox = gtk_vbox_new(FALSE, 0); | |
| 392 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 393 labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
| 394 "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
| 395 label = gtk_label_new(NULL); | |
| 396 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 397 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 398 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 399 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 400 g_free(labeltext); | |
| 401 | |
| 402 w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
| 403 gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
| 404 | |
| 405 hbox = gtk_hbox_new(FALSE, 6); | |
| 406 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 407 img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
| 408 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 409 labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
| 410 /* labeltext = _("Anonymous warnings are less severe."); */ | |
| 411 label = gtk_label_new(NULL); | |
| 412 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 413 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 414 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 415 | |
|
1288
d8eaf65ca9c3
[gaim-migrate @ 1298]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1272
diff
changeset
|
416 dialogwindows = g_list_prepend(dialogwindows, w->window); |
| 3757 | 417 gtk_widget_show_all(w->window); |
| 1 | 418 } |
| 419 | |
| 3753 | 420 void do_remove_buddy(struct buddy *b) |
| 2743 | 421 { |
|
4918
553d96cb9b26
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
422 struct group *g; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
423 struct gaim_conversation *c; |
|
4918
553d96cb9b26
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
424 gchar *name; |
| 2743 | 425 |
| 426 if (!b) | |
| 427 return; | |
| 428 | |
| 4687 | 429 g = gaim_find_buddys_group(b); |
|
4918
553d96cb9b26
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
430 name = g_strdup(b->name); /* b->name is null after remove_buddy */ |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
431 |
| 4059 | 432 debug_printf(_("Removing '%s' from buddy list.\n"), b->name); |
| 4491 | 433 serv_remove_buddy(b->account->gc, name, g->name); |
| 4687 | 434 gaim_blist_remove_buddy(b); |
| 4349 | 435 gaim_blist_save(); |
| 2743 | 436 |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
437 c = gaim_find_conversation(name); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
438 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
439 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
440 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
|
4397
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
441 |
|
ce3a0eba91ef
[gaim-migrate @ 4666]
Christian Hammond <chipx86@chipx86.com>
parents:
4372
diff
changeset
|
442 g_free(name); |
| 2743 | 443 } |
| 444 | |
| 4916 | 445 void do_remove_group(struct group *g) |
| 446 { | |
| 447 GaimBlistNode *b = ((GaimBlistNode*)g)->child; | |
| 448 while (b) { | |
| 449 struct buddy *bd = (struct buddy *)b; | |
| 4936 | 450 struct gaim_conversation *c = gaim_find_conversation(bd->name); |
| 4938 | 451 if(bd->account->gc) { |
| 452 serv_remove_buddy(bd->account->gc, bd->name, g->name); | |
| 453 gaim_blist_remove_buddy(bd); | |
| 454 | |
| 455 if (c != NULL) | |
| 456 gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); | |
| 457 } | |
| 4916 | 458 b = b->next; |
| 459 } | |
| 460 gaim_blist_remove_group(g); | |
| 461 gaim_blist_save(); | |
| 462 } | |
| 463 | |
| 2743 | 464 void show_confirm_del(struct gaim_connection *gc, gchar *name) |
| 465 { | |
| 4687 | 466 struct buddy *bd = gaim_find_buddy(gc->account, name); |
| 3753 | 467 char *text; |
| 468 if (!bd) | |
| 469 return; | |
| 470 | |
| 4309 | 471 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), name); |
| 472 do_ask_dialog(_("Remove Buddy"), text, bd, _("Remove Buddy"), do_remove_buddy, _("Cancel"), NULL, NULL, FALSE); | |
| 3753 | 473 g_free(text); |
| 2743 | 474 } |
| 475 | |
| 4916 | 476 void show_confirm_del_group(struct group *g) |
| 477 { | |
| 4924 | 478 char *text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"), |
| 4916 | 479 g->name); |
| 4924 | 480 do_ask_dialog(_("Remove Group"), text, g, _("Remove Group"), do_remove_group, _("Cancel"), NULL, NULL, FALSE); |
| 4916 | 481 g_free(text); |
| 482 } | |
| 1 | 483 |
| 484 /*------------------------------------------------------------------------*/ | |
| 485 /* The dialog for getting an error */ | |
| 486 /*------------------------------------------------------------------------*/ | |
| 487 | |
| 3466 | 488 GtkWidget *do_error_dialog(const char *primary, const char *secondary, int type) |
| 1 | 489 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
490 GtkWidget *d; |
| 1 | 491 GtkWidget *label; |
| 3374 | 492 GtkWidget *img = NULL; |
| 3427 | 493 GtkWidget *hbox; |
| 494 char labeltext[1024 * 2]; | |
| 495 char *filename = NULL; | |
| 496 | |
| 497 /* These are the GTK stock dialog icons with our little Gaim logo on top. | |
| 498 * Inspired by the GIMP. */ | |
| 3374 | 499 switch (type){ |
| 500 case GAIM_LOGO: | |
| 3427 | 501 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "gaim.png", NULL); |
| 502 break; | |
| 503 case GAIM_INFO: | |
| 504 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_info.png", NULL); | |
| 505 break; | |
| 3516 | 506 case GAIM_WARNING: |
| 3427 | 507 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_warning.png", NULL); |
| 508 break; | |
| 3516 | 509 case GAIM_ERROR: |
| 3427 | 510 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_error.png", NULL); |
| 511 break; | |
| 512 /* case GAIM_QUESTION: | |
| 513 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); | |
| 514 break; | |
| 515 */ | |
| 516 } | |
| 517 if (filename) { | |
| 518 img = gtk_image_new_from_file(filename); | |
| 3523 | 519 g_free(filename); |
| 3427 | 520 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3374 | 521 } |
| 4778 | 522 d = gtk_dialog_new_with_buttons("", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); |
| 3427 | 523 g_signal_connect(d, "response", G_CALLBACK(gtk_widget_destroy), NULL); |
| 524 | |
| 525 gtk_container_set_border_width (GTK_CONTAINER(d), 6); | |
| 526 gtk_window_set_resizable(GTK_WINDOW(d), FALSE); | |
| 527 gtk_dialog_set_has_separator(GTK_DIALOG(d), FALSE); | |
| 528 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(d)->vbox), 12); | |
| 529 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(d)->vbox), 6); | |
| 530 | |
| 531 hbox = gtk_hbox_new(FALSE, 12); | |
| 532 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(d)->vbox), hbox); | |
| 533 if (filename) { | |
| 534 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 535 } | |
| 536 gtk_widget_show(img); | |
| 537 | |
| 538 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", primary, secondary ? secondary : ""); | |
| 539 | |
| 540 label = gtk_label_new(NULL); | |
| 541 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
542 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 3427 | 543 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 1 | 544 gtk_widget_show(label); |
| 3427 | 545 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 546 | |
| 547 gtk_widget_show(hbox); | |
| 1 | 548 |
| 549 gtk_widget_show(d); | |
|
1817
b367beee6448
[gaim-migrate @ 1827]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1815
diff
changeset
|
550 return d; |
| 1 | 551 } |
| 552 | |
| 553 | |
| 554 | |
| 3816 | 555 static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 1 | 556 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
557 const char *who; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
558 struct gaim_conversation *conv; |
| 4491 | 559 struct gaim_account *account; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
560 |
| 3802 | 561 if (resp == GTK_RESPONSE_OK) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
562 who = gtk_entry_get_text(GTK_ENTRY(info->entry)); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
563 |
| 4613 | 564 if (!who || !*who) { |
| 565 /* this shouldn't ever happen */ | |
| 3802 | 566 return; |
| 567 } | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
568 |
| 4491 | 569 account = (info->gc ? info->gc->account : NULL); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
570 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
571 conv = gaim_find_conversation(who); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
572 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
573 if (conv == NULL) |
| 4491 | 574 conv = gaim_conversation_new(GAIM_CONV_IM, account, who); |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
575 else { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
576 gaim_window_raise(gaim_conversation_get_window(conv)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
577 |
| 4491 | 578 if (account) |
| 579 gaim_conversation_set_account(conv, account); | |
|
4476
62c1e5e656d0
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
580 } |
| 1 | 581 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
582 |
| 3816 | 583 destroy_dialog(NULL, imdialog); |
| 584 imdialog = NULL; | |
| 4138 | 585 g_free(info); |
| 1 | 586 } |
| 587 | |
| 3802 | 588 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
|
589 { |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
590 char *who; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
591 |
| 3802 | 592 if (resp == GTK_RESPONSE_OK) { |
| 593 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(info->entry)))); | |
| 594 | |
| 4793 | 595 if (!g_ascii_strcasecmp(who, "")) { |
| 3802 | 596 g_free(who); |
| 597 return; | |
| 598 } | |
| 599 | |
| 600 /* what do we want to do about this case? */ | |
| 601 if (info->gc) | |
| 602 serv_get_info(info->gc, who); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
603 g_free(who); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
604 } |
| 3802 | 605 gtk_widget_destroy(GTK_WIDGET(widget)); |
| 4138 | 606 g_free(info); |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
607 } |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
608 |
| 1 | 609 void show_ee_dialog(int ee) |
| 610 { | |
| 3767 | 611 GtkWidget *window; |
| 612 GtkWidget *hbox; | |
| 1 | 613 GtkWidget *label; |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
614 struct gaim_gtk_buddy_list *gtkblist; |
| 3767 | 615 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_cool.png", NULL); |
| 616 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
617 |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
618 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
619 |
| 3767 | 620 label = gtk_label_new(NULL); |
| 1 | 621 if (ee == 0) |
| 3767 | 622 gtk_label_set_markup(GTK_LABEL(label), |
| 623 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); | |
| 1 | 624 else if (ee == 1) |
| 3767 | 625 gtk_label_set_markup(GTK_LABEL(label), |
| 626 "<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
|
627 else if (ee == 2) |
| 3767 | 628 gtk_label_set_markup(GTK_LABEL(label), |
| 629 "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>"); | |
| 2472 | 630 else if (ee == 3) |
| 3767 | 631 gtk_label_set_markup(GTK_LABEL(label), |
| 632 "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>"); | |
| 2993 | 633 else if (ee == 4) |
| 3767 | 634 gtk_label_set_markup(GTK_LABEL(label), |
| 635 "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>"); | |
| 3043 | 636 else if (ee == 5) |
| 3767 | 637 gtk_label_set_markup(GTK_LABEL(label), |
| 638 "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>"); | |
| 3152 | 639 else if (ee == 6) |
| 3767 | 640 gtk_label_set_markup(GTK_LABEL(label), |
| 641 "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>"); | |
| 3508 | 642 else if (ee == 7) |
| 3767 | 643 gtk_label_set_markup(GTK_LABEL(label), |
| 644 "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>"); | |
| 3508 | 645 else |
| 3767 | 646 gtk_label_set_markup(GTK_LABEL(label), |
| 647 "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>"); | |
| 648 | |
| 4687 | 649 window = gtk_dialog_new_with_buttons("", GTK_WINDOW(gtkblist->window), GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 3767 | 650 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); |
| 651 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL); | |
| 3152 | 652 |
| 3767 | 653 gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
| 654 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 655 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 656 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 657 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 658 | |
| 659 hbox = gtk_hbox_new(FALSE, 12); | |
| 660 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 661 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 662 | |
| 663 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 664 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 665 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 666 |
| 3767 | 667 gtk_widget_show_all(window); |
| 1 | 668 } |
| 669 | |
| 4635 | 670 void show_info_select_account(GObject *w, struct gaim_connection *gc) |
| 3816 | 671 { |
| 4635 | 672 struct getuserinfo *info = g_object_get_data(w, "getuserinfo"); |
| 3816 | 673 info->gc = gc; |
| 674 } | |
| 675 | |
| 4614 | 676 static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) { |
| 4613 | 677 const char *txt = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4614 | 678 gtk_dialog_set_response_sensitive(GTK_DIALOG(dlg), GTK_RESPONSE_OK, |
| 4613 | 679 (*txt != '\0')); |
| 680 } | |
| 681 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
682 void show_im_dialog() |
| 1 | 683 { |
| 3802 | 684 GtkWidget *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
685 GtkWidget *label; |
| 3816 | 686 GtkWidget *table, *menu, *opt; |
| 687 GSList *g = connections; | |
| 688 struct gaim_connection *c; | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
689 struct gaim_gtk_buddy_list *gtkblist; |
| 3816 | 690 char buf[256]; |
| 3802 | 691 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 692 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 3816 | 693 struct getuserinfo *info = NULL; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
694 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
695 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
696 |
| 4138 | 697 g_free(filename); |
| 698 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
699 if (!imdialog) { |
| 3816 | 700 info = g_new0(struct getuserinfo, 1); |
| 701 info->gc = connections->data; | |
| 4687 | 702 imdialog = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_MODAL, |
| 3802 | 703 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 704 gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK); | |
| 705 gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6); | |
| 706 gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE); | |
| 707 gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE); | |
| 708 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12); | |
| 709 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6); | |
| 4613 | 710 gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE); |
| 711 | |
| 3802 | 712 hbox = gtk_hbox_new(FALSE, 12); |
| 713 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox); | |
| 714 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 715 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 716 | |
| 717 vbox = gtk_vbox_new(FALSE, 0); | |
| 718 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4613 | 719 |
| 3802 | 720 label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
| 3825 | 721 gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
| 3802 | 722 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 723 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 724 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4613 | 725 |
| 3802 | 726 hbox = gtk_hbox_new(FALSE, 6); |
| 727 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4613 | 728 |
| 3816 | 729 table = gtk_table_new(2, 2, FALSE); |
| 730 gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 731 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 732 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 733 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 4613 | 734 |
| 3802 | 735 label = gtk_label_new(NULL); |
| 3816 | 736 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); |
| 3823 | 737 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 3816 | 738 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 739 | |
| 740 info->entry = gtk_entry_new(); | |
| 741 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 742 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
| 743 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4613 | 744 g_signal_connect(G_OBJECT(info->entry), "changed", |
| 4614 | 745 G_CALLBACK(dialog_set_ok_sensitive), imdialog); |
| 3816 | 746 |
| 747 if (connections->next) { | |
| 748 | |
| 749 label = gtk_label_new(NULL); | |
| 750 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 751 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
| 752 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4613 | 753 |
| 3816 | 754 info->account = gtk_option_menu_new(); |
| 755 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 756 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
| 4613 | 757 |
| 3816 | 758 menu = gtk_menu_new(); |
| 4613 | 759 |
| 3816 | 760 while (g) { |
| 761 c = (struct gaim_connection *)g->data; | |
| 762 if (!c->prpl->send_im) { | |
| 763 g = g->next; | |
| 764 continue; | |
| 765 } | |
| 766 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); | |
| 767 opt = gtk_menu_item_new_with_label(buf); | |
| 4635 | 768 g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 4613 | 769 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
770 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
771 G_CALLBACK(show_info_select_account), c); |
| 4613 | 772 |
| 4635 | 773 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3816 | 774 g = g->next; |
| 775 } | |
| 4613 | 776 |
| 3816 | 777 gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); |
| 778 } | |
| 4613 | 779 |
| 3816 | 780 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
|
781 } |
| 4613 | 782 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
783 gtk_widget_show_all(imdialog); |
| 3816 | 784 if (info) |
| 785 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 3197 | 786 } |
| 787 | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
788 void show_info_dialog() |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
789 { |
| 3802 | 790 GtkWidget *window, *hbox, *vbox; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
791 GtkWidget *label; |
| 3802 | 792 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 793 GtkWidget *img = gtk_image_new_from_file(filename); | |
| 794 GtkWidget *table, *menu, *opt; | |
| 3197 | 795 GSList *g = connections; |
| 796 struct gaim_connection *c; | |
| 797 struct getuserinfo *info = g_new0(struct getuserinfo, 1); | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
798 struct gaim_gtk_buddy_list *gtkblist; |
| 3802 | 799 char buf[256]; |
| 800 | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
801 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
802 |
| 4138 | 803 g_free(filename); |
| 3197 | 804 info->gc = connections->data; |
| 805 | |
| 4703 | 806 window = gtk_dialog_new_with_buttons(_("Get User Info"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_MODAL, |
| 3802 | 807 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 808 gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 809 gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 810 gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 811 gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 812 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 813 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 4614 | 814 |
| 3802 | 815 hbox = gtk_hbox_new(FALSE, 12); |
| 816 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 817 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 818 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4614 | 819 gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, |
| 820 FALSE); | |
| 821 | |
| 3802 | 822 vbox = gtk_vbox_new(FALSE, 0); |
| 823 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 824 | |
| 825 label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); | |
| 826 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 827 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 828 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 829 | |
| 3197 | 830 table = gtk_table_new(2, 2, FALSE); |
| 3802 | 831 gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
| 832 gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 833 gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 834 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 835 | |
| 836 label = gtk_label_new(NULL); | |
| 837 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 3822 | 838 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3197 | 839 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 840 | |
| 841 info->entry = gtk_entry_new(); | |
| 842 gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 3802 | 843 gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); |
| 844 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4614 | 845 |
| 846 g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 847 G_CALLBACK(dialog_set_ok_sensitive), window); | |
| 3802 | 848 |
| 3197 | 849 if (connections->next) { |
| 850 | |
| 3802 | 851 label = gtk_label_new(NULL); |
| 3197 | 852 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3802 | 853 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); |
| 854 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1225 | 855 |
| 3197 | 856 info->account = gtk_option_menu_new(); |
| 857 gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 3802 | 858 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
| 859 | |
| 3197 | 860 menu = gtk_menu_new(); |
| 861 | |
| 862 while (g) { | |
| 863 c = (struct gaim_connection *)g->data; | |
| 3802 | 864 if (!c->prpl->get_info) { |
| 865 g = g->next; | |
| 866 continue; | |
| 867 } | |
| 3572 | 868 g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); |
| 3197 | 869 opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 870 g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 3197 | 871 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
872 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
873 G_CALLBACK(show_info_select_account), c); |
| 3197 | 874 |
| 4635 | 875 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3197 | 876 g = g->next; |
| 877 } | |
| 3802 | 878 |
| 3197 | 879 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
|
880 } |
| 3197 | 881 |
| 3802 | 882 g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
| 883 | |
| 884 | |
| 885 gtk_widget_show_all(window); | |
| 886 if (info->entry) | |
| 887 gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
|
935
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
888 } |
|
5e6ca3dd4d02
[gaim-migrate @ 945]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
934
diff
changeset
|
889 |
| 1 | 890 |
| 891 /*------------------------------------------------------------------------*/ | |
| 892 /* The dialog for adding buddies */ | |
| 893 /*------------------------------------------------------------------------*/ | |
| 894 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
895 extern void add_callback(GtkWidget *, struct gaim_conversation *); |
|
654
ea811c6dd3e0
[gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
653
diff
changeset
|
896 |
| 4180 | 897 void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a) |
| 1 | 898 { |
| 3466 | 899 const char *grp, *who, *whoalias; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
900 struct gaim_conversation *c; |
| 4687 | 901 struct buddy *b; |
| 902 struct group *g; | |
| 4769 | 903 void *icon_data; |
| 904 void *icon_data2; | |
| 905 int icon_len; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
906 |
| 4180 | 907 if (resp == GTK_RESPONSE_OK) { |
| 908 | |
| 909 who = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 910 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); | |
| 911 whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias)); | |
| 912 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
913 c = gaim_find_conversation(who); |
| 4775 | 914 if (!(g = gaim_find_group(grp))) { |
| 4687 | 915 g = gaim_group_new(grp); |
| 4775 | 916 gaim_blist_add_group(g, NULL); |
| 917 } | |
| 4687 | 918 b = gaim_buddy_new(a->gc->account, who, whoalias); |
| 919 gaim_blist_add_buddy(b, g, NULL); | |
| 4180 | 920 serv_add_buddy(a->gc, who); |
| 921 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
922 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
923 gaim_conversation_update(c, GAIM_CONV_UPDATE_ADD); |
| 4180 | 924 |
| 4769 | 925 icon_data = get_icon_data(a->gc, normalize(who), &icon_len); |
| 926 | |
| 927 if(icon_data) { | |
| 928 icon_data2 = g_memdup(icon_data, icon_len); | |
| 929 set_icon_data(a->gc, who, icon_data2, icon_len); | |
| 930 g_free(icon_data2); | |
| 931 } | |
| 932 | |
| 4349 | 933 gaim_blist_save(); |
|
654
ea811c6dd3e0
[gaim-migrate @ 664]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
653
diff
changeset
|
934 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
935 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
936 destroy_dialog(NULL, a->window); |
| 1 | 937 } |
| 938 | |
| 3819 | 939 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
|
940 { |
| 3466 | 941 const char *grp; |
| 4687 | 942 struct group *g; |
| 4349 | 943 |
| 3819 | 944 if (resp == GTK_RESPONSE_OK) { |
| 945 grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 946 | |
| 947 if (!a->gc) | |
| 948 a->gc = connections->data; | |
| 949 | |
| 4687 | 950 g = gaim_group_new(grp); |
| 951 gaim_blist_add_group (g, NULL); | |
| 4349 | 952 gaim_blist_save(); |
| 3819 | 953 } |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
954 |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
955 destroy_dialog(NULL, a->window); |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
956 } |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
957 |
| 1 | 958 |
|
1030
38452403563b
[gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1000
diff
changeset
|
959 static GList *groups_tree(struct gaim_connection *gc) |
| 1 | 960 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
961 GList *tmp = NULL; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
962 char *tmp2; |
| 1 | 963 struct group *g; |
| 4785 | 964 |
| 965 GaimBlistNode *gnode = gaim_get_blist()->root; | |
| 966 | |
| 967 if (!gnode) { | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
968 tmp2 = g_strdup(_("Buddies")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
969 tmp = g_list_append(tmp, tmp2); |
| 1 | 970 } else { |
| 4785 | 971 while (gnode) { |
| 972 if(GAIM_BLIST_NODE_IS_GROUP(gnode)) { | |
| 973 g = (struct group *)gnode; | |
| 974 tmp2 = g->name; | |
| 975 tmp = g_list_append(tmp, tmp2); | |
| 976 } | |
| 977 gnode = gnode->next; | |
| 1 | 978 } |
| 979 } | |
| 980 return tmp; | |
| 981 } | |
| 982 | |
|
825
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
983 static void free_dialog(GtkWidget *w, struct addbuddy *a) |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
984 { |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
985 g_free(a); |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
986 } |
|
9108277c95e9
[gaim-migrate @ 835]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
804
diff
changeset
|
987 |
| 1 | 988 |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
989 void show_add_group(struct gaim_connection *gc) |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
990 { |
| 3819 | 991 |
| 992 GtkWidget *hbox, *vbox; | |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
993 GtkWidget *label; |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
994 struct gaim_gtk_buddy_list *gtkblist; |
| 3819 | 995 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 996 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
997 struct addbuddy *a = g_new0(struct addbuddy, 1); |
| 4138 | 998 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
999 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1000 |
| 4138 | 1001 g_free(filename); |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
1002 a->gc = gc; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1003 |
| 4703 | 1004 a->window = gtk_dialog_new_with_buttons(_("Add Group"), GTK_WINDOW(gtkblist->window), GTK_DIALOG_MODAL, |
| 3819 | 1005 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
| 1006 gtk_dialog_set_default_response (GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 1007 gtk_container_set_border_width (GTK_CONTAINER(a->window), 6); | |
| 1008 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 1009 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 1010 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
| 1011 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); | |
| 1012 | |
| 1013 hbox = gtk_hbox_new(FALSE, 12); | |
| 1014 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 1015 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1016 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 1017 | |
| 1018 vbox = gtk_vbox_new(FALSE, 0); | |
| 1019 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 1020 | |
| 1021 label = gtk_label_new(_("Please enter the name of the group to be added.\n")); | |
| 1022 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1023 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1024 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 1025 | |
| 1026 hbox = gtk_hbox_new(FALSE, 6); | |
| 1027 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 1028 | |
| 1029 label = gtk_label_new(NULL); | |
| 1030 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 1031 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 1032 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1033 a->entry = gtk_entry_new(); |
| 3819 | 1034 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); |
| 1035 gtk_box_pack_start(GTK_BOX(hbox), a->entry, FALSE, FALSE, 0); | |
| 1036 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->entry)); | |
| 1037 | |
| 1038 g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_group), a); | |
| 1039 | |
| 1040 gtk_widget_show_all(a->window); | |
| 1041 gtk_widget_grab_focus(GTK_WIDGET(a->entry)); | |
|
577
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1042 } |
|
aa9a8bcddd80
[gaim-migrate @ 587]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1043 |
| 4635 | 1044 static void addbuddy_select_account(GObject *w, struct gaim_connection *gc) |
| 2527 | 1045 { |
| 4635 | 1046 struct addbuddy *b = g_object_get_data(w, "addbuddy"); |
| 2527 | 1047 |
| 2561 | 1048 /* Save our account */ |
| 2527 | 1049 b->gc = gc; |
| 2561 | 1050 |
| 1051 /* We also want to update our group list */ | |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1052 gtk_combo_set_popdown_strings(GTK_COMBO(b->combo), groups_tree(gc)); |
| 2527 | 1053 } |
| 1054 | |
| 1055 static void create_online_user_names(struct addbuddy *b) | |
| 1056 { | |
| 1057 char buf[2048]; /* Never hurts to be safe ;-) */ | |
| 1058 GSList *g = connections; | |
| 1059 struct gaim_connection *c; | |
| 1060 GtkWidget *menu, *opt; | |
| 1061 int count = 0; | |
| 1062 int place = 0; | |
| 1063 | |
| 1064 menu = gtk_menu_new(); | |
| 1065 | |
| 1066 while (g) { | |
| 1067 c = (struct gaim_connection *)g->data; | |
| 1068 g_snprintf(buf, sizeof(buf), "%s (%s)", | |
| 3572 | 1069 c->username, c->prpl->name); |
| 2527 | 1070 opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 1071 g_object_set_data(G_OBJECT(opt), "addbuddy", b); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1072 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1073 G_CALLBACK(addbuddy_select_account), |
| 2527 | 1074 c); |
| 1075 gtk_widget_show(opt); | |
| 4635 | 1076 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 2527 | 1077 |
| 1078 /* Now check to see if it's our current menu */ | |
| 1079 if (c == b->gc) { | |
| 1080 place = count; | |
| 1081 gtk_menu_item_activate(GTK_MENU_ITEM(opt)); | |
| 1082 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), count); | |
| 1083 | |
| 1084 /* Do the cha cha cha */ | |
| 1085 } | |
| 1086 | |
| 1087 count++; | |
| 1088 | |
| 1089 g = g->next; | |
| 1090 } | |
| 1091 | |
| 1092 gtk_option_menu_remove_menu(GTK_OPTION_MENU(b->account)); | |
| 1093 gtk_option_menu_set_menu(GTK_OPTION_MENU(b->account), menu); | |
| 1094 gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), place); | |
| 1095 | |
| 1096 gtk_widget_show(b->account); | |
| 1097 gtk_widget_show(b->account->parent); | |
| 1098 | |
| 1099 } | |
| 1100 | |
|
2582
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2572
diff
changeset
|
1101 void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group, char *alias) |
| 1 | 1102 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1103 GtkWidget *table; |
| 1 | 1104 GtkWidget *label; |
| 4180 | 1105 GtkWidget *hbox; |
| 1106 GtkWidget *vbox; | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1107 struct gaim_gtk_buddy_list *gtkblist; |
| 4180 | 1108 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 1109 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1110 struct addbuddy *a = g_new0(struct addbuddy, 1); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1111 a->gc = gc ? gc : connections->data; |
| 1210 | 1112 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1113 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1114 |
| 4180 | 1115 g_free(filename); |
| 1116 | |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1117 GAIM_DIALOG(a->window); |
| 4703 | 1118 a->window = gtk_dialog_new_with_buttons(_("Add Buddy"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, GTK_DIALOG_MODAL, |
| 4180 | 1119 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
| 1120 | |
| 1121 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 1122 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 1123 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 1124 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 1125 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
| 1126 gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); | |
| 4074 | 1127 gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy"); |
| 4180 | 1128 |
| 1129 hbox = gtk_hbox_new(FALSE, 12); | |
| 1130 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 1131 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1132 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 1133 | |
| 1134 vbox = gtk_vbox_new(FALSE, 0); | |
| 1135 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 1136 | |
| 4599 | 1137 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 | 1138 gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1); |
| 1139 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1140 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1141 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 1142 | |
| 1143 hbox = gtk_hbox_new(FALSE, 6); | |
| 1144 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 1145 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1146 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
|
1147 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
|
1148 dialogwindows = g_list_prepend(dialogwindows, a->window); |
|
428372cc1e39
[gaim-migrate @ 1161]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1144
diff
changeset
|
1149 |
| 2529 | 1150 table = gtk_table_new(4, 2, FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1151 gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1152 gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
| 4180 | 1153 gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
| 1154 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 1155 | |
| 1156 label = gtk_label_new(_("Screen Name")); | |
| 1157 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1158 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
|
1159 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1160 a->entry = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1161 gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); |
| 3333 | 1162 gtk_widget_grab_focus(a->entry); |
| 4183 | 1163 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1164 if (buddy != NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1165 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); |
| 4183 | 1166 |
| 1167 gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1168 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1169 label = gtk_label_new(_("Alias")); |
| 4180 | 1170 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1171 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
|
1172 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1173 a->entry_for_alias = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1174 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
|
1175 if (alias != NULL) |
|
5efa8077107f
[gaim-migrate @ 2595]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2572
diff
changeset
|
1176 gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); |
| 4183 | 1177 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
|
1178 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1179 label = gtk_label_new(_("Group")); |
| 4180 | 1180 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1181 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
|
1182 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1183 a->combo = gtk_combo_new(); |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
1184 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
|
1185 gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3); |
| 1210 | 1186 |
| 2527 | 1187 /* Set up stuff for the account box */ |
| 1188 label = gtk_label_new(_("Add To")); | |
| 4180 | 1189 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2527 | 1190 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); |
| 1191 | |
| 1192 a->account = gtk_option_menu_new(); | |
| 1193 gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4); | |
| 1194 | |
| 1195 create_online_user_names(a); | |
| 1196 | |
| 1197 /* End of account box */ | |
| 1198 | |
| 4180 | 1199 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
|
1200 |
| 1210 | 1201 gtk_widget_show_all(a->window); |
| 4180 | 1202 |
| 2995 | 1203 if (group != NULL) |
| 1204 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); | |
| 1 | 1205 } |
| 1206 | |
| 1207 | |
| 3367 | 1208 /*------------------------------------------------------------------------* |
| 1209 * Privacy Settings * | |
| 1210 *------------------------------------------------------------------------*/ | |
| 1211 static GtkWidget *deny_type = NULL; | |
| 1212 static GtkWidget *deny_conn_hbox = NULL; | |
| 1213 static GtkWidget *deny_opt_menu = NULL; | |
| 1214 static struct gaim_connection *current_deny_gc = NULL; | |
| 1215 static gboolean current_is_deny = FALSE; | |
| 1216 static GtkWidget *allow_list = NULL; | |
| 1217 static GtkWidget *block_list = NULL; | |
| 1218 | |
| 4177 | 1219 static GtkListStore *block_store = NULL; |
| 1220 static GtkListStore *allow_store = NULL; | |
| 1221 | |
| 3367 | 1222 static void set_deny_mode(GtkWidget *w, int data) |
| 1223 { | |
| 1224 if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) | |
| 1225 return; | |
| 1226 debug_printf("setting deny mode %d\n", data); | |
| 4491 | 1227 current_deny_gc->account->permdeny = data; |
| 3367 | 1228 serv_set_permit_deny(current_deny_gc); |
| 4349 | 1229 gaim_blist_save(); |
| 3367 | 1230 } |
| 1231 | |
| 4178 | 1232 static GtkWidget *deny_opt(char *label, int which, GtkWidget *set) |
| 3367 | 1233 { |
| 1234 GtkWidget *opt; | |
| 1235 | |
| 1236 if (!set) | |
| 1237 opt = gtk_radio_button_new_with_label(NULL, label); | |
| 1238 else | |
| 1239 opt = | |
| 4635 | 1240 gtk_radio_button_new_with_label(gtk_radio_button_get_group( |
| 1241 GTK_RADIO_BUTTON(set)), | |
| 3367 | 1242 label); |
| 4178 | 1243 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1244 g_signal_connect(GTK_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which); |
| 3367 | 1245 gtk_widget_show(opt); |
| 4491 | 1246 if (current_deny_gc->account->permdeny == which) |
| 4635 | 1247 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE); |
| 3367 | 1248 |
| 1249 return opt; | |
| 1250 } | |
| 1251 | |
| 1252 static void des_deny_opt(GtkWidget *d, gpointer e) | |
| 1253 { | |
| 1254 gtk_widget_destroy(d); | |
| 1255 current_deny_gc = NULL; | |
| 1256 deny_conn_hbox = NULL; | |
| 1257 deny_type = NULL; | |
| 1258 deny_opt_menu = NULL; | |
| 1259 current_is_deny = FALSE; | |
| 1260 allow_list = NULL; | |
| 4177 | 1261 allow_store = NULL; |
| 1262 | |
| 3367 | 1263 block_list = NULL; |
| 4177 | 1264 block_store = NULL; |
| 3367 | 1265 } |
| 1266 | |
| 1267 static void set_deny_type() | |
| 1268 { | |
| 4635 | 1269 GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type)); |
| 3367 | 1270 |
| 4491 | 1271 switch (current_deny_gc->account->permdeny) { |
| 3786 | 1272 case 5: |
| 1273 bg = bg->next->next; | |
| 1274 break; | |
| 3367 | 1275 case 4: |
| 1276 break; | |
| 1277 case 3: | |
| 3786 | 1278 bg = bg->next->next->next; |
| 3367 | 1279 break; |
| 1280 case 2: | |
| 1281 bg = bg->next; | |
| 1282 break; | |
| 1283 case 1: | |
| 3786 | 1284 bg = bg->next->next->next->next; |
| 3367 | 1285 break; |
| 1286 } | |
| 1287 | |
| 4635 | 1288 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE); |
| 3367 | 1289 } |
| 1290 | |
| 1291 void build_allow_list() | |
| 1292 { | |
| 1293 GSList *p; | |
| 4177 | 1294 GtkListStore *ls; |
| 1295 GtkTreeIter iter; | |
| 3367 | 1296 |
| 1297 if (!current_is_deny) | |
| 1298 return; | |
| 1299 | |
| 4491 | 1300 p = current_deny_gc->account->permit; |
| 3367 | 1301 |
| 4177 | 1302 gtk_list_store_clear(GTK_LIST_STORE(allow_store)); |
| 3367 | 1303 |
| 1304 while (p) { | |
| 4177 | 1305 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list))); |
| 1306 | |
| 1307 gtk_list_store_append(ls, &iter); | |
| 1308 gtk_list_store_set(ls, &iter, 0, p->data, -1); | |
| 1309 | |
| 3367 | 1310 p = p->next; |
| 1311 } | |
| 1312 } | |
| 1313 | |
| 4177 | 1314 |
| 3367 | 1315 void build_block_list() |
| 1316 { | |
| 1317 GSList *d; | |
| 4177 | 1318 GtkListStore *ls; |
| 1319 GtkTreeIter iter; | |
| 3367 | 1320 |
| 1321 if (!current_is_deny) | |
| 1322 return; | |
| 1323 | |
| 4491 | 1324 d = current_deny_gc->account->deny; |
| 3367 | 1325 |
| 4177 | 1326 gtk_list_store_clear(GTK_LIST_STORE(block_store)); |
| 3367 | 1327 |
| 1328 while (d) { | |
| 4177 | 1329 ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(block_list))); |
| 1330 | |
| 1331 gtk_list_store_append(ls, &iter); | |
| 1332 gtk_list_store_set(ls, &iter, 0, d->data, -1); | |
| 1333 | |
| 3367 | 1334 d = d->next; |
| 1335 } | |
| 1336 } | |
| 1337 | |
| 1338 static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc) | |
| 1339 { | |
| 1340 current_deny_gc = gc; | |
| 1341 set_deny_type(); | |
| 1342 build_allow_list(); | |
| 1343 build_block_list(); | |
| 1344 } | |
| 1345 | |
| 1346 static void build_deny_menu() | |
| 1347 { | |
| 1348 GtkWidget *menu; | |
| 1349 GtkWidget *opt; | |
| 1350 GSList *c = connections; | |
| 1351 struct gaim_connection *gc; | |
| 1352 int count = 0; | |
| 1353 gboolean found = FALSE; | |
| 1354 char buf[2048]; | |
| 1355 | |
| 1356 if (g_slist_length(connections) == 1) { | |
| 1357 gtk_widget_hide(deny_conn_hbox); | |
| 1358 return; | |
| 1359 } else | |
| 1360 gtk_widget_show(deny_conn_hbox); | |
| 1361 | |
| 1362 menu = gtk_menu_new(); | |
| 1363 | |
| 1364 while (c) { | |
| 1365 gc = (struct gaim_connection *)c->data; | |
| 1366 c = c->next; | |
| 1367 if (!gc->prpl->set_permit_deny) | |
| 1368 continue; | |
| 3572 | 1369 g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name); |
| 3367 | 1370 opt = gtk_menu_item_new_with_label(buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1371 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc); |
| 3367 | 1372 gtk_widget_show(opt); |
| 4635 | 1373 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3367 | 1374 if (gc == current_deny_gc) |
| 1375 found = TRUE; | |
| 1376 else if (!found) | |
| 1377 count++; | |
| 1378 } | |
| 1379 | |
| 1380 if (!found) { | |
| 1381 current_deny_gc = connections->data; | |
| 1382 count = 0; | |
| 1383 } | |
| 1384 | |
| 1385 gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu)); | |
| 1386 gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu); | |
| 1387 gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count); | |
| 1388 | |
| 1389 gtk_widget_show(menu); | |
| 1390 gtk_widget_show(deny_opt_menu); | |
| 1391 } | |
| 1392 | |
| 1393 static void pref_deny_add(GtkWidget *button, gboolean permit) | |
| 1394 { | |
| 1395 show_add_perm(current_deny_gc, NULL, permit); | |
| 1396 } | |
| 1397 | |
| 4177 | 1398 |
| 1399 gchar *find_permdeny_by_name(GSList *l, char *who) { | |
| 1400 gchar *name; | |
| 1401 | |
| 1402 while (l) { | |
| 1403 name = (gchar *)l->data; | |
| 1404 if (!strcmp(name, who)) { | |
| 1405 return name; | |
| 1406 } | |
| 1407 | |
| 1408 l = l->next; | |
| 1409 } | |
| 1410 | |
| 1411 return NULL; | |
| 1412 } | |
| 1413 | |
| 3367 | 1414 static void pref_deny_rem(GtkWidget *button, gboolean permit) |
| 1415 { | |
| 4177 | 1416 gchar *who; |
| 1417 GtkTreeIter iter; | |
| 1418 GtkTreeModel *mod; | |
| 1419 GtkTreeSelection *sel; | |
| 1420 | |
| 1421 if (permit) { | |
| 1422 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list)); | |
| 1423 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(allow_list)); | |
| 1424 } else { | |
| 1425 mod = gtk_tree_view_get_model(GTK_TREE_VIEW(block_list)); | |
| 1426 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(block_list)); | |
| 1427 } | |
| 1428 | |
| 1429 if (gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
| 1430 gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 0, &who, -1); | |
| 1431 else { | |
| 1432 return; | |
| 1433 } | |
| 3367 | 1434 |
| 1435 if (permit && !allow_list) | |
| 1436 return; | |
| 4177 | 1437 |
| 3367 | 1438 if (!permit && !block_list) |
| 1439 return; | |
| 1440 | |
| 1441 if (permit) { | |
| 4491 | 1442 char *name = find_permdeny_by_name(current_deny_gc->account->permit, who); |
| 4177 | 1443 |
| 1444 if (name) { | |
| 4491 | 1445 gaim_privacy_permit_remove(current_deny_gc->account, name); |
| 4308 | 1446 serv_rem_permit(current_deny_gc, who); |
| 4177 | 1447 build_allow_list(); |
| 1448 } | |
| 3367 | 1449 } else { |
| 4491 | 1450 char *name = find_permdeny_by_name(current_deny_gc->account->deny, who); |
| 4177 | 1451 |
| 1452 if (name) { | |
| 4491 | 1453 gaim_privacy_deny_remove(current_deny_gc->account, name); |
| 4177 | 1454 serv_rem_deny(current_deny_gc, who); |
| 1455 build_block_list(); | |
| 1456 } | |
| 3367 | 1457 } |
| 1458 | |
| 4349 | 1459 gaim_blist_save(); |
| 3367 | 1460 } |
| 1461 | |
| 1462 GtkWidget *privacy_win; | |
| 1463 void update_privacy_connections() { /* This is a slightly better name */ | |
| 1464 gboolean needdeny = FALSE; | |
| 1465 GSList *c = connections; | |
| 1466 struct gaim_connection *gc = NULL; | |
| 1467 | |
| 1468 if (!privacy_win) | |
| 1469 return; | |
| 1470 | |
| 1471 while (c) { | |
| 1472 gc = c->data; | |
| 1473 if (gc->prpl->set_permit_deny) | |
| 1474 break; | |
| 1475 gc = NULL; | |
| 1476 c = c->next; | |
| 1477 } | |
| 1478 needdeny = (gc != NULL); | |
| 1479 | |
| 1480 | |
| 1481 if (needdeny) { | |
| 1482 gtk_widget_set_sensitive(privacy_win, TRUE); | |
| 1483 build_deny_menu(); | |
| 1484 build_allow_list(); | |
| 1485 build_block_list(); | |
| 1486 } else { | |
| 1487 gtk_widget_set_sensitive(privacy_win, FALSE); | |
| 1488 } | |
| 1489 } | |
| 1490 static void destroy_privacy() { | |
| 1491 current_deny_gc = NULL; | |
| 1492 privacy_win = NULL; | |
| 1493 } | |
| 1494 | |
| 4177 | 1495 void show_privacy_options() { |
| 1496 GtkWidget *pwin; | |
| 1497 GtkWidget *box; | |
| 1498 GtkWidget *hbox; | |
| 1499 GtkWidget *label; | |
| 1500 GtkWidget *sw; | |
| 1501 GtkWidget *bbox; | |
| 1502 GtkWidget *button; | |
| 1503 GtkWidget *sep; | |
| 1504 GtkWidget *close_button; | |
| 1505 GtkSizeGroup *sg1 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1506 GtkSizeGroup *sg2 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1507 GtkCellRenderer *rend; | |
| 1508 GtkTreeViewColumn *col; | |
| 4178 | 1509 GtkWidget *table; |
| 4177 | 1510 |
| 1511 current_deny_gc = connections->data; /* this is safe because this screen will only be | |
| 1512 available when there are connections */ | |
| 1513 current_is_deny = TRUE; | |
| 1514 | |
| 1515 privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 4635 | 1516 gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE); |
| 4177 | 1517 gtk_window_set_role(GTK_WINDOW(pwin), "privacy"); |
| 4703 | 1518 gtk_window_set_title(GTK_WINDOW(pwin), _("Privacy")); |
| 4177 | 1519 g_signal_connect(GTK_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL); |
| 1520 gtk_widget_realize(pwin); | |
| 1521 | |
| 4637 | 1522 gtk_widget_set_size_request(pwin, -1, 400); |
| 4177 | 1523 |
| 1524 box = gtk_vbox_new(FALSE, 5); | |
| 1525 gtk_container_set_border_width(GTK_CONTAINER(box), 5); | |
| 1526 gtk_container_add(GTK_CONTAINER(pwin), box); | |
| 1527 gtk_widget_show(box); | |
| 1528 | |
| 1529 label = gtk_label_new(_("Changes to privacy settings take effect immediately.")); | |
| 1530 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
| 1531 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1532 gtk_widget_show(label); | |
| 1533 | |
| 1534 deny_conn_hbox = gtk_hbox_new(FALSE, 5); | |
| 1535 gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0); | |
| 1536 gtk_widget_show(deny_conn_hbox); | |
| 1537 | |
| 1538 label = gtk_label_new(_("Set privacy for:")); | |
| 1539 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5); | |
| 1540 gtk_widget_show(label); | |
| 1541 | |
| 1542 deny_opt_menu = gtk_option_menu_new(); | |
| 1543 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5); | |
| 1544 g_signal_connect(GTK_OBJECT(deny_opt_menu), "destroy", G_CALLBACK(des_deny_opt), NULL); | |
| 1545 gtk_widget_show(deny_opt_menu); | |
| 1546 | |
| 1547 build_deny_menu(); | |
| 1548 | |
| 4178 | 1549 table = gtk_table_new(5, 2, FALSE); |
| 1550 gtk_box_pack_start(GTK_BOX(box), table, TRUE, TRUE, 0); | |
| 1551 gtk_table_set_row_spacings(GTK_TABLE(table), 7); | |
| 1552 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1553 gtk_widget_show(table); | |
| 1554 | |
| 1555 deny_type = deny_opt(_("Allow all users to contact me"), 1, NULL); | |
| 4177 | 1556 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1557 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
| 1558 | |
| 1559 deny_type = deny_opt(_("Allow only users on my buddy list"), 5, deny_type); | |
| 4177 | 1560 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1561 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
| 1562 | |
| 1563 deny_type = deny_opt(_("Allow only the users below"), 3, deny_type); | |
| 4177 | 1564 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1565 gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1566 |
| 1567 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1568 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1569 gtk_table_attach(GTK_TABLE(table), sw, 0, 1, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1570 gtk_widget_show(sw); |
| 1571 | |
| 1572 allow_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1573 allow_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(allow_store)); | |
| 1574 | |
| 1575 rend = gtk_cell_renderer_text_new(); | |
| 1576 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1577 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1578 gtk_tree_view_append_column(GTK_TREE_VIEW(allow_list), col); | |
| 1579 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allow_list), FALSE); | |
| 1580 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list); | |
| 1581 gtk_widget_show(allow_list); | |
| 1582 | |
| 1583 build_allow_list(); | |
| 1584 | |
| 4179 | 1585 bbox = gtk_hbox_new(TRUE, 0); |
| 4177 | 1586 gtk_widget_show(bbox); |
| 4178 | 1587 gtk_table_attach(GTK_TABLE(table), bbox, 0, 1, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1588 |
| 1589 button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1590 gtk_size_group_add_widget(sg2, button); | |
| 1591 gtk_widget_show(button); | |
| 1592 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), (void *)TRUE); | |
| 4179 | 1593 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1594 |
| 1595 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1596 gtk_size_group_add_widget(sg2, button); | |
| 1597 gtk_widget_show(button); | |
| 1598 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), (void *)TRUE); | |
| 4179 | 1599 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1600 |
| 4178 | 1601 deny_type = deny_opt(_("Deny all users"), 2, deny_type); |
| 4177 | 1602 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1603 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
| 1604 | |
| 1605 deny_type = deny_opt(_("Block the users below"), 4, deny_type); | |
| 4177 | 1606 gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1607 gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1608 |
| 1609 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1610 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1611 gtk_table_attach(GTK_TABLE(table), sw, 1, 2, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1612 gtk_widget_show(sw); |
| 1613 | |
| 1614 block_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1615 block_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(block_store)); | |
| 1616 | |
| 1617 rend = gtk_cell_renderer_text_new(); | |
| 1618 col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1619 gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1620 gtk_tree_view_append_column(GTK_TREE_VIEW(block_list), col); | |
| 1621 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(block_list), FALSE); | |
| 1622 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list); | |
| 1623 gtk_widget_show(block_list); | |
| 1624 | |
| 1625 build_block_list(); | |
| 1626 | |
| 4179 | 1627 bbox = gtk_hbox_new(TRUE, 0); |
| 4178 | 1628 gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1629 gtk_widget_show(bbox); |
| 1630 | |
| 1631 button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1632 gtk_size_group_add_widget(sg2, button); | |
| 1633 gtk_widget_show(button); | |
| 1634 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), FALSE); | |
| 4179 | 1635 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1636 |
| 1637 button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1638 gtk_size_group_add_widget(sg2, button); | |
| 1639 gtk_widget_show(button); | |
| 1640 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), FALSE); | |
| 4179 | 1641 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1642 |
| 1643 sep = gtk_hseparator_new(); | |
| 1644 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | |
| 1645 gtk_widget_show(sep); | |
| 1646 | |
| 4178 | 1647 hbox = gtk_hbox_new(FALSE, 0); |
| 1648 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); | |
| 4177 | 1649 gtk_widget_show(hbox); |
| 4178 | 1650 |
| 4177 | 1651 close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
| 1652 gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 0); | |
| 1653 g_signal_connect_swapped(GTK_OBJECT(close_button), "clicked", G_CALLBACK(gtk_widget_destroy), pwin); | |
| 4178 | 1654 gtk_widget_show(close_button); |
| 4177 | 1655 |
| 1656 gtk_widget_show(pwin); | |
| 1657 | |
| 1658 } | |
| 1659 | |
| 1 | 1660 |
| 1661 /*------------------------------------------------------------------------*/ | |
| 1662 /* The dialog for SET INFO / SET DIR INFO */ | |
| 1663 /*------------------------------------------------------------------------*/ | |
| 1664 | |
| 1665 void do_save_info(GtkWidget *widget, struct set_info_dlg *b) | |
| 1666 { | |
| 1667 gchar *junk; | |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
1668 struct gaim_connection *gc; |
| 1 | 1669 |
| 4119 | 1670 junk = gtk_text_view_get_text(GTK_TEXT_VIEW(b->text), FALSE); |
| 1 | 1671 |
| 4491 | 1672 if (b->account) { |
| 1673 strncpy_withhtml(b->account->user_info, junk, sizeof b->account->user_info); | |
| 1674 gc = b->account->gc; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1675 |
|
960
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
1676 save_prefs(); |
|
fa681641643d
[gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
940
diff
changeset
|
1677 |
| 1292 | 1678 if (gc) |
| 4491 | 1679 serv_set_info(gc, b->account->user_info); |
|
122
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
1680 } |
| 25 | 1681 g_free(junk); |
| 1 | 1682 destroy_dialog(NULL, b->window); |
| 1683 g_free(b); | |
| 1684 } | |
| 1685 | |
| 1686 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b) | |
| 1687 { | |
| 3466 | 1688 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
|
1689 int web = GTK_TOGGLE_BUTTON(b->web)->active; |
| 3466 | 1690 const char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle)); |
| 1691 const char *last = gtk_entry_get_text(GTK_ENTRY(b->last)); | |
| 1692 const char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden)); | |
| 1693 const char *city = gtk_entry_get_text(GTK_ENTRY(b->city)); | |
| 1694 const char *state = gtk_entry_get_text(GTK_ENTRY(b->state)); | |
| 1695 const char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); | |
| 1 | 1696 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1697 serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web); |
| 1 | 1698 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1699 destroy_dialog(NULL, b->window); |
| 1 | 1700 g_free(b); |
| 1701 } | |
| 1702 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1703 void show_set_dir(struct gaim_connection *gc) |
| 1 | 1704 { |
| 1705 GtkWidget *label; | |
| 1706 GtkWidget *bot; | |
| 484 | 1707 GtkWidget *vbox; |
| 1708 GtkWidget *hbox; | |
| 1709 GtkWidget *frame; | |
| 1710 GtkWidget *fbox; | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1711 char buf[256]; |
| 1 | 1712 |
| 1713 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
|
1714 b->gc = gc; |
| 1 | 1715 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1716 GAIM_DIALOG(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1717 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4074 | 1718 gtk_window_set_role(GTK_WINDOW(b->window), "set_dir"); |
| 4635 | 1719 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4703 | 1720 gtk_window_set_title(GTK_WINDOW(b->window), _("Set Directory Info")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1721 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
|
1722 gtk_widget_realize(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1723 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1724 fbox = gtk_vbox_new(FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1725 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1726 gtk_widget_show(fbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1727 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1728 frame = gtk_frame_new(_("Directory Info")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1729 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1730 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1731 gtk_widget_show(frame); |
| 484 | 1732 |
| 1733 vbox = gtk_vbox_new(FALSE, 5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1734 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1735 gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1736 gtk_widget_show(vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1737 |
| 4472 | 1738 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
|
1739 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1740 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1741 gtk_widget_show(label); |
| 1 | 1742 |
| 1743 b->first = gtk_entry_new(); | |
| 1744 b->middle = gtk_entry_new(); | |
| 1745 b->last = gtk_entry_new(); | |
| 1746 b->maiden = gtk_entry_new(); | |
| 1747 b->city = gtk_entry_new(); | |
| 1748 b->state = gtk_entry_new(); | |
| 1749 b->country = gtk_entry_new(); | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1750 b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info")); |
| 484 | 1751 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1752 /* Line 1 */ |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1753 label = gtk_label_new(_("First Name")); |
| 1 | 1754 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1755 |
| 484 | 1756 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1757 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1758 gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0); | |
| 1759 | |
| 1760 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1761 gtk_widget_show(hbox); |
| 1762 | |
| 1763 /* Line 2 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1764 label = gtk_label_new(_("Middle Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1765 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1766 |
| 484 | 1767 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1768 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1769 gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0); | |
| 1770 | |
| 1771 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1772 gtk_widget_show(hbox); |
| 1773 | |
| 1774 | |
| 1775 /* Line 3 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1776 label = gtk_label_new(_("Last Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1777 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1778 |
| 484 | 1779 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1780 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1781 gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0); | |
| 1782 | |
| 1783 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1784 gtk_widget_show(hbox); |
| 1785 | |
| 1786 /* Line 4 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1787 label = gtk_label_new(_("Maiden Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1788 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1789 |
| 484 | 1790 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1791 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1792 gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0); | |
| 1793 | |
| 1794 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1795 gtk_widget_show(hbox); |
| 1796 | |
| 1797 /* Line 5 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1798 label = gtk_label_new(_("City")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1799 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1800 |
| 484 | 1801 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1802 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1803 gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0); | |
| 1804 | |
| 1805 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1806 gtk_widget_show(hbox); |
| 1807 | |
| 1808 /* Line 6 */ | |
| 1185 | 1809 label = gtk_label_new(_("State")); |
| 1 | 1810 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1811 |
| 484 | 1812 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1813 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1814 gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0); | |
| 1815 | |
| 1816 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1817 gtk_widget_show(hbox); |
| 1818 | |
| 1819 /* Line 7 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1820 label = gtk_label_new(_("Country")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1821 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1822 |
| 484 | 1823 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1824 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 1825 gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0); | |
| 1826 | |
| 1827 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 484 | 1828 gtk_widget_show(hbox); |
| 1829 | |
| 1830 /* Line 8 */ | |
| 1831 | |
| 1832 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 1833 gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0); |
| 484 | 1834 gtk_widget_show(hbox); |
| 1185 | 1835 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 1836 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1837 gtk_widget_show(b->first); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1838 gtk_widget_show(b->middle); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1839 gtk_widget_show(b->last); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1840 gtk_widget_show(b->maiden); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1841 gtk_widget_show(b->city); |
| 1 | 1842 gtk_widget_show(b->state); |
| 1843 gtk_widget_show(b->country); | |
| 1844 gtk_widget_show(b->web); | |
| 1845 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1846 /* And add the buttons */ |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1847 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1848 bot = gtk_hbox_new(FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1849 gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1850 gtk_widget_show(bot); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1851 |
| 4092 | 1852 b->save = picture_button(b->window, _("Save"), save_xpm); |
| 1853 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
|
1854 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_set_dir), b); |
| 4092 | 1855 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1856 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1857 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
|
1858 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
|
1859 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1860 gtk_window_set_focus(GTK_WINDOW(b->window), b->first); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1861 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1862 gtk_widget_show(b->window); |
| 1 | 1863 } |
| 1864 | |
| 149 | 1865 void do_change_password(GtkWidget *widget, struct passwddlg *b) |
| 1866 { | |
| 3466 | 1867 const gchar *orig, *new1, *new2; |
| 149 | 1868 |
| 1869 orig = gtk_entry_get_text(GTK_ENTRY(b->original)); | |
| 1870 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1)); | |
| 1871 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); | |
| 1872 | |
| 4793 | 1873 if (g_utf8_collate(new1, new2)) { |
| 3427 | 1874 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
|
1875 return; |
| 149 | 1876 } |
| 1877 | |
| 1878 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { | |
| 3427 | 1879 do_error_dialog(_("Fill out all fields completely"), NULL, GAIM_ERROR); |
| 149 | 1880 return; |
| 1881 } | |
| 1882 | |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1883 serv_change_passwd(b->gc, orig, new1); |
| 4977 | 1884 g_snprintf(b->gc->account->password, sizeof(b->gc->account->password), "%s", new1); |
| 1885 save_prefs(); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1886 |
| 149 | 1887 destroy_dialog(NULL, b->window); |
| 1888 g_free(b); | |
| 1889 } | |
| 1890 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1891 void show_change_passwd(struct gaim_connection *gc) |
| 146 | 1892 { |
| 1893 GtkWidget *hbox; | |
| 1894 GtkWidget *label; | |
| 1895 GtkWidget *vbox; | |
| 475 | 1896 GtkWidget *fbox; |
| 1897 GtkWidget *frame; | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1898 char buf[256]; |
| 454 | 1899 |
| 146 | 1900 struct passwddlg *b = g_new0(struct passwddlg, 1); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1901 b->gc = gc; |
| 146 | 1902 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
1903 GAIM_DIALOG(b->window); |
| 4635 | 1904 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 1905 gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd"); |
| 4703 | 1906 gtk_window_set_title(GTK_WINDOW(b->window), _("Change Password")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1907 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
|
1908 gtk_widget_realize(b->window); |
| 146 | 1909 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 149 | 1910 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1911 fbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 1912 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1913 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1914 gtk_widget_show(fbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1915 |
| 475 | 1916 frame = gtk_frame_new(_("Change Password")); |
| 1185 | 1917 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
|
1918 gtk_widget_show(frame); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1919 |
| 475 | 1920 vbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 1921 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1922 gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1923 gtk_widget_show(vbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1924 |
| 4472 | 1925 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
|
1926 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1927 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1928 gtk_widget_show(label); |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1929 |
| 475 | 1930 /* First Line */ |
| 1931 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 1932 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
|
1933 gtk_widget_show(hbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1934 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
1935 label = gtk_label_new(_("Original Password")); |
| 1185 | 1936 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 146 | 1937 gtk_widget_show(label); |
| 475 | 1938 |
| 146 | 1939 b->original = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1940 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); |
| 1185 | 1941 gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0); |
| 149 | 1942 gtk_widget_show(b->original); |
| 475 | 1943 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1944 /* Next Line */ |
| 475 | 1945 hbox = gtk_hbox_new(FALSE, 5); |
| 1185 | 1946 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
|
1947 gtk_widget_show(hbox); |
|
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1948 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1949 label = gtk_label_new(_("New Password")); |
| 1185 | 1950 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
|
1951 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1952 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1953 b->new1 = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1954 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE); |
| 1185 | 1955 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
|
1956 gtk_widget_show(b->new1); |
| 475 | 1957 |
| 1958 /* Next Line */ | |
| 1959 hbox = gtk_hbox_new(FALSE, 5); | |
| 1185 | 1960 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
|
1961 gtk_widget_show(hbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1962 |
| 475 | 1963 label = gtk_label_new(_("New Password (again)")); |
| 1185 | 1964 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
|
1965 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1966 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1967 b->new2 = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1968 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); |
| 1185 | 1969 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
|
1970 gtk_widget_show(b->new2); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1971 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
1972 /* Now do our row of buttons */ |
| 1185 | 1973 hbox = gtk_hbox_new(FALSE, 5); |
| 1974 gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); | |
| 146 | 1975 gtk_widget_show(hbox); |
| 475 | 1976 |
| 4092 | 1977 b->ok = picture_button(b->window, _("OK"), ok_xpm); |
| 1978 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
|
1979 g_signal_connect(GTK_OBJECT(b->ok), "clicked", G_CALLBACK(do_change_password), b); |
| 4092 | 1980 |
| 1185 | 1981 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 1982 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
|
1983 g_signal_connect(GTK_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
| 1185 | 1984 |
|
978
563c409e26a1
[gaim-migrate @ 988]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
976
diff
changeset
|
1985 gtk_widget_show(b->window); |
| 146 | 1986 } |
| 1987 | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1988 void show_set_info(struct gaim_connection *gc) |
| 1 | 1989 { |
| 1185 | 1990 GtkWidget *buttons; |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
1991 GtkWidget *label; |
| 1185 | 1992 GtkWidget *vbox; |
| 4119 | 1993 GtkTextBuffer *buffer; |
| 1994 GtkWidget *frame; | |
| 1292 | 1995 gchar *buf; |
| 4491 | 1996 struct gaim_account *account; |
| 1292 | 1997 |
| 1 | 1998 struct set_info_dlg *b = g_new0(struct set_info_dlg, 1); |
| 4491 | 1999 account = gc->account; |
| 2000 b->account = account; | |
| 1 | 2001 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2002 GAIM_DIALOG(b->window); |
| 4074 | 2003 gtk_window_set_role(GTK_WINDOW(b->window), "set_info"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2004 dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4703 | 2005 gtk_window_set_title(GTK_WINDOW(b->window), _("Set User Info")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2006 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
|
2007 gtk_widget_realize(b->window); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2008 |
| 1185 | 2009 vbox = gtk_vbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2010 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2011 gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2012 gtk_widget_show(vbox); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2013 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2014 buf = g_malloc(256); |
| 4491 | 2015 g_snprintf(buf, 256, _("Changing info for %s:"), account->username); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2016 label = gtk_label_new(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2017 g_free(buf); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2018 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2019 gtk_widget_show(label); |
| 4491 | 2020 |
| 4119 | 2021 frame = gtk_frame_new(NULL); |
| 2022 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 2023 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 2024 gtk_widget_show(frame); | |
| 2025 | |
| 2026 b->text = gtk_text_view_new(); | |
| 2027 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD); | |
| 2028 gtk_widget_set_size_request(b->text, 300, 200); | |
| 4491 | 2029 buf = g_malloc(strlen(account->user_info) + 1); |
| 2030 strncpy_nohtml(buf, account->user_info, strlen(account->user_info) + 1); | |
| 4119 | 2031 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(b->text)); |
| 2032 gtk_text_buffer_set_text(buffer, buf, -1); | |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2033 g_free(buf); |
| 4119 | 2034 gtk_container_add(GTK_CONTAINER(frame), b->text); |
| 1 | 2035 gtk_widget_show(b->text); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2036 gtk_window_set_focus(GTK_WINDOW(b->window), b->text); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2037 |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2038 buttons = gtk_hbox_new(FALSE, 5); |
| 1185 | 2039 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
|
2040 gtk_widget_show(buttons); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2041 |
| 4092 | 2042 b->save = picture_button(b->window, _("Save"), save_xpm); |
| 2043 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
|
2044 g_signal_connect(GTK_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b); |
| 4092 | 2045 |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2046 b->cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2047 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
|
2048 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
|
2049 |
| 1 | 2050 gtk_widget_show(b->window); |
| 2051 | |
| 2052 } | |
| 2053 | |
| 2054 /*------------------------------------------------------------------------*/ | |
| 2055 /* The dialog for the info requests */ | |
| 2056 /*------------------------------------------------------------------------*/ | |
| 2057 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2058 static void info_dlg_free(GtkWidget *b, struct info_dlg *d) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2059 { |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2060 if (g_slist_find(info_dlgs, d)) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2061 info_dlgs = g_slist_remove(info_dlgs, d); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2062 g_free(d->who); |
|
1051
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2063 g_free(d); |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2064 } |
|
713b0e14e0a9
[gaim-migrate @ 1061]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1049
diff
changeset
|
2065 |
|
2791
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2066 /* 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
|
2067 * 1, don't show if regular info isn't shown |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2068 * 2, show regardless but don't try to get away message |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2069 * |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2070 * 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
|
2071 */ |
|
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2072 void g_show_info_text(struct gaim_connection *gc, char *who, int away, char *info, ...) |
| 1 | 2073 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2074 GtkWidget *ok; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2075 GtkWidget *label; |
| 1 | 2076 GtkWidget *text; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2077 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2078 GtkWidget *sw; |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2079 gint options = 0; |
|
2137
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2080 char *more_info; |
|
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2081 va_list ap; |
| 1 | 2082 |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2083 struct info_dlg *b = find_info_dlg(gc, who); |
|
2791
8f6365332a05
[gaim-migrate @ 2804]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2785
diff
changeset
|
2084 if (!b && (away == 1)) |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2085 return; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2086 if (!b) { |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2087 b = g_new0(struct info_dlg, 1); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2088 b->gc = gc; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2089 b->who = who ? g_strdup(normalize(who)) : NULL; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2090 info_dlgs = g_slist_append(info_dlgs, b); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2091 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2092 GAIM_DIALOG(b->window); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2093 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); |
| 4635 | 2094 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2095 gtk_widget_realize(GTK_WIDGET(b->window)); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2096 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
|
2097 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2098 bbox = gtk_vbox_new(FALSE, 5); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2099 gtk_container_add(GTK_CONTAINER(b->window), bbox); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2100 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2101 label = gtk_label_new(_("Below are the results of your search: ")); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2102 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2103 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2104 sw = gtk_scrolled_window_new(NULL, NULL); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2105 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3926 | 2106 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
|
2107 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2108 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2109 text = gtk_imhtml_new(NULL, NULL); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2110 b->text = text; |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2111 gtk_container_add(GTK_CONTAINER(sw), text); |
| 4635 | 2112 gtk_widget_set_size_request(sw, 300, 250); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2113 gaim_setup_imhtml(text); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2114 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2115 ok = picture_button(b->window, _("OK"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2116 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
|
2117 GTK_OBJECT(b->window)); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2118 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2119 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2120 gtk_widget_show_all(b->window); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2121 } |
| 1 | 2122 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2123 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2124 options ^= GTK_IMHTML_NO_COLOURS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2125 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2126 options ^= GTK_IMHTML_NO_FONTS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
2127 if (convo_options & OPT_CONVO_IGNORE_SIZES) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
2128 options ^= GTK_IMHTML_NO_SIZES; |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2129 options ^= GTK_IMHTML_NO_COMMENTS; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2130 options ^= GTK_IMHTML_NO_TITLE; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2131 options ^= GTK_IMHTML_NO_NEWLINE; |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1399
diff
changeset
|
2132 options ^= GTK_IMHTML_NO_SCROLL; |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2133 |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
2134 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
|
2135 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2136 va_start(ap, info); |
|
2137
18722ae5b882
[gaim-migrate @ 2147]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2090
diff
changeset
|
2137 while ((more_info = va_arg(ap, char *)) != NULL) |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
2138 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
|
2139 va_end(ap); |
|
2773
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2140 |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2141 if (away) |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2142 info_dlgs = g_slist_remove(info_dlgs, b); |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2143 else |
|
a0fd8f91e294
[gaim-migrate @ 2786]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2763
diff
changeset
|
2144 serv_get_away(gc, who); |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
2145 } |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
2146 |
| 1 | 2147 /*------------------------------------------------------------------------*/ |
| 2148 /* The dialog for adding to permit/deny */ | |
| 2149 /*------------------------------------------------------------------------*/ | |
| 2150 | |
| 2151 | |
| 2152 static void do_add_perm(GtkWidget *w, struct addperm *p) | |
| 2153 { | |
| 2154 | |
| 3466 | 2155 const char *who; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2156 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2157 who = gtk_entry_get_text(GTK_ENTRY(p->entry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2158 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2159 if (!p->permit) { |
| 4491 | 2160 if (gaim_privacy_deny_add(p->gc->account, who)) { |
| 4349 | 2161 serv_add_deny(p->gc, who); |
| 2162 build_block_list(); | |
| 2163 gaim_blist_save(); | |
|
1126
c8118e7ec981
[gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1125
diff
changeset
|
2164 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2165 } else { |
| 4491 | 2166 if (gaim_privacy_permit_add(p->gc->account, who)) { |
| 4349 | 2167 serv_add_permit(p->gc, who); |
| 2168 build_allow_list(); | |
| 2169 gaim_blist_save(); | |
|
1126
c8118e7ec981
[gaim-migrate @ 1136]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1125
diff
changeset
|
2170 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2171 } |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2172 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2173 destroy_dialog(NULL, p->window); |
| 1 | 2174 } |
| 2175 | |
| 2176 | |
| 2177 | |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2178 void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit) |
| 1 | 2179 { |
| 2180 GtkWidget *cancel; | |
| 2181 GtkWidget *add; | |
| 2182 GtkWidget *label; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2183 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2184 GtkWidget *vbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2185 GtkWidget *topbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2186 |
| 486 | 2187 struct addperm *p = g_new0(struct addperm, 1); |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1057
diff
changeset
|
2188 p->gc = gc; |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2189 p->permit = permit; |
| 1 | 2190 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2191 GAIM_DIALOG(p->window); |
| 487 | 2192 gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); |
| 4635 | 2193 gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE); |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2194 gtk_widget_realize(p->window); |
| 487 | 2195 |
| 486 | 2196 dialogwindows = g_list_prepend(dialogwindows, p->window); |
| 2197 | |
| 4107 | 2198 bbox = gtk_hbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2199 topbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2200 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2201 p->entry = gtk_entry_new(); |
| 1 | 2202 |
| 486 | 2203 /* Build Add Button */ |
| 2204 | |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2205 if (permit) |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2206 add = picture_button(p->window, _("Permit"), add_xpm); |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2207 else |
|
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2208 add = picture_button(p->window, _("Deny"), add_xpm); |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2209 cancel = picture_button(p->window, _("Cancel"), cancel_xpm); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2210 |
| 486 | 2211 /* End of Cancel Button */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2212 if (who != NULL) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2213 gtk_entry_set_text(GTK_ENTRY(p->entry), who); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2214 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2215 /* Put the buttons in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2216 |
| 4107 | 2217 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
|
2218 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2219 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2220 label = gtk_label_new(_("Add")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2221 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2222 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2223 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
|
2224 /* And the boxes in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2225 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2226 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); |
| 4107 | 2227 gtk_widget_show(topbox); |
| 2228 topbox=gtk_hbox_new(FALSE, 5); | |
| 2229 gtk_box_pack_start(GTK_BOX(topbox), vbox, FALSE, FALSE, 5); | |
| 1 | 2230 |
| 2231 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2232 /* Handle closes right */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2233 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
|
2234 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
|
2235 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
|
2236 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
|
2237 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2238 /* Finish up */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2239 gtk_widget_show(add); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2240 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2241 gtk_widget_show(p->entry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2242 gtk_widget_show(topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2243 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2244 gtk_widget_show(vbox); |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2245 if (permit) |
| 4703 | 2246 gtk_window_set_title(GTK_WINDOW(p->window), _("Add Permit")); |
|
1144
b1454d019277
[gaim-migrate @ 1154]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1141
diff
changeset
|
2247 else |
| 4703 | 2248 gtk_window_set_title(GTK_WINDOW(p->window), _("Add Deny")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2249 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); |
| 4107 | 2250 gtk_container_add(GTK_CONTAINER(p->window), topbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2251 gtk_widget_realize(p->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2252 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2253 gtk_widget_show(p->window); |
| 1 | 2254 } |
| 2255 | |
| 2256 | |
| 2257 /*------------------------------------------------------------------------*/ | |
| 608 | 2258 /* Functions Called To Add A Log */ |
| 1 | 2259 /*------------------------------------------------------------------------*/ |
| 2260 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2261 void cancel_log(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2262 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2263 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2264 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2265 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2266 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2267 if (gtkconv->toolbar.log) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2268 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
|
2269 FALSE); |
| 608 | 2270 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2271 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2272 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2273 gtk_widget_destroy(gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2274 gtkconv->dialogs.log = NULL; |
| 608 | 2275 } |
| 2276 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2277 void do_log(GtkWidget *w, struct gaim_conversation *c) |
| 1 | 2278 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2279 struct gaim_gtk_conversation *gtkconv; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2280 struct log_conversation *l; |
| 3466 | 2281 const char *file; |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2282 char path[PATHSIZE]; |
| 1 | 2283 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2284 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2285 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2286 if (!find_log_info(c->name)) { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2287 file = gtk_file_selection_get_filename( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2288 GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2289 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2290 strncpy(path, file, PATHSIZE - 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2291 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2292 if (file_is_dir(path, gtkconv->dialogs.log)) |
|
1035
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2293 return; |
|
80a47e3b1bca
[gaim-migrate @ 1045]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1032
diff
changeset
|
2294 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2295 l = (struct log_conversation *)g_new0(struct log_conversation, 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2296 strcpy(l->name, gaim_conversation_get_name(c)); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2297 strcpy(l->filename, file); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2298 log_conversations = g_list_append(log_conversations, l); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2299 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2300 if (c != NULL) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2301 gaim_conversation_set_logging(c, TRUE); |
|
2372
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 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2304 save_prefs(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2305 cancel_log(NULL, c); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2306 } |
| 1 | 2307 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2308 void show_log_dialog(struct gaim_conversation *c) |
| 1 | 2309 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2310 struct gaim_gtk_conversation *gtkconv; |
| 1 | 2311 char *buf = g_malloc(BUF_LEN); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2312 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2313 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2314 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2315 if (!gtkconv->dialogs.log) { |
| 4703 | 2316 gtkconv->dialogs.log = gtk_file_selection_new(_("Log Conversation")); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2317 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2318 gtk_file_selection_hide_fileop_buttons( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2319 GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2320 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2321 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
|
2322 gaim_home_dir(), normalize(c->name)); |
| 4635 | 2323 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
|
2324 "log dialog"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2325 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log), |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2326 buf); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2327 g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2328 G_CALLBACK(delete_event_dialog), c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2329 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
|
2330 G_CALLBACK(do_log), c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2331 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
|
2332 G_CALLBACK(cancel_log), c); |
| 1 | 2333 } |
| 2334 | |
| 25 | 2335 g_free(buf); |
| 2336 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2337 gtk_widget_show(gtkconv->dialogs.log); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2338 gdk_window_raise(gtkconv->dialogs.log->window); |
| 1 | 2339 } |
| 2340 | |
| 2341 /*------------------------------------------------------*/ | |
| 2342 /* Find Buddy By Email */ | |
| 2343 /*------------------------------------------------------*/ | |
| 2344 | |
| 2345 void do_find_info(GtkWidget *w, struct findbyinfo *b) | |
| 2346 { | |
| 3466 | 2347 const char *first; |
| 2348 const char *middle; | |
| 2349 const char *last; | |
| 2350 const char *maiden; | |
| 2351 const char *city; | |
| 2352 const char *state; | |
| 2353 const char *country; | |
| 1 | 2354 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2355 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry)); |
| 1 | 2356 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry)); |
| 2357 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry)); | |
| 2358 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2359 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2360 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry)); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2361 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry)); |
| 1 | 2362 |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2363 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
|
2364 destroy_dialog(NULL, b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2365 } |
| 1 | 2366 |
| 2367 void do_find_email(GtkWidget *w, struct findbyemail *b) | |
| 2368 { | |
| 3466 | 2369 const char *email; |
| 1 | 2370 |
| 2371 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry)); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2372 |
|
2598
b2800bca74fe
[gaim-migrate @ 2611]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2582
diff
changeset
|
2373 serv_dir_search(b->gc, "", "", "", "", "", "", "", email); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2374 |
| 1 | 2375 destroy_dialog(NULL, b->window); |
| 2376 } | |
| 2377 | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2378 void show_find_info(struct gaim_connection *gc) |
| 1 | 2379 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2380 GtkWidget *cancel; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2381 GtkWidget *ok; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2382 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2383 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2384 GtkWidget *vbox; |
| 479 | 2385 GtkWidget *hbox; |
| 2386 GtkWidget *fbox; | |
| 2387 GtkWidget *frame; | |
| 1 | 2388 |
| 2389 struct findbyinfo *b = g_new0(struct findbyinfo, 1); | |
|
2393
a7ecfd3f7714
[gaim-migrate @ 2406]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2382
diff
changeset
|
2390 b->gc = gc; |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2391 GAIM_DIALOG(b->window); |
| 4635 | 2392 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 2393 gtk_window_set_role(GTK_WINDOW(b->window), "find_info"); |
| 479 | 2394 gtk_widget_show(b->window); |
| 2395 | |
| 2396 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 2397 | |
| 2398 frame = gtk_frame_new(_("Search for Buddy")); | |
| 2399 fbox = gtk_vbox_new(FALSE, 5); | |
| 2400 | |
| 2401 /* Build OK Button */ | |
| 2402 | |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2403 ok = picture_button(b->window, _("OK"), ok_xpm); |
|
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2404 cancel = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 1 | 2405 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2406 bbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2407 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2408 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2409 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2410 b->firstentry = gtk_entry_new(); |
| 1 | 2411 b->middleentry = gtk_entry_new(); |
| 2412 b->lastentry = gtk_entry_new(); | |
| 2413 b->maidenentry = gtk_entry_new(); | |
| 2414 b->cityentry = gtk_entry_new(); | |
| 2415 b->stateentry = gtk_entry_new(); | |
| 2416 b->countryentry = gtk_entry_new(); | |
| 2417 | |
| 4333 | 2418 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
|
2419 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); |
| 1 | 2420 |
| 479 | 2421 /* Line 1 */ |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2422 label = gtk_label_new(_("First Name")); |
| 1 | 2423 gtk_widget_show(label); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2424 |
| 1185 | 2425 hbox = gtk_hbox_new(FALSE, 5); |
| 2426 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2427 gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0); | |
| 479 | 2428 |
| 2429 gtk_widget_show(hbox); | |
| 1185 | 2430 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2431 |
| 2432 /* Line 2 */ | |
| 1 | 2433 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2434 label = gtk_label_new(_("Middle Name")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2435 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2436 |
| 1185 | 2437 hbox = gtk_hbox_new(FALSE, 5); |
| 2438 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2439 gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0); | |
| 479 | 2440 |
| 2441 gtk_widget_show(hbox); | |
| 1185 | 2442 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2443 |
| 2444 /* Line 3 */ | |
| 2445 | |
| 2446 label = gtk_label_new(_("Last Name")); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2447 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2448 |
| 1185 | 2449 hbox = gtk_hbox_new(FALSE, 5); |
| 2450 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2451 gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0); | |
| 479 | 2452 |
| 2453 gtk_widget_show(hbox); | |
| 1185 | 2454 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2455 |
| 2456 /* Line 4 */ | |
| 2457 | |
| 2458 label = gtk_label_new(_("Maiden Name")); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2459 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2460 |
| 1185 | 2461 hbox = gtk_hbox_new(FALSE, 5); |
| 2462 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2463 gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0); | |
| 479 | 2464 |
| 2465 gtk_widget_show(hbox); | |
| 1185 | 2466 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2467 |
| 2468 /* Line 5 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2469 |
| 479 | 2470 label = gtk_label_new(_("City")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2471 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2472 |
| 1185 | 2473 hbox = gtk_hbox_new(FALSE, 5); |
| 2474 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2475 gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0); | |
| 479 | 2476 |
| 2477 gtk_widget_show(hbox); | |
| 1185 | 2478 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2479 |
| 2480 /* Line 6 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2481 label = gtk_label_new(_("State")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2482 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2483 |
| 1185 | 2484 hbox = gtk_hbox_new(FALSE, 5); |
| 2485 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2486 gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0); | |
| 479 | 2487 |
| 2488 gtk_widget_show(hbox); | |
| 1185 | 2489 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2490 |
| 2491 /* Line 7 */ | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2492 label = gtk_label_new(_("Country")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2493 gtk_widget_show(label); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2494 |
| 1185 | 2495 hbox = gtk_hbox_new(FALSE, 5); |
| 2496 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 2497 gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0); | |
| 479 | 2498 |
| 2499 gtk_widget_show(hbox); | |
| 1185 | 2500 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2501 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2502 /* Merge The Boxes */ |
| 479 | 2503 |
| 2504 gtk_container_add(GTK_CONTAINER(frame), vbox); | |
| 1185 | 2505 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
| 2506 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0); | |
| 1 | 2507 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2508 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
|
2509 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
|
2510 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
|
2511 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2512 gtk_widget_show(ok); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2513 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2514 gtk_widget_show(b->firstentry); |
| 1 | 2515 gtk_widget_show(b->middleentry); |
| 2516 gtk_widget_show(b->lastentry); | |
| 2517 gtk_widget_show(b->maidenentry); | |
| 2518 gtk_widget_show(b->cityentry); | |
| 2519 gtk_widget_show(b->stateentry); | |
| 2520 gtk_widget_show(b->countryentry); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2521 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2522 gtk_widget_show(vbox); |
| 479 | 2523 gtk_widget_show(frame); |
| 2524 gtk_widget_show(fbox); | |
| 2525 | |
| 4703 | 2526 gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Info")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2527 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2528 gtk_container_add(GTK_CONTAINER(b->window), fbox); |
| 4635 | 2529 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2530 gtk_widget_realize(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2531 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2532 gtk_widget_show(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2533 } |
| 1 | 2534 |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2535 void show_find_email(struct gaim_connection *gc) |
| 1 | 2536 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2537 GtkWidget *label; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2538 GtkWidget *bbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2539 GtkWidget *vbox; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2540 GtkWidget *frame; |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2541 GtkWidget *topbox; |
| 444 | 2542 GtkWidget *button; |
| 1 | 2543 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2544 struct findbyemail *b = g_new0(struct findbyemail, 1); |
|
1535
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2545 if (g_slist_find(connections, gc)) |
|
1e2cc8c8bf3c
[gaim-migrate @ 1545]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1499
diff
changeset
|
2546 b->gc = gc; |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
2547 GAIM_DIALOG(b->window); |
| 4635 | 2548 gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4074 | 2549 gtk_window_set_role(GTK_WINDOW(b->window), "find_email"); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2550 gtk_widget_realize(b->window); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2551 dialogwindows = g_list_prepend(dialogwindows, b->window); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2552 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
| 4703 | 2553 gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Email")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2554 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2555 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2556 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2557 gtk_container_add(GTK_CONTAINER(b->window), vbox); |
| 1185 | 2558 |
| 444 | 2559 frame = gtk_frame_new(_("Search for Buddy")); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2560 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2561 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2562 topbox = gtk_hbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2563 gtk_container_add(GTK_CONTAINER(frame), topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2564 gtk_container_set_border_width(GTK_CONTAINER(topbox), 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2565 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2566 label = gtk_label_new(_("Email")); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2567 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2568 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2569 b->emailentry = gtk_entry_new(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2570 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
|
2571 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
|
2572 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry); |
|
1499
de0b946e86a4
[gaim-migrate @ 1509]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1488
diff
changeset
|
2573 |
| 1185 | 2574 bbox = gtk_hbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2575 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
| 444 | 2576 |
| 4094 | 2577 button = picture_button(b->window, _("OK"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2578 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(do_find_email), b); |
| 4094 | 2579 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 2580 | |
|
603
9b0717b4a490
[gaim-migrate @ 613]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
602
diff
changeset
|
2581 button = picture_button(b->window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2582 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window); |
| 1185 | 2583 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 2584 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2585 gtk_widget_show_all(b->window); |
| 1 | 2586 } |
| 2587 | |
| 2588 /*------------------------------------------------------*/ | |
| 2589 /* Link Dialog */ | |
| 2590 /*------------------------------------------------------*/ | |
| 2591 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2592 void cancel_link(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 2593 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2594 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2595 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2596 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2597 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2598 if (gtkconv->toolbar.link) { |
| 4635 | 2599 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
|
2600 FALSE); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2601 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2602 |
| 4685 | 2603 destroy_dialog(NULL, gtkconv->dialogs.link); |
| 2604 gtkconv->dialogs.link = NULL; | |
| 1 | 2605 } |
| 2606 | |
| 4262 | 2607 void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 1 | 2608 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2609 struct gaim_gtk_conversation *gtkconv; |
| 1 | 2610 char *open_tag; |
| 3466 | 2611 const char *urltext, *showtext; |
| 4262 | 2612 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2613 gtkconv = GAIM_GTK_CONVERSATION(b->c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2614 |
| 4262 | 2615 if (resp == GTK_RESPONSE_OK) { |
| 2616 | |
| 2617 open_tag = g_malloc(2048); | |
| 2618 | |
| 2619 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); | |
| 2620 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 2621 | |
| 2622 if (!strlen(showtext)) | |
| 2623 showtext = urltext; | |
| 2624 | |
| 2625 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
|
2626 gaim_gtk_surround(gtkconv, open_tag, "</A>"); |
| 4262 | 2627 |
| 2628 g_free(open_tag); | |
| 2629 } | |
| 2630 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2631 if (gtkconv->toolbar.link) { |
| 4635 | 2632 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
|
2633 FALSE); |
| 4262 | 2634 } |
| 2635 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2636 gtkconv->dialogs.link = NULL; |
| 1 | 2637 destroy_dialog(NULL, b->window); |
| 2638 } | |
| 2639 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2640 void show_insert_link(GtkWidget *linky, struct gaim_conversation *c) |
| 1 | 2641 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2642 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2643 struct gaim_gtk_window *gtkwin; |
| 4262 | 2644 GtkWidget *table; |
| 2645 GtkWidget *label; | |
| 2646 GtkWidget *hbox; | |
| 1 | 2647 GtkWidget *vbox; |
| 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 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2651 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2652 if (gtkconv->dialogs.link == NULL) { |
| 4262 | 2653 struct linkdlg *a = g_new0(struct linkdlg, 1); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2654 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2655 "dialogs", "gaim_question.png", NULL); |
| 4262 | 2656 GtkWidget *img = gtk_image_new_from_file(filename); |
| 2657 | |
| 2658 g_free(filename); | |
| 2659 | |
| 2660 a->c = c; | |
| 4703 | 2661 a->window = gtk_dialog_new_with_buttons(_("Insert Link"), |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2662 GTK_WINDOW(gtkwin->window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2663 GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL); |
| 4262 | 2664 |
| 2665 gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 2666 gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 2667 gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 2668 gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 2669 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
|
2670 gtk_container_set_border_width( |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2671 GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 4262 | 2672 gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
| 2673 | |
| 2674 hbox = gtk_hbox_new(FALSE, 12); | |
| 2675 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 2676 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 2677 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 2678 | |
| 2679 vbox = gtk_vbox_new(FALSE, 0); | |
| 2680 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 2681 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2682 label = gtk_label_new(_("Please enter the URL and description of " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2683 "the link that you want to insert. The " |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2684 "description is optional.\n")); |
| 4262 | 2685 |
| 2686 gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1); | |
| 2687 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 2688 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 2689 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 2690 | |
| 2691 hbox = gtk_hbox_new(FALSE, 6); | |
| 2692 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 2693 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2694 g_signal_connect(G_OBJECT(a->window), "destroy", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2695 G_CALLBACK(destroy_dialog), a->window); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2696 g_signal_connect(G_OBJECT(a->window), "destroy", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2697 G_CALLBACK(free_dialog), a); |
| 4262 | 2698 dialogwindows = g_list_prepend(dialogwindows, a->window); |
| 2699 | |
| 2700 table = gtk_table_new(4, 2, FALSE); | |
| 2701 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 2702 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 2703 gtk_container_set_border_width(GTK_CONTAINER(table), 0); | |
| 2704 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 2705 | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2706 label = gtk_label_new(_("URL")); |
| 4262 | 2707 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2708 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 2709 | |
| 2710 a->url = gtk_entry_new(); | |
| 2711 gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); | |
| 2712 gtk_widget_grab_focus(a->url); | |
| 2713 | |
| 2714 gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); | |
| 2715 | |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2716 label = gtk_label_new(_("Description")); |
| 4262 | 2717 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2718 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 2719 | |
| 2720 a->text = gtk_entry_new(); | |
| 2721 gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); | |
| 2722 gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); | |
| 2723 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2724 g_signal_connect(G_OBJECT(a->window), "response", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2725 G_CALLBACK(do_insert_link), a); |
| 4262 | 2726 |
| 2727 a->toggle = linky; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2728 gtkconv->dialogs.link = a->window; |
| 1 | 2729 } |
| 2730 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2731 gtk_widget_show_all(gtkconv->dialogs.link); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2732 gdk_window_raise(gtkconv->dialogs.link->window); |
| 1 | 2733 } |
| 2734 | |
| 2735 /*------------------------------------------------------*/ | |
| 2736 /* Color Selection Dialog */ | |
| 2737 /*------------------------------------------------------*/ | |
| 2738 | |
| 3367 | 2739 GtkWidget *fgcseld = NULL; |
| 2740 GtkWidget *bgcseld = NULL; | |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2741 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2742 void cancel_fgcolor(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 2743 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2744 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2745 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2746 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2747 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2748 if (gtkconv->toolbar.fgcolor && widget) { |
| 4635 | 2749 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
|
2750 FALSE); |
| 61 | 2751 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2752 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2753 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2754 gtk_widget_destroy(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2755 gtkconv->dialogs.fg_color = NULL; |
| 1 | 2756 } |
| 2757 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2758 void cancel_bgcolor(GtkWidget *widget, struct gaim_conversation *c) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2759 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2760 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2761 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2762 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2763 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2764 if (gtkconv->toolbar.bgcolor && widget) { |
| 4635 | 2765 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
|
2766 FALSE); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2767 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2768 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2769 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2770 gtk_widget_destroy(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2771 gtkconv->dialogs.bg_color = NULL; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2772 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2773 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2774 void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
| 1 | 2775 { |
| 2776 GdkColor text_color; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2777 struct gaim_conversation *c; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2778 struct gaim_gtk_conversation *gtkconv; |
| 1 | 2779 char *open_tag; |
| 2780 | |
| 2781 open_tag = g_malloc(30); | |
| 2782 | |
| 3557 | 2783 gtk_color_selection_get_current_color(colorsel, &text_color); |
| 1 | 2784 |
| 4635 | 2785 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
411
a330017b3aa4
[gaim-migrate @ 421]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
401
diff
changeset
|
2786 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2787 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2788 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2789 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2790 gtkconv->fg_color = text_color; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2791 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2792 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2793 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2794 text_color.blue / 256); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2795 gaim_gtk_surround(gtkconv, open_tag, "</FONT>"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2796 debug_printf("#%02X%02X%02X\n", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2797 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2798 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2799 text_color.blue / 256); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2800 g_free(open_tag); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2801 cancel_fgcolor(NULL, c); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2802 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2803 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2804 void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2805 { |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2806 GdkColor text_color; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2807 struct gaim_conversation *c; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2808 struct gaim_gtk_conversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2809 char *open_tag; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2810 |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2811 open_tag = g_malloc(30); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2812 |
| 3557 | 2813 gtk_color_selection_get_current_color(colorsel, &text_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2814 |
| 4635 | 2815 c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2816 /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2817 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2818 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2819 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2820 gtkconv->bg_color = text_color; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2821 g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2822 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2823 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2824 text_color.blue / 256); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2825 gaim_gtk_surround(gtkconv, open_tag, "</BODY>"); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2826 debug_printf("#%02X%02X%02X\n", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2827 text_color.red / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2828 text_color.green / 256, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2829 text_color.blue / 256); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2830 g_free(open_tag); |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2831 cancel_bgcolor(NULL, c); |
| 1 | 2832 } |
| 2833 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2834 void show_fgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
| 1 | 2835 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2836 struct gaim_gtk_conversation *gtkconv; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2837 GtkWidget *colorsel; |
| 1 | 2838 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2839 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2840 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2841 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2842 if (fgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2843 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
2844 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2845 fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); |
| 4198 | 2846 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 2847 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2848 g_signal_connect(GTK_OBJECT(fgcseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2849 G_CALLBACK(destroy_colorsel), (void *)1); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2850 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
|
2851 "clicked", G_CALLBACK(destroy_colorsel), (void *)1); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2852 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
|
2853 G_CALLBACK(apply_color_dlg), (void *)1); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2854 gtk_widget_realize(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2855 gtk_widget_show(fgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2856 gdk_window_raise(fgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2857 return; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2858 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2859 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2860 if (!gtkconv->dialogs.fg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2861 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2862 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
|
2863 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; |
| 4198 | 2864 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); |
| 4635 | 2865 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
2866 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2867 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
|
2868 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2869 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
|
2870 "clicked", G_CALLBACK(do_fgcolor), colorsel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2871 g_signal_connect(GTK_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2872 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2873 "clicked", G_CALLBACK(cancel_fgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2874 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2875 gtk_widget_realize(gtkconv->dialogs.fg_color); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2876 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2877 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2878 gtk_widget_show(gtkconv->dialogs.fg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2879 gdk_window_raise(gtkconv->dialogs.fg_color->window); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2880 } |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2881 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2882 void show_bgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2883 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2884 struct gaim_gtk_conversation *gtkconv; |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2885 GtkWidget *colorsel; |
|
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2886 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2887 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2888 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2889 if (color == NULL) { /* we came from the prefs */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2890 if (bgcseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2891 return; |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
2892 |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2893 bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); |
| 4198 | 2894 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
| 2895 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2896 g_signal_connect(GTK_OBJECT(bgcseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2897 G_CALLBACK(destroy_colorsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2898 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
|
2899 "clicked", G_CALLBACK(destroy_colorsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2900 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
|
2901 G_CALLBACK(apply_color_dlg), (void *)2); |
|
657
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2902 gtk_widget_realize(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2903 gtk_widget_show(bgcseld); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2904 gdk_window_raise(bgcseld->window); |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2905 return; |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2906 } |
|
4bbc103a3294
[gaim-migrate @ 667]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
654
diff
changeset
|
2907 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2908 if (!gtkconv->dialogs.bg_color) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2909 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2910 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
|
2911 colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; |
| 4198 | 2912 gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); |
| 4635 | 2913 g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
9b8b32ae3b41
[gaim-migrate @ 2219]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2143
diff
changeset
|
2914 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2915 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
|
2916 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2917 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
|
2918 "clicked", G_CALLBACK(do_bgcolor), colorsel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2919 g_signal_connect(GTK_OBJECT |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2920 (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
2921 "clicked", G_CALLBACK(cancel_bgcolor), c); |
|
858
3de6e98e8898
[gaim-migrate @ 868]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
854
diff
changeset
|
2922 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2923 gtk_widget_realize(gtkconv->dialogs.bg_color); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2924 } |
| 1 | 2925 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2926 gtk_widget_show(gtkconv->dialogs.bg_color); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2927 gdk_window_raise(gtkconv->dialogs.bg_color->window); |
| 1 | 2928 } |
| 2929 | |
| 2930 /*------------------------------------------------------------------------*/ | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2931 /* Font Selection Dialog */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2932 /*------------------------------------------------------------------------*/ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2933 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2934 void cancel_font(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2935 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2936 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2937 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2938 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2939 |
| 4685 | 2940 if (gtkconv->toolbar.font && widget) { |
| 4635 | 2941 gtk_toggle_button_set_active( |
| 4685 | 2942 GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2943 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2944 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2945 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2946 gtk_widget_destroy(gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2947 gtkconv->dialogs.font = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2948 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2949 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2950 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2951 { |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2952 /* this could be expanded to include font size, weight, etc. |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2953 but for now only works with font face */ |
| 3473 | 2954 int i = 0; |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
657
diff
changeset
|
2955 char *fontname; |
| 4635 | 2956 struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel), |
| 2957 "gaim_conversation"); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2958 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2959 if (c) { |
|
666
71ea550c22ac
[gaim-migrate @ 676]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
657
diff
changeset
|
2960 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 4635 | 2961 while(fontname[i] && !isdigit(fontname[i])) { |
| 3473 | 2962 i++; |
| 2963 } | |
| 2964 fontname[i] = 0; | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2965 gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2966 } else { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2967 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
| 3473 | 2968 while(fontface[i] && !isdigit(fontname[i]) && i < sizeof(fontface)) { |
| 2969 fontface[i] = fontname[i]; | |
| 2970 i++; | |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2971 } |
| 3473 | 2972 fontface[i] = 0; |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2973 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2974 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2975 cancel_font(NULL, c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2976 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2977 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2978 void destroy_fontsel(GtkWidget *w, gpointer d) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2979 { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2980 gtk_widget_destroy(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2981 fontseld = NULL; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2982 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2983 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2984 void show_font_dialog(struct gaim_conversation *c, GtkWidget *font) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2985 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2986 struct gaim_gtk_conversation *gtkconv; |
| 3473 | 2987 char fonttif[128]; |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2988 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2989 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2990 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2991 if (!font) { /* we came from the prefs dialog */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2992 if (fontseld) |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
2993 return; |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
2994 fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
| 3473 | 2995 if (fontface[0]) { |
| 2996 g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface); | |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
2997 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 2998 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
2999 } else { |
|
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3000 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 3001 DEFAULT_FONT_FACE " 12"); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3002 } |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3003 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3004 g_signal_connect(GTK_OBJECT(fontseld), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3005 G_CALLBACK(destroy_fontsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3006 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
|
3007 "clicked", G_CALLBACK(destroy_fontsel), NULL); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3008 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
|
3009 G_CALLBACK(apply_font_dlg), fontseld); |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3010 gtk_widget_realize(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3011 gtk_widget_show(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3012 gdk_window_raise(fontseld->window); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3013 return; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
3014 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3015 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3016 if (!gtkconv->dialogs.font) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3017 gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
3018 |
| 4635 | 3019 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
|
3020 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3021 if (gtkconv->fontface[0]) { |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3022 g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3023 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3024 fonttif); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3025 } else { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3026 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3027 DEFAULT_FONT_FACE); |
|
2763
477a035d81e5
[gaim-migrate @ 2776]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2761
diff
changeset
|
3028 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3029 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3030 g_signal_connect(GTK_OBJECT(gtkconv->dialogs.font), "delete_event", |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3031 G_CALLBACK(delete_event_dialog), c); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3032 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
|
3033 "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3034 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
|
3035 "clicked", G_CALLBACK(cancel_font), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3036 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3037 gtk_widget_realize(gtkconv->dialogs.font); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3038 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3039 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3040 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3041 gtk_widget_show(gtkconv->dialogs.font); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3042 gdk_window_raise(gtkconv->dialogs.font->window); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3043 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3044 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
3045 /*------------------------------------------------------------------------*/ |
| 1 | 3046 /* The dialog for new away messages */ |
| 3047 /*------------------------------------------------------------------------*/ | |
| 3048 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3049 static struct away_message *save_away_message(struct create_away *ca) |
| 717 | 3050 { |
| 3051 struct away_message *am; | |
| 3052 gchar *away_message; | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3053 |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3054 if (!ca->mess) |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3055 am = g_new0(struct away_message, 1); |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
3056 else { |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3057 am = ca->mess; |
|
2851
6eb5bf5089f0
[gaim-migrate @ 2864]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
3058 } |
| 1387 | 3059 |
| 4119 | 3060 |
| 717 | 3061 g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3062 away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 717 | 3063 |
| 3064 g_snprintf(am->message, sizeof(am->message), "%s", away_message); | |
| 3065 g_free(away_message); | |
| 3066 | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3067 if (!ca->mess) { |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3068 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
|
3069 } |
|
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3070 |
| 717 | 3071 save_prefs(); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3072 do_away_menu(); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3073 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3074 return am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3075 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3076 |
| 1387 | 3077 int check_away_mess(struct create_away *ca, int type) |
| 3078 { | |
| 4630 | 3079 char *msg; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3080 if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { |
| 1387 | 3081 /* We shouldn't allow a blank title */ |
| 3427 | 3082 do_error_dialog(_("You cannot save an away message with a blank title"), |
| 3083 _("Please give the message a title, or choose \"Make Away\" to use " | |
| 3084 "without saving."), GAIM_ERROR); | |
| 1387 | 3085 return 0; |
| 3086 } | |
| 3087 | |
| 4630 | 3088 msg = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 3089 | |
| 3090 if (!msg && (type <= 1)) { | |
| 1387 | 3091 /* We shouldn't allow a blank message */ |
| 3427 | 3092 do_error_dialog(_("You cannot create an empty away message"), NULL, GAIM_ERROR); |
| 1387 | 3093 return 0; |
| 3094 } | |
| 3095 | |
| 4630 | 3096 g_free(msg); |
| 3097 | |
| 1387 | 3098 return 1; |
| 3099 } | |
| 3100 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3101 void save_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3102 { |
| 1387 | 3103 if (!check_away_mess(ca, 1)) |
| 3104 return; | |
| 3105 | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3106 save_away_message(ca); |
| 717 | 3107 destroy_dialog(NULL, ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3108 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3109 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3110 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3111 void use_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3112 { |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3113 static struct away_message am; |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3114 gchar *away_message; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3115 |
| 1387 | 3116 if (!check_away_mess(ca, 0)) |
| 3117 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3118 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3119 g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3120 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
|
3121 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3122 g_snprintf(am.message, sizeof(am.message), "%s", away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3123 g_free(away_message); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3124 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3125 do_away_message(NULL, &am); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3126 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3127 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3128 g_free(ca); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3129 } |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3130 |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3131 void su_away_mess(GtkWidget *widget, struct create_away *ca) |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3132 { |
| 1387 | 3133 if (!check_away_mess(ca, 1)) |
| 3134 return; | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3135 do_away_message(NULL, save_away_message(ca)); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3136 destroy_dialog(NULL, ca->window); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3137 g_free(ca); |
| 717 | 3138 } |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3139 |
| 1 | 3140 void create_away_mess(GtkWidget *widget, void *dummy) |
| 3141 { | |
| 439 | 3142 GtkWidget *hbox; |
| 1 | 3143 GtkWidget *titlebox; |
| 3144 GtkWidget *tbox; | |
| 3145 GtkWidget *label; | |
| 439 | 3146 GtkWidget *frame; |
| 3147 GtkWidget *fbox; | |
| 441 | 3148 GtkWidget *button; |
| 1 | 3149 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3150 struct create_away *ca = g_new0(struct create_away, 1); |
| 1185 | 3151 |
| 1 | 3152 /* Set up window */ |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3153 GAIM_DIALOG(ca->window); |
| 4635 | 3154 gtk_widget_set_size_request(ca->window, -1, 250); |
| 3155 gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); | |
| 4074 | 3156 gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); |
| 4703 | 3157 gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3158 g_signal_connect(GTK_OBJECT(ca->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3159 G_CALLBACK(destroy_dialog), ca->window); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3160 gtk_widget_realize(ca->window); |
| 1185 | 3161 |
| 3162 tbox = gtk_vbox_new(FALSE, 5); | |
| 3163 gtk_container_add(GTK_CONTAINER(ca->window), tbox); | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3164 gtk_widget_show(tbox); |
| 439 | 3165 |
| 3166 frame = gtk_frame_new(_("New away message")); | |
| 1185 | 3167 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
|
3168 gtk_widget_show(frame); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3169 |
| 1172 | 3170 fbox = gtk_vbox_new(FALSE, 5); |
|
1224
0bbe3aaa6a3e
[gaim-migrate @ 1234]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1216
diff
changeset
|
3171 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
| 1185 | 3172 gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3173 gtk_widget_show(fbox); |
| 1185 | 3174 |
| 3175 titlebox = gtk_hbox_new(FALSE, 5); | |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3176 gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3177 gtk_widget_show(titlebox); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3178 |
|
350
fd3cc0a28d5d
[gaim-migrate @ 360]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
349
diff
changeset
|
3179 label = gtk_label_new(_("Away title: ")); |
| 1172 | 3180 gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); |
| 441 | 3181 gtk_widget_show(label); |
| 1185 | 3182 |
| 1 | 3183 ca->entry = gtk_entry_new(); |
| 1172 | 3184 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
|
3185 gtk_widget_grab_focus(ca->entry); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3186 gtk_widget_show(ca->entry); |
| 1 | 3187 |
| 4119 | 3188 frame = gtk_frame_new(NULL); |
| 3189 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 3190 gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); | |
| 3191 gtk_widget_show(frame); | |
| 3192 | |
| 3193 ca->text = gtk_text_view_new(); | |
| 3194 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD); | |
| 3195 | |
| 3196 gtk_container_add(GTK_CONTAINER(frame), ca->text); | |
| 1 | 3197 gtk_widget_show(ca->text); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3198 |
| 3374 | 3199 |
| 3200 if (dummy) { | |
| 3201 struct away_message *amt; | |
| 3202 GtkTreeIter iter; | |
| 3203 int pos = 0; | |
| 3204 GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy))); | |
| 3205 GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy)); | |
| 3206 GValue val = { 0, }; | |
| 4119 | 3207 GtkTextIter start; |
| 3208 GtkTextBuffer *buffer; | |
| 3374 | 3209 |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3210 if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter)) |
| 3374 | 3211 return; |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3212 gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val); |
| 3374 | 3213 amt = g_value_get_pointer (&val); |
| 3214 gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); | |
| 4119 | 3215 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text)); |
| 3216 gtk_text_buffer_get_iter_at_offset(buffer, &start, pos); | |
| 3217 gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message)); | |
| 3218 | |
| 3374 | 3219 ca->mess = amt; |
| 3220 } | |
|
832
0142b4c66394
[gaim-migrate @ 842]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
825
diff
changeset
|
3221 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3222 hbox = gtk_hbox_new(FALSE, 5); |
|
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3223 gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); |
| 439 | 3224 gtk_widget_show(hbox); |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3225 |
| 4092 | 3226 button = picture_button(ca->window, _("Save"), ok_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3227 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); |
| 4092 | 3228 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3229 | |
| 3230 button = picture_button(ca->window, _("Save & Use"), add_xpm); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3231 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
|
3232 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
|
3233 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3234 button = picture_button(ca->window, _("Use"), gnome_preferences_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3235 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
|
3236 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
|
3237 |
| 4092 | 3238 button = picture_button(ca->window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3239 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
|
3240 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
|
3241 |
|
1213
1bdb08cc5d59
[gaim-migrate @ 1223]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1210
diff
changeset
|
3242 gtk_widget_show(ca->window); |
| 1 | 3243 } |
| 555 | 3244 |
| 3245 /* smiley dialog */ | |
| 3246 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3247 void close_smiley_dialog(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3248 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3249 struct gaim_gtk_conversation *gtkconv; |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3250 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3251 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3252 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3253 if (gtkconv->toolbar.smiley) { |
| 4635 | 3254 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
|
3255 FALSE); |
| 570 | 3256 } |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3257 dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3258 gtk_widget_destroy(gtkconv->dialogs.smiley); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3259 gtkconv->dialogs.smiley = NULL; |
| 555 | 3260 } |
| 3261 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3262 void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c) |
| 555 | 3263 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3264 struct gaim_gtk_conversation *gtkconv; |
| 4667 | 3265 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
|
3266 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3267 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3268 |
| 4667 | 3269 gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); |
| 555 | 3270 close_smiley_dialog(NULL, c); |
| 3271 } | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3272 |
| 4667 | 3273 static void add_smiley(struct gaim_conversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
| 4034 | 3274 { |
|
4061
890b4f1318df
[gaim-migrate @ 4271]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4060
diff
changeset
|
3275 GtkWidget *image; |
| 4034 | 3276 GtkWidget *button; |
| 4667 | 3277 struct gaim_gtk_conversation *gtkconv = GAIM_GTK_CONVERSATION(c); |
| 3278 | |
| 3279 image = gtk_image_new_from_file(filename); | |
| 3280 button = gtk_button_new(); | |
| 3281 gtk_container_add(GTK_CONTAINER(button), image); | |
| 3282 g_object_set_data(G_OBJECT(button), "smiley_text", face); | |
| 3283 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), c); | |
| 3284 | |
| 3285 gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL); | |
| 3286 | |
| 3287 gtk_table_attach_defaults(GTK_TABLE(table), button, col, col+1, row, row+1); | |
| 4034 | 3288 |
| 3289 /* these look really weird with borders */ | |
| 3290 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4667 | 3291 |
| 3292 gtk_widget_show(button); | |
| 3293 } | |
| 3294 | |
| 3295 static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { | |
| 3296 while(list) { | |
| 3297 GtkIMHtmlSmiley *cur = list->data; | |
| 3298 if(!strcmp(cur->file, smiley->file)) | |
| 3299 return FALSE; | |
| 3300 list = list->next; | |
| 3301 } | |
| 3302 return TRUE; | |
| 4034 | 3303 } |
| 3304 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3305 void show_smiley_dialog(struct gaim_conversation *c, GtkWidget *widget) |
| 555 | 3306 { |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3307 struct gaim_gtk_conversation *gtkconv; |
| 555 | 3308 GtkWidget *dialog; |
| 4667 | 3309 GtkWidget *smiley_table = NULL; |
| 3310 GSList *smileys, *unique_smileys = NULL; | |
| 3311 int width; | |
| 3312 int row = 0, col = 0; | |
| 555 | 3313 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3314 gtkconv = GAIM_GTK_CONVERSATION(c); |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3315 |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3316 if (gtkconv->dialogs.smiley) |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
3317 return; |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3318 |
| 4667 | 3319 if(c->account) |
| 3320 smileys = get_proto_smileys(c->account->protocol); | |
| 3321 else | |
| 3322 smileys = get_proto_smileys(DEFAULT_PROTO); | |
| 3323 | |
| 3324 while(smileys) { | |
| 3325 GtkIMHtmlSmiley *smiley = smileys->data; | |
| 3326 if(!smiley->hidden) { | |
| 3327 if(smiley_is_unique(unique_smileys, smiley)) | |
| 3328 unique_smileys = g_slist_append(unique_smileys, smiley); | |
| 3329 } | |
| 3330 smileys = smileys->next; | |
| 3331 } | |
| 3332 | |
| 3333 | |
| 3334 width = floor(sqrt(g_slist_length(unique_smileys))); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3335 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3336 GAIM_DIALOG(dialog); |
| 4635 | 3337 gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
| 4074 | 3338 gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); |
| 934 | 3339 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
|
3340 |
| 4667 | 3341 smiley_table = gtk_table_new(width, width, TRUE); |
| 555 | 3342 |
| 3343 /* pack buttons */ | |
| 4667 | 3344 |
| 3345 while(unique_smileys) { | |
| 3346 GtkIMHtmlSmiley *smiley = unique_smileys->data; | |
| 3347 if(!smiley->hidden) { | |
| 3348 add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile); | |
| 3349 if(++col >= width) { | |
| 3350 col = 0; | |
| 3351 row++; | |
| 3352 } | |
| 3353 } | |
| 3354 unique_smileys = unique_smileys->next; | |
| 3355 } | |
| 3356 | |
| 3357 gtk_container_add(GTK_CONTAINER(dialog), smiley_table); | |
| 3358 | |
| 3359 gtk_widget_show(smiley_table); | |
| 3360 | |
|
579
7b501c39a6ee
[gaim-migrate @ 589]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
577
diff
changeset
|
3361 gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
| 555 | 3362 |
| 605 | 3363 /* connect signals */ |
| 4635 | 3364 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
|
3365 g_signal_connect(G_OBJECT(dialog), "delete_event", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3366 G_CALLBACK(delete_event_dialog), c); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3367 |
| 555 | 3368 /* show everything */ |
|
567
102afb84ce45
[gaim-migrate @ 577]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
558
diff
changeset
|
3369 gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); |
| 584 | 3370 gtk_widget_show_all(dialog); |
| 555 | 3371 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3372 gtkconv->dialogs.smiley = dialog; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3373 |
| 555 | 3374 return; |
|
558
f1b8f03db83f
[gaim-migrate @ 568]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
555
diff
changeset
|
3375 } |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3376 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3377 static void do_alias_bud(GtkWidget *w, struct buddy *b) |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3378 { |
| 3466 | 3379 const char *al = gtk_entry_get_text(GTK_ENTRY(aliasname)); |
| 4783 | 3380 gaim_blist_alias_buddy (b, (al && strlen(al)) ? al : NULL); |
| 3136 | 3381 serv_alias_buddy(b); |
| 4349 | 3382 gaim_blist_save(); |
|
710
efd72a117875
[gaim-migrate @ 720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
699
diff
changeset
|
3383 destroy_dialog(aliasdlg, aliasdlg); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3384 } |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3385 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3386 void alias_dialog_bud(struct buddy *b) |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3387 { |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3388 GtkWidget *vbox; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3389 GtkWidget *bbox; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3390 GtkWidget *cancel; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3391 static GtkWidget *add = NULL; |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3392 GtkWidget *label; |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3393 GtkWidget *topbox; |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3394 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3395 if (aliasdlg) |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3396 gtk_widget_destroy(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3397 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3398 GAIM_DIALOG(aliasdlg); |
| 4635 | 3399 gtk_window_set_resizable(GTK_WINDOW(aliasdlg), FALSE); |
| 4074 | 3400 gtk_window_set_role(GTK_WINDOW(aliasdlg), "alias_dialog"); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3401 gtk_widget_realize(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3402 dialogwindows = g_list_prepend(dialogwindows, aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3403 |
| 4092 | 3404 topbox = gtk_vbox_new(FALSE, 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3405 vbox = gtk_vbox_new(FALSE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3406 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3407 aliasentry = gtk_entry_new(); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3408 aliasname = gtk_entry_new(); |
| 4092 | 3409 |
| 3410 /* Make the buddy name box */ | |
| 3411 bbox = gtk_hbox_new(FALSE, 5); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3412 label = gtk_label_new(_("Buddy")); |
| 4092 | 3413 gtk_widget_show(bbox); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3414 gtk_widget_show(label); |
| 4092 | 3415 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5); |
| 3416 gtk_box_pack_end(GTK_BOX(bbox), aliasentry, FALSE, FALSE, 5); | |
| 4635 | 3417 gtk_editable_set_editable(GTK_EDITABLE(aliasentry), FALSE); |
| 4092 | 3418 gtk_box_pack_start(GTK_BOX(topbox), bbox, FALSE, FALSE, 0); |
| 3419 | |
| 3420 /* And the buddy alias box */ | |
| 3421 bbox = gtk_hbox_new(FALSE, 5); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3422 label = gtk_label_new(_("Alias")); |
| 4092 | 3423 gtk_widget_show(bbox); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3424 gtk_widget_show(label); |
| 4092 | 3425 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 5); |
| 3426 gtk_box_pack_end(GTK_BOX(bbox), aliasname, FALSE, FALSE, 5); | |
| 3427 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
|
3428 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3429 gtk_entry_set_text(GTK_ENTRY(aliasentry), b->name); |
| 4787 | 3430 if(b->alias) |
| 3431 gtk_entry_set_text(GTK_ENTRY(aliasname), b->alias); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3432 |
| 4092 | 3433 /* Put the buttons in the box */ |
| 3434 bbox = gtk_hbox_new(FALSE, 5); | |
| 3435 | |
| 3436 add = picture_button(aliasdlg, _("Alias"), add_xpm); | |
| 3437 cancel = picture_button(aliasdlg, _("Cancel"), cancel_xpm); | |
| 3438 gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 0); | |
| 3439 gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); | |
| 3440 | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3441 /* And the boxes in the box */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3442 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3443 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 5); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3444 |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3445 /* Handle closes right */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3446 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
|
3447 g_signal_connect(GTK_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), aliasdlg); |
| 4635 | 3448 g_signal_connect(GTK_OBJECT(add), "clicked", G_CALLBACK(do_alias_bud), b); |
| 3449 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
|
3450 /* Finish up */ |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3451 gtk_widget_show(add); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3452 gtk_widget_show(cancel); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3453 gtk_widget_show(aliasentry); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3454 gtk_widget_show(aliasname); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3455 gtk_widget_show(topbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3456 gtk_widget_show(bbox); |
|
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3457 gtk_widget_show(vbox); |
| 4703 | 3458 gtk_window_set_title(GTK_WINDOW(aliasdlg), _("Alias Buddy")); |
| 4092 | 3459 gtk_window_set_focus(GTK_WINDOW(aliasdlg), aliasname); |
| 3460 gtk_container_add(GTK_CONTAINER(aliasdlg), vbox); | |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3461 gtk_container_set_border_width(GTK_CONTAINER(aliasdlg), 5); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3462 gtk_widget_realize(aliasdlg); |
|
1397
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3463 |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3464 gtk_widget_show(aliasdlg); |
|
d2799e0672ee
[gaim-migrate @ 1407]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1396
diff
changeset
|
3465 } |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3466 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3467 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3468 static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3469 { |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3470 return TRUE; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3471 } |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3472 |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3473 static void do_save_log(GtkWidget *w, GtkWidget *filesel) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3474 { |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3475 const char *file; |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3476 char path[PATHSIZE]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3477 char buf[BUF_LONG]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3478 char error[BUF_LEN]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3479 FILE *fp_old, *fp_new; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3480 char filename[PATHSIZE]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3481 char *name; |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3482 char *tmp; |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3483 |
| 4635 | 3484 name = g_object_get_data(G_OBJECT(filesel), "name"); |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3485 tmp = gaim_user_dir(); |
| 3630 | 3486 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
|
3487 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3488 |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3489 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
|
3490 strncpy(path, file, PATHSIZE - 1); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3491 if (file_is_dir(path, filesel)) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3492 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3493 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3494 if ((fp_new = fopen(path, "w")) == NULL) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3495 g_snprintf(error, BUF_LONG, |
| 3427 | 3496 _("Couldn't write to %s."), path); |
| 3497 do_error_dialog(error, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3498 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3499 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3500 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3501 if ((fp_old = fopen(filename, "r")) == NULL) { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3502 g_snprintf(error, BUF_LONG, |
| 3427 | 3503 _("Couldn't write to %s."), filename); |
| 3504 do_error_dialog(error, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3505 fclose(fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3506 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3507 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3508 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3509 while (fgets(buf, BUF_LONG, fp_old)) |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3510 fputs(buf, fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3511 fclose(fp_old); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3512 fclose(fp_new); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3513 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3514 gtk_widget_destroy(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3515 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3516 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3517 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3518 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3519 static void show_save_log(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3520 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3521 GtkWidget *filesel; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3522 gchar buf[BUF_LEN]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3523 |
| 3630 | 3524 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
|
3525 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3526 |
| 4703 | 3527 filesel = gtk_file_selection_new(_("Save Log File")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3528 g_signal_connect(GTK_OBJECT(filesel), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3529 G_CALLBACK(destroy_dialog), filesel); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3530 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3531 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel)); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3532 gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3533 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3534 "clicked", G_CALLBACK(do_save_log), filesel); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3535 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3536 "clicked", G_CALLBACK(destroy_dialog), filesel); |
| 4635 | 3537 g_object_set_data(G_OBJECT(filesel), "name", name); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3538 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3539 gtk_widget_realize(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3540 gtk_widget_show(filesel); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3541 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3542 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3543 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3544 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3545 static void do_clear_log_file(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3546 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3547 gchar buf[256]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3548 gchar filename[256]; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3549 GtkWidget *window; |
|
1722
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3550 char *tmp; |
|
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3551 |
|
1edc8b545d6f
[gaim-migrate @ 1732]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1710
diff
changeset
|
3552 tmp = gaim_user_dir(); |
| 3630 | 3553 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
|
3554 name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3555 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3556 if ((remove(filename)) == -1) { |
| 3427 | 3557 g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); |
| 3558 do_error_dialog(buf, strerror(errno), GAIM_ERROR); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3559 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3560 |
| 4635 | 3561 window = g_object_get_data(G_OBJECT(w), "log_window"); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3562 destroy_dialog(NULL, window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3563 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3564 |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3565 static void show_clear_log(GtkWidget *w, gchar *name) |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3566 { |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3567 GtkWidget *window; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3568 GtkWidget *box; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3569 GtkWidget *hbox; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3570 GtkWidget *button; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3571 GtkWidget *label; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3572 GtkWidget *hsep; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3573 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
3574 GAIM_DIALOG(window); |
| 4074 | 3575 gtk_window_set_role(GTK_WINDOW(window), "dialog"); |
| 4703 | 3576 gtk_window_set_title(GTK_WINDOW(window), _("Clear Log")); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3577 gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 3578 gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3579 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
|
3580 gtk_widget_realize(window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3581 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3582 box = gtk_vbox_new(FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3583 gtk_container_add(GTK_CONTAINER(window), box); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3584 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3585 label = gtk_label_new(_("Really clear log?")); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3586 gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 15); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3587 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3588 hsep = gtk_hseparator_new(); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3589 gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3590 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3591 hbox = gtk_hbox_new(FALSE, 0); |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2370
diff
changeset
|
3592 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
|
3593 gtk_widget_show(hbox); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3594 |
| 4333 | 3595 button = picture_button(window, _("Okay"), ok_xpm); |
| 4635 | 3596 g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w), |
| 3597 "log_window")); | |
| 4333 | 3598 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
|
3599 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
|
3600 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3601 gtk_widget_show(button); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3602 |
| 4333 | 3603 button = picture_button(window, _("Cancel"), cancel_xpm); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3604 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
|
3605 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3606 gtk_widget_show(button); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3607 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3608 gtk_widget_show_all(window); |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3609 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3610 return; |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3611 } |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3612 |
| 4635 | 3613 static void log_show_convo(struct view_log *view) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3614 { |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3615 gchar buf[BUF_LONG]; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3616 FILE *fp; |
| 2570 | 3617 char filename[256]; |
| 3618 int i=0; | |
| 3619 GString *string; | |
| 2602 | 3620 guint block; |
| 3621 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3622 string = g_string_new(""); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3623 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3624 if (view->name) { |
|
1634
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
3625 char *tmp = gaim_user_dir(); |
| 3630 | 3626 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
|
3627 } else { |
|
d029dc28a61e
[gaim-migrate @ 1644]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1535
diff
changeset
|
3628 char *tmp = gaim_user_dir(); |
| 3630 | 3629 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
|
3630 } |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3631 if ((fp = fopen(filename, "r")) == NULL) { |
|
4923
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3632 if (view->name) { |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3633 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename); |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3634 do_error_dialog(buf, strerror(errno), GAIM_ERROR); |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3635 } |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3636 /* If the system log doesn't exist.. no message just show empty system log window. |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3637 That way user knows that the log is empty :) |
|
e96261d0dba8
[gaim-migrate @ 5257]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4918
diff
changeset
|
3638 */ |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3639 return; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3640 } |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3641 |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3642 gtk_widget_set_sensitive(view->bbox, FALSE); |
| 4635 | 3643 g_signal_handlers_disconnect_by_func(G_OBJECT(view->window), |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3644 G_CALLBACK(destroy_dialog), view->window); |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3645 block = g_signal_connect(GTK_OBJECT(view->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3646 G_CALLBACK(dont_destroy), view->window); |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3647 |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3648 fseek(fp, view->offset, SEEK_SET); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3649 gtk_imhtml_clear(GTK_IMHTML(view->layout)); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3650 /* |
| 2570 | 3651 while (gtk_events_pending()) |
| 3652 gtk_main_iteration(); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3653 */ |
| 2570 | 3654 |
| 3655 while (fgets(buf, BUF_LONG, fp) && !strstr(buf, "---- New C")) { | |
| 3656 i++; | |
| 3657 if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5))) | |
| 3658 /* take off the \n */ | |
| 3659 buf[strlen(buf) - 1] = '\0'; | |
| 3660 | |
|
2642
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
3661 /* don't lose the thirtieth line of conversation. thanks FeRD */ |
|
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
3662 g_string_append(string, buf); |
|
b6cf22276d4b
[gaim-migrate @ 2655]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2623
diff
changeset
|
3663 |
| 2570 | 3664 if (i == 30) { |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
3665 gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); |
| 2570 | 3666 g_string_free(string, TRUE); |
| 3667 string = g_string_new(""); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3668 /* 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
|
3669 * drawing, it will try to move to that item, and that causes problems here. |
| 2570 | 3670 while (gtk_events_pending()) |
| 3671 gtk_main_iteration(); | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3672 */ |
| 2570 | 3673 i = 0; |
| 3674 } | |
| 3675 | |
| 3676 } | |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2851
diff
changeset
|
3677 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
|
3678 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
|
3679 |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3680 gtk_widget_set_sensitive(view->bbox, TRUE); |
| 4635 | 3681 g_signal_handler_disconnect(G_OBJECT(view->window), block); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3682 g_signal_connect(GTK_OBJECT(view->window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3683 G_CALLBACK(destroy_dialog), view->window); |
| 2570 | 3684 g_string_free(string, TRUE); |
| 3685 fclose(fp); | |
| 3686 } | |
| 3687 | |
| 4635 | 3688 static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model) |
| 3689 { | |
| 3690 GValue val = { 0, }; | |
| 3691 GtkTreeIter iter; | |
| 3692 | |
| 3693 if(!gtk_tree_selection_get_selected(sel, &model, &iter)) | |
| 3694 return; | |
| 3695 gtk_tree_model_get_value(model, &iter, 1, &val); | |
| 3696 log_show_convo(g_value_get_pointer(&val)); | |
| 3697 } | |
| 3698 | |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3699 static void des_view_item(GtkObject *obj, struct view_log *view) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3700 { |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3701 if (view->name) |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3702 g_free(view->name); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3703 g_free(view); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3704 } |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3705 |
| 4635 | 3706 static void des_log_win(GObject *win, gpointer data) |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3707 { |
| 4635 | 3708 char *x = g_object_get_data(win, "log_window"); |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3709 if (x) |
|
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3710 g_free(x); |
| 4874 | 3711 x = g_object_get_data(win, "name"); |
| 3712 if (x) | |
| 3713 g_free(x); | |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3714 } |
|
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3715 |
| 3484 | 3716 void conv_show_log(GtkWidget *w, gpointer data) |
| 3717 { | |
| 3718 char *name = g_strdup(data); | |
| 3719 show_log(name); | |
| 3720 g_free(name); | |
| 3721 } | |
| 3722 | |
| 3532 | 3723 void chat_show_log(GtkWidget *w, gpointer data) |
| 3724 { | |
|
3716
d7e83b4db191
[gaim-migrate @ 3849]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3671
diff
changeset
|
3725 char *name = g_strdup_printf("%s.chat", (char*)data); |
| 3532 | 3726 show_log(name); |
| 3727 g_free(name); | |
| 3728 } | |
| 3729 | |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3730 void show_log(char *nm) |
| 2570 | 3731 { |
| 3732 gchar filename[256]; | |
| 3733 gchar buf[BUF_LONG]; | |
| 3734 FILE *fp; | |
| 3735 GtkWidget *window; | |
| 3736 GtkWidget *box; | |
| 3737 GtkWidget *hbox; | |
| 2602 | 3738 GtkWidget *bbox; |
| 2570 | 3739 GtkWidget *sw; |
| 3740 GtkWidget *layout; | |
| 3741 GtkWidget *close_button; | |
| 3742 GtkWidget *clear_button; | |
| 3743 GtkWidget *save_button; | |
| 4635 | 3744 GtkListStore *list_store; |
| 3745 GtkWidget *tree_view; | |
| 3746 GtkTreeSelection *sel = NULL; | |
| 3747 GtkTreePath *path; | |
| 2612 | 3748 GtkWidget *item = NULL; |
| 3749 GtkWidget *last = NULL; | |
| 2570 | 3750 GtkWidget *frame; |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3751 struct view_log *view; |
|
2623
66164831c228
[gaim-migrate @ 2636]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2621
diff
changeset
|
3752 char *name = nm ? g_strdup(nm) : NULL; |
| 2570 | 3753 |
| 3754 int options; | |
| 3755 guint block; | |
| 3756 char convo_start[32]; | |
| 3757 long offset = 0; | |
| 3758 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3759 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
|
3760 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3761 options ^= GTK_IMHTML_NO_COLOURS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
3762 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3763 options ^= GTK_IMHTML_NO_FONTS; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2228
diff
changeset
|
3764 if (convo_options & OPT_CONVO_IGNORE_SIZES) |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3765 options ^= GTK_IMHTML_NO_SIZES; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3766 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3767 window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 4635 | 3768 g_object_set_data(G_OBJECT(window), "name", name); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3769 g_signal_connect(GTK_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL); |
| 4074 | 3770 gtk_window_set_role(GTK_WINDOW(window), "log"); |
|
1648
09445224e2d9
[gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
3771 if (name) |
| 4703 | 3772 g_snprintf(buf, BUF_LONG, _("Conversations with %s"), name); |
|
1648
09445224e2d9
[gaim-migrate @ 1658]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1634
diff
changeset
|
3773 else |
| 4703 | 3774 g_snprintf(buf, BUF_LONG, _("System Log")); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3775 gtk_window_set_title(GTK_WINDOW(window), buf); |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3776 gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 3777 gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3778 block = g_signal_connect(GTK_OBJECT(window), "delete_event", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3779 G_CALLBACK(dont_destroy), window); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3780 gtk_widget_realize(window); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3781 |
| 2570 | 3782 layout = gtk_imhtml_new(NULL, NULL); |
| 2602 | 3783 bbox = gtk_hbox_new(FALSE, 0); |
| 3784 | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3785 box = gtk_vbox_new(FALSE, 5); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3786 gtk_container_add(GTK_CONTAINER(window), box); |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3787 |
| 2570 | 3788 hbox = gtk_hbox_new(FALSE, 5); |
| 3789 gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0); | |
| 3790 | |
| 3791 if (name) { | |
| 3792 char *tmp = gaim_user_dir(); | |
| 3630 | 3793 g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(name)); |
| 2570 | 3794 if ((fp = fopen(filename, "r")) == NULL) { |
| 4472 | 3795 g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename); |
| 3427 | 3796 do_error_dialog(buf, strerror(errno), GAIM_ERROR); |
| 2570 | 3797 return; |
| 3798 } | |
| 3799 | |
| 4635 | 3800 list_store = gtk_list_store_new(2, |
| 3801 G_TYPE_STRING, | |
| 3802 G_TYPE_POINTER); | |
| 3803 | |
| 3804 tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)); | |
| 3805 | |
| 3806 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE); | |
| 3807 | |
| 3808 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), | |
| 3809 -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL); | |
| 3810 | |
| 3811 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); | |
| 3812 g_signal_connect(G_OBJECT(sel), "changed", | |
| 3813 G_CALLBACK(log_select_convo), | |
| 3814 NULL); | |
| 2570 | 3815 |
| 3816 frame = gtk_frame_new(_("Date")); | |
| 3817 gtk_widget_show(frame); | |
| 3818 | |
| 3819 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 3820 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4635 | 3821 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
|
3822 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
6f7e1fc3e132
[gaim-migrate @ 2626]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2612
diff
changeset
|
3823 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4635 | 3824 gtk_widget_set_size_request(sw, 220, 220); |
| 2570 | 3825 gtk_container_add(GTK_CONTAINER(frame), sw); |
| 3826 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 3827 | |
| 3828 while (fgets(buf, BUF_LONG, fp)) { | |
| 3829 if (strstr(buf, "---- New C")) { | |
| 3830 int length; | |
| 3831 char *temp = strchr(buf, '@'); | |
| 4635 | 3832 GtkTreeIter iter; |
| 2612 | 3833 |
| 2570 | 3834 if (temp == NULL || strlen(temp) < 2) |
| 3835 continue; | |
| 2612 | 3836 |
| 2570 | 3837 temp++; |
| 3838 length = strcspn(temp, "-"); | |
| 3839 if (length > 31) length = 31; | |
| 3840 | |
| 3841 offset = ftell(fp); | |
| 3842 g_snprintf(convo_start, length, "%s", temp); | |
| 4635 | 3843 gtk_list_store_append(list_store, &iter); |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3844 view = g_new0(struct view_log, 1); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3845 view->options = options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3846 view->offset = offset; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3847 view->name = g_strdup(name); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3848 view->bbox = bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3849 view->window = window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3850 view->layout = layout; |
| 4635 | 3851 gtk_list_store_set(list_store, &iter, |
| 3852 0, convo_start, | |
| 3853 1, view, | |
| 3854 -1); | |
| 3855 g_signal_connect(G_OBJECT(window), "destroy", | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3856 G_CALLBACK(des_view_item), view); |
| 2612 | 3857 last = item; |
| 2570 | 3858 } |
| 3859 } | |
| 3860 fclose(fp); | |
| 4635 | 3861 |
| 3862 path = gtk_tree_path_new_first(); | |
| 3863 gtk_tree_selection_select_path(sel, path); | |
| 3864 gtk_tree_path_free(path); | |
| 3865 | |
| 3866 g_object_unref(G_OBJECT(list_store)); | |
| 2612 | 3867 } |
| 3868 | |
| 4635 | 3869 |
| 3870 g_signal_handler_disconnect(GTK_OBJECT(window), block); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3871 g_signal_connect(GTK_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
| 2602 | 3872 |
| 2570 | 3873 frame = gtk_frame_new(_("Conversation")); |
| 3874 gtk_widget_show(frame); | |
| 3875 | |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3876 sw = gtk_scrolled_window_new(NULL, NULL); |
| 2570 | 3877 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3878 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4333 | 3879 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 4635 | 3880 gtk_widget_set_size_request(sw, 390, 220); |
| 2570 | 3881 gtk_container_add(GTK_CONTAINER(frame), sw); |
| 3882 gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 3883 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3884 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
|
3885 gtk_container_add(GTK_CONTAINER(sw), layout); |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
3886 gaim_setup_imhtml(layout); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3887 |
| 2602 | 3888 gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0); |
| 3889 gtk_widget_set_sensitive(bbox, FALSE); | |
|
1488
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3890 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3891 close_button = picture_button(window, _("Close"), cancel_xpm); |
| 2602 | 3892 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
|
3893 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
|
3894 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3895 clear_button = picture_button(window, _("Clear"), close_xpm); |
| 4635 | 3896 g_object_set_data(G_OBJECT(clear_button), "log_window", window); |
| 2602 | 3897 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
|
3898 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
|
3899 |
|
55246babdeb3
[gaim-migrate @ 1498]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1484
diff
changeset
|
3900 save_button = picture_button(window, _("Save"), save_xpm); |
| 2602 | 3901 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
|
3902 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
|
3903 |
| 4635 | 3904 gtk_widget_show_all(window); |
| 3905 | |
| 2570 | 3906 if (!name) { |
|
2621
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3907 view = g_new0(struct view_log, 1); |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3908 view->options = options; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3909 view->name = NULL; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3910 view->bbox = bbox; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3911 view->window = window; |
|
f8b02cf4af94
[gaim-migrate @ 2634]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2613
diff
changeset
|
3912 view->layout = layout; |
| 4635 | 3913 log_show_convo(view); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3914 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
|
3915 } |
| 4635 | 3916 |
| 2602 | 3917 gtk_widget_set_sensitive(bbox, TRUE); |
|
1477
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3918 |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3919 return; |
|
1d0fc2622b29
[gaim-migrate @ 1487]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1456
diff
changeset
|
3920 } |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3921 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3922 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3923 /* The dialog for renaming groups */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3924 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3925 |
| 4183 | 3926 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
|
3927 { |
| 3466 | 3928 const char *new_name; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3929 struct group *g; |
|
1748
2eec724fdbcd
[gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1736
diff
changeset
|
3930 struct group *orig; |
| 4349 | 3931 GSList *accts; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3932 |
| 4183 | 3933 if (resp == GTK_RESPONSE_OK) { |
| 3934 | |
| 3935 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 4635 | 3936 g = g_object_get_data(G_OBJECT(entry), "group"); |
| 4183 | 3937 |
| 3938 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, g->name)) { | |
| 3939 char *prevname; | |
| 3940 | |
| 4793 | 3941 if ((orig = gaim_find_group(new_name)) != NULL && gaim_utf8_strcasecmp(new_name, g->name)) { |
| 4687 | 3942 gaim_blist_rename_group(orig, g->name); |
| 4349 | 3943 accts = gaim_group_get_accounts(g); |
| 3944 while(accts) { | |
| 4491 | 3945 struct gaim_account *account = accts->data; |
| 3946 serv_rename_group(account->gc, g, new_name); | |
| 4349 | 3947 accts = g_slist_remove(accts, accts->data); |
| 3948 } | |
| 4183 | 3949 g_free(g); |
| 3950 } else { | |
| 3951 prevname = g_strdup(g->name); | |
| 4349 | 3952 accts = gaim_group_get_accounts(g); |
| 3953 while(accts) { | |
| 4491 | 3954 struct gaim_account *account = accts->data; |
| 3955 serv_rename_group(account->gc, g, new_name); | |
| 4349 | 3956 accts = g_slist_remove(accts, accts->data); |
| 3957 } | |
| 4916 | 3958 gaim_blist_rename_group(g, new_name); |
| 4183 | 3959 g_free(prevname); |
| 3960 } | |
| 4349 | 3961 gaim_blist_save(); |
|
1748
2eec724fdbcd
[gaim-migrate @ 1758]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1736
diff
changeset
|
3962 } |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3963 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3964 destroy_dialog(rename_dialog, rename_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3965 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3966 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3967 void show_rename_group(GtkWidget *unused, struct group *g) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3968 { |
| 4183 | 3969 |
| 3970 GtkWidget *hbox, *vbox; | |
| 3971 GtkWidget *label; | |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
3972 struct gaim_gtk_buddy_list *gtkblist; |
| 4183 | 3973 char *filename = g_build_filename(DATADIR, "pixmaps", "gaim", "dialogs", "gaim_question.png", NULL); |
| 3974 GtkWidget *img = gtk_image_new_from_file(filename); | |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
3975 GtkWidget *name_entry = NULL; |
| 4183 | 3976 |
| 3977 g_free(filename); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3978 |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
3979 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
3980 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
3981 if (!rename_dialog) { |
| 4687 | 3982 rename_dialog = gtk_dialog_new_with_buttons(_("Rename Group"), GTK_WINDOW(gtkblist->window), GTK_DIALOG_MODAL, |
| 4183 | 3983 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 3984 gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK); | |
| 3985 gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6); | |
| 3986 gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); | |
| 3987 gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE); | |
| 3988 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12); | |
| 3989 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6); | |
| 4635 | 3990 |
| 4183 | 3991 hbox = gtk_hbox_new(FALSE, 12); |
| 3992 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox); | |
| 3993 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 3994 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 3995 | |
| 3996 vbox = gtk_vbox_new(FALSE, 0); | |
| 3997 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4635 | 3998 |
| 4183 | 3999 label = gtk_label_new(_("Please enter a new name for the selected group.\n")); |
| 4000 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 4001 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4002 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4635 | 4003 |
| 4183 | 4004 hbox = gtk_hbox_new(FALSE, 6); |
| 4005 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4635 | 4006 |
| 4183 | 4007 label = gtk_label_new(NULL); |
| 4008 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 4009 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 4010 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4011 name_entry = gtk_entry_new(); |
| 4183 | 4012 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); |
| 4635 | 4013 g_object_set_data(G_OBJECT(name_entry), "group", g); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4014 gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); |
| 4183 | 4015 gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0); |
| 4016 gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); | |
| 4017 gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry)); | |
| 4635 | 4018 |
| 4183 | 4019 g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry); |
| 4182 | 4020 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4021 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4022 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4023 gtk_widget_show_all(rename_dialog); |
|
4201
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4024 if(name_entry) |
|
511c2b63caa4
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4025 gtk_widget_grab_focus(GTK_WIDGET(name_entry)); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4026 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4027 |
| 2743 | 4028 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4029 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4030 /* The dialog for renaming buddies */ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4031 /*------------------------------------------------------------------------*/ |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4032 |
| 4635 | 4033 static void do_rename_buddy(GObject *obj, GtkWidget *entry) |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4034 { |
| 3466 | 4035 const char *new_name; |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4036 struct buddy *b; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4037 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4038 new_name = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4635 | 4039 b = g_object_get_data(obj, "buddy"); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4040 |
| 4491 | 4041 if (!g_slist_find(connections, b->account->gc)) { |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4042 destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4043 return; |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4044 } |
|
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4045 |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4046 if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) { |
| 4687 | 4047 struct group *g = gaim_find_buddys_group(b); |
| 4785 | 4048 char *prevname = b->name; |
|
2681
37d80035e77f
[gaim-migrate @ 2694]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2679
diff
changeset
|
4049 if (g) |
| 4491 | 4050 serv_remove_buddy(b->account->gc, b->name, g->name); |
| 4785 | 4051 b->name = g_strdup(new_name); |
| 4491 | 4052 serv_add_buddy(b->account->gc, b->name); |
| 4687 | 4053 gaim_blist_rename_buddy(b, prevname); |
| 4349 | 4054 gaim_blist_save(); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4055 g_free(prevname); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4056 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4057 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4058 destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4059 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4060 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4061 void show_rename_buddy(GtkWidget *unused, struct buddy *b) |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4062 { |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4063 GtkWidget *mainbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4064 GtkWidget *frame; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4065 GtkWidget *fbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4066 GtkWidget *bbox; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4067 GtkWidget *button; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4068 GtkWidget *name_entry; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4069 GtkWidget *label; |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4070 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4071 if (!rename_bud_dialog) { |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2681
diff
changeset
|
4072 GAIM_DIALOG(rename_bud_dialog); |
| 4074 | 4073 gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog"); |
| 4635 | 4074 gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE); |
| 4703 | 4075 gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Rename Buddy")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4076 g_signal_connect(GTK_OBJECT(rename_bud_dialog), "destroy", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4077 G_CALLBACK(destroy_dialog), rename_bud_dialog); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4078 gtk_widget_realize(rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4079 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4080 mainbox = gtk_vbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4081 gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4082 gtk_container_add(GTK_CONTAINER(rename_bud_dialog), mainbox); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4083 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4084 frame = gtk_frame_new(_("Rename Buddy")); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4085 gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4086 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4087 fbox = gtk_hbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4088 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4089 gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4090 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4091 label = gtk_label_new(_("New name:")); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4092 gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4093 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4094 name_entry = gtk_entry_new(); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4095 gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0); |
| 4635 | 4096 g_object_set_data(G_OBJECT(name_entry), "buddy", b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4097 gtk_entry_set_text(GTK_ENTRY(name_entry), b->name); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4098 g_signal_connect(GTK_OBJECT(name_entry), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4099 G_CALLBACK(do_rename_buddy), name_entry); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4100 gtk_widget_grab_focus(name_entry); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4101 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4102 bbox = gtk_hbox_new(FALSE, 5); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4103 gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4104 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4105 button = picture_button(rename_bud_dialog, _("OK"), ok_xpm); |
| 4635 | 4106 g_object_set_data(G_OBJECT(button), "buddy", b); |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4107 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
|
4108 g_signal_connect(GTK_OBJECT(button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4109 G_CALLBACK(do_rename_buddy), name_entry); |
| 4236 | 4110 |
| 4111 button = picture_button(rename_bud_dialog, _("Cancel"), cancel_xpm); | |
| 4112 gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
| 4113 g_signal_connect(GTK_OBJECT(button), "clicked", | |
| 4114 G_CALLBACK(destroy_dialog), rename_bud_dialog); | |
|
1729
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4115 } |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4116 |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4117 gtk_widget_show_all(rename_bud_dialog); |
|
251c19bf5763
[gaim-migrate @ 1739]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1722
diff
changeset
|
4118 } |
|
2370
25e7c2a68ed2
[gaim-migrate @ 2383]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2344
diff
changeset
|
4119 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4120 |
| 3668 | 4121 GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon) |
| 4122 { | |
| 4123 GtkWidget *button, *image, *bbox; | |
| 4124 | |
| 4125 button = gtk_toggle_button_new(); | |
| 4126 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4127 | |
| 4128 bbox = gtk_vbox_new(FALSE, 0); | |
| 4129 | |
| 4130 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4131 | |
| 4132 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU); | |
| 4133 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4134 | |
| 4135 gtk_widget_show_all(bbox); | |
| 4136 return button; | |
| 4137 } | |
| 4138 | |
| 3671 | 4139 GtkWidget *gaim_pixbuf_toolbar_button_from_file(char *icon) |
| 4140 { | |
| 4141 GtkWidget *button, *image, *bbox; | |
| 4142 char *filename; | |
| 4143 | |
| 4144 if (!icon) | |
| 4145 return NULL; | |
| 4146 | |
| 4147 button = gtk_toggle_button_new(); | |
| 4148 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4149 | |
| 4150 bbox = gtk_vbox_new(FALSE, 0); | |
| 4151 | |
| 4152 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4153 | |
| 4154 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", icon, NULL); | |
| 4155 debug_printf("Loading: %s\n", filename); | |
| 4156 image = gtk_image_new_from_file(filename); | |
| 4157 g_free(filename); | |
| 4158 | |
| 4159 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4160 | |
| 4161 gtk_widget_show_all(bbox); | |
| 4162 return button; | |
| 4163 } | |
| 4164 | |
| 4165 | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4166 GtkWidget * |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4167 gaim_pixbuf_button_from_stock(const char *text, const char *icon, |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4168 GaimButtonStyle style) |
| 3668 | 4169 { |
| 4170 GtkWidget *button, *image, *label, *bbox; | |
| 4171 button = gtk_button_new(); | |
| 4172 | |
| 4173 if (style == GAIM_BUTTON_HORIZONTAL) | |
| 4174 bbox = gtk_hbox_new(FALSE, 5); | |
| 4175 else | |
| 4176 bbox = gtk_vbox_new(FALSE, 0); | |
| 4177 | |
| 4178 gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4179 | |
| 4180 if (icon) { | |
| 4181 image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON); | |
| 4182 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4183 } | |
| 4184 | |
| 4185 if (text) { | |
| 4186 label = gtk_label_new(NULL); | |
| 4187 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4188 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
| 4189 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
| 4190 } | |
| 4191 | |
| 4192 gtk_widget_show_all(bbox); | |
| 4193 return button; | |
| 4194 } | |
| 4195 | |
| 3649 | 4196 GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonStyle style) |
| 3367 | 4197 { |
| 4198 GtkWidget *button, *image, *label, *bbox; | |
| 4199 button = gtk_button_new(); | |
| 3649 | 4200 |
| 4201 if (style == GAIM_BUTTON_HORIZONTAL) | |
| 4202 bbox = gtk_hbox_new(FALSE, 5); | |
| 4203 else | |
| 4204 bbox = gtk_vbox_new(FALSE, 0); | |
| 4205 | |
| 3367 | 4206 gtk_container_add (GTK_CONTAINER(button), bbox); |
| 3649 | 4207 |
| 3367 | 4208 if (iconfile) { |
| 4209 char *filename; | |
| 4210 filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL); | |
| 4211 debug_printf("Loading: %s\n", filename); | |
| 4212 image = gtk_image_new_from_file(filename); | |
| 4213 gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4214 g_free(filename); | |
| 4215 } | |
| 3649 | 4216 |
| 3367 | 4217 if (text) { |
| 4218 label = gtk_label_new(NULL); | |
| 4219 gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4220 gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
| 4221 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
| 4222 } | |
| 4223 gtk_widget_show_all(bbox); | |
| 4224 return button; | |
| 4225 } | |
| 3427 | 4226 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4227 GtkWidget *picture_button(GtkWidget *window, char *text, char **xpm) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4228 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4229 GtkWidget *button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4230 GtkWidget *button_box, *button_box_2, *button_box_3; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4231 GtkWidget *label; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4232 GdkBitmap *mask; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4233 GdkPixmap *pm; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4234 GtkWidget *pixmap; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4235 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4236 button = gtk_button_new(); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4237 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4238 button_box = gtk_hbox_new(FALSE, 5); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4239 gtk_container_add(GTK_CONTAINER(button), button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4240 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4241 button_box_2 = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4242 button_box_3 = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4243 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
|
4244 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
|
4245 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); |
| 4635 | 4246 pixmap = gtk_image_new_from_pixmap(pm, mask); |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4247 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
|
4248 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4249 if (text) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4250 label = gtk_label_new(text); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4251 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
|
4252 gtk_widget_show(label); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4253 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4254 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4255 gtk_widget_show(pixmap); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4256 gtk_widget_show(button_box_2); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4257 gtk_widget_show(button_box_3); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4258 gtk_widget_show(button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4259 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4260 /* this causes clipping on lots of buttons with long text */ |
| 4635 | 4261 /* gtk_widget_set_size_request(button, 75, 30);*/ |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4262 gtk_widget_show(button); |
| 4793 | 4263 g_object_unref(G_OBJECT(pm)); |
| 4264 g_object_unref(G_OBJECT(mask)); | |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4265 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4266 return button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4267 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4268 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4269 static GtkTooltips *button_tips = NULL; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4270 GtkWidget *picture_button2(GtkWidget *window, char *text, char **xpm, short dispstyle) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4271 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4272 GtkWidget *button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4273 GtkWidget *button_box, *button_box_2; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4274 GdkBitmap *mask; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4275 GdkPixmap *pm; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4276 GtkWidget *pixmap; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4277 GtkWidget *label; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4278 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4279 if (!button_tips) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4280 button_tips = gtk_tooltips_new(); |
| 3902 | 4281 |
|
2379
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4282 button = gtk_button_new(); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4283 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4284 button_box = gtk_hbox_new(FALSE, 0); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4285 gtk_container_add(GTK_CONTAINER(button), button_box); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4286 |
| 3320 | 4287 button_box_2 = gtk_vbox_new(FALSE, 0); |
| 4288 | |
| 4289 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
|
4290 gtk_widget_show(button_box_2); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4291 gtk_widget_show(button_box); |
| 3327 | 4292 if (dispstyle == 2 || dispstyle == 0) { |
| 4293 pm = gdk_pixmap_create_from_xpm_d(window->window, &mask, NULL, xpm); | |
| 4635 | 4294 pixmap = gtk_image_new_from_pixmap(pm, mask); |
| 3327 | 4295 gtk_box_pack_start(GTK_BOX(button_box_2), pixmap, FALSE, FALSE, 0); |
| 4296 | |
| 4297 gtk_widget_show(pixmap); | |
| 4298 | |
| 4793 | 4299 g_object_unref(G_OBJECT(pm)); |
| 4300 g_object_unref(G_OBJECT(mask)); | |
| 3327 | 4301 } |
| 4302 | |
| 4303 if (dispstyle == 2 || dispstyle == 1) { | |
| 4304 label = gtk_label_new(text); | |
| 4305 gtk_widget_show(label); | |
| 4306 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
|
4307 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4308 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4309 gtk_tooltips_set_tip(button_tips, button, text, "Gaim"); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4310 gtk_widget_show(button); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4311 return button; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4312 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4313 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4314 int file_is_dir(const char *path, GtkWidget *w) |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4315 { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4316 struct stat st; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4317 char *name; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4318 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4319 if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4320 /* append a / if needed */ |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4321 if (path[strlen(path) - 1] != '/') { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4322 name = g_strconcat(path, "/", NULL); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4323 } else { |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4324 name = g_strdup(path); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4325 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4326 gtk_file_selection_set_filename(GTK_FILE_SELECTION(w), name); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4327 g_free(name); |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4328 return 1; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4329 } |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4330 |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4331 return 0; |
|
cacaf7ace3a5
[gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2377
diff
changeset
|
4332 } |
| 2956 | 4333 |
| 4334 /*------------------------------------------------------------------------*/ | |
| 4335 /* The dialog for setting V-Card info */ | |
| 4336 /*------------------------------------------------------------------------*/ | |
| 4337 /* | |
| 4338 * There are actually two "chunks" of code following: generic "multi-entry dialog" | |
| 4339 * support and V-Card dialog specific support. | |
| 4340 * | |
| 4341 * At first blush, this may seem like an unnecessary duplication of effort given | |
| 4342 * that a "set dir info" dialog already exists. However, this is not so because: | |
| 4343 * | |
| 4344 * 1. V-Cards can have a lot more data in them than what the current | |
| 4345 * "set dir" dialog supports. | |
| 4346 * | |
| 4347 * 2. V-Card data, at least with respect to Jabber, is currently in a | |
| 4348 * state of flux. As the data and format changes, all that need be | |
| 4349 * changed with the V-Card support I've written is the "template" | |
| 4350 * data. | |
| 4351 * | |
| 4352 * 3. The "multi entry dialog" support itself was originally written | |
| 4353 * to support Jabber server user registration (TBD). A "dynamically | |
| 4354 * configurable" multi-entry dialog is needed for that, as different | |
| 4355 * servers may require different registration information. It just | |
| 4356 * turned out to be well-suited to adding V-Card setting support, as | |
| 4357 * well :-). | |
| 4358 * | |
| 4359 * TBD: Add check-box support to the generic multi-entry dialog support so that | |
| 4360 * it can be used to "replace" the "set dir info" support? | |
| 4361 * | |
| 4362 * Multiple-language support. Currently Not In There. I think this should | |
| 4363 * be easy. Note that when it's added: if anybody saved their data in | |
| 4364 * English, it'll be lost when MLS is added and they'll have to re-enter it. | |
| 4365 * | |
| 4366 * More "TBDs" noted in the code. | |
| 4367 */ | |
| 4368 | |
| 4369 | |
| 4370 /*------------------------------------*/ | |
| 4371 /* generic multi-entry dialog support */ | |
| 4372 /*------------------------------------*/ | |
| 4373 | |
| 4374 /* | |
| 4375 * Print all multi-entry items | |
| 4376 * | |
| 4377 * Note: Simply a debug helper | |
| 4378 */ | |
| 4379 void multi_entry_item_print_all(const GSList *list) { | |
| 4380 | |
| 4381 int cnt = 0; | |
| 4382 | |
| 4383 /* While there's something to print... */ | |
| 4384 while(list != NULL) { | |
| 4385 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiEntryData *) (list->data))->label); | |
| 4386 if(((MultiEntryData *) (list->data))->text != NULL) { | |
| 4387 fprintf(stderr, ", text: \"%s\"", ((MultiEntryData *) (list->data))->text); | |
| 4388 } | |
| 4389 fputs("\n", stderr); | |
| 4390 list = list->next; | |
| 4391 } | |
| 4392 } | |
| 4393 | |
| 4394 /* | |
| 4395 * Print all multi-text items | |
| 4396 * | |
| 4397 * Note: Simply a debug helper | |
| 4398 */ | |
| 4399 void multi_text_item_print_all(const GSList *list) { | |
| 4400 | |
| 4401 int cnt = 0; | |
| 4402 | |
| 4403 /* While there's something to print... */ | |
| 4404 while(list != NULL) { | |
| 4405 fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiTextData *) (list->data))->label); | |
| 4406 if(((MultiTextData *) (list->data))->text != NULL) { | |
| 4407 fprintf(stderr, ", text: \"%s\"", ((MultiTextData *) (list->data))->text); | |
| 4408 } | |
| 4409 fputs("\n", stderr); | |
| 4410 list = list->next; | |
| 4411 } | |
| 4412 } | |
| 4413 | |
| 4414 | |
| 4415 /* | |
| 4416 * Free all multi-entry item allocs and NULL the list pointer | |
| 4417 */ | |
| 4418 void multi_entry_items_free_all(GSList **list) | |
| 4419 { | |
| 4420 | |
| 4421 GSList *next = *list; | |
| 4422 MultiEntryData *data; | |
| 4423 | |
| 4424 /* While there's something to free() ... */ | |
| 4425 while(next != NULL) { | |
| 4426 data = (MultiEntryData *) next->data; | |
| 4427 g_free(data->label); | |
| 4428 g_free(data->text); | |
| 4429 g_free(data); | |
| 4430 next = next->next; | |
| 4431 } | |
| 4432 g_slist_free(*list); | |
| 4433 *list = NULL; | |
| 4434 } | |
| 4435 | |
| 4436 /* | |
| 4437 * Free all multi-text item allocs and NULL the list pointer | |
| 4438 */ | |
| 4439 void multi_text_items_free_all(GSList **list) | |
| 4440 { | |
| 4441 | |
| 4442 GSList *next = *list; | |
| 4443 MultiTextData *data; | |
| 4444 | |
| 4445 /* While there's something to free() ... */ | |
| 4446 while(next != NULL) { | |
| 4447 data = (MultiTextData *) next->data; | |
| 4448 g_free(data->label); | |
| 4449 g_free(data->text); | |
| 4450 g_free(data); | |
| 4451 next = next->next; | |
| 4452 } | |
| 4453 g_slist_free(*list); | |
| 4454 *list = NULL; | |
| 4455 } | |
| 4456 | |
| 4457 /* | |
| 4458 * See if a MultiEntryData item contains a given label | |
| 4459 * | |
| 4460 * See: glib docs for g_slist_compare_custom() for details | |
| 4461 */ | |
| 4462 static gint multi_entry_data_label_compare(gconstpointer data, gconstpointer label) | |
| 4463 { | |
| 4464 return(strcmp(((MultiEntryData *) (data))->label, (char *) label)); | |
| 4465 } | |
| 4466 | |
| 4467 /* | |
| 4468 * Add a new multi-entry item to list | |
| 4469 * | |
| 4470 * If adding to existing list: will search the list for existence of | |
| 4471 * "label" and change/create "text" entry if necessary. | |
| 4472 */ | |
| 4473 | |
| 4474 MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 4475 { | |
| 4476 GSList *found; | |
| 4477 MultiEntryData *data; | |
| 4478 | |
| 2975 | 4479 if((found = g_slist_find_custom(*list, (void *)label, multi_entry_data_label_compare)) == NULL) { |
| 2956 | 4480 if(add_it) { |
| 4481 data = (MultiEntryData *) g_slist_last(*list = | |
| 4482 g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data; | |
| 4483 data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 4484 data->text = NULL; | |
| 4485 /* | |
| 4486 * default to setting "visible" and editable to TRUE - they can be | |
| 4487 * overridden later, of course. | |
| 4488 */ | |
| 4489 data->visible = TRUE; | |
| 4490 data->editable = TRUE; | |
| 4491 } else { | |
| 4492 data = NULL; | |
| 4493 } | |
| 4494 } else { | |
| 4495 data = found->data; | |
| 4496 } | |
| 4497 | |
| 4498 if(data != NULL && text != NULL && text[0] != '\0') { | |
| 4499 if(data->text == NULL) { | |
| 4500 data->text = g_malloc(strlen(text) + 1); | |
| 4501 } else { | |
| 4502 data->text = g_realloc(data->text, strlen(text) + 1); | |
| 4503 } | |
| 4504 strcpy(data->text, text); | |
| 4505 } | |
| 4506 | |
| 4507 return(data); | |
| 4508 } | |
| 4509 | |
| 4510 /* | |
| 4511 * See if a MultiTextData item contains a given label | |
| 4512 * | |
| 4513 * See: glib docs for g_slist_compare_custom() for details | |
| 4514 */ | |
| 4515 static gint multi_text_data_label_compare(gconstpointer data, gconstpointer label) | |
| 4516 { | |
| 4517 return(strcmp(((MultiTextData *) (data))->label, (char *) label)); | |
| 4518 } | |
| 4519 | |
| 4520 /* | |
| 4521 * Add a new multi-text item to list | |
| 4522 * | |
| 4523 * If adding to existing list: will search the list for existence of | |
| 4524 * "label" and change/create "text" text if necessary. | |
| 4525 */ | |
| 4526 | |
| 4527 MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 4528 { | |
| 4529 GSList *found; | |
| 4530 MultiTextData *data; | |
| 4531 | |
| 2975 | 4532 if((found = g_slist_find_custom(*list, (void *)label, multi_text_data_label_compare)) == NULL) { |
| 2956 | 4533 if(add_it) { |
| 4534 data = (MultiTextData *) g_slist_last(*list = | |
| 4535 g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data; | |
| 4536 data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 4537 data->text = NULL; | |
| 4538 } else { | |
| 4539 data = NULL; | |
| 4540 } | |
| 4541 } else { | |
| 4542 data = found->data; | |
| 4543 } | |
| 4544 | |
| 4545 if(data != NULL && text != NULL && text[0] != '\0') { | |
| 4546 if(data->text == NULL) { | |
| 4547 data->text = g_malloc(strlen(text) + 1); | |
| 4548 } else { | |
| 4549 data->text = g_realloc(data->text, strlen(text) + 1); | |
| 4550 } | |
| 4551 strcpy(data->text, text); | |
| 4552 } | |
| 4553 | |
| 4554 return(data); | |
| 4555 } | |
| 4556 | |
| 4557 /* | |
| 4558 * Free-up the multi-entry item list and the MultiEntryDlg | |
| 4559 * struct alloc. | |
| 4560 */ | |
| 4561 void multi_entry_free(struct multi_entry_dlg *b) | |
| 4562 { | |
| 4563 multi_entry_items_free_all(&(b->multi_entry_items)); | |
| 4564 multi_text_items_free_all(&(b->multi_text_items)); | |
| 4565 g_free(b->instructions->text); | |
| 4566 g_free(b->instructions); | |
| 2975 | 4567 g_free(b->entries_title); |
| 2956 | 4568 g_free(b); |
| 4569 } | |
| 4570 | |
| 4571 /* | |
| 4572 * Multi-Entry dialog "destroyed" catcher | |
| 4573 * | |
| 4574 * Free-up the multi-entry item list, destroy the dialog widget | |
| 4575 * and free the MultiEntryDlg struct alloc. | |
| 4576 * | |
| 4577 */ | |
| 4578 void multi_entry_dialog_destroy(GtkWidget *widget, gpointer data) | |
| 4579 { | |
| 4580 MultiEntryDlg *b = data; | |
| 4581 | |
| 4582 multi_entry_free(b); | |
| 4583 } | |
| 4584 | |
| 4585 /* | |
| 4586 * Show/Re-show instructions | |
| 4587 */ | |
| 4588 void re_show_multi_entry_instr(MultiInstrData *instructions) | |
| 4589 { | |
| 4590 if(instructions->label != NULL) { | |
| 4591 if(instructions->text == NULL) { | |
| 4592 gtk_widget_hide(instructions->label); | |
| 4593 } else { | |
| 4594 gtk_label_set_text(GTK_LABEL (instructions->label), instructions->text); | |
| 4595 gtk_widget_show(instructions->label); | |
| 4596 } | |
| 4597 } | |
| 4598 } | |
| 4599 | |
| 4600 /* | |
| 4601 * Show/Re-show entry boxes | |
| 4602 */ | |
| 4603 void re_show_multi_entry_entries(GtkWidget **entries_table, | |
| 4604 GtkWidget *entries_frame, | |
| 4605 GSList *multi_entry_items) | |
| 4606 { | |
| 4607 GtkWidget *label; | |
| 4608 GSList *multi_entry; | |
| 4609 MultiEntryData *med; | |
| 2975 | 4610 int rows, row_num, col_num, col_offset; |
| 4611 int cols = 1; | |
| 2956 | 4612 |
| 4613 /* Figure-out number of rows needed for table */ | |
| 2975 | 4614 if((rows = g_slist_length(multi_entry_items)) > 9) { |
| 4615 rows /= 2; | |
| 4616 ++cols; | |
| 4617 } | |
| 2956 | 4618 |
| 4619 if(*entries_table != NULL) { | |
| 4620 gtk_widget_destroy(GTK_WIDGET (*entries_table)); | |
| 4621 } | |
| 2975 | 4622 *entries_table = gtk_table_new(rows, 3 * cols, FALSE); |
| 2956 | 4623 gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table); |
| 4624 | |
| 2975 | 4625 for(col_num = 0, multi_entry = multi_entry_items; col_num < cols && multi_entry != NULL; |
| 4626 ++col_num) { | |
| 4627 col_offset = col_num * 3; | |
| 4628 for(row_num = 0; row_num < rows && multi_entry != NULL; | |
| 4629 ++row_num, multi_entry = multi_entry->next) { | |
| 4630 | |
| 4631 med = (MultiEntryData *) multi_entry->data; | |
| 4632 | |
| 4633 label = gtk_label_new(med->label); | |
| 4634 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5); | |
| 4635 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 4636 col_offset, 1 + col_offset, row_num, row_num +1); | |
| 4637 gtk_widget_show(label); | |
| 4638 | |
| 4639 label = gtk_label_new(": "); | |
| 4640 gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5); | |
| 4641 gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 4642 1 + col_offset, 2 + col_offset, row_num, row_num +1); | |
| 4643 gtk_widget_show(label); | |
| 4644 | |
| 4635 | 4645 med->widget = gtk_entry_new(); |
| 4646 gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50); | |
| 2975 | 4647 if(med->text != NULL) { |
| 4648 gtk_entry_set_text(GTK_ENTRY (med->widget), med->text); | |
| 4649 } | |
| 4650 gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible); | |
| 4635 | 4651 gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable); |
| 2975 | 4652 gtk_table_attach(GTK_TABLE (*entries_table), med->widget, |
| 4653 2 + col_offset, 3 + col_offset, row_num, row_num +1, | |
| 4654 GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0); | |
| 4655 gtk_widget_show(med->widget); | |
| 2956 | 4656 } |
| 4657 } | |
| 4658 | |
| 4659 gtk_widget_show(*entries_table); | |
| 4660 } | |
| 4661 | |
| 4662 /* | |
| 4663 * Show/Re-show textboxes | |
| 4664 */ | |
| 4665 void re_show_multi_entry_textboxes(GtkWidget **texts_ibox, | |
| 4666 GtkWidget *texts_obox, | |
| 4667 GSList *multi_text_items) | |
| 4668 { | |
| 4669 GSList *multi_text; | |
| 4670 MultiTextData *mtd; | |
| 4635 | 4671 GtkWidget *frame; |
| 4672 GtkWidget *sw; | |
| 2956 | 4673 |
| 4674 if(*texts_ibox != NULL) { | |
| 4675 gtk_widget_destroy(GTK_WIDGET (*texts_ibox)); | |
| 4676 } | |
| 4677 *texts_ibox = gtk_vbox_new(FALSE, 5); | |
| 4678 gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox); | |
| 4679 | |
| 4680 for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) { | |
| 4681 mtd = (MultiTextData *) multi_text->data; | |
| 4682 frame = gtk_frame_new(mtd->label); | |
| 4635 | 4683 sw = gtk_scrolled_window_new(NULL, NULL); |
| 4684 gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4685 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 4686 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 4687 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
| 4688 GTK_SHADOW_IN); | |
| 4689 gtk_widget_set_size_request(sw, 300, 100); | |
| 4690 gtk_container_add(GTK_CONTAINER (frame), sw); | |
| 2956 | 4691 gtk_container_add(GTK_CONTAINER (*texts_ibox), frame); |
| 4635 | 4692 mtd->textbox = gtk_text_view_new(); |
| 4693 gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE); | |
| 4694 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD); | |
| 4695 gtk_text_buffer_set_text( | |
| 4696 gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)), | |
| 4697 mtd->text?mtd->text:"", -1); | |
| 4698 gtk_container_add(GTK_CONTAINER (sw), mtd->textbox); | |
| 2956 | 4699 gtk_widget_show(mtd->textbox); |
| 4635 | 4700 gtk_widget_show(sw); |
| 2956 | 4701 gtk_widget_show(frame); |
| 4702 } | |
| 4703 | |
| 4704 gtk_widget_show(*texts_ibox); | |
| 4705 } | |
| 4706 | |
| 4707 /* | |
| 4708 * Create and initialize a new Multi-Entry Dialog struct | |
| 4709 */ | |
| 4710 MultiEntryDlg *multi_entry_dialog_new() | |
| 4711 { | |
| 4712 MultiEntryDlg *b = g_new0(MultiEntryDlg, 1); | |
| 4713 b->instructions = g_new0(MultiInstrData, 1); | |
| 4714 b->multi_entry_items = NULL; | |
| 4715 b->multi_text_items = NULL; | |
| 4716 return(b); | |
| 4717 } | |
| 4718 | |
| 4719 /* | |
| 4720 * Instantiate a new multi-entry dialog | |
| 4721 * | |
| 4722 * data == pointer to MultiEntryDlg with the following | |
| 4723 * initialized: | |
| 4724 * | |
| 4074 | 4725 * role |
| 2956 | 4726 * title |
| 4727 * user | |
| 4728 * multi_entry_items - pointers to MultiEntryData list | |
| 4729 * and MultiTextData list | |
| 4730 * instructions (optional) | |
| 4731 * ok function pointer | |
| 4732 * cancel function pointer (actually used to set | |
| 4733 * window destroy signal--cancel asserts destroy) | |
| 4734 * | |
| 4735 * sets the following in the MultiEntryDialog struct: | |
| 4736 * | |
| 4737 * window | |
| 4738 */ | |
| 4739 void show_multi_entry_dialog(gpointer data) | |
| 4740 { | |
| 4741 GtkWidget *vbox, *hbox; | |
| 4742 GtkWidget *button; | |
| 4743 MultiEntryDlg *b = data; | |
| 4744 | |
| 4745 GAIM_DIALOG(b->window); | |
| 2969 | 4746 gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
| 4074 | 4747 gtk_window_set_role(GTK_WINDOW(b->window), b->role); |
| 2956 | 4748 gtk_window_set_title(GTK_WINDOW (b->window), b->title); |
| 2969 | 4749 |
| 2956 | 4750 /* Clean up if user dismisses window via window manager! */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4751 g_signal_connect(GTK_OBJECT(b->window), "destroy", G_CALLBACK(b->cancel), (gpointer) b); |
| 2956 | 4752 gtk_widget_realize(b->window); |
| 4753 | |
| 4754 vbox = gtk_vbox_new(FALSE, 5); | |
| 4755 gtk_container_add(GTK_CONTAINER (b->window), vbox); | |
| 4756 | |
| 4757 b->instructions->label = gtk_label_new(NULL); | |
| 4758 gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE); | |
| 4759 gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5); | |
| 4760 re_show_multi_entry_instr(b->instructions); | |
| 4761 | |
| 2975 | 4762 b->entries_frame = gtk_frame_new(b->entries_title); |
| 2956 | 4763 gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5); |
| 4764 gtk_widget_show(b->entries_frame); | |
| 4765 b->entries_table = NULL; | |
| 4766 re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items); | |
| 4767 | |
| 4768 b->texts_obox = gtk_vbox_new(FALSE, 0); | |
| 2969 | 4769 gtk_box_pack_start(GTK_BOX (vbox), b->texts_obox, TRUE, TRUE, 5); |
| 2956 | 4770 gtk_widget_show(b->texts_obox); |
| 4771 b->texts_ibox = NULL; | |
| 4772 re_show_multi_entry_textboxes(&(b->texts_ibox), b->texts_obox, b->multi_text_items); | |
| 4773 | |
| 4774 hbox = gtk_hbox_new(FALSE, 0); | |
| 2969 | 4775 gtk_box_pack_start(GTK_BOX (vbox), hbox, FALSE, FALSE, 5); |
| 2956 | 4776 gtk_widget_show(hbox); |
| 4777 | |
| 4236 | 4778 button = picture_button(b->window, _("Save"), save_xpm); |
| 4779 g_signal_connect(GTK_OBJECT (button), "clicked", | |
| 4780 G_CALLBACK (b->ok), (gpointer) b); | |
| 4781 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); | |
| 4782 gtk_widget_show(button); | |
| 4783 | |
| 2956 | 4784 button = picture_button(b->window, _("Cancel"), cancel_xpm); |
| 2969 | 4785 |
| 2956 | 4786 /* Let "destroy handling" (set above) handle cleanup */ |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4787 g_signal_connect_swapped(GTK_OBJECT (button), "clicked", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4788 G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (b->window)); |
| 2969 | 4789 gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); |
| 2956 | 4790 gtk_widget_show(button); |
| 4791 | |
| 4792 gtk_widget_show(vbox); | |
| 4793 gtk_widget_show(b->window); | |
| 4794 } | |
| 4795 | |
| 4796 | |
| 4797 /*------------------------------------*/ | |
| 4798 /* V-Card dialog specific support */ | |
| 4799 /*------------------------------------*/ | |
| 4800 | |
| 4801 /* | |
| 4802 * V-Card "set info" dialog "Save" clicked | |
| 4803 * | |
| 4804 * Copy data from GTK+ dialogs into GSLists, call protocol-specific | |
| 4805 * formatter and save the user info data. | |
| 4806 */ | |
| 4807 void set_vcard_dialog_ok_clicked(GtkWidget *widget, gpointer data) | |
| 4808 { | |
| 4809 MultiEntryDlg *b = (MultiEntryDlg *) data; | |
| 4810 struct gaim_connection *gc; | |
| 4811 gchar *tmp; | |
| 4812 GSList *list; | |
| 4813 | |
| 4814 for(list = b->multi_entry_items; list != NULL; list = list->next) { | |
| 4815 if(((MultiEntryData *) list->data)->text != NULL) { | |
| 4816 g_free(((MultiEntryData *) list->data)->text); | |
| 4817 } | |
| 4818 ((MultiEntryData *) list->data)->text = | |
| 4819 g_strdup(gtk_entry_get_text(GTK_ENTRY(((MultiEntryData *) list->data)->widget))); | |
| 4820 } | |
| 4821 | |
| 4822 for(list = b->multi_text_items; list != NULL; list = list->next) { | |
| 4823 if(((MultiTextData *) list->data)->text != NULL) { | |
| 4824 g_free(((MultiTextData *) list->data)->text); | |
| 4825 } | |
| 4826 ((MultiTextData *) list->data)->text = | |
| 4635 | 4827 gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE); |
| 2956 | 4828 } |
| 4829 | |
| 4830 | |
| 4831 tmp = b->custom(b); | |
| 4832 | |
| 4833 /* | |
| 4834 * Set the user info and (possibly) send to the server | |
| 4835 */ | |
| 4491 | 4836 if (b->account) { |
| 4837 strncpy(b->account->user_info, tmp, sizeof b->account->user_info); | |
| 4838 gc = b->account->gc; | |
| 2956 | 4839 |
| 4840 save_prefs(); | |
| 4841 | |
| 4842 if (gc) | |
| 4491 | 4843 serv_set_info(gc, b->account->user_info); |
| 2956 | 4844 } |
| 4845 | |
| 4846 g_free(tmp); | |
| 4847 | |
| 4848 /* Let multi-edit dialog window "destroy" event catching handle remaining cleanup */ | |
| 4849 gtk_widget_destroy(GTK_WIDGET (b->window)); | |
| 4850 } | |
| 4851 | |
| 4852 /* | |
| 4853 * Instantiate a v-card dialog | |
| 4854 */ | |
| 4855 void show_set_vcard(MultiEntryDlg *b) | |
| 4856 { | |
| 4857 b->ok = set_vcard_dialog_ok_clicked; | |
| 4858 b->cancel = multi_entry_dialog_destroy; | |
| 4859 | |
| 4860 show_multi_entry_dialog(b); | |
| 4861 } | |
| 4862 | |
| 4863 | |
| 4864 /*------------------------------------------------------------------------*/ | |
| 4865 /* End dialog for setting v-card info */ | |
| 4866 /*------------------------------------------------------------------------*/ | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4867 |
