Merge branch '1.0' of /home/carl/git/dvdomatic into 1.0
[dcpomatic.git] / src / wx / timeline.h
index 5d7960be5ff4a000aa12c5f1178a0602f4955240..3e984bfe1dcab4512c21928bb40104c2e322ee83 100644 (file)
@@ -1,5 +1,3 @@
-/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */
-
 /*
     Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
 
 
 #include <boost/shared_ptr.hpp>
 #include <boost/weak_ptr.hpp>
+#include <boost/signals2.hpp>
 #include <wx/wx.h>
 #include "util.h"
+#include "rect.h"
 
 class Film;
 class View;
+class ContentView;
+class FilmEditor;
+class TimeAxisView;
 
 class Timeline : public wxPanel
 {
 public:
-       Timeline (wxWindow *, boost::shared_ptr<const Film>);
+       Timeline (wxWindow *, FilmEditor *, boost::shared_ptr<Film>);
 
        boost::shared_ptr<const Film> film () const;
 
-       void force_redraw (Rect const &);
+       void force_redraw (dcpomatic::Rect<int> const &);
 
        int x_offset () const {
                return 8;
@@ -45,15 +48,15 @@ public:
        }
 
        int track_height () const {
-               return 64;
+               return 48;
        }
 
        double pixels_per_time_unit () const {
                return _pixels_per_time_unit;
        }
 
-       Position tracks_position () const {
-               return Position (8, 8);
+       Position<int> tracks_position () const {
+               return Position<int> (8, 8);
        }
 
        int tracks () const;
@@ -61,11 +64,24 @@ public:
 private:
        void paint (wxPaintEvent &);
        void left_down (wxMouseEvent &);
+       void mouse_moved (wxMouseEvent &);
+       void left_up (wxMouseEvent &);
        void playlist_changed ();
        void setup_pixels_per_time_unit ();
        void resized (wxSizeEvent &);
+       void assign_tracks ();
 
-       boost::weak_ptr<const Film> _film;
+       FilmEditor* _film_editor;
+       boost::weak_ptr<Film> _film;
        std::list<boost::shared_ptr<View> > _views;
+       boost::shared_ptr<TimeAxisView> _time_axis_view;
+       int _tracks;
        double _pixels_per_time_unit;
+       bool _left_down;
+       wxPoint _down_point;
+       boost::shared_ptr<ContentView> _down_view;
+       Time _down_view_start;
+       bool _first_move;
+
+       boost::signals2::scoped_connection _playlist_connection;
 };