class WXDLLIMPEXP_FWD_CORE wxComboBox;
class WXDLLIMPEXP_FWD_CORE wxStaticText;
class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
+class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
// ----------------------------------------------------------------------------
// wxGenericCalendarCtrl
// 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
// -------------
// 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
// -------------
// 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
{
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,
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
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
// 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
{
wxControl *GetYearControl() const;
private:
+ virtual void ResetHolidayAttrs();
+ virtual void RefreshHolidays() { Refresh(); }
+
// OnPaint helper-methods
// Highlight the [fromdate : todate] range using pen and brush
// typed in by the user
void SetUserChangedYear() { m_userChangedYear = true; }
+
// the subcontrols
wxStaticText *m_staticMonth;
wxComboBox *m_comboMonth;
m_colHeaderFg,
m_colHeaderBg,
m_colBackground,
- m_colSorrounding;
+ m_colSurrounding;
// the attributes for each of the month days
wxCalendarDateAttr *m_attrs[31];
// 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;