]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/calctrlg.h
in debug mode when clicking with the middle mouse button draw borders around all...
[wxWidgets.git] / include / wx / generic / calctrlg.h
index 682227cc371526d3755feb48f2c8d2e27068d418..9ff4e89b54fcbbebede9e7fe246864c3acb5530a 100644 (file)
@@ -18,6 +18,7 @@
 class WXDLLIMPEXP_FWD_CORE wxComboBox;
 class WXDLLIMPEXP_FWD_CORE wxStaticText;
 class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
 class WXDLLIMPEXP_FWD_CORE wxComboBox;
 class WXDLLIMPEXP_FWD_CORE wxStaticText;
 class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
+class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
 
 // ----------------------------------------------------------------------------
 // wxGenericCalendarCtrl
 
 // ----------------------------------------------------------------------------
 // wxGenericCalendarCtrl
@@ -58,15 +59,18 @@ public:
     // set/get the range in which selection can occur
     // ---------------------------------------------
 
     // set/get the range in which selection can occur
     // ---------------------------------------------
 
-    // all functions in this section are for generic version only
+    virtual bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
+                              const wxDateTime& upperdate = wxDefaultDateTime);
+
+    virtual bool GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const;
+
+    // these functions are for generic version only, don't use them but use the
+    // Set/GetDateRange() above instead
     bool SetLowerDateLimit(const wxDateTime& date = wxDefaultDateTime);
     const wxDateTime& GetLowerDateLimit() const { return m_lowdate; }
     bool SetUpperDateLimit(const wxDateTime& date = wxDefaultDateTime);
     const wxDateTime& GetUpperDateLimit() const { return m_highdate; }
 
     bool SetLowerDateLimit(const wxDateTime& date = wxDefaultDateTime);
     const wxDateTime& GetLowerDateLimit() const { return m_lowdate; }
     bool SetUpperDateLimit(const wxDateTime& date = wxDefaultDateTime);
     const wxDateTime& GetUpperDateLimit() const { return m_highdate; }
 
-    bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
-                      const wxDateTime& upperdate = wxDefaultDateTime);
-
 
     // calendar mode
     // -------------
 
     // calendar mode
     // -------------
@@ -81,9 +85,6 @@ public:
     // corresponds to wxCAL_NO_YEAR_CHANGE bit, deprecated, generic only
     void EnableYearChange(bool enable = true);
 
     // corresponds to wxCAL_NO_YEAR_CHANGE bit, deprecated, generic only
     void EnableYearChange(bool enable = true);
 
-    // corresponds to wxCAL_SHOW_HOLIDAYS bit, generic only
-    void EnableHolidayDisplay(bool display = true);
-
 
     // customization
     // -------------
 
     // customization
     // -------------
@@ -93,34 +94,34 @@ public:
     // all other functions in this section are for generic version only
 
     // header colours are used for painting the weekdays at the top
     // all other functions in this section are for generic version only
 
     // header colours are used for painting the weekdays at the top
-    void SetHeaderColours(const wxColour& colFg, const wxColour& colBg)
+    virtual void SetHeaderColours(const wxColour& colFg, const wxColour& colBg)
     {
         m_colHeaderFg = colFg;
         m_colHeaderBg = colBg;
     }
 
     {
         m_colHeaderFg = colFg;
         m_colHeaderBg = colBg;
     }
 
-    const wxColour& GetHeaderColourFg() const { return m_colHeaderFg; }
-    const wxColour& GetHeaderColourBg() const { return m_colHeaderBg; }
+    virtual const wxColour& GetHeaderColourFg() const { return m_colHeaderFg; }
+    virtual const wxColour& GetHeaderColourBg() const { return m_colHeaderBg; }
 
     // highlight colour is used for the currently selected date
 
     // highlight colour is used for the currently selected date
-    void SetHighlightColours(const wxColour& colFg, const wxColour& colBg)
+    virtual void SetHighlightColours(const wxColour& colFg, const wxColour& colBg)
     {
         m_colHighlightFg = colFg;
         m_colHighlightBg = colBg;
     }
 
     {
         m_colHighlightFg = colFg;
         m_colHighlightBg = colBg;
     }
 
-    const wxColour& GetHighlightColourFg() const { return m_colHighlightFg; }
-    const wxColour& GetHighlightColourBg() const { return m_colHighlightBg; }
+    virtual const wxColour& GetHighlightColourFg() const { return m_colHighlightFg; }
+    virtual const wxColour& GetHighlightColourBg() const { return m_colHighlightBg; }
 
     // holiday colour is used for the holidays (if style & wxCAL_SHOW_HOLIDAYS)
 
     // holiday colour is used for the holidays (if style & wxCAL_SHOW_HOLIDAYS)
-    void SetHolidayColours(const wxColour& colFg, const wxColour& colBg)
+    virtual void SetHolidayColours(const wxColour& colFg, const wxColour& colBg)
     {
         m_colHolidayFg = colFg;
         m_colHolidayBg = colBg;
     }
 
     {
         m_colHolidayFg = colFg;
         m_colHolidayBg = colBg;
     }
 
