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