Nikolay Sivov : comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_VISIBLE flag, single calendar control only.
Alexandre Julliard
julliard at winehq.org
Mon Oct 5 09:54:29 CDT 2009
Module: wine
Branch: master
Commit: 96022da6c88a3d60050ed5e1032f7666351072d0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=96022da6c88a3d60050ed5e1032f7666351072d0
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Sun Oct 4 18:27:21 2009 +0400
comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_VISIBLE flag, single calendar control only.
---
dlls/comctl32/monthcal.c | 23 +++++++++++++++++++++--
dlls/comctl32/tests/monthcal.c | 3 +++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/monthcal.c b/dlls/comctl32/monthcal.c
index ed059ff..b5cb65a 100644
--- a/dlls/comctl32/monthcal.c
+++ b/dlls/comctl32/monthcal.c
@@ -936,10 +936,29 @@ MONTHCAL_SetFirstDayOfWeek(MONTHCAL_INFO *infoPtr, INT day)
static LRESULT
-MONTHCAL_GetMonthRange(const MONTHCAL_INFO *infoPtr)
+MONTHCAL_GetMonthRange(const MONTHCAL_INFO *infoPtr, DWORD flag, SYSTEMTIME *st)
{
TRACE("\n");
+ if(st)
+ {
+ if(flag == GMR_VISIBLE)
+ {
+ /*FIXME: currently multicalendar feature isn't implelented, so entirely
+ visible month is current */
+ st[0] = st[1] = infoPtr->curSel;
+
+ st[0].wDay = 1;
+ st[0].wDayOfWeek = MONTHCAL_CalculateDayOfWeek(1, st[0].wMonth, st[0].wYear);
+
+ st[1].wDay = MONTHCAL_MonthLength(st[1].wMonth, st[1].wYear);
+ st[1].wDayOfWeek = MONTHCAL_CalculateDayOfWeek(st[1].wDay, st[1].wMonth,
+ st[1].wYear);
+ }
+ else
+ FIXME("only GMR_VISIBLE flag supported, got %d\n", flag);
+ }
+
return infoPtr->monthRange;
}
@@ -2053,7 +2072,7 @@ MONTHCAL_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return MONTHCAL_SetSelRange(infoPtr, (LPSYSTEMTIME)lParam);
case MCM_GETMONTHRANGE:
- return MONTHCAL_GetMonthRange(infoPtr);
+ return MONTHCAL_GetMonthRange(infoPtr, wParam, (SYSTEMTIME*)lParam);
case MCM_SETDAYSTATE:
return MONTHCAL_SetDayState(infoPtr, (INT)wParam, (LPMONTHDAYSTATE)lParam);
diff --git a/dlls/comctl32/tests/monthcal.c b/dlls/comctl32/tests/monthcal.c
index 1ac2bb8..4a051b7 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -1323,10 +1323,13 @@ static void test_monthcal_monthrange(void)
res = SendMessage(hwnd, MCM_GETMONTHRANGE, GMR_VISIBLE, (LPARAM)st_visible);
todo_wine {
expect(2, res);
+ }
expect(2000, st_visible[0].wYear);
expect(11, st_visible[0].wMonth);
expect(1, st_visible[0].wDay);
expect(2000, st_visible[1].wYear);
+
+ todo_wine {
expect(12, st_visible[1].wMonth);
expect(31, st_visible[1].wDay);
}
More information about the wine-cvs
mailing list