Mercurial > pidgin.yaz
diff pidgin/gtkmedia.c @ 25713:4eae2d40f11b
Added a mute button for the local microphone.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Wed, 23 Jul 2008 22:34:22 +0000 |
parents | 1c68f78414b7 |
children | 551a462b346a |
line wrap: on
line diff
--- a/pidgin/gtkmedia.c Wed Jul 23 20:10:18 2008 +0000 +++ b/pidgin/gtkmedia.c Wed Jul 23 22:34:22 2008 +0000 @@ -58,6 +58,7 @@ GtkWidget *accept; GtkWidget *reject; GtkWidget *hangup; + GtkWidget *mute; GtkWidget *send_progress; GtkWidget *recv_progress; @@ -157,6 +158,12 @@ g_type_class_add_private(klass, sizeof(PidginMediaPrivate)); } +static void +pidgin_media_mute_toggled(GtkToggleButton *toggle, PidginMedia *media) +{ + purple_media_mute(media->priv->media, + gtk_toggle_button_get_active(toggle)); +} static void pidgin_media_init (PidginMedia *media) @@ -166,11 +173,16 @@ media->priv->hangup = gtk_button_new_with_label("Hangup"); media->priv->accept = gtk_button_new_with_label("Accept"); media->priv->reject = gtk_button_new_with_label("Reject"); + media->priv->mute = gtk_toggle_button_new_with_label("Mute"); + + g_signal_connect(media->priv->mute, "toggled", + G_CALLBACK(pidgin_media_mute_toggled), media); gtk_box_pack_start(GTK_BOX(media), media->priv->calling, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(media), media->priv->hangup, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(media), media->priv->accept, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(media), media->priv->reject, FALSE, FALSE, 0); + gtk_box_pack_end(GTK_BOX(media), media->priv->mute, FALSE, FALSE, 0); gtk_widget_show_all(media->priv->accept); gtk_widget_show_all(media->priv->reject); @@ -572,18 +584,21 @@ gtk_widget_hide(gtkmedia->priv->accept); gtk_widget_hide(gtkmedia->priv->reject); gtk_widget_show(gtkmedia->priv->hangup); + gtk_widget_hide(gtkmedia->priv->mute); break; case PIDGIN_MEDIA_REQUESTED: gtk_widget_hide(gtkmedia->priv->calling); gtk_widget_show(gtkmedia->priv->accept); gtk_widget_show(gtkmedia->priv->reject); gtk_widget_hide(gtkmedia->priv->hangup); + gtk_widget_hide(gtkmedia->priv->mute); break; case PIDGIN_MEDIA_ACCEPTED: gtk_widget_show(gtkmedia->priv->hangup); gtk_widget_hide(gtkmedia->priv->calling); gtk_widget_hide(gtkmedia->priv->accept); gtk_widget_hide(gtkmedia->priv->reject); + gtk_widget_show(gtkmedia->priv->mute); break; default: break;