Lei Zhang : comctl32: Fix first day of the week in monthcal.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Apr 10 14:58:04 CDT 2007
Module: wine
Branch: master
Commit: 6fb16fca6beeaf80c1c0294ebeff88da13e28950
URL: http://source.winehq.org/git/wine.git/?a=commit;h=6fb16fca6beeaf80c1c0294ebeff88da13e28950
Author: Lei Zhang <thestig at google.com>
Date: Mon Apr 9 18:25:41 2007 -0700
comctl32: Fix first day of the week in monthcal.
---
dlls/comctl32/monthcal.c | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index 6fe6283..3341626 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -94,6 +94,7 @@ typedef struct
/* control moves when user clicks a scroll button */
int visible; /* # of months visible */
int firstDay; /* Start month calendar with firstDay's day */
+ int firstDayHighWord; /* High word only used externally */
int monthRange;
MONTHDAYSTATE *monthdayState;
SYSTEMTIME todaysDate;
@@ -885,7 +886,7 @@ MONTHCAL_SetMonthDelta(MONTHCAL_INFO *infoPtr, WPARAM wParam)
static LRESULT
MONTHCAL_GetFirstDayOfWeek(const MONTHCAL_INFO *infoPtr)
{
- return infoPtr->firstDay;
+ return MAKELONG(infoPtr->firstDay, infoPtr->firstDayHighWord);
}
@@ -896,7 +897,7 @@ MONTHCAL_GetFirstDayOfWeek(const MONTHCAL_INFO *infoPtr)
static LRESULT
MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, LPARAM lParam)
{
- int prev = infoPtr->firstDay;
+ int prev = MAKELONG(infoPtr->firstDay, infoPtr->firstDayHighWord);
int localFirstDay;
WCHAR buf[40];
@@ -908,11 +909,20 @@ MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, LPARAM lParam)
localFirstDay = atoiW(buf);
if(lParam == -1)
- infoPtr->firstDay = MAKELONG(localFirstDay, FALSE);
+ {
+ infoPtr->firstDay = localFirstDay;
+ infoPtr->firstDayHighWord = FALSE;
+ }
else if(lParam >= 7)
- infoPtr->firstDay = MAKELONG(localFirstDay, TRUE);
+ {
+ infoPtr->firstDay = localFirstDay;
+ infoPtr->firstDayHighWord = TRUE;
+ }
else
- infoPtr->firstDay = MAKELONG(lParam, TRUE);
+ {
+ infoPtr->firstDay = lParam;
+ infoPtr->firstDayHighWord = TRUE;
+ }
return prev;
}
@@ -1879,6 +1889,7 @@ MONTHCAL_Create(HWND hwnd, WPARAM wParam, LPARAM lParam)
/* FIXME: calculate systemtime ->> localtime(substract timezoneinfo) */
GetLocalTime(&infoPtr->todaysDate);
+ infoPtr->firstDayHighWord = FALSE;
MONTHCAL_SetFirstDayOfWeek(infoPtr, (LPARAM)-1);
infoPtr->currentMonth = infoPtr->todaysDate.wMonth;
infoPtr->currentYear = infoPtr->todaysDate.wYear;
More information about the wine-cvs
mailing list