[PATCH 02/10] Implement MCM_GETMONTHRANGE for GMR_VISIBLE flag, single calendar control only
Nikolay Sivov
bunglehead at gmail.com
Sun Oct 4 09:27:21 CDT 2009
---
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 28b3646..a8b7784 100644
--- a/dlls/comctl32/tests/monthcal.c
+++ b/dlls/comctl32/tests/monthcal.c
@@ -1295,10 +1295,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);
}
--
1.5.6.5
--=-UFuQ8AEoAl1p2enR4K1k--
More information about the wine-patches
mailing list