add (_("Name"), true);
add (_name = new wxTextCtrl (this, wxID_ANY, wxT(""), wxDefaultPosition, wxSize(300, -1)));
add (_("Language"), true);
- _language = new LanguageTagWidget (this, wxT(""), dcp::LanguageTag("en-US"));
+ _language = new LanguageTagWidget (this, wxT(""), boost::none);
add (_language->sizer());
+ _language->Changed.connect(boost::bind(&DCPTextTrackDialog::set_sensitivity, this));
+
+ set_sensitivity();
layout ();
}
DCPTextTrack
DCPTextTrackDialog::get () const
{
- return DCPTextTrack(wx_to_std(_name->GetValue()), _language->get().to_string());
+ DCPOMATIC_ASSERT (_language->get());
+ return DCPTextTrack(wx_to_std(_name->GetValue()), _language->get());
+}
+
+
+void
+DCPTextTrackDialog::set_sensitivity()
+{
+ if (auto ok = dynamic_cast<wxButton *>(FindWindowById(wxID_OK, this))) {
+ ok->Enable(static_cast<bool>(_language->get()));
+ }
}
+