From 692987ee2e4adf52722bbe47db616af7d9959065 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 19 Mar 2010 21:40:23 +0000 Subject: [PATCH] shift-click MotionFeedback widgets to reset to default, and monitor section SiP cut now does something (but doesn't pay attention to changes from elsewhere yet git-svn-id: svn://localhost/ardour2/branches/3.0@6778 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/monitor_section.cc | 10 ++++++++-- gtk2_ardour/monitor_section.h | 1 + libs/gtkmm2ext/gtkmm2ext/motionfeedback.h | 11 ++++++----- libs/gtkmm2ext/motionfeedback.cc | 7 +++++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/monitor_section.cc b/gtk2_ardour/monitor_section.cc index 5f779c6422..32a0247e99 100644 --- a/gtk2_ardour/monitor_section.cc +++ b/gtk2_ardour/monitor_section.cc @@ -62,7 +62,7 @@ MonitorSection::MonitorSection (Session* s) , dim_control (0) , solo_boost_adjustment (1.0, 1.0, 2.0, 0.01, 0.1) , solo_boost_control (0) - , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1) + , solo_cut_adjustment (0.0, 0.0, 1.0, 0.01, 0.1) , solo_cut_control (0) , solo_in_place_button (solo_model_group, _("SiP")) , afl_button (solo_model_group, _("AFL")) @@ -164,7 +164,7 @@ MonitorSection::MonitorSection (Session* s) /* Solo (SiP) cut */ solo_cut_control = new VolumeController (little_knob_pixbuf, &solo_cut_adjustment, false, 30, 30); - // solo_cut_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &MonitorSection::solo_cut_changed)); + solo_cut_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &MonitorSection::solo_cut_changed)); spin_label = manage (new Label (_("SiP Cut"))); spin_packer = manage (new VBox); @@ -865,3 +865,9 @@ MonitorSection::cancel_solo (GdkEventButton* ev) return true; } + +void +MonitorSection::solo_cut_changed () +{ + Config->set_solo_mute_gain (slider_position_to_gain (solo_cut_adjustment.get_value())); +} diff --git a/gtk2_ardour/monitor_section.h b/gtk2_ardour/monitor_section.h index 8af84988f1..ca6b546f3f 100644 --- a/gtk2_ardour/monitor_section.h +++ b/gtk2_ardour/monitor_section.h @@ -116,4 +116,5 @@ class MonitorSection : public RouteUI void solo_blink (bool); bool cancel_solo (GdkEventButton*); + void solo_cut_changed (); }; diff --git a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h index 23ad122d85..a3a06d39d3 100644 --- a/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h +++ b/libs/gtkmm2ext/gtkmm2ext/motionfeedback.h @@ -84,12 +84,13 @@ class MotionFeedback : public Gtk::VBox Gtk::SpinButton* value; Gtk::Adjustment* adjustment; Glib::RefPtr pixbuf; - - gfloat step_inc; - gfloat page_inc; + + double default_value; + double step_inc; + double page_inc; bool grab_is_fine; - gdouble grabbed_y; - gdouble grabbed_x; + double grabbed_y; + double grabbed_x; bool i_own_my_adjustment; int subwidth; int subheight; diff --git a/libs/gtkmm2ext/motionfeedback.cc b/libs/gtkmm2ext/motionfeedback.cc index 8cdaac067c..19ce16d815 100644 --- a/libs/gtkmm2ext/motionfeedback.cc +++ b/libs/gtkmm2ext/motionfeedback.cc @@ -54,6 +54,8 @@ MotionFeedback::MotionFeedback (Glib::RefPtr pix, set_adjustment (adj); } + default_value = adjustment->get_value(); + HBox* hpacker = manage (new HBox); hpacker->pack_start (pixwin, true, false); hpacker->show (); @@ -168,6 +170,11 @@ MotionFeedback::pixwin_button_release_event (GdkEventButton *ev) (GTK_WIDGET(pixwin.gobj())); } } + if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { + /* shift click back to the default */ + adjustment->set_value (default_value); + return true; + } break; case 3: