Editor Summary: implement summary_zoom_step() to lessen redundant code.
authorBen Loftis <ben@harrisonconsoles.com>
Wed, 19 Jul 2017 13:12:25 +0000 (08:12 -0500)
committerBen Loftis <ben@harrisonconsoles.com>
Wed, 19 Jul 2017 13:12:25 +0000 (08:12 -0500)
gtk2_ardour/editor_summary.cc
gtk2_ardour/editor_summary.h

index da0174f10367bc6266f9964e7d70b763f6f8e581..3296ce0910e7715913e945fbb8c0a1e5d25faec6 100644 (file)
@@ -544,6 +544,25 @@ EditorSummary::set_cursor (Position p)
        }
 }
 
+void
+EditorSummary::summary_zoom_step ( int steps /* negative steps to zoom "out" , positive steps to zoom "in" */  )
+{
+       pair<double, double> xn;
+
+       get_editor (&xn);
+//     {
+//             xn.first = (_editor->leftmost_sample () - _start) * _x_scale;
+//             xn.second = xn.first + _editor->current_page_samples() * _x_scale;
+//     }
+
+       xn.first += steps;
+       xn.second -= steps;
+
+       set_overlays_dirty ();
+       set_editor_x (xn);
+}
+
+
 bool
 EditorSummary::on_motion_notify_event (GdkEventMotion* ev)
 {
@@ -570,15 +589,8 @@ EditorSummary::on_motion_notify_event (GdkEventMotion* ev)
 
                double const dy = ev->y - _zoom_last_y;
                
-               pair<double, double> xn;
-               get_editor (&xn);
+               summary_zoom_step( dy );
 
-               xn.first -= dy;
-               xn.second += dy;
-       
-               set_overlays_dirty ();
-               set_editor_x (xn);
-       
                _zoom_last_y = ev->y;
                        
        } else if (_zoom_trim_dragging) {
@@ -675,29 +687,15 @@ EditorSummary::on_scroll_event (GdkEventScroll* ev)
 
        switch (ev->direction) {
                case GDK_SCROLL_UP: {
-                       //ToDo:  use function summary_zoom_in/out
                        
-                       pair<double, double> xn;
-                       get_editor (&xn);
-
-                       xn.first += 2;
-                       xn.second -= 2;
-               
-                       set_overlays_dirty ();
-                       set_editor_x (xn);
+                       summary_zoom_step( -2 );
                
                        return true;
                } break;
                
                case GDK_SCROLL_DOWN: {
-                       pair<double, double> xn;
-                       get_editor (&xn);
-
-                       xn.first -= 2;
-                       xn.second += 2;
-               
-                       set_overlays_dirty ();
-                       set_editor_x (xn);
+                       
+                       summary_zoom_step( 2 );
                
                        return true;
                } break;
index d237746b9e030c80b9d5704f4d34b2b59d1da764..0a9a5b960ce193cfc3a407ebeab8486e9fef195e 100644 (file)
@@ -83,6 +83,8 @@ private:
        framepos_t position_to_playhead_frame_to_position (double pos) const;
        void set_overlays_dirty (int, int, int, int);
 
+       void summary_zoom_step (  int steps );
+
        framepos_t _start; ///< start frame of the overview
        framepos_t _end; ///< end frame of the overview