X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline.h;h=c8424541eb8eb226a7cd0b6e707107df901cbf4c;hb=3828baf56467224f5d44049bf1e7a7ed11f43a05;hp=66f982c4ae279b3b6767f4ca33d81e2e0324bae9;hpb=688fa9d705a6b23f216f380ac701c6a60e934f70;p=dcpomatic.git diff --git a/src/wx/timeline.h b/src/wx/timeline.h index 66f982c4a..c8424541e 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -1,35 +1,39 @@ /* Copyright (C) 2013-2015 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ +#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" -#include "timeline_content_view.h" class Film; class ContentPanel; class TimelineView; class TimelineTimeAxisView; +class TimelineReelsView; +class TimelineLabelsView; class Timeline : public wxPanel { @@ -40,10 +44,6 @@ public: void force_redraw (dcpomatic::Rect const &); - int x_offset () const { - return 8; - } - int width () const { return GetSize().GetWidth (); } @@ -57,7 +57,7 @@ public: } Position tracks_position () const { - return Position (8, 8); + return _tracks_position; } int tracks () const; @@ -72,18 +72,21 @@ 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 (); boost::shared_ptr event_to_view (wxMouseEvent &); TimelineContentViewList selected_views () const; @@ -94,6 +97,8 @@ private: boost::weak_ptr _film; 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; @@ -103,7 +108,10 @@ private: 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; };