X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline.h;h=e8becf906e4ee61c6a26298cc49fd34965a44c9a;hb=7bc94f069f011a1a7e8554aa5cc88167e409c1f8;hp=b3ee77fff84644a14eb2158ab38fd64778b19a6d;hpb=ad10aea1d685e67e0e639f6303fc9c8f8f1f945c;p=dcpomatic.git diff --git a/src/wx/timeline.h b/src/wx/timeline.h index b3ee77fff..e8becf906 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2013 Carl Hetherington + Copyright (C) 2013-2015 Carl Hetherington This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,24 +17,26 @@ */ +#include "content_menu.h" +#include "timeline_content_view.h" +#include "lib/util.h" +#include "lib/rect.h" +#include "lib/film.h" +#include #include #include #include -#include -#include "lib/util.h" -#include "lib/rect.h" -#include "content_menu.h" class Film; -class View; -class ContentView; -class FilmEditor; -class DCPTimeAxisView; +class ContentPanel; +class TimelineView; +class TimelineTimeAxisView; +class TimelineReelsView; -class DCPTimeline : public wxPanel +class Timeline : public wxPanel { public: - DCPTimeline (wxWindow *, FilmEditor *, boost::shared_ptr); + Timeline (wxWindow *, ContentPanel *, boost::shared_ptr); boost::shared_ptr film () const; @@ -52,8 +54,8 @@ public: return 48; } - double pixels_per_time_unit () const { - return _pixels_per_time_unit; + boost::optional pixels_per_second () const { + return _pixels_per_second; } Position tracks_position () const { @@ -62,7 +64,7 @@ public: int tracks () const; - void setup_pixels_per_time_unit (); + void setup_pixels_per_second (); void set_snap (bool s) { _snap = s; @@ -78,32 +80,34 @@ private: void left_up (wxMouseEvent &); void right_down (wxMouseEvent &); void mouse_moved (wxMouseEvent &); - void playlist_changed (); + void film_changed (Film::Property); + void film_content_changed (int); void resized (); void assign_tracks (); void set_position_from_event (wxMouseEvent &); void clear_selection (); + void recreate_views (); - typedef std::vector > ViewList; - typedef std::vector > ContentViewList; - - boost::shared_ptr event_to_view (wxMouseEvent &); - ContentViewList selected_views () const; + boost::shared_ptr event_to_view (wxMouseEvent &); + TimelineContentViewList selected_views () const; ContentList selected_content () const; + void maybe_snap (DCPTime a, DCPTime b, boost::optional& nearest_distance) const; - FilmEditor* _film_editor; + ContentPanel* _content_panel; boost::weak_ptr _film; - ViewList _views; - boost::shared_ptr _time_axis_view; + TimelineViewList _views; + boost::shared_ptr _time_axis_view; + boost::shared_ptr _reels_view; int _tracks; - double _pixels_per_time_unit; + boost::optional _pixels_per_second; bool _left_down; wxPoint _down_point; - boost::shared_ptr _down_view; + boost::shared_ptr _down_view; DCPTime _down_view_position; bool _first_move; ContentMenu _menu; bool _snap; - boost::signals2::scoped_connection _playlist_connection; + boost::signals2::scoped_connection _film_changed_connection; + boost::signals2::scoped_connection _film_content_changed_connection; };