X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Ftimecode.cc;h=f4f0af07a5b33023c33707d420912eaa08472dca;hb=865316f0129c85cdd0248b87502fe97dec94b3f0;hp=0602358a9788083ac2b7fcfa58b160bb2b379037;hpb=e06d1831abc6786933db935f298c8a4e8e76e599;p=dcpomatic.git diff --git a/src/wx/timecode.cc b/src/wx/timecode.cc index 0602358a9..f4f0af07a 100644 --- a/src/wx/timecode.cc +++ b/src/wx/timecode.cc @@ -18,20 +18,21 @@ */ + +#include "dcpomatic_button.h" #include "timecode.h" #include "wx_util.h" -#include "dcpomatic_button.h" #include "lib/util.h" -#include + using std::string; -using std::cout; + TimecodeBase::TimecodeBase (wxWindow* parent, bool set_button) : wxPanel (parent) , _set_button (0) { - wxSize const s = TimecodeBase::size (parent); + auto const s = TimecodeBase::size (parent); wxTextValidator validator (wxFILTER_INCLUDE_CHAR_LIST); wxArrayString list; @@ -46,7 +47,7 @@ TimecodeBase::TimecodeBase (wxWindow* parent, bool set_button) _sizer = new wxBoxSizer (wxHORIZONTAL); _editable = new wxPanel (this); - wxSizer* editable_sizer = new wxBoxSizer (wxHORIZONTAL); + auto editable_sizer = new wxBoxSizer (wxHORIZONTAL); _hours = new wxTextCtrl (_editable, wxID_ANY, wxT(""), wxDefaultPosition, s, 0, validator); _hours->SetMaxLength (2); editable_sizer->Add (_hours); @@ -105,7 +106,7 @@ TimecodeBase::clear () void TimecodeBase::changed () { - if (_set_button) { + if (_set_button && !_ignore_changed) { _set_button->Enable (true); } } @@ -117,6 +118,21 @@ TimecodeBase::set_clicked () if (_set_button) { _set_button->Enable (false); } + + _ignore_changed = true; + if (_hours->GetValue().IsEmpty()) { + _hours->SetValue(wxT("0")); + } + if (_minutes->GetValue().IsEmpty()) { + _minutes->SetValue(wxT("0")); + } + if (_seconds->GetValue().IsEmpty()) { + _seconds->SetValue(wxT("0")); + } + if (_frames->GetValue().IsEmpty()) { + _frames->SetValue(wxT("0")); + } + _ignore_changed = false; } void @@ -131,7 +147,11 @@ wxSize TimecodeBase::size (wxWindow* parent) { wxClientDC dc (parent); - wxSize size = dc.GetTextExtent (wxT ("9999")); +#ifdef DCPOMATIC_OSX + auto size = dc.GetTextExtent(wxT("999")); +#else + auto size = dc.GetTextExtent(wxT("99999")); +#endif size.SetHeight (-1); return size; }