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 | |
| parent | 42d7062fcd4025600c2f5e2539f1fa347d6db145 (diff) | |
Fix icons on Windows; zoom to all on initial open.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/timeline.cc | 28 | ||||
| -rw-r--r-- | src/wx/timeline.h | 2 | ||||
| -rw-r--r-- | src/wx/timeline_dialog.cc | 9 |
3 files changed, 26 insertions, 13 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 (); +} diff --git a/src/wx/timeline.h b/src/wx/timeline.h index 30f7061d4..2133a537d 100644 --- a/src/wx/timeline.h +++ b/src/wx/timeline.h @@ -100,6 +100,7 @@ private: void scrolled (wxScrollWinEvent& ev); void set_pixels_per_second (double pps); void set_pixels_per_track (int h); + void zoom_all (); boost::shared_ptr<TimelineView> event_to_view (wxMouseEvent &); TimelineContentViewList selected_views () const; @@ -130,6 +131,7 @@ private: int _x_scroll_rate; int _y_scroll_rate; int _pixels_per_track; + bool _first_resize; static double const _minimum_pixels_per_second; static int const _minimum_pixels_per_track; diff --git a/src/wx/timeline_dialog.cc b/src/wx/timeline_dialog.cc index 34706d620..d20f89db9 100644 --- a/src/wx/timeline_dialog.cc +++ b/src/wx/timeline_dialog.cc @@ -55,15 +55,14 @@ TimelineDialog::TimelineDialog (ContentPanel* cp, shared_ptr<Film> film) wxBoxSizer* controls = new wxBoxSizer (wxHORIZONTAL); -#ifdef DCPOMATIC_LINUX wxBitmap select (wxString::Format (wxT ("%s/select.png"), std_to_wx (shared_path().string())), wxBITMAP_TYPE_PNG); wxBitmap zoom (wxString::Format (wxT ("%s/zoom.png"), std_to_wx (shared_path().string())), wxBITMAP_TYPE_PNG); wxBitmap zoom_all (wxString::Format (wxT ("%s/zoom_all.png"), std_to_wx (shared_path().string())), wxBITMAP_TYPE_PNG); -#endif + wxToolBar* toolbar = new wxToolBar (this, wxID_ANY); - toolbar->AddRadioTool ((int) Timeline::SELECT, _("Select"), select); - toolbar->AddRadioTool ((int) Timeline::ZOOM, _("Zoom"), zoom); - toolbar->AddTool ((int) Timeline::ZOOM_ALL, _("Zoom to whole project"), zoom_all); + toolbar->AddRadioTool ((int) Timeline::SELECT, _("Select"), select, wxNullBitmap, _("Select and move content")); + toolbar->AddRadioTool ((int) Timeline::ZOOM, _("Zoom"), zoom, wxNullBitmap, _("Zoom in / out")); + toolbar->AddTool ((int) Timeline::ZOOM_ALL, _("Zoom all"), zoom_all, _("Zoom out to whole film")); controls->Add (toolbar); toolbar->Bind (wxEVT_TOOL, bind (&TimelineDialog::tool_clicked, this, _1)); |
