Layout tweaks for GTK3.
[dcpomatic.git] / src / wx / video_panel.cc
index 24099e1ccd97ed2b524ce31a9bc20490542e4e25..ac744ddc9d540c3018632b57086236178a0ce813 100644 (file)
@@ -69,8 +69,6 @@ VideoPanel::VideoPanel (ContentPanel* p)
        font.SetPointSize(font.GetPointSize() - 1);
        _reference_note->SetFont(font);
 
-       _use = new wxCheckBox (this, wxID_ANY, _("Use"));
-
        _type_label = create_label (this, _("Type"), true);
        _frame_type = new ContentChoice<VideoContent, VideoFrameType> (
                this,
@@ -85,8 +83,13 @@ VideoPanel::VideoPanel (ContentPanel* p)
 
        _crop_label = create_label (this, _("Crop"), true);
 
+#ifdef __WXGTK3__
+       int const crop_width = 128;
+       int const link_height = 64;
+#else
        int const crop_width = 56;
        int const link_height = 28;
+#endif
 
        _left_crop_label = create_label (this, _("Left"), true);
        _left_crop = new ContentSpinCtrl<VideoContent> (
@@ -146,11 +149,14 @@ VideoPanel::VideoPanel (ContentPanel* p)
 
        wxClientDC dc (this);
        wxSize size = dc.GetTextExtent (wxT ("A quite long name"));
+#ifdef __WXGTK3__
+       size.SetWidth (size.GetWidth() + 64);
+#endif
        size.SetHeight (-1);
 
        _scale_label = create_label (this, _("Scale"), true);
        _scale_fit = new wxRadioButton (this, wxID_ANY, _("to fit DCP"));
-       _scale_custom = new wxRadioButton (this, wxID_ANY, _("custom"), wxDefaultPosition, size);
+       _scale_custom = new wxRadioButton (this, wxID_ANY, _("custom"));
        _scale_custom_edit = new Button (this, _("Edit..."));
 
        _filters_label = create_label (this, _("Filters"), true);
@@ -194,7 +200,6 @@ VideoPanel::VideoPanel (ContentPanel* p)
        _fade_in->Changed.connect (boost::bind (&VideoPanel::fade_in_changed, this));
        _fade_out->Changed.connect (boost::bind (&VideoPanel::fade_out_changed, this));
 
-       _use->Bind                           (wxEVT_CHECKBOX, boost::bind (&VideoPanel::use_clicked, this));
        _reference->Bind                     (wxEVT_CHECKBOX, boost::bind (&VideoPanel::reference_clicked, this));
        _filters_button->Bind                (wxEVT_BUTTON,   boost::bind (&VideoPanel::edit_filters_clicked, this));
        _scale_fit->Bind                     (wxEVT_RADIOBUTTON, boost::bind (&VideoPanel::scale_fit_clicked, this));
@@ -227,10 +232,6 @@ VideoPanel::add_to_grid ()
                ++r;
        }
 
-       _use->Show (full);
-       _grid->Add (_use, wxGBPosition(r, 0), wxGBSpan(1, 2));
-       ++r;
-
        add_label_to_sizer (_grid, _type_label, true, wxGBPosition(r, 0));
        _frame_type->add (_grid, wxGBPosition(r, 1), wxGBSpan(1, 2));
        ++r;
@@ -239,15 +240,29 @@ VideoPanel::add_to_grid ()
        wxGridBagSizer* crop = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
        add_label_to_sizer (crop, _left_crop_label, true, wxGBPosition (cr, 0));
        _left_crop->add (crop, wxGBPosition (cr, 1));
+#ifdef __WXGTK3__
+       crop->Add (_left_right_link, wxGBPosition(cr, 2), wxGBSpan(2, 1));
+       ++cr;
+       add_label_to_sizer (crop, _right_crop_label, true, wxGBPosition(cr, 0));
+       _right_crop->add (crop, wxGBPosition(cr, 1));
+#else
        crop->Add (_left_right_link, wxGBPosition(cr, 2));
        add_label_to_sizer (crop, _right_crop_label, true, wxGBPosition (cr, 3));
        _right_crop->add (crop, wxGBPosition (cr, 4));
+#endif
        ++cr;
        add_label_to_sizer (crop, _top_crop_label, true, wxGBPosition (cr, 0));
        _top_crop->add (crop, wxGBPosition (cr, 1));
+#ifdef __WXGTK3__
+       crop->Add (_top_bottom_link, wxGBPosition(cr, 2), wxGBSpan(2, 1));
+       ++cr;
+       add_label_to_sizer (crop, _bottom_crop_label, true, wxGBPosition(cr, 0));
+       _bottom_crop->add (crop, wxGBPosition(cr, 1));
+#else
        crop->Add (_top_bottom_link, wxGBPosition(cr, 2));
        add_label_to_sizer (crop, _bottom_crop_label, true, wxGBPosition (cr, 3));
        _bottom_crop->add (crop, wxGBPosition (cr, 4));
+#endif
        add_label_to_sizer (_grid, _crop_label, true, wxGBPosition(r, 0));
        _grid->Add (crop, wxGBPosition(r, 1));
        ++r;
@@ -279,8 +294,8 @@ VideoPanel::add_to_grid ()
                        wxSizer* v = new wxBoxSizer (wxVERTICAL);
                        v->Add (_scale_fit, 0, wxBOTTOM, 4);
                        wxSizer* h = new wxBoxSizer (wxHORIZONTAL);
-                       h->Add (_scale_custom, 1, wxRIGHT, 6);
-                       h->Add (_scale_custom_edit, 0);
+                       h->Add (_scale_custom, 1, wxRIGHT | wxALIGN_CENTER_VERTICAL, 6);
+                       h->Add (_scale_custom_edit, 0, wxALIGN_CENTER_VERTICAL);
                        v->Add (h, 0);
                        _grid->Add (v, wxGBPosition(r, 1));
                }
@@ -428,17 +443,6 @@ VideoPanel::film_content_changed (int property)
                        }
                }
        } else if (property == VideoContentProperty::USE) {
-               set<bool> check;
-               BOOST_FOREACH (shared_ptr<const Content> i, vc) {
-                       check.insert (i->video->use());
-               }
-
-               if (check.size() == 1) {
-                       checked_set (_use, vc.front()->video->use());
-               } else {
-                       checked_set (_use, false);
-               }
-
                setup_sensitivity ();
        } else if (property == VideoContentProperty::FADE_IN) {
                set<Frame> check;
@@ -625,9 +629,14 @@ VideoPanel::setup_sensitivity ()
        }
        setup_refer_button (_reference, _reference_note, dcp, can_reference, cannot);
 
-       bool const enable = !_reference->GetValue() && _use->GetValue();
+       bool any_use = false;
+       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_video()) {
+               if (i->video && i->video->use()) {
+                       any_use = true;
+               }
+       }
 
-       _use->Enable (!_reference->GetValue());
+       bool const enable = !_reference->GetValue() && any_use;
 
        if (!enable) {
                _frame_type->wrapped()->Enable (false);
@@ -698,13 +707,6 @@ VideoPanel::fade_out_changed ()
        }
 }
 
-void
-VideoPanel::use_clicked ()
-{
-       BOOST_FOREACH (shared_ptr<Content> i, _parent->selected_video()) {
-               i->video->set_use (_use->GetValue());
-       }
-}
 
 void
 VideoPanel::reference_clicked ()