X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8caa4ed10ec5a89c61dff9d19c3c28ea729b4272..ce22d615fe940444602cf4c167f9ad29361a5d25:/include/wx/calctrl.h diff --git a/include/wx/calctrl.h b/include/wx/calctrl.h index 59e3e68027..dc0d4997f7 100644 --- a/include/wx/calctrl.h +++ b/include/wx/calctrl.h @@ -16,11 +16,44 @@ 2. background bitmap for the calendar? */ -#ifndef _WX_CALCTRL_H -#define _WX_CALCTRL_H +#ifndef _WX_CALCTRL_H_ +#define _WX_CALCTRL_H_ + +#include "wx/defs.h" + +#if wxUSE_CALENDARCTRL #include "wx/datetime.h" +// ---------------------------------------------------------------------------- +// wxCalendarCtrl flags +// ---------------------------------------------------------------------------- + +enum +{ + // show Sunday as the first day of the week (default) + wxCAL_SUNDAY_FIRST = 0x0000, + + // show Monder as the first day of the week + wxCAL_MONDAY_FIRST = 0x0001, + + // highlight holidays + wxCAL_SHOW_HOLIDAYS = 0x0002, + + // disable the year change control, show only the month change one + wxCAL_NO_YEAR_CHANGE = 0x0004, + + // don't allow changing neither month nor year (implies + // wxCAL_NO_YEAR_CHANGE) + wxCAL_NO_MONTH_CHANGE = 0x000c, + + // use MS-style month-selection instead of combo-spin combination + wxCAL_SEQUENTIAL_MONTH_SELECTION = 0x0010, + + // show the neighbouring weeks in the previous and next month + wxCAL_SHOW_SURROUNDING_WEEKS = 0x0020 +}; + // ---------------------------------------------------------------------------- // constants // ---------------------------------------------------------------------------- @@ -30,7 +63,10 @@ enum wxCalendarHitTestResult { wxCAL_HITTEST_NOWHERE, // outside of anything wxCAL_HITTEST_HEADER, // on the header (weekdays) - wxCAL_HITTEST_DAY // on a day in the calendar + wxCAL_HITTEST_DAY, // on a day in the calendar + wxCAL_HITTEST_INCMONTH, + wxCAL_HITTEST_DECMONTH, + wxCAL_HITTEST_SURROUNDING_WEEK }; // border types for a date @@ -47,14 +83,16 @@ enum wxCalendarDateBorder class WXDLLEXPORT wxCalendarDateAttr { +#if !defined(__VISAGECPP__) protected: // This has to be before the use of Init(), for MSVC++ 1.5 + // But dorks up Visualage! void Init(wxCalendarDateBorder border = wxCAL_BORDER_NONE) { m_border = border; m_holiday = FALSE; } - +#endif public: // ctors wxCalendarDateAttr() { Init(); } @@ -97,7 +135,15 @@ public: const wxColour& GetBorderColour() const { return m_colBorder; } const wxFont& GetFont() const { return m_font; } wxCalendarDateBorder GetBorder() const { return m_border; } - +#if defined(__VISAGECPP__) +protected: + // This has to be here for VisualAge + void Init(wxCalendarDateBorder border = wxCAL_BORDER_NONE) + { + m_border = border; + m_holiday = FALSE; + } +#endif private: wxColour m_colText, m_colBack, @@ -129,6 +175,8 @@ protected: private: wxDateTime m_date; wxDateTime::WeekDay m_wday; + + DECLARE_DYNAMIC_CLASS(wxCalendarEvent) }; // ---------------------------------------------------------------------------- @@ -139,14 +187,28 @@ private: #include "wx/generic/calctrl.h" // ---------------------------------------------------------------------------- -// calendar events macros +// calendar event types and macros for handling them // ---------------------------------------------------------------------------- -#define EVT_CALENDAR(id, fn) { wxEVT_CALENDAR_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CALENDAR_SEL_CHANGED(id, fn) { wxEVT_CALENDAR_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CALENDAR_DAY(id, fn) { wxEVT_CALENDAR_DAY_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CALENDAR_MONTH(id, fn) { wxEVT_CALENDAR_MONTH_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CALENDAR_YEAR(id, fn) { wxEVT_CALENDAR_YEAR_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) { wxEVT_CALENDAR_WEEKDAY_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_SEL_CHANGED, 950) + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_DAY_CHANGED, 951) + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_MONTH_CHANGED, 952) + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_YEAR_CHANGED, 953) + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_DOUBLECLICKED, 954) + DECLARE_EVENT_TYPE(wxEVT_CALENDAR_WEEKDAY_CLICKED, 955) +END_DECLARE_EVENT_TYPES() + +typedef void (wxEvtHandler::*wxCalendarEventFunction)(wxCalendarEvent&); + +#define EVT_CALENDAR(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_DAY(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_DAY_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_MONTH(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_MONTH_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_YEAR(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_YEAR_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), +#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CALENDAR_WEEKDAY_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxCalendarEventFunction) & fn, (wxObject *) NULL), + +#endif // wxUSE_CALENDARCTRL + +#endif // _WX_CALCTRL_H_ -#endif // _WX_CALCTRL_H