summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-03-19 20:30:20 +0100
committerCarl Hetherington <cth@carlh.net>2022-03-19 20:57:45 +0100
commitc7d1f6e7988888811fdac36c465919f170a06c7a (patch)
tree66a502347cae49b0238c008c8c69241a2c1fc506
parent525c81d62f96829888b8d10e121e7653926e55e1 (diff)
Make a small class to choose KDM types.
-rw-r--r--src/wx/kdm_choice.cc40
-rw-r--r--src/wx/kdm_choice.h33
-rw-r--r--src/wx/kdm_output_panel.cc9
-rw-r--r--src/wx/kdm_output_panel.h3
-rw-r--r--src/wx/wscript3
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