comparison src/dialogs.c @ 467:04f4ed4e34fc

[gaim-migrate @ 477] The Warn Dialog is now prettier. The IM dialog no longer segfaults when you click the 'OK' button. Woops! That was my fault. It's hard to tie an event to a null widget. *giggle* committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Fri, 07 Jul 2000 18:39:53 +0000
parents be7cf1868b76
children 4bf9c74b9e4d
comparison
equal deleted inserted replaced
466:b5c2359d633e 467:04f4ed4e34fc
42 42
43 #include "pixmaps/cancel.xpm" 43 #include "pixmaps/cancel.xpm"
44 #include "pixmaps/save.xpm" 44 #include "pixmaps/save.xpm"
45 #include "pixmaps/ok.xpm" 45 #include "pixmaps/ok.xpm"
46 #include "pixmaps/add.xpm" 46 #include "pixmaps/add.xpm"
47 #include "pixmaps/warn.xpm"
47 48
48 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1" 49 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1"
49 50
50 char *fontface; 51 char *fontface;
51 char *fontname; 52 char *fontname;
365 GtkWidget *cancel; 366 GtkWidget *cancel;
366 GtkWidget *warn; 367 GtkWidget *warn;
367 GtkWidget *label; 368 GtkWidget *label;
368 GtkWidget *vbox; 369 GtkWidget *vbox;
369 GtkWidget *bbox; 370 GtkWidget *bbox;
371 GtkWidget *button_box;
372 GtkWidget *icon_i;
373 GdkBitmap *mask;
374 GdkPixmap *icon;
375 GtkWidget *frame;
376 GtkWidget *fbox;
370 377
371 struct warning *w = g_new0(struct warning, 1); 378 struct warning *w = g_new0(struct warning, 1);
372 379
373 char *buf = g_malloc(128); 380 char *buf = g_malloc(128);
374 w->window = gtk_window_new(GTK_WINDOW_DIALOG); 381 w->window = gtk_window_new(GTK_WINDOW_DIALOG);
375 dialogwindows = g_list_prepend(dialogwindows, w->window); 382 gtk_window_set_policy(GTK_WINDOW(w->window), FALSE, FALSE, TRUE);
383 gtk_widget_show(w->window);
384 dialogwindows = g_list_prepend(dialogwindows, w->window);
376 cancel = gtk_button_new_with_label(_("Cancel")); 385 cancel = gtk_button_new_with_label(_("Cancel"));
377 warn = gtk_button_new_with_label(_("Warn")); 386 warn = gtk_button_new_with_label(_("Warn"));
378 bbox = gtk_hbox_new(TRUE, 10); 387 bbox = gtk_hbox_new(TRUE, 10);
379 vbox = gtk_vbox_new(FALSE, 5); 388 vbox = gtk_vbox_new(FALSE, 5);
380 389 fbox = gtk_vbox_new(FALSE, 5);
390
391 frame = gtk_frame_new(_("Warn"));
392
393 /* Build Warn Button */
394
395 warn = gtk_button_new();
396
397 button_box = gtk_hbox_new(FALSE, 5);
398 icon = gdk_pixmap_create_from_xpm_d ( w->window->window, &mask, NULL, warn_xpm);
399 icon_i = gtk_pixmap_new(icon, mask);
400
401 label = gtk_label_new(_("Warn"));
402
403 gtk_box_pack_start(GTK_BOX(button_box), icon_i, FALSE, FALSE, 2);
404 gtk_box_pack_end(GTK_BOX(button_box), label, FALSE, FALSE, 2);
405
406 gtk_widget_show(label);
407 gtk_widget_show(icon_i);
408
409 gtk_widget_show(button_box);
410
411 gtk_container_add(GTK_CONTAINER(warn), button_box);
412
413 /* End of OK Button */
414
415 /* Build Cancel Button */
416
417 cancel = gtk_button_new();
418
419 button_box = gtk_hbox_new(FALSE, 5);
420 icon = gdk_pixmap_create_from_xpm_d ( w->window->window, &mask, NULL, cancel_xpm);
421
422 icon_i = gtk_pixmap_new(icon, mask);
423
424 label = gtk_label_new(_("Cancel"));
425
426 gtk_box_pack_start(GTK_BOX(button_box), icon_i, FALSE, FALSE, 2);
427 gtk_box_pack_end(GTK_BOX(button_box), label, FALSE, FALSE, 2);
428
429 gtk_widget_show(label);
430 gtk_widget_show(icon_i);
431
432 gtk_widget_show(button_box);
433
434 gtk_container_add(GTK_CONTAINER(cancel), button_box);
435
436 /* End of Cancel Button */
381 /* Put the buttons in the box */ 437 /* Put the buttons in the box */
382 gtk_box_pack_start(GTK_BOX(bbox), warn, TRUE, TRUE, 10); 438
383 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 10); 439 gtk_box_pack_start(GTK_BOX(bbox), warn, TRUE, TRUE, 5);
440 gtk_box_pack_end(GTK_BOX(bbox), cancel, TRUE, TRUE, 5);
384 441
385 g_snprintf(buf, 127, _("Do you really want to warn %s?"), who); 442 g_snprintf(buf, 127, _("Do you really want to warn %s?"), who);
386 label = gtk_label_new(buf); 443 label = gtk_label_new(buf);
387 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); 444 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5);
388 gtk_widget_show(label); 445 gtk_widget_show(label);
389 w->anon = gtk_check_button_new_with_label(_("Warn anonymously?")); 446 w->anon = gtk_check_button_new_with_label(_("Warn anonymously?"));
390 gtk_box_pack_start(GTK_BOX(vbox), w->anon, TRUE, TRUE, 0); 447 gtk_box_pack_start(GTK_BOX(vbox), w->anon, TRUE, TRUE, 5);
391 448
392 label = gtk_label_new(_("Anonymous warnings are less harsh.")); 449 label = gtk_label_new(_("Anonymous warnings are less harsh."));
393 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); 450 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 5);
394 gtk_widget_show(label); 451 gtk_widget_show(label);
395 452
396 w->who = who; 453 w->who = who;
397 454
398 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); 455 gtk_container_add(GTK_CONTAINER(frame), vbox);
456
457 gtk_box_pack_start(GTK_BOX(fbox), frame, FALSE, FALSE, 5);
458 gtk_box_pack_start(GTK_BOX(fbox), bbox, FALSE, FALSE, 5);
399 459
400 /* Handle closes right */ 460 /* Handle closes right */
401 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event", 461 gtk_signal_connect(GTK_OBJECT(w->window), "delete_event",
402 GTK_SIGNAL_FUNC(destroy_dialog), w->window); 462 GTK_SIGNAL_FUNC(destroy_dialog), w->window);
403 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", 463 gtk_signal_connect(GTK_OBJECT(cancel), "clicked",
408 gtk_widget_show(warn); 468 gtk_widget_show(warn);
409 gtk_widget_show(cancel); 469 gtk_widget_show(cancel);
410 gtk_widget_show(w->anon); 470 gtk_widget_show(w->anon);
411 gtk_widget_show(bbox); 471 gtk_widget_show(bbox);
412 gtk_widget_show(vbox); 472 gtk_widget_show(vbox);
413 gtk_window_set_title(GTK_WINDOW(w->window), _("Gaim - Warn user?")); 473 gtk_widget_show(frame);
414 gtk_container_add(GTK_CONTAINER(w->window), vbox); 474 gtk_widget_show(fbox);
415 gtk_widget_realize(w->window); 475
476 gtk_window_set_title(GTK_WINDOW(w->window), _("Gaim - Warn user?"));
477 gtk_container_add(GTK_CONTAINER(w->window), fbox);
478 gtk_container_set_border_width(GTK_CONTAINER(w->window), 5);
479 gtk_widget_realize(w->window);
416 aol_icon(w->window->window); 480 aol_icon(w->window->window);
417 481
418 gtk_widget_show(w->window); 482 gtk_widget_show(w->window);
419 g_free(buf); 483 g_free(buf);
420 } 484 }
600 664
601 static void do_im(GtkWidget *widget, GtkWidget *imentry) 665 static void do_im(GtkWidget *widget, GtkWidget *imentry)
602 { 666 {
603 char *who; 667 char *who;
604 struct conversation *c; 668 struct conversation *c;
605 669 char *test;
670
606 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(imentry)))); 671 who = g_strdup(normalize(gtk_entry_get_text(GTK_ENTRY(imentry))));
607
608 destroy_dialog(NULL, imdialog); 672 destroy_dialog(NULL, imdialog);
609 imdialog = NULL; 673 imdialog = NULL;
610 674
611 if (!strcasecmp(who, "")) { 675 if (!strcasecmp(who, "")) {
612 g_free(who); 676 g_free(who);
689 vbox = gtk_vbox_new(FALSE, 5); 753 vbox = gtk_vbox_new(FALSE, 5);
690 ebox = gtk_hbox_new(FALSE, 2); 754 ebox = gtk_hbox_new(FALSE, 2);
691 fbox = gtk_vbox_new(TRUE, 10); 755 fbox = gtk_vbox_new(TRUE, 10);
692 756
693 frame = gtk_frame_new(_("Send Instant Message")); 757 frame = gtk_frame_new(_("Send Instant Message"));
758
759 imentry = gtk_entry_new();
694 760
695 /* Build OK Button */ 761 /* Build OK Button */
696 762
697 button = gtk_button_new(); 763 button = gtk_button_new();
698 764
753 819
754 label = gtk_label_new(_("IM who: ")); 820 label = gtk_label_new(_("IM who: "));
755 gtk_box_pack_start(GTK_BOX(ebox), label, TRUE, TRUE, 10); 821 gtk_box_pack_start(GTK_BOX(ebox), label, TRUE, TRUE, 10);
756 gtk_widget_show(label); 822 gtk_widget_show(label);
757 823
758 imentry = gtk_entry_new();
759 gtk_box_pack_start(GTK_BOX(ebox), imentry, TRUE, TRUE, 10); 824 gtk_box_pack_start(GTK_BOX(ebox), imentry, TRUE, TRUE, 10);
760 825
761 gtk_box_pack_start(GTK_BOX(vbox), ebox, FALSE, FALSE, 5); 826 gtk_box_pack_start(GTK_BOX(vbox), ebox, FALSE, FALSE, 5);
762 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); 827 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5);
763 828