X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline.h;h=519f00afbd1abb9a6efe26dfa7efab5d67e4240c;hb=ad40a8ddc8928c43492f631fc038e58d17bdd221;hp=7595f10670bafebeb7a40830bbb1eb9ed52c998b;hpb=1fde1118c78309dee4c2e76bb2b39147dc9b7f2a;p=dcpomatic.git diff --git a/src/wx/timeline.h b/src/wx/timeline.h index 7595f1067..519f00afb 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -17,19 +17,22 @@ */ +#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 ContentPanel; -class TimeAxisView; +class TimelineView; +class TimelineTimeAxisView; +class TimelineReelsView; +class TimelineLabelsView; class Timeline : public wxPanel { @@ -40,10 +43,6 @@ public: void force_redraw (dcpomatic::Rect const &); - int x_offset () const { - return 8; - } - int width () const { return GetSize().GetWidth (); } @@ -57,7 +56,7 @@ public: } Position tracks_position () const { - return Position (8, 8); + return _tracks_position; } int tracks () const; @@ -72,41 +71,46 @@ public: return _snap; } + void set_selection (ContentList selection); + private: void paint (); void left_down (wxMouseEvent &); void left_up (wxMouseEvent &); void right_down (wxMouseEvent &); void mouse_moved (wxMouseEvent &); - void playlist_changed (); - void playlist_content_changed (int); + void film_changed (Film::Property); + void film_content_changed (int, bool frequent); 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; 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; + boost::shared_ptr _labels_view; int _tracks; 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; + std::list _start_snaps; + std::list _end_snaps; + Position _tracks_position; - boost::signals2::scoped_connection _playlist_changed_connection; - boost::signals2::scoped_connection _playlist_content_changed_connection; + boost::signals2::scoped_connection _film_changed_connection; + boost::signals2::scoped_connection _film_content_changed_connection; };