381 const wxMouseEvent &
event = evt.
event;
385 const auto steps = evt.
steps;
387 if (event.ShiftDown()
394 window.TP_ScrollWindow(
395 viewInfo.OffsetTimeByPixels(
396 viewInfo.PositionToTime(0), 50.0 * -steps));
398 else if (event.CmdDown())
405 double ZoomFactor = pow(2.0, steps);
410 p->ZoomInByFactor( ZoomFactor );
412 p->ZoomOutByFactor( ZoomFactor );
417 int trackLeftEdge = viewInfo.GetLeftOffset();
422 double mouse_h = viewInfo.PositionToTime(event.m_x, trackLeftEdge);
426 center_h = viewInfo.h +
427 (viewInfo.GetScreenEndTime() - viewInfo.h) / 2.0;
429 else if( steps <= 0 )
432 else if((viewInfo.selectedRegion.t1() - viewInfo.selectedRegion.t0() ) < 0.00001 )
435 else if( mouse_h < viewInfo.selectedRegion.t0() )
436 center_h = viewInfo.selectedRegion.t0();
438 else if( mouse_h > viewInfo.selectedRegion.t1() )
439 center_h = viewInfo.selectedRegion.t1();
444 xx = viewInfo.TimeToPosition(center_h, trackLeftEdge);
457 if (center_h > audioEndTime)
459 center_h = audioEndTime;
463 wxCoord xTrackEnd = viewInfo.TimeToPosition( audioEndTime );
464 viewInfo.ZoomBy(pow(2.0, steps));
466 double new_center_h = viewInfo.PositionToTime(xx, trackLeftEdge);
467 viewInfo.h += (center_h - new_center_h);
471 if( viewInfo.h > audioEndTime )
472 viewInfo.h += audioEndTime - viewInfo.PositionToTime( xTrackEnd );
479 #ifdef EXPERIMENTAL_SCRUBBING_SCROLL_WHEEL
482 evt.
event.Skip(
false);
490 lines = floor(lines);
491 auto didSomething = window.TP_ScrollUpDown((
int)-lines);