X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimeline_time_axis_view.cc;h=046ddaf3f2b301f7f4495cc2dd18e7d451465d34;hb=b9a1ad3df5f9d85fb7439efd93fede72b9b078af;hp=45bf7e7cf51667e70031197df63e8690c824b890;hpb=3828baf56467224f5d44049bf1e7a7ed11f43a05;p=dcpomatic.git diff --git a/src/wx/timeline_time_axis_view.cc b/src/wx/timeline_time_axis_view.cc index 45bf7e7cf..046ddaf3f 100644 --- a/src/wx/timeline_time_axis_view.cc +++ b/src/wx/timeline_time_axis_view.cc @@ -18,12 +18,20 @@ */ -#include "timeline_time_axis_view.h" #include "timeline.h" -#include +#include "timeline_time_axis_view.h" +#include "wx_util.h" +#include "lib/warnings.h" +DCPOMATIC_DISABLE_WARNINGS #include +#include +DCPOMATIC_ENABLE_WARNINGS + +using std::cout; using std::list; +using namespace dcpomatic; + TimelineTimeAxisView::TimelineTimeAxisView (Timeline& tl, int y) : TimelineView (tl) @@ -32,12 +40,15 @@ TimelineTimeAxisView::TimelineTimeAxisView (Timeline& tl, int y) } + dcpomatic::Rect TimelineTimeAxisView::bbox () const { - return dcpomatic::Rect (_timeline.tracks_position().x, _y - 4, _timeline.width(), 24); + return dcpomatic::Rect (0, _y - 4, _timeline.width(), 24); } + +/** @param y y position in tracks (not pixels) */ void TimelineTimeAxisView::set_y (int y) { @@ -45,6 +56,7 @@ TimelineTimeAxisView::set_y (int y) force_redraw (); } + void TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list >) { @@ -56,27 +68,13 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list gc->SetPen (*wxThePenList->FindOrCreatePen (wxColour (0, 0, 0), 1, wxPENSTYLE_SOLID)); - double mark_interval = rint (128 / pps); - if (mark_interval > 5) { - mark_interval -= lrint (mark_interval) % 5; - } - if (mark_interval > 10) { - mark_interval -= lrint (mark_interval) % 10; - } - if (mark_interval > 60) { - mark_interval -= lrint (mark_interval) % 60; - } - if (mark_interval > 3600) { - mark_interval -= lrint (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.tracks_position().x, _y); - path.AddLineToPoint (_timeline.width(), _y); + path.MoveToPoint (0, y); + path.AddLineToPoint (_timeline.width(), y); gc->StrokePath (path); gc->SetFont (gc->CreateFont (*wxNORMAL_FONT)); @@ -85,8 +83,8 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list 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 (); @@ -103,9 +101,9 @@ TimelineTimeAxisView::do_paint (wxGraphicsContext* gc, list wxDouble str_leading; gc->GetTextExtent (str, &str_width, &str_height, &str_descent, &str_leading); - int const tx = _timeline.tracks_position().x + 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);