diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-22 21:55:25 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-22 21:55:25 +0000 |
commit | 2daa616e02aeaf40d898b0c61e4993c3952235e5 (patch) | |
tree | 0790c4f8898b8fd047f8bf951973203b518373ce /gtk2_ardour | |
parent | 7b8a76de25e55a585b0f4375c155aa0c2ad98da2 (diff) |
add scroll event handling to the vbap panner GUI; clamp vbap pos+width values (but not via clamp_*())
git-svn-id: svn://localhost/ardour2/branches/3.0@8932 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/audio_time_axis.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/panner2d.cc | 18 | ||||
-rw-r--r-- | gtk2_ardour/panner2d.h | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/gtk2_ardour/audio_time_axis.cc b/gtk2_ardour/audio_time_axis.cc index c516985671..f43d3739cc 100644 --- a/gtk2_ardour/audio_time_axis.cc +++ b/gtk2_ardour/audio_time_axis.cc @@ -225,8 +225,6 @@ AudioTimeAxisView::ensure_pan_views (bool show) set<Evoral::Parameter> params = _route->panner()->what_can_be_automated(); set<Evoral::Parameter>::iterator p; - cerr << _route->name() << " the panner has " << params.size() << " params that can be automated\n"; - for (p = params.begin(); p != params.end(); ++p) { boost::shared_ptr<ARDOUR::AutomationControl> pan_control = _route->pannable()->automation_control(*p); diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc index a953105c1a..7d29e5caea 100644 --- a/gtk2_ardour/panner2d.cc +++ b/gtk2_ardour/panner2d.cc @@ -285,6 +285,7 @@ Panner2d::on_motion_notify_event (GdkEventMotion *ev) return handle_motion (x, y, state); } + bool Panner2d::on_expose_event (GdkEventExpose *event) { @@ -536,6 +537,23 @@ Panner2d::handle_motion (gint evx, gint evy, GdkModifierType state) return true; } +bool +Panner2d::on_scroll_event (GdkEventScroll* ev) +{ + switch (ev->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_RIGHT: + panner->set_position (panner->pannable()->pan_azimuth_control->get_value() - 1.0/360.0); + break; + + case GDK_SCROLL_DOWN: + case GDK_SCROLL_LEFT: + panner->set_position (panner->pannable()->pan_azimuth_control->get_value() + 1.0/360.0); + break; + } + return true; +} + void Panner2d::cart_to_gtk (CartesianVector& c) const { diff --git a/gtk2_ardour/panner2d.h b/gtk2_ardour/panner2d.h index 5b2c936b6a..1672edef90 100644 --- a/gtk2_ardour/panner2d.h +++ b/gtk2_ardour/panner2d.h @@ -77,6 +77,7 @@ class Panner2d : public Gtk::DrawingArea bool on_button_press_event (GdkEventButton *); bool on_button_release_event (GdkEventButton *); bool on_motion_notify_event (GdkEventMotion *); + bool on_scroll_event (GdkEventScroll *); void on_size_allocate (Gtk::Allocation& alloc); private: |