X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3ed70208bcae02080d48217b7e0165a7b21ffec..2404ce8d8aec4de1b892034be47a3c2e0a2d47af:/include/wx/msw/calctrl.h?ds=sidebyside

diff --git a/include/wx/msw/calctrl.h b/include/wx/msw/calctrl.h
index 3f527182f1..50df43095e 100644
--- a/include/wx/msw/calctrl.h
+++ b/include/wx/msw/calctrl.h
@@ -13,7 +13,7 @@
 class WXDLLIMPEXP_ADV wxCalendarCtrl : public wxCalendarCtrlBase
 {
 public:
-    wxCalendarCtrl() { }
+    wxCalendarCtrl() { Init(); }
     wxCalendarCtrl(wxWindow *parent,
                    wxWindowID id,
                    const wxDateTime& date = wxDefaultDateTime,
@@ -22,6 +22,8 @@ public:
                    long style = wxCAL_SHOW_HOLIDAYS,
                    const wxString& name = wxCalendarNameStr)
     {
+        Init();
+
         Create(parent, id, date, pos, size, style, name);
     }
 
@@ -48,6 +50,8 @@ public:
                                             wxDateTime *date = NULL,
                                             wxDateTime::WeekDay *wd = NULL);
 
+    virtual void SetWindowStyleFlag(long style);
+
 protected:
     virtual wxSize wxCalendarCtrl::DoGetBestSize() const;
 
@@ -55,11 +59,29 @@ protected:
 
     virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
 
+    void MSWOnClick(wxMouseEvent& event);
     void MSWOnDoubleClick(wxMouseEvent& event);
 
 private:
+    void Init() { m_marks = 0; }
+
+    // bring the control in sync with m_marks
+    void UpdateMarks();
+
+    // set first day of week in the control to correspond to our
+    // wxCAL_MONDAY_FIRST flag
+    void UpdateFirstDayOfWeek();
+
+
+    // current date, we need to store it instead of simply retrieving it from
+    // the control as needed in order to be able to generate the correct events
+    // from MSWOnNotify()
     wxDateTime m_date;
 
+    // bit field containing the state (marked or not) of all days in the month
+    wxUint32 m_marks;
+
+
     DECLARE_DYNAMIC_CLASS(wxCalendarCtrl)
     DECLARE_NO_COPY_CLASS(wxCalendarCtrl)
 };