-/* -*- 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;
}
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;
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;
};