mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 16:24:57 +01:00
Add scroll-wheel support to RT Analyzer
This commit is contained in:
parent
24e8784719
commit
635fcdc206
2 changed files with 33 additions and 0 deletions
|
|
@ -61,6 +61,7 @@ RTAWindow::RTAWindow ()
|
||||||
_darea.signal_button_press_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_button_press_event));
|
_darea.signal_button_press_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_button_press_event));
|
||||||
_darea.signal_button_release_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_button_release_event));
|
_darea.signal_button_release_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_button_release_event));
|
||||||
_darea.signal_motion_notify_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_motion_notify_event));
|
_darea.signal_motion_notify_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_motion_notify_event));
|
||||||
|
_darea.signal_scroll_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_scroll_event), false);
|
||||||
_darea.signal_leave_notify_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_leave_notify_event), false);
|
_darea.signal_leave_notify_event ().connect (sigc::mem_fun (*this, &RTAWindow::darea_leave_notify_event), false);
|
||||||
|
|
||||||
_speed_strings.push_back (_("Rapid"));
|
_speed_strings.push_back (_("Rapid"));
|
||||||
|
|
@ -432,6 +433,37 @@ RTAWindow::darea_motion_notify_event (GdkEventMotion* ev)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
RTAWindow::darea_scroll_event (GdkEventScroll* ev)
|
||||||
|
{
|
||||||
|
if (_dragging_dB != DragNone || !_hovering_dB) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
float new_dB = _min_dB;
|
||||||
|
switch (ev->direction) {
|
||||||
|
case GDK_SCROLL_UP:
|
||||||
|
new_dB += 1;
|
||||||
|
break;
|
||||||
|
case GDK_SCROLL_DOWN:
|
||||||
|
new_dB -= 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/* compare to DragRange */
|
||||||
|
float min_dB = rintf (std::max (_dB_min, std::min (new_dB, _max_dB - _dB_span)));
|
||||||
|
float dbd = (min_dB - _min_dB);
|
||||||
|
float max_dB = rintf (std::min (_dB_min + _dB_range, std::max (_max_dB + dbd, _min_dB + _dB_span)));
|
||||||
|
dbd = std::min<float> (dbd, max_dB - _max_dB);
|
||||||
|
_max_dB += dbd;
|
||||||
|
_min_dB += dbd;
|
||||||
|
|
||||||
|
_grid.clear ();
|
||||||
|
_darea.queue_draw ();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RTAWindow::darea_size_allocate (Gtk::Allocation&)
|
RTAWindow::darea_size_allocate (Gtk::Allocation&)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ private:
|
||||||
bool darea_button_press_event (GdkEventButton*);
|
bool darea_button_press_event (GdkEventButton*);
|
||||||
bool darea_button_release_event (GdkEventButton*);
|
bool darea_button_release_event (GdkEventButton*);
|
||||||
bool darea_motion_notify_event (GdkEventMotion*);
|
bool darea_motion_notify_event (GdkEventMotion*);
|
||||||
|
bool darea_scroll_event (GdkEventScroll*);
|
||||||
bool darea_leave_notify_event (GdkEventCrossing*);
|
bool darea_leave_notify_event (GdkEventCrossing*);
|
||||||
|
|
||||||
void set_rta_speed (ARDOUR::DSP::PerceptualAnalyzer::Speed);
|
void set_rta_speed (ARDOUR::DSP::PerceptualAnalyzer::Speed);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue