///////////////////////////////////////////////////////////////////////////////
-// Name: generic/calctrlg.h
+// Name: wx/generic/calctrlg.h
// Purpose: generic implementation of date-picker control
// Author: Vadim Zeitlin
// Modified by:
class WXDLLIMPEXP_FWD_CORE wxComboBox;
class WXDLLIMPEXP_FWD_CORE wxStaticText;
class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
+class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
// ----------------------------------------------------------------------------
// wxGenericCalendarCtrl
virtual wxCalendarDateAttr *GetAttr(size_t day) const
{
- wxCHECK_MSG( day > 0 && day < 32, NULL, _T("invalid day") );
+ wxCHECK_MSG( day > 0 && day < 32, NULL, wxT("invalid day") );
return m_attrs[day - 1];
}
virtual void SetAttr(size_t day, wxCalendarDateAttr *attr)
{
- wxCHECK_RET( day > 0 && day < 32, _T("invalid day") );
+ wxCHECK_RET( day > 0 && day < 32, wxT("invalid day") );
delete m_attrs[day - 1];
m_attrs[day - 1] = attr;
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
// get the date from which we start drawing days
wxDateTime GetStartDate() const;
+ // get the first/last days of the week corresponding to the current style
+ wxDateTime::WeekDay GetWeekStart() const
+ {
+ return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Mon
+ : wxDateTime::Sun;
+ }
+
+ wxDateTime::WeekDay GetWeekEnd() const
+ {
+ return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Sun
+ : wxDateTime::Sat;
+ }
+
+
// is this date shown?
bool IsDateShown(const wxDateTime& date) const;
- // is this date in the given range?
+ // is this date in the currently allowed range?
bool IsDateInRange(const wxDateTime& date) const;
- // range helpers
- bool ChangeYear(wxDateTime* target) const;
- bool ChangeMonth(wxDateTime* target) const;
+ // adjust the date to the currently allowed range, return true if it was
+ // changed
+ bool AdjustDateToRange(wxDateTime *date) const;
// redraw the given date
void RefreshDate(const wxDateTime& date);
// 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;
DECLARE_DYNAMIC_CLASS(wxGenericCalendarCtrl)
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxGenericCalendarCtrl)
+ wxDECLARE_NO_COPY_CLASS(wxGenericCalendarCtrl);
};
#endif // _WX_GENERIC_CALCTRLG_H