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