Remove old Connect() wxWidgets API and use Bind().
[dcpomatic.git] / src / wx / timeline.h
index 5c25a6426c97306f9cd2895fd6c43b253ad104cc..db33dbbdc70e161003eaf9df40ebbaf46c64eefa 100644 (file)
@@ -21,7 +21,9 @@
 #include <boost/weak_ptr.hpp>
 #include <boost/signals2.hpp>
 #include <wx/wx.h>
-#include "util.h"
+#include "lib/util.h"
+#include "lib/rect.h"
+#include "content_menu.h"
 
 class Film;
 class View;
@@ -36,7 +38,7 @@ public:
 
        boost::shared_ptr<const Film> film () const;
 
-       void force_redraw (dcpomatic::Rect const &);
+       void force_redraw (dcpomatic::Rect<int> const &);
 
        int x_offset () const {
                return 8;
@@ -54,25 +56,36 @@ public:
                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;
 
+       void setup_pixels_per_time_unit ();
+
 private:
-       void paint (wxPaintEvent &);
+       void paint ();
        void left_down (wxMouseEvent &);
-       void mouse_moved (wxMouseEvent &);
        void left_up (wxMouseEvent &);
+       void right_down (wxMouseEvent &);
+       void mouse_moved (wxMouseEvent &);
        void playlist_changed ();
-       void setup_pixels_per_time_unit ();
-       void resized (wxSizeEvent &);
+       void resized ();
        void assign_tracks ();
+       void set_start_from_event (wxMouseEvent &);
+       void clear_selection ();
+
+       typedef std::vector<boost::shared_ptr<View> > ViewList;
+       typedef std::vector<boost::shared_ptr<ContentView> > ContentViewList;
+
+       boost::shared_ptr<View> event_to_view (wxMouseEvent &);
+       ContentViewList selected_views () const;
+       ContentList selected_content () const;
 
        FilmEditor* _film_editor;
        boost::weak_ptr<Film> _film;
-       std::list<boost::shared_ptr<View> > _views;
+       ViewList _views;
        boost::shared_ptr<TimeAxisView> _time_axis_view;
        int _tracks;
        double _pixels_per_time_unit;
@@ -81,6 +94,7 @@ private:
        boost::shared_ptr<ContentView> _down_view;
        Time _down_view_start;
        bool _first_move;
+       ContentMenu _menu;
 
        boost::signals2::scoped_connection _playlist_connection;
 };