comparison src/dialogs.c @ 555:66fe9f2c26ad

[gaim-migrate @ 565] smiley dialog committer: Tailor Script <tailor@pidgin.im>
author Todd Kulesza <fflewddur>
date Mon, 31 Jul 2000 18:26:43 +0000
parents 6bd2bbc1b6c8
children f1b8f03db83f
comparison
equal deleted inserted replaced
554:faceeabc6d61 555:66fe9f2c26ad
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 #include "pixmaps/warn.xpm"
48 48
49 #include "pixmaps/angel.xpm"
50 #include "pixmaps/bigsmile.xpm"
51 #include "pixmaps/burp.xpm"
52 #include "pixmaps/crossedlips.xpm"
53 #include "pixmaps/cry.xpm"
54 #include "pixmaps/embarrassed.xpm"
55 #include "pixmaps/kiss.xpm"
56 #include "pixmaps/moneymouth.xpm"
57 #include "pixmaps/sad.xpm"
58 #include "pixmaps/scream.xpm"
59 #include "pixmaps/smile.xpm"
60 #include "pixmaps/smile8.xpm"
61 #include "pixmaps/think.xpm"
62 #include "pixmaps/tongue.xpm"
63 #include "pixmaps/wink.xpm"
64 #include "pixmaps/yell.xpm"
65
49 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1" 66 #define DEFAULT_FONT_NAME "-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1"
50 67
51 char *fontface; 68 char *fontface;
52 char *fontname; 69 char *fontname;
70 int smiley_array[FACE_TOTAL];
53 71
54 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */ 72 static GtkWidget *imdialog = NULL; /*I only want ONE of these :) */
55 static GList *dialogwindows = NULL; 73 static GList *dialogwindows = NULL;
56 static GtkWidget *linkdialog, *exportdialog, *importdialog, *logdialog; 74 static GtkWidget *linkdialog, *exportdialog, *importdialog, *logdialog;
57 75
3358 gtk_widget_show(frame); 3376 gtk_widget_show(frame);
3359 3377
3360 gtk_widget_realize(ca->window); 3378 gtk_widget_realize(ca->window);
3361 aol_icon(ca->window->window); 3379 aol_icon(ca->window->window);
3362 } 3380 }
3381
3382 /* smiley dialog */
3383
3384 void close_smiley_dialog(GtkWidget *widget, struct conversation *c)
3385 {
3386 dialogwindows = g_list_remove(dialogwindows, c->smiley_dialog);
3387 gtk_widget_destroy(c->smiley_dialog);
3388 c->smiley_dialog = NULL;
3389 }
3390
3391 void set_smiley_array(GtkWidget *widget, int smiley_type)
3392 {
3393 int i;
3394
3395 for (i = 0; i < FACE_TOTAL; i++)
3396 smiley_array[i] = 0;
3397
3398 smiley_array[smiley_type] = 1;
3399
3400 return;
3401 }
3402
3403 void insert_smiley_text(GtkWidget *widget, struct conversation *c)
3404 {
3405 char *smiley_text;
3406 int i;
3407
3408 for (i = 0; i < FACE_TOTAL; i++)
3409 if (smiley_array[i] == 1)
3410 break;
3411
3412 switch (i)
3413 {
3414 case (FACE_ANGEL): smiley_text = g_strndup("O:-)", strlen("O:-)")); break;
3415 case (FACE_BIGSMILE): smiley_text = g_strndup(":-D", strlen(":-D")); break;
3416 case (FACE_BURP): smiley_text = g_strndup(":-!", strlen(":-!")); break;
3417 case (FACE_CROSSEDLIPS): smiley_text = g_strndup(":-X", strlen(":-X")); break;
3418 case (FACE_CRY): smiley_text = g_strndup(":'(", strlen(":'(")); break;
3419 case (FACE_EMBARRASSED): smiley_text = g_strndup(":-[", strlen(":-[")); break;
3420 case (FACE_KISS): smiley_text = g_strndup(":-*", strlen(":-*")); break;
3421 case (FACE_MONEYMOUTH): smiley_text = g_strndup(":-$", strlen(":-$")); break;
3422 case (FACE_SAD): smiley_text = g_strndup(":-(", strlen(":-(")); break;
3423 case (FACE_SCREAM): smiley_text = g_strndup("=-O", strlen("=-O")); break;
3424 case (FACE_SMILE): smiley_text = g_strndup(":-)", strlen(":-)")); break;
3425 case (FACE_SMILE8): smiley_text = g_strndup("8-)", strlen("8-)")); break;
3426 case (FACE_THINK): smiley_text = g_strndup(":-/", strlen(":-/")); break;
3427 case (FACE_TONGUE): smiley_text = g_strndup(":-p", strlen(":-p")); break;
3428 case (FACE_WINK): smiley_text = g_strndup(";-)", strlen(";-)")); break;
3429 case (FACE_YELL): smiley_text = g_strndup(">:o", strlen(">:o")); break;
3430 default: smiley_text = g_strndup(":-)", strlen(":-)")); break;
3431 }
3432
3433 surround(c->entry, smiley_text, "");
3434
3435 g_free(smiley_text);
3436
3437 close_smiley_dialog(NULL, c);
3438
3439 return;
3440 }
3441
3442 void show_smiley_dialog(struct conversation *c, GtkWidget *widget)
3443 {
3444 GtkWidget *dialog;
3445 GtkWidget *cancel_button, *cancel_label;
3446 GtkWidget *vbox, *smiley_box_1, *smiley_box_2, *cancel_button_box;
3447 GdkPixmap *angel_i, *bigsmile_i, *burp_i, *crossedlips_i, *cry_i, *embarrassed_i, *kiss_i, *moneymouth_i, *sad_i, *scream_i, *smile_i, *smile8_i, *think_i, *tongue_i, *wink_i, *yell_i, *cancel_i;
3448 GtkWidget *angel_p, *bigsmile_p, *burp_p, *crossedlips_p, *cry_p, *embarrassed_p, *kiss_p, *moneymouth_p, *sad_p, *scream_p, *smile_p, *smile8_p, *think_p, *tongue_p, *wink_p, *yell_p, *cancel_p;
3449 GtkWidget *angel, *bigsmile, *burp, *crossedlips, *cry, *embarrassed, *kiss, *moneymouth, *sad, *scream, *smile, *smile8, *think, *tongue, *wink, *yell;
3450 GdkBitmap *mask;
3451 GtkWidget *win;
3452
3453 if (c->smiley_dialog)
3454 return NULL;
3455
3456 dialog = gtk_dialog_new();
3457 win = c->window;
3458
3459 /* setup boxes */
3460 vbox = gtk_vbox_new(TRUE, 0);
3461 smiley_box_1 = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
3462 smiley_box_2 = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
3463
3464 /* setup buttons */
3465
3466 /* Build Cancel Button */
3467
3468 cancel_button = gtk_button_new();
3469
3470 cancel_button_box = gtk_hbox_new(FALSE, 5);
3471 cancel_i = gdk_pixmap_create_from_xpm_d (win->window, &mask, NULL, cancel_xpm);
3472
3473 cancel_p = gtk_pixmap_new(cancel_i, mask);
3474
3475 cancel_label = gtk_label_new(_("Cancel"));
3476
3477 gtk_box_pack_start(GTK_BOX(cancel_button_box), cancel_p, FALSE, FALSE, 2);
3478 gtk_box_pack_end(GTK_BOX(cancel_button_box), cancel_label, FALSE, FALSE, 2);
3479
3480 gtk_widget_show(cancel_label);
3481 gtk_widget_show(cancel_p);
3482
3483 gtk_widget_show(cancel_button_box);
3484
3485 gtk_container_add(GTK_CONTAINER(cancel_button), cancel_button_box);
3486
3487 /* End of Cancel Button */
3488
3489 angel_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3490 &win->style->white, angel_xpm );
3491 angel_p = gtk_pixmap_new(angel_i, mask);
3492 gtk_widget_show(angel_p);
3493 bigsmile_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3494 &win->style->white, bigsmile_xpm );
3495 bigsmile_p = gtk_pixmap_new(bigsmile_i, mask);
3496 gtk_widget_show(bigsmile_p);
3497 burp_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3498 &win->style->white, burp_xpm );
3499 burp_p = gtk_pixmap_new(burp_i, mask);
3500 gtk_widget_show(burp_p);
3501 crossedlips_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3502 &win->style->white, crossedlips_xpm );
3503 crossedlips_p = gtk_pixmap_new(crossedlips_i, mask);
3504 gtk_widget_show(crossedlips_p);
3505 cry_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3506 &win->style->white, cry_xpm );
3507 cry_p = gtk_pixmap_new(cry_i, mask);
3508 gtk_widget_show(cry_p);
3509 embarrassed_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3510 &win->style->white, embarrassed_xpm );
3511 embarrassed_p = gtk_pixmap_new(embarrassed_i, mask);
3512 gtk_widget_show(embarrassed_p);
3513 kiss_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3514 &win->style->white, kiss_xpm );
3515 kiss_p = gtk_pixmap_new(kiss_i, mask);
3516 gtk_widget_show(kiss_p);
3517 moneymouth_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3518 &win->style->white, moneymouth_xpm );
3519 moneymouth_p = gtk_pixmap_new(moneymouth_i, mask);
3520 gtk_widget_show(moneymouth_p);
3521 sad_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3522 &win->style->white, sad_xpm );
3523 sad_p = gtk_pixmap_new(sad_i, mask);
3524 gtk_widget_show(sad_p);
3525 scream_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3526 &win->style->white, scream_xpm );
3527 scream_p = gtk_pixmap_new(scream_i, mask);
3528 gtk_widget_show(scream_p);
3529 smile_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3530 &win->style->white, smile_xpm );
3531 smile_p = gtk_pixmap_new(smile_i, mask);
3532 gtk_widget_show(smile_p);
3533 smile8_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3534 &win->style->white, smile8_xpm );
3535 smile8_p = gtk_pixmap_new(smile8_i, mask);
3536 gtk_widget_show(smile8_p);
3537 think_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3538 &win->style->white, think_xpm );
3539 think_p = gtk_pixmap_new(think_i, mask);
3540 gtk_widget_show(think_p);
3541 tongue_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3542 &win->style->white, tongue_xpm );
3543 tongue_p = gtk_pixmap_new(tongue_i, mask);
3544 gtk_widget_show(tongue_p);
3545 wink_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3546 &win->style->white, wink_xpm );
3547 wink_p = gtk_pixmap_new(wink_i, mask);
3548 gtk_widget_show(wink_p);
3549 yell_i = gdk_pixmap_create_from_xpm_d(win->window, &mask,
3550 &win->style->white, yell_xpm );
3551 yell_p = gtk_pixmap_new(yell_i, mask);
3552 gtk_widget_show(yell_p);
3553
3554 /* pack buttons */
3555 angel = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert angel face"), _("Angel"), angel_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_ANGEL);
3556 bigsmile = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert big smiley face"), _("Big smile"), bigsmile_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_BIGSMILE);
3557 burp = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert burping face"), _("Burp"), burp_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_BURP);
3558 crossedlips = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert crossed lips face"), _("Crossed lips"), crossedlips_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_CROSSEDLIPS);
3559 cry = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert crying face"), _("Cry"), cry_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_CRY);
3560 embarrassed = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert embarrassedl face"), _("Embarrassed"), embarrassed_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_EMBARRASSED);
3561 kiss = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert kissing face"), _("Kiss"), kiss_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_KISS);
3562 moneymouth = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_1), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert money mouth face"), _("Money mouth"), moneymouth_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_MONEYMOUTH);
3563 sad = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert sad face"), _("Sad"), sad_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_SAD);
3564 scream = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert screaming face"), _("Scream"), scream_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_SCREAM);
3565 smile = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert smiley face"), _("Smile"), smile_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_SMILE);
3566 smile8 = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert big-eyed smiley face"), _("Smile8"), smile8_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_SMILE8);
3567 think = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert thinking face"), _("Think"), think_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_THINK);
3568 tongue = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert tongue face"), _("Tongue"), tongue_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_TONGUE);
3569 wink = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert winking face"), _("Wink"), wink_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_WINK);
3570 yell = gtk_toolbar_append_element(GTK_TOOLBAR(smiley_box_2), GTK_TOOLBAR_CHILD_BUTTON, NULL, NULL, _("Insert yelling face"), _("Yell"), yell_p, GTK_SIGNAL_FUNC(set_smiley_array), (int *)FACE_YELL);
3571
3572 /* pack containers */
3573 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), cancel_button, FALSE, FALSE, 10);
3574 gtk_box_pack_start(GTK_BOX(vbox), smiley_box_1, TRUE, TRUE, 0);
3575 gtk_box_pack_start(GTK_BOX(vbox), smiley_box_2, TRUE, TRUE, 0);
3576 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), vbox);
3577
3578 /* connect signals */
3579 gtk_signal_connect(GTK_OBJECT(cancel_button), "clicked", GTK_SIGNAL_FUNC(close_smiley_dialog), c);
3580 gtk_signal_connect(GTK_OBJECT(angel), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3581 gtk_signal_connect(GTK_OBJECT(bigsmile), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3582 gtk_signal_connect(GTK_OBJECT(burp), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3583 gtk_signal_connect(GTK_OBJECT(crossedlips), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3584 gtk_signal_connect(GTK_OBJECT(cry), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3585 gtk_signal_connect(GTK_OBJECT(embarrassed), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3586 gtk_signal_connect(GTK_OBJECT(kiss), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3587 gtk_signal_connect(GTK_OBJECT(moneymouth), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3588 gtk_signal_connect(GTK_OBJECT(sad), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3589 gtk_signal_connect(GTK_OBJECT(scream), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3590 gtk_signal_connect(GTK_OBJECT(smile), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3591 gtk_signal_connect(GTK_OBJECT(smile8), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3592 gtk_signal_connect(GTK_OBJECT(think), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3593 gtk_signal_connect(GTK_OBJECT(tongue), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3594 gtk_signal_connect(GTK_OBJECT(wink), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3595 gtk_signal_connect(GTK_OBJECT(yell), "clicked", GTK_SIGNAL_FUNC(insert_smiley_text), c);
3596
3597 /* show everything */
3598 if (display_options & OPT_DISP_COOL_LOOK)
3599 gtk_button_set_relief(GTK_BUTTON(cancel_button), GTK_RELIEF_NONE);
3600
3601 gtk_button_set_relief(GTK_BUTTON(angel), GTK_RELIEF_NONE);
3602 gtk_button_set_relief(GTK_BUTTON(bigsmile), GTK_RELIEF_NONE);
3603 gtk_button_set_relief(GTK_BUTTON(burp), GTK_RELIEF_NONE);
3604 gtk_button_set_relief(GTK_BUTTON(crossedlips), GTK_RELIEF_NONE);
3605 gtk_button_set_relief(GTK_BUTTON(cry), GTK_RELIEF_NONE);
3606 gtk_button_set_relief(GTK_BUTTON(embarrassed), GTK_RELIEF_NONE);
3607 gtk_button_set_relief(GTK_BUTTON(kiss), GTK_RELIEF_NONE);
3608 gtk_button_set_relief(GTK_BUTTON(moneymouth), GTK_RELIEF_NONE);
3609 gtk_button_set_relief(GTK_BUTTON(sad), GTK_RELIEF_NONE);
3610 gtk_button_set_relief(GTK_BUTTON(scream), GTK_RELIEF_NONE);
3611 gtk_button_set_relief(GTK_BUTTON(smile), GTK_RELIEF_NONE);
3612 gtk_button_set_relief(GTK_BUTTON(smile8), GTK_RELIEF_NONE);
3613 gtk_button_set_relief(GTK_BUTTON(think), GTK_RELIEF_NONE);
3614 gtk_button_set_relief(GTK_BUTTON(tongue), GTK_RELIEF_NONE);
3615 gtk_button_set_relief(GTK_BUTTON(wink), GTK_RELIEF_NONE);
3616 gtk_button_set_relief(GTK_BUTTON(yell), GTK_RELIEF_NONE);
3617
3618 gtk_widget_show_all(dialog);
3619
3620 c->smiley_dialog = dialog;
3621
3622 return;
3623 }