- GdkPixmap* get_pixmap (GdkDrawable *);
- void render_region (RegionView*, cairo_t*, nframes_t, double) const;
- void editor_view (std::pair<double, double> *, std::pair<double, double> *) const;
-
- Editor* _editor; ///< our editor
- ARDOUR::Session* _session; ///< our session
- GdkPixmap* _pixmap; ///< pixmap containing a rendering of the region views, or 0
- bool _regions_dirty; ///< true if _pixmap requires re-rendering, otherwise false
- int _width; ///< pixmap width
- int _height; ///< pixmap height
- double _pixels_per_frame; ///< pixels per frame for the x axis of the pixmap
- double _vertical_scale;
- bool _dragging;
+ void render_region (RegionView*, cairo_t*, double) const;
+ void get_editor (std::pair<double, double> *, std::pair<double, double> *) const;
+ void set_editor (std::pair<double, double> const &, std::pair<double, double> const &);
+ void playhead_position_changed (nframes64_t);
+
+ nframes_t _start; ///< start frame of the overview
+ nframes_t _end; ///< end frame of the overview
+
+ /** fraction of the session length by which the overview size should extend past the start and end markers */
+ double _overhang_fraction;
+
+ double _x_scale; ///< pixels per frame for the x axis of the pixmap
+ double _y_scale;
+ double _last_playhead;
+
+ std::pair<double, double> _start_editor_x;
+ std::pair<double, double> _start_editor_y;
+ double _start_mouse_x;
+ double _start_mouse_y;
+ enum {
+ IN_VIEWBOX,
+ BELOW_OR_ABOVE_VIEWBOX,
+ TO_LEFT_OR_RIGHT_OF_VIEWBOX
+ } _start_position;
+
+ bool _move_dragging;