void force_redraw (dcpomatic::Rect<int> const &);
- int width () const {
- return GetVirtualSize().GetWidth ();
- }
+ int width () const;
- int track_height () const {
- return _track_height;
+ int pixels_per_track () const {
+ return _pixels_per_track;
}
boost::optional<double> pixels_per_second () const {
enum Tool {
SELECT,
- ZOOM
+ ZOOM,
+ ZOOM_ALL,
+ SNAP,
+ SEQUENCE
};
- void set_tool (Tool t) {
- _tool = t;
- }
+ void tool_clicked (Tool t);
+
+ int tracks_y_offset () const;
private:
void paint_labels ();
void clear_selection ();
void recreate_views ();
void setup_scrollbars ();
+ void scrolled (wxScrollWinEvent& ev);
+ void set_pixels_per_second (double pps);
+ void set_pixels_per_track (int h);
+ void zoom_all ();
boost::shared_ptr<TimelineView> event_to_view (wxMouseEvent &);
TimelineContentViewList selected_views () const;
ContentList selected_content () const;
void maybe_snap (DCPTime a, DCPTime b, boost::optional<DCPTime>& nearest_distance) const;
- wxPanel* _labels_panel;
+ wxScrolledCanvas* _labels_canvas;
wxScrolledCanvas* _main_canvas;
ContentPanel* _content_panel;
boost::weak_ptr<Film> _film;
Tool _tool;
int _x_scroll_rate;
int _y_scroll_rate;
- int _track_height;
+ int _pixels_per_track;
+ bool _first_resize;
+
+ static double const _minimum_pixels_per_second;
+ static int const _minimum_pixels_per_track;
boost::signals2::scoped_connection _film_changed_connection;
boost::signals2::scoped_connection _film_content_changed_connection;