- vector<EditableListColumn> columns;
- columns.push_back (EditableListColumn("Agency", 200, true));
- columns.push_back (EditableListColumn("Label", 50, false));
- _ratings = new EditableList<dcp::Rating, RatingDialog> (
- this,
- columns,
- boost::bind(&MetadataDialog::ratings, this),
- boost::bind(&MetadataDialog::set_ratings, this, _1),
- boost::bind(&column, _1, _2),
- true,
- false
- );
- sizer->Add (_ratings, 1, wxEXPAND);
-
- add_label_to_sizer (sizer, this, _("Content version"), true);
- _content_version = new wxTextCtrl (this, wxID_ANY);
- sizer->Add (_content_version, 1, wxEXPAND);
-
- shared_ptr<Film> f = _film.lock();
- DCPOMATIC_ASSERT (f);
- _content_version->SetValue (std_to_wx(f->content_version()));
-
- overall_sizer->Add (sizer, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
-
- wxSizer* buttons = CreateSeparatedButtonSizer (wxCLOSE);
+void
+MetadataDialog::setup ()
+{
+ auto notebook = new wxNotebook (this, wxID_ANY);
+
+ auto prepare = [notebook](std::function<void (wxPanel*, wxSizer*)> setup, wxString name) {
+ auto panel = new wxPanel (notebook, wxID_ANY);
+ auto sizer = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+ sizer->AddGrowableCol (1, 1);
+ setup (panel, sizer);
+ auto overall_sizer = new wxBoxSizer (wxVERTICAL);
+ overall_sizer->Add (sizer, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
+ panel->SetSizer (overall_sizer);
+ notebook->AddPage (panel, name);
+ };
+
+ prepare (boost::bind(&MetadataDialog::setup_standard, this, _1, _2), _("Standard"));
+ prepare (boost::bind(&MetadataDialog::setup_advanced, this, _1, _2), _("Advanced"));
+
+ auto overall_sizer = new wxBoxSizer (wxVERTICAL);
+ overall_sizer->Add (notebook, 1, wxEXPAND | wxALL, DCPOMATIC_DIALOG_BORDER);
+
+ auto buttons = CreateSeparatedButtonSizer (wxCLOSE);