[SYSETUP]

Update the shown date and time on the Date and Time page until the user changes the date or time.
CORE-11896

svn path=/trunk/; revision=74396
This commit is contained in:
Eric Kohl 2017-04-23 21:56:36 +00:00
parent 20689dba23
commit d1ad859a6e

View file

@ -1476,11 +1476,24 @@ SetSystemLocalTime(HWND hwnd, PSETUPDATA SetupData)
return Ret; return Ret;
} }
static VOID
UpdateLocalSystemTime(HWND hwnd)
{
SYSTEMTIME LocalTime;
GetLocalTime(&LocalTime);
DateTime_SetSystemtime(GetDlgItem(hwnd, IDC_DATEPICKER), GDT_VALID, &LocalTime);
DateTime_SetSystemtime(GetDlgItem(hwnd, IDC_TIMEPICKER), GDT_VALID, &LocalTime);
}
static BOOL static BOOL
WriteDateTimeSettings(HWND hwndDlg, PSETUPDATA SetupData) WriteDateTimeSettings(HWND hwndDlg, PSETUPDATA SetupData)
{ {
WCHAR Title[64]; WCHAR Title[64];
WCHAR ErrorLocalTime[256]; WCHAR ErrorLocalTime[256];
GetLocalSystemTime(hwndDlg, SetupData); GetLocalSystemTime(hwndDlg, SetupData);
SetLocalTimeZone(GetDlgItem(hwndDlg, IDC_TIMEZONELIST), SetLocalTimeZone(GetDlgItem(hwndDlg, IDC_TIMEZONELIST),
SetupData); SetupData);
@ -1504,6 +1517,7 @@ WriteDateTimeSettings(HWND hwndDlg, PSETUPDATA SetupData)
return TRUE; return TRUE;
} }
static INT_PTR CALLBACK static INT_PTR CALLBACK
DateTimePageDlgProc(HWND hwndDlg, DateTimePageDlgProc(HWND hwndDlg,
UINT uMsg, UINT uMsg,
@ -1518,7 +1532,6 @@ DateTimePageDlgProc(HWND hwndDlg,
switch (uMsg) switch (uMsg)
{ {
case WM_INITDIALOG: case WM_INITDIALOG:
{
/* Save pointer to the global setup data */ /* Save pointer to the global setup data */
SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam;
SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)SetupData); SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)SetupData);
@ -1542,16 +1555,14 @@ DateTimePageDlgProc(HWND hwndDlg,
SendDlgItemMessage(hwndDlg, IDC_AUTODAYLIGHT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); SendDlgItemMessage(hwndDlg, IDC_AUTODAYLIGHT, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
} }
break;
} case WM_TIMER:
break; UpdateLocalSystemTime(hwndDlg);
break;
case WM_NOTIFY: case WM_NOTIFY:
{ switch (((LPNMHDR)lParam)->code)
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{ {
case PSN_SETACTIVE: case PSN_SETACTIVE:
/* Enable the Back and Next buttons */ /* Enable the Back and Next buttons */
@ -1561,13 +1572,17 @@ DateTimePageDlgProc(HWND hwndDlg,
SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, SetupData->uFirstNetworkWizardPage); SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, SetupData->uFirstNetworkWizardPage);
return TRUE; return TRUE;
} }
SetTimer(hwndDlg, 1, 1000, NULL);
break;
case PSN_KILLACTIVE:
case DTN_DATETIMECHANGE:
KillTimer(hwndDlg, 1);
break; break;
case PSN_WIZNEXT: case PSN_WIZNEXT:
{
WriteDateTimeSettings(hwndDlg, SetupData); WriteDateTimeSettings(hwndDlg, SetupData);
} break;
break;
case PSN_WIZBACK: case PSN_WIZBACK:
SetupData->UnattendSetup = FALSE; SetupData->UnattendSetup = FALSE;
@ -1576,8 +1591,7 @@ DateTimePageDlgProc(HWND hwndDlg,
default: default:
break; break;
} }
} break;
break;
case WM_DESTROY: case WM_DESTROY:
DestroyTimeZoneList(SetupData); DestroyTimeZoneList(SetupData);