X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/39df3acde9a009f9aafe4b218cdfab5bee59724d..254fbd140e67b60f46d7380c6ac242110ddd7585:/include/wx/generic/datectrl.h diff --git a/include/wx/generic/datectrl.h b/include/wx/generic/datectrl.h index e064777469..4dac18355a 100644 --- a/include/wx/generic/datectrl.h +++ b/include/wx/generic/datectrl.h @@ -12,80 +12,100 @@ #ifndef _WX_GENERIC_DATECTRL_H_ #define _WX_GENERIC_DATECTRL_H_ +class WXDLLIMPEXP_ADV wxButton; class WXDLLIMPEXP_ADV wxCalendarDateAttr; class WXDLLIMPEXP_ADV wxCalendarCtrl; class WXDLLIMPEXP_ADV wxCalendarEvent; +class WXDLLIMPEXP_ADV wxDatePopup; +class WXDLLIMPEXP_ADV wxTextCtrl; -class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase +class WXDLLIMPEXP_ADV wxDatePopupInternal; + +class WXDLLIMPEXP_ADV wxDatePickerCtrlGeneric : public wxDatePickerCtrlBase { public: - wxDatePickerCtrl() { Init(); } - wxDatePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS | wxWANTS_CHARS, const wxString& name=wxDatePickerCtrlNameStr); - - bool Create(wxWindow *parent, + // creating the control + wxDatePickerCtrlGeneric() { Init(); } + ~wxDatePickerCtrlGeneric() ; + wxDatePickerCtrlGeneric(wxWindow *parent, wxWindowID id, - const wxDateTime& date, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name=wxDatePickerCtrlNameStr); + const wxDateTime& date = wxDefaultDateTime, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxDatePickerCtrlNameStr) + { + Init(); + + (void)Create(parent, id, date, pos, size, style, validator, name); + } + bool Create(wxWindow *parent, + wxWindowID id, + const wxDateTime& date = wxDefaultDateTime, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, + const wxValidator& validator = wxDefaultValidator, + const wxString& name = wxDatePickerCtrlNameStr); + + // wxDatePickerCtrl methods void SetValue(const wxDateTime& date); wxDateTime GetValue() const; + bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const; void SetRange(const wxDateTime &dt1, const wxDateTime &dt2); - bool Destroy(); + bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, + const wxDateTime& upperdate = wxDefaultDateTime); - bool SetLowerDateLimit(const wxDateTime& date = wxDefaultDateTime) { return m_cal->SetLowerDateLimit(date); } - const wxDateTime& GetLowerDateLimit() const { return m_cal->GetLowerDateLimit(); } - bool SetUpperDateLimit(const wxDateTime& date = wxDefaultDateTime) { return m_cal->SetUpperDateLimit(date); } - const wxDateTime& GetUpperDateLimit() const { return m_cal->GetUpperDateLimit(); } + // extra methods available only in this (generic) implementation + bool SetFormat(const wxChar *fmt); + wxCalendarCtrl *GetCalendar() const { return m_cal; } - bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, const wxDateTime& upperdate = wxDefaultDateTime) - { return m_cal->SetDateRange(lowerdate, upperdate); } - wxCalendarDateAttr *GetAttr(size_t day) const { return m_cal->GetAttr(day); } - void SetAttr(size_t day, wxCalendarDateAttr *attr) { m_cal->SetAttr(day, attr); } - void SetHoliday(size_t day) { m_cal->SetHoliday(day); } - void ResetAttr(size_t day) { m_cal->ResetAttr(day); } - bool SetFormat(const wxChar *fmt); + // implementation only from now on + // ------------------------------- - virtual bool Enable(bool enable = TRUE); - virtual bool Show(bool show = TRUE); + // overridden base class methods + virtual bool Destroy(); + virtual bool Enable(bool enable = true); + virtual bool Show(bool show = true); + +protected: virtual wxSize DoGetBestSize() const; virtual void DoMoveWindow(int x, int y, int width, int height); private: - wxDialog *m_dlg; + void Init(); + void DropDown(bool down = true); + + void OnText(wxCommandEvent &event); + void OnEditKey(wxKeyEvent & event); + void OnCalKey(wxKeyEvent & event); + void OnClick(wxCommandEvent &event); + void OnSelChange(wxCalendarEvent &event); + void OnSetFocus(wxFocusEvent &event); + void OnKillFocus(wxFocusEvent &event); + void OnChildSetFocus(wxChildFocusEvent &event); + void OnSize(wxSizeEvent& event); + + + wxDatePopupInternal *m_popup; wxTextCtrl *m_txt; wxCalendarCtrl *m_cal; wxButton *m_btn; wxString m_format; + wxDateTime m_currentDate; - bool m_dropped, m_ignoreDrop; + bool m_dropped, + m_ignoreDrop; - void Init(); - void DropDown(bool down=true); - - void OnText(wxCommandEvent &ev); - void OnEditKey(wxKeyEvent & event); - void OnCalKey(wxKeyEvent & event); - void OnClick(wxCommandEvent &ev); - void OnSelChange(wxCalendarEvent &ev); - void OnSetFocus(wxFocusEvent &ev); - void OnKillFocus(wxFocusEvent &ev); - void OnChildSetFocus(wxChildFocusEvent &ev); - DECLARE_DYNAMIC_CLASS(wxDatePickerCtrl) DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxDatePickerCtrl) + DECLARE_NO_COPY_CLASS(wxDatePickerCtrlGeneric) }; #endif // _WX_GENERIC_DATECTRL_H_