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