+
+ /* YUV to RGB conversion */
+
+ auto yuv_heading = subhead (table, this, _("YUV to RGB conversion"), r);
+
+ auto yuv_label = add_label_to_sizer (table, this, _("YUV to RGB matrix"), true, wxGBPosition (r, 0));
+ _yuv_to_rgb = new wxChoice (this, wxID_ANY);
+ _yuv_to_rgb->Append (_("Rec. 601"));
+ _yuv_to_rgb->Append (_("Rec. 709"));
+ table->Add (_yuv_to_rgb, wxGBPosition (r, 1));
+ ++r;
+
+ if (!yuv) {
+ yuv_heading->Enable (false);
+ yuv_label->Enable (false);
+ _yuv_to_rgb->Enable (false);
+ }
+
+ /* RGB to XYZ conversion */
+
+ subhead (table, this, _("RGB to XYZ conversion"), r);
+
+ add_label_to_sizer (table, this, _("x"), false, wxGBPosition (r, 1));
+ add_label_to_sizer (table, this, _("y"), false, wxGBPosition (r, 2));
+ add_label_to_sizer (table, this, _("Matrix"), false, wxGBPosition (r, 3));
+ ++r;
+
+ add_label_to_sizer (table, this, _("Red chromaticity"), true, wxGBPosition (r, 0));
+ _red_x = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_red_x, wxGBPosition (r, 1));
+ _red_y = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_red_y, wxGBPosition (r, 2));
+ ++r;
+
+ add_label_to_sizer (table, this, _("Green chromaticity"), true, wxGBPosition (r, 0));
+ _green_x = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_green_x, wxGBPosition (r, 1));
+ _green_y = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_green_y, wxGBPosition (r, 2));
+ ++r;
+
+ add_label_to_sizer (table, this, _("Blue chromaticity"), true, wxGBPosition (r, 0));
+ _blue_x = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_blue_x, wxGBPosition (r, 1));
+ _blue_y = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_blue_y, wxGBPosition (r, 2));
+ ++r;
+
+ add_label_to_sizer (table, this, _("White point"), true, wxGBPosition (r, 0));
+ _white_x = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_white_x, wxGBPosition (r, 1));
+ _white_y = new wxTextCtrl (this, wxID_ANY, wxT (""), wxDefaultPosition, size, 0, validator);
+ table->Add (_white_y, wxGBPosition (r, 2));
+ ++r;
+
+ size = dc.GetTextExtent (wxT ("0.12345678"));
+ size.SetHeight (-1);
+
+ auto rgb_to_xyz_sizer = new wxFlexGridSizer (3, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);