comparison pidgin/gtkmedia.c @ 29694:fba8dd643796

propagate from branch 'im.pidgin.pidgin' (head 6d3fc30a0a0a379281efc5a6872a9c1d7c24c650) to branch 'im.pidgin.cpw.attention_ui' (head 209a4ccd84048aaa12582f640768ef5caa9bfa43)
author Marcus Lundblad <ml@update.uu.se>
date Tue, 01 Sep 2009 19:51:07 +0000
parents 916a4d2aa0b6
children ee55fb88f512
comparison
equal deleted inserted replaced
29693:7925bb7f2aa7 29694:fba8dd643796
32 #include "pidgin.h" 32 #include "pidgin.h"
33 #include "request.h" 33 #include "request.h"
34 34
35 #include "gtkmedia.h" 35 #include "gtkmedia.h"
36 #include "gtkutils.h" 36 #include "gtkutils.h"
37 #include "pidginstock.h"
37 38
38 #ifdef USE_VV 39 #ifdef USE_VV
39 #include "media-gst.h" 40 #include "media-gst.h"
40 41
41 #ifdef _WIN32 42 #ifdef _WIN32
497 message = g_strdup_printf(_("%s wishes to start a video session with you."), 498 message = g_strdup_printf(_("%s wishes to start a video session with you."),
498 alias); 499 alias);
499 } 500 }
500 501
501 gtkmedia->priv->request_type = PURPLE_MEDIA_NONE; 502 gtkmedia->priv->request_type = PURPLE_MEDIA_NONE;
502 503 if (!purple_media_accepted(gtkmedia->priv->media, NULL, NULL)) {
503 purple_request_accept_cancel(gtkmedia, _("Incoming Call"), 504 purple_request_accept_cancel(gtkmedia, _("Incoming Call"),
504 message, NULL, PURPLE_DEFAULT_ACTION_NONE, 505 message, NULL, PURPLE_DEFAULT_ACTION_NONE,
505 (void*)account, gtkmedia->priv->screenname, NULL, 506 (void*)account, gtkmedia->priv->screenname,
506 gtkmedia->priv->media, 507 NULL, gtkmedia->priv->media,
507 pidgin_media_accept_cb, 508 pidgin_media_accept_cb,
508 pidgin_media_reject_cb); 509 pidgin_media_reject_cb);
510 }
509 pidgin_media_emit_message(gtkmedia, message); 511 pidgin_media_emit_message(gtkmedia, message);
510 g_free(message); 512 g_free(message);
511 return FALSE; 513 return FALSE;
512 } 514 }
513 515
607 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia, const gchar *sid) 609 pidgin_media_ready_cb(PurpleMedia *media, PidginMedia *gtkmedia, const gchar *sid)
608 { 610 {
609 GtkWidget *send_widget = NULL, *recv_widget = NULL, *button_widget = NULL; 611 GtkWidget *send_widget = NULL, *recv_widget = NULL, *button_widget = NULL;
610 PurpleMediaSessionType type = 612 PurpleMediaSessionType type =
611 purple_media_get_session_type(media, sid); 613 purple_media_get_session_type(media, sid);
614 GdkPixbuf *icon = NULL;
612 615
613 if (gtkmedia->priv->recv_widget == NULL 616 if (gtkmedia->priv->recv_widget == NULL
614 && type & (PURPLE_MEDIA_RECV_VIDEO | 617 && type & (PURPLE_MEDIA_RECV_VIDEO |
615 PURPLE_MEDIA_RECV_AUDIO)) { 618 PURPLE_MEDIA_RECV_AUDIO)) {
616 recv_widget = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 619 recv_widget = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
740 gtkmedia->priv->timeout_id = g_timeout_add(500, 743 gtkmedia->priv->timeout_id = g_timeout_add(500,
741 (GSourceFunc)pidgin_request_timeout_cb, 744 (GSourceFunc)pidgin_request_timeout_cb,
742 gtkmedia); 745 gtkmedia);
743 } 746 }
744 747
748 /* set the window icon according to the type */
749 if (type & PURPLE_MEDIA_VIDEO) {
750 icon = gtk_widget_render_icon(GTK_WIDGET(gtkmedia),
751 PIDGIN_STOCK_TOOLBAR_VIDEO_CALL,
752 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_LARGE), NULL);
753 } else if (type & PURPLE_MEDIA_AUDIO) {
754 icon = gtk_widget_render_icon(GTK_WIDGET(gtkmedia),
755 PIDGIN_STOCK_TOOLBAR_AUDIO_CALL,
756 gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_LARGE), NULL);
757 }
758
759 if (icon) {
760 gtk_window_set_icon(GTK_WINDOW(gtkmedia), icon);
761 g_object_unref(icon);
762 }
763
745 gtk_widget_show(gtkmedia->priv->display); 764 gtk_widget_show(gtkmedia->priv->display);
746 } 765 }
747 766
748 static void 767 static void
749 pidgin_media_state_changed_cb(PurpleMedia *media, PurpleMediaState state, 768 pidgin_media_state_changed_cb(PurpleMedia *media, PurpleMediaState state,
770 { 789 {
771 if (type == PURPLE_MEDIA_INFO_REJECT) { 790 if (type == PURPLE_MEDIA_INFO_REJECT) {
772 pidgin_media_emit_message(gtkmedia, 791 pidgin_media_emit_message(gtkmedia,
773 _("You have rejected the call.")); 792 _("You have rejected the call."));
774 } else if (type == PURPLE_MEDIA_INFO_ACCEPT) { 793 } else if (type == PURPLE_MEDIA_INFO_ACCEPT) {
794 if (local == TRUE)
795 purple_request_close_with_handle(gtkmedia);
775 pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED); 796 pidgin_media_set_state(gtkmedia, PIDGIN_MEDIA_ACCEPTED);
776 pidgin_media_emit_message(gtkmedia, _("Call in progress.")); 797 pidgin_media_emit_message(gtkmedia, _("Call in progress."));
777 gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar), 798 gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar),
778 0, _("Call in progress.")); 799 0, _("Call in progress."));
779 gtk_widget_show(GTK_WIDGET(gtkmedia)); 800 gtk_widget_show(GTK_WIDGET(gtkmedia));