#include <wx/wxprec.h>
#include <wx/wx.h>
#include "wxdragon.h"
#include <wx/timectrl.h>
#include <wx/datetime.h>
static wxDateTime
wxd_to_wx_datetime(const wxd_DateTime_t* wxd_dt)
{
if (!wxd_dt) {
return wxDefaultDateTime;
}
const wxDateTime* dt = reinterpret_cast<const wxDateTime*>(wxd_dt);
return *dt;
}
WXD_EXPORTED wxd_TimePickerCtrl_t*
wxd_TimePickerCtrl_Create(wxd_Window_t* parent, int id, const wxd_DateTime_t* dt,
wxd_Point pos, wxd_Size size, int64_t style)
{
wxWindow* wx_parent = (wxWindow*)parent;
wxPoint wx_pos = wxPoint(pos.x, pos.y); wxSize wx_size = wxSize(size.width, size.height); wxDateTime wx_dt_val = dt ? wxd_to_wx_datetime(dt) : wxDefaultDateTime;
if (style == 0) {
style = wxTP_DEFAULT; }
wxTimePickerCtrl* wx_picker =
new wxTimePickerCtrl(wx_parent, id, wx_dt_val, wx_pos, wx_size, style);
return (wxd_TimePickerCtrl_t*)wx_picker;
}
WXD_EXPORTED wxd_DateTime_t*
wxd_TimePickerCtrl_GetValue(wxd_TimePickerCtrl_t* self)
{
wxTimePickerCtrl* wx_picker = (wxTimePickerCtrl*)self;
if (!wx_picker) {
return nullptr;
}
wxDateTime val = wx_picker->GetValue();
if (!val.IsValid())
return nullptr;
return reinterpret_cast<wxd_DateTime_t*>(new (std::nothrow) wxDateTime(val));
}
WXD_EXPORTED void
wxd_TimePickerCtrl_SetValue(wxd_TimePickerCtrl_t* self, const wxd_DateTime_t* dt)
{
wxTimePickerCtrl* wx_picker = (wxTimePickerCtrl*)self;
if (!wx_picker)
return;
wxDateTime wx_dt_val = dt ? wxd_to_wx_datetime(dt) : wxDefaultDateTime;
wx_picker->SetValue(wx_dt_val);
}