Merge master.
[dcpomatic.git] / src / wx / timeline.h
index db33dbbdc70e161003eaf9df40ebbaf46c64eefa..82d10afde6cc8a8337c910b8b9506c1461c96585 100644 (file)
 class Film;
 class View;
 class ContentView;
-class FilmEditor;
+class ContentPanel;
 class TimeAxisView;
 
 class Timeline : public wxPanel
 {
 public:
-       Timeline (wxWindow *, FilmEditor *, boost::shared_ptr<Film>);
+       Timeline (wxWindow *, ContentPanel *, boost::shared_ptr<Film>);
 
        boost::shared_ptr<const Film> film () const;
 
@@ -52,8 +52,8 @@ public:
                return 48;
        }
 
-       double pixels_per_time_unit () const {
-               return _pixels_per_time_unit;
+       boost::optional<double> pixels_per_second () const {
+               return _pixels_per_second;
        }
 
        Position<int> tracks_position () const {
@@ -62,7 +62,15 @@ public:
 
        int tracks () const;
 
-       void setup_pixels_per_time_unit ();
+       void setup_pixels_per_second ();
+
+       void set_snap (bool s) {
+               _snap = s;
+       }
+
+       bool snap () const {
+               return _snap;
+       }
 
 private:
        void paint ();
@@ -71,9 +79,10 @@ private:
        void right_down (wxMouseEvent &);
        void mouse_moved (wxMouseEvent &);
        void playlist_changed ();
+       void playlist_content_changed (int);
        void resized ();
        void assign_tracks ();
-       void set_start_from_event (wxMouseEvent &);
+       void set_position_from_event (wxMouseEvent &);
        void clear_selection ();
 
        typedef std::vector<boost::shared_ptr<View> > ViewList;
@@ -83,18 +92,20 @@ private:
        ContentViewList selected_views () const;
        ContentList selected_content () const;
 
-       FilmEditor* _film_editor;
+       ContentPanel* _content_panel;
        boost::weak_ptr<Film> _film;
        ViewList _views;
        boost::shared_ptr<TimeAxisView> _time_axis_view;
        int _tracks;
-       double _pixels_per_time_unit;
+       boost::optional<double> _pixels_per_second;
        bool _left_down;
        wxPoint _down_point;
        boost::shared_ptr<ContentView> _down_view;
-       Time _down_view_start;
+       DCPTime _down_view_position;
        bool _first_move;
        ContentMenu _menu;
+       bool _snap;
 
-       boost::signals2::scoped_connection _playlist_connection;
+       boost::signals2::scoped_connection _playlist_changed_connection;
+       boost::signals2::scoped_connection _playlist_content_changed_connection;
 };