Mercurial > pidgin
annotate src/dialogs.c @ 338:9d258a0aa560
[gaim-migrate @ 348]
Whoa, all kinds of things happened here. The applet looks better. The
preferences dialog changes based on your compile-time options (oscar,
gnome). Whispering works again. libfaim got updated; it can almost do
RVOUS stuff, and hopefully soon can make requests too. The applet doesn't
need to have its sounds go through GNOME, although it still can. There
is code to facilitate SOCKS5 support (all that needs to be done is to
actually write the code to communicate with the proxy server).
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Tue, 06 Jun 2000 09:55:30 +0000 |
| parents | f5b199e20d12 |
| children | b402a23f35df |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 7 * it under the terms of the GNU General Public License as published by | |
| 8 * the Free Software Foundation; either version 2 of the License, or | |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
| 22 #include <string.h> | |
| 23 #include <stdio.h> | |
| 24 #include <stdlib.h> | |
| 25 #include <time.h> | |
| 26 #include <sys/types.h> | |
| 27 #include <sys/stat.h> | |
| 28 #include <fcntl.h> | |
| 29 #include <sys/socket.h> | |
| 30 #include <netdb.h> | |
| 31 #include <netinet/in.h> | |
| 32 #include <unistd.h> | |
| 33 #include <netinet/in.h> | |
| 34 #include <arpa/inet.h> | |
| 35 | |
| 36 #include <gtk/gtk.h> | |
| 37 #include "gaim.h" | |
| 38 #include "gtkhtml.h" | |
| 39 | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
40 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1" |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
41 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
42 char *fontface; |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
43 char *fontname; |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
44 |
| 1 | 45 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ |
| 46 static GList *dialogwindows = NULL; | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
47 static GtkWidget *linkdialog, *exportdialog, *importdialog, *logdialog; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
48 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
49 static void accept_callback(GtkWidget *widget, struct file_transfer *t); |
| 1 | 50 |
| 51 struct create_away { | |
| 52 GtkWidget *window; | |
| 53 GtkWidget *entry; | |
| 54 GtkWidget *text; | |
| 55 GtkWidget *checkbx; | |
| 56 }; | |
| 57 | |
| 58 | |
| 59 struct warning { | |
| 60 GtkWidget *window; | |
| 61 GtkWidget *anon; | |
| 62 char *who; | |
| 63 }; | |
| 64 | |
| 65 struct addbuddy { | |
| 66 GtkWidget *window; | |
| 67 GtkWidget *combo; | |
| 68 GtkWidget *entry; | |
| 69 }; | |
| 70 | |
| 71 struct addperm { | |
| 72 GtkWidget *window; | |
| 73 GSList *buttons; | |
| 74 GtkWidget *entry; | |
| 75 }; | |
| 76 | |
| 77 struct addbp { | |
| 78 GtkWidget *window; | |
| 79 GtkWidget *nameentry; | |
| 80 GtkWidget *messentry; | |
| 81 GtkWidget *sendim; | |
| 82 GtkWidget *openwindow; | |
| 83 }; | |
| 84 | |
| 85 struct findbyemail { | |
| 86 GtkWidget *window; | |
| 87 GtkWidget *emailentry; | |
| 88 }; | |
| 89 | |
| 90 struct findbyinfo { | |
| 91 GtkWidget *window; | |
| 92 GtkWidget *firstentry; | |
| 93 GtkWidget *middleentry; | |
| 94 GtkWidget *lastentry; | |
| 95 GtkWidget *maidenentry; | |
| 96 GtkWidget *cityentry; | |
| 97 GtkWidget *stateentry; | |
| 98 GtkWidget *countryentry; | |
| 99 }; | |
| 100 | |
| 101 struct registerdlg { | |
| 102 GtkWidget *window; | |
| 103 GtkWidget *name; | |
| 104 GtkWidget *email; | |
| 105 GtkWidget *uname; | |
| 106 GtkWidget *sname; | |
| 107 GtkWidget *country; | |
| 108 }; | |
| 109 | |
| 110 struct info_dlg { | |
| 111 GtkWidget *window; | |
| 112 GtkWidget *text; | |
| 113 GtkWidget *close; | |
| 114 }; | |
| 115 | |
| 116 | |
| 117 struct set_info_dlg { | |
| 118 GtkWidget *window; | |
| 119 GtkWidget *text; | |
| 120 GtkWidget *save; | |
| 121 GtkWidget *cancel; | |
| 122 }; | |
| 123 | |
| 124 struct set_dir_dlg { | |
| 125 GtkWidget *window; | |
| 126 GtkWidget *first; | |
| 127 GtkWidget *middle; | |
| 128 GtkWidget *last; | |
| 129 GtkWidget *maiden; | |
| 130 GtkWidget *city; | |
| 131 GtkWidget *state; | |
| 132 GtkWidget *country; | |
| 133 GtkWidget *web; | |
| 134 GtkWidget *cancel; | |
| 135 GtkWidget *save; | |
| 136 }; | |
| 137 | |
| 138 struct linkdlg { | |
| 139 GtkWidget *ok; | |
| 140 GtkWidget *cancel; | |
| 141 GtkWidget *window; | |
| 142 GtkWidget *url; | |
| 143 GtkWidget *text; | |
| 144 GtkWidget *toggle; | |
| 145 GtkWidget *entry; | |
| 146 }; | |
| 147 | |
| 146 | 148 struct passwddlg { |
| 149 GtkWidget *window; | |
| 150 GtkWidget *ok; | |
| 151 GtkWidget *cancel; | |
| 152 GtkWidget *original; | |
| 153 GtkWidget *new1; | |
| 154 GtkWidget *new2; | |
| 155 }; | |
| 1 | 156 |
| 157 /*------------------------------------------------------------------------*/ | |
| 158 /* Function to Send an Email */ | |
| 159 /*------------------------------------------------------------------------*/ | |
| 160 | |
| 161 static int g_sendemail(char *name, char *email, int uname, int sname, char *country) | |
| 162 { | |
| 163 static char email_data[2000]; | |
| 164 int sock; | |
|
253
5b28ef2b550e
[gaim-migrate @ 263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
165 struct in_addr *host; |
| 1 | 166 /* char data[3]; */ |
| 167 FILE *sockfile; | |
| 168 char uname_output; | |
| 169 FILE *tmpfile; | |
| 170 char filename[128]; | |
| 171 char buf[256]; | |
| 172 int i=0, tmpfd=-1; | |
| 173 | |
| 174 while (i<10000 && tmpfd < 0) { | |
| 175 g_snprintf(filename, 128, "/tmp/gaim_%s%d.tmp", current_user->username, i++); | |
| 176 | |
| 177 tmpfd = open(filename, O_RDWR|O_CREAT|O_EXCL, 0600); | |
| 178 } | |
| 179 | |
| 180 if(tmpfd < 0) { | |
| 181 return -1; | |
| 182 } | |
| 183 | |
| 184 | |
| 185 if (uname) | |
| 186 { | |
| 187 g_snprintf(buf, sizeof(buf), "uname -a > %s", filename); | |
| 188 system(buf); | |
| 189 } | |
| 190 | |
|
253
5b28ef2b550e
[gaim-migrate @ 263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
191 host = (struct in_addr *)get_address(REG_SRVR); |
| 1 | 192 if (!host) |
| 193 { | |
| 194 printf("Error Resolving Mail Server.\n"); | |
| 195 return -1; | |
| 196 } | |
| 197 | |
|
253
5b28ef2b550e
[gaim-migrate @ 263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
198 if ((sock = connect_address(host->s_addr, REG_PORT)) < 0) |
| 1 | 199 { |
| 200 printf("Error Connecting to Socket.\n"); | |
| 201 return -1; | |
| 202 } | |
| 203 | |
| 204 sockfile = fdopen(sock, "r+"); | |
| 205 | |
| 206 g_snprintf(email_data, sizeof(email_data), "mail from: %s\n", REG_EMAIL_ADDR); | |
| 207 fputs(email_data, sockfile); | |
| 208 | |
| 209 g_snprintf(email_data, sizeof(email_data), "rcpt to: %s\n", REG_EMAIL_ADDR); | |
| 210 fputs(email_data, sockfile); | |
| 211 | |
| 212 g_snprintf(email_data, sizeof(email_data), "data\n"); | |
| 213 fputs(email_data, sockfile); | |
| 214 g_snprintf(email_data, sizeof(email_data), "Subject: Registration Information\n\nBelow is the submitted Registration Information\n----------------------------------\nName: %s\nEmail: %s\nCountry: %s\nSName: %s\nGAIM: v%s\nUname: ", name, email, country, sname ? current_user->username : "N/A", VERSION); | |
| 215 fputs(email_data, sockfile); | |
| 216 | |
| 217 if (uname) | |
| 218 { | |
| 219 tmpfile = fopen(filename, "r"); | |
| 220 while (!feof(tmpfile)) | |
| 221 { | |
| 222 uname_output = fgetc(tmpfile); | |
| 223 if (!feof(tmpfile)) | |
| 224 fputc(uname_output, sockfile); | |
| 225 } | |
| 226 fclose(tmpfile); | |
| 227 } | |
| 228 | |
| 229 unlink(filename); | |
| 230 | |
| 231 g_snprintf(email_data, sizeof(email_data), "\n.\nquit\n\n"); | |
| 232 fputs(email_data, sockfile); | |
| 233 | |
| 234 /* while (fgets(data, 2, sockfile)) { | |
| 235 } | |
| 236 */ | |
| 237 /* I don't think the above is necessary... */ | |
| 238 | |
| 239 close(sock); | |
| 240 | |
| 241 return 1; | |
| 242 } | |
| 243 | |
| 244 /*------------------------------------------------------------------------*/ | |
| 245 /* Destroys */ | |
| 246 /*------------------------------------------------------------------------*/ | |
| 247 | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
248 static gint delete_event_dialog(GtkWidget *w, GdkEventAny *e, struct conversation *c) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
249 { |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
250 dialogwindows = g_list_remove(dialogwindows, w); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
251 gtk_widget_destroy(w); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
252 |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
253 if (GTK_IS_COLOR_SELECTION_DIALOG(w)) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
254 c->color_dialog = NULL; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
255 if (GTK_IS_FONT_SELECTION_DIALOG(w)) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
256 c->font_dialog = NULL; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
257 |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
258 return FALSE; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
259 } |
| 1 | 260 |
| 261 static void destroy_dialog(GtkWidget *w, GtkWidget *w2) | |
| 262 { | |
| 263 GtkWidget *dest; | |
| 264 | |
| 265 if (!GTK_IS_WIDGET(w2)) | |
| 266 dest = w; | |
| 267 else | |
| 268 dest = w2; | |
| 269 | |
| 270 if (dest == imdialog) | |
| 271 imdialog = NULL; | |
| 272 | |
| 273 if (dest == exportdialog) | |
| 274 exportdialog = NULL; | |
| 275 | |
| 276 if (dest == importdialog) | |
| 277 importdialog = NULL; | |
| 278 | |
| 279 if (dest == logdialog) | |
| 280 logdialog = NULL; | |
| 281 | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
282 /* if (GTK_COLOR_SELECTION_DIALOG(dest)) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
283 color_dialog = NULL;*/ |
| 1 | 284 |
| 285 if (dest == linkdialog) | |
| 286 linkdialog = NULL; | |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
287 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
288 /* if (dest == fontdialog) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
289 fontdialog = NULL;*/ |
| 1 | 290 |
| 291 dialogwindows = g_list_remove(dialogwindows, dest); | |
| 292 gtk_widget_destroy(dest); | |
| 293 | |
| 294 } | |
| 295 | |
| 296 | |
| 297 void destroy_all_dialogs() | |
| 298 { | |
| 299 GList *d = dialogwindows; | |
| 300 | |
| 301 while(d) { | |
| 302 destroy_dialog(NULL, d->data); | |
| 303 d = d->next; | |
| 304 } | |
| 305 | |
| 306 g_list_free(dialogwindows); | |
| 307 dialogwindows = NULL; | |
| 308 | |
| 84 | 309 do_im_back(NULL, NULL); |
| 310 | |
| 1 | 311 if (imdialog) { |
| 312 destroy_dialog(NULL, imdialog); | |
| 313 imdialog = NULL; | |
| 314 } | |
| 315 | |
| 316 if (linkdialog) { | |
| 317 destroy_dialog(NULL, linkdialog); | |
| 318 linkdialog = NULL; | |
| 319 } | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
320 /* is this needed? */ |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
321 /* if (colordialog) { |
| 1 | 322 destroy_dialog(NULL, colordialog); |
| 323 colordialog = NULL; | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
324 }*/ |
| 1 | 325 |
| 326 if (exportdialog) { | |
| 327 destroy_dialog(NULL, exportdialog); | |
| 328 exportdialog = NULL; | |
| 329 } | |
| 330 | |
| 331 if (importdialog) { | |
| 332 destroy_dialog(NULL, exportdialog); | |
| 333 importdialog = NULL; | |
| 334 } | |
| 335 | |
| 336 if (logdialog) { | |
| 337 destroy_dialog(NULL, logdialog); | |
| 338 logdialog = NULL; | |
| 339 } | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
340 /* is this needed? */ |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
341 /* if (fontdialog) { |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
342 destroy_dialog(NULL, fontdialog); |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
343 fontdialog = NULL; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
344 }*/ |
| 1 | 345 } |
| 346 | |
| 347 static void do_warn(GtkWidget *widget, struct warning *w) | |
| 348 { | |
| 349 serv_warn(w->who, (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))) ? | |
| 350 1 : 0); | |
| 351 | |
| 352 destroy_dialog(NULL, w->window); | |
| 353 } | |
| 354 | |
| 355 | |
| 356 void show_warn_dialog(char *who) | |
| 357 { | |
| 358 GtkWidget *cancel; | |
| 359 GtkWidget *warn; | |
| 360 GtkWidget *label; | |
| 361 GtkWidget *vbox; | |
| 362 GtkWidget *bbox; | |
| 363 struct warning *w = g_new0(struct warning, 1); | |
| 364 | |
| 365 char *buf = g_malloc(128); | |
| 366 w->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 367 dialogwindows = g_list_prepend(dialogwindows, w->window); | |
| 368 cancel = gtk_button_new_with_label("Cancel"); | |
| 369 warn = gtk_button_new_with_label("Warn"); | |
| 370 bbox = gtk_hbox_new(TRUE, 10); | |
| 371 vbox = gtk_vbox_new(FALSE, 5); | |
| 372 | |
| 373 /* Put the buttons in the box */ | |
| 374 gtk_box_pack_start(GTK_BOX(bbox), warn, TRUE, TRUE, 10); | |
| 375 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 376 | |
| 377 g_snprintf(buf, 127, "Do you really want to warn %s?", who); | |
| 378 label = gtk_label_new(buf); | |
| 379 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); | |
| 380 gtk_widget_show(label); | |
| 381 w->anon = gtk_check_button_new_with_label("Warn anonymously?"); | |
| 382 gtk_box_pack_start(GTK_BOX(vbox), w->anon, TRUE, TRUE, 0); | |
| 383 | |
| 384 label = gtk_label_new("Anonymous warnings are less harsh."); | |
| 385 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); | |
| 386 gtk_widget_show(label); | |
| 387 | |
| 388 w->who = who; | |
| 389 | |
| 390 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 391 | |
| 392 /* Handle closes right */ | |
| 393 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event", | |
| 394 GTK_SIGNAL_FUNC(destroy_dialog), w->window); | |
| 395 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 396 GTK_SIGNAL_FUNC(destroy_dialog), w->window); | |
| 397 gtk_signal_connect(GTK_OBJECT(warn), "clicked", | |
| 398 GTK_SIGNAL_FUNC(do_warn), w); | |
| 399 /* Finish up */ | |
| 400 gtk_widget_show(warn); | |
| 401 gtk_widget_show(cancel); | |
| 402 gtk_widget_show(w->anon); | |
| 403 gtk_widget_show(bbox); | |
| 404 gtk_widget_show(vbox); | |
| 405 gtk_window_set_title(GTK_WINDOW(w->window), "Gaim - Warn user?"); | |
| 406 gtk_container_add(GTK_CONTAINER(w->window), vbox); | |
| 407 gtk_widget_realize(w->window); | |
| 408 aol_icon(w->window->window); | |
| 409 | |
| 410 gtk_widget_show(w->window); | |
| 25 | 411 g_free(buf); |
| 1 | 412 } |
| 413 | |
| 414 | |
| 415 /*------------------------------------------------------------------------*/ | |
| 416 /* The dialog for getting an error */ | |
| 417 /*------------------------------------------------------------------------*/ | |
| 418 | |
| 419 void | |
| 420 do_error_dialog(char *message, char *title) | |
| 421 { | |
| 422 GtkWidget *d; | |
| 423 GtkWidget *label; | |
| 424 GtkWidget *close; | |
| 425 | |
| 426 | |
| 427 d = gtk_dialog_new(); | |
| 428 | |
| 429 label = gtk_label_new(message); | |
| 430 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
| 431 gtk_widget_show(label); | |
| 432 close = gtk_button_new_with_label("Close"); | |
| 433 gtk_widget_show(close); | |
| 434 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), | |
| 435 label, FALSE, FALSE, 5); | |
| 436 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), | |
| 437 close, FALSE, FALSE, 5); | |
| 438 | |
| 439 | |
| 440 gtk_window_set_title(GTK_WINDOW(d), title); | |
| 441 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), d); | |
| 442 gtk_widget_realize(d); | |
| 443 aol_icon(d->window); | |
| 444 | |
| 445 gtk_widget_show(d); | |
| 446 } | |
| 447 | |
| 448 | |
| 449 | |
| 450 void show_error_dialog(char *c) | |
| 451 { | |
| 452 | |
| 453 int no = atoi(c); | |
| 454 char *w = strtok(NULL, ":"); | |
| 455 char buf[256]; | |
| 456 char buf2[32]; | |
| 457 | |
| 458 | |
| 459 switch(no) { | |
| 460 case 69: | |
| 461 g_snprintf(buf, sizeof(buf), "Unable to write file %s.", w); | |
| 462 break; | |
| 463 case 169: | |
| 464 g_snprintf(buf, sizeof(buf), "Unable to read file %s.", w); | |
| 465 break; | |
| 466 case 269: | |
| 467 g_snprintf(buf, sizeof(buf), "Message too long, last %s bytes truncated.", w); | |
| 468 break; | |
| 469 case 901: | |
| 470 g_snprintf(buf, sizeof(buf), "%s not currently logged in.", w); | |
| 471 break; | |
| 472 case 902: | |
| 473 g_snprintf(buf, sizeof(buf), "Warning of %s not allowed.", w); | |
| 474 break; | |
| 475 case 903: | |
| 476 g_snprintf(buf, sizeof(buf), "A message has been dropped, you are exceeding the server speed limit."); | |
| 477 break; | |
| 478 case 950: | |
| 479 g_snprintf(buf, sizeof(buf), "Chat in %s is not available.", w); | |
| 480 break; | |
| 481 case 960: | |
| 482 g_snprintf(buf, sizeof(buf), "You are sending messages too fast to %s.", w); | |
| 483 break; | |
| 484 case 961: | |
| 485 g_snprintf(buf, sizeof(buf), "You missed an IM from %s because it was too big.", w); | |
| 486 break; | |
| 487 case 962: | |
| 488 g_snprintf(buf, sizeof(buf), "You missed an IM from %s because it was sent too fast.", w); | |
| 489 break; | |
| 490 case 970: | |
| 491 g_snprintf(buf, sizeof(buf), "Failure."); | |
| 492 break; | |
| 493 case 971: | |
| 494 g_snprintf(buf, sizeof(buf), "Too many matches."); | |
| 495 break; | |
| 496 case 972: | |
| 497 g_snprintf(buf, sizeof(buf), "Need more qualifiers."); | |
| 498 break; | |
| 499 case 973: | |
| 500 g_snprintf(buf, sizeof(buf), "Dir service temporarily unavailable."); | |
| 501 break; | |
| 502 case 974: | |
| 503 g_snprintf(buf, sizeof(buf), "Email lookup restricted."); | |
| 504 break; | |
| 505 case 975: | |
| 506 g_snprintf(buf, sizeof(buf), "Keyword ignored."); | |
| 507 break; | |
| 508 case 976: | |
| 509 g_snprintf(buf, sizeof(buf), "No keywords."); | |
| 510 break; | |
| 511 case 977: | |
| 512 g_snprintf(buf, sizeof(buf), "User has no directory information."); | |
| 513 /* g_snprintf(buf, sizeof(buf), "Language not supported."); */ | |
| 514 break; | |
| 515 case 978: | |
| 516 g_snprintf(buf, sizeof(buf), "Country not supported."); | |
| 517 break; | |
| 518 case 979: | |
| 519 g_snprintf(buf, sizeof(buf), "Failure unknown: %s.", w); | |
| 520 break; | |
| 521 case 980: | |
| 522 g_snprintf(buf, sizeof(buf), "Incorrect nickname or password."); | |
| 523 break; | |
| 524 case 981: | |
| 525 g_snprintf(buf, sizeof(buf), "The service is temporarily unavailable."); | |
| 526 break; | |
| 527 case 982: | |
| 528 g_snprintf(buf, sizeof(buf), "Your warning level is currently too high to log in."); | |
| 529 break; | |
| 530 case 983: | |
| 531 g_snprintf(buf, sizeof(buf), "You have been connecting and disconnecting too frequently. Wait ten minutes and try again. If you continue to try, you will need to wait even longer."); | |
| 532 break; | |
| 533 case 989: | |
| 534 g_snprintf(buf, sizeof(buf), "An unknown signon error has occurred: %s.", w); | |
| 535 break; | |
| 536 default: | |
| 537 g_snprintf(buf, sizeof(buf), "An unknown error, %d, has occured. Info: %s", no, w); | |
| 538 } | |
| 539 | |
| 540 g_snprintf(buf2, sizeof(buf2), "Gaim - Error %d", no); | |
| 541 | |
| 542 | |
| 543 do_error_dialog(buf, buf2); | |
| 544 return; | |
| 545 } | |
| 546 | |
| 547 static void do_im(GtkWidget *widget, GtkWidget *imentry) | |
| 548 { | |
| 549 char *who; | |
| 550 struct conversation *c; | |
| 551 | |
| 552 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(imentry)))); | |
| 553 | |
| 554 destroy_dialog(NULL, imdialog); | |
| 555 imdialog = NULL; | |
| 556 | |
| 557 if (!strcasecmp(who, "")) { | |
| 558 g_free(who); | |
| 559 return; | |
| 560 } | |
| 561 | |
| 562 c = find_conversation(who); | |
| 563 | |
| 564 if (c == NULL) { | |
| 565 c = new_conversation(who); | |
| 566 } else { | |
| 567 gdk_window_raise(c->window->window); | |
| 568 } | |
| 569 g_free(who); | |
| 570 } | |
| 571 | |
| 572 void show_ee_dialog(int ee) | |
| 573 { | |
| 574 GtkWidget *ok; | |
| 575 GtkWidget *label; | |
| 576 GtkWidget *box; | |
| 577 GtkWidget *eedialog; | |
| 578 | |
| 579 eedialog = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 580 ok = gtk_button_new_with_label("OK"); | |
| 581 box = gtk_vbox_new(FALSE, 10); | |
| 582 | |
| 583 if (ee == 0) | |
| 584 label = gtk_label_new("Amazing! Simply Amazing!"); | |
| 585 else if (ee == 1) | |
| 586 label = gtk_label_new("Pimpin\' Penguin Style! *Waddle Waddle*"); | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
587 else if (ee == 2) |
|
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
588 label = gtk_label_new("You should be me. I'm so cute!"); |
| 1 | 589 else |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
590 label = gtk_label_new("Now that's what I like!"); |
| 1 | 591 |
| 592 gtk_widget_show(label); | |
| 593 gtk_widget_show(ok); | |
| 594 | |
| 595 gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 10); | |
| 596 gtk_box_pack_start(GTK_BOX(box), ok, FALSE, FALSE, 10); | |
| 597 | |
| 598 gtk_widget_show(box); | |
| 599 | |
| 600 gtk_container_add(GTK_CONTAINER(eedialog), box); | |
| 601 gtk_window_set_title(GTK_WINDOW(eedialog), "Gaim - SUPRISE!"); | |
| 602 | |
| 603 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 604 GTK_SIGNAL_FUNC(destroy_dialog), eedialog); | |
| 605 gtk_widget_realize(eedialog); | |
| 606 aol_icon(eedialog->window); | |
| 607 | |
| 608 gtk_widget_show(eedialog); | |
| 609 } | |
| 610 | |
| 611 void show_im_dialog(GtkWidget *w, GtkWidget *w2) | |
| 612 { | |
| 613 GtkWidget *cancel; | |
| 614 GtkWidget *ok; | |
| 615 GtkWidget *imentry; | |
| 616 GtkWidget *vbox; | |
| 617 GtkWidget *ebox; | |
| 618 GtkWidget *bbox; | |
| 619 GtkWidget *label; | |
| 620 | |
| 621 if (!imdialog) { | |
| 622 | |
| 623 imdialog = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 624 cancel = gtk_button_new_with_label("Cancel"); | |
| 625 ok = gtk_button_new_with_label("OK"); | |
| 626 bbox = gtk_hbox_new(TRUE, 10); | |
| 627 vbox = gtk_vbox_new(FALSE, 5); | |
| 628 ebox = gtk_hbox_new(FALSE, 2); | |
| 629 | |
| 630 /* Put the buttons in the box */ | |
| 631 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 10); | |
| 632 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 633 | |
| 634 label = gtk_label_new("IM who: "); | |
| 635 gtk_box_pack_start(GTK_BOX(ebox), label, TRUE, TRUE, 10); | |
| 636 gtk_widget_show(label); | |
| 637 | |
| 638 imentry = gtk_entry_new(); | |
| 639 gtk_box_pack_start(GTK_BOX(ebox), imentry, TRUE, TRUE, 10); | |
| 640 | |
| 641 gtk_box_pack_start(GTK_BOX(vbox), ebox, FALSE, FALSE, 5); | |
| 642 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 643 | |
| 644 /* Handle closes right */ | |
| 645 gtk_signal_connect(GTK_OBJECT(imentry), "activate", | |
| 646 GTK_SIGNAL_FUNC(do_im), imentry); | |
| 647 gtk_signal_connect(GTK_OBJECT(imdialog), "destroy", | |
| 648 GTK_SIGNAL_FUNC(destroy_dialog), imdialog); | |
| 649 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 650 GTK_SIGNAL_FUNC(destroy_dialog), imdialog); | |
| 651 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 652 GTK_SIGNAL_FUNC(do_im), imentry); | |
| 653 /* Finish up */ | |
| 654 gtk_widget_show(ok); | |
| 655 gtk_widget_show(cancel); | |
| 656 gtk_widget_show(ebox); | |
| 657 gtk_widget_show(imentry); | |
| 658 gtk_widget_show(bbox); | |
| 659 gtk_widget_show(vbox); | |
| 660 gtk_window_set_title(GTK_WINDOW(imdialog), "Gaim - IM user"); | |
| 661 gtk_container_add(GTK_CONTAINER(imdialog), vbox); | |
| 662 gtk_widget_grab_focus(imentry); | |
| 663 gtk_widget_realize(imdialog); | |
| 664 aol_icon(imdialog->window); | |
| 665 | |
| 666 } | |
| 667 gtk_widget_show(imdialog); | |
| 668 } | |
| 669 | |
| 670 | |
| 671 /*------------------------------------------------------------------------*/ | |
| 672 /* The dialog for adding buddies */ | |
| 673 /*------------------------------------------------------------------------*/ | |
| 674 | |
| 675 void do_add_buddy(GtkWidget *w, struct addbuddy *a) | |
| 676 { | |
| 677 char *grp, *who; | |
| 678 struct conversation *c; | |
| 679 | |
| 680 who = gtk_entry_get_text(GTK_ENTRY(a->entry)); | |
| 681 grp = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry)); | |
| 682 | |
| 683 c = find_conversation(who); | |
| 684 | |
| 685 add_buddy(grp, who); | |
| 686 | |
| 687 if (c != NULL) | |
| 688 gtk_label_set_text(GTK_LABEL(GTK_BIN(c->add_button)->child), "Remove"); | |
| 689 | |
| 690 build_edit_tree(); | |
| 691 | |
| 692 serv_save_config(); | |
| 693 | |
| 694 serv_add_buddy(who); | |
| 695 | |
| 228 | 696 do_export( (GtkWidget *) NULL, 0 ); |
| 697 | |
| 1 | 698 update_num_groups(); |
| 699 | |
| 700 destroy_dialog(NULL, a->window); | |
| 701 } | |
| 702 | |
| 703 | |
| 704 static GList *groups_tree() | |
| 705 { | |
| 706 GList *tmp=NULL; | |
| 707 char *tmp2; | |
| 708 struct group *g; | |
| 709 GList *grp = groups; | |
| 710 | |
| 711 if (!grp) { | |
| 712 tmp2 = g_strdup("Buddies"); | |
| 713 tmp = g_list_append(tmp, tmp2); | |
| 714 } else { | |
| 715 while(grp) { | |
| 716 g = (struct group *)grp->data; | |
| 717 tmp2 = g->name; | |
| 718 tmp=g_list_append(tmp, tmp2); | |
| 719 grp = grp->next; | |
| 720 } | |
| 721 } | |
| 722 return tmp; | |
| 723 } | |
| 724 | |
| 725 | |
| 726 void show_add_buddy(char *buddy, char *group) | |
| 727 { | |
| 728 GtkWidget *cancel; | |
| 729 GtkWidget *add; | |
| 730 GtkWidget *label; | |
| 731 GtkWidget *bbox; | |
| 732 GtkWidget *vbox; | |
| 733 GtkWidget *topbox; | |
| 236 | 734 GtkWidget *frame; |
| 735 | |
| 1 | 736 struct addbuddy *a = g_new0(struct addbuddy, 1); |
| 737 | |
| 738 a->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 739 dialogwindows = g_list_prepend(dialogwindows, a->window); | |
| 740 cancel = gtk_button_new_with_label("Cancel"); | |
| 741 add = gtk_button_new_with_label("Add"); | |
| 742 bbox = gtk_hbox_new(TRUE, 10); | |
| 743 topbox = gtk_hbox_new(FALSE, 5); | |
| 744 vbox = gtk_vbox_new(FALSE, 5); | |
| 244 | 745 |
| 1 | 746 a->entry = gtk_entry_new(); |
| 747 a->combo = gtk_combo_new(); | |
| 748 /* Fix the combo box */ | |
| 749 gtk_combo_set_popdown_strings(GTK_COMBO(a->combo), groups_tree()); | |
| 750 /* Put the buttons in the box */ | |
| 236 | 751 |
| 1 | 752 gtk_box_pack_start(GTK_BOX(bbox), add, TRUE, TRUE, 10); |
| 753 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 754 | |
| 236 | 755 frame = gtk_frame_new(NULL); |
| 756 gtk_frame_set_label(GTK_FRAME(frame), "Add Buddy"); | |
| 757 | |
| 238 | 758 label = gtk_label_new("Buddy"); |
| 1 | 759 gtk_widget_show(label); |
| 760 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); | |
| 761 gtk_box_pack_start(GTK_BOX(topbox), a->entry, FALSE, FALSE, 5); | |
| 762 if (buddy != NULL) | |
| 763 gtk_entry_set_text(GTK_ENTRY(a->entry), buddy); | |
| 764 | |
| 238 | 765 label = gtk_label_new("Group"); |
| 1 | 766 gtk_widget_show(label); |
| 767 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); | |
| 768 gtk_box_pack_start(GTK_BOX(topbox), a->combo, FALSE, FALSE, 5); | |
| 769 | |
| 770 if (group != NULL) | |
| 771 gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(a->combo)->entry), group); | |
| 772 | |
| 773 /* And the boxes in the box */ | |
| 774 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); | |
| 775 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 776 | |
| 777 /* Handle closes right */ | |
| 778 gtk_signal_connect(GTK_OBJECT(a->window), "destroy", | |
| 779 GTK_SIGNAL_FUNC(destroy_dialog), a->window); | |
| 780 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 781 GTK_SIGNAL_FUNC(destroy_dialog), a->window); | |
| 782 gtk_signal_connect(GTK_OBJECT(add), "clicked", | |
| 783 GTK_SIGNAL_FUNC(do_add_buddy), a); | |
| 784 gtk_signal_connect(GTK_OBJECT(a->entry), "activate", | |
| 785 GTK_SIGNAL_FUNC(do_add_buddy), a); | |
| 786 /* Finish up */ | |
| 787 gtk_widget_show(add); | |
| 788 gtk_widget_show(cancel); | |
| 789 gtk_widget_show(a->combo); | |
| 790 gtk_widget_show(a->entry); | |
| 791 gtk_widget_show(topbox); | |
| 792 gtk_widget_show(bbox); | |
| 793 gtk_widget_show(vbox); | |
| 236 | 794 gtk_widget_show(frame); |
| 1 | 795 gtk_window_set_title(GTK_WINDOW(a->window), "Gaim - Add Buddy"); |
| 796 gtk_window_set_focus(GTK_WINDOW(a->window), a->entry); | |
| 245 | 797 gtk_container_add(GTK_CONTAINER(frame), vbox); |
| 236 | 798 gtk_container_add(GTK_CONTAINER(a->window), frame); |
| 799 gtk_container_set_border_width(GTK_CONTAINER(a->window), 5); | |
| 1 | 800 gtk_widget_realize(a->window); |
| 801 aol_icon(a->window->window); | |
| 802 | |
| 803 gtk_widget_show(a->window); | |
| 804 } | |
| 805 | |
| 806 | |
| 807 /*------------------------------------------------------------------------*/ | |
| 808 /* The dialog for new buddy pounces */ | |
| 809 /*------------------------------------------------------------------------*/ | |
| 810 | |
| 811 | |
| 812 void do_new_bp(GtkWidget *w, struct addbp *b) | |
| 813 { | |
| 814 struct buddy_pounce *bp = g_new0(struct buddy_pounce, 1); | |
| 815 | |
| 26 | 816 g_snprintf(bp->name, 80, "%s", gtk_entry_get_text(GTK_ENTRY(b->nameentry))); |
| 817 g_snprintf(bp->message, 2048, "%s", gtk_entry_get_text(GTK_ENTRY(b->messentry))); | |
| 818 | |
| 1 | 819 if (GTK_TOGGLE_BUTTON(b->openwindow)->active) |
| 820 bp->popup = 1; | |
| 821 else | |
| 822 bp->popup = 0; | |
| 823 | |
| 824 if (GTK_TOGGLE_BUTTON(b->sendim)->active) | |
| 825 bp->sendim = 1; | |
| 826 else | |
| 827 bp->sendim = 0; | |
| 26 | 828 |
| 1 | 829 buddy_pounces = g_list_append(buddy_pounces, bp); |
| 830 | |
| 831 do_bp_menu(); | |
| 832 | |
| 833 destroy_dialog(NULL, b->window); | |
| 834 g_free(b); | |
| 835 } | |
| 836 | |
| 837 | |
| 838 void show_new_bp(char *name) | |
| 839 { | |
| 840 GtkWidget *cancel; | |
| 841 GtkWidget *ok; | |
| 842 GtkWidget *label; | |
| 843 GtkWidget *bbox; | |
| 844 GtkWidget *vbox; | |
| 845 | |
| 846 struct addbp *b = g_new0(struct addbp, 1); | |
| 847 | |
| 848 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 849 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 850 cancel = gtk_button_new_with_label("Cancel"); | |
| 851 ok = gtk_button_new_with_label("OK"); | |
| 852 bbox = gtk_hbox_new(TRUE, 10); | |
| 853 vbox = gtk_vbox_new(FALSE, 5); | |
| 854 b->nameentry = gtk_entry_new(); | |
| 855 b->messentry = gtk_entry_new(); | |
| 856 | |
| 857 /* Put the buttons in the box */ | |
| 858 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 10); | |
| 859 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 860 | |
| 861 label = gtk_label_new("Buddy To Pounce:"); | |
| 862 gtk_widget_show(label); | |
| 863 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 864 gtk_box_pack_start(GTK_BOX(vbox), b->nameentry, FALSE, FALSE, 0); | |
| 865 | |
| 866 b->openwindow = gtk_check_button_new_with_label("Open IM Window on Buddy Logon"); | |
| 867 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->openwindow), FALSE); | |
| 868 | |
| 869 b->sendim = gtk_check_button_new_with_label("Send IM on Buddy Logon"); | |
| 870 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sendim), TRUE); | |
| 871 | |
| 872 gtk_widget_show(b->openwindow); | |
| 873 gtk_widget_show(b->sendim); | |
| 874 gtk_box_pack_start(GTK_BOX(vbox), b->openwindow, FALSE, FALSE, 0); | |
| 875 gtk_box_pack_start(GTK_BOX(vbox), b->sendim, FALSE, FALSE, 0); | |
| 876 | |
| 877 label = gtk_label_new("Message to send:"); | |
| 878 gtk_widget_show(label); | |
| 879 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 880 gtk_box_pack_start(GTK_BOX(vbox), b->messentry, FALSE, FALSE, 0); | |
| 881 | |
| 882 | |
| 883 /* And the boxes in the box */ | |
| 884 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); | |
| 885 | |
| 886 /* Handle closes right */ | |
| 887 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 888 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 889 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 890 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 891 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 892 GTK_SIGNAL_FUNC(do_new_bp), b); | |
| 893 gtk_signal_connect(GTK_OBJECT(b->messentry), "activate", | |
| 894 GTK_SIGNAL_FUNC(do_new_bp), b); | |
| 895 | |
| 896 | |
| 897 /* Finish up */ | |
| 898 gtk_widget_show(ok); | |
| 899 gtk_widget_show(cancel); | |
| 900 gtk_widget_show(b->nameentry); | |
| 901 gtk_widget_show(b->messentry); | |
| 902 gtk_widget_show(bbox); | |
| 903 gtk_widget_show(vbox); | |
| 904 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - New Buddy Pounce"); | |
| 905 if (name != NULL) { | |
| 906 gtk_entry_set_text(GTK_ENTRY(b->nameentry), name); | |
| 907 gtk_window_set_focus(GTK_WINDOW(b->window), b->messentry); | |
| 908 } else | |
| 909 gtk_window_set_focus(GTK_WINDOW(b->window), b->nameentry); | |
| 910 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 911 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 912 gtk_widget_realize(b->window); | |
| 913 aol_icon(b->window->window); | |
| 914 | |
| 915 gtk_widget_show(b->window); | |
| 916 } | |
| 917 | |
| 918 | |
| 919 | |
| 920 /*------------------------------------------------------------------------*/ | |
| 921 /* The dialog for SET INFO / SET DIR INFO */ | |
| 922 /*------------------------------------------------------------------------*/ | |
| 923 | |
| 924 void do_save_info(GtkWidget *widget, struct set_info_dlg *b) | |
| 925 { | |
| 926 gchar *junk; | |
| 927 char *buf; | |
| 928 | |
| 929 junk = gtk_editable_get_chars(GTK_EDITABLE(b->text), 0, -1); | |
| 930 | |
| 931 g_snprintf(current_user->user_info, sizeof(current_user->user_info), "%s", junk); | |
| 25 | 932 |
| 1 | 933 save_prefs(); |
| 934 | |
| 79 | 935 buf = g_malloc(strlen(current_user->user_info) * 4); |
|
122
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
936 if (!buf) { |
|
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
937 buf = g_malloc(1); |
|
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
938 buf[0] = 0; |
|
521db4bf5f28
[gaim-migrate @ 132]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
84
diff
changeset
|
939 } |
| 1 | 940 g_snprintf(buf, strlen(current_user->user_info) * 2, "%s", current_user->user_info); |
| 941 escape_text(buf); | |
| 942 serv_set_info(buf); | |
| 943 g_free(buf); | |
| 25 | 944 g_free(junk); |
| 1 | 945 destroy_dialog(NULL, b->window); |
| 946 g_free(b); | |
| 947 } | |
| 948 | |
| 949 void do_set_dir(GtkWidget *widget, struct set_dir_dlg *b) | |
| 950 { | |
| 951 char *first = gtk_entry_get_text(GTK_ENTRY(b->first)); | |
| 952 int web = GTK_TOGGLE_BUTTON(b->web)->active; | |
| 953 char *middle = gtk_entry_get_text(GTK_ENTRY(b->middle)); | |
| 954 char *last = gtk_entry_get_text(GTK_ENTRY(b->last)); | |
| 955 char *maiden = gtk_entry_get_text(GTK_ENTRY(b->maiden)); | |
| 956 char *city = gtk_entry_get_text(GTK_ENTRY(b->city)); | |
| 957 char *state = gtk_entry_get_text(GTK_ENTRY(b->state)); | |
| 958 char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); | |
| 959 | |
| 960 | |
| 961 serv_set_dir(first, middle, last, maiden, city, state, country, web); | |
| 962 | |
| 963 destroy_dialog(NULL, b->window); | |
| 964 g_free(b); | |
| 965 } | |
| 966 | |
| 967 void show_set_dir() | |
| 968 { | |
| 969 GtkWidget *label; | |
| 970 GtkWidget *bot; | |
| 971 GtkWidget *top; | |
| 972 GtkWidget *table; | |
| 973 | |
| 974 struct set_dir_dlg *b = g_new0(struct set_dir_dlg, 1); | |
| 975 | |
| 976 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 977 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 978 | |
| 979 b->cancel = gtk_button_new_with_label("Cancel"); | |
| 980 b->save = gtk_button_new_with_label("Save"); | |
| 981 | |
| 982 bot = gtk_hbox_new(TRUE, 10); | |
| 983 top = gtk_vbox_new(FALSE, 10); | |
| 984 | |
| 985 gtk_widget_show(b->save); | |
| 986 gtk_widget_show(b->cancel); | |
| 987 | |
| 988 gtk_box_pack_start(GTK_BOX(bot), b->save, FALSE, FALSE, 5); | |
| 989 gtk_box_pack_start(GTK_BOX(bot), b->cancel, FALSE, FALSE, 5); | |
| 990 | |
| 991 gtk_widget_show(bot); | |
| 992 | |
| 993 table = gtk_table_new(10, 2, FALSE); | |
| 994 | |
| 995 b->first = gtk_entry_new(); | |
| 996 b->middle = gtk_entry_new(); | |
| 997 b->last = gtk_entry_new(); | |
| 998 b->maiden = gtk_entry_new(); | |
| 999 b->city = gtk_entry_new(); | |
| 1000 b->state = gtk_entry_new(); | |
| 1001 b->country = gtk_entry_new(); | |
| 1002 b->web = gtk_check_button_new_with_label("Allow Web Searches To Find Your Info"); | |
| 1003 | |
| 1004 label = gtk_label_new("First Name"); | |
| 1005 gtk_widget_show(label); | |
| 1006 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 1007 gtk_table_attach_defaults(GTK_TABLE(table), b->first, 1, 2, 0, 1); | |
| 1008 | |
| 1009 label = gtk_label_new("Middle Name"); | |
| 1010 gtk_widget_show(label); | |
| 1011 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 1012 gtk_table_attach_defaults(GTK_TABLE(table), b->middle, 1, 2, 1, 2); | |
| 1013 | |
| 1014 label = gtk_label_new("Last Name"); | |
| 1015 gtk_widget_show(label); | |
| 1016 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); | |
| 1017 gtk_table_attach_defaults(GTK_TABLE(table), b->last, 1, 2, 2, 3); | |
| 1018 | |
| 1019 label = gtk_label_new("Maiden Name"); | |
| 1020 gtk_widget_show(label); | |
| 1021 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); | |
| 1022 gtk_table_attach_defaults(GTK_TABLE(table), b->maiden, 1, 2, 3, 4); | |
| 1023 | |
| 1024 label = gtk_label_new("City"); | |
| 1025 gtk_widget_show(label); | |
| 1026 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 4, 5); | |
| 1027 gtk_table_attach_defaults(GTK_TABLE(table), b->city, 1, 2, 4, 5); | |
| 1028 | |
| 1029 label = gtk_label_new("State"); | |
| 1030 gtk_widget_show(label); | |
| 1031 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 5, 6); | |
| 1032 gtk_table_attach_defaults(GTK_TABLE(table), b->state, 1, 2, 5, 6); | |
| 1033 | |
| 1034 label = gtk_label_new("Country"); | |
| 1035 gtk_widget_show(label); | |
| 1036 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 6, 7); | |
| 1037 gtk_table_attach_defaults(GTK_TABLE(table), b->country, 1, 2, 6, 7); | |
| 1038 | |
| 1039 gtk_table_attach_defaults(GTK_TABLE(table), b->web, 0, 2, 8, 9); | |
| 1040 | |
| 1041 gtk_widget_show(table); | |
| 1042 gtk_box_pack_start(GTK_BOX(top), table, FALSE, FALSE, 5); | |
| 1043 gtk_box_pack_start(GTK_BOX(top), bot, FALSE, FALSE, 5); | |
| 1044 | |
| 1045 gtk_widget_show(b->first); | |
| 1046 gtk_widget_show(b->middle); | |
| 1047 gtk_widget_show(b->last); | |
| 1048 gtk_widget_show(b->maiden); | |
| 1049 gtk_widget_show(b->city); | |
| 1050 gtk_widget_show(b->state); | |
| 1051 gtk_widget_show(b->country); | |
| 1052 gtk_widget_show(b->web); | |
| 1053 | |
| 1054 gtk_widget_show(top); | |
| 1055 | |
| 1056 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1057 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1058 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", | |
| 1059 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1060 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", GTK_SIGNAL_FUNC(do_set_dir), b); | |
| 1061 | |
| 1062 gtk_container_add(GTK_CONTAINER(b->window), top); | |
| 1063 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1064 gtk_widget_set_usize(b->window, 530, 280); | |
| 1065 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Set Dir Info"); | |
| 1066 gtk_window_set_focus(GTK_WINDOW(b->window), b->first); | |
| 1067 gtk_widget_realize(b->window); | |
| 1068 aol_icon(b->window->window); | |
| 1069 | |
| 1070 gtk_widget_show(b->window); | |
| 1071 } | |
| 1072 | |
| 149 | 1073 void do_change_password(GtkWidget *widget, struct passwddlg *b) |
| 1074 { | |
| 1075 gchar *orig, *new1, *new2; | |
| 1076 gchar *buf; | |
| 1077 | |
| 1078 orig = gtk_entry_get_text(GTK_ENTRY(b->original)); | |
| 1079 new1 = gtk_entry_get_text(GTK_ENTRY(b->new1)); | |
| 1080 new2 = gtk_entry_get_text(GTK_ENTRY(b->new2)); | |
| 1081 | |
| 1082 if (strcasecmp(new1, new2)) { | |
| 1083 do_error_dialog("New Passwords Do Not Match", "Gaim - Change Password Error"); | |
| 1084 return ; | |
| 1085 } | |
| 1086 | |
| 1087 if ((strlen(orig) < 1) || (strlen(new1) < 1) || (strlen(new2) < 1)) { | |
| 1088 do_error_dialog("Fill out all fields completely", "Gaim - Change Password Error"); | |
| 1089 return; | |
| 1090 } | |
| 1091 | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
236
diff
changeset
|
1092 serv_change_passwd(orig, new1); |
| 149 | 1093 |
| 1094 destroy_dialog(NULL, b->window); | |
| 1095 g_free(b); | |
| 1096 } | |
| 1097 | |
| 146 | 1098 void show_change_passwd() |
| 1099 { | |
| 1100 GtkWidget *hbox; | |
| 1101 GtkWidget *label; | |
| 1102 GtkWidget *vbox; | |
| 149 | 1103 GtkWidget *table; |
| 146 | 1104 struct passwddlg *b = g_new0(struct passwddlg, 1); |
| 1105 | |
| 1106 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1107 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 149 | 1108 |
| 146 | 1109 b->ok = gtk_button_new_with_label("Ok"); |
| 149 | 1110 b->cancel = gtk_button_new_with_label("Cancel"); |
| 1111 | |
| 1112 gtk_widget_show(b->ok); | |
| 1113 gtk_widget_show(b->cancel); | |
| 1114 | |
| 1115 table = gtk_table_new(3, 2, TRUE); | |
| 1116 | |
| 1117 | |
| 1118 | |
| 146 | 1119 label = gtk_label_new("Original Password"); |
| 1120 gtk_widget_show(label); | |
| 149 | 1121 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); |
| 146 | 1122 b->original = gtk_entry_new(); |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1123 gtk_entry_set_visibility(GTK_ENTRY(b->original), FALSE); |
| 149 | 1124 gtk_widget_show(b->original); |
| 1125 gtk_table_attach_defaults(GTK_TABLE(table), b->original, 1, 2, 0, 1); | |
| 1126 | |
| 1127 label = gtk_label_new("New Password"); | |
| 1128 gtk_widget_show(label); | |
| 1129 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 1130 b->new1 = gtk_entry_new(); | |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1131 gtk_entry_set_visibility(GTK_ENTRY(b->new1), FALSE); |
| 149 | 1132 gtk_widget_show(b->new1); |
| 1133 gtk_table_attach_defaults(GTK_TABLE(table), b->new1, 1, 2, 1, 2); | |
| 1134 | |
| 1135 label = gtk_label_new("New Password (again)"); | |
| 1136 gtk_widget_show(label); | |
| 1137 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); | |
| 1138 b->new2 = gtk_entry_new(); | |
|
160
aaa8f0a2140e
[gaim-migrate @ 170]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
149
diff
changeset
|
1139 gtk_entry_set_visibility(GTK_ENTRY(b->new2), FALSE); |
| 149 | 1140 gtk_widget_show(b->new2); |
| 1141 gtk_table_attach_defaults(GTK_TABLE(table), b->new2, 1, 2, 2, 3); | |
| 1142 | |
| 1143 gtk_widget_show(table); | |
| 1144 | |
| 1145 vbox = gtk_vbox_new(TRUE, TRUE); | |
| 1146 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 5); | |
| 1147 | |
| 1148 hbox = gtk_hbox_new(TRUE, TRUE); | |
| 1149 gtk_box_pack_start(GTK_BOX(hbox), b->ok, FALSE, FALSE, 5); | |
| 1150 gtk_box_pack_start(GTK_BOX(hbox), b->cancel, FALSE, FALSE, 5); | |
| 1151 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | |
| 146 | 1152 gtk_widget_show(hbox); |
| 1153 | |
| 1154 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 1155 gtk_widget_show(vbox); | |
| 149 | 1156 |
| 1157 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1158 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Password Change"); | |
| 146 | 1159 gtk_widget_show(b->window); |
| 149 | 1160 |
| 1161 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1162 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1163 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", | |
| 1164 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1165 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", | |
| 1166 GTK_SIGNAL_FUNC(do_change_password), b); | |
| 1167 | |
| 1168 | |
| 146 | 1169 } |
| 1170 | |
| 1 | 1171 void show_set_info() |
| 1172 { | |
| 1173 GtkWidget *bot; | |
| 1174 GtkWidget *top; | |
| 1175 | |
| 1176 struct set_info_dlg *b = g_new0(struct set_info_dlg, 1); | |
| 1177 | |
| 1178 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1179 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 1180 | |
| 1181 b->cancel = gtk_button_new_with_label("Cancel"); | |
| 1182 b->save = gtk_button_new_with_label("Save"); | |
| 1183 | |
| 1184 bot = gtk_hbox_new(TRUE, 10); | |
| 1185 top = gtk_vbox_new(FALSE, 10); | |
| 1186 | |
| 1187 gtk_widget_show(b->save); | |
| 1188 gtk_widget_show(b->cancel); | |
| 1189 | |
| 1190 gtk_box_pack_start(GTK_BOX(bot), b->save, FALSE, FALSE, 10); | |
| 1191 gtk_box_pack_start(GTK_BOX(bot), b->cancel, FALSE, FALSE, 10); | |
| 1192 | |
| 1193 | |
| 1194 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1195 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1196 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", | |
| 1197 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1198 gtk_signal_connect(GTK_OBJECT(b->save), "clicked", | |
| 1199 GTK_SIGNAL_FUNC(do_save_info), b); | |
| 1200 | |
| 1201 gtk_widget_show(bot); | |
| 1202 | |
| 1203 | |
| 1204 b->text = gtk_text_new(NULL, NULL); | |
| 1205 gtk_text_set_word_wrap(GTK_TEXT(b->text), TRUE); | |
| 1206 gtk_text_set_editable(GTK_TEXT(b->text), TRUE); | |
| 1207 gtk_widget_set_usize(b->text, 350, 100); | |
| 1208 gtk_text_insert(GTK_TEXT(b->text), NULL, NULL, NULL, current_user->user_info, -1); | |
| 1209 | |
| 1210 gtk_widget_show(b->text); | |
| 1211 | |
| 1212 gtk_box_pack_start(GTK_BOX(top), b->text, TRUE, TRUE, 10); | |
| 1213 gtk_widget_show(top); | |
| 1214 | |
| 1215 gtk_box_pack_start(GTK_BOX(top), bot, FALSE, FALSE, 10); | |
| 1216 gtk_container_add(GTK_CONTAINER(b->window), top); | |
| 1217 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1218 gtk_widget_realize(b->window); | |
| 1219 aol_icon(b->window->window); | |
| 1220 | |
| 1221 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Set User Info"); | |
| 1222 gtk_widget_show(b->window); | |
| 1223 | |
| 1224 } | |
| 1225 | |
| 1226 /*------------------------------------------------------------------------*/ | |
| 1227 /* The dialog for registration information */ | |
| 1228 /*------------------------------------------------------------------------*/ | |
| 1229 | |
| 1230 void do_register_dialog(GtkWidget *widget, struct registerdlg *b) | |
| 1231 { | |
| 1232 char *email = gtk_entry_get_text(GTK_ENTRY(b->email)); | |
| 1233 char *name = gtk_entry_get_text(GTK_ENTRY(b->name)); | |
| 1234 int uname = GTK_TOGGLE_BUTTON(b->uname)->active; | |
| 1235 int sname = GTK_TOGGLE_BUTTON(b->sname)->active; | |
| 1236 char *country = gtk_entry_get_text(GTK_ENTRY(b->country)); | |
| 1237 | |
| 1238 general_options |= OPT_GEN_REGISTERED; | |
| 1239 save_prefs(); | |
| 1240 | |
| 1241 destroy_dialog(NULL, b->window); | |
| 1242 | |
| 1243 g_free(b); | |
| 1244 | |
| 1245 g_sendemail(name, email, uname, sname, country); | |
| 1246 } | |
| 1247 | |
| 1248 void set_reg_flag(GtkWidget *widget, struct registerdlg *b) | |
| 1249 { | |
| 1250 general_options |= OPT_GEN_REGISTERED; | |
| 1251 save_prefs(); | |
| 1252 destroy_dialog(NULL, b->window); | |
| 1253 g_free(b); | |
| 1254 } | |
| 1255 | |
| 1256 void show_register_dialog() | |
| 1257 { | |
| 1258 GtkWidget *ok; | |
| 1259 GtkWidget *cancel; | |
| 1260 GtkWidget *label; | |
| 1261 GtkWidget *table; | |
| 1262 GtkWidget *vbox; | |
| 1263 GtkWidget *bbox; | |
| 1264 | |
| 1265 struct registerdlg *b = g_new0(struct registerdlg, 1); | |
| 1266 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1267 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 1268 | |
| 1269 cancel = gtk_button_new_with_label("Cancel"); | |
| 1270 ok = gtk_button_new_with_label("Send"); | |
| 1271 | |
| 1272 bbox = gtk_hbox_new(TRUE, 10); | |
| 1273 table = gtk_table_new(6, 2, TRUE); | |
| 1274 vbox = gtk_vbox_new(FALSE, 5); | |
| 1275 | |
| 1276 b->name = gtk_entry_new(); | |
| 1277 b->email = gtk_entry_new(); | |
| 1278 b->uname = gtk_check_button_new_with_label("Send the output of uname -a with registration"); | |
| 1279 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->uname), TRUE); | |
| 1280 b->sname = gtk_check_button_new_with_label("Send my screenname with registration"); | |
| 1281 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->sname), TRUE); | |
| 1282 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 10); | |
| 1283 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 1284 | |
| 1285 label = gtk_label_new("This list will not, in any way, be distributed and\nwill be used for internal census purposes only.\nAll fields are completely optional."); | |
| 1286 gtk_widget_show(label); | |
| 1287 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 0, 1); | |
| 1288 | |
| 1289 label = gtk_label_new("Name"); | |
| 1290 gtk_widget_show(label); | |
| 1291 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 1292 gtk_table_attach_defaults(GTK_TABLE(table), b->name, 1, 2, 1, 2); | |
| 1293 | |
| 1294 label = gtk_label_new("Email"); | |
| 1295 gtk_widget_show(label); | |
| 1296 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); | |
| 1297 gtk_table_attach_defaults(GTK_TABLE(table), b->email, 1, 2, 2, 3); | |
| 1298 | |
| 1299 label = gtk_label_new("Country"); | |
| 1300 b->country = gtk_entry_new(); | |
| 1301 gtk_widget_show(label); | |
| 1302 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); | |
| 1303 gtk_table_attach_defaults(GTK_TABLE(table), b->country, 1, 2, 3, 4); | |
| 1304 | |
| 1305 gtk_table_attach_defaults(GTK_TABLE(table), b->sname, 0, 2, 4, 5); | |
| 1306 gtk_table_attach_defaults(GTK_TABLE(table), b->uname, 0, 2, 5, 6); | |
| 1307 | |
| 1308 gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 5); | |
| 1309 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 1310 | |
| 1311 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1312 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1313 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 1314 GTK_SIGNAL_FUNC(set_reg_flag), b); | |
| 1315 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 1316 GTK_SIGNAL_FUNC(do_register_dialog), b); | |
| 1317 | |
| 1318 gtk_widget_show(ok); | |
| 1319 gtk_widget_show(cancel); | |
| 1320 gtk_widget_show(b->name); | |
| 1321 gtk_widget_show(b->email); | |
| 1322 gtk_widget_show(b->uname); | |
| 1323 gtk_widget_show(b->sname); | |
| 1324 gtk_widget_show(b->country); | |
| 1325 gtk_widget_show(table); | |
| 1326 gtk_widget_show(bbox); | |
| 1327 gtk_widget_show(vbox); | |
| 1328 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Registration"); | |
| 1329 gtk_window_set_focus(GTK_WINDOW(b->window), b->name); | |
| 1330 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 1331 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1332 gtk_widget_realize(b->window); | |
| 1333 aol_icon(b->window->window); | |
| 1334 | |
| 1335 gtk_widget_show(b->window); | |
| 1336 } | |
| 1337 | |
| 1338 | |
| 1339 /*------------------------------------------------------------------------*/ | |
| 1340 /* The dialog for the info requests */ | |
| 1341 /*------------------------------------------------------------------------*/ | |
| 1342 | |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1343 void g_show_info_text(char *info) |
| 1 | 1344 { |
| 1345 GtkWidget *ok; | |
| 1346 GtkWidget *label; | |
| 1347 GtkWidget *text; | |
| 1348 GtkWidget *bbox; | |
| 1349 GtkWidget *sw; | |
| 337 | 1350 GdkBitmap *mask; |
| 1351 GdkPixmap *face; | |
| 1352 GtkWidget *face_p; | |
| 1 | 1353 |
| 1354 struct info_dlg *b = g_new0(struct info_dlg, 1); | |
| 1355 | |
| 1356 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1357 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 1358 gtk_container_border_width(GTK_CONTAINER(b->window), 5); | |
| 1359 bbox = gtk_vbox_new(FALSE, 5); | |
| 1360 gtk_container_add(GTK_CONTAINER(b->window), bbox); | |
| 1361 | |
| 1362 ok = gtk_button_new_with_label("OK"); | |
| 1363 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1364 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1365 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 1366 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1367 | |
| 1368 label = gtk_label_new("Below are the results of your search: "); | |
| 1369 | |
| 1370 sw = gtk_scrolled_window_new (NULL, NULL); | |
| 1371 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), | |
| 1372 GTK_POLICY_NEVER, | |
| 1373 GTK_POLICY_ALWAYS); | |
| 1374 text = gtk_html_new(NULL, NULL); | |
| 1375 b->text = text; | |
| 1376 gtk_container_add(GTK_CONTAINER(sw), text); | |
| 1377 | |
| 1378 GTK_HTML (text)->hadj->step_increment = 10.0; | |
| 1379 GTK_HTML (text)->vadj->step_increment = 10.0; | |
| 1380 gtk_widget_set_usize(sw, 300, 250); | |
| 1381 | |
| 1382 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | |
| 1383 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); | |
| 1384 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); | |
| 1385 | |
| 1386 gtk_widget_realize(b->window); | |
| 1387 aol_icon(b->window->window); | |
| 1388 gtk_widget_show_all(b->window); | |
| 1389 | |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1390 gtk_html_append_text(GTK_HTML(b->text), info, 0); |
| 337 | 1391 |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1392 } |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1393 |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1394 void g_show_info(char *url) { |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1395 char *url_text = grab_url(url); |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
245
diff
changeset
|
1396 g_show_info_text(url_text); |
| 1 | 1397 g_free(url_text); |
| 1398 } | |
| 1399 | |
| 1400 /*------------------------------------------------------------------------*/ | |
| 1401 /* The dialog for adding to permit/deny */ | |
| 1402 /*------------------------------------------------------------------------*/ | |
| 1403 | |
| 1404 | |
| 1405 static void do_add_perm(GtkWidget *w, struct addperm *p) | |
| 1406 { | |
| 1407 | |
| 1408 char *who; | |
| 1409 char *name; | |
| 1410 int d = 0; | |
| 1411 GSList *buttons = p->buttons; | |
| 1412 | |
| 1413 | |
| 1414 who = gtk_entry_get_text(GTK_ENTRY(p->entry)); | |
| 1415 | |
| 1416 name = g_malloc(strlen(who) + 2); | |
| 1417 g_snprintf(name, strlen(who) + 2, "%s", who); | |
| 1418 | |
| 1419 while(buttons) { | |
| 1420 if((int)gtk_object_get_user_data(GTK_OBJECT(buttons->data)) == 1) { | |
| 1421 if (GTK_TOGGLE_BUTTON(buttons->data)->active) | |
| 1422 d = 1; | |
| 1423 } | |
| 1424 buttons = buttons->next; | |
| 1425 } | |
| 1426 | |
| 1427 if (d) { | |
| 1428 deny = g_list_append(deny, name); | |
| 1429 serv_add_deny(name); | |
| 1430 } else { | |
| 1431 permit = g_list_append(permit, name); | |
| 1432 serv_add_permit(name); | |
| 1433 } | |
| 1434 | |
| 1435 | |
| 1436 | |
| 1437 build_permit_tree(); | |
| 1438 | |
| 1439 serv_save_config(); | |
|
300
b32c83750104
[gaim-migrate @ 310]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
296
diff
changeset
|
1440 do_export(0, 0); |
| 1 | 1441 |
| 1442 destroy_dialog(NULL, p->window); | |
| 1443 } | |
| 1444 | |
| 1445 | |
| 1446 | |
| 1447 void show_add_perm(char *who) | |
| 1448 { | |
| 1449 GtkWidget *cancel; | |
| 1450 GtkWidget *add; | |
| 1451 GtkWidget *label; | |
| 1452 GtkWidget *bbox; | |
| 1453 GtkWidget *vbox; | |
| 1454 GtkWidget *rbox; | |
| 1455 GtkWidget *topbox; | |
| 1456 GtkWidget *which; | |
| 1457 struct addperm *p = g_new0(struct addperm, 1); | |
| 1458 | |
| 1459 p->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1460 dialogwindows = g_list_prepend(dialogwindows, p->window); | |
| 1461 cancel = gtk_button_new_with_label("Cancel"); | |
| 1462 add = gtk_button_new_with_label("Add"); | |
| 1463 bbox = gtk_hbox_new(TRUE, 10); | |
| 1464 topbox = gtk_hbox_new(FALSE, 5); | |
| 1465 vbox = gtk_vbox_new(FALSE, 5); | |
| 1466 rbox = gtk_vbox_new(FALSE, 5); | |
| 1467 p->entry = gtk_entry_new(); | |
| 1468 | |
| 1469 if (who != NULL) | |
| 1470 gtk_entry_set_text(GTK_ENTRY(p->entry), who); | |
| 1471 | |
| 1472 which = gtk_radio_button_new_with_label(NULL, "Deny"); | |
| 1473 gtk_box_pack_start(GTK_BOX(rbox), which, FALSE, FALSE, 0); | |
| 1474 gtk_object_set_user_data(GTK_OBJECT(which), (int *)1); | |
| 1475 gtk_widget_show(which); | |
| 1476 | |
| 1477 which = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(which)), "Permit"); | |
| 1478 gtk_box_pack_start(GTK_BOX(rbox), which, FALSE, FALSE, 0); | |
| 1479 gtk_object_set_user_data(GTK_OBJECT(which), (int *)2); | |
| 1480 gtk_widget_show(which); | |
| 1481 | |
| 1482 /* Put the buttons in the box */ | |
| 1483 gtk_box_pack_start(GTK_BOX(bbox), add, TRUE, TRUE, 10); | |
| 1484 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 1485 | |
| 1486 label = gtk_label_new("Add"); | |
| 1487 gtk_widget_show(label); | |
| 1488 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); | |
| 1489 gtk_box_pack_start(GTK_BOX(topbox), p->entry, FALSE, FALSE, 5); | |
| 1490 gtk_box_pack_start(GTK_BOX(topbox), rbox, FALSE, FALSE, 5); | |
| 1491 /* And the boxes in the box */ | |
| 1492 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); | |
| 1493 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 1494 | |
| 1495 | |
| 1496 p->buttons = gtk_radio_button_group(GTK_RADIO_BUTTON(which)); | |
| 1497 /* Handle closes right */ | |
| 1498 gtk_signal_connect(GTK_OBJECT(p->window), "destroy", | |
| 1499 GTK_SIGNAL_FUNC(destroy_dialog), p->window); | |
| 1500 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 1501 GTK_SIGNAL_FUNC(destroy_dialog), p->window); | |
| 1502 gtk_signal_connect(GTK_OBJECT(add), "clicked", | |
| 1503 GTK_SIGNAL_FUNC(do_add_perm), p); | |
| 1504 gtk_signal_connect(GTK_OBJECT(p->entry), "activate", | |
| 1505 GTK_SIGNAL_FUNC(do_add_perm), p); | |
| 1506 | |
| 1507 /* Finish up */ | |
| 1508 gtk_widget_show(add); | |
| 1509 gtk_widget_show(cancel); | |
| 1510 gtk_widget_show(p->entry); | |
| 1511 gtk_widget_show(topbox); | |
| 1512 gtk_widget_show(bbox); | |
| 1513 gtk_widget_show(vbox); | |
| 1514 gtk_widget_show(rbox); | |
| 1515 gtk_window_set_title(GTK_WINDOW(p->window), "Gaim - Add Permit/Deny"); | |
| 1516 gtk_window_set_focus(GTK_WINDOW(p->window), p->entry); | |
| 1517 gtk_container_add(GTK_CONTAINER(p->window), vbox); | |
| 1518 gtk_widget_realize(p->window); | |
| 1519 aol_icon(p->window->window); | |
| 1520 | |
| 1521 gtk_widget_show(p->window); | |
| 1522 } | |
| 1523 | |
| 1524 | |
| 1525 /*------------------------------------------------------------------------*/ | |
| 1526 /* Function Called To Add A Log */ | |
| 1527 /*------------------------------------------------------------------------*/ | |
| 1528 | |
| 1529 void do_log(GtkWidget *w, char *name) | |
| 1530 { | |
| 1531 struct log_conversation *l; | |
| 1532 struct conversation *c; | |
| 1533 char buf[128]; | |
| 1534 | |
| 1535 c = find_conversation(name); | |
| 1536 if (!find_log_info(name)) { | |
| 1537 l = (struct log_conversation *)g_new0(struct log_conversation, 1); | |
| 1538 strcpy(l->name, name); | |
| 1539 strcpy(l->filename, gtk_file_selection_get_filename(GTK_FILE_SELECTION(logdialog))); | |
| 1540 log_conversations = g_list_append(log_conversations, l); | |
| 1541 | |
| 1542 if (c != NULL) | |
| 1543 { | |
| 1544 g_snprintf(buf, sizeof(buf), LOG_CONVERSATION_TITLE, c->name); | |
| 1545 gtk_window_set_title(GTK_WINDOW(c->window), buf); | |
| 1546 } | |
| 1547 } | |
| 1548 | |
| 1549 save_prefs(); | |
| 1550 | |
| 1551 destroy_dialog(NULL, logdialog); | |
| 1552 logdialog = NULL; | |
| 1553 } | |
| 1554 | |
| 1555 static void cancel_log(GtkWidget *w, char *name) | |
| 1556 { | |
| 1557 | |
| 1558 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(logdialog)); | |
| 1559 | |
| 1560 if (c != NULL) | |
| 1561 { | |
| 1562 set_state_lock(1); | |
| 1563 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->log_button), FALSE); | |
| 1564 set_state_lock(0); | |
| 1565 } | |
| 1566 destroy_dialog(NULL, logdialog); | |
| 1567 } | |
| 1568 | |
| 1569 void show_log_dialog(char *bname) | |
| 1570 { | |
| 1571 char *buf = g_malloc(BUF_LEN); | |
| 1572 struct conversation *c = find_conversation(bname); | |
| 1573 | |
| 1574 | |
| 1575 if (!logdialog) { | |
| 1576 logdialog = gtk_file_selection_new("Gaim - Log Conversation"); | |
| 1577 | |
| 1578 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(logdialog)); | |
| 1579 | |
| 1580 gtk_object_set_user_data(GTK_OBJECT(logdialog), c); | |
| 1581 | |
| 1582 g_snprintf(buf, BUF_LEN - 1, "%s/%s.log", getenv("HOME"), bname); | |
| 1583 | |
| 1584 gtk_file_selection_set_filename(GTK_FILE_SELECTION(logdialog), buf); | |
| 1585 gtk_signal_connect(GTK_OBJECT(logdialog), "delete_event", GTK_SIGNAL_FUNC(cancel_log), c); | |
| 1586 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(logdialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_log), bname); | |
| 1587 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(logdialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_log), bname); | |
| 1588 } | |
| 1589 | |
| 25 | 1590 g_free(buf); |
| 1591 | |
| 1 | 1592 gtk_widget_show(logdialog); |
| 1593 gdk_window_raise(logdialog->window); | |
| 1594 } | |
| 1595 | |
| 1596 /*------------------------------------------------------*/ | |
| 1597 /* Find Buddy By Email */ | |
| 1598 /*------------------------------------------------------*/ | |
| 1599 | |
| 1600 void do_find_info(GtkWidget *w, struct findbyinfo *b) | |
| 1601 { | |
| 1602 char *first; | |
| 1603 char *middle; | |
| 1604 char *last; | |
| 1605 char *maiden; | |
| 1606 char *city; | |
| 1607 char *state; | |
| 1608 char *country; | |
| 1609 | |
| 1610 first = gtk_entry_get_text(GTK_ENTRY(b->firstentry)); | |
| 1611 middle = gtk_entry_get_text(GTK_ENTRY(b->middleentry)); | |
| 1612 last = gtk_entry_get_text(GTK_ENTRY(b->lastentry)); | |
| 1613 maiden = gtk_entry_get_text(GTK_ENTRY(b->maidenentry)); | |
| 1614 city = gtk_entry_get_text(GTK_ENTRY(b->cityentry)); | |
| 1615 state = gtk_entry_get_text(GTK_ENTRY(b->stateentry)); | |
| 1616 country = gtk_entry_get_text(GTK_ENTRY(b->countryentry)); | |
| 1617 | |
| 1618 serv_dir_search(first, middle, last, maiden, city, state, country, ""); | |
| 1619 destroy_dialog(NULL, b->window); | |
| 1620 } | |
| 1621 | |
| 1622 void do_find_email(GtkWidget *w, struct findbyemail *b) | |
| 1623 { | |
| 1624 char *email; | |
| 1625 | |
| 1626 email = gtk_entry_get_text(GTK_ENTRY(b->emailentry)); | |
| 1627 | |
| 1628 serv_dir_search("","","","","","","", email); | |
| 1629 | |
| 1630 destroy_dialog(NULL, b->window); | |
| 1631 } | |
| 1632 | |
| 1633 void show_find_info() | |
| 1634 { | |
| 1635 GtkWidget *cancel; | |
| 1636 GtkWidget *ok; | |
| 1637 GtkWidget *label; | |
| 1638 GtkWidget *bbox; | |
| 1639 GtkWidget *vbox; | |
| 1640 GtkWidget *topbox; | |
| 1641 | |
| 1642 struct findbyinfo *b = g_new0(struct findbyinfo, 1); | |
| 1643 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1644 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 1645 | |
| 1646 cancel = gtk_button_new_with_label("Cancel"); | |
| 1647 ok = gtk_button_new_with_label("OK"); | |
| 1648 | |
| 1649 bbox = gtk_hbox_new(TRUE, 10); | |
| 1650 topbox = gtk_table_new(7, 2, TRUE); | |
| 1651 vbox = gtk_vbox_new(FALSE, 5); | |
| 1652 | |
| 1653 b->firstentry = gtk_entry_new(); | |
| 1654 b->middleentry = gtk_entry_new(); | |
| 1655 b->lastentry = gtk_entry_new(); | |
| 1656 b->maidenentry = gtk_entry_new(); | |
| 1657 b->cityentry = gtk_entry_new(); | |
| 1658 b->stateentry = gtk_entry_new(); | |
| 1659 b->countryentry = gtk_entry_new(); | |
| 1660 | |
| 1661 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 10); | |
| 1662 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 1663 | |
| 1664 label = gtk_label_new("First Name"); | |
| 1665 gtk_widget_show(label); | |
| 1666 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 0, 1); | |
| 1667 gtk_table_attach_defaults(GTK_TABLE(topbox), b->firstentry, 1, 2, 0, 1); | |
| 1668 | |
| 1669 label = gtk_label_new("Middle Name"); | |
| 1670 gtk_widget_show(label); | |
| 1671 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 1, 2); | |
| 1672 gtk_table_attach_defaults(GTK_TABLE(topbox), b->middleentry, 1, 2, 1, 2); | |
| 1673 | |
| 1674 label = gtk_label_new("Last Name"); | |
| 1675 gtk_widget_show(label); | |
| 1676 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 2, 3); | |
| 1677 gtk_table_attach_defaults(GTK_TABLE(topbox), b->lastentry, 1, 2, 2, 3); | |
| 1678 | |
| 1679 label = gtk_label_new("Maiden Name"); | |
| 1680 gtk_widget_show(label); | |
| 1681 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 3, 4); | |
| 1682 gtk_table_attach_defaults(GTK_TABLE(topbox), b->maidenentry, 1, 2, 3, 4); | |
| 1683 | |
| 1684 label = gtk_label_new("City"); | |
| 1685 gtk_widget_show(label); | |
| 1686 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 4, 5); | |
| 1687 gtk_table_attach_defaults(GTK_TABLE(topbox), b->cityentry, 1, 2, 4, 5); | |
| 1688 | |
| 1689 label = gtk_label_new("State"); | |
| 1690 gtk_widget_show(label); | |
| 1691 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 5, 6); | |
| 1692 gtk_table_attach_defaults(GTK_TABLE(topbox), b->stateentry, 1, 2, 5, 6); | |
| 1693 | |
| 1694 label = gtk_label_new("Country"); | |
| 1695 gtk_widget_show(label); | |
| 1696 gtk_table_attach_defaults(GTK_TABLE(topbox), label, 0, 1, 6, 7); | |
| 1697 gtk_table_attach_defaults(GTK_TABLE(topbox), b->countryentry, 1, 2, 6, 7); | |
| 1698 | |
| 1699 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); | |
| 1700 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 1701 | |
| 1702 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1703 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1704 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 1705 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1706 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 1707 GTK_SIGNAL_FUNC(do_find_info), b); | |
| 1708 | |
| 1709 gtk_widget_show(ok); | |
| 1710 gtk_widget_show(cancel); | |
| 1711 gtk_widget_show(b->firstentry); | |
| 1712 gtk_widget_show(b->middleentry); | |
| 1713 gtk_widget_show(b->lastentry); | |
| 1714 gtk_widget_show(b->maidenentry); | |
| 1715 gtk_widget_show(b->cityentry); | |
| 1716 gtk_widget_show(b->stateentry); | |
| 1717 gtk_widget_show(b->countryentry); | |
| 1718 gtk_widget_show(topbox); | |
| 1719 gtk_widget_show(bbox); | |
| 1720 gtk_widget_show(vbox); | |
| 1721 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Find Buddy By Info"); | |
| 1722 gtk_window_set_focus(GTK_WINDOW(b->window), b->firstentry); | |
| 1723 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 1724 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1725 gtk_widget_realize(b->window); | |
| 1726 aol_icon(b->window->window); | |
| 1727 | |
| 1728 gtk_widget_show(b->window); | |
| 1729 } | |
| 1730 | |
| 1731 void show_find_email() | |
| 1732 { | |
| 1733 GtkWidget *cancel; | |
| 1734 GtkWidget *ok; | |
| 1735 GtkWidget *label; | |
| 1736 GtkWidget *bbox; | |
| 1737 GtkWidget *vbox; | |
| 1738 GtkWidget *topbox; | |
| 1739 | |
| 1740 struct findbyemail *b = g_new0(struct findbyemail, 1); | |
| 1741 b->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1742 dialogwindows = g_list_prepend(dialogwindows, b->window); | |
| 1743 | |
| 1744 cancel = gtk_button_new_with_label("Cancel"); | |
| 1745 ok = gtk_button_new_with_label("OK"); | |
| 1746 | |
| 1747 bbox = gtk_hbox_new(TRUE, 10); | |
| 1748 topbox = gtk_hbox_new(FALSE, 5); | |
| 1749 vbox = gtk_vbox_new(FALSE, 5); | |
| 1750 | |
| 1751 b->emailentry = gtk_entry_new(); | |
| 1752 | |
| 1753 gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 10); | |
| 1754 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); | |
| 1755 | |
| 1756 label = gtk_label_new("Email"); | |
| 1757 gtk_widget_show(label); | |
| 1758 gtk_box_pack_start(GTK_BOX(topbox), label, FALSE, FALSE, 5); | |
| 1759 gtk_box_pack_start(GTK_BOX(topbox), b->emailentry, FALSE, FALSE, 5); | |
| 1760 | |
| 1761 gtk_box_pack_start(GTK_BOX(vbox), topbox, TRUE, TRUE, 5); | |
| 1762 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
| 1763 | |
| 1764 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", | |
| 1765 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1766 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", | |
| 1767 GTK_SIGNAL_FUNC(destroy_dialog), b->window); | |
| 1768 gtk_signal_connect(GTK_OBJECT(ok), "clicked", | |
| 1769 GTK_SIGNAL_FUNC(do_find_email), b); | |
| 1770 gtk_signal_connect(GTK_OBJECT(b->emailentry), "activate", | |
| 1771 GTK_SIGNAL_FUNC(do_find_email), b); | |
| 1772 | |
| 1773 gtk_widget_show(ok); | |
| 1774 gtk_widget_show(cancel); | |
| 1775 gtk_widget_show(b->emailentry); | |
| 1776 gtk_widget_show(topbox); | |
| 1777 gtk_widget_show(bbox); | |
| 1778 gtk_widget_show(vbox); | |
| 1779 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim - Find Buddy By Email"); | |
| 1780 gtk_window_set_focus(GTK_WINDOW(b->window), b->emailentry); | |
| 1781 gtk_container_add(GTK_CONTAINER(b->window), vbox); | |
| 1782 gtk_container_border_width(GTK_CONTAINER(b->window), 10); | |
| 1783 gtk_widget_realize(b->window); | |
| 1784 aol_icon(b->window->window); | |
| 1785 | |
| 1786 gtk_widget_show(b->window); | |
| 1787 } | |
| 1788 | |
| 1789 /*------------------------------------------------------*/ | |
| 1790 /* Link Dialog */ | |
| 1791 /*------------------------------------------------------*/ | |
| 1792 | |
| 1793 void cancel_link(GtkWidget *widget, struct linkdlg *b) | |
| 1794 { | |
| 62 | 1795 if (b->toggle) { |
| 1796 set_state_lock(1); | |
| 1 | 1797 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(b->toggle), FALSE); |
| 62 | 1798 set_state_lock(0); |
| 1799 } | |
| 1 | 1800 destroy_dialog(NULL, b->window); |
| 1801 } | |
| 1802 | |
| 1803 void do_add_link(GtkWidget *widget, struct linkdlg *b) | |
| 1804 { | |
| 1805 char *open_tag; | |
| 1806 char *urltext, *showtext; | |
| 1807 open_tag = g_malloc(2048); | |
| 1808 | |
| 1809 | |
| 1810 urltext = gtk_entry_get_text(GTK_ENTRY(b->url)); | |
| 1811 showtext = gtk_entry_get_text(GTK_ENTRY(b->text)); | |
| 1812 | |
| 1813 g_snprintf(open_tag, 2048, "<A HREF=\"%s\">%s", urltext, showtext); | |
| 1814 surround(b->entry, open_tag, "</A>"); | |
| 1815 | |
| 1816 g_free(open_tag); | |
| 1817 destroy_dialog(NULL, b->window); | |
| 1818 } | |
| 1819 | |
| 1820 | |
| 1821 void show_add_link(GtkWidget *entry, GtkWidget *link) | |
| 1822 { | |
| 1823 GtkWidget *vbox; | |
| 1824 GtkWidget *bbox; | |
| 1825 GtkWidget *table; | |
| 1826 GtkWidget *label; | |
| 1827 | |
| 1828 if (!linkdialog) { | |
| 1829 struct linkdlg *b = g_new0(struct linkdlg, 1); | |
| 1830 linkdialog = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 1831 dialogwindows = g_list_prepend(dialogwindows, linkdialog); | |
| 1832 | |
| 1833 b->cancel = gtk_button_new_with_label("Cancel"); | |
| 1834 b->ok = gtk_button_new_with_label("Ok"); | |
| 1835 | |
| 1836 vbox = gtk_vbox_new(FALSE, 10); | |
| 1837 bbox = gtk_hbox_new(TRUE, 10); | |
| 1838 | |
| 1839 gtk_widget_show(b->ok); | |
| 1840 gtk_widget_show(b->cancel); | |
| 1841 | |
| 1842 gtk_box_pack_start(GTK_BOX(bbox), b->ok, FALSE, FALSE, 10); | |
| 1843 gtk_box_pack_start(GTK_BOX(bbox), b->cancel, FALSE, FALSE, 10); | |
| 1844 gtk_widget_show(bbox); | |
| 1845 | |
| 1846 table = gtk_table_new(2, 2, FALSE); | |
| 1847 b->url = gtk_entry_new(); | |
| 1848 b->text = gtk_entry_new(); | |
| 1849 | |
| 1850 label = gtk_label_new("URL"); | |
| 1851 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 0, 1); | |
| 1852 gtk_table_attach_defaults(GTK_TABLE(table), b->url, 1, 2, 0, 1); | |
| 1853 gtk_widget_show(label); | |
| 1854 | |
| 1855 label = gtk_label_new("Description"); | |
| 1856 gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); | |
| 1857 gtk_table_attach_defaults(GTK_TABLE(table), b->text, 1, 2, 1, 2); | |
| 1858 gtk_widget_show(label); | |
| 1859 | |
| 1860 gtk_widget_show(b->url); | |
| 1861 gtk_widget_show(b->text); | |
| 1862 gtk_widget_show(table); | |
| 1863 | |
| 1864 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 10); | |
| 1865 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 10); | |
| 1866 gtk_widget_show(vbox); | |
| 1867 | |
| 1868 gtk_signal_connect(GTK_OBJECT(linkdialog), "destroy", | |
| 1869 GTK_SIGNAL_FUNC(cancel_link), b); | |
| 1870 gtk_signal_connect(GTK_OBJECT(b->cancel), "clicked", | |
| 1871 GTK_SIGNAL_FUNC(cancel_link), b); | |
| 1872 gtk_signal_connect(GTK_OBJECT(b->ok), "clicked", | |
| 1873 GTK_SIGNAL_FUNC(do_add_link), b); | |
| 1874 | |
| 1875 gtk_container_add(GTK_CONTAINER(linkdialog ), vbox); | |
| 1876 gtk_container_border_width(GTK_CONTAINER(linkdialog ), 10); | |
| 1877 gtk_window_set_title(GTK_WINDOW(linkdialog ), "GAIM - Add URL"); | |
| 1878 gtk_window_set_focus(GTK_WINDOW(linkdialog ), b->url); | |
| 1879 b->window = linkdialog; | |
| 1880 b->toggle = link; | |
| 1881 b->entry = entry; | |
| 1882 gtk_widget_realize(linkdialog); | |
| 1883 aol_icon(linkdialog->window); | |
| 1884 | |
| 1885 } | |
| 1886 | |
| 1887 gtk_widget_show(linkdialog); | |
| 1888 gdk_window_raise(linkdialog->window); | |
| 1889 } | |
| 1890 | |
| 1891 | |
| 1892 /*------------------------------------------------------*/ | |
| 1893 /* Color Selection Dialog */ | |
| 1894 /*------------------------------------------------------*/ | |
| 1895 | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1896 void cancel_color(GtkWidget *widget, struct conversation *c) |
| 1 | 1897 { |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1898 if (c->palette && widget) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1899 { |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1900 set_state_lock(1); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1901 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->palette), FALSE); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1902 set_state_lock(0); |
| 61 | 1903 } |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1904 dialogwindows = g_list_remove(dialogwindows, c->color_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1905 gtk_widget_destroy(c->color_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1906 c->color_dialog = NULL; |
| 1 | 1907 } |
| 1908 | |
| 1909 void do_color(GtkWidget *widget, GtkColorSelection *colorsel) | |
| 1910 { | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1911 gdouble color[3]; |
| 1 | 1912 GdkColor text_color; |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1913 struct conversation *c; |
| 1 | 1914 char *open_tag; |
| 1915 | |
| 1916 open_tag = g_malloc(30); | |
| 1917 | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1918 gtk_color_selection_get_color (colorsel, color); |
| 1 | 1919 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1920 c = gtk_object_get_user_data(GTK_OBJECT(colorsel)); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1921 GTK_IS_EDITABLE(c->entry); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1922 |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1923 text_color.red = ((guint16)(color[0]*65535))>>8; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1924 text_color.green = ((guint16)(color[1]*65535))>>8; |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1925 text_color.blue = ((guint16)(color[2]*65535))>>8; |
| 1 | 1926 |
| 1927 g_snprintf(open_tag, 23, "<FONT COLOR=\"#%02X%02X%02X\">", text_color.red, text_color.green, text_color.blue); | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1928 surround(c->entry, open_tag, "</FONT>"); |
| 1 | 1929 sprintf(debug_buff,"#%02X%02X%02X\n", text_color.red, text_color.green, text_color.blue); |
| 1930 debug_print(debug_buff); | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1931 g_free(open_tag); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1932 cancel_color(NULL, c); |
| 1 | 1933 } |
| 1934 | |
| 1935 | |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1936 void show_color_dialog(struct conversation *c, GtkWidget *color) |
| 1 | 1937 { |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1938 GtkWidget *colorsel; |
| 1 | 1939 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1940 if (!c->color_dialog) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1941 { |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1942 c->color_dialog = gtk_color_selection_dialog_new("Select Text Color"); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1943 colorsel = GTK_COLOR_SELECTION_DIALOG(c->color_dialog)->colorsel; |
| 1 | 1944 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1945 gtk_object_set_user_data(GTK_OBJECT(colorsel), c); |
| 1 | 1946 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1947 gtk_signal_connect(GTK_OBJECT(c->color_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1948 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->color_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_color), colorsel); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1949 gtk_signal_connect(GTK_OBJECT(GTK_COLOR_SELECTION_DIALOG(c->color_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_color), c); |
| 1 | 1950 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1951 gtk_widget_realize(c->color_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1952 aol_icon(c->color_dialog->window); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1953 } |
| 1 | 1954 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1955 gtk_widget_show(c->color_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1956 gdk_window_raise(c->color_dialog->window); |
| 1 | 1957 } |
| 1958 | |
| 1959 /*------------------------------------------------------------------------*/ | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1960 /* Font Selection Dialog */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1961 /*------------------------------------------------------------------------*/ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1962 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1963 void cancel_font(GtkWidget *widget, struct conversation *c) |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1964 { |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1965 if (c->font && widget) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1966 { |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1967 set_state_lock(1); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1968 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(c->font), FALSE); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1969 set_state_lock(0); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1970 } |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1971 dialogwindows = g_list_remove(dialogwindows, c->font_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1972 gtk_widget_destroy(c->font_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
1973 c->font_dialog = NULL; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1974 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1975 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1976 void apply_font(GtkWidget *widget, GtkFontSelection *fontsel) |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1977 { |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1978 /* this could be expanded to include font size, weight, etc. |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1979 but for now only works with font face */ |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1980 int i, j = 0, k = 0; |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1981 struct conversation *c = gtk_object_get_user_data(GTK_OBJECT(fontsel)); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1982 |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1983 if (c) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1984 { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
1985 char *tmp = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
308
e5fa88351dc8
[gaim-migrate @ 318]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
300
diff
changeset
|
1986 strncpy(c->current_fontname, tmp, sizeof(c->current_fontname)); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1987 |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1988 for (i = 0; i < strlen(c->current_fontname); i++) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
1989 { |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1990 if (c->current_fontname[i] == '-') |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1991 { |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1992 if (++j > 2) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1993 break; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1994 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1995 else if (j == 2) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1996 c->current_fontface[k++] = c->current_fontname[i]; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1997 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1998 c->current_fontface[k] = '\0'; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
1999 |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2000 set_font_face(NULL, c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2001 } |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2002 else |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2003 { |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2004 if (fontface) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2005 g_free(fontface); |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2006 |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2007 fontface = g_malloc(64); |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2008 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontsel)); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2009 |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2010 for (i = 0; i < strlen(fontname); i++) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2011 { |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2012 if (fontname[i] == '-') |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2013 { |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2014 if (++j > 2) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2015 break; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2016 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2017 else if (j == 2) |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2018 fontface[k++] = fontname[i]; |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2019 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2020 fontface[k] = '\0'; |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2021 |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2022 save_prefs(); |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2023 } |
|
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2024 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2025 cancel_font(NULL, c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2026 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2027 |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2028 static GtkWidget *fontseld; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2029 |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2030 void destroy_fontsel(GtkWidget *w, gpointer d) { |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2031 gtk_widget_destroy(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2032 fontseld = NULL; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2033 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2034 |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2035 void apply_font_dlg(GtkWidget *w, GtkWidget *f) { |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2036 int i, j = 0, k = 0; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2037 if (fontface) |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2038 g_free(fontface); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2039 |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2040 fontface = g_malloc(64); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2041 fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(fontseld)); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2042 destroy_fontsel(0, 0); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2043 for (i = 0; i < strlen(fontname); i++) { |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2044 if (fontname[i] == '-') { |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2045 if (++j > 2) break; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2046 } else if (j == 2) |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2047 fontface[k++] = fontname[i]; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2048 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2049 fontface[k] = '\0'; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2050 save_prefs(); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2051 } |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2052 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2053 void show_font_dialog(struct conversation *c, GtkWidget *font) |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2054 { |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2055 |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2056 if (!font) { /* we came from the prefs dialog */ |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2057 if (fontseld) return; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2058 fontseld = gtk_font_selection_dialog_new("Select Font"); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2059 if (fontname) |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2060 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), fontname); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2061 else |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2062 gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(fontseld), DEFAULT_FONT_NAME); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2063 |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2064 gtk_object_set_user_data(GTK_OBJECT(fontseld), NULL); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2065 gtk_signal_connect(GTK_OBJECT(fontseld), "delete_event", GTK_SIGNAL_FUNC(destroy_fontsel), NULL); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2066 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->cancel_button), "clicked", GTK_SIGNAL_FUNC(destroy_fontsel), NULL); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2067 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(fontseld)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font_dlg), NULL); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2068 gtk_widget_realize(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2069 aol_icon(fontseld->window); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2070 gtk_widget_show(fontseld); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2071 gdk_window_raise(fontseld->window); |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2072 return; |
|
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2073 } |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2074 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2075 if (!c->font_dialog) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2076 { |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2077 c->font_dialog = gtk_font_selection_dialog_new("Select Font"); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2078 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2079 if (font) |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2080 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), c); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2081 else |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2082 gtk_object_set_user_data(GTK_OBJECT(c->font_dialog), NULL); |
|
234
985635758c33
[gaim-migrate @ 244]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
231
diff
changeset
|
2083 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2084 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)c->font_dialog, DEFAULT_FONT_NAME); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2085 |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2086 gtk_signal_connect(GTK_OBJECT(c->font_dialog), "delete_event", GTK_SIGNAL_FUNC(delete_event_dialog), c); |
|
334
0fa651368776
[gaim-migrate @ 344]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
311
diff
changeset
|
2087 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(apply_font), c->font_dialog); |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2088 gtk_signal_connect(GTK_OBJECT(GTK_FONT_SELECTION_DIALOG(c->font_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC(cancel_font), c); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2089 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2090 if (fontname) |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2091 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)c->font_dialog, fontname); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2092 else |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2093 gtk_font_selection_dialog_set_font_name((GtkFontSelectionDialog *)c->font_dialog, DEFAULT_FONT_NAME); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2094 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2095 gtk_widget_realize(c->font_dialog); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2096 |
|
311
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2097 aol_icon(c->font_dialog->window); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2098 } |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2099 gtk_widget_show(c->font_dialog); |
|
0a8b4edc4732
[gaim-migrate @ 321]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
308
diff
changeset
|
2100 gdk_window_raise(c->font_dialog->window); |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2101 } |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2102 |
|
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2103 /*------------------------------------------------------------------------*/ |
| 1 | 2104 /* The dialog for import/export */ |
| 2105 /*------------------------------------------------------------------------*/ | |
| 2106 | |
| 228 | 2107 #define PATHSIZE 1024 |
| 2108 | |
| 229 | 2109 /* see if a buddy list cache file for this user exists */ |
| 2110 | |
| 2111 gboolean | |
| 2112 bud_list_cache_exists( void ) | |
| 2113 { | |
| 2114 gboolean ret = FALSE; | |
| 2115 char path[PATHSIZE]; | |
| 2116 char *file; | |
| 2117 struct stat sbuf; | |
| 2118 extern char g_screenname[]; | |
| 2119 | |
| 2120 file = getenv( "HOME" ); | |
| 2121 if ( file != (char *) NULL ) { | |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2122 sprintf( path, "%s/.gaim/%s.blist", file, g_screenname ); |
| 229 | 2123 if ( !stat(path, &sbuf) ) |
| 2124 ret = TRUE; | |
| 2125 } | |
| 2126 return ret; | |
| 2127 } | |
| 2128 | |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2129 /* if dummy is 0, save to ~/.gaim/screenname.blist. Else, let user choose */ |
| 228 | 2130 |
| 1 | 2131 void do_export(GtkWidget *w, void *dummy) |
| 2132 { | |
| 2133 FILE *f; | |
| 228 | 2134 gint show_dialog = (int) dummy; |
| 1 | 2135 char *buf = g_malloc(BUF_LONG); |
| 228 | 2136 char *file; |
| 2137 char path[PATHSIZE]; | |
| 2138 extern char g_screenname[]; | |
| 1 | 2139 |
| 228 | 2140 if ( show_dialog == 1 ) { |
| 2141 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(exportdialog)); | |
| 2142 strncpy( path, file, PATHSIZE - 1 ); | |
| 2143 } | |
| 2144 else { | |
| 2145 file = getenv( "HOME" ); | |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2146 if ( file != (char *) NULL ) { |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2147 FILE *dir; |
|
266
3b5b469d07f7
[gaim-migrate @ 276]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
262
diff
changeset
|
2148 sprintf(buf, "%s/.gaim/", file); |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2149 dir = fopen(buf, "r"); |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2150 if (!dir) |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2151 mkdir(buf, S_IRUSR | S_IWUSR | S_IXUSR); |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2152 else |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2153 fclose(dir); |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2154 sprintf( path, "%s/.gaim/%s.blist", file, g_screenname ); |
|
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2155 } else |
| 228 | 2156 return; |
| 2157 } | |
| 2158 if ((f = fopen(path,"w"))) { | |
|
237
6ced2f1c8b24
[gaim-migrate @ 247]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
236
diff
changeset
|
2159 serv_build_config(buf, 8192 - 1); |
| 1 | 2160 fprintf(f, "%s\n", buf); |
| 2161 fclose(f); | |
| 2162 chmod(buf, S_IRUSR | S_IWUSR); | |
| 228 | 2163 } else if ( show_dialog == 1 ) { |
| 1 | 2164 g_snprintf(buf, BUF_LONG / 2, "Error writing file %s", file); |
| 2165 do_error_dialog(buf, "Error"); | |
| 2166 } | |
| 228 | 2167 if ( show_dialog == 1 ) { |
| 2168 destroy_dialog(NULL, exportdialog); | |
| 2169 exportdialog = NULL; | |
| 2170 } | |
| 1 | 2171 |
| 2172 g_free(buf); | |
| 2173 | |
| 2174 } | |
| 2175 | |
| 2176 | |
| 2177 void show_export_dialog() | |
| 2178 { | |
| 2179 char *buf = g_malloc(BUF_LEN); | |
| 2180 if (!exportdialog) { | |
| 2181 exportdialog = gtk_file_selection_new("Gaim - Export Buddy List"); | |
| 2182 | |
| 2183 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(exportdialog)); | |
| 2184 | |
| 2185 g_snprintf(buf, BUF_LEN - 1, "%s/gaim.buddy", getenv("HOME")); | |
| 2186 | |
| 2187 gtk_file_selection_set_filename(GTK_FILE_SELECTION(exportdialog), buf); | |
| 2188 gtk_signal_connect(GTK_OBJECT(exportdialog), "destroy", | |
| 2189 GTK_SIGNAL_FUNC(destroy_dialog), exportdialog); | |
| 2190 | |
| 2191 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->ok_button), | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2192 "clicked", GTK_SIGNAL_FUNC(do_export), (void*)1); |
| 1 | 2193 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(exportdialog)->cancel_button), |
| 2194 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), exportdialog); | |
| 2195 | |
| 2196 | |
| 2197 } | |
| 2198 | |
| 2199 g_free(buf); | |
| 2200 | |
| 2201 gtk_widget_show(exportdialog); | |
| 2202 gdk_window_raise(exportdialog->window); | |
| 2203 | |
| 2204 } | |
| 2205 | |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2206 /* if dummy is 0, then import from ~/.gaim/screenname.blist, else let user |
| 229 | 2207 choose */ |
| 228 | 2208 |
| 1 | 2209 void do_import(GtkWidget *w, void *dummy) |
| 2210 { | |
| 228 | 2211 gint show_dialog = (int) dummy; |
| 1 | 2212 GList *grp, *grp2; |
| 2213 char *buf = g_malloc(BUF_LONG); | |
| 2214 char *buf2; | |
| 2215 char *first = g_malloc(64); | |
| 228 | 2216 char *file; |
| 2217 char path[PATHSIZE]; | |
| 1 | 2218 FILE *f; |
| 228 | 2219 extern char g_screenname[]; |
| 2220 | |
| 2221 if ( show_dialog == 1 ) { | |
| 2222 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(importdialog)); | |
| 2223 strncpy( path, file, PATHSIZE - 1 ); | |
| 2224 } | |
| 2225 else { | |
| 2226 file = getenv( "HOME" ); | |
| 2227 if ( file != (char *) NULL ) | |
|
262
07abf2ed6665
[gaim-migrate @ 272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
255
diff
changeset
|
2228 sprintf( path, "%s/.gaim/%s.blist", file, g_screenname ); |
| 228 | 2229 else |
| 2230 return; | |
| 2231 } | |
| 2232 | |
| 2233 if (!(f = fopen(path,"r"))) { | |
| 2234 if ( show_dialog == 1 ) { | |
| 2235 g_snprintf(buf, BUF_LONG / 2, "Error reading file %s", file); | |
| 2236 do_error_dialog(buf, "Error"); | |
| 2237 destroy_dialog(NULL, importdialog); | |
| 2238 importdialog = NULL; | |
| 2239 } | |
| 1 | 2240 g_free(buf); |
| 37 | 2241 g_free(first); |
| 1 | 2242 return; |
| 2243 } | |
| 2244 | |
| 2245 fgets(first, 64, f); | |
| 2246 | |
| 2247 if (!strcasecmp(first, "Config {\n")) { | |
| 228 | 2248 if ( show_dialog == 1 ) { |
| 2249 destroy_dialog(NULL, importdialog); | |
| 2250 importdialog = NULL; | |
| 2251 } | |
| 25 | 2252 g_free(buf); |
| 37 | 2253 g_free(first); |
| 228 | 2254 fclose( f ); |
| 1 | 2255 return; |
| 2256 } else if (buf[0] == 'm') { | |
| 2257 buf2 = buf; | |
| 231 | 2258 buf = g_malloc(8193); |
| 2259 g_snprintf(buf, 8192, "toc_set_config {%s}\n", buf2); | |
| 1 | 2260 g_free(buf2); |
| 2261 } | |
| 2262 | |
| 2263 | |
| 2264 fseek(f, 0, SEEK_SET); | |
| 2265 | |
| 2266 fread(buf, BUF_LONG, 1, f); | |
| 2267 | |
| 2268 grp = groups; | |
| 2269 | |
| 2270 while(grp) { | |
| 2271 grp2 = grp->next; | |
| 2272 remove_group((struct group *)grp->data); | |
| 2273 grp = grp2; | |
| 2274 } | |
| 2275 | |
|
296
a88b889b692b
[gaim-migrate @ 306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
266
diff
changeset
|
2276 parse_toc_buddy_list(buf, 1); |
| 1 | 2277 |
| 2278 serv_save_config(); | |
| 2279 | |
| 2280 build_edit_tree(); | |
| 2281 build_permit_tree(); | |
| 2282 | |
| 228 | 2283 fclose( f ); |
| 2284 | |
| 2285 if ( show_dialog == 1 ) { | |
| 2286 /* save what we just did to cache */ | |
| 2287 | |
| 2288 do_export( (GtkWidget *) NULL, 0 ); | |
| 2289 destroy_dialog(NULL, importdialog); | |
| 2290 importdialog = NULL; | |
| 2291 } | |
| 1 | 2292 |
| 2293 g_free(buf); | |
| 37 | 2294 g_free(first); |
| 1 | 2295 } |
| 2296 | |
| 2297 void show_import_dialog() | |
| 2298 { | |
| 2299 char *buf = g_malloc(BUF_LEN); | |
| 2300 if (!importdialog) { | |
| 2301 importdialog = gtk_file_selection_new("Gaim - Import Buddy List"); | |
| 2302 | |
| 2303 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(importdialog)); | |
| 2304 | |
| 2305 g_snprintf(buf, BUF_LEN - 1, "%s/", getenv("HOME")); | |
| 2306 | |
| 2307 gtk_file_selection_set_filename(GTK_FILE_SELECTION(importdialog), buf); | |
| 2308 gtk_signal_connect(GTK_OBJECT(importdialog), "destroy", | |
| 2309 GTK_SIGNAL_FUNC(destroy_dialog), importdialog); | |
| 2310 | |
| 2311 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->ok_button), | |
|
230
83dd297aa363
[gaim-migrate @ 240]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
229
diff
changeset
|
2312 "clicked", GTK_SIGNAL_FUNC(do_import), (void*)1); |
| 1 | 2313 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(importdialog)->cancel_button), |
| 2314 "clicked", GTK_SIGNAL_FUNC(destroy_dialog), importdialog); | |
| 2315 | |
| 2316 | |
| 2317 } | |
| 2318 | |
| 24 | 2319 g_free(buf); |
| 1 | 2320 gtk_widget_show(importdialog); |
| 2321 gdk_window_raise(importdialog->window); | |
| 2322 } | |
| 2323 | |
| 2324 | |
| 2325 /*------------------------------------------------------------------------*/ | |
| 2326 /* The dialog for new away messages */ | |
| 2327 /*------------------------------------------------------------------------*/ | |
| 2328 | |
| 2329 void create_mess(GtkWidget *widget, struct create_away *ca) | |
| 2330 { | |
| 2331 struct away_message *b; | |
| 2332 gchar *away_message; | |
| 2333 guint text_len; | |
| 2334 int is_checked; | |
| 2335 | |
| 2336 /* Grab the appropriate data */ | |
| 2337 b = g_new0(struct away_message, 1); | |
| 2338 g_snprintf(b->name, sizeof(b->name), "%s", gtk_entry_get_text(GTK_ENTRY(ca->entry))); | |
| 2339 | |
| 2340 /* Get proper Length */ | |
| 2341 text_len = gtk_text_get_length(GTK_TEXT(ca->text)); | |
| 2342 away_message = gtk_editable_get_chars(GTK_EDITABLE(ca->text), 0, text_len); | |
| 2343 | |
| 2344 g_snprintf(b->message, sizeof(b->message), "%s", away_message); | |
| 38 | 2345 g_free(away_message); |
| 1 | 2346 is_checked = GTK_TOGGLE_BUTTON(ca->checkbx)->active; |
| 2347 | |
| 2348 if (is_checked) do_away_message(NULL, b); | |
| 2349 | |
| 2350 /* stick it on the away list */ | |
| 2351 if (strlen(b->name)) { | |
| 2352 away_messages = g_list_append(away_messages, b); | |
| 2353 save_prefs(); | |
| 2354 do_away_menu(); | |
| 2355 if (pd != NULL) | |
| 2356 gtk_list_select_item(GTK_LIST(pd->away_list), g_list_index(away_messages, b)); | |
| 2357 } | |
| 2358 | |
| 2359 destroy_dialog(NULL, ca->window); | |
| 2360 } | |
| 2361 | |
| 2362 void create_away_mess(GtkWidget *widget, void *dummy) | |
| 2363 { | |
| 2364 GtkWidget *bbox; | |
| 2365 GtkWidget *titlebox; | |
| 2366 GtkWidget *tbox; | |
| 2367 GtkWidget *create; | |
| 2368 GtkWidget *sw; | |
| 2369 GtkWidget *label; | |
| 2370 | |
| 2371 struct create_away *ca = g_new0(struct create_away, 1); | |
| 2372 | |
| 2373 /* Set up window */ | |
| 2374 ca->window = gtk_window_new(GTK_WINDOW_DIALOG); | |
| 2375 gtk_container_border_width(GTK_CONTAINER(ca->window), 10); | |
| 2376 gtk_window_set_title(GTK_WINDOW(ca->window), "Gaim - New away message"); | |
| 2377 gtk_signal_connect(GTK_OBJECT(ca->window),"delete_event", | |
| 2378 GTK_SIGNAL_FUNC(destroy_dialog), ca->window); | |
| 2379 | |
| 2380 /* set up container boxes */ | |
| 2381 bbox = gtk_vbox_new(FALSE, 0); | |
| 2382 titlebox = gtk_hbox_new(FALSE, 0); | |
| 2383 tbox = gtk_vbox_new(FALSE, 0); | |
| 2384 | |
| 2385 /* Make a label for away entry */ | |
| 2386 label = gtk_label_new("Away title: "); | |
| 2387 gtk_box_pack_start(GTK_BOX(titlebox), label, TRUE, TRUE, 0); | |
| 2388 | |
| 2389 /* make away title entry */ | |
| 2390 ca->entry = gtk_entry_new(); | |
| 2391 gtk_box_pack_start(GTK_BOX(titlebox), ca->entry, TRUE, TRUE, 0); | |
| 2392 | |
| 2393 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 2394 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 2395 GTK_POLICY_AUTOMATIC, | |
| 2396 GTK_POLICY_AUTOMATIC); | |
| 2397 gtk_widget_show(sw); | |
| 2398 | |
| 2399 /* create and format text box */ | |
| 2400 ca->text = gtk_text_new(NULL, NULL); | |
| 2401 gtk_text_set_word_wrap(GTK_TEXT(ca->text), TRUE); | |
| 2402 gtk_text_set_editable(GTK_TEXT(ca->text), TRUE ); | |
| 2403 gtk_container_add(GTK_CONTAINER(sw), ca->text); | |
| 2404 gtk_widget_show(ca->text); | |
| 2405 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 10); | |
| 2406 | |
| 2407 /* make create button */ | |
| 2408 create = gtk_button_new_with_label ("Create new message"); | |
|
255
be4ac6d5c1b4
[gaim-migrate @ 265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
253
diff
changeset
|
2409 gtk_box_pack_start(GTK_BOX(bbox), create, FALSE, FALSE, 0); |
| 1 | 2410 gtk_signal_connect(GTK_OBJECT(create), "clicked", GTK_SIGNAL_FUNC(create_mess), ca); |
| 2411 | |
| 2412 /* Checkbox for showing away msg */ | |
| 2413 ca->checkbx = gtk_check_button_new_with_label("Make away now"); | |
| 2414 | |
| 2415 /* pack boxes where they belong */ | |
|
255
be4ac6d5c1b4
[gaim-migrate @ 265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
253
diff
changeset
|
2416 gtk_box_pack_start(GTK_BOX(tbox), titlebox, FALSE, FALSE, 0); |
|
be4ac6d5c1b4
[gaim-migrate @ 265]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
253
diff
changeset
|
2417 gtk_box_pack_start(GTK_BOX(tbox), bbox, TRUE, TRUE, 0); |
| 1 | 2418 gtk_box_pack_start(GTK_BOX(tbox), ca->checkbx, FALSE, FALSE, 0); |
| 2419 gtk_container_add(GTK_CONTAINER(ca->window), tbox); | |
| 2420 | |
| 2421 /* let the world see what we have done. */ | |
| 2422 gtk_widget_show(label); | |
| 2423 gtk_widget_show(create); | |
| 2424 gtk_widget_show(ca->checkbx); | |
| 2425 gtk_widget_show(ca->entry); | |
| 2426 gtk_widget_show(titlebox); | |
| 2427 gtk_widget_show(tbox); | |
| 2428 gtk_widget_show(bbox); | |
| 2429 | |
| 2430 | |
| 2431 gtk_widget_realize(ca->window); | |
| 2432 aol_icon(ca->window->window); | |
| 2433 | |
| 2434 gtk_widget_show(ca->window); | |
| 2435 | |
| 2436 | |
| 2437 } |
