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:
@@ -50,6 +50,8 @@ public:
|
|||||||
wxDateTime *date = NULL,
|
wxDateTime *date = NULL,
|
||||||
wxDateTime::WeekDay *wd = NULL);
|
wxDateTime::WeekDay *wd = NULL);
|
||||||
|
|
||||||
|
virtual void SetWindowStyleFlag(long style);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual wxSize wxCalendarCtrl::DoGetBestSize() const;
|
virtual wxSize wxCalendarCtrl::DoGetBestSize() const;
|
||||||
|
|
||||||
@@ -62,8 +64,13 @@ protected:
|
|||||||
private:
|
private:
|
||||||
void Init() { m_marks = 0; }
|
void Init() { m_marks = 0; }
|
||||||
|
|
||||||
|
// bring the control in sync with m_marks
|
||||||
void UpdateMarks();
|
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
|
// 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
|
// the control as needed in order to be able to generate the correct events
|
||||||
|
@@ -222,9 +222,9 @@ enum wxCalendarHitTestResult
|
|||||||
|
|
||||||
@beginStyleTable
|
@beginStyleTable
|
||||||
@style{wxCAL_SUNDAY_FIRST}:
|
@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}:
|
@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}:
|
@style{wxCAL_SHOW_HOLIDAYS}:
|
||||||
Highlight holidays in the calendar (only generic)
|
Highlight holidays in the calendar (only generic)
|
||||||
@style{wxCAL_NO_YEAR_CHANGE}:
|
@style{wxCAL_NO_YEAR_CHANGE}:
|
||||||
@@ -233,7 +233,7 @@ enum wxCalendarHitTestResult
|
|||||||
Disable the month (and, implicitly, the year) changing
|
Disable the month (and, implicitly, the year) changing
|
||||||
@style{wxCAL_SHOW_SURROUNDING_WEEKS}:
|
@style{wxCAL_SHOW_SURROUNDING_WEEKS}:
|
||||||
Show the neighbouring weeks in the previous and next months
|
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}:
|
@style{wxCAL_SEQUENTIAL_MONTH_SELECTION}:
|
||||||
Use alternative, more compact, style for the month and year
|
Use alternative, more compact, style for the month and year
|
||||||
selection controls. (only generic)
|
selection controls. (only generic)
|
||||||
@@ -400,7 +400,9 @@ public:
|
|||||||
/**
|
/**
|
||||||
Returns one of wxCalendarHitTestResult constants and fills either
|
Returns one of wxCalendarHitTestResult constants and fills either
|
||||||
@a date or @a wd pointer with the corresponding value depending on the
|
@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,
|
wxCalendarHitTestResult HitTest(const wxPoint& pos,
|
||||||
wxDateTime* date = NULL,
|
wxDateTime* date = NULL,
|
||||||
@@ -421,6 +423,8 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Sets the current date.
|
Sets the current date.
|
||||||
|
|
||||||
|
The @a date parameter must be valid.
|
||||||
*/
|
*/
|
||||||
void SetDate(const wxDateTime& date);
|
void SetDate(const wxDateTime& date);
|
||||||
|
|
||||||
|
@@ -269,7 +269,9 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
|
|
||||||
|
|
||||||
EVT_UPDATE_UI(Calendar_Cal_SeqMonth, MyFrame::OnUpdateUIGenericOnly)
|
EVT_UPDATE_UI(Calendar_Cal_SeqMonth, MyFrame::OnUpdateUIGenericOnly)
|
||||||
|
#ifdef __WXGTK20__
|
||||||
EVT_UPDATE_UI(Calendar_Cal_Monday, MyFrame::OnUpdateUIGenericOnly)
|
EVT_UPDATE_UI(Calendar_Cal_Monday, MyFrame::OnUpdateUIGenericOnly)
|
||||||
|
#endif
|
||||||
EVT_UPDATE_UI(Calendar_Cal_Holidays, MyFrame::OnUpdateUIGenericOnly)
|
EVT_UPDATE_UI(Calendar_Cal_Holidays, MyFrame::OnUpdateUIGenericOnly)
|
||||||
EVT_UPDATE_UI(Calendar_Cal_Special, MyFrame::OnUpdateUIGenericOnly)
|
EVT_UPDATE_UI(Calendar_Cal_Special, MyFrame::OnUpdateUIGenericOnly)
|
||||||
EVT_UPDATE_UI(Calendar_Cal_SurroundWeeks, MyFrame::OnUpdateUIGenericOnly)
|
EVT_UPDATE_UI(Calendar_Cal_SurroundWeeks, MyFrame::OnUpdateUIGenericOnly)
|
||||||
|
@@ -87,6 +87,9 @@ wxCalendarCtrl::Create(wxWindow *parent,
|
|||||||
if ( !MSWCreateControl(clsname, wxEmptyString, pos, size) )
|
if ( !MSWCreateControl(clsname, wxEmptyString, pos, size) )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// initialize the control
|
||||||
|
UpdateFirstDayOfWeek();
|
||||||
|
|
||||||
SetDate(dt.IsValid() ? dt : wxDateTime::Today());
|
SetDate(dt.IsValid() ? dt : wxDateTime::Today());
|
||||||
|
|
||||||
UpdateMarks();
|
UpdateMarks();
|
||||||
@@ -115,12 +118,21 @@ WXDWORD wxCalendarCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
|
|||||||
return styleMSW;
|
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
|
// wxCalendarCtrl geometry
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// TODO: handle WM_WININICHANGE
|
||||||
wxSize wxCalendarCtrl::DoGetBestSize() const
|
wxSize wxCalendarCtrl::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
RECT rc;
|
RECT rc;
|
||||||
@@ -324,6 +336,11 @@ void wxCalendarCtrl::UpdateMarks()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxCalendarCtrl::UpdateFirstDayOfWeek()
|
||||||
|
{
|
||||||
|
MonthCal_SetFirstDayOfWeek(GetHwnd(), HasFlag(wxCAL_MONDAY_FIRST) ? 0 : 6);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxCalendarCtrl events
|
// wxCalendarCtrl events
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user