/*
- 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;
};