-/* -*- 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 "lib/util.h"
+#include "lib/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 right_down (wxMouseEvent &);
+ void mouse_moved (wxMouseEvent &);
void playlist_changed ();
void setup_pixels_per_time_unit ();
void resized (wxSizeEvent &);
+ void assign_tracks ();
+ void set_start_from_event (wxMouseEvent &);
+ void clear_selection ();
+ void repeat (wxCommandEvent &);
- boost::weak_ptr<const Film> _film;
+ boost::shared_ptr<View> event_to_view (wxMouseEvent &);
+ std::list<boost::shared_ptr<ContentView> > selected () const;
+
+ 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;
+ wxMenu* _menu;
+
+ boost::signals2::scoped_connection _playlist_connection;
};