Fix failure to remove markers when the checkbox is unticked.
[dcpomatic.git] / src / wx / time_picker.h
index 80888301031f18f2599bf5fddc8654cf319aae1d..53b0ce2b8886214128ce476b1de2c2efe6f1f05d 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+#include "lib/warnings.h"
+DCPOMATIC_DISABLE_WARNINGS
 #include <wx/wx.h>
+DCPOMATIC_ENABLE_WARNINGS
 #include <boost/signals2.hpp>
 
-class wxTextCtrl;
-class wxSpinButton;
+class wxSpinCtrl;
+
 
 class TimePicker : public wxPanel
 {
 public:
-       TimePicker (wxWindow* parent, wxDateTime time);
+       TimePicker (wxWindow* parent);
+
+       virtual int hours () const = 0;
+       virtual int minutes () const = 0;
+
+       boost::signals2::signal<void ()> Changed;
+};
+
+
+class TimePickerSpin : public TimePicker
+{
+public:
+       TimePickerSpin (wxWindow* parent, wxDateTime time);
 
        int hours () const;
        int minutes () const;
 
-       boost::signals2::signal<void ()> Changed;
+private:
+       void changed ();
+
+       wxSpinCtrl* _hours;
+       wxSpinCtrl* _minutes;
+};
+
+
+class TimePickerText : public TimePicker
+{
+public:
+       TimePickerText (wxWindow* parent, wxDateTime time);
+
+       int hours () const;
+       int minutes () const;
 
 private:
-       void update_spin ();
-       void update_text ();
+       void changed ();
 
        wxTextCtrl* _hours;
-       wxSpinButton* _hours_spin;
        wxTextCtrl* _minutes;
-       wxSpinButton* _minutes_spin;
-
-       bool _block_update;
 };