X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8354b47d964c24808c06946a5bafdcf27e877de6..10c2f98a3951e534ac608fb801dd44f795733b82:/include/wx/calctrl.h diff --git a/include/wx/calctrl.h b/include/wx/calctrl.h index b4144a2d1b..549f85f253 100644 --- a/include/wx/calctrl.h +++ b/include/wx/calctrl.h @@ -48,7 +48,10 @@ enum wxCAL_SEQUENTIAL_MONTH_SELECTION = 0x0010, // show the neighbouring weeks in the previous and next month - wxCAL_SHOW_SURROUNDING_WEEKS = 0x0020 + wxCAL_SHOW_SURROUNDING_WEEKS = 0x0020, + + // show week numbers on the left side of the calendar. + wxCAL_SHOW_WEEK_NUMBERS = 0x0040 }; // ---------------------------------------------------------------------------- @@ -157,17 +160,19 @@ public: wxCalendarEvent() : m_wday(wxDateTime::Inv_WeekDay) { } wxCalendarEvent(wxWindow *win, const wxDateTime& dt, wxEventType type) : wxDateEvent(win, dt, type), - m_wday(wxDateTime::Inv_WeekDay) - { - } + m_wday(wxDateTime::Inv_WeekDay) { } + wxCalendarEvent(const wxCalendarEvent& event) + : wxDateEvent(event), m_wday(event.m_wday) { } void SetWeekDay(const wxDateTime::WeekDay wd) { m_wday = wd; } wxDateTime::WeekDay GetWeekDay() const { return m_wday; } + virtual wxEvent *Clone() const { return new wxCalendarEvent(*this); } + private: wxDateTime::WeekDay m_wday; - DECLARE_DYNAMIC_CLASS_NO_COPY(wxCalendarEvent) + DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCalendarEvent) }; // ---------------------------------------------------------------------------- @@ -230,7 +235,7 @@ public: // // NB: we provide implementation for this pure virtual function, derived // classes should call it - virtual bool EnableMonthChange(bool enable) = 0; + virtual bool EnableMonthChange(bool enable = true) = 0; // an item without custom attributes is drawn with the default colours and @@ -256,12 +261,13 @@ public: // holidays support // - // currently all functions in this section are implemented in the generic - // version of the control only and are simply ignored by native ones + // currently only the generic version implements all functions in this + // section; wxMSW implements simple support for holidays (they can be + // just enabled or disabled) and wxGTK doesn't support them at all // equivalent to changing wxCAL_SHOW_HOLIDAYS flag but should be called // instead of just changing it - virtual void EnableHolidayDisplay(bool WXUNUSED(display) = true) { } + virtual void EnableHolidayDisplay(bool display = true); // set/get the colours to use for holidays (if they're enabled) virtual void SetHolidayColours(const wxColour& WXUNUSED(colFg), @@ -310,7 +316,22 @@ protected: // generate all the events for the selection change from dateOld to current // date: SEL_CHANGED, PAGE_CHANGED if necessary and also one of (deprecated) // YEAR/MONTH/DAY_CHANGED ones - void GenerateAllChangeEvents(const wxDateTime& dateOld); + // + // returns true if page changed event was generated, false if the new date + // is still in the same month as before + bool GenerateAllChangeEvents(const wxDateTime& dateOld); + + // call SetHoliday() for all holidays in the current month + // + // should be called on month change, does nothing if wxCAL_SHOW_HOLIDAYS is + // not set and returns false in this case, true if we do show them + bool SetHolidayAttrs(); + + // called by SetHolidayAttrs() to forget the previously set holidays + virtual void ResetHolidayAttrs() { } + + // called by EnableHolidayDisplay() + virtual void RefreshHolidays() { } }; // ----------------------------------------------------------------------------