-    const wxColour& GetHolidayColourFg() const { return m_colHolidayFg; }
-    const wxColour& GetHolidayColourBg() const { return m_colHolidayBg; }
+    virtual const wxColour& GetHolidayColourFg() const { return m_colHolidayFg; }
+    virtual const wxColour& GetHolidayColourBg() const { return m_colHolidayBg; }
 
     virtual wxCalendarDateAttr *GetAttr(size_t day) const
     {
 
     virtual wxCalendarDateAttr *GetAttr(size_t day) const
     {
@@ -139,7 +140,7 @@ public:
 
     virtual void ResetAttr(size_t day) { SetAttr(day, NULL); }
 
 
     virtual void ResetAttr(size_t day) { SetAttr(day, NULL); }
 
-    void SetHoliday(size_t day);
+    virtual void SetHoliday(size_t day);
 
     virtual wxCalendarHitTestResult HitTest(const wxPoint& pos,
                                             wxDateTime *date = NULL,
 
     virtual wxCalendarHitTestResult HitTest(const wxPoint& pos,
                                             wxDateTime *date = NULL,
@@ -165,10 +166,8 @@ public:
 protected:
     // override some base class virtuals
     virtual wxSize DoGetBestSize() const;
 protected:
     // override some base class virtuals
     virtual wxSize DoGetBestSize() const;
-    virtual void DoGetPosition(int *x, int *y) const;
-    virtual void DoGetSize(int *width, int *height) const;
-    virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags);
     virtual void DoMoveWindow(int x, int y, int width, int height);
     virtual void DoMoveWindow(int x, int y, int width, int height);
+    virtual void DoGetSize(int *width, int *height) const;
 
 private:
     // common part of all ctors
 
 private:
     // common part of all ctors
@@ -183,7 +182,9 @@ private:
     void OnDClick(wxMouseEvent& event);
     void OnChar(wxKeyEvent& event);
     void OnMonthChange(wxCommandEvent& event);
     void OnDClick(wxMouseEvent& event);
     void OnChar(wxKeyEvent& event);
     void OnMonthChange(wxCommandEvent& event);
-    void OnYearChange(wxCommandEvent& event);
+
+    void HandleYearChange(wxCommandEvent& event);
+    void OnYearChange(wxSpinEvent& event);
     void OnYearTextChange(wxCommandEvent& event);
 
     // (re)calc m_widthCol and m_heightRow
     void OnYearTextChange(wxCommandEvent& event);
 
     // (re)calc m_widthCol and m_heightRow
@@ -214,12 +215,6 @@ private:
     // change the date inside the same month/year
     void ChangeDay(const wxDateTime& date);
 
     // change the date inside the same month/year
     void ChangeDay(const wxDateTime& date);
 
-    // set the attributes for the holidays if needed
-    void SetHolidayAttrs();
-
-    // reset all holidays
-    void ResetHolidayAttrs();
-
     // deprecated
     bool AllowYearChange() const
     {
     // deprecated
     bool AllowYearChange() const
     {
@@ -239,6 +234,9 @@ public:
     wxControl *GetYearControl() const;
 
 private:
     wxControl *GetYearControl() const;
 
 private:
+    virtual void ResetHolidayAttrs();
+    virtual void RefreshHolidays() { Refresh(); }
+
     // OnPaint helper-methods
 
     // Highlight the [fromdate : todate] range using pen and brush
     // OnPaint helper-methods
 
     // Highlight the [fromdate : todate] range using pen and brush
@@ -253,6 +251,7 @@ private:
     // typed in by the user
     void SetUserChangedYear() { m_userChangedYear = true; }
 
     // typed in by the user
     void SetUserChangedYear() { m_userChangedYear = true; }
 
+
     // the subcontrols
     wxStaticText *m_staticMonth;
     wxComboBox *m_comboMonth;
     // the subcontrols
     wxStaticText *m_staticMonth;
     wxComboBox *m_comboMonth;
@@ -275,7 +274,7 @@ private:
              m_colHeaderFg,
              m_colHeaderBg,
              m_colBackground,
              m_colHeaderFg,
              m_colHeaderBg,
              m_colBackground,
-             m_colSorrounding;
+             m_colSurrounding;
 
     // the attributes for each of the month days
     wxCalendarDateAttr *m_attrs[31];
 
     // the attributes for each of the month days
     wxCalendarDateAttr *m_attrs[31];
@@ -283,7 +282,8 @@ private:
     // the width and height of one column/row in the calendar
     wxCoord m_widthCol,
             m_heightRow,
     // the width and height of one column/row in the calendar
     wxCoord m_widthCol,
             m_heightRow,
-            m_rowOffset;
+            m_rowOffset,
+            m_calendarWeekWidth;
 
     wxRect m_leftArrowRect,
            m_rightArrowRect;
 
     wxRect m_leftArrowRect,
            m_rightArrowRect;