Layout tweaks for GTK3.
authorCarl Hetherington <cth@carlh.net>
Sat, 23 May 2020 20:59:39 +0000 (22:59 +0200)
committerCarl Hetherington <cth@carlh.net>
Sat, 23 May 2020 22:00:32 +0000 (00:00 +0200)
src/wx/controls.cc
src/wx/text_panel.cc
src/wx/video_panel.cc

index e3f476c05e35530dc28a473bb133d4cd160987d4..5651dc8f26740bd1d859d91661bde16001abaf2a 100644 (file)
@@ -105,10 +105,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));
index 8d404d8c5d5b0d5a5a3b177c7490a00c423668b0..0f84664a8878c67bc82c3ad0e49b80c925d5a0d8 100644 (file)
@@ -87,20 +87,26 @@ TextPanel::TextPanel (ContentPanel* p, TextType t)
 
        _burn = new CheckBox (this, _("Burn subtitles into image"));
 
+#ifdef __WXGTK3__
+       int const spin_width = 118;
+#else
+       int const spin_width = 56;
+#endif
+
        _offset_label = create_label (this, _("Offset"), true);
        _x_offset_label = create_label (this, _("X"), true);
-       _x_offset = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(64, -1));
+       _x_offset = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(spin_width, -1));
        _x_offset_pc_label = new StaticText (this, _("%"));
        _y_offset_label = create_label (this, _("Y"), true);
-       _y_offset = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(64, -1));
+       _y_offset = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(spin_width, -1));
        _y_offset_pc_label = new StaticText (this, _("%"));
 
        _scale_label = create_label (this, _("Scale"), true);
        _x_scale_label = create_label (this, _("X"), true);
-       _x_scale = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(64, -1));
+       _x_scale = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(spin_width, -1));
        _x_scale_pc_label = new StaticText (this, _("%"));
        _y_scale_label = create_label (this, S_("Coord|Y"), true);
-       _y_scale = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(64, -1));
+       _y_scale = new wxSpinCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(spin_width, -1));
        _y_scale_pc_label = new StaticText (this, _("%"));
 
        _line_spacing_label = create_label (this, _("Line spacing"), true);
index 4be9a741fd72b338a9fe7039595eb2fa480f6c4b..ac744ddc9d540c3018632b57086236178a0ce813 100644 (file)
@@ -83,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> (
@@ -144,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);
@@ -232,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;
@@ -272,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));
                }