comctl32/monthcal: Store full date info for selection at creation time.

This commit is contained in:
Nikolay Sivov 2009-09-26 01:20:33 +04:00 committed by Alexandre Julliard
parent 0617baf2c3
commit d66dcb4ff8
2 changed files with 50 additions and 16 deletions

View File

@ -1872,25 +1872,23 @@ MONTHCAL_Create(HWND hwnd, LPCREATESTRUCTW lpcs)
infoPtr->firstDayHighWord = FALSE;
MONTHCAL_SetFirstDayOfWeek(infoPtr, -1);
infoPtr->currentMonth = infoPtr->todaysDate.wMonth;
infoPtr->currentYear = infoPtr->todaysDate.wYear;
infoPtr->currentYear = infoPtr->todaysDate.wYear;
infoPtr->minDate = infoPtr->todaysDate;
infoPtr->maxDate = infoPtr->todaysDate;
infoPtr->maxDate.wYear=2050;
infoPtr->minDate.wYear=1950;
infoPtr->maxSelCount = 7;
infoPtr->monthRange = 3;
infoPtr->monthdayState = Alloc
(infoPtr->monthRange * sizeof(MONTHDAYSTATE));
infoPtr->titlebk = comctl32_color.clrActiveCaption;
infoPtr->titletxt = comctl32_color.clrWindow;
infoPtr->monthbk = comctl32_color.clrWindow;
infoPtr->trailingtxt = comctl32_color.clrGrayText;
infoPtr->bk = comctl32_color.clrWindow;
infoPtr->txt = comctl32_color.clrWindowText;
infoPtr->maxDate.wYear = 2050;
infoPtr->minDate.wYear = 1950;
infoPtr->maxSelCount = 7;
infoPtr->monthRange = 3;
infoPtr->monthdayState = Alloc(infoPtr->monthRange * sizeof(MONTHDAYSTATE));
infoPtr->titlebk = comctl32_color.clrActiveCaption;
infoPtr->titletxt = comctl32_color.clrWindow;
infoPtr->monthbk = comctl32_color.clrWindow;
infoPtr->trailingtxt = comctl32_color.clrGrayText;
infoPtr->bk = comctl32_color.clrWindow;
infoPtr->txt = comctl32_color.clrWindowText;
/* set the current day for highlighing */
infoPtr->minSel.wDay = infoPtr->todaysDate.wDay;
infoPtr->maxSel.wDay = infoPtr->todaysDate.wDay;
infoPtr->minSel = infoPtr->todaysDate;
infoPtr->maxSel = infoPtr->todaysDate;
/* call MONTHCAL_UpdateSize to set all of the dimensions */
/* of the control */

View File

@ -1237,6 +1237,41 @@ static void test_monthcal_destroy(void)
ok_sequence(sequences, MONTHCAL_SEQ_INDEX, destroy_monthcal_multi_sel_style_seq, "Destroy monthcal (multi sel style)", FALSE);
}
static void test_monthcal_getselrange(void)
{
HWND hwnd;
SYSTEMTIME st, range[2];
BOOL ret;
hwnd = create_monthcal_control(MCS_MULTISELECT);
/* just after creation selection should start and end today */
ret = SendMessage(hwnd, MCM_GETTODAY, 0, (LPARAM)&st);
expect(TRUE, ret);
ret = SendMessage(hwnd, MCM_GETSELRANGE, 0, (LPARAM)range);
expect(TRUE, ret);
expect(st.wYear, range[0].wYear);
expect(st.wMonth, range[0].wMonth);
expect(st.wDay, range[0].wDay);
expect(st.wDayOfWeek, range[0].wDayOfWeek);
expect(st.wHour, range[0].wHour);
expect(st.wMinute, range[0].wMinute);
expect(st.wSecond, range[0].wSecond);
expect(st.wMilliseconds, range[0].wMilliseconds);
expect(st.wYear, range[1].wYear);
expect(st.wMonth, range[1].wMonth);
expect(st.wDay, range[1].wDay);
expect(st.wDayOfWeek, range[1].wDayOfWeek);
expect(st.wHour, range[1].wHour);
expect(st.wMinute, range[1].wMinute);
expect(st.wSecond, range[1].wSecond);
expect(st.wMilliseconds, range[1].wMilliseconds);
DestroyWindow(hwnd);
}
START_TEST(monthcal)
{
HMODULE hComctl32;
@ -1273,6 +1308,7 @@ START_TEST(monthcal)
test_monthcal_todaylink();
test_monthcal_size();
test_monthcal_maxselday();
test_monthcal_getselrange();
flush_sequences(sequences, NUM_MSG_SEQUENCES);
DestroyWindow(parent_wnd);