]> git.saurik.com Git - wxWidgets.git/blobdiff - src/palmos/datectrl.cpp
now we don't only show label mnemonics but they also work
[wxWidgets.git] / src / palmos / datectrl.cpp
index 5461f6471dd8f2ebbe5033e79771408f1175aebf..ca11de84dacdeccaa560c646a093635be6693bff 100644 (file)
 #define _WX_DEFINE_DATE_EVENTS_
 #include "wx/dateevt.h"
 
+#include <Control.h>
+#include <SelDay.h>
+
+IMPLEMENT_DYNAMIC_CLASS(wxDatePickerCtrl, wxControl)
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -59,9 +64,12 @@ bool wxDatePickerCtrl::Create(wxWindow *parent,
     wxString label;
 
     if ( dt.IsValid() )
-        label = _T("test2");
+    {
+        label = dt.FormatDate();
+        m_dt = dt;
+    }
 
-    ig(!wxControl::PalmCreateControl(selectorTriggerCtl, label, pos, size))
+    if(!wxControl::PalmCreateControl(selectorTriggerCtl, label, pos, size))
         return false;
 
     return true;
@@ -73,9 +81,7 @@ bool wxDatePickerCtrl::Create(wxWindow *parent,
 
 wxSize wxDatePickerCtrl::DoGetBestSize() const
 {
-    const int y = GetCharHeight();
-
-    return wxSize(DEFAULT_ITEM_WIDTH, EDIT_HEIGHT_FROM_CHAR_HEIGHT(y));
+    return wxSize(16,16);
 }
 
 // ----------------------------------------------------------------------------
@@ -84,14 +90,15 @@ wxSize wxDatePickerCtrl::DoGetBestSize() const
 
 void wxDatePickerCtrl::SetValue(const wxDateTime& dt)
 {
-    SetLabel(_T("test1"));
+    if ( dt.IsValid() )
+        m_dt = dt;
+
+    SetLabel(m_dt.FormatDate());
 }
 
 wxDateTime wxDatePickerCtrl::GetValue() const
 {
-    wxDateTime dt;
-    // TODO
-    return dt;
+    return m_dt;
 }
 
 void wxDatePickerCtrl::SetRange(const wxDateTime& dt1, const wxDateTime& dt2)
@@ -105,5 +112,25 @@ bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const
     return false;
 }
 
+// ----------------------------------------------------------------------------
+// helpers
+// ----------------------------------------------------------------------------
+
+bool wxDatePickerCtrl::SendClickEvent()
+{
+    int16_t month = (int16_t)m_dt.GetMonth() + 1;
+    int16_t day = m_dt.GetDay();
+    int16_t year = m_dt.GetYear();
+
+    if(!SelectDay(selectDayByDay,&month,&day,&year,_T("Pick date")))
+        return false;
+    wxDateTime dt(m_dt);
+    dt.Set((wxDateTime::wxDateTime_t)day,
+           (wxDateTime::Month)(month-1),
+           (int)year);
+    SetValue(dt);
+    return true;
+}
+
 #endif // wxUSE_DATEPICKCTRL