implemented toggling of wxCAL_MONDAY_FIRST in the native MSW version of wxCalendarCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
82c6027b47
commit
db0b0942f8
@ -50,6 +50,8 @@ public:
|
||||
wxDateTime *date = NULL,
|
||||
wxDateTime::WeekDay *wd = NULL);
|
||||
|
||||
virtual void SetWindowStyleFlag(long style);
|
||||
|
||||
protected:
|
||||
virtual wxSize wxCalendarCtrl::DoGetBestSize() const;
|
||||
|
||||
@ -62,8 +64,13 @@ protected:
|
||||
private:
|
||||
void Init() { m_marks = 0; }
|
||||
|
||||
// bring the control in sync with m_marks
|
||||
void UpdateMarks();
|
||||
|
||||
// set first day of week in the control to correspond to our
|
||||
// wxCAL_MONDAY_FIRST flag
|
||||
void UpdateFirstDayOfWeek();
|
||||
|
||||
|
||||
// current date, we need to store it instead of simply retrieving it from
|
||||
// the control as needed in order to be able to generate the correct events
|
||||
|
@ -222,9 +222,9 @@ enum wxCalendarHitTestResult
|
||||
|
||||
@beginStyleTable
|
||||
@style{wxCAL_SUNDAY_FIRST}:
|
||||
Show Sunday as the first day in the week (only generic)
|
||||
Show Sunday as the first day in the week (not in wxGTK)
|
||||
@style{wxCAL_MONDAY_FIRST}:
|
||||
Show Monday as the first day in the week (only generic)
|
||||
Show Monday as the first day in the week (not in wxGTK)
|
||||
@style{wxCAL_SHOW_HOLIDAYS}:
|
||||
Highlight holidays in the calendar (only generic)
|
||||
@style{wxCAL_NO_YEAR_CHANGE}:
|
||||
@ -233,7 +233,7 @@ enum wxCalendarHitTestResult
|
||||
Disable the month (and, implicitly, the year) changing
|
||||
@style{wxCAL_SHOW_SURROUNDING_WEEKS}:
|
||||
Show the neighbouring weeks in the previous and next months
|
||||
(only generic)
|
||||
(only generic, always on for the native controls)
|
||||
@style{wxCAL_SEQUENTIAL_MONTH_SELECTION}:
|
||||
Use alternative, more compact, style for the month and year
|
||||
selection controls. (only generic)
|
||||
@ -400,7 +400,9 @@ public:
|
||||
/**
|
||||
Returns one of wxCalendarHitTestResult constants and fills either
|
||||
@a date or @a wd pointer with the corresponding value depending on the
|
||||
hit test code. Only in generic wxCalendarCtrl.
|
||||
hit test code.
|
||||
|
||||
Not implemented in wxGTK currently.
|
||||
*/
|
||||
wxCalendarHitTestResult HitTest(const wxPoint& pos,
|
||||
wxDateTime* date = NULL,
|
||||
@ -421,6 +423,8 @@ public:
|
||||
|
||||
/**
|
||||
Sets the current date.
|
||||
|
||||
The @a date parameter must be valid.
|
||||
*/
|
||||
void SetDate(const wxDateTime& date);
|
||||
|
||||
|
@ -269,7 +269,9 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||
|
||||
|
||||
EVT_UPDATE_UI(Calendar_Cal_SeqMonth, MyFrame::OnUpdateUIGenericOnly)
|
||||
#ifdef __WXGTK20__
|
||||
EVT_UPDATE_UI(Calendar_Cal_Monday, MyFrame::OnUpdateUIGenericOnly)
|
||||
#endif
|
||||
EVT_UPDATE_UI(Calendar_Cal_Holidays, MyFrame::OnUpdateUIGenericOnly)
|
||||
EVT_UPDATE_UI(Calendar_Cal_Special, MyFrame::OnUpdateUIGenericOnly)
|
||||
EVT_UPDATE_UI(Calendar_Cal_SurroundWeeks, MyFrame::OnUpdateUIGenericOnly)
|
||||
|
@ -87,6 +87,9 @@ wxCalendarCtrl::Create(wxWindow *parent,
|
||||
if ( !MSWCreateControl(clsname, wxEmptyString, pos, size) )
|
||||
return false;
|
||||
|
||||
// initialize the control
|
||||
UpdateFirstDayOfWeek();
|
||||
|
||||
SetDate(dt.IsValid() ? dt : wxDateTime::Today());
|
||||
|
||||
UpdateMarks();
|
||||
@ -115,12 +118,21 @@ WXDWORD wxCalendarCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
|
||||
return styleMSW;
|
||||
}
|
||||
|
||||
// TODO: handle WM_WININICHANGE
|
||||
void wxCalendarCtrl::SetWindowStyleFlag(long style)
|
||||
{
|
||||
const bool hadMondayFirst = HasFlag(wxCAL_MONDAY_FIRST);
|
||||
|
||||
wxCalendarCtrlBase::SetWindowStyleFlag(style);
|
||||
|
||||
if ( HasFlag(wxCAL_MONDAY_FIRST) != hadMondayFirst )
|
||||
UpdateFirstDayOfWeek();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxCalendarCtrl geometry
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// TODO: handle WM_WININICHANGE
|
||||
wxSize wxCalendarCtrl::DoGetBestSize() const
|
||||
{
|
||||
RECT rc;
|
||||
@ -324,6 +336,11 @@ void wxCalendarCtrl::UpdateMarks()
|
||||
}
|
||||
}
|
||||
|
||||
void wxCalendarCtrl::UpdateFirstDayOfWeek()
|
||||
{
|
||||
MonthCal_SetFirstDayOfWeek(GetHwnd(), HasFlag(wxCAL_MONDAY_FIRST) ? 0 : 6);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxCalendarCtrl events
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user