/* 64 bit */
-/* NB: we #define and not typedef wxLongLong_t because we want to be able to */
-/* use 'unsigned wxLongLong_t' as well and because we use "#ifdef */
+/* NB: we #define and not typedef wxLongLong_t because we use "#ifdef */
/* wxLongLong_t" in wx/longlong.h */
+/* wxULongLong_t is set later (usually to unsigned wxLongLong_t) */
+
/* to avoid compilation problems on 64bit machines with ambiguous method calls */
/* we will need to define this */
#undef wxLongLongIsLong
#define wxLongLongSuffix l
#define wxLongLongFmtSpec _T("l")
#define wxLongLongIsLong
+#elif defined(__WXPALMOS__)
+ #define wxLongLong_t int64_t
+ #define wxLongLongSuffix ll
+ #define wxLongLongFmtSpec _T("ll")
#elif (defined(__VISUALC__) && defined(__WIN32__))
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
#ifdef wxLongLong_t
+
+ #ifdef __WXPALMOS__
+ #define wxULongLong_t uint64_t
+ #else
+ #define wxULongLong_t unsigned wxLongLong_t
+ #endif
+
/* these macros allow to definea 64 bit constants in a portable way */
#define wxLL(x) wxCONCAT(x, wxLongLongSuffix)
#define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix))
typedef wxLongLong_t wxInt64;
- typedef unsigned wxLongLong_t wxUint64;
+ typedef wxULongLong_t wxUint64;
#endif
// default ctor initializes to 0
wxULongLongNative() : m_ll(0) { }
// from long long
- wxULongLongNative(unsigned wxLongLong_t ll) : m_ll(ll) { }
+ wxULongLongNative(wxULongLong_t ll) : m_ll(ll) { }
// from 2 longs
wxULongLongNative(unsigned long hi, unsigned long lo) : m_ll(0)
{
// assign first to avoid precision loss!
- m_ll = ((unsigned wxLongLong_t) hi) << 32;
- m_ll |= (unsigned wxLongLong_t) lo;
+ m_ll = ((wxULongLong_t) hi) << 32;
+ m_ll |= (wxULongLong_t) lo;
}
// default copy ctor is ok
// assignment operators
// from native 64 bit integer
- wxULongLongNative& operator=(unsigned wxLongLong_t ll)
+ wxULongLongNative& operator=(wxULongLong_t ll)
{ m_ll = ll; return *this; }
// assignment operators from wxULongLongNative is ok
{ return (unsigned long)m_ll; }
// convert to native ulong long
- unsigned wxLongLong_t GetValue() const { return m_ll; }
+ wxULongLong_t GetValue() const { return m_ll; }
// convert to ulong with range checking in the debug mode (only!)
unsigned long ToULong() const
wxULongLongNative& operator+=(const wxULongLongNative& ll)
{ m_ll += ll.m_ll; return *this; }
- wxULongLongNative operator+(const unsigned wxLongLong_t ll) const
+ wxULongLongNative operator+(const wxULongLong_t ll) const
{ return wxULongLongNative(m_ll + ll); }
- wxULongLongNative& operator+=(const unsigned wxLongLong_t ll)
+ wxULongLongNative& operator+=(const wxULongLong_t ll)
{ m_ll += ll; return *this; }
// pre increment
wxULongLongNative& operator-=(const wxULongLongNative& ll)
{ m_ll -= ll.m_ll; return *this; }
- wxULongLongNative operator-(const unsigned wxLongLong_t ll) const
+ wxULongLongNative operator-(const wxULongLong_t ll) const
{ return wxULongLongNative(m_ll - ll); }
- wxULongLongNative& operator-=(const unsigned wxLongLong_t ll)
+ wxULongLongNative& operator-=(const wxULongLong_t ll)
{ m_ll -= ll; return *this; }
// pre decrement
wxString& operator<<(wxString&, const wxULongLongNative&);
private:
- unsigned wxLongLong_t m_ll;
+ wxULongLong_t m_ll;
};
#endif // wxUSE_LONGLONG_NATIVE
wxASSERT( (m_ll >> 32) == m_hi && (unsigned long)m_ll == m_lo );
}
- unsigned wxLongLong_t m_ll;
+ wxULongLong_t m_ll;
#endif // wxLONGLONG_TEST_MODE
};
{
public:
// ctors
- wxDatePickerCtrl() { }
+ wxDatePickerCtrl() { Init(); }
wxDatePickerCtrl(wxWindow *parent,
wxWindowID id,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxDatePickerCtrlNameStr)
{
+ Init();
Create(parent, id, dt, pos, size, style, validator, name);
}
protected:
virtual wxSize DoGetBestSize() const;
+private:
+ wxDateTime m_dt;
+
+ void Init() { m_dt = wxDateTime::Today(); }
+
DECLARE_NO_COPY_CLASS(wxDatePickerCtrl)
};
m_hi = m_lo = 0;
#ifdef wxLONGLONG_TEST_MODE
- unsigned wxLongLong_t llOld = m_ll;
+ wxULongLong_t llOld = m_ll;
m_ll = 0;
#endif // wxLONGLONG_TEST_MODE
// If possible, use a function which avoids conversions from
// broken-up time structures to milliseconds
-#if defined(__WXMSW__) && (defined(__WINE__) || defined(__MWERKS__))
+#if defined(__WXPALMOS__)
+ DateTimeType thenst;
+ thenst.second = 0;
+ thenst.minute = 0;
+ thenst.hour = 0;
+ thenst.day = 1;
+ thenst.month = 1;
+ thenst.year = 1970;
+ thenst.weekDay = 5;
+ uint32_t now = TimGetSeconds();
+ uint32_t then = TimDateTimeToSeconds (&thenst);
+ return SysTimeToMilliSecs(SysTimeInSecs(now - then));
+#elif defined(__WXMSW__) && (defined(__WINE__) || defined(__MWERKS__))
// This should probably be the way all WXMSW compilers should do it
// Go direct to the OS for time
wxString label;
if ( dt.IsValid() )
+ {
label = dt.FormatDate();
+ m_dt = dt;
+ }
if(!wxControl::PalmCreateControl(selectorTriggerCtl, label, pos, size))
return false;
void wxDatePickerCtrl::SetValue(const wxDateTime& dt)
{
if ( dt.IsValid() )
- SetLabel(dt.FormatDate());
- else
- SetLabel(wxEmptyString);
+ 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)
bool wxDatePickerCtrl::SendClickEvent()
{
- wxDateTime dt(wxDateTime::Today());
- int16_t month = dt.GetMonth();
- int16_t day = dt.GetDay();
- int16_t year = dt.GetYear();
+ int16_t month = m_dt.GetMonth();
+ int16_t day = m_dt.GetDay();
+ int16_t year = m_dt.GetYear();
- if(SelectDay(selectDayByMonth,&month,&day,&year,_T("Pick date")));
+ if(!SelectDay(selectDayByDay,&month,&day,&year,_T("Pick date")))
+ return false;
+ wxDateTime dt(m_dt);
+ dt.Set((wxDateTime::wxDateTime_t)day, (wxDateTime::Month)month, (int)year);
+ SetValue(dt);
+ return true;
}
#endif // wxUSE_DATEPICKCTRL