don't include wx/popupwin.h in the header, use forward declarations
[wxWidgets.git] / include / wx / generic / datectrl.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: generic/datectrl.h
3 // Purpose: generic wxDatePickerCtrl implementation
4 // Author: Andreas Pflug
5 // Modified by:
6 // Created: 2005-01-19
7 // RCS-ID: $Id$
8 // Copyright: (c) 2005 Andreas Pflug <pgadmin@pse-consulting.de>
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_GENERIC_DATECTRL_H_
13 #define _WX_GENERIC_DATECTRL_H_
14
15 class WXDLLIMPEXP_ADV wxCalendarDateAttr;
16 class WXDLLIMPEXP_ADV wxCalendarCtrl;
17 class WXDLLIMPEXP_ADV wxCalendarEvent;
18 class WXDLLIMPEXP_ADV wxPopupWindow;
19
20 class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase
21 {
22 public:
23 // creating the control
24 wxDatePickerCtrl() { Init(); }
25 wxDatePickerCtrl(wxWindow *parent,
26 wxWindowID id,
27 const wxDateTime& date = wxDefaultDateTime,
28 const wxPoint& pos = wxDefaultPosition,
29 const wxSize& size = wxDefaultSize,
30 long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
31 const wxString& name = wxDatePickerCtrlNameStr);
32
33 bool Create(wxWindow *parent,
34 wxWindowID id,
35 const wxDateTime& date = wxDefaultDateTime,
36 const wxPoint& pos = wxDefaultPosition,
37 const wxSize& size = wxDefaultSize,
38 long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
39 const wxString& name = wxDatePickerCtrlNameStr);
40
41 // wxDatePickerCtrl methods
42 void SetValue(const wxDateTime& date);
43 wxDateTime GetValue() const;
44
45 bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const;
46 void SetRange(const wxDateTime &dt1, const wxDateTime &dt2);
47
48 bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
49 const wxDateTime& upperdate = wxDefaultDateTime);
50
51 // extra methods available only in this (generic) implementation
52 bool SetFormat(const wxChar *fmt);
53 wxCalendarCtrl *GetCalendar() const { return m_cal; }
54
55
56 // implementation only from now on
57 // -------------------------------
58
59 // overridden base class methods
60 virtual bool Destroy();
61
62 virtual bool Enable(bool enable = TRUE);
63 virtual bool Show(bool show = TRUE);
64
65 protected:
66 virtual wxSize DoGetBestSize() const;
67 virtual void DoMoveWindow(int x, int y, int width, int height);
68
69 private:
70 wxPopupWindow *m_popup;
71 wxTextCtrl *m_txt;
72 wxCalendarCtrl *m_cal;
73 wxButton *m_btn;
74 wxString m_format;
75
76 bool m_dropped, m_ignoreDrop;
77
78 void Init();
79 void DropDown(bool down=true);
80
81 void OnText(wxCommandEvent &ev);
82 void OnEditKey(wxKeyEvent & event);
83 void OnCalKey(wxKeyEvent & event);
84 void OnClick(wxCommandEvent &ev);
85 void OnSelChange(wxCalendarEvent &ev);
86 void OnSetFocus(wxFocusEvent &ev);
87 void OnKillFocus(wxFocusEvent &ev);
88 void OnChildSetFocus(wxChildFocusEvent &ev);
89
90 DECLARE_DYNAMIC_CLASS(wxDatePickerCtrl)
91 DECLARE_EVENT_TABLE()
92 DECLARE_NO_COPY_CLASS(wxDatePickerCtrl)
93 };
94
95 #endif // _WX_GENERIC_DATECTRL_H_
96