X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bf956fac0e89eab569c41a9f121e728958767de7..4c7b2d367ebf24336712998ead62a959c3741fb1:/include/wx/calctrl.h diff --git a/include/wx/calctrl.h b/include/wx/calctrl.h index 0be77175d4..4d800cd3a5 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 }; // ---------------------------------------------------------------------------- @@ -185,6 +188,32 @@ public: virtual bool SetDate(const wxDateTime& date) = 0; + // restricting the dates shown by the control to the specified range: only + // implemented in the generic and MSW versions for now + + // if either date is set, the corresponding limit will be enforced and true + // returned; if none are set, the existing restrictions are removed and + // false is returned + virtual bool + SetDateRange(const wxDateTime& WXUNUSED(lowerdate) = wxDefaultDateTime, + const wxDateTime& WXUNUSED(upperdate) = wxDefaultDateTime) + { + return false; + } + + // retrieves the limits currently in use (wxDefaultDateTime if none) in the + // provided pointers (which may be NULL) and returns true if there are any + // limits or false if none + virtual bool + GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const + { + if ( lowerdate ) + *lowerdate = wxDefaultDateTime; + if ( upperdate ) + *upperdate = wxDefaultDateTime; + return false; + } + // returns one of wxCAL_HITTEST_XXX constants and fills either date or wd // with the corresponding value (none for NOWHERE, the date for DAY and wd // for HEADER) @@ -271,12 +300,20 @@ public: // implementation only from now on - // generate the given calendar event(s) - void GenerateEvent(wxEventType type) + // generate the given calendar event, return true if it was processed + // + // NB: this is public because it's used from GTK+ callbacks + bool GenerateEvent(wxEventType type) { wxCalendarEvent event(this, GetDate(), type); - HandleWindowEvent(event); + return HandleWindowEvent(event); } + +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); }; // ---------------------------------------------------------------------------- @@ -285,16 +322,22 @@ public: #define wxCalendarNameStr "CalendarCtrl" -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #define wxHAS_NATIVE_CALENDARCTRL - #include "wx/gtk/calctrl.h" - #define wxCalendarCtrl wxGtkCalendarCtrl -#else +#ifndef __WXUNIVERSAL__ + #if defined(__WXGTK20__) + #define wxHAS_NATIVE_CALENDARCTRL + #include "wx/gtk/calctrl.h" + #define wxCalendarCtrl wxGtkCalendarCtrl + #elif defined(__WXMSW__) + #define wxHAS_NATIVE_CALENDARCTRL + #include "wx/msw/calctrl.h" + #endif +#endif // !__WXUNIVERSAL__ + +#ifndef wxHAS_NATIVE_CALENDARCTRL #include "wx/generic/calctrlg.h" #define wxCalendarCtrl wxGenericCalendarCtrl #endif - // ---------------------------------------------------------------------------- // calendar event types and macros for handling them // ----------------------------------------------------------------------------