X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Fwx%2Ftimeline_time_axis_view.cc;h=e9de1b542fab6b1777993b09a920009d420903bc;hp=7882c1231d2041e0023e8d645013a6fb70f501fb;hb=386e25f3b9d3fa59cbdeed458d9b3e0d21e338b8;hpb=e60bb3e51bd1508b149e6b8f6608f09b5196ae26 diff --git a/src/wx/timeline_time_axis_view.cc b/src/wx/timeline_time_axis_view.cc index 7882c1231..e9de1b542 100644 --- a/src/wx/timeline_time_axis_view.cc +++ b/src/wx/timeline_time_axis_view.cc @@ -1,27 +1,33 @@ /* - Copyright (C) 2013-2015 Carl Hetherington + Copyright (C) 2013-2016 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_time_axis_view.h" #include "timeline.h" +#include "wx_util.h" #include #include +using std::list; +using std::cout; +using namespace dcpomatic; + TimelineTimeAxisView::TimelineTimeAxisView (Timeline& tl, int y) : TimelineView (tl) , _y (y) @@ -35,6 +41,7 @@ TimelineTimeAxisView::bbox () const return dcpomatic::Rect (0, _y - 4, _timeline.width(), 24); } +/** @param y y position in tracks (not pixels) */ void TimelineTimeAxisView::set_y (int y) { @@ -43,7 +50,7 @@ TimelineTimeAxisView::set_y (int y) } void -TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) +TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list >) { if (!_timeline.pixels_per_second()) { return; @@ -53,27 +60,13 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) gc->SetPen (*wxThePenList->FindOrCreatePen (wxColour (0, 0, 0), 1, wxPENSTYLE_SOLID)); - double mark_interval = rint (128 / pps); - if (mark_interval > 5) { - mark_interval -= int (rint (mark_interval)) % 5; - } - if (mark_interval > 10) { - mark_interval -= int (rint (mark_interval)) % 10; - } - if (mark_interval > 60) { - mark_interval -= int (rint (mark_interval)) % 60; - } - if (mark_interval > 3600) { - mark_interval -= int (rint (mark_interval)) % 3600; - } + double const mark_interval = calculate_mark_interval (rint (128 / pps)); - if (mark_interval < 1) { - mark_interval = 1; - } + int y = _y * _timeline.pixels_per_track() + 32; wxGraphicsPath path = gc->CreatePath (); - path.MoveToPoint (_timeline.x_offset(), _y); - path.AddLineToPoint (_timeline.width(), _y); + path.MoveToPoint (0, y); + path.AddLineToPoint (_timeline.width(), y); gc->StrokePath (path); gc->SetFont (gc->CreateFont (*wxNORMAL_FONT)); @@ -82,8 +75,8 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) DCPTime t; while ((t.seconds() * pps) < _timeline.width()) { wxGraphicsPath path = gc->CreatePath (); - path.MoveToPoint (time_x (t), _y - 4); - path.AddLineToPoint (time_x (t), _y + 4); + path.MoveToPoint (time_x (t), y - 4); + path.AddLineToPoint (time_x (t), y + 4); gc->StrokePath (path); double tc = t.seconds (); @@ -100,9 +93,9 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) wxDouble str_leading; gc->GetTextExtent (str, &str_width, &str_height, &str_descent, &str_leading); - int const tx = _timeline.x_offset() + t.seconds() * pps; + int const tx = t.seconds() * pps; if ((tx + str_width) < _timeline.width()) { - gc->DrawText (str, time_x (t), _y + 16); + gc->DrawText (str, time_x (t), y + 16); } t += DCPTime::from_seconds (mark_interval);