*/
+
+#include "content_panel.h"
#include "film_editor.h"
+#include "film_viewer.h"
#include "timeline.h"
-#include "timeline_time_axis_view.h"
-#include "timeline_reels_view.h"
-#include "timeline_labels_view.h"
-#include "timeline_video_content_view.h"
+#include "timeline_atmos_content_view.h"
#include "timeline_audio_content_view.h"
+#include "timeline_labels_view.h"
+#include "timeline_reels_view.h"
#include "timeline_text_content_view.h"
-#include "timeline_atmos_content_view.h"
-#include "content_panel.h"
+#include "timeline_time_axis_view.h"
+#include "timeline_video_content_view.h"
#include "wx_util.h"
-#include "film_viewer.h"
+#include "lib/atmos_mxf_content.h"
+#include "lib/audio_content.h"
#include "lib/film.h"
-#include "lib/playlist.h"
#include "lib/image_content.h"
-#include "lib/timer.h"
-#include "lib/audio_content.h"
+#include "lib/playlist.h"
#include "lib/text_content.h"
+#include "lib/timer.h"
#include "lib/video_content.h"
-#include "lib/atmos_mxf_content.h"
+#include "lib/warnings.h"
+DCPOMATIC_DISABLE_WARNINGS
#include <wx/graphics.h>
-#include <list>
-#include <iterator>
+DCPOMATIC_ENABLE_WARNINGS
#include <iostream>
+#include <iterator>
+#include <list>
-using std::list;
+
+using std::abs;
using std::cout;
-using std::min;
+using std::dynamic_pointer_cast;
+using std::list;
+using std::make_shared;
using std::max;
-using std::abs;
+using std::min;
using std::shared_ptr;
using std::weak_ptr;
-using std::dynamic_pointer_cast;
-using std::make_shared;
using boost::bind;
using boost::optional;
using namespace dcpomatic;
using namespace boost::placeholders;
#endif
+
/* 3 hours in 640 pixels */
double const Timeline::_minimum_pixels_per_second = 640.0 / (60 * 60 * 3);
int const Timeline::_minimum_pixels_per_track = 16;
+
Timeline::Timeline (wxWindow* parent, ContentPanel* cp, shared_ptr<Film> film, weak_ptr<FilmViewer> viewer)
: wxPanel (parent, wxID_ANY)
, _labels_canvas (new wxScrolledCanvas (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE))