Mercurial > pidgin
comparison src/buddy_chat.c @ 1201:90bb83cafb9e
[gaim-migrate @ 1211]
buddy chat changes (courtesy jadrock) and oscar updates
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 05 Dec 2000 00:18:19 +0000 |
parents | f3e0f41beddb |
children | 265abea9db72 |
comparison
equal
deleted
inserted
replaced
1200:c484e99d3754 | 1201:90bb83cafb9e |
---|---|
411 list_item = gtk_list_item_new_with_label(name); | 411 list_item = gtk_list_item_new_with_label(name); |
412 gtk_object_set_user_data(GTK_OBJECT(list_item), name); | 412 gtk_object_set_user_data(GTK_OBJECT(list_item), name); |
413 gtk_list_append_items(GTK_LIST(b->list), g_list_append(NULL, list_item)); | 413 gtk_list_append_items(GTK_LIST(b->list), g_list_append(NULL, list_item)); |
414 gtk_widget_show(list_item); | 414 gtk_widget_show(list_item); |
415 | 415 |
416 g_snprintf(tmp, sizeof(tmp), _("%d people in room"), g_list_length(b->in_room)); | |
417 gtk_label_set_text(GTK_LABEL(b->count), tmp); | |
418 | |
416 if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN)) | 419 if (b->makesound && (sound_options & OPT_SOUND_CHAT_JOIN)) |
417 play_sound(CHAT_JOIN); | 420 play_sound(CHAT_JOIN); |
418 | 421 |
419 if (display_options & OPT_DISP_CHAT_LOGON) { | 422 if (display_options & OPT_DISP_CHAT_LOGON) { |
420 g_snprintf(tmp, sizeof(tmp), _("<B>%s entered the room.</B>"), name); | 423 g_snprintf(tmp, sizeof(tmp), _("<B>%s entered the room.</B>"), name); |
450 break; | 453 break; |
451 } | 454 } |
452 names = names->next; | 455 names = names->next; |
453 } | 456 } |
454 | 457 |
458 g_snprintf(tmp, sizeof(tmp), _("%d people in room"), g_list_length(b->in_room)); | |
459 gtk_label_set_text(GTK_LABEL(b->count), tmp); | |
460 | |
455 if (b->makesound && (sound_options & OPT_SOUND_CHAT_PART)) | 461 if (b->makesound && (sound_options & OPT_SOUND_CHAT_PART)) |
456 play_sound(CHAT_LEAVE); | 462 play_sound(CHAT_LEAVE); |
457 | 463 |
458 if (display_options & OPT_DISP_CHAT_LOGON) { | 464 if (display_options & OPT_DISP_CHAT_LOGON) { |
459 g_snprintf(tmp, sizeof(tmp), _("<B>%s left the room.</B>"), buddy); | 465 g_snprintf(tmp, sizeof(tmp), _("<B>%s left the room.</B>"), buddy); |
526 GtkWidget *list; | 532 GtkWidget *list; |
527 GtkWidget *invite_btn; | 533 GtkWidget *invite_btn; |
528 GtkWidget *whisper; | 534 GtkWidget *whisper; |
529 GtkWidget *close; | 535 GtkWidget *close; |
530 GtkWidget *chatentry; | 536 GtkWidget *chatentry; |
531 GtkWidget *lbox; | 537 GtkWidget *lbox; |
532 GtkWidget *bbox; | 538 GtkWidget *bbox; |
533 GtkWidget *bbox2; | 539 GtkWidget *bbox2; |
534 GtkWidget *im, *ignore, *info; | 540 GtkWidget *im, *ignore, *info; |
535 GtkWidget *sw; | 541 GtkWidget *sw; |
536 GtkWidget *sw2; | 542 GtkWidget *sw2; |
537 GtkWidget *vbox; | 543 GtkWidget *vbox; |
538 GtkWidget *vpaned; | 544 GtkWidget *vpaned; |
539 GtkWidget *hpaned; | 545 GtkWidget *hpaned; |
540 GtkWidget *toolbar; | 546 GtkWidget *toolbar; |
541 | 547 |
542 int dispstyle; | 548 int dispstyle = set_dispstyle(1); |
543 | 549 |
544 win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 550 win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
545 b->window = win; | 551 b->window = win; |
546 gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); | 552 gtk_object_set_user_data(GTK_OBJECT(win), b); |
553 gtk_window_set_wmclass(GTK_WINDOW(win), "buddy_chat", "Gaim"); | |
554 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); | |
555 gtk_container_border_width(GTK_CONTAINER(win), 10); | |
556 gtk_window_set_title(GTK_WINDOW(win), b->name); | |
557 gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback), b); | |
558 gtk_widget_realize(win); | |
559 aol_icon(win->window); | |
547 | 560 |
548 vpaned = gtk_vpaned_new(); | 561 vpaned = gtk_vpaned_new(); |
562 gtk_container_add(GTK_CONTAINER(win),vpaned); | |
563 gtk_widget_show( vpaned ); | |
564 | |
549 hpaned = gtk_hpaned_new(); | 565 hpaned = gtk_hpaned_new(); |
550 | 566 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE); |
551 gtk_window_set_policy(GTK_WINDOW(win), TRUE, TRUE, TRUE); | 567 gtk_widget_show( hpaned ); |
552 gtk_widget_realize(win); | 568 |
553 | 569 sw = gtk_scrolled_window_new (NULL, NULL); |
554 dispstyle = set_dispstyle(1); | 570 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), |
555 | 571 GTK_POLICY_NEVER, |
556 close = picture_button2(win, _("Close"), cancel_xpm, dispstyle); | 572 GTK_POLICY_ALWAYS); |
557 | 573 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE); |
558 invite_btn = picture_button2(win, _("Invite"), join_xpm, dispstyle); | 574 gtk_widget_set_usize(sw, 320, 150); |
559 whisper = picture_button2(win, _("Whisper"), tb_forward_xpm, dispstyle); | 575 gtk_widget_show(sw); |
560 send = picture_button2(win, _("Send"), tmp_send_xpm, dispstyle); | 576 |
561 | |
562 im = picture_button2(win, _("IM"), tmp_send_xpm, FALSE); | |
563 ignore = picture_button2(win, _("Ignore"), close_xpm, FALSE); | |
564 info = picture_button2(win, _("Info"), tb_search_xpm, FALSE); | |
565 | |
566 if (display_options & OPT_DISP_COOL_LOOK) | |
567 { | |
568 gtk_button_set_relief(GTK_BUTTON(close), GTK_RELIEF_NONE); | |
569 gtk_button_set_relief(GTK_BUTTON(invite_btn), GTK_RELIEF_NONE); | |
570 gtk_button_set_relief(GTK_BUTTON(whisper), GTK_RELIEF_NONE); | |
571 gtk_button_set_relief(GTK_BUTTON(send), GTK_RELIEF_NONE); | |
572 gtk_button_set_relief(GTK_BUTTON(im), GTK_RELIEF_NONE); | |
573 gtk_button_set_relief(GTK_BUTTON(ignore), GTK_RELIEF_NONE); | |
574 gtk_button_set_relief(GTK_BUTTON(info), GTK_RELIEF_NONE); | |
575 } | |
576 | |
577 text = gtk_html_new(NULL, NULL); | 577 text = gtk_html_new(NULL, NULL); |
578 | |
579 b->text = text; | 578 b->text = text; |
579 gtk_container_add(GTK_CONTAINER(sw), text); | |
580 gtk_widget_show(text); | |
581 GTK_HTML (text)->hadj->step_increment = 10.0; | |
582 GTK_HTML (text)->vadj->step_increment = 10.0; | |
583 | |
584 lbox = gtk_vbox_new(FALSE, 4); | |
585 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE); | |
586 gtk_widget_show(lbox); | |
587 | |
588 b->count = gtk_label_new(_("0 people in room")); | |
589 gtk_box_pack_start(GTK_BOX(lbox), b->count, FALSE, FALSE, 0); | |
590 gtk_widget_show(b->count); | |
591 | |
592 sw2 = gtk_scrolled_window_new(NULL, NULL); | |
593 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), | |
594 GTK_POLICY_NEVER, | |
595 GTK_POLICY_AUTOMATIC); | |
596 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); | |
597 gtk_widget_show(sw2); | |
580 | 598 |
581 list = gtk_list_new(); | 599 list = gtk_list_new(); |
582 b->list = list; | 600 b->list = list; |
583 | 601 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list); |
584 bbox = gtk_hbox_new(FALSE, 5); | 602 gtk_widget_set_usize(list, 150, -1); |
585 bbox2 = gtk_hbox_new(TRUE, 0); | 603 gtk_widget_show(list); |
586 vbox = gtk_vbox_new(FALSE, 0); | 604 |
587 lbox = gtk_vbox_new(FALSE, 4); | 605 bbox2 = gtk_hbox_new(TRUE, 0); |
606 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 5); | |
607 gtk_widget_show(bbox2); | |
608 | |
609 im = picture_button2(win, _("IM"), tmp_send_xpm, FALSE); | |
610 gtk_box_pack_start(GTK_BOX(bbox2), im, dispstyle, dispstyle, 5); | |
611 gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b); | |
612 | |
613 ignore = picture_button2(win, _("Ignore"), close_xpm, FALSE); | |
614 gtk_box_pack_start(GTK_BOX(bbox2), ignore, dispstyle, dispstyle, 5); | |
615 gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b); | |
616 | |
617 info = picture_button2(win, _("Info"), tb_search_xpm, FALSE); | |
618 gtk_box_pack_start(GTK_BOX(bbox2), info, dispstyle, dispstyle, 5); | |
619 gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b); | |
620 | |
621 vbox = gtk_vbox_new(FALSE, 0); | |
622 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE); | |
623 gtk_widget_show(vbox); | |
624 | |
625 toolbar = build_conv_toolbar(b); | |
626 gtk_box_pack_start(GTK_BOX(vbox), toolbar, TRUE, TRUE, 5); | |
588 | 627 |
589 chatentry = gtk_text_new( NULL, NULL ); | 628 chatentry = gtk_text_new( NULL, NULL ); |
629 b->entry = chatentry; | |
630 gtk_object_set_user_data(GTK_OBJECT(chatentry), b); | |
590 gtk_text_set_editable(GTK_TEXT(chatentry), TRUE); | 631 gtk_text_set_editable(GTK_TEXT(chatentry), TRUE); |
591 gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE); | 632 gtk_text_set_word_wrap(GTK_TEXT(chatentry), TRUE); |
592 gtk_object_set_user_data(GTK_OBJECT(chatentry), b); | |
593 b->entry = chatentry; | |
594 | |
595 gtk_widget_realize(win); | |
596 | |
597 toolbar = build_conv_toolbar(b); | |
598 | |
599 /* Hack something so we know have an entry click event */ | |
600 | |
601 gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback),b); | 633 gtk_signal_connect(GTK_OBJECT(chatentry), "activate", GTK_SIGNAL_FUNC(send_callback),b); |
602 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), b); | 634 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(keypress_callback), b); |
603 /* Text box */ | |
604 | |
605 sw = gtk_scrolled_window_new (NULL, NULL); | |
606 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), | |
607 GTK_POLICY_NEVER, | |
608 GTK_POLICY_ALWAYS); | |
609 gtk_widget_show(sw); | |
610 gtk_container_add(GTK_CONTAINER(sw), text); | |
611 gtk_widget_show(text); | |
612 | |
613 | |
614 GTK_HTML (text)->hadj->step_increment = 10.0; | |
615 GTK_HTML (text)->vadj->step_increment = 10.0; | |
616 gtk_widget_set_usize(sw, 320, 150); | |
617 | |
618 gtk_paned_pack1(GTK_PANED(hpaned), sw, TRUE, TRUE); | |
619 | |
620 sw2 = gtk_scrolled_window_new(NULL, NULL); | |
621 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), | |
622 GTK_POLICY_NEVER, | |
623 GTK_POLICY_AUTOMATIC); | |
624 gtk_widget_show(sw2); | |
625 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), list); | |
626 | |
627 gtk_box_pack_start(GTK_BOX(lbox), sw2, TRUE, TRUE, 0); | |
628 gtk_box_pack_start(GTK_BOX(lbox), bbox2, FALSE, FALSE, 5); | |
629 | |
630 | |
631 gtk_paned_pack2(GTK_PANED(hpaned), lbox, TRUE, TRUE); | |
632 gtk_widget_show(list); | |
633 | |
634 | |
635 gtk_widget_set_usize(list, 150, -1); | |
636 | |
637 | |
638 /* Ready and pack buttons */ | |
639 gtk_object_set_user_data(GTK_OBJECT(win), b); | |
640 gtk_object_set_user_data(GTK_OBJECT(close), b); | |
641 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback),b); | |
642 gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback),b); | |
643 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b); | |
644 gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b); | |
645 | |
646 gtk_signal_connect(GTK_OBJECT(im), "clicked", GTK_SIGNAL_FUNC(im_callback), b); | |
647 gtk_signal_connect(GTK_OBJECT(ignore), "clicked", GTK_SIGNAL_FUNC(ignore_callback), b); | |
648 gtk_signal_connect(GTK_OBJECT(info), "clicked", GTK_SIGNAL_FUNC(info_callback), b); | |
649 | |
650 | |
651 gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 5); | |
652 gtk_box_pack_end(GTK_BOX(bbox), invite_btn, dispstyle, dispstyle, 5); | |
653 gtk_box_pack_end(GTK_BOX(bbox), whisper, dispstyle, dispstyle, 5); | |
654 gtk_box_pack_end(GTK_BOX(bbox), send, dispstyle, dispstyle, 5); | |
655 | |
656 gtk_box_pack_start(GTK_BOX(bbox2), im, dispstyle, dispstyle, 5); | |
657 gtk_box_pack_start(GTK_BOX(bbox2), ignore, dispstyle, dispstyle, 5); | |
658 gtk_box_pack_start(GTK_BOX(bbox2), info, dispstyle, dispstyle, 5); | |
659 | |
660 /* pack and fill the rest */ | |
661 | |
662 | |
663 gtk_paned_pack1(GTK_PANED(vpaned), hpaned, TRUE, FALSE); | |
664 gtk_box_pack_start(GTK_BOX(vbox), toolbar, TRUE, TRUE, 5); | |
665 gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5); | |
666 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
667 gtk_paned_pack2(GTK_PANED(vpaned), vbox, TRUE, FALSE); | |
668 | |
669 gtk_widget_show(send); | |
670 gtk_widget_show(invite_btn); | |
671 gtk_widget_show(whisper); | |
672 gtk_widget_show(close); | |
673 gtk_widget_show(im); | |
674 gtk_widget_show(ignore); | |
675 gtk_widget_show(info); | |
676 gtk_widget_show(bbox); | |
677 gtk_widget_show(lbox); | |
678 gtk_widget_show(bbox2); | |
679 gtk_widget_show(vbox); | |
680 gtk_widget_show( vpaned ); | |
681 gtk_widget_show( hpaned ); | |
682 gtk_widget_show(chatentry); | |
683 | |
684 if (display_options & OPT_DISP_CHAT_BIG_ENTRY) | |
685 gtk_widget_set_usize(chatentry, 320, 50); | |
686 else | |
687 gtk_widget_set_usize(chatentry, 320, 25); | |
688 | |
689 gtk_container_add(GTK_CONTAINER(win),vpaned); | |
690 gtk_container_border_width(GTK_CONTAINER(win), 10); | |
691 | |
692 gtk_window_set_title(GTK_WINDOW(win), b->name); | |
693 gtk_window_set_focus(GTK_WINDOW(win), chatentry); | |
694 | |
695 gtk_signal_connect(GTK_OBJECT(win), "destroy", GTK_SIGNAL_FUNC(close_callback),b); | |
696 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(entry_key_pressed), chatentry); | 635 gtk_signal_connect(GTK_OBJECT(chatentry), "key_press_event", GTK_SIGNAL_FUNC(entry_key_pressed), chatentry); |
697 if (general_options & OPT_GEN_CHECK_SPELLING) | 636 if (general_options & OPT_GEN_CHECK_SPELLING) |
698 gtkspell_attach(GTK_TEXT(chatentry)); | 637 gtkspell_attach(GTK_TEXT(chatentry)); |
638 gtk_box_pack_start(GTK_BOX(vbox), chatentry, TRUE, TRUE, 5); | |
639 if (display_options & OPT_DISP_CHAT_BIG_ENTRY) | |
640 gtk_widget_set_usize(chatentry, 320, 50); | |
641 else | |
642 gtk_widget_set_usize(chatentry, 320, 25); | |
643 gtk_window_set_focus(GTK_WINDOW(win), chatentry); | |
644 gtk_widget_show(chatentry); | |
645 | |
646 bbox = gtk_hbox_new(FALSE, 5); | |
647 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
648 gtk_widget_show(bbox); | |
649 | |
650 close = picture_button2(win, _("Close"), cancel_xpm, dispstyle); | |
651 b->close = close; | |
652 gtk_object_set_user_data(GTK_OBJECT(close), b); | |
653 gtk_signal_connect(GTK_OBJECT(close), "clicked", GTK_SIGNAL_FUNC(close_callback),b); | |
654 gtk_box_pack_end(GTK_BOX(bbox), close, dispstyle, dispstyle, 5); | |
655 | |
656 invite_btn = picture_button2(win, _("Invite"), join_xpm, dispstyle); | |
657 b->invite = invite_btn; | |
658 gtk_signal_connect(GTK_OBJECT(invite_btn), "clicked", GTK_SIGNAL_FUNC(invite_callback), b); | |
659 gtk_box_pack_end(GTK_BOX(bbox), invite_btn, dispstyle, dispstyle, 5); | |
660 | |
661 whisper = picture_button2(win, _("Whisper"), tb_forward_xpm, dispstyle); | |
662 b->whisper = whisper; | |
663 gtk_signal_connect(GTK_OBJECT(whisper), "clicked", GTK_SIGNAL_FUNC(whisper_callback), b); | |
664 gtk_box_pack_end(GTK_BOX(bbox), whisper, dispstyle, dispstyle, 5); | |
665 | |
666 send = picture_button2(win, _("Send"), tmp_send_xpm, dispstyle); | |
667 b->send = send; | |
668 gtk_signal_connect(GTK_OBJECT(send), "clicked", GTK_SIGNAL_FUNC(send_callback),b); | |
669 gtk_box_pack_end(GTK_BOX(bbox), send, dispstyle, dispstyle, 5); | |
699 | 670 |
700 b->font_dialog = NULL; | 671 b->font_dialog = NULL; |
701 b->fg_color_dialog = NULL; | 672 b->fg_color_dialog = NULL; |
702 b->bg_color_dialog = NULL; | 673 b->bg_color_dialog = NULL; |
703 b->smiley_dialog = NULL; | 674 b->smiley_dialog = NULL; |
704 b->link_dialog = NULL; | 675 b->link_dialog = NULL; |
705 b->log_dialog = NULL; | 676 b->log_dialog = NULL; |
706 b->send = send; | |
707 b->whisper = whisper; | |
708 b->invite = invite_btn; | |
709 b->close = close; | |
710 sprintf(b->fontface, "%s", fontface); | 677 sprintf(b->fontface, "%s", fontface); |
711 b->hasfont = 0; | 678 b->hasfont = 0; |
712 b->bgcol = bgcolor; | 679 b->bgcol = bgcolor; |
713 b->hasbg = 0; | 680 b->hasbg = 0; |
714 b->fgcol = fgcolor; | 681 b->fgcol = fgcolor; |
715 b->hasfg = 0; | 682 b->hasfg = 0; |
716 | 683 |
717 gtk_widget_realize(win); | |
718 aol_icon(win->window); | |
719 | |
720 gtk_widget_show(win); | 684 gtk_widget_show(win); |
721 } | 685 } |
722 | 686 |
723 | 687 |
724 | 688 |