Mercurial > pidgin.yaz
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)); |