X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/628e155d8c70da0f962289cf1e1dea3699255707..cf516c2bb2b8bc462f6f0cb852fb2fc2d86c9c66:/include/wx/generic/calctrlg.h diff --git a/include/wx/generic/calctrlg.h b/include/wx/generic/calctrlg.h index 682227cc37..fb85631c50 100644 --- a/include/wx/generic/calctrlg.h +++ b/include/wx/generic/calctrlg.h @@ -18,6 +18,7 @@ class WXDLLIMPEXP_FWD_CORE wxComboBox; class WXDLLIMPEXP_FWD_CORE wxStaticText; class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; +class WXDLLIMPEXP_FWD_CORE wxSpinEvent; // ---------------------------------------------------------------------------- // wxGenericCalendarCtrl @@ -58,15 +59,18 @@ public: // 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 SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, - const wxDateTime& upperdate = wxDefaultDateTime); - // 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_SHOW_HOLIDAYS bit, generic only - void EnableHolidayDisplay(bool display = true); - // 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 - void SetHeaderColours(const wxColour& colFg, const wxColour& colBg) + virtual void SetHeaderColours(const wxColour& colFg, const wxColour& 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 - void SetHighlightColours(const wxColour& colFg, const wxColour& colBg) + virtual void SetHighlightColours(const wxColour& colFg, const wxColour& 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) - void SetHolidayColours(const wxColour& colFg, const wxColour& colBg) + virtual void SetHolidayColours(const wxColour& colFg, const wxColour& 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 { @@ -139,7 +140,7 @@ public: 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, @@ -165,10 +166,8 @@ public: 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 DoGetSize(int *width, int *height) const; private: // common part of all ctors @@ -183,7 +182,9 @@ private: 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 @@ -214,12 +215,6 @@ private: // 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 { @@ -239,6 +234,9 @@ public: wxControl *GetYearControl() const; private: + virtual void ResetHolidayAttrs(); + virtual void RefreshHolidays() { Refresh(); } + // 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; } + // the subcontrols wxStaticText *m_staticMonth; wxComboBox *m_comboMonth; @@ -275,7 +274,7 @@ private: m_colHeaderFg, m_colHeaderBg, m_colBackground, - m_colSorrounding; + m_colSurrounding; // the attributes for each of the month days wxCalendarDateAttr *m_attrs[31];