#include "full_language_tag_dialog.h"
+#include "language_subtag_panel.h"
#include "subtag_list_ctrl.h"
#include "lib/dcpomatic_assert.h"
#include <dcp/language_tag.h>
#endif
-class LanguageSubtagPanel : public wxPanel
-{
-public:
- LanguageSubtagPanel (wxWindow* parent)
- : wxPanel (parent, wxID_ANY)
- {
-#ifdef __WXGTK3__
- int const height = 30;
-#else
- int const height = -1;
-#endif
-
- _search = new wxSearchCtrl (this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, height));
- _list = new SubtagListCtrl (this);
-
- auto sizer = new wxBoxSizer (wxVERTICAL);
- sizer->Add (_search, 0, wxALL, 8);
- sizer->Add (_list, 1, wxALL, 8);
- SetSizer (sizer);
-
- _search->Bind (wxEVT_TEXT, boost::bind(&LanguageSubtagPanel::search_changed, this));
- _list->Bind (wxEVT_LIST_ITEM_SELECTED, boost::bind(&LanguageSubtagPanel::selection_changed, this));
- _list->Bind (wxEVT_LIST_ITEM_DESELECTED, boost::bind(&LanguageSubtagPanel::selection_changed, this));
- }
-
- void set (dcp::LanguageTag::SubtagType type, string search, optional<dcp::LanguageTag::SubtagData> subtag = optional<dcp::LanguageTag::SubtagData>())
- {
- _list->set (type, search, subtag);
- _search->SetValue (wxString(search));
- }
-
- optional<dcp::LanguageTag::RegionSubtag> get () const
- {
- if (!_list->selected_subtag()) {
- return {};
- }
-
- 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 ()
- {
- auto search = _search->GetValue();
- _list->set_search (search.ToStdString());
- if (search.Length() > 0 && _list->GetItemCount() > 0) {
- _list->EnsureVisible (0);
- }
- SearchChanged (_search->GetValue().ToStdString());
- }
-
- void selection_changed ()
- {
- SelectionChanged (_list->selected_subtag());
- }
-
- wxSearchCtrl* _search;
- SubtagListCtrl* _list;
-};
-
-
FullLanguageTagDialog::FullLanguageTagDialog (wxWindow* parent, dcp::LanguageTag tag)
: wxDialog (parent, wxID_ANY, _("Language Tag"), wxDefaultPosition, wxSize(-1, 500))
{
--- /dev/null
+/*
+ Copyright (C) 2021 Carl Hetherington <cth@carlh.net>
+
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ DCP-o-matic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "language_subtag_panel.h"
+#include <wx/srchctrl.h>
+#include <wx/wx.h>
+
+
+using std::string;
+using boost::optional;
+
+
+LanguageSubtagPanel::LanguageSubtagPanel(wxWindow* parent)
+ : wxPanel (parent, wxID_ANY)
+{
+#ifdef __WXGTK3__
+ int const height = 30;
+#else
+ int const height = -1;
+#endif
+
+ _search = new wxSearchCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, height));
+ _list = new SubtagListCtrl(this);
+
+ auto sizer = new wxBoxSizer(wxVERTICAL);
+ sizer->Add(_search, 0, wxALL, 8);
+ sizer->Add(_list, 1, wxALL, 8);
+ SetSizer(sizer);
+
+ _search->Bind(wxEVT_TEXT, boost::bind(&LanguageSubtagPanel::search_changed, this));
+ _list->Bind(wxEVT_LIST_ITEM_SELECTED, boost::bind(&LanguageSubtagPanel::selection_changed, this));
+ _list->Bind(wxEVT_LIST_ITEM_DESELECTED, boost::bind(&LanguageSubtagPanel::selection_changed, this));
+}
+
+
+void
+LanguageSubtagPanel::set(dcp::LanguageTag::SubtagType type, string search, optional<dcp::LanguageTag::SubtagData> subtag)
+{
+ _list->set(type, search, subtag);
+ _search->SetValue(wxString(search));
+}
+
+
+optional<dcp::LanguageTag::RegionSubtag>
+LanguageSubtagPanel::get() const
+{
+ if (!_list->selected_subtag()) {
+ return {};
+ }
+
+ return dcp::LanguageTag::RegionSubtag(_list->selected_subtag()->subtag);
+}
+
+
+void
+LanguageSubtagPanel::search_changed()
+{
+ auto search = _search->GetValue();
+ _list->set_search(search.ToStdString());
+ if (search.Length() > 0 && _list->GetItemCount() > 0) {
+ _list->EnsureVisible (0);
+ }
+ SearchChanged(_search->GetValue().ToStdString());
+}
+
+
+void
+LanguageSubtagPanel::selection_changed()
+{
+ SelectionChanged(_list->selected_subtag());
+}
+
--- /dev/null
+/*
+ Copyright (C) 2021 Carl Hetherington <cth@carlh.net>
+
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ DCP-o-matic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "subtag_list_ctrl.h"
+#include <wx/srchctrl.h>
+#include <wx/wx.h>
+#include <boost/signals2.hpp>
+
+
+class LanguageSubtagPanel : public wxPanel
+{
+public:
+ LanguageSubtagPanel(wxWindow* parent);
+
+ void set(dcp::LanguageTag::SubtagType type, std::string search, boost::optional<dcp::LanguageTag::SubtagData> subtag = boost::optional<dcp::LanguageTag::SubtagData>());
+ boost::optional<dcp::LanguageTag::RegionSubtag> get() const;
+
+ boost::signals2::signal<void (boost::optional<dcp::LanguageTag::SubtagData>)> SelectionChanged;
+ boost::signals2::signal<void (std::string)> SearchChanged;
+
+private:
+ void search_changed();
+ void selection_changed();
+
+ wxSearchCtrl* _search;
+ SubtagListCtrl* _list;
+};
*/
+#ifndef DCPOMATIC_SUBTAG_LIST_CTRL_H
+#define DCPOMATIC_SUBTAG_LIST_CTRL_H
+
+
#include <dcp/language_tag.h>
#include <wx/listctrl.h>
#include <vector>
};
-
-
+#endif
kdm_dialog.cc
kdm_output_panel.cc
kdm_timing_panel.cc
+ language_subtag_panel.cc
language_tag_dialog.cc
language_tag_widget.cc
kdm_choice.cc