Farshad Agah : comctl32: monthcal:
Correct the return value in MCM_SETFIRSTDAYOFWEEK.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Mar 16 07:20:26 CDT 2007
Module: wine
Branch: master
Commit: 86ea6b582088ea347c712be333b85f41aadb1026
URL: http://source.winehq.org/git/wine.git/?a=commit;h=86ea6b582088ea347c712be333b85f41aadb1026
Author: Farshad Agah <f_agah at yahoo.com>
Date: Fri Mar 16 00:34:36 2007 -0700
comctl32: monthcal: Correct the return value in MCM_SETFIRSTDAYOFWEEK.
---
dlls/comctl32/monthcal.c | 20 +++++----
dlls/comctl32/tests/monthcal.c | 89 +++++++++++++++++++++++++++------------
2 files changed, 73 insertions(+), 36 deletions(-)
diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index ded5c5c..9f25689 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -897,19 +897,23 @@ static LRESULT
MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, LPARAM lParam)
{
int prev = infoPtr->firstDay;
+ int localFirstDay;
WCHAR buf[40];
TRACE("day %ld\n", lParam);
- if((lParam >= 0) && (lParam < 7)) {
- infoPtr->firstDay = (int)lParam;
- }
+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, buf, countof(buf));
+ TRACE("%s %d\n", debugstr_w(buf), strlenW(buf));
+
+ localFirstDay = atoiW(buf);
+
+ if(lParam == -1)
+ infoPtr->firstDay = MAKELONG(localFirstDay, FALSE);
+ else if(lParam >= 7)
+ infoPtr->firstDay = MAKELONG(localFirstDay, TRUE);
else
- {
- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_IFIRSTDAYOFWEEK, buf, countof(buf));
- TRACE("%s %d\n", debugstr_w(buf), strlenW(buf));
- infoPtr->firstDay = (atoiW(buf)+1)%7;
- }
+ infoPtr->firstDay = MAKELONG(lParam, TRUE);
+
return prev;
}
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 5552ba9..47648a1 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -135,26 +135,56 @@ static const struct message monthcal_curr_date_seq[] = {
static const struct message monthcal_first_day_seq[] = {
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, -5},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 1},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, -4},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 2},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, -3},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 3},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, -2},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 4},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, -1},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 1},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 2},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
- { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 5},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 3},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 4},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 5},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
{ MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 6},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 7},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 8},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 9},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 10},
+ { MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
+
+ { MCM_SETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 11},
{ MCM_GETFIRSTDAYOFWEEK, sent|wparam|lparam, 0, 0},
{ 0 }
};
@@ -583,40 +613,43 @@ static void test_monthcal_currDate(HWND hwnd)
static void test_monthcal_firstDay(HWND hwnd)
{
- int res, fday, i, temp;
+ int res, fday, i, prev;
TCHAR b[128];
LCID lcid = LOCALE_USER_DEFAULT;
flush_sequences(sequences, NUM_MSG_SEQUENCES);
/* Setter and Getters for first day of week */
- todo_wine {
- /* check for locale first day */
- if(GetLocaleInfo(lcid, LOCALE_IFIRSTDAYOFWEEK, b, 128)){
- fday = atoi(b);
- res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
- expect(fday, res);
- res = SendMessage(hwnd, MCM_SETFIRSTDAYOFWEEK, 0, (LPARAM) 0);
- expect(fday, res);
- }else{
- skip("Cannot retrieve first day of the week\n");
- SendMessage(hwnd, MCM_SETFIRSTDAYOFWEEK, 0, (LPARAM) 0);
- }
+ /* check for locale first day */
+ if(GetLocaleInfo(lcid, LOCALE_IFIRSTDAYOFWEEK, b, 128)){
+ fday = atoi(b);
+ res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
+ expect(fday, res);
+ prev = fday;
- /* check for days of the week*/
- for (i = 1, temp = 0x10000; i < 7; i++, temp++){
- res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
- expect(temp, res);
+ /* checking for the values that actually will be stored as */
+ /* current first day when we set a new value */
+ for (i = -5; i < 12; i++){
res = SendMessage(hwnd, MCM_SETFIRSTDAYOFWEEK, 0, (LPARAM) i);
- expect(temp, res);
+ expect(prev, res);
+ res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
+ prev = res;
+
+ if (i == -1){
+ expect(MAKELONG(fday, FALSE), res);
+ }else if (i >= 7){
+ expect(MAKELONG(fday, TRUE), res);
+ }else{
+ expect(MAKELONG(i, TRUE), res);
+ }
}
- /* check for returning to the original first day */
- res = SendMessage(hwnd, MCM_GETFIRSTDAYOFWEEK, 0, 0);
- todo_wine {expect(temp, res);}
+ ok_sequence(sequences, MONTHCAL_SEQ_INDEX, monthcal_first_day_seq, "monthcal firstDay", FALSE);
+
+ }else{
+ skip("Cannot retrieve first day of the week\n");
}
- ok_sequence(sequences, MONTHCAL_SEQ_INDEX, monthcal_first_day_seq, "monthcal firstDay", FALSE);
}
static void test_monthcal_unicode(HWND hwnd)
More information about the wine-cvs
mailing list