Fri, 30 May 2003 00:00:48 +0000
[gaim-migrate @ 5955]
More work done... Got some painful stuff to do now.
| 1 | 1 | /* |
| 2 | * gaim | |
| 3 | * | |
| 4 | * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 | * | |
| 6 | * This program is free software; you can redistribute it and/or modify | |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation; either version 2 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program; if not, write to the Free Software | |
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 | * | |
| 20 | */ | |
| 21 | ||
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
22 | #ifdef HAVE_CONFIG_H |
|
2090
bab8b7e309db
[gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2086
diff
changeset
|
23 | #include <config.h> |
|
349
6f7d28b0f98d
[gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
338
diff
changeset
|
24 | #endif |
| 1 | 25 | #include <string.h> |
| 26 | #include <stdio.h> | |
| 27 | #include <stdlib.h> | |
| 28 | #include <sys/types.h> | |
| 29 | #include <sys/stat.h> | |
| 30 | #include <fcntl.h> | |
|
967
15d43188c33c
[gaim-migrate @ 977]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
960
diff
changeset
|
31 | #include <ctype.h> |
| 3630 | 32 | |
| 33 | #ifdef _WIN32 | |
| 34 | #include <winsock.h> | |
| 35 | #else | |
| 1 | 36 | #include <sys/socket.h> |
| 3630 | 37 | #include <time.h> |
| 1 | 38 | #include <netdb.h> |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
39 | #include <netinet/in.h> |
| 1 | 40 | #include <unistd.h> |
| 41 | #include <arpa/inet.h> | |
| 3630 | 42 | #endif |
| 43 | ||
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
44 | #include <errno.h> |
| 3048 | 45 | #include <math.h> |
| 1 | 46 | |
| 47 | #include <gtk/gtk.h> | |
| 48 | #include "gaim.h" | |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
49 | #include "gtkimhtml.h" |
|
1270
a3934ab2b306
[gaim-migrate @ 1280]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1267
diff
changeset
|
50 | #include "prpl.h" |
|
5228
83adaad2deb1
[gaim-migrate @ 5598]
Christian Hammond <chipx86@chipx86.com>
parents:
5213
diff
changeset
|
51 | #include "gtkblist.h" |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
52 | #include "notify.h" |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
53 | #include "prefs.h" |
| 1 | 54 | |
| 3630 | 55 | #ifdef _WIN32 |
| 56 | #include "win32dep.h" | |
| 57 | #endif | |
| 58 | ||
| 1035 | 59 | #define PATHSIZE 1024 |
| 60 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
61 | static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ |
| 1 | 62 | static GList *dialogwindows = NULL; |
|
2493
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
63 | static GtkWidget *importdialog; |
|
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
64 | static struct gaim_connection *importgc; |
| 2344 | 65 | static GtkWidget *icondlg; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
66 | static GtkWidget *alias_dialog = NULL; |
| 1729 | 67 | static GtkWidget *rename_dialog = NULL; |
| 68 | static GtkWidget *rename_bud_dialog = NULL; | |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
69 | |
| 3649 | 70 | |
| 2743 | 71 | struct confirm_del { |
| 72 | GtkWidget *window; | |
| 73 | GtkWidget *label; | |
| 74 | GtkWidget *ok; | |
| 75 | GtkWidget *cancel; | |
| 76 | char name[1024]; | |
| 77 | struct gaim_connection *gc; | |
| 78 | }; | |
| 79 | ||
| 1 | 80 | struct create_away { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
81 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
82 | GtkWidget *entry; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
83 | GtkWidget *text; |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
84 | struct away_message *mess; |
| 1 | 85 | }; |
| 86 | ||
| 87 | struct warning { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
88 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
89 | GtkWidget *anon; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
90 | char *who; |
|
976
553a33f54fe2
[gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
967
diff
changeset
|
91 | struct gaim_connection *gc; |
| 1 | 92 | }; |
| 93 | ||
| 94 | struct addbuddy { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
95 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
96 | GtkWidget *combo; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
97 | GtkWidget *entry; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
98 | GtkWidget *entry_for_alias; |
| 2527 | 99 | GtkWidget *account; |
|
1072
44ae81f8ea2e
[gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1057
diff
changeset
|
100 | struct gaim_connection *gc; |
| 1 | 101 | }; |
| 102 | ||
| 103 | struct addperm { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
104 | GtkWidget *window; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
105 | GtkWidget *entry; |
|
1072
44ae81f8ea2e
[gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1057
diff
changeset
|
106 | struct gaim_connection *gc; |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
107 | gboolean permit; |
| 1 | 108 | }; |
| 109 | ||
| 110 | struct findbyemail { | |
| 111 | GtkWidget *window; | |
| 112 | GtkWidget *emailentry; | |
|
1535
b118fbab0556
[gaim-migrate @ 1545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
113 | struct gaim_connection *gc; |
| 1 | 114 | }; |
| 115 | ||
| 116 | struct findbyinfo { | |
|
2393
cfef0212506b
[gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2382
diff
changeset
|
117 | struct gaim_connection *gc; |
| 1 | 118 | GtkWidget *window; |
| 119 | GtkWidget *firstentry; | |
| 120 | GtkWidget *middleentry; | |
| 121 | GtkWidget *lastentry; | |
| 122 | GtkWidget *maidenentry; | |
| 123 | GtkWidget *cityentry; | |
| 124 | GtkWidget *stateentry; | |
| 125 | GtkWidget *countryentry; | |
| 126 | }; | |
| 127 | ||
| 128 | struct info_dlg { | |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
129 | struct gaim_connection *gc; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
130 | char *who; |
| 1 | 131 | GtkWidget *window; |
| 132 | GtkWidget *text; | |
| 133 | }; | |
| 3197 | 134 | |
| 135 | struct getuserinfo { | |
| 136 | GtkWidget *window; | |
| 137 | GtkWidget *entry; | |
| 138 | GtkWidget *account; | |
| 139 | struct gaim_connection *gc; | |
| 140 | }; | |
| 141 | ||
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
142 | struct alias_dialog_info |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
143 | { |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
144 | GtkWidget *window; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
145 | GtkWidget *name_entry; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
146 | GtkWidget *alias_entry; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
147 | struct buddy *buddy; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
148 | }; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
149 | |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
150 | static GSList *info_dlgs = NULL; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
151 | |
| 5136 | 152 | static struct info_dlg *find_info_dlg(struct gaim_connection *gc, const char *who) |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
153 | { |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
154 | GSList *i = info_dlgs; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
155 | while (i) { |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
156 | struct info_dlg *d = i->data; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
157 | i = i->next; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
158 | if (d->gc != gc) |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
159 | continue; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
160 | if (d->who == NULL) |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
161 | continue; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
162 | if (!who) |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
163 | continue; |
| 4793 | 164 | if (!gaim_utf8_strcasecmp(normalize(who), d->who)) |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
165 | return d; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
166 | } |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
167 | return NULL; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
168 | } |
| 1 | 169 | |
| 170 | struct set_info_dlg { | |
| 171 | GtkWidget *window; | |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
172 | GtkWidget *menu; |
| 4491 | 173 | struct gaim_account *account; |
| 1 | 174 | GtkWidget *text; |
| 175 | GtkWidget *save; | |
| 176 | GtkWidget *cancel; | |
| 177 | }; | |
| 178 | ||
| 2344 | 179 | struct set_icon_dlg { |
| 180 | GtkWidget *window; | |
| 4491 | 181 | struct gaim_account *account; |
| 2344 | 182 | GtkWidget *ok; |
| 183 | GtkWidget *cancel; | |
| 184 | GtkWidget *entry; | |
| 185 | }; | |
| 186 | ||
| 1 | 187 | struct set_dir_dlg { |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
188 | struct gaim_connection *gc; |
| 1 | 189 | GtkWidget *window; |
| 190 | GtkWidget *first; | |
| 191 | GtkWidget *middle; | |
| 192 | GtkWidget *last; | |
| 193 | GtkWidget *maiden; | |
| 194 | GtkWidget *city; | |
| 195 | GtkWidget *state; | |
| 196 | GtkWidget *country; | |
| 197 | GtkWidget *web; | |
| 198 | GtkWidget *cancel; | |
| 199 | GtkWidget *save; | |
| 200 | }; | |
| 201 | ||
| 202 | struct linkdlg { | |
| 203 | GtkWidget *ok; | |
| 204 | GtkWidget *cancel; | |
| 205 | GtkWidget *window; | |
| 206 | GtkWidget *url; | |
| 207 | GtkWidget *text; | |
| 208 | GtkWidget *toggle; | |
| 209 | GtkWidget *entry; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
210 | struct gaim_conversation *c; |
| 1 | 211 | }; |
| 212 | ||
| 146 | 213 | struct passwddlg { |
| 214 | GtkWidget *window; | |
| 215 | GtkWidget *ok; | |
| 216 | GtkWidget *cancel; | |
| 217 | GtkWidget *original; | |
| 218 | GtkWidget *new1; | |
| 219 | GtkWidget *new2; | |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
220 | struct gaim_connection *gc; |
| 146 | 221 | }; |
| 1 | 222 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
223 | struct view_log { |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
224 | long offset; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
225 | int options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
226 | char *name; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
227 | GtkWidget *bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
228 | GtkWidget *window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
229 | GtkWidget *layout; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
230 | }; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
231 | |
| 4119 | 232 | /* Wrapper to get all the text from a GtkTextView */ |
| 233 | gchar* gtk_text_view_get_text(GtkTextView *text, gboolean include_hidden_chars) | |
| 234 | { | |
| 235 | GtkTextBuffer *buffer; | |
| 236 | GtkTextIter start, end; | |
| 237 | ||
| 238 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); | |
| 239 | gtk_text_buffer_get_start_iter(buffer, &start); | |
| 240 | gtk_text_buffer_get_end_iter(buffer, &end); | |
| 241 | ||
| 242 | return gtk_text_buffer_get_text(buffer, &start, &end, include_hidden_chars); | |
| 243 | } | |
| 244 | ||
| 1 | 245 | /*------------------------------------------------------------------------*/ |
| 246 | /* Destroys */ | |
| 247 | /*------------------------------------------------------------------------*/ | |
| 248 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
249 | static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct gaim_conversation *c) |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
250 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
251 | struct gaim_gtk_conversation *gtkconv; |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
252 | gchar *object_data; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
253 | |
| 4635 | 254 | object_data = g_object_get_data(G_OBJECT(w), "dialog_type"); |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
255 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
256 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
257 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
258 | if (GTK_IS_COLOR_SELECTION_DIALOG(w)) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
259 | if (w == gtkconv->dialogs.fg_color) { |
| 4635 | 260 | gtk_toggle_button_set_active( |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
261 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
262 | gtkconv->dialogs.fg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
263 | } else { |
| 4635 | 264 | gtk_toggle_button_set_active( |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
265 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
266 | gtkconv->dialogs.bg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
267 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
268 | } else if (GTK_IS_FONT_SELECTION_DIALOG(w)) { |
| 4635 | 269 | gtk_toggle_button_set_active( |
| 4685 | 270 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
271 | gtkconv->dialogs.font = NULL; |
| 4793 | 272 | } else if (!g_ascii_strcasecmp(object_data, "smiley dialog")) { |
| 4635 | 273 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
274 | FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
275 | gtkconv->dialogs.smiley = NULL; |
| 4793 | 276 | } else if (!g_ascii_strcasecmp(object_data, "log dialog")) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
277 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
278 | FALSE); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
279 | gtkconv->dialogs.log = NULL; |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
280 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
281 | |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
282 | dialogwindows = g_list_remove(dialogwindows, w); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
283 | gtk_widget_destroy(w); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
284 | |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
285 | return FALSE; |
|
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
286 | } |
| 1 | 287 | |
| 288 | static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 289 | { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
290 | GtkWidget *dest; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
291 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
292 | if (!GTK_IS_WIDGET(w2)) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
293 | dest = w; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
294 | else |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
295 | dest = w2; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
296 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
297 | if (dest == imdialog) |
| 1 | 298 | imdialog = NULL; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
299 | else if (dest == importdialog) { |
| 1 | 300 | importdialog = NULL; |
|
2493
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
301 | importgc = NULL; |
|
ec90aa48cd51
[gaim-migrate @ 2506]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2472
diff
changeset
|
302 | } |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
303 | else if (dest == icondlg) |
| 2344 | 304 | icondlg = NULL; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
305 | else if (dest == rename_dialog) |
| 1729 | 306 | rename_dialog = NULL; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
307 | else if (dest == rename_bud_dialog) |
| 1729 | 308 | rename_bud_dialog = NULL; |
| 309 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
310 | dialogwindows = g_list_remove(dialogwindows, dest); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
311 | gtk_widget_destroy(dest); |
| 1 | 312 | } |
| 313 | ||
| 314 | ||
| 315 | void destroy_all_dialogs() | |
| 316 | { | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
317 | while (dialogwindows) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
318 | destroy_dialog(NULL, dialogwindows->data); |
| 1 | 319 | |
|
391
677e4414a83f
[gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
350
diff
changeset
|
320 | if (awaymessage) |
|
677e4414a83f
[gaim-migrate @ 401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
350
diff
changeset
|
321 | do_im_back(NULL, NULL); |
|
84
419c24cfe582
[gaim-migrate @ 94]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
79
diff
changeset
|
322 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
323 | if (imdialog) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
324 | destroy_dialog(NULL, imdialog); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
325 | imdialog = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
326 | } |
| 935 | 327 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
328 | if (importdialog) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
329 | destroy_dialog(NULL, importdialog); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
330 | importdialog = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
331 | } |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
332 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
333 | if (icondlg) { |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
334 | destroy_dialog(NULL, icondlg); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
335 | icondlg = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
336 | } |
| 1 | 337 | } |
| 338 | ||
| 3757 | 339 | static void do_warn(GtkWidget *widget, gint resp, struct warning *w) |
| 1 | 340 | { |
| 3757 | 341 | if (resp == GTK_RESPONSE_OK) |
| 342 | serv_warn(w->gc, w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? 1 : 0); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
343 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
344 | destroy_dialog(NULL, w->window); |
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
345 | g_free(w); |
|
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
346 | } |
| 1 | 347 | |
|
976
553a33f54fe2
[gaim-migrate @ 986]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
967
diff
changeset
|
348 | void show_warn_dialog(struct gaim_connection *gc, char *who) |
| 1 | 349 | { |
| 3757 | 350 | char *labeltext; |
| 351 | GtkWidget *hbox, *vbox; | |
| 1 | 352 | GtkWidget *label; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
353 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
354 | struct gaim_conversation *c = gaim_find_conversation(who); |
| 441 | 355 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
356 | struct warning *w = g_new0(struct warning, 1); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
357 | w->who = who; |
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
358 | w->gc = gc; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
359 | |
| 3757 | 360 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 361 | ||
| 5092 | 362 | 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 | 363 | gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); |
| 3757 | 364 | g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(do_warn), w); |
| 365 | ||
| 366 | gtk_container_set_border_width (GTK_CONTAINER(w->window), 6); | |
| 367 | gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
| 368 | gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
| 369 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), 12); | |
| 370 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), 6); | |
| 371 | ||
| 372 | hbox = gtk_hbox_new(FALSE, 12); | |
| 373 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
| 374 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 375 | ||
| 376 | vbox = gtk_vbox_new(FALSE, 0); | |
| 377 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 378 | labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
| 379 | "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
| 380 | label = gtk_label_new(NULL); | |
| 381 | gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 382 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 383 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 384 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 385 | g_free(labeltext); | |
| 386 | ||
| 387 | w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
| 388 | gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
| 389 | ||
| 390 | hbox = gtk_hbox_new(FALSE, 6); | |
| 391 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 392 | img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
| 393 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 394 | labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
| 395 | /* labeltext = _("Anonymous warnings are less severe."); */ | |
| 396 | label = gtk_label_new(NULL); | |
| 397 | gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 398 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 399 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 400 | ||
|
1288
cf2e4986d032
[gaim-migrate @ 1298]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1272
diff
changeset
|
401 | dialogwindows = g_list_prepend(dialogwindows, w->window); |
| 3757 | 402 | gtk_widget_show_all(w->window); |
| 1 | 403 | } |
| 404 | ||
| 5234 | 405 | void do_remove_chat(struct chat *chat) |
| 406 | { | |
| 407 | gaim_blist_remove_chat(chat); | |
| 408 | gaim_blist_save(); | |
| 409 | } | |
| 410 | ||
| 3753 | 411 | void do_remove_buddy(struct buddy *b) |
| 2743 | 412 | { |
|
4918
0600d084c97a
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
413 | struct group *g; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
414 | struct gaim_conversation *c; |
|
4918
0600d084c97a
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
415 | gchar *name; |
| 2743 | 416 | |
| 417 | if (!b) | |
| 418 | return; | |
| 419 | ||
| 4687 | 420 | g = gaim_find_buddys_group(b); |
|
4918
0600d084c97a
[gaim-migrate @ 5252]
Christian Hammond <chipx86@chipx86.com>
parents:
4916
diff
changeset
|
421 | name = g_strdup(b->name); /* b->name is null after remove_buddy */ |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
422 | |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
423 | gaim_debug(GAIM_DEBUG_INFO, "blist", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
424 | "Removing '%s' from buddy list.\n", b->name); |
| 4491 | 425 | serv_remove_buddy(b->account->gc, name, g->name); |
| 4687 | 426 | gaim_blist_remove_buddy(b); |
| 4349 | 427 | gaim_blist_save(); |
| 2743 | 428 | |
| 4397 | 429 | c = gaim_find_conversation(name); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
430 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
431 | if (c != NULL) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
432 | gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); |
| 4397 | 433 | |
| 434 | g_free(name); | |
| 2743 | 435 | } |
| 436 | ||
| 4916 | 437 | void do_remove_group(struct group *g) |
| 438 | { | |
| 439 | GaimBlistNode *b = ((GaimBlistNode*)g)->child; | |
| 440 | while (b) { | |
| 5234 | 441 | if(GAIM_BLIST_NODE_IS_BUDDY(b)) { |
| 442 | struct buddy *bd = (struct buddy *)b; | |
| 443 | struct gaim_conversation *c = gaim_find_conversation(bd->name); | |
| 444 | if(bd->account->gc) { | |
| 445 | serv_remove_buddy(bd->account->gc, bd->name, g->name); | |
| 446 | gaim_blist_remove_buddy(bd); | |
| 447 | ||
| 448 | if (c != NULL) | |
| 449 | gaim_conversation_update(c, GAIM_CONV_UPDATE_REMOVE); | |
| 450 | } | |
| 4938 | 451 | } |
| 4916 | 452 | b = b->next; |
| 453 | } | |
| 454 | gaim_blist_remove_group(g); | |
| 455 | gaim_blist_save(); | |
| 456 | } | |
| 457 | ||
| 2743 | 458 | void show_confirm_del(struct gaim_connection *gc, gchar *name) |
| 459 | { | |
| 4687 | 460 | struct buddy *bd = gaim_find_buddy(gc->account, name); |
| 3753 | 461 | char *text; |
| 462 | if (!bd) | |
| 463 | return; | |
| 464 | ||
|
4309
13f53e2bb70a
[gaim-migrate @ 4563]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4308
diff
changeset
|
465 | text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), name); |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
466 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
467 | gaim_request_action(NULL, NULL, _("Remove Buddy"), text, -1, bd, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
468 | _("Remove Buddy"), G_CALLBACK(do_remove_buddy), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
469 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
470 | |
| 3753 | 471 | g_free(text); |
| 2743 | 472 | } |
| 473 | ||
| 5234 | 474 | void show_confirm_del_chat(struct chat *chat) |
| 475 | { | |
| 476 | 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
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
477 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
478 | gaim_request_action(NULL, NULL, _("Remove Chat"), text, -1, chat, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
479 | _("Remove Chat"), G_CALLBACK(do_remove_chat), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
480 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
481 | |
| 5234 | 482 | g_free(text); |
| 483 | } | |
| 484 | ||
| 4916 | 485 | void show_confirm_del_group(struct group *g) |
| 486 | { | |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
487 | 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 | 488 | g->name); |
|
5498
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
489 | |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
490 | gaim_request_action(NULL, NULL, _("Remove Group"), text, -1, g, 2, |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
491 | _("Remove Group"), G_CALLBACK(do_remove_group), |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
492 | _("Cancel"), NULL); |
|
01eec144d71b
[gaim-migrate @ 5894]
Christian Hammond <chipx86@chipx86.com>
parents:
5436
diff
changeset
|
493 | |
| 4916 | 494 | g_free(text); |
| 495 | } | |
| 1 | 496 | |
| 497 | /*------------------------------------------------------------------------*/ | |
| 498 | /* The dialog for getting an error */ | |
| 499 | /*------------------------------------------------------------------------*/ | |
| 3816 | 500 | static void do_im(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 1 | 501 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
502 | const char *who; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
503 | struct gaim_conversation *conv; |
| 4491 | 504 | struct gaim_account *account; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
505 | |
| 3802 | 506 | if (resp == GTK_RESPONSE_OK) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
507 | who = gtk_entry_get_text(GTK_ENTRY(info->entry)); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
508 | |
| 4613 | 509 | if (!who || !*who) { |
| 510 | /* this shouldn't ever happen */ | |
| 3802 | 511 | return; |
| 512 | } | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
513 | |
| 4491 | 514 | account = (info->gc ? info->gc->account : NULL); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
515 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
516 | conv = gaim_find_conversation(who); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
517 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
518 | if (conv == NULL) |
| 4491 | 519 | conv = gaim_conversation_new(GAIM_CONV_IM, account, who); |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
520 | else { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
521 | gaim_window_raise(gaim_conversation_get_window(conv)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
522 | |
| 4491 | 523 | if (account) |
| 524 | gaim_conversation_set_account(conv, account); | |
|
4476
bf88170ba269
[gaim-migrate @ 4751]
Christian Hammond <chipx86@chipx86.com>
parents:
4472
diff
changeset
|
525 | } |
| 1 | 526 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
527 | |
| 3816 | 528 | destroy_dialog(NULL, imdialog); |
| 529 | imdialog = NULL; | |
| 4138 | 530 | g_free(info); |
| 1 | 531 | } |
| 532 | ||
| 3802 | 533 | static void do_info(GtkWidget *widget, int resp, struct getuserinfo *info) |
| 935 | 534 | { |
| 535 | char *who; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
536 | |
| 3802 | 537 | if (resp == GTK_RESPONSE_OK) { |
| 538 | who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(info->entry)))); | |
| 539 | ||
| 4793 | 540 | if (!g_ascii_strcasecmp(who, "")) { |
| 3802 | 541 | g_free(who); |
| 542 | return; | |
| 543 | } | |
| 544 | ||
| 545 | /* what do we want to do about this case? */ | |
| 546 | if (info->gc) | |
| 547 | serv_get_info(info->gc, who); | |
| 1729 | 548 | g_free(who); |
| 935 | 549 | } |
| 3802 | 550 | gtk_widget_destroy(GTK_WIDGET(widget)); |
| 4138 | 551 | g_free(info); |
| 935 | 552 | } |
| 553 | ||
| 1 | 554 | void show_ee_dialog(int ee) |
| 555 | { | |
| 3767 | 556 | GtkWidget *window; |
| 557 | GtkWidget *hbox; | |
| 1 | 558 | GtkWidget *label; |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
559 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
560 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_COOL, GTK_ICON_SIZE_DIALOG); |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
561 | |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
562 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
563 | |
| 3767 | 564 | label = gtk_label_new(NULL); |
| 1 | 565 | if (ee == 0) |
| 3767 | 566 | gtk_label_set_markup(GTK_LABEL(label), |
| 567 | "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); | |
| 1 | 568 | else if (ee == 1) |
| 3767 | 569 | gtk_label_set_markup(GTK_LABEL(label), |
| 570 | "<span weight=\"bold\" size=\"large\" foreground=\"#1f6bad\">Pimpin\' Penguin Style! *Waddle Waddle*</span>"); | |
|
338
21c93bc7ae83
[gaim-migrate @ 348]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
337
diff
changeset
|
571 | else if (ee == 2) |
| 3767 | 572 | gtk_label_set_markup(GTK_LABEL(label), |
| 573 | "<span weight=\"bold\" size=\"large\" foreground=\"blue\">You should be me. I'm so cute!</span>"); | |
| 2472 | 574 | else if (ee == 3) |
| 3767 | 575 | gtk_label_set_markup(GTK_LABEL(label), |
| 576 | "<span weight=\"bold\" size=\"large\" foreground=\"orange\">Now that's what I like!</span>"); | |
| 2993 | 577 | else if (ee == 4) |
| 3767 | 578 | gtk_label_set_markup(GTK_LABEL(label), |
| 579 | "<span weight=\"bold\" size=\"large\" foreground=\"brown\">Ahh, and excellent choice!</span>"); | |
| 3043 | 580 | else if (ee == 5) |
| 3767 | 581 | gtk_label_set_markup(GTK_LABEL(label), |
| 582 | "<span weight=\"bold\" size=\"large\" foreground=\"#009900\">Everytime you click my name, an angel gets its wings.</span>"); | |
| 3152 | 583 | else if (ee == 6) |
| 3767 | 584 | gtk_label_set_markup(GTK_LABEL(label), |
| 585 | "<span weight=\"bold\" size=\"large\" foreground=\"red\">This sunflower seed taste like pizza.</span>"); | |
| 3508 | 586 | else if (ee == 7) |
| 3767 | 587 | gtk_label_set_markup(GTK_LABEL(label), |
| 588 | "<span weight=\"bold\" size=\"large\" foreground=\"#6364B1\">Hey! I was in that tumbleweed!</span>"); | |
| 3508 | 589 | else |
| 3767 | 590 | gtk_label_set_markup(GTK_LABEL(label), |
| 591 | "<span weight=\"bold\" size=\"large\" foreground=\"gray\">I'm not anything.</span>"); | |
| 592 | ||
| 5092 | 593 | window = gtk_dialog_new_with_buttons("", GTK_WINDOW(gtkblist->window), 0, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 3767 | 594 | gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); |
| 595 | g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(gtk_widget_destroy), NULL); | |
| 3152 | 596 | |
| 3767 | 597 | gtk_container_set_border_width (GTK_CONTAINER(window), 6); |
| 598 | gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 599 | gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 600 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 601 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 602 | ||
| 603 | hbox = gtk_hbox_new(FALSE, 12); | |
| 604 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 605 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 606 | ||
| 607 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 608 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 609 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 610 | |
| 3767 | 611 | gtk_widget_show_all(window); |
| 1 | 612 | } |
| 613 | ||
| 4635 | 614 | void show_info_select_account(GObject *w, struct gaim_connection *gc) |
| 3816 | 615 | { |
| 4635 | 616 | struct getuserinfo *info = g_object_get_data(w, "getuserinfo"); |
| 3816 | 617 | info->gc = gc; |
| 618 | } | |
| 619 | ||
| 4614 | 620 | static void dialog_set_ok_sensitive(GtkWidget *entry, GtkWidget *dlg) { |
| 4613 | 621 | const char *txt = gtk_entry_get_text(GTK_ENTRY(entry)); |
| 4614 | 622 | gtk_dialog_set_response_sensitive(GTK_DIALOG(dlg), GTK_RESPONSE_OK, |
| 4613 | 623 | (*txt != '\0')); |
| 624 | } | |
| 625 | ||
| 935 | 626 | void show_im_dialog() |
| 1 | 627 | { |
| 3802 | 628 | GtkWidget *hbox, *vbox; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
629 | GtkWidget *label; |
| 3816 | 630 | GtkWidget *table, *menu, *opt; |
| 631 | GSList *g = connections; | |
| 632 | struct gaim_connection *c; | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
633 | struct gaim_gtk_buddy_list *gtkblist; |
| 3816 | 634 | char buf[256]; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
635 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 3816 | 636 | struct getuserinfo *info = NULL; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
637 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
638 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
639 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
640 | if (!imdialog) { |
| 3816 | 641 | info = g_new0(struct getuserinfo, 1); |
| 642 | info->gc = connections->data; | |
| 5092 | 643 | imdialog = gtk_dialog_new_with_buttons(_("New Message"), gtkblist ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 3802 | 644 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 645 | gtk_dialog_set_default_response (GTK_DIALOG(imdialog), GTK_RESPONSE_OK); | |
| 646 | gtk_container_set_border_width (GTK_CONTAINER(imdialog), 6); | |
| 647 | gtk_window_set_resizable(GTK_WINDOW(imdialog), FALSE); | |
| 648 | gtk_dialog_set_has_separator(GTK_DIALOG(imdialog), FALSE); | |
| 649 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(imdialog)->vbox), 12); | |
| 650 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), 6); | |
| 4613 | 651 | gtk_dialog_set_response_sensitive(GTK_DIALOG(imdialog), GTK_RESPONSE_OK, FALSE); |
| 652 | ||
| 3802 | 653 | hbox = gtk_hbox_new(FALSE, 12); |
| 654 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(imdialog)->vbox), hbox); | |
| 655 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 656 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 657 | ||
| 658 | vbox = gtk_vbox_new(FALSE, 0); | |
| 659 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4613 | 660 | |
| 3802 | 661 | label = gtk_label_new(_("Please enter the screenname of the person you would like to IM.\n")); |
| 3825 | 662 | gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
| 3802 | 663 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 664 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 665 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4613 | 666 | |
| 3802 | 667 | hbox = gtk_hbox_new(FALSE, 6); |
| 668 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4613 | 669 | |
| 3816 | 670 | table = gtk_table_new(2, 2, FALSE); |
| 671 | gtk_table_set_row_spacings(GTK_TABLE(table), 6); | |
| 672 | gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 673 | gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 674 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 4613 | 675 | |
| 3802 | 676 | label = gtk_label_new(NULL); |
| 3816 | 677 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); |
| 3823 | 678 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 3816 | 679 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 680 | ||
| 681 | info->entry = gtk_entry_new(); | |
| 682 | gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 683 | gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); | |
| 684 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4613 | 685 | g_signal_connect(G_OBJECT(info->entry), "changed", |
| 4614 | 686 | G_CALLBACK(dialog_set_ok_sensitive), imdialog); |
| 3816 | 687 | |
| 688 | if (connections->next) { | |
| 689 | ||
| 690 | label = gtk_label_new(NULL); | |
| 691 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 692 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); | |
| 693 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4613 | 694 | |
| 3816 | 695 | info->account = gtk_option_menu_new(); |
| 696 | gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 697 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); | |
| 4613 | 698 | |
| 3816 | 699 | menu = gtk_menu_new(); |
| 4613 | 700 | |
| 3816 | 701 | while (g) { |
| 702 | c = (struct gaim_connection *)g->data; | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
703 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
704 | if (!GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->send_im) { |
| 3816 | 705 | g = g->next; |
| 706 | continue; | |
| 707 | } | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
708 | g_snprintf(buf, sizeof(buf), "%s (%s)", |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
709 | c->username, c->prpl->info->name); |
| 3816 | 710 | opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 711 | g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 4613 | 712 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
713 | g_signal_connect(G_OBJECT(opt), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
714 | G_CALLBACK(show_info_select_account), c); |
| 4613 | 715 | |
| 4635 | 716 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3816 | 717 | g = g->next; |
| 718 | } | |
| 4613 | 719 | |
| 3816 | 720 | gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); |
| 721 | } | |
| 4613 | 722 | |
| 3816 | 723 | g_signal_connect(G_OBJECT(imdialog), "response", G_CALLBACK(do_im), info); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
724 | } |
| 4613 | 725 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
726 | gtk_widget_show_all(imdialog); |
| 3816 | 727 | if (info) |
| 728 | gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 3197 | 729 | } |
| 730 | ||
| 935 | 731 | void show_info_dialog() |
| 732 | { | |
| 3802 | 733 | GtkWidget *window, *hbox, *vbox; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
734 | GtkWidget *label; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
735 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 3802 | 736 | GtkWidget *table, *menu, *opt; |
| 3197 | 737 | GSList *g = connections; |
| 738 | struct gaim_connection *c; | |
| 739 | struct getuserinfo *info = g_new0(struct getuserinfo, 1); | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
740 | struct gaim_gtk_buddy_list *gtkblist; |
| 3802 | 741 | char buf[256]; |
| 742 | ||
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
743 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
744 | |
| 3197 | 745 | info->gc = connections->data; |
| 746 | ||
| 5092 | 747 | window = gtk_dialog_new_with_buttons(_("Get User Info"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 3802 | 748 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 749 | gtk_dialog_set_default_response (GTK_DIALOG(window), GTK_RESPONSE_OK); | |
| 750 | gtk_container_set_border_width (GTK_CONTAINER(window), 6); | |
| 751 | gtk_window_set_resizable(GTK_WINDOW(window), FALSE); | |
| 752 | gtk_dialog_set_has_separator(GTK_DIALOG(window), FALSE); | |
| 753 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(window)->vbox), 12); | |
| 754 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(window)->vbox), 6); | |
| 4614 | 755 | |
| 3802 | 756 | hbox = gtk_hbox_new(FALSE, 12); |
| 757 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(window)->vbox), hbox); | |
| 758 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 759 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4614 | 760 | gtk_dialog_set_response_sensitive(GTK_DIALOG(window), GTK_RESPONSE_OK, |
| 761 | FALSE); | |
| 762 | ||
| 3802 | 763 | vbox = gtk_vbox_new(FALSE, 0); |
| 764 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 765 | ||
| 766 | label = gtk_label_new(_("Please enter the screenname of the person whose info you would like to view.\n")); | |
| 767 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 768 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 769 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 770 | ||
| 3197 | 771 | table = gtk_table_new(2, 2, FALSE); |
| 3802 | 772 | gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
| 773 | gtk_table_set_col_spacings(GTK_TABLE(table), 6); | |
| 774 | gtk_container_set_border_width(GTK_CONTAINER(table), 12); | |
| 775 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 776 | ||
| 777 | label = gtk_label_new(NULL); | |
| 778 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); | |
| 3822 | 779 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 3197 | 780 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 781 | ||
| 782 | info->entry = gtk_entry_new(); | |
| 783 | gtk_table_attach_defaults(GTK_TABLE(table), info->entry, 1, 2, 0, 1); | |
| 3802 | 784 | gtk_entry_set_activates_default (GTK_ENTRY(info->entry), TRUE); |
| 785 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->entry)); | |
| 4614 | 786 | |
| 787 | g_signal_connect(G_OBJECT(info->entry), "changed", | |
| 788 | G_CALLBACK(dialog_set_ok_sensitive), window); | |
| 3802 | 789 | |
| 3197 | 790 | if (connections->next) { |
| 791 | ||
| 3802 | 792 | label = gtk_label_new(NULL); |
| 3197 | 793 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
| 3802 | 794 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Account:")); |
| 795 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1225 | 796 | |
| 3197 | 797 | info->account = gtk_option_menu_new(); |
| 798 | gtk_table_attach_defaults(GTK_TABLE(table), info->account, 1, 2, 1, 2); | |
| 3802 | 799 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(info->account)); |
| 800 | ||
| 3197 | 801 | menu = gtk_menu_new(); |
| 802 | ||
| 803 | while (g) { | |
| 804 | c = (struct gaim_connection *)g->data; | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
805 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
806 | if (!GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->get_info) { |
| 3802 | 807 | g = g->next; |
| 808 | continue; | |
| 809 | } | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
810 | g_snprintf(buf, sizeof(buf), "%s (%s)", |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
811 | c->username, c->prpl->info->name); |
| 3197 | 812 | opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 813 | g_object_set_data(G_OBJECT(opt), "getuserinfo", info); |
| 3197 | 814 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
815 | g_signal_connect(G_OBJECT(opt), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
816 | G_CALLBACK(show_info_select_account), c); |
| 3197 | 817 | |
| 4635 | 818 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3197 | 819 | g = g->next; |
| 820 | } | |
| 3802 | 821 | |
| 3197 | 822 | gtk_option_menu_set_menu(GTK_OPTION_MENU(info->account), menu); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
823 | } |
| 3197 | 824 | |
| 3802 | 825 | g_signal_connect(G_OBJECT(window), "response", G_CALLBACK(do_info), info); |
| 826 | ||
| 827 | ||
| 828 | gtk_widget_show_all(window); | |
| 829 | if (info->entry) | |
| 830 | gtk_widget_grab_focus(GTK_WIDGET(info->entry)); | |
| 935 | 831 | } |
| 832 | ||
| 1 | 833 | |
| 834 | /*------------------------------------------------------------------------*/ | |
| 835 | /* The dialog for adding buddies */ | |
| 836 | /*------------------------------------------------------------------------*/ | |
| 837 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
838 | extern void add_callback(GtkWidget *, struct gaim_conversation *); |
|
654
4f0d54fe61b3
[gaim-migrate @ 664]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
653
diff
changeset
|
839 | |
| 4180 | 840 | void do_add_buddy(GtkWidget *w, int resp, struct addbuddy *a) |
| 1 | 841 | { |
| 3466 | 842 | const char *grp, *who, *whoalias; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
843 | struct gaim_conversation *c; |
| 4687 | 844 | struct buddy *b; |
| 845 | struct group *g; | |
| 4769 | 846 | void *icon_data; |
| 847 | void *icon_data2; | |
| 848 | int icon_len; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
849 | |
| 4180 | 850 | if (resp == GTK_RESPONSE_OK) { |
| 851 | ||
| 852 | who = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 853 | grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); | |
| 854 | whoalias = gtk_entry_get_text(GTK_ENTRY(a->entry_for_alias)); | |
| 855 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
856 | c = gaim_find_conversation(who); |
|
4775
239cb803fb1d
[gaim-migrate @ 5095]
Mark Doliner <markdoliner@pidgin.im>
parents:
4774
diff
changeset
|
857 | if (!(g = gaim_find_group(grp))) { |
| 4687 | 858 | g = gaim_group_new(grp); |
|
4775
239cb803fb1d
[gaim-migrate @ 5095]
Mark Doliner <markdoliner@pidgin.im>
parents:
4774
diff
changeset
|
859 | gaim_blist_add_group(g, NULL); |
|
239cb803fb1d
[gaim-migrate @ 5095]
Mark Doliner <markdoliner@pidgin.im>
parents:
4774
diff
changeset
|
860 | } |
| 4687 | 861 | b = gaim_buddy_new(a->gc->account, who, whoalias); |
| 862 | gaim_blist_add_buddy(b, g, NULL); | |
| 4180 | 863 | serv_add_buddy(a->gc, who); |
| 864 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
865 | if (c != NULL) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
866 | gaim_conversation_update(c, GAIM_CONV_UPDATE_ADD); |
| 4180 | 867 | |
| 4769 | 868 | icon_data = get_icon_data(a->gc, normalize(who), &icon_len); |
| 869 | ||
| 870 | if(icon_data) { | |
| 871 | icon_data2 = g_memdup(icon_data, icon_len); | |
| 872 | set_icon_data(a->gc, who, icon_data2, icon_len); | |
| 873 | g_free(icon_data2); | |
| 874 | } | |
| 875 | ||
| 4349 | 876 | gaim_blist_save(); |
|
654
4f0d54fe61b3
[gaim-migrate @ 664]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
653
diff
changeset
|
877 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
878 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
879 | destroy_dialog(NULL, a->window); |
| 1 | 880 | } |
| 881 | ||
| 3819 | 882 | void do_add_group(GtkWidget *w, int resp, struct addbuddy *a) |
|
577
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
883 | { |
| 3466 | 884 | const char *grp; |
| 4687 | 885 | struct group *g; |
| 4349 | 886 | |
| 3819 | 887 | if (resp == GTK_RESPONSE_OK) { |
| 888 | grp = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 889 | ||
| 890 | if (!a->gc) | |
| 891 | a->gc = connections->data; | |
| 892 | ||
| 4687 | 893 | g = gaim_group_new(grp); |
| 894 | gaim_blist_add_group (g, NULL); | |
| 4349 | 895 | gaim_blist_save(); |
| 3819 | 896 | } |
|
577
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
897 | |
|
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
898 | destroy_dialog(NULL, a->window); |
|
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
899 | } |
|
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
900 | |
| 1 | 901 | |
|
4978
a9b21b98aa1f
[gaim-migrate @ 5313]
Robert McQueen <robot101@debian.org>
parents:
4977
diff
changeset
|
902 | static GList *groups_tree() |
| 1 | 903 | { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
904 | GList *tmp = NULL; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
905 | char *tmp2; |
| 1 | 906 | struct group *g; |
| 4785 | 907 | |
| 908 | GaimBlistNode *gnode = gaim_get_blist()->root; | |
| 909 | ||
| 910 | if (!gnode) { | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
911 | tmp2 = g_strdup(_("Buddies")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
912 | tmp = g_list_append(tmp, tmp2); |
| 1 | 913 | } else { |
| 4785 | 914 | while (gnode) { |
| 915 | if(GAIM_BLIST_NODE_IS_GROUP(gnode)) { | |
| 916 | g = (struct group *)gnode; | |
| 917 | tmp2 = g->name; | |
| 918 | tmp = g_list_append(tmp, tmp2); | |
| 919 | } | |
| 920 | gnode = gnode->next; | |
| 1 | 921 | } |
| 922 | } | |
| 923 | return tmp; | |
| 924 | } | |
| 925 | ||
|
825
9b5ab1384013
[gaim-migrate @ 835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
926 | static void free_dialog(GtkWidget *w, struct addbuddy *a) |
|
9b5ab1384013
[gaim-migrate @ 835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
927 | { |
|
9b5ab1384013
[gaim-migrate @ 835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
928 | g_free(a); |
|
9b5ab1384013
[gaim-migrate @ 835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
929 | } |
|
9b5ab1384013
[gaim-migrate @ 835]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
804
diff
changeset
|
930 | |
| 1 | 931 | |
|
1072
44ae81f8ea2e
[gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1057
diff
changeset
|
932 | void show_add_group(struct gaim_connection *gc) |
|
577
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
933 | { |
| 3819 | 934 | |
| 935 | GtkWidget *hbox, *vbox; | |
|
577
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
936 | GtkWidget *label; |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
937 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
938 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
939 | struct addbuddy *a = g_new0(struct addbuddy, 1); |
| 4138 | 940 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
941 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
942 | |
|
1072
44ae81f8ea2e
[gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1057
diff
changeset
|
943 | a->gc = gc; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
944 | |
| 5092 | 945 | a->window = gtk_dialog_new_with_buttons(_("Add Group"), GTK_WINDOW(gtkblist->window), 0, |
| 3819 | 946 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
| 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); | |
| 953 | ||
| 954 | hbox = gtk_hbox_new(FALSE, 12); | |
| 955 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 956 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 957 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 958 | ||
| 959 | vbox = gtk_vbox_new(FALSE, 0); | |
| 960 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 961 | ||
| 962 | label = gtk_label_new(_("Please enter the name of the group to be added.\n")); | |
| 963 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 964 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 965 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 966 | ||
| 967 | hbox = gtk_hbox_new(FALSE, 6); | |
| 968 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 969 | ||
| 970 | label = gtk_label_new(NULL); | |
| 971 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 972 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 973 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
974 | a->entry = gtk_entry_new(); |
| 3819 | 975 | gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); |
| 976 | gtk_box_pack_start(GTK_BOX(hbox), a->entry, FALSE, FALSE, 0); | |
| 977 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(a->entry)); | |
| 978 | ||
| 979 | g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_group), a); | |
| 980 | ||
| 981 | gtk_widget_show_all(a->window); | |
| 982 | gtk_widget_grab_focus(GTK_WIDGET(a->entry)); | |
|
577
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
983 | } |
|
0e317d0cfc2c
[gaim-migrate @ 587]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
570
diff
changeset
|
984 | |
| 4635 | 985 | static void addbuddy_select_account(GObject *w, struct gaim_connection *gc) |
| 2527 | 986 | { |
| 4635 | 987 | struct addbuddy *b = g_object_get_data(w, "addbuddy"); |
| 2527 | 988 | |
| 2561 | 989 | /* Save our account */ |
| 2527 | 990 | b->gc = gc; |
| 991 | } | |
| 992 | ||
| 993 | static void create_online_user_names(struct addbuddy *b) | |
| 994 | { | |
| 995 | char buf[2048]; /* Never hurts to be safe ;-) */ | |
| 996 | GSList *g = connections; | |
| 997 | struct gaim_connection *c; | |
| 998 | GtkWidget *menu, *opt; | |
| 999 | int count = 0; | |
| 1000 | int place = 0; | |
| 1001 | ||
| 1002 | menu = gtk_menu_new(); | |
| 1003 | ||
| 1004 | while (g) { | |
| 1005 | c = (struct gaim_connection *)g->data; | |
| 1006 | g_snprintf(buf, sizeof(buf), "%s (%s)", | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1007 | c->username, c->prpl->info->name); |
| 2527 | 1008 | opt = gtk_menu_item_new_with_label(buf); |
| 4635 | 1009 | g_object_set_data(G_OBJECT(opt), "addbuddy", b); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1010 | g_signal_connect(G_OBJECT(opt), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
1011 | G_CALLBACK(addbuddy_select_account), |
| 2527 | 1012 | c); |
| 1013 | gtk_widget_show(opt); | |
| 4635 | 1014 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 2527 | 1015 | |
| 1016 | /* Now check to see if it's our current menu */ | |
| 1017 | if (c == b->gc) { | |
| 1018 | place = count; | |
| 1019 | gtk_menu_item_activate(GTK_MENU_ITEM(opt)); | |
| 1020 | gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), count); | |
| 1021 | ||
| 1022 | /* Do the cha cha cha */ | |
| 1023 | } | |
| 1024 | ||
| 1025 | count++; | |
| 1026 | ||
| 1027 | g = g->next; | |
| 1028 | } | |
| 1029 | ||
| 1030 | gtk_option_menu_remove_menu(GTK_OPTION_MENU(b->account)); | |
| 1031 | gtk_option_menu_set_menu(GTK_OPTION_MENU(b->account), menu); | |
| 1032 | gtk_option_menu_set_history(GTK_OPTION_MENU(b->account), place); | |
| 1033 | ||
| 1034 | gtk_widget_show(b->account); | |
| 1035 | gtk_widget_show(b->account->parent); | |
| 1036 | ||
| 1037 | } | |
| 1038 | ||
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2572
diff
changeset
|
1039 | void show_add_buddy(struct gaim_connection *gc, char *buddy, char *group, char *alias) |
| 1 | 1040 | { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1041 | GtkWidget *table; |
| 1 | 1042 | GtkWidget *label; |
| 4180 | 1043 | GtkWidget *hbox; |
| 1044 | GtkWidget *vbox; | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1045 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
1046 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1047 | struct addbuddy *a = g_new0(struct addbuddy, 1); |
|
2598
2c9b82785013
[gaim-migrate @ 2611]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2582
diff
changeset
|
1048 | a->gc = gc ? gc : connections->data; |
| 1210 | 1049 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1050 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1051 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
1052 | GAIM_DIALOG(a->window); |
| 5092 | 1053 | a->window = gtk_dialog_new_with_buttons(_("Add Buddy"), gtkblist->window ? GTK_WINDOW(gtkblist->window) : NULL, 0, |
| 4180 | 1054 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_ADD, GTK_RESPONSE_OK, NULL); |
| 1055 | ||
| 1056 | gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 1057 | gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 1058 | gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 1059 | gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 1060 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
| 1061 | gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); | |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
1062 | gtk_window_set_role(GTK_WINDOW(a->window), "add_buddy"); |
| 4180 | 1063 | |
| 1064 | hbox = gtk_hbox_new(FALSE, 12); | |
| 1065 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 1066 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1067 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 1068 | ||
| 1069 | vbox = gtk_vbox_new(FALSE, 0); | |
| 1070 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 1071 | ||
| 4599 | 1072 | 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 | 1073 | gtk_widget_set_size_request(GTK_WIDGET(label), 400, -1); |
| 1074 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1075 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1076 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 1077 | ||
| 1078 | hbox = gtk_hbox_new(FALSE, 6); | |
| 1079 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 1080 | ||
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1081 | g_signal_connect(G_OBJECT(a->window), "destroy", G_CALLBACK(destroy_dialog), a->window); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1082 | g_signal_connect(G_OBJECT(a->window), "destroy", G_CALLBACK(free_dialog), a); |
| 1151 | 1083 | dialogwindows = g_list_prepend(dialogwindows, a->window); |
| 1084 | ||
| 2529 | 1085 | table = gtk_table_new(4, 2, FALSE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1086 | gtk_table_set_row_spacings(GTK_TABLE(table), 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1087 | gtk_table_set_col_spacings(GTK_TABLE(table), 5); |
| 4180 | 1088 | gtk_container_set_border_width(GTK_CONTAINER(table), 0); |
| 1089 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 1090 | ||
| 1091 | label = gtk_label_new(_("Screen Name")); | |
| 1092 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1093 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1094 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1095 | a->entry = gtk_entry_new(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1096 | gtk_table_attach_defaults(GTK_TABLE(table), a->entry, 1, 2, 0, 1); |
|
3333
b4b1a30dfe92
[gaim-migrate @ 3351]
Jim Seymour <jseymour@users.sourceforge.net>
parents:
3327
diff
changeset
|
1097 | gtk_widget_grab_focus(a->entry); |
| 4183 | 1098 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1099 | if (buddy != NULL) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1100 | gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); |
| 4183 | 1101 | |
| 1102 | gtk_entry_set_activates_default (GTK_ENTRY(a->entry), TRUE); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1103 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1104 | label = gtk_label_new(_("Alias")); |
| 4180 | 1105 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1106 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1107 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1108 | a->entry_for_alias = gtk_entry_new(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1109 | gtk_table_attach_defaults(GTK_TABLE(table), a->entry_for_alias, 1, 2, 1, 2); |
|
2582
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2572
diff
changeset
|
1110 | if (alias != NULL) |
|
7d3056893188
[gaim-migrate @ 2595]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2572
diff
changeset
|
1111 | gtk_entry_set_text(GTK_ENTRY(a->entry_for_alias), alias); |
| 4183 | 1112 | gtk_entry_set_activates_default (GTK_ENTRY(a->entry_for_alias), TRUE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1113 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1114 | label = gtk_label_new(_("Group")); |
| 4180 | 1115 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1116 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1117 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1118 | a->combo = gtk_combo_new(); |
|
4978
a9b21b98aa1f
[gaim-migrate @ 5313]
Robert McQueen <robot101@debian.org>
parents:
4977
diff
changeset
|
1119 | gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree()); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1120 | gtk_table_attach_defaults(GTK_TABLE(table), a->combo, 1, 2, 2, 3); |
| 1210 | 1121 | |
| 2527 | 1122 | /* Set up stuff for the account box */ |
| 1123 | label = gtk_label_new(_("Add To")); | |
| 4180 | 1124 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2527 | 1125 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); |
| 1126 | ||
| 1127 | a->account = gtk_option_menu_new(); | |
| 1128 | gtk_table_attach_defaults(GTK_TABLE(table), a->account, 1, 2, 3, 4); | |
| 1129 | ||
| 1130 | create_online_user_names(a); | |
| 5234 | 1131 | |
| 2527 | 1132 | /* End of account box */ |
| 1133 | ||
| 4180 | 1134 | g_signal_connect(G_OBJECT(a->window), "response", G_CALLBACK(do_add_buddy), a); |
| 1151 | 1135 | |
| 1210 | 1136 | gtk_widget_show_all(a->window); |
| 4180 | 1137 | |
|
2995
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2993
diff
changeset
|
1138 | if (group != NULL) |
|
33231d4b2cd3
[gaim-migrate @ 3008]
Mark Doliner <markdoliner@pidgin.im>
parents:
2993
diff
changeset
|
1139 | gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); |
| 1 | 1140 | } |
| 1141 | ||
| 5234 | 1142 | struct addchat { |
| 1143 | struct gaim_account *account; | |
| 1144 | GtkWidget *window; | |
| 1145 | GtkWidget *account_menu; | |
| 1146 | GtkWidget *alias_entry; | |
| 1147 | GtkWidget *group_combo; | |
| 1148 | GtkWidget *entries_box; | |
| 1149 | GtkSizeGroup *sg; | |
| 1150 | GList *entries; | |
| 1151 | }; | |
| 1152 | ||
| 1153 | static void do_add_chat(GtkWidget *w, struct addchat *ac) { | |
| 1154 | GHashTable *components = g_hash_table_new_full(g_str_hash, g_str_equal, | |
| 1155 | g_free, g_free); | |
| 1156 | GList *tmp; | |
| 1157 | ||
| 1158 | struct chat *chat; | |
| 1159 | struct group *group; | |
| 1160 | const char *group_name; | |
| 1161 | ||
| 1162 | for(tmp = ac->entries; tmp; tmp = tmp->next) { | |
| 1163 | if(g_object_get_data(tmp->data, "is_spin")) { | |
| 1164 | g_hash_table_replace(components, | |
| 1165 | g_strdup(g_object_get_data(tmp->data, "identifier")), | |
| 1166 | g_strdup_printf("%d", | |
| 1167 | gtk_spin_button_get_value_as_int(tmp->data))); | |
| 1168 | } else { | |
| 1169 | g_hash_table_replace(components, | |
| 1170 | g_strdup(g_object_get_data(tmp->data, "identifier")), | |
| 1171 | g_strdup(gtk_entry_get_text(tmp->data))); | |
| 1172 | } | |
| 1173 | } | |
| 1174 | ||
| 1175 | chat = gaim_chat_new(ac->account, gtk_entry_get_text(GTK_ENTRY(ac->alias_entry)), components); | |
| 1176 | ||
| 1177 | group_name = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(ac->group_combo)->entry)); | |
| 1178 | if (!(group = gaim_find_group(group_name))) { | |
| 1179 | group = gaim_group_new(group_name); | |
| 1180 | gaim_blist_add_group(group, NULL); | |
| 1181 | } | |
| 1182 | ||
| 5237 | 1183 | if(chat) { |
| 1184 | gaim_blist_add_chat(chat, group, NULL); | |
| 1185 | gaim_blist_save(); | |
| 1186 | } | |
| 5234 | 1187 | |
| 1188 | gtk_widget_destroy(ac->window); | |
| 1189 | g_list_free(ac->entries); | |
| 1190 | ||
| 1191 | g_free(ac); | |
| 1192 | } | |
| 1193 | ||
| 1194 | static void do_add_chat_resp(GtkWidget *w, int resp, struct addchat *ac) { | |
| 1195 | if(resp == GTK_RESPONSE_OK) { | |
| 1196 | do_add_chat(NULL, ac); | |
| 1197 | } else { | |
| 1198 | gtk_widget_destroy(ac->window); | |
| 1199 | g_list_free(ac->entries); | |
| 1200 | g_free(ac); | |
| 1201 | } | |
| 1202 | } | |
| 1203 | ||
| 1204 | ||
| 1205 | static void rebuild_addchat_entries(struct addchat *ac) { | |
| 1206 | GList *list, *tmp; | |
| 1207 | struct proto_chat_entry *pce; | |
| 5237 | 1208 | gboolean focus = TRUE; |
| 5234 | 1209 | |
| 1210 | while(GTK_BOX(ac->entries_box)->children) | |
| 1211 | gtk_container_remove(GTK_CONTAINER(ac->entries_box), | |
| 1212 | ((GtkBoxChild *)GTK_BOX(ac->entries_box)->children->data)->widget); | |
| 1213 | ||
| 1214 | if(ac->entries) | |
| 1215 | g_list_free(ac->entries); | |
| 1216 | ||
| 1217 | ac->entries = NULL; | |
| 1218 | ||
| 1219 | list = GAIM_PLUGIN_PROTOCOL_INFO(ac->account->gc->prpl)->chat_info(ac->account->gc); | |
| 1220 | ||
| 1221 | for(tmp = list; tmp; tmp = tmp->next) { | |
| 1222 | GtkWidget *label; | |
| 1223 | GtkWidget *rowbox; | |
| 1224 | pce = tmp->data; | |
| 1225 | ||
| 1226 | rowbox = gtk_hbox_new(FALSE, 5); | |
| 1227 | gtk_box_pack_start(GTK_BOX(ac->entries_box), rowbox, FALSE, FALSE, 0); | |
| 1228 | ||
| 1229 | label = gtk_label_new(pce->label); | |
| 1230 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1231 | gtk_size_group_add_widget(ac->sg, label); | |
| 1232 | gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
| 1233 | ||
| 1234 | if(pce->is_int) { | |
| 1235 | GtkObject *adjust; | |
| 1236 | GtkWidget *spin; | |
| 1237 | adjust = gtk_adjustment_new(pce->min, pce->min, pce->max, | |
| 1238 | 1, 10, 10); | |
| 1239 | spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | |
| 1240 | g_object_set_data(G_OBJECT(spin), "is_spin", GINT_TO_POINTER(TRUE)); | |
| 1241 | g_object_set_data(G_OBJECT(spin), "identifier", pce->identifier); | |
| 1242 | ac->entries = g_list_append(ac->entries, spin); | |
| 1243 | gtk_widget_set_size_request(spin, 50, -1); | |
| 1244 | gtk_box_pack_end(GTK_BOX(rowbox), spin, FALSE, FALSE, 0); | |
| 1245 | } else { | |
| 1246 | GtkWidget *entry = gtk_entry_new(); | |
| 1247 | g_object_set_data(G_OBJECT(entry), "identifier", pce->identifier); | |
| 1248 | ac->entries = g_list_append(ac->entries, entry); | |
| 1249 | ||
| 1250 | if(pce->def) | |
| 1251 | gtk_entry_set_text(GTK_ENTRY(entry), pce->def); | |
| 1252 | ||
| 5237 | 1253 | if(focus) { |
| 1254 | gtk_widget_grab_focus(entry); | |
| 1255 | focus = FALSE; | |
| 1256 | } | |
| 1257 | ||
| 5234 | 1258 | gtk_box_pack_end(GTK_BOX(rowbox), entry, TRUE, TRUE, 0); |
| 1259 | ||
| 1260 | g_signal_connect(G_OBJECT(entry), "activate", | |
| 1261 | G_CALLBACK(do_add_chat), ac); | |
| 1262 | } | |
| 5241 | 1263 | g_free(pce); |
| 5234 | 1264 | } |
| 1265 | ||
| 1266 | gtk_widget_show_all(ac->entries_box); | |
| 1267 | } | |
| 1268 | ||
| 1269 | static void addchat_select_account(GObject *w, struct gaim_connection *gc) | |
| 1270 | { | |
| 1271 | struct addchat *ac = g_object_get_data(w, "addchat"); | |
| 1272 | ||
| 1273 | if(ac->account->protocol == gc->account->protocol) { | |
| 1274 | ac->account = gc->account; | |
| 1275 | } else { | |
| 1276 | ac->account = gc->account; | |
| 1277 | rebuild_addchat_entries(ac); | |
| 1278 | } | |
| 1279 | } | |
| 1280 | ||
| 1281 | static void create_online_account_menu_for_add_chat(struct addchat *ac) | |
| 1282 | { | |
| 1283 | char buf[2048]; /* Never hurts to be safe ;-) */ | |
| 1284 | GSList *g = connections; | |
| 1285 | struct gaim_connection *c; | |
| 1286 | GtkWidget *menu, *opt; | |
| 1287 | int count = 0; | |
| 1288 | int place = 0; | |
| 1289 | ||
| 1290 | menu = gtk_menu_new(); | |
| 1291 | ||
| 1292 | while (g) { | |
| 1293 | c = (struct gaim_connection *)g->data; | |
|
5258
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1294 | if (GAIM_PLUGIN_PROTOCOL_INFO(c->prpl)->join_chat) { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1295 | g_snprintf(buf, sizeof(buf), "%s (%s)", |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1296 | c->username, c->prpl->info->name); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1297 | opt = gtk_menu_item_new_with_label(buf); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1298 | g_object_set_data(G_OBJECT(opt), "addchat", ac); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1299 | g_signal_connect(G_OBJECT(opt), "activate", |
|
5258
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1300 | G_CALLBACK(addchat_select_account), |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1301 | c); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1302 | gtk_widget_show(opt); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1303 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1304 | |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1305 | /* Now check to see if it's our current menu */ |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1306 | if (c->account == ac->account) { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1307 | place = count; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1308 | gtk_menu_item_activate(GTK_MENU_ITEM(opt)); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1309 | gtk_option_menu_set_history(GTK_OPTION_MENU(ac->account_menu), count); |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1310 | |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1311 | /* Do the cha cha cha */ |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1312 | } |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1313 | |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1314 | count++; |
| 5234 | 1315 | } |
| 1316 | ||
| 1317 | g = g->next; | |
| 1318 | } | |
| 1319 | ||
| 1320 | gtk_option_menu_remove_menu(GTK_OPTION_MENU(ac->account_menu)); | |
| 1321 | gtk_option_menu_set_menu(GTK_OPTION_MENU(ac->account_menu), menu); | |
| 1322 | gtk_option_menu_set_history(GTK_OPTION_MENU(ac->account_menu), place); | |
| 1323 | } | |
| 1324 | ||
| 1325 | void show_add_chat(struct gaim_account *account, struct group *group) { | |
| 1326 | struct addchat *ac = g_new0(struct addchat, 1); | |
| 1327 | struct gaim_gtk_buddy_list *gtkblist; | |
|
5258
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1328 | GSList *c; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1329 | struct gaim_connection *gc; |
| 5234 | 1330 | |
| 1331 | GtkWidget *label; | |
| 1332 | GtkWidget *rowbox; | |
| 1333 | GtkWidget *hbox; | |
| 1334 | GtkWidget *vbox; | |
| 1335 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, | |
| 1336 | GTK_ICON_SIZE_DIALOG); | |
| 1337 | ||
| 1338 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); | |
| 1339 | ||
|
5258
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1340 | if (account) { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1341 | ac->account = account; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1342 | } else { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1343 | /* Select an account with chat capabilities */ |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1344 | for (c = connections; c != NULL; c = c->next) { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1345 | gc = c->data; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1346 | |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1347 | if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->join_chat) { |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1348 | ac->account = gc->account; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1349 | break; |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1350 | } |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1351 | } |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1352 | } |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1353 | |
|
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1354 | if (!ac->account) { |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1355 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1356 | _("You are not currently signed on with any " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1357 | "protocols that have the ability to chat."), NULL); |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
1358 | return; |
|
5258
ebd5619a81ef
[gaim-migrate @ 5630]
José Mª Pérez Cáncer <jm_pc@users.sourceforge.net>
parents:
5249
diff
changeset
|
1359 | } |
| 5234 | 1360 | |
| 1361 | ac->sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 1362 | ||
| 1363 | ac->window = gtk_dialog_new_with_buttons(_("Add Chat"), | |
| 1364 | GTK_WINDOW(gtkblist->window), 0, | |
| 1365 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
| 1366 | GTK_STOCK_ADD, GTK_RESPONSE_OK, | |
| 1367 | NULL); | |
| 1368 | ||
| 1369 | gtk_dialog_set_default_response(GTK_DIALOG(ac->window), GTK_RESPONSE_OK); | |
| 1370 | gtk_container_set_border_width(GTK_CONTAINER(ac->window), 6); | |
| 1371 | gtk_window_set_resizable(GTK_WINDOW(ac->window), FALSE); | |
| 1372 | gtk_dialog_set_has_separator(GTK_DIALOG(ac->window), FALSE); | |
| 1373 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(ac->window)->vbox), 12); | |
| 1374 | gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(ac->window)->vbox), | |
| 1375 | 6); | |
| 1376 | gtk_window_set_role(GTK_WINDOW(ac->window), "add_chat"); | |
| 1377 | ||
| 1378 | hbox = gtk_hbox_new(FALSE, 12); | |
| 1379 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(ac->window)->vbox), hbox); | |
| 1380 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 1381 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 1382 | ||
| 1383 | vbox = gtk_vbox_new(FALSE, 5); | |
| 1384 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 1385 | ||
| 1386 | 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")); | |
| 1387 | gtk_widget_set_size_request(label, 400, -1); | |
| 1388 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 1389 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 1390 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 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(_("Account:")); | |
| 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->account_menu = gtk_option_menu_new(); | |
| 1401 | gtk_box_pack_end(GTK_BOX(rowbox), ac->account_menu, TRUE, TRUE, 0); | |
| 1402 | ||
| 1403 | create_online_account_menu_for_add_chat(ac); | |
| 1404 | ||
| 5237 | 1405 | ac->entries_box = gtk_vbox_new(FALSE, 5); |
| 1406 | gtk_container_set_border_width(GTK_CONTAINER(ac->entries_box), 0); | |
| 1407 | gtk_box_pack_start(GTK_BOX(vbox), ac->entries_box, TRUE, TRUE, 0); | |
| 1408 | ||
| 1409 | rebuild_addchat_entries(ac); | |
| 1410 | ||
| 5234 | 1411 | rowbox = gtk_hbox_new(FALSE, 5); |
| 1412 | gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | |
| 1413 | ||
| 1414 | label = gtk_label_new(_("Alias:")); | |
| 1415 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1416 | gtk_size_group_add_widget(ac->sg, label); | |
| 1417 | gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
| 1418 | ||
| 1419 | ac->alias_entry = gtk_entry_new(); | |
| 1420 | gtk_box_pack_end(GTK_BOX(rowbox), ac->alias_entry, TRUE, TRUE, 0); | |
| 1421 | ||
| 1422 | rowbox = gtk_hbox_new(FALSE, 5); | |
| 1423 | gtk_box_pack_start(GTK_BOX(vbox), rowbox, FALSE, FALSE, 0); | |
| 1424 | ||
| 1425 | label = gtk_label_new(_("Group:")); | |
| 1426 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1427 | gtk_size_group_add_widget(ac->sg, label); | |
| 1428 | gtk_box_pack_start(GTK_BOX(rowbox), label, FALSE, FALSE, 0); | |
| 1429 | ||
| 1430 | ac->group_combo = gtk_combo_new(); | |
| 1431 | gtk_combo_set_popdown_strings(GTK_COMBO(ac->group_combo), groups_tree()); | |
| 1432 | gtk_box_pack_end(GTK_BOX(rowbox), ac->group_combo, TRUE, TRUE, 0); | |
| 1433 | ||
| 1434 | if (group) | |
| 1435 | gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(ac->group_combo)->entry), group->name); | |
| 1436 | ||
| 1437 | g_signal_connect(G_OBJECT(ac->window), "response", G_CALLBACK(do_add_chat_resp), ac); | |
| 1438 | ||
| 1439 | gtk_widget_show_all(ac->window); | |
| 1440 | } | |
| 1441 | ||
| 1442 | ||
| 1 | 1443 | |
| 3367 | 1444 | /*------------------------------------------------------------------------* |
| 1445 | * Privacy Settings * | |
| 1446 | *------------------------------------------------------------------------*/ | |
| 1447 | static GtkWidget *deny_type = NULL; | |
| 1448 | static GtkWidget *deny_conn_hbox = NULL; | |
| 1449 | static GtkWidget *deny_opt_menu = NULL; | |
| 1450 | static struct gaim_connection *current_deny_gc = NULL; | |
| 1451 | static gboolean current_is_deny = FALSE; | |
| 1452 | static GtkWidget *allow_list = NULL; | |
| 1453 | static GtkWidget *block_list = NULL; | |
| 1454 | ||
| 4177 | 1455 | static GtkListStore *block_store = NULL; |
| 1456 | static GtkListStore *allow_store = NULL; | |
| 1457 | ||
| 3367 | 1458 | static void set_deny_mode(GtkWidget *w, int data) |
| 1459 | { | |
| 1460 | if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) | |
| 1461 | return; | |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1462 | |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
1463 | gaim_debug(GAIM_DEBUG_INFO, "privacy", "Setting deny mode %d\n", data); |
| 4491 | 1464 | current_deny_gc->account->permdeny = data; |
| 3367 | 1465 | serv_set_permit_deny(current_deny_gc); |
| 4349 | 1466 | gaim_blist_save(); |
| 3367 | 1467 | } |
| 1468 | ||
| 4178 | 1469 | static GtkWidget *deny_opt(char *label, int which, GtkWidget *set) |
| 3367 | 1470 | { |
| 1471 | GtkWidget *opt; | |
| 1472 | ||
| 1473 | if (!set) | |
| 1474 | opt = gtk_radio_button_new_with_label(NULL, label); | |
| 1475 | else | |
| 1476 | opt = | |
| 4635 | 1477 | gtk_radio_button_new_with_label(gtk_radio_button_get_group( |
| 1478 | GTK_RADIO_BUTTON(set)), | |
| 3367 | 1479 | label); |
| 4178 | 1480 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1481 | g_signal_connect(G_OBJECT(opt), "toggled", G_CALLBACK(set_deny_mode), (void *)which); |
| 3367 | 1482 | gtk_widget_show(opt); |
| 4491 | 1483 | if (current_deny_gc->account->permdeny == which) |
| 4635 | 1484 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opt), TRUE); |
| 3367 | 1485 | |
| 1486 | return opt; | |
| 1487 | } | |
| 1488 | ||
| 1489 | static void des_deny_opt(GtkWidget *d, gpointer e) | |
| 1490 | { | |
| 1491 | gtk_widget_destroy(d); | |
| 1492 | current_deny_gc = NULL; | |
| 1493 | deny_conn_hbox = NULL; | |
| 1494 | deny_type = NULL; | |
| 1495 | deny_opt_menu = NULL; | |
| 1496 | current_is_deny = FALSE; | |
| 1497 | allow_list = NULL; | |
| 4177 | 1498 | allow_store = NULL; |
| 1499 | ||
| 3367 | 1500 | block_list = NULL; |
| 4177 | 1501 | block_store = NULL; |
| 3367 | 1502 | } |
| 1503 | ||
| 1504 | static void set_deny_type() | |
| 1505 | { | |
| 4635 | 1506 | GSList *bg = gtk_radio_button_get_group(GTK_RADIO_BUTTON(deny_type)); |
| 3367 | 1507 | |
| 4491 | 1508 | switch (current_deny_gc->account->permdeny) { |
| 3786 | 1509 | case 5: |
| 1510 | bg = bg->next->next; | |
| 1511 | break; | |
| 3367 | 1512 | case 4: |
| 1513 | break; | |
| 1514 | case 3: | |
| 3786 | 1515 | bg = bg->next->next->next; |
| 3367 | 1516 | break; |
| 1517 | case 2: | |
| 1518 | bg = bg->next; | |
| 1519 | break; | |
| 1520 | case 1: | |
| 3786 | 1521 | bg = bg->next->next->next->next; |
| 3367 | 1522 | break; |
| 1523 | } | |
| 1524 | ||
| 4635 | 1525 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bg->data), TRUE); |
| 3367 | 1526 | } |
| 1527 | ||
| 1528 | void build_allow_list() | |
| 1529 | { | |
| 1530 | GSList *p; | |
| 4177 | 1531 | GtkListStore *ls; |
| 1532 | GtkTreeIter iter; | |
| 3367 | 1533 | |
| 1534 | if (!current_is_deny) | |
| 1535 | return; | |
| 1536 | ||
| 4491 | 1537 | p = current_deny_gc->account->permit; |
| 3367 | 1538 | |
| 4177 | 1539 | gtk_list_store_clear(GTK_LIST_STORE(allow_store)); |
| 3367 | 1540 | |
| 1541 | while (p) { | |
| 4177 | 1542 | ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list))); |
| 1543 | ||
| 1544 | gtk_list_store_append(ls, &iter); | |
| 1545 | gtk_list_store_set(ls, &iter, 0, p->data, -1); | |
| 1546 | ||
| 3367 | 1547 | p = p->next; |
| 1548 | } | |
| 1549 | } | |
| 1550 | ||
| 4177 | 1551 | |
| 3367 | 1552 | void build_block_list() |
| 1553 | { | |
| 1554 | GSList *d; | |
| 4177 | 1555 | GtkListStore *ls; |
| 1556 | GtkTreeIter iter; | |
| 3367 | 1557 | |
| 1558 | if (!current_is_deny) | |
| 1559 | return; | |
| 1560 | ||
| 4491 | 1561 | d = current_deny_gc->account->deny; |
| 3367 | 1562 | |
| 4177 | 1563 | gtk_list_store_clear(GTK_LIST_STORE(block_store)); |
| 3367 | 1564 | |
| 1565 | while (d) { | |
| 4177 | 1566 | ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(block_list))); |
| 1567 | ||
| 1568 | gtk_list_store_append(ls, &iter); | |
| 1569 | gtk_list_store_set(ls, &iter, 0, d->data, -1); | |
| 1570 | ||
| 3367 | 1571 | d = d->next; |
| 1572 | } | |
| 1573 | } | |
| 1574 | ||
| 1575 | static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc) | |
| 1576 | { | |
| 1577 | current_deny_gc = gc; | |
| 1578 | set_deny_type(); | |
| 1579 | build_allow_list(); | |
| 1580 | build_block_list(); | |
| 1581 | } | |
| 1582 | ||
| 1583 | static void build_deny_menu() | |
| 1584 | { | |
| 1585 | GtkWidget *menu; | |
| 1586 | GtkWidget *opt; | |
| 1587 | GSList *c = connections; | |
| 1588 | struct gaim_connection *gc; | |
| 1589 | int count = 0; | |
| 1590 | gboolean found = FALSE; | |
| 1591 | char buf[2048]; | |
| 1592 | ||
| 1593 | if (g_slist_length(connections) == 1) { | |
| 1594 | gtk_widget_hide(deny_conn_hbox); | |
| 1595 | return; | |
| 1596 | } else | |
| 1597 | gtk_widget_show(deny_conn_hbox); | |
| 1598 | ||
| 1599 | menu = gtk_menu_new(); | |
| 1600 | ||
| 1601 | while (c) { | |
| 1602 | gc = (struct gaim_connection *)c->data; | |
| 1603 | c = c->next; | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1604 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1605 | if (!GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->set_permit_deny) |
| 3367 | 1606 | continue; |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1607 | |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1608 | g_snprintf(buf, sizeof buf, "%s (%s)", |
|
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1609 | gc->username, gc->prpl->info->name); |
| 3367 | 1610 | opt = gtk_menu_item_new_with_label(buf); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1611 | g_signal_connect(G_OBJECT(opt), "activate", G_CALLBACK(deny_gc_opt), gc); |
| 3367 | 1612 | gtk_widget_show(opt); |
| 4635 | 1613 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3367 | 1614 | if (gc == current_deny_gc) |
| 1615 | found = TRUE; | |
| 1616 | else if (!found) | |
| 1617 | count++; | |
| 1618 | } | |
| 1619 | ||
| 1620 | if (!found) { | |
| 1621 | current_deny_gc = connections->data; | |
| 1622 | count = 0; | |
| 1623 | } | |
| 1624 | ||
| 1625 | gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu)); | |
| 1626 | gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu); | |
| 1627 | gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count); | |
| 1628 | ||
| 1629 | gtk_widget_show(menu); | |
| 1630 | gtk_widget_show(deny_opt_menu); | |
| 1631 | } | |
| 1632 | ||
| 1633 | static void pref_deny_add(GtkWidget *button, gboolean permit) | |
| 1634 | { | |
| 1635 | show_add_perm(current_deny_gc, NULL, permit); | |
| 1636 | } | |
| 1637 | ||
| 4177 | 1638 | |
| 1639 | gchar *find_permdeny_by_name(GSList *l, char *who) { | |
| 1640 | gchar *name; | |
| 1641 | ||
| 1642 | while (l) { | |
| 1643 | name = (gchar *)l->data; | |
| 1644 | if (!strcmp(name, who)) { | |
| 1645 | return name; | |
| 1646 | } | |
| 1647 | ||
| 1648 | l = l->next; | |
| 1649 | } | |
| 1650 | ||
| 1651 | return NULL; | |
| 1652 | } | |
| 1653 | ||
| 3367 | 1654 | static void pref_deny_rem(GtkWidget *button, gboolean permit) |
| 1655 | { | |
| 4177 | 1656 | gchar *who; |
| 1657 | GtkTreeIter iter; | |
| 1658 | GtkTreeModel *mod; | |
| 1659 | GtkTreeSelection *sel; | |
| 1660 | ||
| 1661 | if (permit) { | |
| 1662 | mod = gtk_tree_view_get_model(GTK_TREE_VIEW(allow_list)); | |
| 1663 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(allow_list)); | |
| 1664 | } else { | |
| 1665 | mod = gtk_tree_view_get_model(GTK_TREE_VIEW(block_list)); | |
| 1666 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(block_list)); | |
| 1667 | } | |
| 1668 | ||
| 1669 | if (gtk_tree_selection_get_selected(sel, NULL, &iter)) | |
| 1670 | gtk_tree_model_get(GTK_TREE_MODEL(mod), &iter, 0, &who, -1); | |
| 1671 | else { | |
| 1672 | return; | |
| 1673 | } | |
| 3367 | 1674 | |
| 1675 | if (permit && !allow_list) | |
| 1676 | return; | |
| 4177 | 1677 | |
| 3367 | 1678 | if (!permit && !block_list) |
| 1679 | return; | |
| 1680 | ||
| 1681 | if (permit) { | |
| 4491 | 1682 | char *name = find_permdeny_by_name(current_deny_gc->account->permit, who); |
| 4177 | 1683 | |
| 1684 | if (name) { | |
| 4491 | 1685 | gaim_privacy_permit_remove(current_deny_gc->account, name); |
|
4308
8eefe9f67895
[gaim-migrate @ 4562]
Mark Doliner <markdoliner@pidgin.im>
parents:
4272
diff
changeset
|
1686 | serv_rem_permit(current_deny_gc, who); |
| 4177 | 1687 | build_allow_list(); |
| 1688 | } | |
| 3367 | 1689 | } else { |
| 4491 | 1690 | char *name = find_permdeny_by_name(current_deny_gc->account->deny, who); |
| 4177 | 1691 | |
| 1692 | if (name) { | |
| 4491 | 1693 | gaim_privacy_deny_remove(current_deny_gc->account, name); |
| 4177 | 1694 | serv_rem_deny(current_deny_gc, who); |
| 1695 | build_block_list(); | |
| 1696 | } | |
| 3367 | 1697 | } |
| 1698 | ||
| 4349 | 1699 | gaim_blist_save(); |
| 3367 | 1700 | } |
| 1701 | ||
| 1702 | GtkWidget *privacy_win; | |
| 1703 | void update_privacy_connections() { /* This is a slightly better name */ | |
| 1704 | gboolean needdeny = FALSE; | |
| 1705 | GSList *c = connections; | |
| 1706 | struct gaim_connection *gc = NULL; | |
| 1707 | ||
| 1708 | if (!privacy_win) | |
| 1709 | return; | |
| 1710 | ||
| 1711 | while (c) { | |
| 1712 | gc = c->data; | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
1713 | if (GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl)->set_permit_deny) |
| 3367 | 1714 | break; |
| 1715 | gc = NULL; | |
| 1716 | c = c->next; | |
| 1717 | } | |
| 1718 | needdeny = (gc != NULL); | |
| 1719 | ||
| 1720 | ||
| 1721 | if (needdeny) { | |
| 1722 | gtk_widget_set_sensitive(privacy_win, TRUE); | |
| 1723 | build_deny_menu(); | |
| 1724 | build_allow_list(); | |
| 1725 | build_block_list(); | |
| 1726 | } else { | |
| 1727 | gtk_widget_set_sensitive(privacy_win, FALSE); | |
| 1728 | } | |
| 1729 | } | |
| 1730 | static void destroy_privacy() { | |
| 1731 | current_deny_gc = NULL; | |
| 1732 | privacy_win = NULL; | |
| 1733 | } | |
| 1734 | ||
| 4177 | 1735 | void show_privacy_options() { |
| 1736 | GtkWidget *pwin; | |
| 1737 | GtkWidget *box; | |
| 1738 | GtkWidget *hbox; | |
| 1739 | GtkWidget *label; | |
| 1740 | GtkWidget *sw; | |
| 1741 | GtkWidget *bbox; | |
| 1742 | GtkWidget *button; | |
| 1743 | GtkWidget *sep; | |
| 1744 | GtkWidget *close_button; | |
| 1745 | GtkSizeGroup *sg1 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1746 | GtkSizeGroup *sg2 = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 1747 | GtkCellRenderer *rend; | |
| 1748 | GtkTreeViewColumn *col; | |
| 4178 | 1749 | GtkWidget *table; |
| 4177 | 1750 | |
| 1751 | current_deny_gc = connections->data; /* this is safe because this screen will only be | |
| 1752 | available when there are connections */ | |
| 1753 | current_is_deny = TRUE; | |
| 1754 | ||
| 1755 | privacy_win = pwin = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
| 4635 | 1756 | gtk_window_set_resizable(GTK_WINDOW(pwin), FALSE); |
| 4177 | 1757 | gtk_window_set_role(GTK_WINDOW(pwin), "privacy"); |
| 4703 | 1758 | gtk_window_set_title(GTK_WINDOW(pwin), _("Privacy")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1759 | g_signal_connect(G_OBJECT(pwin), "destroy", G_CALLBACK(destroy_privacy), NULL); |
| 4177 | 1760 | gtk_widget_realize(pwin); |
| 1761 | ||
| 4637 | 1762 | gtk_widget_set_size_request(pwin, -1, 400); |
| 4177 | 1763 | |
| 1764 | box = gtk_vbox_new(FALSE, 5); | |
| 1765 | gtk_container_set_border_width(GTK_CONTAINER(box), 5); | |
| 1766 | gtk_container_add(GTK_CONTAINER(pwin), box); | |
| 1767 | gtk_widget_show(box); | |
| 1768 | ||
| 1769 | label = gtk_label_new(_("Changes to privacy settings take effect immediately.")); | |
| 1770 | gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
| 1771 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1772 | gtk_widget_show(label); | |
| 1773 | ||
| 1774 | deny_conn_hbox = gtk_hbox_new(FALSE, 5); | |
| 1775 | gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0); | |
| 1776 | gtk_widget_show(deny_conn_hbox); | |
| 1777 | ||
| 1778 | label = gtk_label_new(_("Set privacy for:")); | |
| 1779 | gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5); | |
| 1780 | gtk_widget_show(label); | |
| 1781 | ||
| 1782 | deny_opt_menu = gtk_option_menu_new(); | |
| 1783 | gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1784 | g_signal_connect(G_OBJECT(deny_opt_menu), "destroy", G_CALLBACK(des_deny_opt), NULL); |
| 4177 | 1785 | gtk_widget_show(deny_opt_menu); |
| 1786 | ||
| 1787 | build_deny_menu(); | |
| 1788 | ||
| 4178 | 1789 | table = gtk_table_new(5, 2, FALSE); |
| 1790 | gtk_box_pack_start(GTK_BOX(box), table, TRUE, TRUE, 0); | |
| 1791 | gtk_table_set_row_spacings(GTK_TABLE(table), 7); | |
| 1792 | gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 1793 | gtk_widget_show(table); | |
| 1794 | ||
| 1795 | deny_type = deny_opt(_("Allow all users to contact me"), 1, NULL); | |
| 4177 | 1796 | gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1797 | gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); |
| 1798 | ||
| 1799 | deny_type = deny_opt(_("Allow only users on my buddy list"), 5, deny_type); | |
| 4177 | 1800 | gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1801 | gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); |
| 1802 | ||
| 1803 | deny_type = deny_opt(_("Allow only the users below"), 3, deny_type); | |
| 4177 | 1804 | gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1805 | gtk_table_attach(GTK_TABLE(table), deny_type, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1806 | |
| 1807 | sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1808 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1809 | gtk_table_attach(GTK_TABLE(table), sw, 0, 1, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1810 | gtk_widget_show(sw); |
| 1811 | ||
| 1812 | allow_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1813 | allow_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(allow_store)); | |
| 1814 | ||
| 1815 | rend = gtk_cell_renderer_text_new(); | |
| 1816 | col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1817 | gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1818 | gtk_tree_view_append_column(GTK_TREE_VIEW(allow_list), col); | |
| 1819 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allow_list), FALSE); | |
| 1820 | gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list); | |
| 1821 | gtk_widget_show(allow_list); | |
| 1822 | ||
| 1823 | build_allow_list(); | |
| 1824 | ||
| 4179 | 1825 | bbox = gtk_hbox_new(TRUE, 0); |
| 4177 | 1826 | gtk_widget_show(bbox); |
| 4178 | 1827 | gtk_table_attach(GTK_TABLE(table), bbox, 0, 1, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1828 | |
| 1829 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1830 | gtk_size_group_add_widget(sg2, button); | |
| 1831 | gtk_widget_show(button); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1832 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), (void *)TRUE); |
| 4179 | 1833 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1834 | |
| 1835 | button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1836 | gtk_size_group_add_widget(sg2, button); | |
| 1837 | gtk_widget_show(button); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1838 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), (void *)TRUE); |
| 4179 | 1839 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1840 | |
| 4178 | 1841 | deny_type = deny_opt(_("Deny all users"), 2, deny_type); |
| 4177 | 1842 | gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1843 | gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
| 1844 | ||
| 1845 | deny_type = deny_opt(_("Block the users below"), 4, deny_type); | |
| 4177 | 1846 | gtk_size_group_add_widget(sg1, deny_type); |
| 4178 | 1847 | gtk_table_attach(GTK_TABLE(table), deny_type, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); |
| 4177 | 1848 | |
| 1849 | sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1850 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 4178 | 1851 | gtk_table_attach(GTK_TABLE(table), sw, 1, 2, 3, 4, GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); |
| 4177 | 1852 | gtk_widget_show(sw); |
| 1853 | ||
| 1854 | block_store = gtk_list_store_new(1, G_TYPE_STRING); | |
| 1855 | block_list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(block_store)); | |
| 1856 | ||
| 1857 | rend = gtk_cell_renderer_text_new(); | |
| 1858 | col = gtk_tree_view_column_new_with_attributes(NULL, rend, "text", 0, NULL); | |
| 1859 | gtk_tree_view_column_set_clickable(GTK_TREE_VIEW_COLUMN(col), TRUE); | |
| 1860 | gtk_tree_view_append_column(GTK_TREE_VIEW(block_list), col); | |
| 1861 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(block_list), FALSE); | |
| 1862 | gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list); | |
| 1863 | gtk_widget_show(block_list); | |
| 1864 | ||
| 1865 | build_block_list(); | |
| 1866 | ||
| 4179 | 1867 | bbox = gtk_hbox_new(TRUE, 0); |
| 4178 | 1868 | gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 4, 5, GTK_FILL, 0, 0, 0); |
| 4177 | 1869 | gtk_widget_show(bbox); |
| 1870 | ||
| 1871 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); | |
| 1872 | gtk_size_group_add_widget(sg2, button); | |
| 1873 | gtk_widget_show(button); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1874 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(pref_deny_add), FALSE); |
| 4179 | 1875 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1876 | |
| 1877 | button = gtk_button_new_from_stock(GTK_STOCK_REMOVE); | |
| 1878 | gtk_size_group_add_widget(sg2, button); | |
| 1879 | gtk_widget_show(button); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1880 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(pref_deny_rem), FALSE); |
| 4179 | 1881 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 4177 | 1882 | |
| 1883 | sep = gtk_hseparator_new(); | |
| 1884 | gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | |
| 1885 | gtk_widget_show(sep); | |
| 1886 | ||
| 4178 | 1887 | hbox = gtk_hbox_new(FALSE, 0); |
| 1888 | gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); | |
| 4177 | 1889 | gtk_widget_show(hbox); |
| 4178 | 1890 | |
| 4177 | 1891 | close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
| 1892 | gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 0); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1893 | g_signal_connect_swapped(G_OBJECT(close_button), "clicked", G_CALLBACK(gtk_widget_destroy), pwin); |
| 4178 | 1894 | gtk_widget_show(close_button); |
| 4177 | 1895 | |
| 1896 | gtk_widget_show(pwin); | |
| 1897 | ||
| 1898 | } | |
| 1899 | ||
| 1 | 1900 | |
| 1901 | /*------------------------------------------------------------------------*/ | |
| 1902 | /* The dialog for SET INFO / SET DIR INFO */ | |
| 1903 | /*------------------------------------------------------------------------*/ | |
| 1904 | ||
| 1905 | void do_save_info(GtkWidget *widget, struct set_info_dlg *b) | |
| 1906 | { | |
| 1907 | gchar *junk; | |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
1908 | struct gaim_connection *gc; |
| 1 | 1909 | |
| 4119 | 1910 | junk = gtk_text_view_get_text(GTK_TEXT_VIEW(b->text), FALSE); |
| 1 | 1911 | |
| 4491 | 1912 | if (b->account) { |
| 1913 | strncpy_withhtml(b->account->user_info, junk, sizeof b->account->user_info); | |
| 1914 | gc = b->account->gc; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1915 | |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
1916 | save_prefs(); |
|
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
1917 | |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
1918 | if (gc) |
| 4491 | 1919 | serv_set_info(gc, b->account->user_info); |
|
122
c59d41332d82
[gaim-migrate @ 132]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
84
diff
changeset
|
1920 | } |
| 25 | 1921 | g_free(junk); |
| 1 | 1922 | destroy_dialog(NULL, b->window); |
| 1923 | g_free(b); | |
| 1924 | } | |
| 1925 | ||
| 1926 | void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b) | |
| 1927 | { | |
| 3466 | 1928 | const char *first = gtk_entry_get_text(GTK_ENTRY(b->first)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1929 | int web = GTK_TOGGLE_BUTTON(b->web)->active; |
| 3466 | 1930 | const char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle)); |
| 1931 | const char *last = gtk_entry_get_text(GTK_ENTRY(b->last)); | |
| 1932 | const char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden)); | |
| 1933 | const char *city = gtk_entry_get_text(GTK_ENTRY(b->city)); | |
| 1934 | const char *state = gtk_entry_get_text(GTK_ENTRY(b->state)); | |
| 1935 | const char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); | |
| 1 | 1936 | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1937 | serv_set_dir(b->gc, first, middle, last, maiden, city, state, country, web); |
| 1 | 1938 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1939 | destroy_dialog(NULL, b->window); |
| 1 | 1940 | g_free(b); |
| 1941 | } | |
| 1942 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1943 | void show_set_dir(struct gaim_connection *gc) |
| 1 | 1944 | { |
| 1945 | GtkWidget *label; | |
| 1946 | GtkWidget *bot; | |
| 484 | 1947 | GtkWidget *vbox; |
| 1948 | GtkWidget *hbox; | |
| 1949 | GtkWidget *frame; | |
| 1950 | GtkWidget *fbox; | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1951 | char buf[256]; |
| 1 | 1952 | |
| 1953 | struct set_dir_dlg *b = g_new0(struct set_dir_dlg, 1); | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1954 | b->gc = gc; |
| 1 | 1955 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
1956 | GAIM_DIALOG(b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1957 | dialogwindows = g_list_prepend(dialogwindows, b->window); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
1958 | gtk_window_set_role(GTK_WINDOW(b->window), "set_dir"); |
| 4635 | 1959 | gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
| 4703 | 1960 | gtk_window_set_title(GTK_WINDOW(b->window), _("Set Directory Info")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
1961 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1962 | gtk_widget_realize(b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1963 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1964 | fbox = gtk_vbox_new(FALSE, 5); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1965 | gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1966 | gtk_widget_show(fbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1967 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1968 | frame = gtk_frame_new(_("Directory Info")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1969 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1970 | gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1971 | gtk_widget_show(frame); |
| 484 | 1972 | |
| 1973 | vbox = gtk_vbox_new(FALSE, 5); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1974 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1975 | gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1976 | gtk_widget_show(vbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1977 | |
|
4472
4c2abef133eb
[gaim-migrate @ 4747]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4421
diff
changeset
|
1978 | g_snprintf(buf, sizeof(buf), _("Setting Dir Info for %s:"), gc->username); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1979 | label = gtk_label_new(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1980 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
1981 | gtk_widget_show(label); |
| 1 | 1982 | |
| 1983 | b->first = gtk_entry_new(); | |
| 1984 | b->middle = gtk_entry_new(); | |
| 1985 | b->last = gtk_entry_new(); | |
| 1986 | b->maiden = gtk_entry_new(); | |
| 1987 | b->city = gtk_entry_new(); | |
| 1988 | b->state = gtk_entry_new(); | |
| 1989 | b->country = gtk_entry_new(); | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1990 | b->web = gtk_check_button_new_with_label(_("Allow Web Searches To Find Your Info")); |
| 484 | 1991 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1992 | /* Line 1 */ |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
1993 | label = gtk_label_new(_("First Name")); |
| 1 | 1994 | gtk_widget_show(label); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
1995 | |
| 484 | 1996 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1997 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1998 | gtk_box_pack_end(GTK_BOX(hbox), b->first, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
1999 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2000 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2001 | gtk_widget_show(hbox); |
| 2002 | ||
| 2003 | /* Line 2 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2004 | label = gtk_label_new(_("Middle Name")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2005 | gtk_widget_show(label); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2006 | |
| 484 | 2007 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2008 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2009 | gtk_box_pack_end(GTK_BOX(hbox), b->middle, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2010 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2011 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2012 | gtk_widget_show(hbox); |
| 2013 | ||
| 2014 | ||
| 2015 | /* Line 3 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2016 | label = gtk_label_new(_("Last Name")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2017 | gtk_widget_show(label); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2018 | |
| 484 | 2019 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2020 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2021 | gtk_box_pack_end(GTK_BOX(hbox), b->last, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2022 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2023 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2024 | gtk_widget_show(hbox); |
| 2025 | ||
| 2026 | /* Line 4 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2027 | label = gtk_label_new(_("Maiden Name")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2028 | gtk_widget_show(label); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2029 | |
| 484 | 2030 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2031 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2032 | gtk_box_pack_end(GTK_BOX(hbox), b->maiden, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2033 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2034 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2035 | gtk_widget_show(hbox); |
| 2036 | ||
| 2037 | /* Line 5 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2038 | label = gtk_label_new(_("City")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2039 | gtk_widget_show(label); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2040 | |
| 484 | 2041 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2042 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2043 | gtk_box_pack_end(GTK_BOX(hbox), b->city, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2044 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2045 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2046 | gtk_widget_show(hbox); |
| 2047 | ||
| 2048 | /* Line 6 */ | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2049 | label = gtk_label_new(_("State")); |
| 1 | 2050 | gtk_widget_show(label); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2051 | |
| 484 | 2052 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2053 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2054 | gtk_box_pack_end(GTK_BOX(hbox), b->state, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2055 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2056 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2057 | gtk_widget_show(hbox); |
| 2058 | ||
| 2059 | /* Line 7 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2060 | label = gtk_label_new(_("Country")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2061 | gtk_widget_show(label); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2062 | |
| 484 | 2063 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2064 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2065 | gtk_box_pack_end(GTK_BOX(hbox), b->country, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2066 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2067 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2068 | gtk_widget_show(hbox); |
| 2069 | ||
| 2070 | /* Line 8 */ | |
| 2071 | ||
| 2072 | hbox = gtk_hbox_new(FALSE, 5); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2073 | gtk_box_pack_start(GTK_BOX(hbox), b->web, TRUE, TRUE, 0); |
| 484 | 2074 | gtk_widget_show(hbox); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2075 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 484 | 2076 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2077 | gtk_widget_show(b->first); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2078 | gtk_widget_show(b->middle); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2079 | gtk_widget_show(b->last); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2080 | gtk_widget_show(b->maiden); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2081 | gtk_widget_show(b->city); |
| 1 | 2082 | gtk_widget_show(b->state); |
| 2083 | gtk_widget_show(b->country); | |
| 2084 | gtk_widget_show(b->web); | |
| 2085 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2086 | /* And add the buttons */ |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2087 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2088 | bot = gtk_hbox_new(FALSE, 5); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2089 | gtk_box_pack_start(GTK_BOX(fbox), bot, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2090 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2091 | b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
| 4092 | 2092 | gtk_box_pack_end(GTK_BOX(bot), b->save, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2093 | g_signal_connect(G_OBJECT(b->save), "clicked", G_CALLBACK(do_set_dir), b); |
| 4092 | 2094 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2095 | b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2096 | gtk_box_pack_end(GTK_BOX(bot), b->cancel, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2097 | g_signal_connect(G_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2098 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2099 | gtk_window_set_focus(GTK_WINDOW(b->window), b->first); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2100 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2101 | gtk_widget_show_all(b->window); |
| 1 | 2102 | } |
| 2103 | ||
| 149 | 2104 | void do_change_password(GtkWidget *widget, struct passwddlg *b) |
| 2105 | { | |
| 3466 | 2106 | const gchar *orig, *new1, *new2; |
| 149 | 2107 | |
| 2108 | orig = gtk_entry_get_text(GTK_ENTRY(b->original)); | |
| 2109 | new1 = gtk_entry_get_text(GTK_ENTRY(b->new1)); | |
| 2110 | new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); | |
| 2111 | ||
| 4793 | 2112 | if (g_utf8_collate(new1, new2)) { |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2113 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2114 | _("New passwords do not match."), NULL); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2115 | return; |
| 149 | 2116 | } |
| 2117 | ||
| 2118 | if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { | |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2119 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
2120 | _("Fill out all fields completely."), NULL); |
| 149 | 2121 | return; |
| 2122 | } | |
| 2123 | ||
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2124 | serv_change_passwd(b->gc, orig, new1); |
| 4977 | 2125 | g_snprintf(b->gc->account->password, sizeof(b->gc->account->password), "%s", new1); |
| 2126 | save_prefs(); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2127 | |
| 149 | 2128 | destroy_dialog(NULL, b->window); |
| 2129 | g_free(b); | |
| 2130 | } | |
| 2131 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2132 | void show_change_passwd(struct gaim_connection *gc) |
| 146 | 2133 | { |
| 2134 | GtkWidget *hbox; | |
| 2135 | GtkWidget *label; | |
| 2136 | GtkWidget *vbox; | |
| 475 | 2137 | GtkWidget *fbox; |
| 2138 | GtkWidget *frame; | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2139 | char buf[256]; |
| 454 | 2140 | |
| 146 | 2141 | struct passwddlg *b = g_new0(struct passwddlg, 1); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2142 | b->gc = gc; |
| 146 | 2143 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
2144 | GAIM_DIALOG(b->window); |
| 4635 | 2145 | gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
2146 | gtk_window_set_role(GTK_WINDOW(b->window), "change_passwd"); |
| 4703 | 2147 | gtk_window_set_title(GTK_WINDOW(b->window), _("Change Password")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2148 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2149 | gtk_widget_realize(b->window); |
| 146 | 2150 | dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 149 | 2151 | |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2152 | fbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 2153 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2154 | gtk_container_add(GTK_CONTAINER(b->window), fbox); |
|
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2155 | |
| 475 | 2156 | frame = gtk_frame_new(_("Change Password")); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2157 | gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2158 | |
| 475 | 2159 | vbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 2160 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2161 | gtk_container_add(GTK_CONTAINER(frame), vbox); |
|
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2162 | |
|
4472
4c2abef133eb
[gaim-migrate @ 4747]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4421
diff
changeset
|
2163 | g_snprintf(buf, sizeof(buf), _("Changing password for %s:"), gc->username); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2164 | label = gtk_label_new(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2165 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2166 | |
| 475 | 2167 | /* First Line */ |
| 2168 | hbox = gtk_hbox_new(FALSE, 5); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2169 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2170 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
2171 | label = gtk_label_new(_("Original Password")); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2172 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 475 | 2173 | |
| 146 | 2174 | b->original = gtk_entry_new(); |
|
160
8ddbf033f478
[gaim-migrate @ 170]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
149
diff
changeset
|
2175 | gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2176 | gtk_box_pack_end(GTK_BOX(hbox), b->original, FALSE, FALSE, 0); |
| 475 | 2177 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2178 | /* Next Line */ |
| 475 | 2179 | hbox = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2180 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
978
e78b61c3a443
[gaim-migrate @ 988]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
976
diff
changeset
|
2181 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2182 | label = gtk_label_new(_("New Password")); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2183 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2184 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2185 | b->new1 = gtk_entry_new(); |
|
160
8ddbf033f478
[gaim-migrate @ 170]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
149
diff
changeset
|
2186 | gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2187 | gtk_box_pack_end(GTK_BOX(hbox), b->new1, FALSE, FALSE, 0); |
| 475 | 2188 | |
| 2189 | /* Next Line */ | |
| 2190 | hbox = gtk_hbox_new(FALSE, 5); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2191 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2192 | |
| 475 | 2193 | label = gtk_label_new(_("New Password (again)")); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2194 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2195 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2196 | b->new2 = gtk_entry_new(); |
|
160
8ddbf033f478
[gaim-migrate @ 170]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
149
diff
changeset
|
2197 | gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2198 | gtk_box_pack_end(GTK_BOX(hbox), b->new2, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2199 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2200 | /* Now do our row of buttons */ |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2201 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2202 | gtk_box_pack_start(GTK_BOX(fbox), hbox, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2203 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2204 | b->ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
| 4092 | 2205 | gtk_box_pack_end(GTK_BOX(hbox), b->ok, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2206 | g_signal_connect(G_OBJECT(b->ok), "clicked", G_CALLBACK(do_change_password), b); |
| 4092 | 2207 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2208 | b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2209 | gtk_box_pack_end(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2210 | g_signal_connect(G_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2211 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2212 | gtk_widget_show_all(b->window); |
| 146 | 2213 | } |
| 2214 | ||
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2215 | void show_set_info(struct gaim_connection *gc) |
| 1 | 2216 | { |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2217 | GtkWidget *buttons; |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2218 | GtkWidget *label; |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2219 | GtkWidget *vbox; |
| 4119 | 2220 | GtkTextBuffer *buffer; |
| 2221 | GtkWidget *frame; | |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
2222 | gchar *buf; |
| 4491 | 2223 | struct gaim_account *account; |
|
1292
82820e0a3748
[gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents:
1288
diff
changeset
|
2224 | |
| 1 | 2225 | struct set_info_dlg *b = g_new0(struct set_info_dlg, 1); |
| 4491 | 2226 | account = gc->account; |
| 2227 | b->account = account; | |
| 1 | 2228 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
2229 | GAIM_DIALOG(b->window); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
2230 | gtk_window_set_role(GTK_WINDOW(b->window), "set_info"); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2231 | dialogwindows = g_list_prepend(dialogwindows, b->window); |
| 4703 | 2232 | gtk_window_set_title(GTK_WINDOW(b->window), _("Set User Info")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2233 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
960
c4012584334f
[gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
940
diff
changeset
|
2234 | gtk_widget_realize(b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2235 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2236 | vbox = gtk_vbox_new(FALSE, 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2237 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2238 | gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2239 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2240 | buf = g_malloc(256); |
| 4491 | 2241 | g_snprintf(buf, 256, _("Changing info for %s:"), account->username); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2242 | label = gtk_label_new(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2243 | g_free(buf); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2244 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); |
| 4491 | 2245 | |
| 4119 | 2246 | frame = gtk_frame_new(NULL); |
| 2247 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 2248 | gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); | |
| 2249 | ||
| 2250 | b->text = gtk_text_view_new(); | |
|
5105
3565a4c4de6a
[gaim-migrate @ 5468]
David J. Brigada <brigada@prism.net>
parents:
5092
diff
changeset
|
2251 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(b->text), GTK_WRAP_WORD_CHAR); |
| 4119 | 2252 | gtk_widget_set_size_request(b->text, 300, 200); |
| 4491 | 2253 | buf = g_malloc(strlen(account->user_info) + 1); |
| 2254 | strncpy_nohtml(buf, account->user_info, strlen(account->user_info) + 1); | |
| 4119 | 2255 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(b->text)); |
| 2256 | gtk_text_buffer_set_text(buffer, buf, -1); | |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2257 | g_free(buf); |
| 4119 | 2258 | gtk_container_add(GTK_CONTAINER(frame), b->text); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2259 | gtk_window_set_focus(GTK_WINDOW(b->window), b->text); |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2260 | |
|
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2261 | buttons = gtk_hbox_new(FALSE, 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2262 | gtk_box_pack_start(GTK_BOX(vbox), buttons, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2263 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2264 | b->save = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
| 4092 | 2265 | gtk_box_pack_end(GTK_BOX(buttons), b->save, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2266 | g_signal_connect(G_OBJECT(b->save), "clicked", G_CALLBACK(do_save_info), b); |
| 4092 | 2267 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2268 | b->cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2269 | gtk_box_pack_end(GTK_BOX(buttons), b->cancel, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2270 | g_signal_connect(G_OBJECT(b->cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2271 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2272 | gtk_widget_show_all(b->window); |
| 1 | 2273 | } |
| 2274 | ||
| 2275 | /*------------------------------------------------------------------------*/ | |
| 2276 | /* The dialog for the info requests */ | |
| 2277 | /*------------------------------------------------------------------------*/ | |
| 2278 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2279 | static void info_dlg_free(GtkWidget *b, struct info_dlg *d) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2280 | { |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2281 | if (g_slist_find(info_dlgs, d)) |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2282 | info_dlgs = g_slist_remove(info_dlgs, d); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2283 | g_free(d->who); |
|
1051
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1049
diff
changeset
|
2284 | g_free(d); |
|
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1049
diff
changeset
|
2285 | } |
|
d65ac9e2224f
[gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1049
diff
changeset
|
2286 | |
|
2791
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2287 | /* if away is 0, show regardless and try to get away message |
|
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2288 | * 1, don't show if regular info isn't shown |
|
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2289 | * 2, show regardless but don't try to get away message |
|
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2290 | * |
|
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2291 | * i wish this were my client. if i were i wouldn't have to deal with this shit. |
|
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2292 | */ |
| 5136 | 2293 | void g_show_info_text(struct gaim_connection *gc, const char *who, int away, const char *info, ...) |
| 1 | 2294 | { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2295 | GtkWidget *ok; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2296 | GtkWidget *label; |
| 1 | 2297 | GtkWidget *text; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2298 | GtkWidget *bbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2299 | GtkWidget *sw; |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2300 | gint options = 0; |
|
2137
b0c18ea1dee8
[gaim-migrate @ 2147]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2090
diff
changeset
|
2301 | char *more_info; |
|
b0c18ea1dee8
[gaim-migrate @ 2147]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2090
diff
changeset
|
2302 | va_list ap; |
| 1 | 2303 | |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2304 | struct info_dlg *b = find_info_dlg(gc, who); |
|
2791
26bdc3e83257
[gaim-migrate @ 2804]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2785
diff
changeset
|
2305 | if (!b && (away == 1)) |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2306 | return; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2307 | if (!b) { |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2308 | b = g_new0(struct info_dlg, 1); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2309 | b->gc = gc; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2310 | b->who = who ? g_strdup(normalize(who)) : NULL; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2311 | info_dlgs = g_slist_append(info_dlgs, b); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2312 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2313 | GAIM_DIALOG(b->window); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2314 | gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); |
| 4635 | 2315 | gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2316 | gtk_widget_realize(GTK_WIDGET(b->window)); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2317 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(info_dlg_free), b); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2318 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2319 | bbox = gtk_vbox_new(FALSE, 5); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2320 | gtk_container_add(GTK_CONTAINER(b->window), bbox); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2321 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2322 | label = gtk_label_new(_("Below are the results of your search: ")); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2323 | gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2324 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2325 | sw = gtk_scrolled_window_new(NULL, NULL); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2326 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3926 | 2327 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2328 | gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2329 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2330 | text = gtk_imhtml_new(NULL, NULL); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2331 | b->text = text; |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2332 | gtk_container_add(GTK_CONTAINER(sw), text); |
| 4635 | 2333 | gtk_widget_set_size_request(sw, 300, 250); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2334 | gaim_setup_imhtml(text); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2335 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2336 | ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2337 | g_signal_connect_swapped(G_OBJECT(ok), "clicked", G_CALLBACK(gtk_widget_destroy), |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2338 | G_OBJECT(b->window)); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2339 | gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2340 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2341 | gtk_widget_show_all(b->window); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2342 | } |
| 1 | 2343 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2344 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_colors")) |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2345 | options ^= GTK_IMHTML_NO_COLOURS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2346 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2347 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_fonts")) |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2348 | options ^= GTK_IMHTML_NO_FONTS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2349 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2350 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_font_sizes")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
2351 | options ^= GTK_IMHTML_NO_SIZES; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
2352 | |
|
1428
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2353 | options ^= GTK_IMHTML_NO_COMMENTS; |
|
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2354 | options ^= GTK_IMHTML_NO_TITLE; |
|
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2355 | options ^= GTK_IMHTML_NO_NEWLINE; |
|
c14bab2b74bb
[gaim-migrate @ 1438]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1399
diff
changeset
|
2356 | options ^= GTK_IMHTML_NO_SCROLL; |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2357 | |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2851
diff
changeset
|
2358 | gtk_imhtml_append_text(GTK_IMHTML(b->text), info, -1, options); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2359 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2360 | va_start(ap, info); |
|
5294
61f7b8ebd71d
[gaim-migrate @ 5666]
Mark Doliner <markdoliner@pidgin.im>
parents:
5275
diff
changeset
|
2361 | while ((more_info = va_arg(ap, char *)) != NULL) { |
|
61f7b8ebd71d
[gaim-migrate @ 5666]
Mark Doliner <markdoliner@pidgin.im>
parents:
5275
diff
changeset
|
2362 | gchar *linkifyinated = linkify_text(more_info); |
|
61f7b8ebd71d
[gaim-migrate @ 5666]
Mark Doliner <markdoliner@pidgin.im>
parents:
5275
diff
changeset
|
2363 | gtk_imhtml_append_text(GTK_IMHTML(b->text), linkifyinated, -1, options); |
|
61f7b8ebd71d
[gaim-migrate @ 5666]
Mark Doliner <markdoliner@pidgin.im>
parents:
5275
diff
changeset
|
2364 | g_free(linkifyinated); |
|
61f7b8ebd71d
[gaim-migrate @ 5666]
Mark Doliner <markdoliner@pidgin.im>
parents:
5275
diff
changeset
|
2365 | } |
|
2137
b0c18ea1dee8
[gaim-migrate @ 2147]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2090
diff
changeset
|
2366 | va_end(ap); |
|
2773
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2367 | |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2368 | if (away) |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2369 | info_dlgs = g_slist_remove(info_dlgs, b); |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2370 | else |
|
3f711c709792
[gaim-migrate @ 2786]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2763
diff
changeset
|
2371 | serv_get_away(gc, who); |
|
247
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
245
diff
changeset
|
2372 | } |
|
72198f34b362
[gaim-migrate @ 257]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
245
diff
changeset
|
2373 | |
| 1 | 2374 | /*------------------------------------------------------------------------*/ |
| 2375 | /* The dialog for adding to permit/deny */ | |
| 2376 | /*------------------------------------------------------------------------*/ | |
| 2377 | ||
| 2378 | ||
| 2379 | static void do_add_perm(GtkWidget *w, struct addperm *p) | |
| 2380 | { | |
| 2381 | ||
| 3466 | 2382 | const char *who; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2383 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2384 | who = gtk_entry_get_text(GTK_ENTRY(p->entry)); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2385 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2386 | if (!p->permit) { |
| 4491 | 2387 | if (gaim_privacy_deny_add(p->gc->account, who)) { |
| 4349 | 2388 | serv_add_deny(p->gc, who); |
| 2389 | build_block_list(); | |
| 2390 | gaim_blist_save(); | |
|
1126
298b587b26ac
[gaim-migrate @ 1136]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1125
diff
changeset
|
2391 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2392 | } else { |
| 4491 | 2393 | if (gaim_privacy_permit_add(p->gc->account, who)) { |
| 4349 | 2394 | serv_add_permit(p->gc, who); |
| 2395 | build_allow_list(); | |
| 2396 | gaim_blist_save(); | |
|
1126
298b587b26ac
[gaim-migrate @ 1136]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1125
diff
changeset
|
2397 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2398 | } |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2399 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2400 | destroy_dialog(NULL, p->window); |
| 1 | 2401 | } |
| 2402 | ||
| 2403 | ||
| 2404 | ||
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2405 | void show_add_perm(struct gaim_connection *gc, char *who, gboolean permit) |
| 1 | 2406 | { |
| 2407 | GtkWidget *cancel; | |
| 2408 | GtkWidget *add; | |
| 2409 | GtkWidget *label; | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2410 | GtkWidget *bbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2411 | GtkWidget *vbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2412 | GtkWidget *topbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2413 | |
| 486 | 2414 | struct addperm *p = g_new0(struct addperm, 1); |
|
1072
44ae81f8ea2e
[gaim-migrate @ 1082]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1057
diff
changeset
|
2415 | p->gc = gc; |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2416 | p->permit = permit; |
| 1 | 2417 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
2418 | GAIM_DIALOG(p->window); |
| 487 | 2419 | gtk_container_set_border_width(GTK_CONTAINER(p->window), 5); |
| 4635 | 2420 | gtk_window_set_resizable(GTK_WINDOW(p->window), FALSE); |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2421 | gtk_widget_realize(p->window); |
| 487 | 2422 | |
| 486 | 2423 | dialogwindows = g_list_prepend(dialogwindows, p->window); |
| 2424 | ||
| 4107 | 2425 | bbox = gtk_hbox_new(FALSE, 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2426 | topbox = gtk_hbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2427 | vbox = gtk_vbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2428 | p->entry = gtk_entry_new(); |
| 1 | 2429 | |
| 486 | 2430 | /* Build Add Button */ |
| 2431 | ||
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2432 | if (permit) |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2433 | add = gaim_pixbuf_button_from_stock(_("Permit"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL); |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2434 | else |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2435 | add = gaim_pixbuf_button_from_stock(_("Deny"), GTK_STOCK_ADD, GAIM_BUTTON_HORIZONTAL); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2436 | cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2437 | |
| 486 | 2438 | /* End of Cancel Button */ |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2439 | if (who != NULL) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2440 | gtk_entry_set_text(GTK_ENTRY(p->entry), who); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2441 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2442 | /* Put the buttons in the box */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2443 | |
| 4107 | 2444 | gtk_box_pack_end(GTK_BOX(bbox), add, FALSE, FALSE, 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2445 | gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2446 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2447 | label = gtk_label_new(_("Add")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2448 | gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2449 | gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2450 | /* And the boxes in the box */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2451 | gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2452 | gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); |
| 4107 | 2453 | topbox=gtk_hbox_new(FALSE, 5); |
| 2454 | gtk_box_pack_start(GTK_BOX(topbox), vbox, FALSE, FALSE, 5); | |
| 1 | 2455 | |
| 2456 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2457 | /* Handle closes right */ |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2458 | g_signal_connect(G_OBJECT(p->window), "destroy", G_CALLBACK(destroy_dialog), p->window); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2459 | g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), p->window); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2460 | g_signal_connect(G_OBJECT(add), "clicked", G_CALLBACK(do_add_perm), p); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2461 | g_signal_connect(G_OBJECT(p->entry), "activate", G_CALLBACK(do_add_perm), p); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2462 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2463 | /* Finish up */ |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2464 | if (permit) |
| 4703 | 2465 | gtk_window_set_title(GTK_WINDOW(p->window), _("Add Permit")); |
|
1144
623cb7b5f703
[gaim-migrate @ 1154]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1141
diff
changeset
|
2466 | else |
| 4703 | 2467 | gtk_window_set_title(GTK_WINDOW(p->window), _("Add Deny")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2468 | gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); |
| 4107 | 2469 | gtk_container_add(GTK_CONTAINER(p->window), topbox); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2470 | gtk_widget_realize(p->window); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2471 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2472 | gtk_widget_show_all(p->window); |
| 1 | 2473 | } |
| 2474 | ||
| 2475 | ||
| 2476 | /*------------------------------------------------------------------------*/ | |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
2477 | /* Functions Called To Add A Log */ |
| 1 | 2478 | /*------------------------------------------------------------------------*/ |
| 2479 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2480 | void cancel_log(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2481 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2482 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2483 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2484 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2485 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2486 | if (gtkconv->toolbar.log) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2487 | gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtkconv->toolbar.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2488 | FALSE); |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
2489 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2490 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2491 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2492 | gtk_widget_destroy(gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2493 | gtkconv->dialogs.log = NULL; |
|
608
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
2494 | } |
|
4c11ac40558f
[gaim-migrate @ 618]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
607
diff
changeset
|
2495 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2496 | void do_log(GtkWidget *w, struct gaim_conversation *c) |
| 1 | 2497 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2498 | struct gaim_gtk_conversation *gtkconv; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2499 | struct log_conversation *l; |
| 3466 | 2500 | const char *file; |
| 1035 | 2501 | char path[PATHSIZE]; |
| 1 | 2502 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2503 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2504 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2505 | if (!find_log_info(c->name)) { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2506 | file = gtk_file_selection_get_filename( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2507 | GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2508 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2509 | strncpy(path, file, PATHSIZE - 1); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2510 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2511 | if (file_is_dir(path, gtkconv->dialogs.log)) |
| 1035 | 2512 | return; |
| 2513 | ||
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2514 | l = (struct log_conversation *)g_new0(struct log_conversation, 1); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2515 | strcpy(l->name, gaim_conversation_get_name(c)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2516 | strcpy(l->filename, file); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2517 | log_conversations = g_list_append(log_conversations, l); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2518 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2519 | if (c != NULL) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2520 | gaim_conversation_set_logging(c, TRUE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2521 | } |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2522 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2523 | save_prefs(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2524 | cancel_log(NULL, c); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2525 | } |
| 1 | 2526 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2527 | void show_log_dialog(struct gaim_conversation *c) |
| 1 | 2528 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2529 | struct gaim_gtk_conversation *gtkconv; |
| 1 | 2530 | char *buf = g_malloc(BUF_LEN); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2531 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2532 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2533 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2534 | if (!gtkconv->dialogs.log) { |
| 4703 | 2535 | gtkconv->dialogs.log = gtk_file_selection_new(_("Log Conversation")); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2536 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2537 | gtk_file_selection_hide_fileop_buttons( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2538 | GTK_FILE_SELECTION(gtkconv->dialogs.log)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2539 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2540 | g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s.log", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2541 | gaim_home_dir(), normalize(c->name)); |
| 4635 | 2542 | g_object_set_data(G_OBJECT(gtkconv->dialogs.log), "dialog_type", |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2543 | "log dialog"); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2544 | gtk_file_selection_set_filename(GTK_FILE_SELECTION(gtkconv->dialogs.log), |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2545 | buf); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2546 | g_signal_connect(G_OBJECT(gtkconv->dialogs.log), "delete_event", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2547 | G_CALLBACK(delete_event_dialog), c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2548 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->ok_button), "clicked", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2549 | G_CALLBACK(do_log), c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2550 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.log)->cancel_button), "clicked", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2551 | G_CALLBACK(cancel_log), c); |
| 1 | 2552 | } |
| 2553 | ||
| 25 | 2554 | g_free(buf); |
| 2555 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2556 | gtk_widget_show(gtkconv->dialogs.log); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2557 | gdk_window_raise(gtkconv->dialogs.log->window); |
| 1 | 2558 | } |
| 2559 | ||
| 2560 | /*------------------------------------------------------*/ | |
| 2561 | /* Find Buddy By Email */ | |
| 2562 | /*------------------------------------------------------*/ | |
| 2563 | ||
| 2564 | void do_find_info(GtkWidget *w, struct findbyinfo *b) | |
| 2565 | { | |
| 3466 | 2566 | const char *first; |
| 2567 | const char *middle; | |
| 2568 | const char *last; | |
| 2569 | const char *maiden; | |
| 2570 | const char *city; | |
| 2571 | const char *state; | |
| 2572 | const char *country; | |
| 1 | 2573 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2574 | first = gtk_entry_get_text(GTK_ENTRY(b->firstentry)); |
| 1 | 2575 | middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry)); |
| 2576 | last = gtk_entry_get_text(GTK_ENTRY(b->lastentry)); | |
| 2577 | maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry)); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2578 | city = gtk_entry_get_text(GTK_ENTRY(b->cityentry)); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2579 | state = gtk_entry_get_text(GTK_ENTRY(b->stateentry)); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2580 | country = gtk_entry_get_text(GTK_ENTRY(b->countryentry)); |
| 1 | 2581 | |
|
2393
cfef0212506b
[gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2382
diff
changeset
|
2582 | serv_dir_search(b->gc, first, middle, last, maiden, city, state, country, ""); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2583 | destroy_dialog(NULL, b->window); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2584 | } |
| 1 | 2585 | |
| 2586 | void do_find_email(GtkWidget *w, struct findbyemail *b) | |
| 2587 | { | |
| 3466 | 2588 | const char *email; |
| 1 | 2589 | |
| 2590 | email = gtk_entry_get_text(GTK_ENTRY(b->emailentry)); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2591 | |
|
2598
2c9b82785013
[gaim-migrate @ 2611]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2582
diff
changeset
|
2592 | serv_dir_search(b->gc, "", "", "", "", "", "", "", email); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2593 | |
| 1 | 2594 | destroy_dialog(NULL, b->window); |
| 2595 | } | |
| 2596 | ||
|
2393
cfef0212506b
[gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2382
diff
changeset
|
2597 | void show_find_info(struct gaim_connection *gc) |
| 1 | 2598 | { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2599 | GtkWidget *cancel; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2600 | GtkWidget *ok; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2601 | GtkWidget *label; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2602 | GtkWidget *bbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2603 | GtkWidget *vbox; |
| 479 | 2604 | GtkWidget *hbox; |
| 2605 | GtkWidget *fbox; | |
| 2606 | GtkWidget *frame; | |
| 1 | 2607 | |
| 2608 | struct findbyinfo *b = g_new0(struct findbyinfo, 1); | |
|
2393
cfef0212506b
[gaim-migrate @ 2406]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2382
diff
changeset
|
2609 | b->gc = gc; |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
2610 | GAIM_DIALOG(b->window); |
| 4635 | 2611 | gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
2612 | gtk_window_set_role(GTK_WINDOW(b->window), "find_info"); |
| 479 | 2613 | |
| 2614 | dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 2615 | ||
| 2616 | frame = gtk_frame_new(_("Search for Buddy")); | |
| 2617 | fbox = gtk_vbox_new(FALSE, 5); | |
| 2618 | ||
| 2619 | /* Build OK Button */ | |
| 2620 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2621 | ok = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2622 | cancel = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
| 1 | 2623 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2624 | bbox = gtk_hbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2625 | vbox = gtk_vbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2626 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2627 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2628 | b->firstentry = gtk_entry_new(); |
| 1 | 2629 | b->middleentry = gtk_entry_new(); |
| 2630 | b->lastentry = gtk_entry_new(); | |
| 2631 | b->maidenentry = gtk_entry_new(); | |
| 2632 | b->cityentry = gtk_entry_new(); | |
| 2633 | b->stateentry = gtk_entry_new(); | |
| 2634 | b->countryentry = gtk_entry_new(); | |
| 2635 | ||
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4316
diff
changeset
|
2636 | gtk_box_pack_end(GTK_BOX(bbox), ok, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2637 | gtk_box_pack_end(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); |
| 1 | 2638 | |
| 479 | 2639 | /* Line 1 */ |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2640 | label = gtk_label_new(_("First Name")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2641 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2642 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2643 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2644 | gtk_box_pack_end(GTK_BOX(hbox), b->firstentry, FALSE, FALSE, 0); |
| 479 | 2645 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2646 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2647 | |
| 2648 | /* Line 2 */ | |
| 1 | 2649 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2650 | label = gtk_label_new(_("Middle Name")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2651 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2652 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2653 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2654 | gtk_box_pack_end(GTK_BOX(hbox), b->middleentry, FALSE, FALSE, 0); |
| 479 | 2655 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2656 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2657 | |
| 2658 | /* Line 3 */ | |
| 2659 | ||
| 2660 | label = gtk_label_new(_("Last Name")); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2661 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2662 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2663 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2664 | gtk_box_pack_end(GTK_BOX(hbox), b->lastentry, FALSE, FALSE, 0); |
| 479 | 2665 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2666 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2667 | |
| 2668 | /* Line 4 */ | |
| 2669 | ||
| 2670 | label = gtk_label_new(_("Maiden Name")); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2671 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2672 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2673 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2674 | gtk_box_pack_end(GTK_BOX(hbox), b->maidenentry, FALSE, FALSE, 0); |
| 479 | 2675 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2676 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2677 | |
| 2678 | /* Line 5 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2679 | |
| 479 | 2680 | label = gtk_label_new(_("City")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2681 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2682 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2683 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2684 | gtk_box_pack_end(GTK_BOX(hbox), b->cityentry, FALSE, FALSE, 0); |
| 479 | 2685 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2686 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2687 | |
| 2688 | /* Line 6 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2689 | label = gtk_label_new(_("State")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2690 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2691 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2692 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2693 | gtk_box_pack_end(GTK_BOX(hbox), b->stateentry, FALSE, FALSE, 0); |
| 479 | 2694 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2695 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2696 | |
| 2697 | /* Line 7 */ | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2698 | label = gtk_label_new(_("Country")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2699 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2700 | hbox = gtk_hbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2701 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2702 | gtk_box_pack_end(GTK_BOX(hbox), b->countryentry, FALSE, FALSE, 0); |
| 479 | 2703 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2704 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 479 | 2705 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2706 | /* Merge The Boxes */ |
| 479 | 2707 | |
| 2708 | gtk_container_add(GTK_CONTAINER(frame), vbox); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2709 | gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2710 | gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 0); |
| 1 | 2711 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2712 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2713 | g_signal_connect(G_OBJECT(cancel), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2714 | g_signal_connect(G_OBJECT(ok), "clicked", G_CALLBACK(do_find_info), b); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2715 | |
| 4703 | 2716 | gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Info")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2717 | gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2718 | gtk_container_add(GTK_CONTAINER(b->window), fbox); |
| 4635 | 2719 | gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2720 | gtk_widget_realize(b->window); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2721 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2722 | gtk_widget_show_all(b->window); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2723 | } |
| 1 | 2724 | |
|
1535
b118fbab0556
[gaim-migrate @ 1545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
2725 | void show_find_email(struct gaim_connection *gc) |
| 1 | 2726 | { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2727 | GtkWidget *label; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2728 | GtkWidget *bbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2729 | GtkWidget *vbox; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2730 | GtkWidget *frame; |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2731 | GtkWidget *topbox; |
| 444 | 2732 | GtkWidget *button; |
| 1 | 2733 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2734 | struct findbyemail *b = g_new0(struct findbyemail, 1); |
|
1535
b118fbab0556
[gaim-migrate @ 1545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
2735 | if (g_slist_find(connections, gc)) |
|
b118fbab0556
[gaim-migrate @ 1545]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1499
diff
changeset
|
2736 | b->gc = gc; |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
2737 | GAIM_DIALOG(b->window); |
| 4635 | 2738 | gtk_window_set_resizable(GTK_WINDOW(b->window), TRUE); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
2739 | gtk_window_set_role(GTK_WINDOW(b->window), "find_email"); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2740 | gtk_widget_realize(b->window); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2741 | dialogwindows = g_list_prepend(dialogwindows, b->window); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2742 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(destroy_dialog), b->window); |
| 4703 | 2743 | gtk_window_set_title(GTK_WINDOW(b->window), _("Find Buddy By Email")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2744 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2745 | vbox = gtk_vbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2746 | gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2747 | gtk_container_add(GTK_CONTAINER(b->window), vbox); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2748 | |
| 444 | 2749 | frame = gtk_frame_new(_("Search for Buddy")); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2750 | gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2751 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2752 | topbox = gtk_hbox_new(FALSE, 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2753 | gtk_container_add(GTK_CONTAINER(frame), topbox); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2754 | gtk_container_set_border_width(GTK_CONTAINER(topbox), 5); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2755 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2756 | label = gtk_label_new(_("Email")); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2757 | gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 0); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2758 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2759 | b->emailentry = gtk_entry_new(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2760 | gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, TRUE, TRUE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2761 | g_signal_connect(G_OBJECT(b->emailentry), "activate", G_CALLBACK(do_find_email), b); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2762 | gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry); |
|
1499
0c3286729687
[gaim-migrate @ 1509]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1488
diff
changeset
|
2763 | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2764 | bbox = gtk_hbox_new(FALSE, 5); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2765 | gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); |
| 444 | 2766 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2767 | button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2768 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(do_find_email), b); |
| 4094 | 2769 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
| 2770 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2771 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
2772 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), b->window); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2773 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
2774 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2775 | gtk_widget_show_all(b->window); |
| 1 | 2776 | } |
| 2777 | ||
| 2778 | /*------------------------------------------------------*/ | |
| 2779 | /* Link Dialog */ | |
| 2780 | /*------------------------------------------------------*/ | |
| 2781 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2782 | void cancel_link(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 2783 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2784 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2785 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2786 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2787 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2788 | if (gtkconv->toolbar.link) { |
| 4635 | 2789 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2790 | FALSE); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
2791 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2792 | |
| 4685 | 2793 | destroy_dialog(NULL, gtkconv->dialogs.link); |
| 2794 | gtkconv->dialogs.link = NULL; | |
| 1 | 2795 | } |
| 2796 | ||
| 4262 | 2797 | void do_insert_link(GtkWidget *w, int resp, struct linkdlg *b) |
| 1 | 2798 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2799 | struct gaim_gtk_conversation *gtkconv; |
| 1 | 2800 | char *open_tag; |
| 3466 | 2801 | const char *urltext, *showtext; |
| 4262 | 2802 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2803 | gtkconv = GAIM_GTK_CONVERSATION(b->c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2804 | |
| 4262 | 2805 | if (resp == GTK_RESPONSE_OK) { |
| 2806 | ||
| 2807 | open_tag = g_malloc(2048); | |
| 2808 | ||
| 2809 | urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); | |
| 2810 | showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 2811 | ||
| 2812 | if (!strlen(showtext)) | |
| 2813 | showtext = urltext; | |
| 2814 | ||
| 2815 | g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2816 | gaim_gtk_surround(gtkconv, open_tag, "</A>"); |
| 4262 | 2817 | |
| 2818 | g_free(open_tag); | |
| 2819 | } | |
| 2820 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2821 | if (gtkconv->toolbar.link) { |
| 4635 | 2822 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.link), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2823 | FALSE); |
| 4262 | 2824 | } |
| 2825 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2826 | gtkconv->dialogs.link = NULL; |
| 1 | 2827 | destroy_dialog(NULL, b->window); |
| 2828 | } | |
| 2829 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2830 | void show_insert_link(GtkWidget *linky, struct gaim_conversation *c) |
| 1 | 2831 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2832 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2833 | struct gaim_gtk_window *gtkwin; |
| 4262 | 2834 | GtkWidget *table; |
| 2835 | GtkWidget *label; | |
| 2836 | GtkWidget *hbox; | |
| 1 | 2837 | GtkWidget *vbox; |
| 2838 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2839 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2840 | gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2841 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2842 | if (gtkconv->dialogs.link == NULL) { |
| 4262 | 2843 | struct linkdlg *a = g_new0(struct linkdlg, 1); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
2844 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
| 4262 | 2845 | |
| 2846 | a->c = c; | |
| 4703 | 2847 | a->window = gtk_dialog_new_with_buttons(_("Insert Link"), |
| 5092 | 2848 | GTK_WINDOW(gtkwin->window), 0, GTK_STOCK_CANCEL, |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2849 | GTK_RESPONSE_CANCEL, _("Insert"), GTK_RESPONSE_OK, NULL); |
| 4262 | 2850 | |
| 2851 | gtk_dialog_set_default_response(GTK_DIALOG(a->window), GTK_RESPONSE_OK); | |
| 2852 | gtk_container_set_border_width(GTK_CONTAINER(a->window), 6); | |
| 2853 | gtk_window_set_resizable(GTK_WINDOW(a->window), FALSE); | |
| 2854 | gtk_dialog_set_has_separator(GTK_DIALOG(a->window), FALSE); | |
| 2855 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(a->window)->vbox), 12); | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2856 | gtk_container_set_border_width( |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2857 | GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), 6); |
| 4262 | 2858 | gtk_window_set_role(GTK_WINDOW(a->window), "insert_link"); |
| 2859 | ||
| 2860 | hbox = gtk_hbox_new(FALSE, 12); | |
| 2861 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(a->window)->vbox), hbox); | |
| 2862 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 2863 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 2864 | ||
| 2865 | vbox = gtk_vbox_new(FALSE, 0); | |
| 2866 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 2867 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2868 | label = gtk_label_new(_("Please enter the URL and description of " |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2869 | "the link that you want to insert. The " |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2870 | "description is optional.\n")); |
| 4262 | 2871 | |
| 2872 | gtk_widget_set_size_request(GTK_WIDGET(label), 335, -1); | |
| 2873 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 2874 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 2875 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 2876 | ||
| 2877 | hbox = gtk_hbox_new(FALSE, 6); | |
| 2878 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 2879 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2880 | g_signal_connect(G_OBJECT(a->window), "destroy", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2881 | G_CALLBACK(destroy_dialog), a->window); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2882 | g_signal_connect(G_OBJECT(a->window), "destroy", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2883 | G_CALLBACK(free_dialog), a); |
| 4262 | 2884 | dialogwindows = g_list_prepend(dialogwindows, a->window); |
| 2885 | ||
| 2886 | table = gtk_table_new(4, 2, FALSE); | |
| 2887 | gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 2888 | gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 2889 | gtk_container_set_border_width(GTK_CONTAINER(table), 0); | |
| 2890 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | |
| 2891 | ||
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
2892 | label = gtk_label_new(_("URL")); |
| 4262 | 2893 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2894 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 2895 | ||
| 2896 | a->url = gtk_entry_new(); | |
| 2897 | gtk_table_attach_defaults(GTK_TABLE(table), a->url, 1, 2, 0, 1); | |
| 2898 | gtk_widget_grab_focus(a->url); | |
| 2899 | ||
| 2900 | gtk_entry_set_activates_default (GTK_ENTRY(a->url), TRUE); | |
| 2901 | ||
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
2902 | label = gtk_label_new(_("Description")); |
| 4262 | 2903 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
| 2904 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 2905 | ||
| 2906 | a->text = gtk_entry_new(); | |
| 2907 | gtk_table_attach_defaults(GTK_TABLE(table), a->text, 1, 2, 1, 2); | |
| 2908 | gtk_entry_set_activates_default (GTK_ENTRY(a->text), TRUE); | |
| 2909 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2910 | g_signal_connect(G_OBJECT(a->window), "response", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2911 | G_CALLBACK(do_insert_link), a); |
| 4262 | 2912 | |
| 2913 | a->toggle = linky; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2914 | gtkconv->dialogs.link = a->window; |
| 1 | 2915 | } |
| 2916 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2917 | gtk_widget_show_all(gtkconv->dialogs.link); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2918 | gdk_window_raise(gtkconv->dialogs.link->window); |
| 1 | 2919 | } |
| 2920 | ||
| 2921 | /*------------------------------------------------------*/ | |
| 2922 | /* Color Selection Dialog */ | |
| 2923 | /*------------------------------------------------------*/ | |
| 2924 | ||
| 3367 | 2925 | GtkWidget *fgcseld = NULL; |
| 2926 | GtkWidget *bgcseld = NULL; | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
2927 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2928 | void cancel_fgcolor(GtkWidget *widget, struct gaim_conversation *c) |
| 1 | 2929 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2930 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2931 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2932 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2933 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2934 | if (gtkconv->toolbar.fgcolor && widget) { |
| 4635 | 2935 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.fgcolor), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2936 | FALSE); |
| 61 | 2937 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2938 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2939 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2940 | gtk_widget_destroy(gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2941 | gtkconv->dialogs.fg_color = NULL; |
| 1 | 2942 | } |
| 2943 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2944 | void cancel_bgcolor(GtkWidget *widget, struct gaim_conversation *c) |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2945 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2946 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2947 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2948 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2949 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2950 | if (gtkconv->toolbar.bgcolor && widget) { |
| 4635 | 2951 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.bgcolor), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2952 | FALSE); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2953 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2954 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2955 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2956 | gtk_widget_destroy(gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2957 | gtkconv->dialogs.bg_color = NULL; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2958 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2959 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2960 | void do_fgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
| 1 | 2961 | { |
| 2962 | GdkColor text_color; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2963 | struct gaim_conversation *c; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2964 | struct gaim_gtk_conversation *gtkconv; |
| 1 | 2965 | char *open_tag; |
| 2966 | ||
| 2967 | open_tag = g_malloc(30); | |
| 2968 | ||
| 3557 | 2969 | gtk_color_selection_get_current_color(colorsel, &text_color); |
| 1 | 2970 | |
| 4635 | 2971 | c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
411
4e2ed8c4c0f8
[gaim-migrate @ 421]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
401
diff
changeset
|
2972 | /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
2973 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2974 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2975 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2976 | gtkconv->fg_color = text_color; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2977 | g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2978 | text_color.red / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2979 | text_color.green / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2980 | text_color.blue / 256); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2981 | gaim_gtk_surround(gtkconv, open_tag, "</FONT>"); |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2982 | |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2983 | gaim_debug(GAIM_DEBUG_MISC, "fgcolor dialog", "#%02X%02X%02X\n", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2984 | text_color.red / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2985 | text_color.green / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
2986 | text_color.blue / 256); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
2987 | g_free(open_tag); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2988 | cancel_fgcolor(NULL, c); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2989 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2990 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2991 | void do_bgcolor(GtkWidget *widget, GtkColorSelection *colorsel) |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2992 | { |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2993 | GdkColor text_color; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2994 | struct gaim_conversation *c; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
2995 | struct gaim_gtk_conversation *gtkconv; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2996 | char *open_tag; |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2997 | |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2998 | open_tag = g_malloc(30); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
2999 | |
| 3557 | 3000 | gtk_color_selection_get_current_color(colorsel, &text_color); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3001 | |
| 4635 | 3002 | c = g_object_get_data(G_OBJECT(colorsel), "gaim_conversation"); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3003 | /* GTK_IS_EDITABLE(c->entry); huh? */ |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3004 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3005 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3006 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3007 | gtkconv->bg_color = text_color; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3008 | g_snprintf(open_tag, 25, "<BODY BGCOLOR=\"#%02X%02X%02X\">", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3009 | text_color.red / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3010 | text_color.green / 256, |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3011 | text_color.blue / 256); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3012 | gaim_gtk_surround(gtkconv, open_tag, "</BODY>"); |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
3013 | gaim_debug(GAIM_DEBUG_MISC, "bgcolor dialog", "#%02X%02X%02X\n", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
3014 | text_color.red / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
3015 | text_color.green / 256, |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
3016 | text_color.blue / 256); |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
3017 | |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3018 | g_free(open_tag); |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3019 | cancel_bgcolor(NULL, c); |
| 1 | 3020 | } |
| 3021 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3022 | void show_fgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
| 1 | 3023 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3024 | struct gaim_gtk_conversation *gtkconv; |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
3025 | GtkWidget *colorsel; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3026 | GdkColor fgcolor; |
| 1 | 3027 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3028 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3029 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3030 | gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/fgcolor"), |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3031 | &fgcolor); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3032 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3033 | if (color == NULL) { /* we came from the prefs */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3034 | if (fgcseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3035 | return; |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
3036 | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3037 | fgcseld = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3038 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
|
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3039 | (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), &fgcolor); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3040 | g_signal_connect(G_OBJECT(fgcseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3041 | G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3042 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3043 | "clicked", G_CALLBACK(destroy_colorsel), (void *)1); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3044 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(fgcseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3045 | G_CALLBACK(apply_color_dlg), (void *)1); |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3046 | gtk_widget_realize(fgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3047 | gtk_widget_show(fgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3048 | gdk_window_raise(fgcseld->window); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3049 | return; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3050 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3051 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3052 | if (!gtkconv->dialogs.fg_color) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3053 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3054 | gtkconv->dialogs.fg_color = gtk_color_selection_dialog_new(_("Select Text Color")); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3055 | colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->colorsel; |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3056 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &fgcolor); |
| 4635 | 3057 | g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
3058 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3059 | g_signal_connect(G_OBJECT(gtkconv->dialogs.fg_color), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3060 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3061 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3062 | "clicked", G_CALLBACK(do_fgcolor), colorsel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3063 | g_signal_connect(G_OBJECT |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3064 | (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.fg_color)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3065 | "clicked", G_CALLBACK(cancel_fgcolor), c); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3066 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3067 | gtk_widget_realize(gtkconv->dialogs.fg_color); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3068 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3069 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3070 | gtk_widget_show(gtkconv->dialogs.fg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3071 | gdk_window_raise(gtkconv->dialogs.fg_color->window); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3072 | } |
|
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3073 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3074 | void show_bgcolor_dialog(struct gaim_conversation *c, GtkWidget *color) |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3075 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3076 | struct gaim_gtk_conversation *gtkconv; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3077 | GtkWidget *colorsel; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3078 | GdkColor bgcolor; |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3079 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3080 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3081 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3082 | gdk_color_parse(gaim_prefs_get_string("/gaim/gtk/conversations/bgcolor"), |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3083 | &bgcolor); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3084 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3085 | if (color == NULL) { /* we came from the prefs */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3086 | if (bgcseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3087 | return; |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
3088 | |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3089 | bgcseld = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3090 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION |
|
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3091 | (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), &bgcolor); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3092 | g_signal_connect(G_OBJECT(bgcseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3093 | G_CALLBACK(destroy_colorsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3094 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3095 | "clicked", G_CALLBACK(destroy_colorsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3096 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(bgcseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3097 | G_CALLBACK(apply_color_dlg), (void *)2); |
|
657
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3098 | gtk_widget_realize(bgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3099 | gtk_widget_show(bgcseld); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3100 | gdk_window_raise(bgcseld->window); |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3101 | return; |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3102 | } |
|
2407d672e506
[gaim-migrate @ 667]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
654
diff
changeset
|
3103 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3104 | if (!gtkconv->dialogs.bg_color) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3105 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3106 | gtkconv->dialogs.bg_color = gtk_color_selection_dialog_new(_("Select Background Color")); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3107 | colorsel = GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->colorsel; |
|
4198
f4afa1d7a842
[gaim-migrate @ 4429]
Alex Converse <alex.converse@gmail.com>
parents:
4183
diff
changeset
|
3108 | gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel), &bgcolor); |
| 4635 | 3109 | g_object_set_data(G_OBJECT(colorsel), "gaim_conversation", c); |
|
2209
db87ba068b9c
[gaim-migrate @ 2219]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2143
diff
changeset
|
3110 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3111 | g_signal_connect(G_OBJECT(gtkconv->dialogs.bg_color), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3112 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3113 | g_signal_connect(G_OBJECT(GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3114 | "clicked", G_CALLBACK(do_bgcolor), colorsel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3115 | g_signal_connect(G_OBJECT |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3116 | (GTK_COLOR_SELECTION_DIALOG(gtkconv->dialogs.bg_color)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3117 | "clicked", G_CALLBACK(cancel_bgcolor), c); |
|
858
e514a22143a3
[gaim-migrate @ 868]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
854
diff
changeset
|
3118 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3119 | gtk_widget_realize(gtkconv->dialogs.bg_color); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
3120 | } |
| 1 | 3121 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3122 | gtk_widget_show(gtkconv->dialogs.bg_color); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3123 | gdk_window_raise(gtkconv->dialogs.bg_color->window); |
| 1 | 3124 | } |
| 3125 | ||
| 3126 | /*------------------------------------------------------------------------*/ | |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3127 | /* Font Selection Dialog */ |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3128 | /*------------------------------------------------------------------------*/ |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3129 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3130 | void cancel_font(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3131 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3132 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3133 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3134 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3135 | |
| 4685 | 3136 | if (gtkconv->toolbar.font && widget) { |
| 4635 | 3137 | gtk_toggle_button_set_active( |
| 4685 | 3138 | GTK_TOGGLE_BUTTON(gtkconv->toolbar.font), FALSE); |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
3139 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3140 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3141 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.font); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3142 | gtk_widget_destroy(gtkconv->dialogs.font); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3143 | gtkconv->dialogs.font = NULL; |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3144 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3145 | |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3146 | void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3147 | { |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3148 | /* this could be expanded to include font size, weight, etc. |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3149 | but for now only works with font face */ |
| 3473 | 3150 | int i = 0; |
|
666
0a313fec9a15
[gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
657
diff
changeset
|
3151 | char *fontname; |
| 4635 | 3152 | struct gaim_conversation *c = g_object_get_data(G_OBJECT(fontsel), |
| 3153 | "gaim_conversation"); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3154 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3155 | fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3156 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3157 | if (c) { |
| 4635 | 3158 | while(fontname[i] && !isdigit(fontname[i])) { |
| 3473 | 3159 | i++; |
| 3160 | } | |
| 3161 | fontname[i] = 0; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3162 | gaim_gtk_set_font_face(GAIM_GTK_CONVERSATION(c), fontname); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3163 | } else { |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3164 | char *c; |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3165 | |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3166 | fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3167 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3168 | for (c = fontname; *c != '\0'; c++) { |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3169 | if (isdigit(*c)) { |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3170 | *(--c) = '\0'; |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3171 | break; |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3172 | } |
|
234
100138758e8d
[gaim-migrate @ 244]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
231
diff
changeset
|
3173 | } |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3174 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3175 | gaim_prefs_set_string("/gaim/gtk/conversations/font_face", fontname); |
|
234
100138758e8d
[gaim-migrate @ 244]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
231
diff
changeset
|
3176 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3177 | |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3178 | g_free(fontname); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3179 | |
|
311
971d26b73be6
[gaim-migrate @ 321]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
308
diff
changeset
|
3180 | cancel_font(NULL, c); |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3181 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3182 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3183 | void destroy_fontsel(GtkWidget *w, gpointer d) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3184 | { |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3185 | gtk_widget_destroy(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3186 | fontseld = NULL; |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3187 | } |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3188 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3189 | void show_font_dialog(struct gaim_conversation *c, GtkWidget *font) |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3190 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3191 | struct gaim_gtk_conversation *gtkconv; |
| 3473 | 3192 | char fonttif[128]; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3193 | const char *fontface; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3194 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3195 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3196 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3197 | if (!font) { /* we came from the prefs dialog */ |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3198 | if (fontseld) |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3199 | return; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3200 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
3201 | fontseld = gtk_font_selection_dialog_new(_("Select Font")); |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3202 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3203 | fontface = gaim_prefs_get_string("/gaim/gtk/conversations/font_face"); |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3204 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
3205 | if (fontface != NULL && *fontface != '\0') { |
| 3473 | 3206 | g_snprintf(fonttif, sizeof(fonttif), "%s 12", fontface); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3207 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 3208 | fonttif); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3209 | } else { |
|
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3210 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), |
| 3473 | 3211 | DEFAULT_FONT_FACE " 12"); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3212 | } |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3213 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3214 | g_signal_connect(G_OBJECT(fontseld), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3215 | G_CALLBACK(destroy_fontsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3216 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3217 | "clicked", G_CALLBACK(destroy_fontsel), NULL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3218 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3219 | G_CALLBACK(apply_font_dlg), fontseld); |
|
334
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3220 | gtk_widget_realize(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3221 | gtk_widget_show(fontseld); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3222 | gdk_window_raise(fontseld->window); |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3223 | return; |
|
520b6eb5ed7e
[gaim-migrate @ 344]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
311
diff
changeset
|
3224 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3225 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3226 | if (!gtkconv->dialogs.font) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3227 | gtkconv->dialogs.font = gtk_font_selection_dialog_new(_("Select Font")); |
|
234
100138758e8d
[gaim-migrate @ 244]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
231
diff
changeset
|
3228 | |
| 4635 | 3229 | g_object_set_data(G_OBJECT(gtkconv->dialogs.font), "gaim_conversation", c); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3230 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3231 | if (gtkconv->fontface[0]) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3232 | g_snprintf(fonttif, sizeof(fonttif), "%s 12", gtkconv->fontface); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3233 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3234 | fonttif); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3235 | } else { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3236 | gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font), |
| 3473 | 3237 | DEFAULT_FONT_FACE); |
|
2763
18a8e555039b
[gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2761
diff
changeset
|
3238 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3239 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3240 | g_signal_connect(G_OBJECT(gtkconv->dialogs.font), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3241 | G_CALLBACK(delete_event_dialog), c); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3242 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->ok_button), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3243 | "clicked", G_CALLBACK(apply_font), gtkconv->dialogs.font); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3244 | g_signal_connect(G_OBJECT(GTK_FONT_SELECTION_DIALOG(gtkconv->dialogs.font)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3245 | "clicked", G_CALLBACK(cancel_font), c); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3246 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3247 | gtk_widget_realize(gtkconv->dialogs.font); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3248 | |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3249 | } |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3250 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3251 | gtk_widget_show(gtkconv->dialogs.font); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3252 | gdk_window_raise(gtkconv->dialogs.font->window); |
|
230
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3253 | } |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3254 | |
|
5afbb3468f11
[gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
229
diff
changeset
|
3255 | /*------------------------------------------------------------------------*/ |
| 1 | 3256 | /* The dialog for new away messages */ |
| 3257 | /*------------------------------------------------------------------------*/ | |
| 3258 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3259 | static struct away_message *save_away_message(struct create_away *ca) |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3260 | { |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3261 | struct away_message *am; |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3262 | gchar *away_message; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3263 | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3264 | if (!ca->mess) |
|
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3265 | am = g_new0(struct away_message, 1); |
|
2851
b2bc75288ea1
[gaim-migrate @ 2864]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
3266 | else { |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3267 | am = ca->mess; |
|
2851
b2bc75288ea1
[gaim-migrate @ 2864]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2827
diff
changeset
|
3268 | } |
| 1387 | 3269 | |
| 4119 | 3270 | |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3271 | g_snprintf(am->name, sizeof(am->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3272 | away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3273 | |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3274 | g_snprintf(am->message, sizeof(am->message), "%s", away_message); |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3275 | g_free(away_message); |
|
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3276 | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3277 | if (!ca->mess) { |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3278 | away_messages = g_slist_insert_sorted(away_messages, am, sort_awaymsg_list); |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3279 | } |
|
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3280 | |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3281 | save_prefs(); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3282 | do_away_menu(); |
|
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3283 | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3284 | return am; |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3285 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3286 | |
| 1387 | 3287 | int check_away_mess(struct create_away *ca, int type) |
| 3288 | { | |
| 4630 | 3289 | char *msg; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3290 | if ((strlen(gtk_entry_get_text(GTK_ENTRY(ca->entry))) == 0) && (type == 1)) { |
| 1387 | 3291 | /* We shouldn't allow a blank title */ |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3292 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3293 | _("You cannot save an away message with a " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3294 | "blank title"), |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3295 | _("Please give the message a title, or choose " |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3296 | "\"Use\" to use without saving.")); |
| 1387 | 3297 | return 0; |
| 3298 | } | |
| 3299 | ||
| 4630 | 3300 | msg = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
| 3301 | ||
| 3302 | if (!msg && (type <= 1)) { | |
| 1387 | 3303 | /* We shouldn't allow a blank message */ |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3304 | gaim_notify_error(NULL, NULL, |
|
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3305 | _("You cannot create an empty away message"), NULL); |
| 1387 | 3306 | return 0; |
| 3307 | } | |
| 3308 | ||
| 4630 | 3309 | g_free(msg); |
| 3310 | ||
| 1387 | 3311 | return 1; |
| 3312 | } | |
| 3313 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3314 | void save_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3315 | { |
| 1387 | 3316 | if (!check_away_mess(ca, 1)) |
| 3317 | return; | |
| 3318 | ||
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3319 | save_away_message(ca); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3320 | destroy_dialog(NULL, ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3321 | g_free(ca); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3322 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3323 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3324 | void use_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3325 | { |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3326 | static struct away_message am; |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3327 | gchar *away_message; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3328 | |
| 1387 | 3329 | if (!check_away_mess(ca, 0)) |
| 3330 | return; | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3331 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3332 | g_snprintf(am.name, sizeof(am.name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); |
| 4119 | 3333 | away_message = gtk_text_view_get_text(GTK_TEXT_VIEW(ca->text), FALSE); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3334 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3335 | g_snprintf(am.message, sizeof(am.message), "%s", away_message); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3336 | g_free(away_message); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3337 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3338 | do_away_message(NULL, &am); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3339 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3340 | destroy_dialog(NULL, ca->window); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3341 | g_free(ca); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3342 | } |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3343 | |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3344 | void su_away_mess(GtkWidget *widget, struct create_away *ca) |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3345 | { |
| 1387 | 3346 | if (!check_away_mess(ca, 1)) |
| 3347 | return; | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3348 | do_away_message(NULL, save_away_message(ca)); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3349 | destroy_dialog(NULL, ca->window); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3350 | g_free(ca); |
|
717
acdd0019f9f8
[gaim-migrate @ 727]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
710
diff
changeset
|
3351 | } |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3352 | |
| 1 | 3353 | void create_away_mess(GtkWidget *widget, void *dummy) |
| 3354 | { | |
| 439 | 3355 | GtkWidget *hbox; |
| 1 | 3356 | GtkWidget *titlebox; |
| 3357 | GtkWidget *tbox; | |
| 3358 | GtkWidget *label; | |
| 439 | 3359 | GtkWidget *frame; |
| 3360 | GtkWidget *fbox; | |
| 441 | 3361 | GtkWidget *button; |
| 1 | 3362 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3363 | struct create_away *ca = g_new0(struct create_away, 1); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3364 | |
| 1 | 3365 | /* Set up window */ |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
3366 | GAIM_DIALOG(ca->window); |
| 4635 | 3367 | gtk_widget_set_size_request(ca->window, -1, 250); |
| 3368 | gtk_container_set_border_width(GTK_CONTAINER(ca->window), 5); | |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
3369 | gtk_window_set_role(GTK_WINDOW(ca->window), "away_mess"); |
| 4703 | 3370 | gtk_window_set_title(GTK_WINDOW(ca->window), _("New away message")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3371 | g_signal_connect(G_OBJECT(ca->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3372 | G_CALLBACK(destroy_dialog), ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3373 | gtk_widget_realize(ca->window); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3374 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3375 | tbox = gtk_vbox_new(FALSE, 5); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3376 | gtk_container_add(GTK_CONTAINER(ca->window), tbox); |
| 439 | 3377 | |
| 3378 | frame = gtk_frame_new(_("New away message")); | |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3379 | gtk_box_pack_start(GTK_BOX(tbox), frame, TRUE, TRUE, 0); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3380 | |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
3381 | fbox = gtk_vbox_new(FALSE, 5); |
|
1224
252fad5b9d30
[gaim-migrate @ 1234]
Decklin Foster <decklin@red-bean.com>
parents:
1216
diff
changeset
|
3382 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3383 | gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3384 | |
|
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3385 | titlebox = gtk_hbox_new(FALSE, 5); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3386 | gtk_box_pack_start(GTK_BOX(fbox), titlebox, FALSE, FALSE, 0); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3387 | |
|
350
b02a56431923
[gaim-migrate @ 360]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
349
diff
changeset
|
3388 | label = gtk_label_new(_("Away title: ")); |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
3389 | gtk_box_pack_start(GTK_BOX(titlebox), label, FALSE, FALSE, 0); |
|
1185
4e850e2011e4
[gaim-migrate @ 1195]
Decklin Foster <decklin@red-bean.com>
parents:
1174
diff
changeset
|
3390 | |
| 1 | 3391 | ca->entry = gtk_entry_new(); |
|
1172
5c0e6410a272
[gaim-migrate @ 1182]
Decklin Foster <decklin@red-bean.com>
parents:
1171
diff
changeset
|
3392 | gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3393 | gtk_widget_grab_focus(ca->entry); |
| 1 | 3394 | |
| 4119 | 3395 | frame = gtk_frame_new(NULL); |
| 3396 | gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); | |
| 3397 | gtk_box_pack_start(GTK_BOX(fbox), frame, TRUE, TRUE, 0); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3398 | |
| 4119 | 3399 | ca->text = gtk_text_view_new(); |
|
5105
3565a4c4de6a
[gaim-migrate @ 5468]
David J. Brigada <brigada@prism.net>
parents:
5092
diff
changeset
|
3400 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(ca->text), GTK_WRAP_WORD_CHAR); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3401 | |
| 4119 | 3402 | gtk_container_add(GTK_CONTAINER(frame), ca->text); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3403 | |
| 3374 | 3404 | if (dummy) { |
| 3405 | struct away_message *amt; | |
| 3406 | GtkTreeIter iter; | |
| 3407 | int pos = 0; | |
| 3408 | GtkListStore *ls = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dummy))); | |
| 3409 | GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(dummy)); | |
| 3410 | GValue val = { 0, }; | |
| 4119 | 3411 | GtkTextIter start; |
| 3412 | GtkTextBuffer *buffer; | |
| 3374 | 3413 | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
3414 | if (! gtk_tree_selection_get_selected (sel, (GtkTreeModel**)&ls, &iter)) |
| 3374 | 3415 | return; |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
3416 | gtk_tree_model_get_value (GTK_TREE_MODEL(ls), &iter, 1, &val); |
| 3374 | 3417 | amt = g_value_get_pointer (&val); |
| 3418 | gtk_entry_set_text(GTK_ENTRY(ca->entry), amt->name); | |
| 4119 | 3419 | buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ca->text)); |
| 3420 | gtk_text_buffer_get_iter_at_offset(buffer, &start, pos); | |
| 3421 | gtk_text_buffer_insert(buffer, &start, amt->message, strlen(amt->message)); | |
| 3422 | ||
| 3374 | 3423 | ca->mess = amt; |
| 3424 | } | |
|
832
138962a0d570
[gaim-migrate @ 842]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
825
diff
changeset
|
3425 | |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3426 | hbox = gtk_hbox_new(FALSE, 5); |
|
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3427 | gtk_box_pack_start(GTK_BOX(tbox), hbox, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3428 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3429 | button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3430 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(save_away_mess), ca); |
| 4092 | 3431 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3432 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3433 | button = gaim_pixbuf_button_from_stock(_("Save & Use"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3434 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(su_away_mess), ca); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3435 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3436 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3437 | button = gaim_pixbuf_button_from_stock(_("Use"), GTK_STOCK_EXECUTE, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3438 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(use_away_mess), ca); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3439 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3440 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3441 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3442 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), ca->window); |
|
1213
627f0fe24ea1
[gaim-migrate @ 1223]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1210
diff
changeset
|
3443 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3444 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3445 | gtk_widget_show_all(ca->window); |
| 1 | 3446 | } |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3447 | |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3448 | /* smiley dialog */ |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3449 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3450 | void close_smiley_dialog(GtkWidget *widget, struct gaim_conversation *c) |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3451 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3452 | struct gaim_gtk_conversation *gtkconv; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3453 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3454 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3455 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3456 | if (gtkconv->toolbar.smiley) { |
| 4635 | 3457 | gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gtkconv->toolbar.smiley), |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3458 | FALSE); |
|
570
3450eeb314a1
[gaim-migrate @ 580]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
567
diff
changeset
|
3459 | } |
| 5275 | 3460 | if(gtkconv->dialogs.smiley) { |
| 3461 | dialogwindows = g_list_remove(dialogwindows, gtkconv->dialogs.smiley); | |
| 3462 | gtk_widget_destroy(gtkconv->dialogs.smiley); | |
| 3463 | gtkconv->dialogs.smiley = NULL; | |
| 3464 | } | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3465 | } |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3466 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3467 | void insert_smiley_text(GtkWidget *widget, struct gaim_conversation *c) |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3468 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3469 | struct gaim_gtk_conversation *gtkconv; |
| 4667 | 3470 | char *smiley_text = g_object_get_data(G_OBJECT(widget), "smiley_text"); |
| 5275 | 3471 | GtkTextMark *select_mark, *insert_mark; |
| 3472 | GtkTextIter select_iter, insert_iter; | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3473 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3474 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3475 | |
| 5275 | 3476 | select_mark = gtk_text_buffer_get_selection_bound(gtkconv->entry_buffer); |
| 3477 | insert_mark = gtk_text_buffer_get_insert(gtkconv->entry_buffer); | |
| 3478 | ||
| 3479 | if(insert_mark != select_mark) { /* there is text selected */ | |
| 3480 | gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &select_iter, select_mark); | |
| 3481 | gtk_text_buffer_get_iter_at_mark(gtkconv->entry_buffer, &insert_iter, insert_mark); | |
| 3482 | gtk_text_buffer_delete(gtkconv->entry_buffer, &select_iter, &insert_iter); | |
| 3483 | } | |
| 3484 | ||
| 4667 | 3485 | gtk_text_buffer_insert_at_cursor(gtkconv->entry_buffer, smiley_text, -1); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3486 | close_smiley_dialog(NULL, c); |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3487 | } |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
3488 | |
| 4667 | 3489 | static void add_smiley(struct gaim_conversation *c, GtkWidget *table, int row, int col, char *filename, char *face) |
| 4034 | 3490 | { |
|
4061
0629287b4329
[gaim-migrate @ 4271]
Herman Bloggs <herman@bluedigits.com>
parents:
4060
diff
changeset
|
3491 | GtkWidget *image; |
| 4034 | 3492 | GtkWidget *button; |
| 4667 | 3493 | struct gaim_gtk_conversation *gtkconv = GAIM_GTK_CONVERSATION(c); |
| 3494 | ||
| 3495 | image = gtk_image_new_from_file(filename); | |
| 3496 | button = gtk_button_new(); | |
| 3497 | gtk_container_add(GTK_CONTAINER(button), image); | |
| 3498 | g_object_set_data(G_OBJECT(button), "smiley_text", face); | |
| 3499 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(insert_smiley_text), c); | |
| 3500 | ||
| 3501 | gtk_tooltips_set_tip(gtkconv->tooltips, button, face, NULL); | |
| 3502 | ||
| 3503 | gtk_table_attach_defaults(GTK_TABLE(table), button, col, col+1, row, row+1); | |
| 4034 | 3504 | |
| 3505 | /* these look really weird with borders */ | |
| 3506 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4667 | 3507 | |
| 3508 | gtk_widget_show(button); | |
| 3509 | } | |
| 3510 | ||
| 3511 | static gboolean smiley_is_unique(GSList *list, GtkIMHtmlSmiley *smiley) { | |
| 3512 | while(list) { | |
| 3513 | GtkIMHtmlSmiley *cur = list->data; | |
| 3514 | if(!strcmp(cur->file, smiley->file)) | |
| 3515 | return FALSE; | |
| 3516 | list = list->next; | |
| 3517 | } | |
| 3518 | return TRUE; | |
| 4034 | 3519 | } |
| 3520 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3521 | void show_smiley_dialog(struct gaim_conversation *c, GtkWidget *widget) |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3522 | { |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3523 | struct gaim_gtk_conversation *gtkconv; |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3524 | GtkWidget *dialog; |
| 4667 | 3525 | GtkWidget *smiley_table = NULL; |
| 3526 | GSList *smileys, *unique_smileys = NULL; | |
| 3527 | int width; | |
| 3528 | int row = 0, col = 0; | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3529 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3530 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3531 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3532 | if (gtkconv->dialogs.smiley) |
|
558
479c1b17d9d0
[gaim-migrate @ 568]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
555
diff
changeset
|
3533 | return; |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
3534 | |
| 4667 | 3535 | if(c->account) |
| 3536 | smileys = get_proto_smileys(c->account->protocol); | |
| 3537 | else | |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5136
diff
changeset
|
3538 | smileys = get_proto_smileys(GAIM_PROTO_DEFAULT); |
| 4667 | 3539 | |
| 3540 | while(smileys) { | |
| 3541 | GtkIMHtmlSmiley *smiley = smileys->data; | |
| 3542 | if(!smiley->hidden) { | |
| 3543 | if(smiley_is_unique(unique_smileys, smiley)) | |
| 3544 | unique_smileys = g_slist_append(unique_smileys, smiley); | |
| 3545 | } | |
| 3546 | smileys = smileys->next; | |
| 3547 | } | |
| 3548 | ||
| 3549 | ||
| 3550 | width = floor(sqrt(g_slist_length(unique_smileys))); | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3551 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
3552 | GAIM_DIALOG(dialog); |
| 4635 | 3553 | gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
3554 | gtk_window_set_role(GTK_WINDOW(dialog), "smiley_dialog"); |
| 934 | 3555 | gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); |
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
3556 | |
| 4667 | 3557 | smiley_table = gtk_table_new(width, width, TRUE); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3558 | |
|
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3559 | /* pack buttons */ |
| 4667 | 3560 | |
| 3561 | while(unique_smileys) { | |
| 3562 | GtkIMHtmlSmiley *smiley = unique_smileys->data; | |
| 3563 | if(!smiley->hidden) { | |
| 3564 | add_smiley(c, smiley_table, row, col, smiley->file, smiley->smile); | |
| 3565 | if(++col >= width) { | |
| 3566 | col = 0; | |
| 3567 | row++; | |
| 3568 | } | |
| 3569 | } | |
| 3570 | unique_smileys = unique_smileys->next; | |
| 3571 | } | |
| 3572 | ||
| 3573 | gtk_container_add(GTK_CONTAINER(dialog), smiley_table); | |
| 3574 | ||
| 3575 | gtk_widget_show(smiley_table); | |
| 3576 | ||
|
579
aed77e39951d
[gaim-migrate @ 589]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
577
diff
changeset
|
3577 | gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3578 | |
|
605
3d93a5c09c8f
[gaim-migrate @ 615]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
603
diff
changeset
|
3579 | /* connect signals */ |
| 4635 | 3580 | g_object_set_data(G_OBJECT(dialog), "dialog_type", "smiley dialog"); |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3581 | g_signal_connect(G_OBJECT(dialog), "delete_event", |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3582 | G_CALLBACK(delete_event_dialog), c); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3583 | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3584 | /* show everything */ |
|
567
046c1568bad5
[gaim-migrate @ 577]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
558
diff
changeset
|
3585 | gtk_window_set_title(GTK_WINDOW(dialog), _("Smile!")); |
|
584
5fa247775aac
[gaim-migrate @ 594]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
582
diff
changeset
|
3586 | gtk_widget_show_all(dialog); |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3587 | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
3588 | gtkconv->dialogs.smiley = dialog; |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3589 | |
|
555
bea0ece30600
[gaim-migrate @ 565]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents:
550
diff
changeset
|
3590 | return; |
|
558
479c1b17d9d0
[gaim-migrate @ 568]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
555
diff
changeset
|
3591 | } |
|
710
55c2137a3d2a
[gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
699
diff
changeset
|
3592 | |
| 5234 | 3593 | static void do_alias_chat(GtkWidget *w, int resp, struct chat *chat) |
| 3594 | { | |
| 3595 | if(resp == GTK_RESPONSE_OK) { | |
| 3596 | GtkWidget *entry = g_object_get_data(G_OBJECT(w), "alias_entry"); | |
| 3597 | const char *text = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 5237 | 3598 | gaim_blist_alias_chat(chat, text); |
| 3599 | gaim_blist_save(); | |
| 5234 | 3600 | } |
| 3601 | gtk_widget_destroy(w); | |
| 3602 | } | |
| 3603 | ||
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3604 | static void |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3605 | do_alias_buddy(GtkWidget *w, int resp, struct alias_dialog_info *info) |
|
710
55c2137a3d2a
[gaim-migrate @ 720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
699
diff
changeset
|
3606 | { |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3607 | if (resp == GTK_RESPONSE_OK) { |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3608 | const char *alias; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3609 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3610 | alias = gtk_entry_get_text(GTK_ENTRY(info->alias_entry)); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3611 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3612 | gaim_blist_alias_buddy(info->buddy, (alias && *alias) ? alias : NULL); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3613 | serv_alias_buddy(info->buddy); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3614 | gaim_blist_save(); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3615 | } |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3616 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3617 | destroy_dialog(NULL, alias_dialog); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3618 | alias_dialog = NULL; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3619 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3620 | g_free(info); |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3621 | } |
|
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3622 | |
| 5234 | 3623 | void alias_dialog_chat(struct chat *chat) { |
| 3624 | GtkWidget *dialog; | |
| 3625 | GtkWidget *hbox; | |
| 3626 | GtkWidget *img; | |
| 3627 | GtkWidget *vbox; | |
| 3628 | GtkWidget *label; | |
| 3629 | GtkWidget *alias_entry; | |
| 3630 | ||
| 3631 | dialog = gtk_dialog_new_with_buttons(_("Alias Buddy"), NULL, | |
| 3632 | GTK_DIALOG_NO_SEPARATOR, | |
| 3633 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
| 3634 | GTK_STOCK_OK, GTK_RESPONSE_OK, | |
| 3635 | NULL); | |
| 3636 | gtk_dialog_set_default_response(GTK_DIALOG(dialog), | |
| 3637 | GTK_RESPONSE_OK); | |
| 3638 | ||
| 3639 | gtk_container_set_border_width(GTK_CONTAINER(dialog), 6); | |
| 3640 | gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); | |
| 3641 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 12); | |
| 3642 | gtk_container_set_border_width( | |
| 3643 | GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), 6); | |
| 3644 | ||
| 3645 | /* The main hbox container. */ | |
| 3646 | hbox = gtk_hbox_new(FALSE, 12); | |
| 3647 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); | |
| 3648 | ||
| 3649 | /* The dialog image. */ | |
| 3650 | img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, | |
| 3651 | GTK_ICON_SIZE_DIALOG); | |
| 3652 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 3653 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 3654 | ||
| 3655 | /* The main vbox container. */ | |
| 3656 | vbox = gtk_vbox_new(FALSE, 0); | |
| 3657 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 3658 | ||
| 3659 | /* Setup the label containing the description. */ | |
| 3660 | label = gtk_label_new(_("Please enter an aliased name for this chat.\n")); | |
| 3661 | gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); | |
| 3662 | ||
| 3663 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 3664 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3665 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 3666 | ||
| 3667 | hbox = gtk_hbox_new(FALSE, 6); | |
| 3668 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3669 | ||
| 3670 | /* The "Alias:" label. */ | |
| 3671 | label = gtk_label_new(NULL); | |
| 3672 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Alias:")); | |
| 3673 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3674 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 3675 | ||
| 3676 | /* The alias entry field. */ | |
| 3677 | alias_entry = gtk_entry_new(); | |
| 3678 | gtk_box_pack_start(GTK_BOX(hbox), alias_entry, FALSE, FALSE, 0); | |
| 3679 | gtk_entry_set_activates_default(GTK_ENTRY(alias_entry), TRUE); | |
| 3680 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), alias_entry); | |
| 3681 | ||
| 3682 | gtk_entry_set_text(GTK_ENTRY(alias_entry), chat->alias); | |
| 3683 | ||
| 3684 | g_object_set_data(G_OBJECT(dialog), "alias_entry", alias_entry); | |
| 3685 | ||
| 3686 | g_signal_connect(G_OBJECT(dialog), "response", | |
| 3687 | G_CALLBACK(do_alias_chat), chat); | |
| 3688 | ||
| 3689 | gtk_widget_show_all(dialog); | |
| 3690 | } | |
| 3691 | ||
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3692 | void |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3693 | alias_dialog_bud(struct buddy *b) |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3694 | { |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3695 | struct alias_dialog_info *info = NULL; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3696 | struct gaim_gtk_buddy_list *gtkblist; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3697 | GtkWidget *hbox; |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3698 | GtkWidget *vbox; |
|
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3699 | GtkWidget *label; |
|
5050
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3700 | GtkWidget *table; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3701 | GtkWidget *img; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3702 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3703 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3704 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3705 | if (!alias_dialog) { |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3706 | info = g_new0(struct alias_dialog_info, 1); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3707 | info->buddy = b; |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3708 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3709 | alias_dialog = gtk_dialog_new_with_buttons(_("Alias Buddy"), |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3710 | (gtkblist ? GTK_WINDOW(gtkblist->window) : NULL), |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3711 | GTK_DIALOG_NO_SEPARATOR, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3712 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3713 | GTK_STOCK_OK, GTK_RESPONSE_OK, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3714 | NULL); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3715 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3716 | gtk_dialog_set_default_response(GTK_DIALOG(alias_dialog), |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3717 | GTK_RESPONSE_OK); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3718 | gtk_container_set_border_width(GTK_CONTAINER(alias_dialog), 6); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3719 | gtk_window_set_resizable(GTK_WINDOW(alias_dialog), FALSE); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3720 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(alias_dialog)->vbox), 12); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3721 | gtk_container_set_border_width( |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3722 | GTK_CONTAINER(GTK_DIALOG(alias_dialog)->vbox), 6); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3723 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3724 | /* The main hbox container. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3725 | hbox = gtk_hbox_new(FALSE, 12); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3726 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(alias_dialog)->vbox), hbox); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3727 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3728 | /* The dialog image. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3729 | img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3730 | GTK_ICON_SIZE_DIALOG); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3731 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3732 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3733 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3734 | /* The main vbox container. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3735 | vbox = gtk_vbox_new(FALSE, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3736 | gtk_container_add(GTK_CONTAINER(hbox), vbox); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3737 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3738 | /* Setup the label containing the description. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3739 | label = gtk_label_new(_("Please enter an aliased name for the " |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3740 | "person below, or rename this contact " |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3741 | "in your buddy list.\n")); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3742 | gtk_widget_set_size_request(GTK_WIDGET(label), 350, -1); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3743 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3744 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3745 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3746 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3747 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3748 | hbox = gtk_hbox_new(FALSE, 6); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3749 | gtk_container_add(GTK_CONTAINER(vbox), hbox); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3750 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3751 | /* The table containing the entry widgets and labels. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3752 | table = gtk_table_new(2, 2, FALSE); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3753 | gtk_table_set_row_spacings(GTK_TABLE(table), 6); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3754 | gtk_table_set_col_spacings(GTK_TABLE(table), 6); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3755 | gtk_container_set_border_width(GTK_CONTAINER(table), 12); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3756 | gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3757 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3758 | /* The "Screenname:" label. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3759 | label = gtk_label_new(NULL); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3760 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Screenname:")); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3761 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3762 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3763 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3764 | /* The Screen name entry field. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3765 | info->name_entry = gtk_entry_new(); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3766 | gtk_table_attach_defaults(GTK_TABLE(table), info->name_entry, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3767 | 1, 2, 0, 1); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3768 | gtk_entry_set_activates_default(GTK_ENTRY(info->name_entry), TRUE); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3769 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->name_entry); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3770 | gtk_entry_set_text(GTK_ENTRY(info->name_entry), info->buddy->name); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3771 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3772 | /* The "Alias:" label. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3773 | label = gtk_label_new(NULL); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3774 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Alias:")); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3775 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3776 | gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3777 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3778 | /* The alias entry field. */ |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3779 | info->alias_entry = gtk_entry_new(); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3780 | gtk_table_attach_defaults(GTK_TABLE(table), info->alias_entry, |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3781 | 1, 2, 1, 2); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3782 | gtk_entry_set_activates_default(GTK_ENTRY(info->alias_entry), TRUE); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3783 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), info->alias_entry); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3784 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3785 | if (info->buddy->alias != NULL) |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3786 | gtk_entry_set_text(GTK_ENTRY(info->alias_entry), |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3787 | info->buddy->alias); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3788 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3789 | g_signal_connect(G_OBJECT(alias_dialog), "response", |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3790 | G_CALLBACK(do_alias_buddy), info); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3791 | } |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3792 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3793 | gtk_widget_show_all(alias_dialog); |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3794 | |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3795 | if (info) |
|
241e7595c116
[gaim-migrate @ 5398]
Christian Hammond <chipx86@chipx86.com>
parents:
5024
diff
changeset
|
3796 | gtk_widget_grab_focus(info->name_entry); |
|
1397
705a0ba91b76
[gaim-migrate @ 1407]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1396
diff
changeset
|
3797 | } |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3798 | |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3799 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3800 | static gboolean dont_destroy(gpointer a, gpointer b, gpointer c) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3801 | { |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3802 | return TRUE; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3803 | } |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3804 | |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3805 | static void do_save_log(GtkWidget *w, GtkWidget *filesel) |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3806 | { |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
3807 | const char *file; |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3808 | char path[PATHSIZE]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3809 | char buf[BUF_LONG]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3810 | char error[BUF_LEN]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3811 | FILE *fp_old, *fp_new; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3812 | char filename[PATHSIZE]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3813 | char *name; |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
3814 | char *tmp; |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3815 | |
| 4635 | 3816 | name = g_object_get_data(G_OBJECT(filesel), "name"); |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
3817 | tmp = gaim_user_dir(); |
| 3630 | 3818 | g_snprintf(filename, PATHSIZE, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3819 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3820 | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
3821 | file = (const char*)gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel)); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3822 | strncpy(path, file, PATHSIZE - 1); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3823 | if (file_is_dir(path, filesel)) |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3824 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3825 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3826 | if ((fp_new = fopen(path, "w")) == NULL) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3827 | g_snprintf(error, BUF_LONG, |
| 3427 | 3828 | _("Couldn't write to %s."), path); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3829 | gaim_notify_error(NULL, NULL, error, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3830 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3831 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3832 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3833 | if ((fp_old = fopen(filename, "r")) == NULL) { |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3834 | g_snprintf(error, BUF_LONG, |
| 3427 | 3835 | _("Couldn't write to %s."), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3836 | gaim_notify_error(NULL, NULL, error, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3837 | fclose(fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3838 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3839 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3840 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3841 | while (fgets(buf, BUF_LONG, fp_old)) |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3842 | fputs(buf, fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3843 | fclose(fp_old); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3844 | fclose(fp_new); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3845 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3846 | gtk_widget_destroy(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3847 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3848 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3849 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3850 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3851 | static void show_save_log(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3852 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3853 | GtkWidget *filesel; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3854 | gchar buf[BUF_LEN]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3855 | |
| 3630 | 3856 | g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S "%s%s", gaim_home_dir(), |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3857 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3858 | |
| 4703 | 3859 | filesel = gtk_file_selection_new(_("Save Log File")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3860 | g_signal_connect(G_OBJECT(filesel), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3861 | G_CALLBACK(destroy_dialog), filesel); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3862 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3863 | gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(filesel)); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3864 | gtk_file_selection_set_filename(GTK_FILE_SELECTION(filesel), buf); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3865 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->ok_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3866 | "clicked", G_CALLBACK(do_save_log), filesel); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3867 | g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(filesel)->cancel_button), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3868 | "clicked", G_CALLBACK(destroy_dialog), filesel); |
| 4635 | 3869 | g_object_set_data(G_OBJECT(filesel), "name", name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3870 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3871 | gtk_widget_realize(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3872 | gtk_widget_show(filesel); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3873 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3874 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3875 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3876 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3877 | static void do_clear_log_file(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3878 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3879 | gchar buf[256]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3880 | gchar filename[256]; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3881 | GtkWidget *window; |
|
1722
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
3882 | char *tmp; |
|
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
3883 | |
|
d64eabfd88e3
[gaim-migrate @ 1732]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1710
diff
changeset
|
3884 | tmp = gaim_user_dir(); |
| 3630 | 3885 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s%s", tmp, |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3886 | name ? normalize(name) : "system", name ? ".log" : ""); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3887 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3888 | if ((remove(filename)) == -1) { |
| 3427 | 3889 | g_snprintf(buf, 256, _("Couldn't remove file %s." ), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3890 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3891 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3892 | |
| 4635 | 3893 | window = g_object_get_data(G_OBJECT(w), "log_window"); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3894 | destroy_dialog(NULL, window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3895 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3896 | |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3897 | static void show_clear_log(GtkWidget *w, gchar *name) |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3898 | { |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3899 | GtkWidget *window; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3900 | GtkWidget *box; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3901 | GtkWidget *hbox; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3902 | GtkWidget *button; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3903 | GtkWidget *label; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3904 | GtkWidget *hsep; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3905 | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
3906 | GAIM_DIALOG(window); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
3907 | gtk_window_set_role(GTK_WINDOW(window), "dialog"); |
| 4703 | 3908 | gtk_window_set_title(GTK_WINDOW(window), _("Clear Log")); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3909 | gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 3910 | gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3911 | g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3912 | gtk_widget_realize(window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3913 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3914 | box = gtk_vbox_new(FALSE, 5); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3915 | gtk_container_add(GTK_CONTAINER(window), box); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3916 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3917 | label = gtk_label_new(_("Really clear log?")); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3918 | gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 15); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3919 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3920 | hsep = gtk_hseparator_new(); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3921 | gtk_box_pack_start(GTK_BOX(box), hsep, FALSE, FALSE, 0); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3922 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3923 | hbox = gtk_hbox_new(FALSE, 0); |
|
2372
c24942700dfd
[gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2370
diff
changeset
|
3924 | gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3925 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3926 | button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
| 4635 | 3927 | g_object_set_data(G_OBJECT(button), "log_window", g_object_get_data(G_OBJECT(w), |
| 3928 | "log_window")); | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3929 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(do_clear_log_file), name); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3930 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3931 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3932 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
3933 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3934 | g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3935 | gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 5); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3936 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3937 | gtk_widget_show_all(window); |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3938 | |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3939 | return; |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3940 | } |
|
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
3941 | |
| 4635 | 3942 | static void log_show_convo(struct view_log *view) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3943 | { |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3944 | gchar buf[BUF_LONG]; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3945 | FILE *fp; |
| 2570 | 3946 | char filename[256]; |
| 3947 | int i=0; | |
| 3948 | GString *string; | |
| 2602 | 3949 | guint block; |
| 3950 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3951 | string = g_string_new(""); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3952 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3953 | if (view->name) { |
| 1634 | 3954 | char *tmp = gaim_user_dir(); |
| 3630 | 3955 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(view->name)); |
| 1634 | 3956 | } else { |
| 3957 | char *tmp = gaim_user_dir(); | |
| 3630 | 3958 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "system", tmp); |
| 1634 | 3959 | } |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3960 | if ((fp = fopen(filename, "r")) == NULL) { |
|
4923
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3961 | if (view->name) { |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3962 | g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s."), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
3963 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
|
4923
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3964 | } |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3965 | /* If the system log doesn't exist.. no message just show empty system log window. |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3966 | That way user knows that the log is empty :) |
|
065f507166ca
[gaim-migrate @ 5257]
Herman Bloggs <herman@bluedigits.com>
parents:
4918
diff
changeset
|
3967 | */ |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3968 | return; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3969 | } |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
3970 | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3971 | gtk_widget_set_sensitive(view->bbox, FALSE); |
| 4635 | 3972 | g_signal_handlers_disconnect_by_func(G_OBJECT(view->window), |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3973 | G_CALLBACK(destroy_dialog), view->window); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
3974 | block = g_signal_connect(G_OBJECT(view->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
3975 | G_CALLBACK(dont_destroy), view->window); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3976 | |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3977 | fseek(fp, view->offset, SEEK_SET); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3978 | gtk_imhtml_clear(GTK_IMHTML(view->layout)); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3979 | /* |
| 2570 | 3980 | while (gtk_events_pending()) |
| 3981 | gtk_main_iteration(); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3982 | */ |
| 2570 | 3983 | |
| 3984 | while (fgets(buf, BUF_LONG, fp) && !strstr(buf, "---- New C")) { | |
| 3985 | i++; | |
| 3986 | if (strlen(buf) >= 5 && (!strncmp(buf + strlen(buf) - 5, "<BR>\n", 5))) | |
| 3987 | /* take off the \n */ | |
| 3988 | buf[strlen(buf) - 1] = '\0'; | |
| 3989 | ||
|
2642
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
3990 | /* don't lose the thirtieth line of conversation. thanks FeRD */ |
|
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
3991 | g_string_append(string, buf); |
|
4f404f93e015
[gaim-migrate @ 2655]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2623
diff
changeset
|
3992 | |
| 2570 | 3993 | if (i == 30) { |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2851
diff
changeset
|
3994 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); |
| 2570 | 3995 | g_string_free(string, TRUE); |
| 3996 | string = g_string_new(""); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3997 | /* you can't have these anymore. if someone clicks on another item while one is |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
3998 | * drawing, it will try to move to that item, and that causes problems here. |
| 2570 | 3999 | while (gtk_events_pending()) |
| 4000 | gtk_main_iteration(); | |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4001 | */ |
| 2570 | 4002 | i = 0; |
| 4003 | } | |
| 4004 | ||
| 4005 | } | |
|
2856
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2851
diff
changeset
|
4006 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), string->str, -1, view->options); |
|
046ed5e89321
[gaim-migrate @ 2869]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2851
diff
changeset
|
4007 | gtk_imhtml_append_text(GTK_IMHTML(view->layout), "<BR>", -1, view->options); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4008 | |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4009 | gtk_widget_set_sensitive(view->bbox, TRUE); |
| 4635 | 4010 | g_signal_handler_disconnect(G_OBJECT(view->window), block); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4011 | g_signal_connect(G_OBJECT(view->window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4012 | G_CALLBACK(destroy_dialog), view->window); |
| 2570 | 4013 | g_string_free(string, TRUE); |
| 4014 | fclose(fp); | |
| 4015 | } | |
| 4016 | ||
| 4635 | 4017 | static void log_select_convo(GtkTreeSelection *sel, GtkTreeModel *model) |
| 4018 | { | |
| 4019 | GValue val = { 0, }; | |
| 4020 | GtkTreeIter iter; | |
| 4021 | ||
| 4022 | if(!gtk_tree_selection_get_selected(sel, &model, &iter)) | |
| 4023 | return; | |
| 4024 | gtk_tree_model_get_value(model, &iter, 1, &val); | |
| 4025 | log_show_convo(g_value_get_pointer(&val)); | |
| 4026 | } | |
| 4027 | ||
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4028 | static void des_view_item(GtkObject *obj, struct view_log *view) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4029 | { |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4030 | if (view->name) |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4031 | g_free(view->name); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4032 | g_free(view); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4033 | } |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4034 | |
| 4635 | 4035 | static void des_log_win(GObject *win, gpointer data) |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4036 | { |
| 4635 | 4037 | char *x = g_object_get_data(win, "log_window"); |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4038 | if (x) |
|
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4039 | g_free(x); |
| 4874 | 4040 | x = g_object_get_data(win, "name"); |
| 4041 | if (x) | |
| 4042 | g_free(x); | |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4043 | } |
|
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4044 | |
| 3484 | 4045 | void conv_show_log(GtkWidget *w, gpointer data) |
| 4046 | { | |
| 4047 | char *name = g_strdup(data); | |
| 4048 | show_log(name); | |
| 4049 | g_free(name); | |
| 4050 | } | |
| 4051 | ||
| 3532 | 4052 | void chat_show_log(GtkWidget *w, gpointer data) |
| 4053 | { | |
|
3716
172593593072
[gaim-migrate @ 3849]
Herman Bloggs <herman@bluedigits.com>
parents:
3671
diff
changeset
|
4054 | char *name = g_strdup_printf("%s.chat", (char*)data); |
| 3532 | 4055 | show_log(name); |
| 4056 | g_free(name); | |
| 4057 | } | |
| 4058 | ||
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4059 | void show_log(char *nm) |
| 2570 | 4060 | { |
| 4061 | gchar filename[256]; | |
| 4062 | gchar buf[BUF_LONG]; | |
| 4063 | FILE *fp; | |
| 4064 | GtkWidget *window; | |
| 4065 | GtkWidget *box; | |
| 4066 | GtkWidget *hbox; | |
| 2602 | 4067 | GtkWidget *bbox; |
| 2570 | 4068 | GtkWidget *sw; |
| 4069 | GtkWidget *layout; | |
| 4070 | GtkWidget *close_button; | |
| 4071 | GtkWidget *clear_button; | |
| 4072 | GtkWidget *save_button; | |
| 4635 | 4073 | GtkListStore *list_store; |
| 4074 | GtkWidget *tree_view; | |
| 4075 | GtkTreeSelection *sel = NULL; | |
| 4076 | GtkTreePath *path; | |
| 2612 | 4077 | GtkWidget *item = NULL; |
| 4078 | GtkWidget *last = NULL; | |
| 2570 | 4079 | GtkWidget *frame; |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4080 | struct view_log *view; |
|
2623
a858d1de20b9
[gaim-migrate @ 2636]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2621
diff
changeset
|
4081 | char *name = nm ? g_strdup(nm) : NULL; |
| 2570 | 4082 | |
| 4083 | int options; | |
| 4084 | guint block; | |
| 4085 | char convo_start[32]; | |
| 4086 | long offset = 0; | |
| 4087 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4088 | options = GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_TITLE | GTK_IMHTML_NO_SCROLL; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4089 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4090 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_colors")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4091 | options ^= GTK_IMHTML_NO_COLOURS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4092 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4093 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_fonts")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4094 | options ^= GTK_IMHTML_NO_FONTS; |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4095 | |
|
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4096 | if (gaim_prefs_get_bool("/gaim/gtk/conversations/ignore_font_sizes")) |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4097 | options ^= GTK_IMHTML_NO_SIZES; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4098 | |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4099 | window = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 4635 | 4100 | g_object_set_data(G_OBJECT(window), "name", name); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4101 | g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(des_log_win), NULL); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
4102 | gtk_window_set_role(GTK_WINDOW(window), "log"); |
|
1648
f33239360f10
[gaim-migrate @ 1658]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1634
diff
changeset
|
4103 | if (name) |
| 4703 | 4104 | g_snprintf(buf, BUF_LONG, _("Conversations with %s"), name); |
|
1648
f33239360f10
[gaim-migrate @ 1658]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1634
diff
changeset
|
4105 | else |
| 4703 | 4106 | g_snprintf(buf, BUF_LONG, _("System Log")); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4107 | gtk_window_set_title(GTK_WINDOW(window), buf); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4108 | gtk_container_set_border_width(GTK_CONTAINER(window), 10); |
| 4635 | 4109 | gtk_window_set_resizable(GTK_WINDOW(window), TRUE); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4110 | block = g_signal_connect(G_OBJECT(window), "delete_event", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4111 | G_CALLBACK(dont_destroy), window); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4112 | gtk_widget_realize(window); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4113 | |
| 2570 | 4114 | layout = gtk_imhtml_new(NULL, NULL); |
| 2602 | 4115 | bbox = gtk_hbox_new(FALSE, 0); |
| 4116 | ||
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4117 | box = gtk_vbox_new(FALSE, 5); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4118 | gtk_container_add(GTK_CONTAINER(window), box); |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4119 | |
| 2570 | 4120 | hbox = gtk_hbox_new(FALSE, 5); |
| 4121 | gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 0); | |
| 4122 | ||
| 4123 | if (name) { | |
| 4124 | char *tmp = gaim_user_dir(); | |
| 3630 | 4125 | g_snprintf(filename, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s.log", tmp, normalize(name)); |
| 2570 | 4126 | if ((fp = fopen(filename, "r")) == NULL) { |
|
4472
4c2abef133eb
[gaim-migrate @ 4747]
Éric Boumaour <eric.boumaour_pidgin@m4x.org>
parents:
4421
diff
changeset
|
4127 | g_snprintf(buf, BUF_LONG, _("Couldn't open log file %s"), filename); |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5411
diff
changeset
|
4128 | gaim_notify_error(NULL, NULL, buf, strerror(errno)); |
| 2570 | 4129 | return; |
| 4130 | } | |
| 4131 | ||
| 4635 | 4132 | list_store = gtk_list_store_new(2, |
| 4133 | G_TYPE_STRING, | |
| 4134 | G_TYPE_POINTER); | |
| 4135 | ||
| 4136 | tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)); | |
| 4137 | ||
| 4138 | gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), FALSE); | |
| 4139 | ||
| 4140 | gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), | |
| 4141 | -1, "", gtk_cell_renderer_text_new(), "text", 0, NULL); | |
| 4142 | ||
| 4143 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view)); | |
| 4144 | g_signal_connect(G_OBJECT(sel), "changed", | |
| 4145 | G_CALLBACK(log_select_convo), | |
| 4146 | NULL); | |
| 2570 | 4147 | |
| 4148 | frame = gtk_frame_new(_("Date")); | |
| 4149 | gtk_widget_show(frame); | |
| 4150 | ||
| 4151 | sw = gtk_scrolled_window_new(NULL, NULL); | |
| 4152 | gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4635 | 4153 | gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), tree_view); |
|
2613
0a766cd74603
[gaim-migrate @ 2626]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2612
diff
changeset
|
4154 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
0a766cd74603
[gaim-migrate @ 2626]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2612
diff
changeset
|
4155 | GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 4635 | 4156 | gtk_widget_set_size_request(sw, 220, 220); |
| 2570 | 4157 | gtk_container_add(GTK_CONTAINER(frame), sw); |
| 4158 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 4159 | ||
| 4160 | while (fgets(buf, BUF_LONG, fp)) { | |
| 4161 | if (strstr(buf, "---- New C")) { | |
| 4162 | int length; | |
| 4163 | char *temp = strchr(buf, '@'); | |
| 4635 | 4164 | GtkTreeIter iter; |
| 2612 | 4165 | |
| 2570 | 4166 | if (temp == NULL || strlen(temp) < 2) |
| 4167 | continue; | |
| 2612 | 4168 | |
| 2570 | 4169 | temp++; |
| 4170 | length = strcspn(temp, "-"); | |
| 4171 | if (length > 31) length = 31; | |
| 4172 | ||
| 4173 | offset = ftell(fp); | |
| 4174 | g_snprintf(convo_start, length, "%s", temp); | |
| 4635 | 4175 | gtk_list_store_append(list_store, &iter); |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4176 | view = g_new0(struct view_log, 1); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4177 | view->options = options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4178 | view->offset = offset; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4179 | view->name = g_strdup(name); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4180 | view->bbox = bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4181 | view->window = window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4182 | view->layout = layout; |
| 4635 | 4183 | gtk_list_store_set(list_store, &iter, |
| 4184 | 0, convo_start, | |
| 4185 | 1, view, | |
| 4186 | -1); | |
| 4187 | g_signal_connect(G_OBJECT(window), "destroy", | |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4188 | G_CALLBACK(des_view_item), view); |
| 2612 | 4189 | last = item; |
| 2570 | 4190 | } |
| 4191 | } | |
| 4192 | fclose(fp); | |
| 4635 | 4193 | |
| 4194 | path = gtk_tree_path_new_first(); | |
| 4195 | gtk_tree_selection_select_path(sel, path); | |
| 4196 | gtk_tree_path_free(path); | |
| 4197 | ||
| 4198 | g_object_unref(G_OBJECT(list_store)); | |
| 2612 | 4199 | } |
| 4200 | ||
| 4635 | 4201 | |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4202 | g_signal_handler_disconnect(G_OBJECT(window), block); |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4203 | g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(destroy_dialog), window); |
| 2602 | 4204 | |
| 5400 | 4205 | frame = gtk_frame_new(_("Log")); |
| 2570 | 4206 | gtk_widget_show(frame); |
| 4207 | ||
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4208 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 2570 | 4209 | gtk_container_set_border_width(GTK_CONTAINER(sw), 5); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4210 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
|
4333
f4c095774bc2
[gaim-migrate @ 4597]
Mark Doliner <markdoliner@pidgin.im>
parents:
4316
diff
changeset
|
4211 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 4635 | 4212 | gtk_widget_set_size_request(sw, 390, 220); |
| 2570 | 4213 | gtk_container_add(GTK_CONTAINER(frame), sw); |
| 4214 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); | |
| 4215 | ||
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4216 | g_signal_connect(G_OBJECT(layout), "url_clicked", G_CALLBACK(open_url), NULL); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4217 | gtk_container_add(GTK_CONTAINER(sw), layout); |
|
1815
e2b090284b19
[gaim-migrate @ 1825]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1805
diff
changeset
|
4218 | gaim_setup_imhtml(layout); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4219 | |
| 2602 | 4220 | gtk_box_pack_start(GTK_BOX(box), bbox, FALSE, FALSE, 0); |
| 4221 | gtk_widget_set_sensitive(bbox, FALSE); | |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4222 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4223 | close_button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL); |
| 2602 | 4224 | gtk_box_pack_end(GTK_BOX(bbox), close_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4225 | g_signal_connect(G_OBJECT(close_button), "clicked", G_CALLBACK(destroy_dialog), window); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4226 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4227 | clear_button = gaim_pixbuf_button_from_stock(_("Clear"), GTK_STOCK_CLEAR, GAIM_BUTTON_HORIZONTAL); |
| 4635 | 4228 | g_object_set_data(G_OBJECT(clear_button), "log_window", window); |
| 2602 | 4229 | gtk_box_pack_end(GTK_BOX(bbox), clear_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4230 | g_signal_connect(G_OBJECT(clear_button), "clicked", G_CALLBACK(show_clear_log), name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4231 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4232 | save_button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
| 2602 | 4233 | gtk_box_pack_end(GTK_BOX(bbox), save_button, FALSE, FALSE, 5); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4234 | g_signal_connect(G_OBJECT(save_button), "clicked", G_CALLBACK(show_save_log), name); |
|
1488
15bf9fc09151
[gaim-migrate @ 1498]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1484
diff
changeset
|
4235 | |
| 4635 | 4236 | gtk_widget_show_all(window); |
| 4237 | ||
| 2570 | 4238 | if (!name) { |
|
2621
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4239 | view = g_new0(struct view_log, 1); |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4240 | view->options = options; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4241 | view->name = NULL; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4242 | view->bbox = bbox; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4243 | view->window = window; |
|
218962c8389e
[gaim-migrate @ 2634]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2613
diff
changeset
|
4244 | view->layout = layout; |
| 4635 | 4245 | log_show_convo(view); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4246 | g_signal_connect(G_OBJECT(layout), "destroy", G_CALLBACK(des_view_item), view); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4247 | } |
| 4635 | 4248 | |
| 2602 | 4249 | gtk_widget_set_sensitive(bbox, TRUE); |
|
1477
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4250 | |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4251 | return; |
|
0621949186cb
[gaim-migrate @ 1487]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
1456
diff
changeset
|
4252 | } |
| 1729 | 4253 | |
| 4254 | /*------------------------------------------------------------------------*/ | |
| 4255 | /* The dialog for renaming groups */ | |
| 4256 | /*------------------------------------------------------------------------*/ | |
| 4257 | ||
| 4183 | 4258 | static void do_rename_group(GtkObject *obj, int resp, GtkWidget *entry) |
| 1729 | 4259 | { |
| 3466 | 4260 | const char *new_name; |
| 1729 | 4261 | struct group *g; |
| 4262 | ||
| 4183 | 4263 | if (resp == GTK_RESPONSE_OK) { |
| 4264 | new_name = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 4635 | 4265 | g = g_object_get_data(G_OBJECT(entry), "group"); |
| 4183 | 4266 | |
| 5346 | 4267 | gaim_blist_rename_group(g, new_name); |
| 4268 | gaim_blist_save(); | |
| 1729 | 4269 | } |
| 4270 | destroy_dialog(rename_dialog, rename_dialog); | |
| 4271 | } | |
| 4272 | ||
| 4273 | void show_rename_group(GtkWidget *unused, struct group *g) | |
| 4274 | { | |
| 4183 | 4275 | |
| 4276 | GtkWidget *hbox, *vbox; | |
| 4277 | GtkWidget *label; | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
4278 | struct gaim_gtk_buddy_list *gtkblist; |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4279 | GtkWidget *img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG); |
|
4201
547da94c5a14
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4280 | GtkWidget *name_entry = NULL; |
| 4183 | 4281 | |
|
4695
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
4282 | gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
82df59fb9931
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
4283 | |
| 1729 | 4284 | if (!rename_dialog) { |
| 5092 | 4285 | rename_dialog = gtk_dialog_new_with_buttons(_("Rename Group"), GTK_WINDOW(gtkblist->window), 0, |
| 4183 | 4286 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); |
| 4287 | gtk_dialog_set_default_response (GTK_DIALOG(rename_dialog), GTK_RESPONSE_OK); | |
| 4288 | gtk_container_set_border_width (GTK_CONTAINER(rename_dialog), 6); | |
| 4289 | gtk_window_set_resizable(GTK_WINDOW(rename_dialog), FALSE); | |
| 4290 | gtk_dialog_set_has_separator(GTK_DIALOG(rename_dialog), FALSE); | |
| 4291 | gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(rename_dialog)->vbox), 12); | |
| 4292 | gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), 6); | |
| 4635 | 4293 | |
| 4183 | 4294 | hbox = gtk_hbox_new(FALSE, 12); |
| 4295 | gtk_container_add(GTK_CONTAINER(GTK_DIALOG(rename_dialog)->vbox), hbox); | |
| 4296 | gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
| 4297 | gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
| 4298 | ||
| 4299 | vbox = gtk_vbox_new(FALSE, 0); | |
| 4300 | gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
| 4635 | 4301 | |
| 4183 | 4302 | label = gtk_label_new(_("Please enter a new name for the selected group.\n")); |
| 4303 | gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 4304 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 4305 | gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 4635 | 4306 | |
| 4183 | 4307 | hbox = gtk_hbox_new(FALSE, 6); |
| 4308 | gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 4635 | 4309 | |
| 4183 | 4310 | label = gtk_label_new(NULL); |
| 4311 | gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), _("_Group:")); | |
| 4312 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 4635 | 4313 | |
| 1729 | 4314 | name_entry = gtk_entry_new(); |
| 4183 | 4315 | gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); |
| 4635 | 4316 | g_object_set_data(G_OBJECT(name_entry), "group", g); |
| 1729 | 4317 | gtk_entry_set_text(GTK_ENTRY(name_entry), g->name); |
| 4183 | 4318 | gtk_box_pack_start(GTK_BOX(hbox), name_entry, FALSE, FALSE, 0); |
| 4319 | gtk_entry_set_activates_default (GTK_ENTRY(name_entry), TRUE); | |
| 4320 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), GTK_WIDGET(name_entry)); | |
| 4635 | 4321 | |
| 4183 | 4322 | g_signal_connect(G_OBJECT(rename_dialog), "response", G_CALLBACK(do_rename_group), name_entry); |
| 4182 | 4323 | |
| 1729 | 4324 | } |
| 4325 | ||
| 4326 | gtk_widget_show_all(rename_dialog); | |
|
4201
547da94c5a14
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4327 | if(name_entry) |
|
547da94c5a14
[gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents:
4198
diff
changeset
|
4328 | gtk_widget_grab_focus(GTK_WIDGET(name_entry)); |
| 1729 | 4329 | } |
| 4330 | ||
| 2743 | 4331 | |
| 1729 | 4332 | /*------------------------------------------------------------------------*/ |
| 4333 | /* The dialog for renaming buddies */ | |
| 4334 | /*------------------------------------------------------------------------*/ | |
| 4335 | ||
| 4635 | 4336 | static void do_rename_buddy(GObject *obj, GtkWidget *entry) |
| 1729 | 4337 | { |
| 3466 | 4338 | const char *new_name; |
| 1729 | 4339 | struct buddy *b; |
| 4340 | ||
| 4341 | new_name = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 4635 | 4342 | b = g_object_get_data(obj, "buddy"); |
| 1729 | 4343 | |
| 4491 | 4344 | if (!g_slist_find(connections, b->account->gc)) { |
|
2681
73cd94b9e78e
[gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2679
diff
changeset
|
4345 | destroy_dialog(rename_bud_dialog, rename_bud_dialog); |
|
73cd94b9e78e
[gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2679
diff
changeset
|
4346 | return; |
|
73cd94b9e78e
[gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2679
diff
changeset
|
4347 | } |
|
73cd94b9e78e
[gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2679
diff
changeset
|
4348 | |
| 1729 | 4349 | if (new_name && (strlen(new_name) != 0) && strcmp(new_name, b->name)) { |
| 4687 | 4350 | struct group *g = gaim_find_buddys_group(b); |
| 4785 | 4351 | char *prevname = b->name; |
|
2681
73cd94b9e78e
[gaim-migrate @ 2694]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2679
diff
changeset
|
4352 | if (g) |
| 4491 | 4353 | serv_remove_buddy(b->account->gc, b->name, g->name); |
| 4785 | 4354 | b->name = g_strdup(new_name); |
| 4491 | 4355 | serv_add_buddy(b->account->gc, b->name); |
| 4687 | 4356 | gaim_blist_rename_buddy(b, prevname); |
| 4349 | 4357 | gaim_blist_save(); |
| 1729 | 4358 | g_free(prevname); |
| 4359 | } | |
| 4360 | ||
| 4361 | destroy_dialog(rename_bud_dialog, rename_bud_dialog); | |
| 4362 | } | |
| 4363 | ||
| 4364 | void show_rename_buddy(GtkWidget *unused, struct buddy *b) | |
| 4365 | { | |
| 4366 | GtkWidget *mainbox; | |
| 4367 | GtkWidget *frame; | |
| 4368 | GtkWidget *fbox; | |
| 4369 | GtkWidget *bbox; | |
| 4370 | GtkWidget *button; | |
| 4371 | GtkWidget *name_entry; | |
| 4372 | GtkWidget *label; | |
| 4373 | ||
| 4374 | if (!rename_bud_dialog) { | |
|
2725
a844d0964552
[gaim-migrate @ 2738]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2681
diff
changeset
|
4375 | GAIM_DIALOG(rename_bud_dialog); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
4376 | gtk_window_set_role(GTK_WINDOW(rename_bud_dialog), "rename_bud_dialog"); |
| 4635 | 4377 | gtk_window_set_resizable(GTK_WINDOW(rename_bud_dialog), TRUE); |
| 4703 | 4378 | gtk_window_set_title(GTK_WINDOW(rename_bud_dialog), _("Rename Buddy")); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4379 | g_signal_connect(G_OBJECT(rename_bud_dialog), "destroy", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4380 | G_CALLBACK(destroy_dialog), rename_bud_dialog); |
| 1729 | 4381 | gtk_widget_realize(rename_bud_dialog); |
| 4382 | ||
| 4383 | mainbox = gtk_vbox_new(FALSE, 5); | |
| 4384 | gtk_container_set_border_width(GTK_CONTAINER(mainbox), 5); | |
| 4385 | gtk_container_add(GTK_CONTAINER(rename_bud_dialog), mainbox); | |
| 4386 | ||
| 4387 | frame = gtk_frame_new(_("Rename Buddy")); | |
| 4388 | gtk_box_pack_start(GTK_BOX(mainbox), frame, TRUE, TRUE, 0); | |
| 4389 | ||
| 4390 | fbox = gtk_hbox_new(FALSE, 5); | |
| 4391 | gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); | |
| 4392 | gtk_container_add(GTK_CONTAINER(frame), fbox); | |
| 4393 | ||
| 4394 | label = gtk_label_new(_("New name:")); | |
| 4395 | gtk_box_pack_start(GTK_BOX(fbox), label, FALSE, FALSE, 0); | |
| 4396 | ||
| 4397 | name_entry = gtk_entry_new(); | |
| 4398 | gtk_box_pack_start(GTK_BOX(fbox), name_entry, TRUE, TRUE, 0); | |
| 4635 | 4399 | g_object_set_data(G_OBJECT(name_entry), "buddy", b); |
| 1729 | 4400 | gtk_entry_set_text(GTK_ENTRY(name_entry), b->name); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4401 | g_signal_connect(G_OBJECT(name_entry), "activate", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4402 | G_CALLBACK(do_rename_buddy), name_entry); |
| 1729 | 4403 | gtk_widget_grab_focus(name_entry); |
| 4404 | ||
| 4405 | bbox = gtk_hbox_new(FALSE, 5); | |
| 4406 | gtk_box_pack_start(GTK_BOX(mainbox), bbox, FALSE, FALSE, 0); | |
| 4407 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4408 | button = gaim_pixbuf_button_from_stock(_("OK"), GTK_STOCK_OK, GAIM_BUTTON_HORIZONTAL); |
| 4635 | 4409 | g_object_set_data(G_OBJECT(button), "buddy", b); |
| 1729 | 4410 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4411 | g_signal_connect(G_OBJECT(button), "clicked", |
|
4162
7aca7e45e675
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4142
diff
changeset
|
4412 | G_CALLBACK(do_rename_buddy), name_entry); |
| 4236 | 4413 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4414 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
| 4236 | 4415 | gtk_box_pack_end(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4416 | g_signal_connect(G_OBJECT(button), "clicked", |
| 4236 | 4417 | G_CALLBACK(destroy_dialog), rename_bud_dialog); |
| 1729 | 4418 | } |
| 4419 | ||
| 4420 | gtk_widget_show_all(rename_bud_dialog); | |
| 4421 | } | |
|
2370
722a3374b5cf
[gaim-migrate @ 2383]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2344
diff
changeset
|
4422 | |
|
2379
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4423 | |
| 3668 | 4424 | GtkWidget *gaim_pixbuf_toolbar_button_from_stock(char *icon) |
| 4425 | { | |
| 4426 | GtkWidget *button, *image, *bbox; | |
| 4427 | ||
| 4428 | button = gtk_toggle_button_new(); | |
| 4429 | gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); | |
| 4430 | ||
| 4431 | bbox = gtk_vbox_new(FALSE, 0); | |
| 4432 | ||
| 4433 | gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4434 | ||
| 4435 | image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_MENU); | |
| 4436 | gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 0); | |
| 4437 | ||
| 4438 | gtk_widget_show_all(bbox); | |
| 4439 | return button; | |
| 4440 | } | |
| 4441 | ||
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4442 | GtkWidget * |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
4443 | gaim_pixbuf_button_from_stock(const char *text, const char *icon, |
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4444 | GaimButtonOrientation style) |
| 3668 | 4445 | { |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4446 | GtkWidget *button, *image, *label, *bbox, *ibox, *lbox; |
| 3668 | 4447 | button = gtk_button_new(); |
| 4448 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4449 | if (style == GAIM_BUTTON_HORIZONTAL) { |
| 3668 | 4450 | bbox = gtk_hbox_new(FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4451 | ibox = gtk_hbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4452 | lbox = gtk_hbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4453 | } else { |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4454 | bbox = gtk_vbox_new(FALSE, 5); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4455 | ibox = gtk_vbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4456 | lbox = gtk_vbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4457 | } |
| 3668 | 4458 | |
| 4459 | gtk_container_add (GTK_CONTAINER(button), bbox); | |
| 4460 | ||
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4461 | gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4462 | gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4463 | |
| 3668 | 4464 | if (icon) { |
| 4465 | image = gtk_image_new_from_stock(icon, GTK_ICON_SIZE_BUTTON); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4466 | gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0); |
| 3668 | 4467 | } |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4468 | |
| 3668 | 4469 | if (text) { |
| 4470 | label = gtk_label_new(NULL); | |
| 4471 | gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4472 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4473 | gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0); |
| 3668 | 4474 | } |
| 4475 | ||
| 4476 | gtk_widget_show_all(bbox); | |
| 4477 | return button; | |
| 4478 | } | |
| 4479 | ||
|
5545
a8b1a1262402
[gaim-migrate @ 5946]
Christian Hammond <chipx86@chipx86.com>
parents:
5498
diff
changeset
|
4480 | GtkWidget *gaim_pixbuf_button(char *text, char *iconfile, GaimButtonOrientation style) |
| 3367 | 4481 | { |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4482 | GtkWidget *button, *image, *label, *bbox, *ibox, *lbox; |
| 3367 | 4483 | button = gtk_button_new(); |
| 3649 | 4484 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4485 | if (style == GAIM_BUTTON_HORIZONTAL) { |
| 3649 | 4486 | bbox = gtk_hbox_new(FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4487 | ibox = gtk_hbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4488 | lbox = gtk_hbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4489 | } else { |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4490 | bbox = gtk_vbox_new(FALSE, 5); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4491 | ibox = gtk_vbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4492 | lbox = gtk_vbox_new(FALSE, 0); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4493 | } |
| 3649 | 4494 | |
| 3367 | 4495 | gtk_container_add (GTK_CONTAINER(button), bbox); |
| 3649 | 4496 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4497 | gtk_box_pack_start_defaults(GTK_BOX(bbox), ibox); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4498 | gtk_box_pack_start_defaults(GTK_BOX(bbox), lbox); |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4499 | |
| 3367 | 4500 | if (iconfile) { |
| 4501 | char *filename; | |
| 4502 | filename = g_build_filename (DATADIR, "pixmaps", "gaim", "buttons", iconfile, NULL); | |
|
5213
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
4503 | gaim_debug(GAIM_DEBUG_MISC, "gaim_pixbuf_button", |
|
d56ea526b80c
[gaim-migrate @ 5583]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
4504 | "Loading: %s\n", filename); |
| 3367 | 4505 | image = gtk_image_new_from_file(filename); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4506 | gtk_box_pack_end(GTK_BOX(ibox), image, FALSE, FALSE, 0); |
| 3367 | 4507 | g_free(filename); |
| 4508 | } | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4509 | |
| 3367 | 4510 | if (text) { |
| 4511 | label = gtk_label_new(NULL); | |
| 4512 | gtk_label_set_text_with_mnemonic(GTK_LABEL(label), text); | |
| 4513 | gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4514 | gtk_box_pack_start(GTK_BOX(lbox), label, FALSE, FALSE, 0); |
|
2379
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4515 | } |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4516 | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4517 | gtk_widget_show_all(bbox); |
|
2379
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4518 | return button; |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4519 | } |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4520 | |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4521 | int file_is_dir(const char *path, GtkWidget *w) |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4522 | { |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4523 | struct stat st; |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4524 | char *name; |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4525 | |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4526 | if (stat(path, &st) == 0 && S_ISDIR(st.st_mode)) { |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4527 | /* append a / if needed */ |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4528 | if (path[strlen(path) - 1] != '/') { |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4529 | name = g_strconcat(path, "/", NULL); |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4530 | } else { |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4531 | name = g_strdup(path); |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4532 | } |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4533 | gtk_file_selection_set_filename(GTK_FILE_SELECTION(w), name); |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4534 | g_free(name); |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4535 | return 1; |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4536 | } |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4537 | |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4538 | return 0; |
|
cffc8ebf1bd4
[gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
2377
diff
changeset
|
4539 | } |
| 2956 | 4540 | |
| 4541 | /*------------------------------------------------------------------------*/ | |
| 4542 | /* The dialog for setting V-Card info */ | |
| 4543 | /*------------------------------------------------------------------------*/ | |
| 4544 | /* | |
| 4545 | * There are actually two "chunks" of code following: generic "multi-entry dialog" | |
| 4546 | * support and V-Card dialog specific support. | |
| 4547 | * | |
| 4548 | * At first blush, this may seem like an unnecessary duplication of effort given | |
| 4549 | * that a "set dir info" dialog already exists. However, this is not so because: | |
| 4550 | * | |
| 4551 | * 1. V-Cards can have a lot more data in them than what the current | |
| 4552 | * "set dir" dialog supports. | |
| 4553 | * | |
| 4554 | * 2. V-Card data, at least with respect to Jabber, is currently in a | |
| 4555 | * state of flux. As the data and format changes, all that need be | |
| 4556 | * changed with the V-Card support I've written is the "template" | |
| 4557 | * data. | |
| 4558 | * | |
| 4559 | * 3. The "multi entry dialog" support itself was originally written | |
| 4560 | * to support Jabber server user registration (TBD). A "dynamically | |
| 4561 | * configurable" multi-entry dialog is needed for that, as different | |
| 4562 | * servers may require different registration information. It just | |
| 4563 | * turned out to be well-suited to adding V-Card setting support, as | |
| 4564 | * well :-). | |
| 4565 | * | |
| 4566 | * TBD: Add check-box support to the generic multi-entry dialog support so that | |
| 4567 | * it can be used to "replace" the "set dir info" support? | |
| 4568 | * | |
| 4569 | * Multiple-language support. Currently Not In There. I think this should | |
| 4570 | * be easy. Note that when it's added: if anybody saved their data in | |
| 4571 | * English, it'll be lost when MLS is added and they'll have to re-enter it. | |
| 4572 | * | |
| 4573 | * More "TBDs" noted in the code. | |
| 4574 | */ | |
| 4575 | ||
| 4576 | ||
| 4577 | /*------------------------------------*/ | |
| 4578 | /* generic multi-entry dialog support */ | |
| 4579 | /*------------------------------------*/ | |
| 4580 | ||
| 4581 | /* | |
| 4582 | * Print all multi-entry items | |
| 4583 | * | |
| 4584 | * Note: Simply a debug helper | |
| 4585 | */ | |
| 4586 | void multi_entry_item_print_all(const GSList *list) { | |
| 4587 | ||
| 4588 | int cnt = 0; | |
| 4589 | ||
| 4590 | /* While there's something to print... */ | |
| 4591 | while(list != NULL) { | |
| 4592 | fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiEntryData *) (list->data))->label); | |
| 4593 | if(((MultiEntryData *) (list->data))->text != NULL) { | |
| 4594 | fprintf(stderr, ", text: \"%s\"", ((MultiEntryData *) (list->data))->text); | |
| 4595 | } | |
| 4596 | fputs("\n", stderr); | |
| 4597 | list = list->next; | |
| 4598 | } | |
| 4599 | } | |
| 4600 | ||
| 4601 | /* | |
| 4602 | * Print all multi-text items | |
| 4603 | * | |
| 4604 | * Note: Simply a debug helper | |
| 4605 | */ | |
| 4606 | void multi_text_item_print_all(const GSList *list) { | |
| 4607 | ||
| 4608 | int cnt = 0; | |
| 4609 | ||
| 4610 | /* While there's something to print... */ | |
| 4611 | while(list != NULL) { | |
| 4612 | fprintf(stderr, "label %2d: \"%s\"", ++cnt, ((MultiTextData *) (list->data))->label); | |
| 4613 | if(((MultiTextData *) (list->data))->text != NULL) { | |
| 4614 | fprintf(stderr, ", text: \"%s\"", ((MultiTextData *) (list->data))->text); | |
| 4615 | } | |
| 4616 | fputs("\n", stderr); | |
| 4617 | list = list->next; | |
| 4618 | } | |
| 4619 | } | |
| 4620 | ||
| 4621 | ||
| 4622 | /* | |
| 4623 | * Free all multi-entry item allocs and NULL the list pointer | |
| 4624 | */ | |
| 4625 | void multi_entry_items_free_all(GSList **list) | |
| 4626 | { | |
| 4627 | ||
| 4628 | GSList *next = *list; | |
| 4629 | MultiEntryData *data; | |
| 4630 | ||
| 4631 | /* While there's something to free() ... */ | |
| 4632 | while(next != NULL) { | |
| 4633 | data = (MultiEntryData *) next->data; | |
| 4634 | g_free(data->label); | |
| 4635 | g_free(data->text); | |
| 4636 | g_free(data); | |
| 4637 | next = next->next; | |
| 4638 | } | |
| 4639 | g_slist_free(*list); | |
| 4640 | *list = NULL; | |
| 4641 | } | |
| 4642 | ||
| 4643 | /* | |
| 4644 | * Free all multi-text item allocs and NULL the list pointer | |
| 4645 | */ | |
| 4646 | void multi_text_items_free_all(GSList **list) | |
| 4647 | { | |
| 4648 | ||
| 4649 | GSList *next = *list; | |
| 4650 | MultiTextData *data; | |
| 4651 | ||
| 4652 | /* While there's something to free() ... */ | |
| 4653 | while(next != NULL) { | |
| 4654 | data = (MultiTextData *) next->data; | |
| 4655 | g_free(data->label); | |
| 4656 | g_free(data->text); | |
| 4657 | g_free(data); | |
| 4658 | next = next->next; | |
| 4659 | } | |
| 4660 | g_slist_free(*list); | |
| 4661 | *list = NULL; | |
| 4662 | } | |
| 4663 | ||
| 4664 | /* | |
| 4665 | * See if a MultiEntryData item contains a given label | |
| 4666 | * | |
| 4667 | * See: glib docs for g_slist_compare_custom() for details | |
| 4668 | */ | |
| 4669 | static gint multi_entry_data_label_compare(gconstpointer data, gconstpointer label) | |
| 4670 | { | |
| 4671 | return(strcmp(((MultiEntryData *) (data))->label, (char *) label)); | |
| 4672 | } | |
| 4673 | ||
| 4674 | /* | |
| 4675 | * Add a new multi-entry item to list | |
| 4676 | * | |
| 4677 | * If adding to existing list: will search the list for existence of | |
| 4678 | * "label" and change/create "text" entry if necessary. | |
| 4679 | */ | |
| 4680 | ||
| 4681 | MultiEntryData *multi_entry_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 4682 | { | |
| 4683 | GSList *found; | |
| 4684 | MultiEntryData *data; | |
| 4685 | ||
| 2975 | 4686 | if((found = g_slist_find_custom(*list, (void *)label, multi_entry_data_label_compare)) == NULL) { |
| 2956 | 4687 | if(add_it) { |
| 4688 | data = (MultiEntryData *) g_slist_last(*list = | |
| 4689 | g_slist_append(*list, g_malloc(sizeof(MultiEntryData))))->data; | |
| 4690 | data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 4691 | data->text = NULL; | |
| 4692 | /* | |
| 4693 | * default to setting "visible" and editable to TRUE - they can be | |
| 4694 | * overridden later, of course. | |
| 4695 | */ | |
| 4696 | data->visible = TRUE; | |
| 4697 | data->editable = TRUE; | |
| 4698 | } else { | |
| 4699 | data = NULL; | |
| 4700 | } | |
| 4701 | } else { | |
| 4702 | data = found->data; | |
| 4703 | } | |
| 4704 | ||
| 4705 | if(data != NULL && text != NULL && text[0] != '\0') { | |
| 4706 | if(data->text == NULL) { | |
| 4707 | data->text = g_malloc(strlen(text) + 1); | |
| 4708 | } else { | |
| 4709 | data->text = g_realloc(data->text, strlen(text) + 1); | |
| 4710 | } | |
| 4711 | strcpy(data->text, text); | |
| 4712 | } | |
| 4713 | ||
| 4714 | return(data); | |
| 4715 | } | |
| 4716 | ||
| 4717 | /* | |
| 4718 | * See if a MultiTextData item contains a given label | |
| 4719 | * | |
| 4720 | * See: glib docs for g_slist_compare_custom() for details | |
| 4721 | */ | |
| 4722 | static gint multi_text_data_label_compare(gconstpointer data, gconstpointer label) | |
| 4723 | { | |
| 4724 | return(strcmp(((MultiTextData *) (data))->label, (char *) label)); | |
| 4725 | } | |
| 4726 | ||
| 4727 | /* | |
| 4728 | * Add a new multi-text item to list | |
| 4729 | * | |
| 4730 | * If adding to existing list: will search the list for existence of | |
| 4731 | * "label" and change/create "text" text if necessary. | |
| 4732 | */ | |
| 4733 | ||
| 4734 | MultiTextData *multi_text_list_update(GSList **list, const char *label, const char *text, int add_it) | |
| 4735 | { | |
| 4736 | GSList *found; | |
| 4737 | MultiTextData *data; | |
| 4738 | ||
| 2975 | 4739 | if((found = g_slist_find_custom(*list, (void *)label, multi_text_data_label_compare)) == NULL) { |
| 2956 | 4740 | if(add_it) { |
| 4741 | data = (MultiTextData *) g_slist_last(*list = | |
| 4742 | g_slist_append(*list, g_malloc(sizeof(MultiTextData))))->data; | |
| 4743 | data->label = strcpy(g_malloc(strlen(label) +1), label); | |
| 4744 | data->text = NULL; | |
| 4745 | } else { | |
| 4746 | data = NULL; | |
| 4747 | } | |
| 4748 | } else { | |
| 4749 | data = found->data; | |
| 4750 | } | |
| 4751 | ||
| 4752 | if(data != NULL && text != NULL && text[0] != '\0') { | |
| 4753 | if(data->text == NULL) { | |
| 4754 | data->text = g_malloc(strlen(text) + 1); | |
| 4755 | } else { | |
| 4756 | data->text = g_realloc(data->text, strlen(text) + 1); | |
| 4757 | } | |
| 4758 | strcpy(data->text, text); | |
| 4759 | } | |
| 4760 | ||
| 4761 | return(data); | |
| 4762 | } | |
| 4763 | ||
| 4764 | /* | |
| 4765 | * Free-up the multi-entry item list and the MultiEntryDlg | |
| 4766 | * struct alloc. | |
| 4767 | */ | |
| 4768 | void multi_entry_free(struct multi_entry_dlg *b) | |
| 4769 | { | |
| 4770 | multi_entry_items_free_all(&(b->multi_entry_items)); | |
| 4771 | multi_text_items_free_all(&(b->multi_text_items)); | |
| 4772 | g_free(b->instructions->text); | |
| 4773 | g_free(b->instructions); | |
| 2975 | 4774 | g_free(b->entries_title); |
| 2956 | 4775 | g_free(b); |
| 4776 | } | |
| 4777 | ||
| 4778 | /* | |
| 4779 | * Multi-Entry dialog "destroyed" catcher | |
| 4780 | * | |
| 4781 | * Free-up the multi-entry item list, destroy the dialog widget | |
| 4782 | * and free the MultiEntryDlg struct alloc. | |
| 4783 | * | |
| 4784 | */ | |
| 4785 | void multi_entry_dialog_destroy(GtkWidget *widget, gpointer data) | |
| 4786 | { | |
| 4787 | MultiEntryDlg *b = data; | |
| 4788 | ||
| 4789 | multi_entry_free(b); | |
| 4790 | } | |
| 4791 | ||
| 4792 | /* | |
| 4793 | * Show/Re-show instructions | |
| 4794 | */ | |
| 4795 | void re_show_multi_entry_instr(MultiInstrData *instructions) | |
| 4796 | { | |
| 4797 | if(instructions->label != NULL) { | |
| 4798 | if(instructions->text == NULL) { | |
| 4799 | gtk_widget_hide(instructions->label); | |
| 4800 | } else { | |
|
5236
d0667c1c18b2
[gaim-migrate @ 5606]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
5234
diff
changeset
|
4801 | gtk_label_set_text(GTK_LABEL (instructions->label), _(instructions->text)); |
| 2956 | 4802 | gtk_widget_show(instructions->label); |
| 4803 | } | |
| 4804 | } | |
| 4805 | } | |
| 4806 | ||
| 4807 | /* | |
| 4808 | * Show/Re-show entry boxes | |
| 4809 | */ | |
| 4810 | void re_show_multi_entry_entries(GtkWidget **entries_table, | |
| 4811 | GtkWidget *entries_frame, | |
| 4812 | GSList *multi_entry_items) | |
| 4813 | { | |
| 4814 | GtkWidget *label; | |
| 4815 | GSList *multi_entry; | |
| 4816 | MultiEntryData *med; | |
| 2975 | 4817 | int rows, row_num, col_num, col_offset; |
| 4818 | int cols = 1; | |
| 2956 | 4819 | |
| 4820 | /* Figure-out number of rows needed for table */ | |
| 2975 | 4821 | if((rows = g_slist_length(multi_entry_items)) > 9) { |
| 4822 | rows /= 2; | |
| 4823 | ++cols; | |
| 4824 | } | |
| 2956 | 4825 | |
| 4826 | if(*entries_table != NULL) { | |
| 4827 | gtk_widget_destroy(GTK_WIDGET (*entries_table)); | |
| 4828 | } | |
| 2975 | 4829 | *entries_table = gtk_table_new(rows, 3 * cols, FALSE); |
| 2956 | 4830 | gtk_container_add(GTK_CONTAINER (entries_frame), *entries_table); |
| 4831 | ||
| 2975 | 4832 | for(col_num = 0, multi_entry = multi_entry_items; col_num < cols && multi_entry != NULL; |
| 4833 | ++col_num) { | |
| 4834 | col_offset = col_num * 3; | |
| 4835 | for(row_num = 0; row_num < rows && multi_entry != NULL; | |
| 4836 | ++row_num, multi_entry = multi_entry->next) { | |
| 4837 | ||
| 4838 | med = (MultiEntryData *) multi_entry->data; | |
| 4839 | ||
|
5236
d0667c1c18b2
[gaim-migrate @ 5606]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
5234
diff
changeset
|
4840 | label = gtk_label_new(_(med->label)); |
| 2975 | 4841 | gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 1.0, (gfloat) 0.5); |
| 4842 | gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 4843 | col_offset, 1 + col_offset, row_num, row_num +1); | |
| 4844 | gtk_widget_show(label); | |
| 4845 | ||
| 4846 | label = gtk_label_new(": "); | |
| 4847 | gtk_misc_set_alignment(GTK_MISC(label), (gfloat) 0.0, (gfloat) 0.5); | |
| 4848 | gtk_table_attach_defaults(GTK_TABLE (*entries_table), label, | |
| 4849 | 1 + col_offset, 2 + col_offset, row_num, row_num +1); | |
| 4850 | gtk_widget_show(label); | |
| 4851 | ||
| 4635 | 4852 | med->widget = gtk_entry_new(); |
| 4853 | gtk_entry_set_max_length(GTK_ENTRY(med->widget), 50); | |
| 2975 | 4854 | if(med->text != NULL) { |
| 4855 | gtk_entry_set_text(GTK_ENTRY (med->widget), med->text); | |
| 4856 | } | |
| 4857 | gtk_entry_set_visibility(GTK_ENTRY (med->widget), med->visible); | |
| 4635 | 4858 | gtk_editable_set_editable(GTK_EDITABLE(med->widget), med->editable); |
| 2975 | 4859 | gtk_table_attach(GTK_TABLE (*entries_table), med->widget, |
| 4860 | 2 + col_offset, 3 + col_offset, row_num, row_num +1, | |
| 4861 | GTK_FILL|GTK_EXPAND, GTK_FILL|GTK_EXPAND, 5, 0); | |
| 4862 | gtk_widget_show(med->widget); | |
| 2956 | 4863 | } |
| 4864 | } | |
| 4865 | ||
| 4866 | gtk_widget_show(*entries_table); | |
| 4867 | } | |
| 4868 | ||
| 4869 | /* | |
| 4870 | * Show/Re-show textboxes | |
| 4871 | */ | |
| 4872 | void re_show_multi_entry_textboxes(GtkWidget **texts_ibox, | |
| 4873 | GtkWidget *texts_obox, | |
| 4874 | GSList *multi_text_items) | |
| 4875 | { | |
| 4876 | GSList *multi_text; | |
| 4877 | MultiTextData *mtd; | |
| 4635 | 4878 | GtkWidget *frame; |
| 4879 | GtkWidget *sw; | |
| 2956 | 4880 | |
| 4881 | if(*texts_ibox != NULL) { | |
| 4882 | gtk_widget_destroy(GTK_WIDGET (*texts_ibox)); | |
| 4883 | } | |
| 4884 | *texts_ibox = gtk_vbox_new(FALSE, 5); | |
| 4885 | gtk_container_add(GTK_CONTAINER (texts_obox), *texts_ibox); | |
| 4886 | ||
| 4887 | for(multi_text = multi_text_items; multi_text != NULL; multi_text = multi_text->next) { | |
| 4888 | mtd = (MultiTextData *) multi_text->data; | |
|
5236
d0667c1c18b2
[gaim-migrate @ 5606]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents:
5234
diff
changeset
|
4889 | frame = gtk_frame_new(_(mtd->label)); |
| 4635 | 4890 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 4891 | gtk_container_set_border_width(GTK_CONTAINER(sw), 5); | |
| 4892 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 4893 | GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 4894 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
| 4895 | GTK_SHADOW_IN); | |
| 4896 | gtk_widget_set_size_request(sw, 300, 100); | |
| 4897 | gtk_container_add(GTK_CONTAINER (frame), sw); | |
| 2956 | 4898 | gtk_container_add(GTK_CONTAINER (*texts_ibox), frame); |
| 4635 | 4899 | mtd->textbox = gtk_text_view_new(); |
| 4900 | gtk_text_view_set_editable(GTK_TEXT_VIEW(mtd->textbox), TRUE); | |
|
5105
3565a4c4de6a
[gaim-migrate @ 5468]
David J. Brigada <brigada@prism.net>
parents:
5092
diff
changeset
|
4901 | gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(mtd->textbox), GTK_WRAP_WORD_CHAR); |
| 4635 | 4902 | gtk_text_buffer_set_text( |
| 4903 | gtk_text_view_get_buffer(GTK_TEXT_VIEW(mtd->textbox)), | |
| 4904 | mtd->text?mtd->text:"", -1); | |
| 4905 | gtk_container_add(GTK_CONTAINER (sw), mtd->textbox); | |
| 2956 | 4906 | gtk_widget_show(mtd->textbox); |
| 4635 | 4907 | gtk_widget_show(sw); |
| 2956 | 4908 | gtk_widget_show(frame); |
| 4909 | } | |
| 4910 | ||
| 4911 | gtk_widget_show(*texts_ibox); | |
| 4912 | } | |
| 4913 | ||
| 4914 | /* | |
| 4915 | * Create and initialize a new Multi-Entry Dialog struct | |
| 4916 | */ | |
| 4917 | MultiEntryDlg *multi_entry_dialog_new() | |
| 4918 | { | |
| 4919 | MultiEntryDlg *b = g_new0(MultiEntryDlg, 1); | |
| 4920 | b->instructions = g_new0(MultiInstrData, 1); | |
| 4921 | b->multi_entry_items = NULL; | |
| 4922 | b->multi_text_items = NULL; | |
| 4923 | return(b); | |
| 4924 | } | |
| 4925 | ||
| 4926 | /* | |
| 4927 | * Instantiate a new multi-entry dialog | |
| 4928 | * | |
| 4929 | * data == pointer to MultiEntryDlg with the following | |
| 4930 | * initialized: | |
| 4931 | * | |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
4932 | * role |
| 2956 | 4933 | * title |
| 4934 | * user | |
| 4935 | * multi_entry_items - pointers to MultiEntryData list | |
| 4936 | * and MultiTextData list | |
| 4937 | * instructions (optional) | |
| 4938 | * ok function pointer | |
| 4939 | * cancel function pointer (actually used to set | |
| 4940 | * window destroy signal--cancel asserts destroy) | |
| 4941 | * | |
| 4942 | * sets the following in the MultiEntryDialog struct: | |
| 4943 | * | |
| 4944 | * window | |
| 4945 | */ | |
| 4946 | void show_multi_entry_dialog(gpointer data) | |
| 4947 | { | |
| 4948 | GtkWidget *vbox, *hbox; | |
| 4949 | GtkWidget *button; | |
| 4950 | MultiEntryDlg *b = data; | |
| 4951 | ||
| 4952 | GAIM_DIALOG(b->window); | |
| 2969 | 4953 | gtk_container_set_border_width(GTK_CONTAINER(b->window), 5); |
|
4074
c69100a0ede9
[gaim-migrate @ 4289]
Robert McQueen <robot101@debian.org>
parents:
4061
diff
changeset
|
4954 | gtk_window_set_role(GTK_WINDOW(b->window), b->role); |
| 2956 | 4955 | gtk_window_set_title(GTK_WINDOW (b->window), b->title); |
| 2969 | 4956 | |
| 2956 | 4957 | /* Clean up if user dismisses window via window manager! */ |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4958 | g_signal_connect(G_OBJECT(b->window), "destroy", G_CALLBACK(b->cancel), (gpointer) b); |
| 2956 | 4959 | gtk_widget_realize(b->window); |
| 4960 | ||
| 4961 | vbox = gtk_vbox_new(FALSE, 5); | |
| 4962 | gtk_container_add(GTK_CONTAINER (b->window), vbox); | |
| 4963 | ||
| 4964 | b->instructions->label = gtk_label_new(NULL); | |
| 4965 | gtk_label_set_line_wrap(GTK_LABEL (b->instructions->label), TRUE); | |
| 4966 | gtk_box_pack_start(GTK_BOX (vbox), b->instructions->label, TRUE, TRUE, 5); | |
| 4967 | re_show_multi_entry_instr(b->instructions); | |
| 4968 | ||
| 2975 | 4969 | b->entries_frame = gtk_frame_new(b->entries_title); |
| 2956 | 4970 | gtk_box_pack_start(GTK_BOX (vbox), b->entries_frame, TRUE, TRUE, 5); |
| 4971 | b->entries_table = NULL; | |
| 4972 | re_show_multi_entry_entries(&(b->entries_table), b->entries_frame, b->multi_entry_items); | |
| 4973 | ||
| 4974 | b->texts_obox = gtk_vbox_new(FALSE, 0); | |
| 2969 | 4975 | gtk_box_pack_start(GTK_BOX (vbox), b->texts_obox, TRUE, TRUE, 5); |
| 2956 | 4976 | b->texts_ibox = NULL; |
| 4977 | re_show_multi_entry_textboxes(&(b->texts_ibox), b->texts_obox, b->multi_text_items); | |
| 4978 | ||
| 4979 | hbox = gtk_hbox_new(FALSE, 0); | |
| 2969 | 4980 | gtk_box_pack_start(GTK_BOX (vbox), hbox, FALSE, FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4981 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4982 | button = gaim_pixbuf_button_from_stock(_("Save"), GTK_STOCK_SAVE, GAIM_BUTTON_HORIZONTAL); |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4983 | g_signal_connect(G_OBJECT (button), "clicked", |
| 4236 | 4984 | G_CALLBACK (b->ok), (gpointer) b); |
| 4985 | gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); | |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4986 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4987 | button = gaim_pixbuf_button_from_stock(_("Cancel"), GTK_STOCK_CANCEL, GAIM_BUTTON_HORIZONTAL); |
| 2969 | 4988 | |
| 2956 | 4989 | /* Let "destroy handling" (set above) handle cleanup */ |
|
5314
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4990 | g_signal_connect_swapped(G_OBJECT (button), "clicked", |
|
56ef6a09fb99
[gaim-migrate @ 5686]
Christian Hammond <chipx86@chipx86.com>
parents:
5294
diff
changeset
|
4991 | G_CALLBACK (gtk_widget_destroy), G_OBJECT (b->window)); |
| 2969 | 4992 | gtk_box_pack_end(GTK_BOX (hbox), button, FALSE, FALSE, 5); |
|
5024
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4993 | |
|
3b5412e4b483
[gaim-migrate @ 5361]
Robert McQueen <robot101@debian.org>
parents:
4978
diff
changeset
|
4994 | gtk_widget_show_all(b->window); |
| 2956 | 4995 | } |
| 4996 | ||
| 4997 | ||
| 4998 | /*------------------------------------*/ | |
| 4999 | /* V-Card dialog specific support */ | |
| 5000 | /*------------------------------------*/ | |
| 5001 | ||
| 5002 | /* | |
| 5003 | * V-Card "set info" dialog "Save" clicked | |
| 5004 | * | |
| 5005 | * Copy data from GTK+ dialogs into GSLists, call protocol-specific | |
| 5006 | * formatter and save the user info data. | |
| 5007 | */ | |
| 5008 | void set_vcard_dialog_ok_clicked(GtkWidget *widget, gpointer data) | |
| 5009 | { | |
| 5010 | MultiEntryDlg *b = (MultiEntryDlg *) data; | |
| 5011 | struct gaim_connection *gc; | |
| 5012 | gchar *tmp; | |
| 5013 | GSList *list; | |
| 5014 | ||
| 5015 | for(list = b->multi_entry_items; list != NULL; list = list->next) { | |
| 5016 | if(((MultiEntryData *) list->data)->text != NULL) { | |
| 5017 | g_free(((MultiEntryData *) list->data)->text); | |
| 5018 | } | |
| 5019 | ((MultiEntryData *) list->data)->text = | |
| 5020 | g_strdup(gtk_entry_get_text(GTK_ENTRY(((MultiEntryData *) list->data)->widget))); | |
| 5021 | } | |
| 5022 | ||
| 5023 | for(list = b->multi_text_items; list != NULL; list = list->next) { | |
| 5024 | if(((MultiTextData *) list->data)->text != NULL) { | |
| 5025 | g_free(((MultiTextData *) list->data)->text); | |
| 5026 | } | |
| 5027 | ((MultiTextData *) list->data)->text = | |
| 4635 | 5028 | gtk_text_view_get_text(GTK_TEXT_VIEW(((MultiTextData *) list->data)->textbox), FALSE); |
| 2956 | 5029 | } |
| 5030 | ||
| 5031 | ||
| 5032 | tmp = b->custom(b); | |
| 5033 | ||
| 5034 | /* | |
| 5035 | * Set the user info and (possibly) send to the server | |
| 5036 | */ | |
| 4491 | 5037 | if (b->account) { |
| 5038 | strncpy(b->account->user_info, tmp, sizeof b->account->user_info); | |
| 5039 | gc = b->account->gc; | |
| 2956 | 5040 | |
| 5041 | save_prefs(); | |
| 5042 | ||
| 5043 | if (gc) | |
| 4491 | 5044 | serv_set_info(gc, b->account->user_info); |
| 2956 | 5045 | } |
| 5046 | ||
| 5047 | g_free(tmp); | |
| 5048 | ||
| 5049 | /* Let multi-edit dialog window "destroy" event catching handle remaining cleanup */ | |
| 5050 | gtk_widget_destroy(GTK_WIDGET (b->window)); | |
| 5051 | } | |
| 5052 | ||
| 5053 | /* | |
| 5054 | * Instantiate a v-card dialog | |
| 5055 | */ | |
| 5056 | void show_set_vcard(MultiEntryDlg *b) | |
| 5057 | { | |
| 5058 | b->ok = set_vcard_dialog_ok_clicked; | |
| 5059 | b->cancel = multi_entry_dialog_destroy; | |
| 5060 | ||
| 5061 | show_multi_entry_dialog(b); | |
| 5062 | } | |
| 5063 | ||
| 5064 | ||
| 5065 | /*------------------------------------------------------------------------*/ | |
| 5066 | /* End dialog for setting v-card info */ | |
| 5067 | /*------------------------------------------------------------------------*/ | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4350
diff
changeset
|
5068 |