From 4c3acd35e5d406846c6f9d0596ce4f834e373bd8 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Mon, 16 Mar 2009 23:18:40 +0000 Subject: Wire up the default toggle button (replaces the old menu) --- src/devicewidget.cc | 8 ++++++++ src/devicewidget.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/devicewidget.cc b/src/devicewidget.cc index a235baf..29b3599 100644 --- a/src/devicewidget.cc +++ b/src/devicewidget.cc @@ -27,8 +27,10 @@ DeviceWidget::DeviceWidget(BaseObjectType* cobject, const Glib::RefPtrget_widget("lockToggleButton", lockToggleButton); x->get_widget("muteToggleButton", muteToggleButton); + x->get_widget("defaultToggleButton", defaultToggleButton); muteToggleButton->signal_clicked().connect(sigc::mem_fun(*this, &DeviceWidget::onMuteToggleButton)); + defaultToggleButton->signal_clicked().connect(sigc::mem_fun(*this, &DeviceWidget::onDefaultToggleButton)); for (unsigned i = 0; i < PA_CHANNELS_MAX; i++) channelWidgets[i] = NULL; @@ -88,6 +90,12 @@ void DeviceWidget::onMuteToggleButton() { channelWidgets[i]->set_sensitive(!muteToggleButton->get_active()); } +void DeviceWidget::onDefaultToggleButton() { + /* Prevent the button being untoggled */ + if (defaultToggleButton->get_active()) + defaultToggleButton->set_sensitive(false); +} + bool DeviceWidget::timeoutEvent() { executeVolumeUpdate(); return false; diff --git a/src/devicewidget.h b/src/devicewidget.h index ce3c55f..fcf4e91 100644 --- a/src/devicewidget.h +++ b/src/devicewidget.h @@ -35,7 +35,7 @@ public: void setVolume(const pa_cvolume &volume, bool force = false); virtual void updateChannelVolume(int channel, pa_volume_t v); - Gtk::ToggleButton *lockToggleButton, *muteToggleButton; + Gtk::ToggleButton *lockToggleButton, *muteToggleButton, *defaultToggleButton; pa_channel_map channelMap; pa_cvolume volume; @@ -43,6 +43,7 @@ public: ChannelWidget *channelWidgets[PA_CHANNELS_MAX]; virtual void onMuteToggleButton(); + virtual void onDefaultToggleButton(); sigc::connection timeoutConnection; -- cgit