X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fkdm_timing_panel.cc;h=53f674e2ecbe01f6edc83ec80461cd68c2259467;hb=8414829693900c3d6362a4f15d677bb7e1462c3e;hp=6c5bd7e3b56a7fbf2bbfcf6d168ff5849b43b09e;hpb=8031edf0ce27b75727438e504128448b0884b426;p=dcpomatic.git diff --git a/src/wx/kdm_timing_panel.cc b/src/wx/kdm_timing_panel.cc index 6c5bd7e3b..53f674e2e 100644 --- a/src/wx/kdm_timing_panel.cc +++ b/src/wx/kdm_timing_panel.cc @@ -1,28 +1,30 @@ /* Copyright (C) 2015-2016 Carl Hetherington - This program is free software; you can redistribute it and/or modify + 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. - This program is distributed in the hope that it will be useful, + 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 this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ #include "kdm_timing_panel.h" #include "wx_util.h" +#include "time_picker.h" #include -#include #include +using std::cout; using boost::bind; KDMTimingPanel::KDMTimingPanel (wxWindow* parent) @@ -30,23 +32,32 @@ KDMTimingPanel::KDMTimingPanel (wxWindow* parent) { wxBoxSizer* overall_sizer = new wxBoxSizer (wxVERTICAL); - wxFlexGridSizer* table = new wxFlexGridSizer (6, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); + wxSizer* table = new wxBoxSizer (wxHORIZONTAL); add_label_to_sizer (table, this, _("From"), true); wxDateTime from; from.SetToCurrent (); _from_date = new wxDatePickerCtrl (this, wxID_ANY, from); - table->Add (_from_date, 1, wxEXPAND); - _from_time = new wxTimePickerCtrl (this, wxID_ANY, from); - table->Add (_from_time, 1, wxEXPAND); + table->Add (_from_date, 0, wxALIGN_CENTER_VERTICAL); + _from_time = new TimePicker (this, from); +#ifdef DCPOMATIC_OSX + /* Hack to tweak alignment, which I can't get right by "proper" means for some reason */ + table->Add (_from_time, 0, wxALIGN_CENTER_VERTICAL | wxTOP, 4); +#else + table->Add (_from_time, 0, wxALIGN_CENTER_VERTICAL); +#endif add_label_to_sizer (table, this, _("until"), true); wxDateTime to = from; /* 1 week from now */ to.Add (wxDateSpan (0, 0, 1, 0)); _until_date = new wxDatePickerCtrl (this, wxID_ANY, to); - table->Add (_until_date, 1, wxEXPAND); - _until_time = new wxTimePickerCtrl (this, wxID_ANY, to); - table->Add (_until_time, 1, wxEXPAND); + table->Add (_until_date, 0, wxALIGN_CENTER_VERTICAL); + _until_time = new TimePicker (this, to); +#ifdef DCPOMATIC_OSX + table->Add (_until_time, 0, wxALIGN_CENTER_VERTICAL | wxTOP, 4); +#else + table->Add (_until_time, 0, wxALIGN_CENTER_VERTICAL); +#endif overall_sizer->Add (table); @@ -60,8 +71,8 @@ KDMTimingPanel::KDMTimingPanel (wxWindow* parent) _from_date->Bind (wxEVT_DATE_CHANGED, bind (&KDMTimingPanel::changed, this)); _until_date->Bind (wxEVT_DATE_CHANGED, bind (&KDMTimingPanel::changed, this)); - _from_time->Bind (wxEVT_TIME_CHANGED, bind (&KDMTimingPanel::changed, this)); - _until_time->Bind (wxEVT_TIME_CHANGED, bind (&KDMTimingPanel::changed, this)); + _from_time->Changed.connect (bind (&KDMTimingPanel::changed, this)); + _until_time->Changed.connect (bind (&KDMTimingPanel::changed, this)); SetSizer (overall_sizer); } @@ -73,13 +84,12 @@ KDMTimingPanel::from () const } boost::posix_time::ptime -KDMTimingPanel::posix_time (wxDatePickerCtrl* date_picker, wxTimePickerCtrl* time_picker) +KDMTimingPanel::posix_time (wxDatePickerCtrl* date_picker, TimePicker* time_picker) { wxDateTime const date = date_picker->GetValue (); - wxDateTime const time = time_picker->GetValue (); return boost::posix_time::ptime ( boost::gregorian::date (date.GetYear(), date.GetMonth() + 1, date.GetDay()), - boost::posix_time::time_duration (time.GetHour(), time.GetMinute(), time.GetSecond()) + boost::posix_time::time_duration (time_picker->hours(), time_picker->minutes(), 0) ); }