X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline.h;h=99094788f1aded6593143e12113be47f3c7d3282;hb=3d9fdcf7e6a5d775a2688a071b69264b1a6971c7;hp=48aebc6372821de90468597331c0b7668ef2d102;hpb=454a961e1a03f60cf05040b832c4f8f01b481fa7;p=dcpomatic.git diff --git a/src/wx/timeline.h b/src/wx/timeline.h index 48aebc637..99094788f 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -19,19 +19,77 @@ #include #include +#include #include +#include "lib/util.h" +#include "lib/rect.h" -class Playlist; +class Film; +class View; +class ContentView; +class FilmEditor; +class TimeAxisView; class Timeline : public wxPanel { public: - Timeline (wxWindow *, boost::shared_ptr); + Timeline (wxWindow *, FilmEditor *, boost::shared_ptr); + + boost::shared_ptr film () const; + + void force_redraw (dcpomatic::Rect const &); + + int x_offset () const { + return 8; + } + + int width () const { + return GetSize().GetWidth (); + } + + int track_height () const { + return 48; + } + + double pixels_per_time_unit () const { + return _pixels_per_time_unit; + } + + Position tracks_position () const { + return Position (8, 8); + } + + int tracks () const; private: void paint (wxPaintEvent &); + void left_down (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::shared_ptr event_to_view (wxMouseEvent &); + std::list > selected () const; + + FilmEditor* _film_editor; + boost::weak_ptr _film; + std::list > _views; + boost::shared_ptr _time_axis_view; + int _tracks; + double _pixels_per_time_unit; + bool _left_down; + wxPoint _down_point; + boost::shared_ptr _down_view; + Time _down_view_start; + bool _first_move; + wxMenu* _menu; - static int const _track_height; - - boost::weak_ptr _playlist; + boost::signals2::scoped_connection _playlist_connection; };