diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-07-04 01:15:05 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-07-04 01:15:05 +0100 |
| commit | 7bcf60f8ad3acd4dcae77a120216839b665c4335 (patch) | |
| tree | 1d4b72911f1b1ff901d0b725423173244186dfe6 /src/wx/timeline.cc | |
| parent | 42d7062fcd4025600c2f5e2539f1fa347d6db145 (diff) | |
Fix icons on Windows; zoom to all on initial open.
Diffstat (limited to 'src/wx/timeline.cc')
| -rw-r--r-- | src/wx/timeline.cc | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/wx/timeline.cc b/src/wx/timeline.cc index a0bf50f05..c60568e3a 100644 --- a/src/wx/timeline.cc +++ b/src/wx/timeline.cc @@ -76,6 +76,7 @@ Timeline::Timeline (wxWindow* parent, ContentPanel* cp, shared_ptr<Film> film) , _x_scroll_rate (16) , _y_scroll_rate (16) , _pixels_per_track (48) + , _first_resize (true) { #ifndef __WXOSX__ _labels_canvas->SetDoubleBuffered (true); @@ -104,8 +105,6 @@ Timeline::Timeline (wxWindow* parent, ContentPanel* cp, shared_ptr<Film> film) _film_changed_connection = film->Changed.connect (bind (&Timeline::film_changed, this, _1)); _film_content_changed_connection = film->ContentChanged.connect (bind (&Timeline::film_content_changed, this, _2, _3)); - set_pixels_per_second (static_cast<double>(640) / film->length().seconds ()); - setup_scrollbars (); _labels_canvas->ShowScrollbars (wxSHOW_SB_NEVER, wxSHOW_SB_NEVER); } @@ -395,7 +394,7 @@ Timeline::setup_scrollbars () } _labels_canvas->SetVirtualSize (_labels_view->bbox().width, tracks() * pixels_per_track() + 96); _labels_canvas->SetScrollRate (_x_scroll_rate, _y_scroll_rate); - _main_canvas->SetVirtualSize (*_pixels_per_second * film->length().seconds(), tracks() * pixels_per_track() + 96); + _main_canvas->SetVirtualSize (*_pixels_per_second * film->length().seconds(), tracks() * pixels_per_track() + tracks_y_offset() + _time_axis_view->bbox().height); _main_canvas->SetScrollRate (_x_scroll_rate, _y_scroll_rate); } @@ -722,6 +721,10 @@ Timeline::film () const void Timeline::resized () { + if (_main_canvas->GetSize().GetWidth() > 0 && _first_resize) { + zoom_all (); + _first_resize = false; + } setup_scrollbars (); } @@ -805,11 +808,20 @@ Timeline::tool_clicked (Tool t) _tool = t; break; case ZOOM_ALL: - shared_ptr<Film> film = _film.lock (); - DCPOMATIC_ASSERT (film); - set_pixels_per_second ((_main_canvas->GetSize().GetWidth() - 32) / film->length().seconds()); - set_pixels_per_track ((_main_canvas->GetSize().GetHeight() - tracks_y_offset() - _time_axis_view->bbox().height - 32) / _tracks); - Refresh (); + zoom_all (); break; } } + +void +Timeline::zoom_all () +{ + shared_ptr<Film> film = _film.lock (); + DCPOMATIC_ASSERT (film); + set_pixels_per_second ((_main_canvas->GetSize().GetWidth() - 32) / film->length().seconds()); + set_pixels_per_track ((_main_canvas->GetSize().GetHeight() - tracks_y_offset() - _time_axis_view->bbox().height - 32) / _tracks); + setup_scrollbars (); + _main_canvas->Scroll (0, 0); + _labels_canvas->Scroll (0, 0); + Refresh (); +} |
