- return dcp::LanguageTag::RegionSubtag(_list->selected_subtag()->subtag);
- }
-
- boost::signals2::signal<void (optional<dcp::LanguageTag::SubtagData>)> SelectionChanged;
- boost::signals2::signal<void (string)> SearchChanged;
-
-private:
- void search_changed ()
- {
- _list->set_search (_search->GetValue().ToStdString());
- SearchChanged (_search->GetValue().ToStdString());
- }
-
- void selection_changed ()
- {
- SelectionChanged (_list->selected_subtag());
- }
-
- wxSearchCtrl* _search;
- SubtagListCtrl* _list;
-};
-
-
-LanguageTagDialog::LanguageTagDialog (wxWindow* parent, dcp::LanguageTag tag)
- : wxDialog (parent, wxID_ANY, "Language Tag", wxDefaultPosition, wxSize(-1, 500))
-{
- _current_tag_list = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL | wxLC_NO_HEADER);
- _current_tag_list->AppendColumn ("", wxLIST_FORMAT_LEFT, 200);
- _current_tag_list->AppendColumn ("", wxLIST_FORMAT_LEFT, 400);
-
- wxBoxSizer* button_sizer = new wxBoxSizer (wxVERTICAL);
- _add_script = new wxButton(this, wxID_ANY, "Add script");
- button_sizer->Add (_add_script, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
- _add_region = new wxButton(this, wxID_ANY, "Add region");
- button_sizer->Add (_add_region, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
- _add_variant = new wxButton(this, wxID_ANY, "Add variant");
- button_sizer->Add (_add_variant, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
- _add_external = new wxButton(this, wxID_ANY, "Add external");
- button_sizer->Add (_add_external, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
- _remove = new wxButton(this, wxID_ANY, "Remove");
- button_sizer->Add (_remove, 0, wxTOP | wxBOTTOM | wxEXPAND, 2);
-
- _choose_subtag_panel = new LanguageSubtagPanel (this);
- _choose_subtag_panel->set (dcp::LanguageTag::LANGUAGE, "");
-
- wxBoxSizer* ltor_sizer = new wxBoxSizer (wxHORIZONTAL);
- ltor_sizer->Add (_current_tag_list, 1, wxALL, 8);
- ltor_sizer->Add (button_sizer, 0, wxALL, 8);
- ltor_sizer->Add (_choose_subtag_panel, 1, wxALL, 8);
-
- wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL);
- overall_sizer->Add (ltor_sizer, 0);
-
- wxSizer* buttons = CreateSeparatedButtonSizer (wxOK);