macOS / new boost build fixes.
[dcpomatic.git] / src / wx / controls.cc
index ec6d4ff4c523435b68ba9df23678a9fc8f4b313c..86329efb39425f8f4ff40b88cf52751df7f5d4f5 100644 (file)
@@ -52,8 +52,12 @@ using boost::optional;
 using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::dynamic_pointer_cast;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 using namespace dcpomatic;
 
+
 Controls::Controls (wxWindow* parent, shared_ptr<FilmViewer> viewer, bool editor_controls)
        : wxPanel (parent)
        , _slider (new wxSlider (this, wxID_ANY, 0, 0, 4096))
@@ -105,10 +109,17 @@ Controls::Controls (wxWindow* parent, shared_ptr<FilmViewer> viewer, bool editor
 
        _v_sizer->Add (h_sizer, 0, wxEXPAND | wxALL, 6);
 
+#ifdef __WXGTK3__
+       _frame_number->SetMinSize (wxSize(100, -1));
+       _rewind_button->SetMinSize (wxSize(48, -1));
+       _back_button->SetMinSize (wxSize(48, -1));
+       _forward_button->SetMinSize (wxSize(48, -1));
+#else
        _frame_number->SetMinSize (wxSize (84, -1));
        _rewind_button->SetMinSize (wxSize (32, -1));
        _back_button->SetMinSize (wxSize (32, -1));
        _forward_button->SetMinSize (wxSize (32, -1));
+#endif
 
        if (_eye) {
                _eye->Bind (wxEVT_CHOICE, boost::bind (&Controls::eye_changed, this));
@@ -252,15 +263,15 @@ void
 Controls::update_position_label ()
 {
        if (!_film) {
-               _frame_number->SetLabel ("0");
-               _timecode->SetLabel ("0:0:0.0");
+               checked_set (_frame_number, wxT("0"));
+               checked_set (_timecode, wxT("0:0:0.0"));
                return;
        }
 
        double const fps = _film->video_frame_rate ();
        /* Count frame number from 1 ... not sure if this is the best idea */
-       _frame_number->SetLabel (wxString::Format (wxT("%ld"), lrint (_viewer->position().seconds() * fps) + 1));
-       _timecode->SetLabel (time_to_timecode (_viewer->position(), fps));
+       checked_set (_frame_number, wxString::Format (wxT("%ld"), lrint (_viewer->position().seconds() * fps) + 1));
+       checked_set (_timecode, time_to_timecode (_viewer->position(), fps));
 }
 
 void
@@ -345,7 +356,7 @@ Controls::setup_sensitivity ()
 void
 Controls::timecode_clicked ()
 {
-       PlayheadToTimecodeDialog* dialog = new PlayheadToTimecodeDialog (this, _film->video_frame_rate ());
+       PlayheadToTimecodeDialog* dialog = new PlayheadToTimecodeDialog (this, _viewer->position(), _film->video_frame_rate());
        if (dialog->ShowModal() == wxID_OK) {
                _viewer->seek (dialog->get(), true);
        }
@@ -355,7 +366,7 @@ Controls::timecode_clicked ()
 void
 Controls::frame_number_clicked ()
 {
-       PlayheadToFrameDialog* dialog = new PlayheadToFrameDialog (this, _film->video_frame_rate ());
+       PlayheadToFrameDialog* dialog = new PlayheadToFrameDialog (this, _viewer->position(), _film->video_frame_rate());
        if (dialog->ShowModal() == wxID_OK) {
                _viewer->seek (dialog->get(), true);
        }