X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Ftimeline_view.cc;h=2897c98e35398a27d83c13c875d6d016b90cc3c3;hp=0d2fca381f9c078af348eb88a54afca561ac7d32;hb=4d8f96e15edb4807cc9773cc7f9eb6aa56ac2dc8;hpb=e60bb3e51bd1508b149e6b8f6608f09b5196ae26 diff --git a/src/wx/timeline_view.cc b/src/wx/timeline_view.cc index 0d2fca381..2897c98e3 100644 --- a/src/wx/timeline_view.cc +++ b/src/wx/timeline_view.cc @@ -1,25 +1,32 @@ /* - Copyright (C) 2013-2015 Carl Hetherington + Copyright (C) 2013-2021 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 "timeline_view.h" #include "timeline.h" + +using std::list; +using namespace dcpomatic; + + /** @class TimelineView * @brief Parent class for components of the timeline (e.g. a piece of content or an axis). */ @@ -29,23 +36,34 @@ TimelineView::TimelineView (Timeline& t) } + void -TimelineView::paint (wxGraphicsContext* g) +TimelineView::paint (wxGraphicsContext* g, list> overlaps) { _last_paint_bbox = bbox (); - do_paint (g); + do_paint (g, overlaps); } + void TimelineView::force_redraw () { - _timeline.force_redraw (_last_paint_bbox); - _timeline.force_redraw (bbox ()); + _timeline.force_redraw (_last_paint_bbox.extended(4)); + _timeline.force_redraw (bbox().extended(4)); } + int TimelineView::time_x (DCPTime t) const { - return _timeline.tracks_position().x + t.seconds() * _timeline.pixels_per_second().get_value_or (0); + return t.seconds() * _timeline.pixels_per_second().get_value_or(0); } + +int +TimelineView::y_pos(int t) const +{ + return t * _timeline.pixels_per_track() + _timeline.tracks_y_offset(); +} + +