X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline_time_axis_view.cc;h=45bf7e7cf51667e70031197df63e8690c824b890;hb=1427603608bd89846e363d478547a535eef75943;hp=88236c64ff18cf41840186ea114d24f366e53d0f;hpb=688fa9d705a6b23f216f380ac701c6a60e934f70;p=dcpomatic.git diff --git a/src/wx/timeline_time_axis_view.cc b/src/wx/timeline_time_axis_view.cc index 88236c64f..45bf7e7cf 100644 --- a/src/wx/timeline_time_axis_view.cc +++ b/src/wx/timeline_time_axis_view.cc @@ -1,19 +1,20 @@ /* - 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 . */ @@ -22,17 +23,19 @@ #include #include +using std::list; + TimelineTimeAxisView::TimelineTimeAxisView (Timeline& tl, int y) : TimelineView (tl) , _y (y) { } - + dcpomatic::Rect TimelineTimeAxisView::bbox () const { - return dcpomatic::Rect (0, _y - 4, _timeline.width(), 24); + return dcpomatic::Rect (_timeline.tracks_position().x, _y - 4, _timeline.width(), 24); } void @@ -43,41 +46,41 @@ TimelineTimeAxisView::set_y (int y) } void -TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) +TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list >) { if (!_timeline.pixels_per_second()) { return; } - + double const pps = _timeline.pixels_per_second().get (); - + 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; + mark_interval -= lrint (mark_interval) % 5; } if (mark_interval > 10) { - mark_interval -= int (rint (mark_interval)) % 10; + mark_interval -= lrint (mark_interval) % 10; } if (mark_interval > 60) { - mark_interval -= int (rint (mark_interval)) % 60; + mark_interval -= lrint (mark_interval) % 60; } if (mark_interval > 3600) { - mark_interval -= int (rint (mark_interval)) % 3600; + mark_interval -= lrint (mark_interval) % 3600; } - + if (mark_interval < 1) { mark_interval = 1; } - + wxGraphicsPath path = gc->CreatePath (); - path.MoveToPoint (_timeline.x_offset(), _y); + path.MoveToPoint (_timeline.tracks_position().x, _y); path.AddLineToPoint (_timeline.width(), _y); gc->StrokePath (path); - + gc->SetFont (gc->CreateFont (*wxNORMAL_FONT)); - + /* Time in seconds */ DCPTime t; while ((t.seconds() * pps) < _timeline.width()) { @@ -85,26 +88,26 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc) path.MoveToPoint (time_x (t), _y - 4); path.AddLineToPoint (time_x (t), _y + 4); gc->StrokePath (path); - + double tc = t.seconds (); int const h = tc / 3600; tc -= h * 3600; int const m = tc / 60; tc -= m * 60; int const s = tc; - + wxString str = wxString::Format (wxT ("%02d:%02d:%02d"), h, m, s); wxDouble str_width; wxDouble str_height; wxDouble str_descent; 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 = _timeline.tracks_position().x + t.seconds() * pps; if ((tx + str_width) < _timeline.width()) { gc->DrawText (str, time_x (t), _y + 16); } - + t += DCPTime::from_seconds (mark_interval); } }