diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-03-19 20:30:20 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-03-19 20:57:45 +0100 |
| commit | c7d1f6e7988888811fdac36c465919f170a06c7a (patch) | |
| tree | 66a502347cae49b0238c008c8c69241a2c1fc506 | |
| parent | 525c81d62f96829888b8d10e121e7653926e55e1 (diff) | |
Make a small class to choose KDM types.
| -rw-r--r-- | src/wx/kdm_choice.cc | 40 | ||||
| -rw-r--r-- | src/wx/kdm_choice.h | 33 | ||||
| -rw-r--r-- | src/wx/kdm_output_panel.cc | 9 | ||||
| -rw-r--r-- | src/wx/kdm_output_panel.h | 3 | ||||
| -rw-r--r-- | src/wx/wscript | 3 |
5 files changed, 80 insertions, 8 deletions
diff --git a/src/wx/kdm_choice.cc b/src/wx/kdm_choice.cc new file mode 100644 index 000000000..64a43f765 --- /dev/null +++ b/src/wx/kdm_choice.cc @@ -0,0 +1,40 @@ +/* + Copyright (C) 2022 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 "kdm_choice.h" + + +KDMChoice::KDMChoice (wxWindow* parent) + : wxChoice (parent, wxID_ANY) +{ + Append("Modified Transitional 1", reinterpret_cast<void*>(dcp::Formulation::MODIFIED_TRANSITIONAL_1)); + Append("DCI Any", reinterpret_cast<void*>(dcp::Formulation::DCI_ANY)); + Append("DCI Specific", reinterpret_cast<void*>(dcp::Formulation::DCI_SPECIFIC)); + Append("Multiple Modified Transitional 1", reinterpret_cast<void*>(dcp::Formulation::MULTIPLE_MODIFIED_TRANSITIONAL_1)); +} + + +dcp::Formulation +KDMChoice::get () const +{ + return static_cast<dcp::Formulation>(reinterpret_cast<intptr_t>(GetClientData(GetSelection()))); +} + diff --git a/src/wx/kdm_choice.h b/src/wx/kdm_choice.h new file mode 100644 index 000000000..3f2bcdfe0 --- /dev/null +++ b/src/wx/kdm_choice.h @@ -0,0 +1,33 @@ +/* + Copyright (C) 2022 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 <dcp/types.h> +#include <wx/wx.h> + + +class KDMChoice : public wxChoice +{ +public: + KDMChoice (wxWindow* parent); + + dcp::Formulation get () const; +}; + diff --git a/src/wx/kdm_output_panel.cc b/src/wx/kdm_output_panel.cc index e7bbe292d..ec2182c36 100644 --- a/src/wx/kdm_output_panel.cc +++ b/src/wx/kdm_output_panel.cc @@ -23,6 +23,7 @@ #include "confirm_kdm_email_dialog.h" #include "dcpomatic_button.h" #include "kdm_advanced_dialog.h" +#include "kdm_choice.h" #include "kdm_output_panel.h" #include "kdm_timing_panel.h" #include "name_format_editor.h" @@ -69,11 +70,7 @@ KDMOutputPanel::KDMOutputPanel (wxWindow* parent) add_label_to_sizer (table, this, _("KDM type"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); auto type = new wxBoxSizer (wxHORIZONTAL); - _type = new wxChoice (this, wxID_ANY); - _type->Append ("Modified Transitional 1", ((void *) dcp::Formulation::MODIFIED_TRANSITIONAL_1)); - _type->Append ("DCI Any", ((void *) dcp::Formulation::DCI_ANY)); - _type->Append ("DCI Specific", ((void *) dcp::Formulation::DCI_SPECIFIC)); - _type->Append ("Multiple Modified Transitional 1", ((void *) dcp::Formulation::MULTIPLE_MODIFIED_TRANSITIONAL_1)); + _type = new KDMChoice (this); type->Add (_type, 1, wxTOP, DCPOMATIC_CHOICE_TOP_PAD); _type->SetSelection (0); auto advanced = new Button (this, _("Advanced...")); @@ -329,7 +326,7 @@ KDMOutputPanel::make ( dcp::Formulation KDMOutputPanel::formulation () const { - return (dcp::Formulation) reinterpret_cast<intptr_t> (_type->GetClientData (_type->GetSelection())); + return _type->get(); } diff --git a/src/wx/kdm_output_panel.h b/src/wx/kdm_output_panel.h index 0025b0072..37cca30de 100644 --- a/src/wx/kdm_output_panel.h +++ b/src/wx/kdm_output_panel.h @@ -28,6 +28,7 @@ class DirPickerCtrl; class Job; +class KDMChoice; class NameFormatEditor; class wxDirPickerCtrl; class wxRadioButton; @@ -64,7 +65,7 @@ private: void write_to_changed (); void email_changed (); - wxChoice* _type; + KDMChoice* _type; NameFormatEditor* _container_name_format; NameFormatEditor* _filename_format; wxCheckBox* _write_to; diff --git a/src/wx/wscript b/src/wx/wscript index 7e028274e..d2e16c2fe 100644 --- a/src/wx/wscript +++ b/src/wx/wscript @@ -1,5 +1,5 @@ # -# Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net> +# Copyright (C) 2012-2022 Carl Hetherington <cth@carlh.net> # # This file is part of DCP-o-matic. # @@ -95,6 +95,7 @@ sources = """ kdm_timing_panel.cc language_tag_dialog.cc language_tag_widget.cc + kdm_choice.cc make_chain_dialog.cc markers_dialog.cc message_dialog.cc |
