From 41c172dc42692d2c62555aa98ab2ab9e5faf734c Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Fri, 5 May 2006 15:35:56 +0000 Subject: [PATCH] *added year selection box *display current time svn path=/trunk/; revision=21803 --- reactos/dll/cpl/timedate/Cz.rc | 4 +++ reactos/dll/cpl/timedate/De.rc | 4 +++ reactos/dll/cpl/timedate/Dk.rc | 4 +++ reactos/dll/cpl/timedate/En.rc | 5 ++++ reactos/dll/cpl/timedate/Es.rc | 4 +++ reactos/dll/cpl/timedate/Fr.rc | 4 +++ reactos/dll/cpl/timedate/Gr.rc | 5 ++++ reactos/dll/cpl/timedate/Hu.rc | 5 ++++ reactos/dll/cpl/timedate/Ja.rc | 5 ++++ reactos/dll/cpl/timedate/Nl.rc | 4 +++ reactos/dll/cpl/timedate/Pl.rc | 4 +++ reactos/dll/cpl/timedate/Ru.rc | 4 +++ reactos/dll/cpl/timedate/Sv.rc | 4 +++ reactos/dll/cpl/timedate/resource.h | 2 ++ reactos/dll/cpl/timedate/timedate.c | 40 +++++++++++++++++++++++++++++ 15 files changed, 98 insertions(+) diff --git a/reactos/dll/cpl/timedate/Cz.rc b/reactos/dll/cpl/timedate/Cz.rc index 48ffe6195e2..b2cc8fddcda 100644 --- a/reactos/dll/cpl/timedate/Cz.rc +++ b/reactos/dll/cpl/timedate/Cz.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Datum", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/De.rc b/reactos/dll/cpl/timedate/De.rc index eb326d30495..e0a4f4a1ef5 100644 --- a/reactos/dll/cpl/timedate/De.rc +++ b/reactos/dll/cpl/timedate/De.rc @@ -8,6 +8,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Datum", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Dk.rc b/reactos/dll/cpl/timedate/Dk.rc index 485c1fcdcc2..f659d69fa10 100644 --- a/reactos/dll/cpl/timedate/Dk.rc +++ b/reactos/dll/cpl/timedate/Dk.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Dato", -1, 4, 2, 126, 133 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/En.rc b/reactos/dll/cpl/timedate/En.rc index ed09aea3ef8..60d19a2a050 100644 --- a/reactos/dll/cpl/timedate/En.rc +++ b/reactos/dll/cpl/timedate/En.rc @@ -7,6 +7,11 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Date", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 + CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Es.rc b/reactos/dll/cpl/timedate/Es.rc index e531428e599..08275cd970e 100644 --- a/reactos/dll/cpl/timedate/Es.rc +++ b/reactos/dll/cpl/timedate/Es.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Dia", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Fr.rc b/reactos/dll/cpl/timedate/Fr.rc index 23f5b86e541..80d80b72bc8 100644 --- a/reactos/dll/cpl/timedate/Fr.rc +++ b/reactos/dll/cpl/timedate/Fr.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Date", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Gr.rc b/reactos/dll/cpl/timedate/Gr.rc index db77069d479..ff263831ae2 100644 --- a/reactos/dll/cpl/timedate/Gr.rc +++ b/reactos/dll/cpl/timedate/Gr.rc @@ -7,6 +7,11 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Çìåñïìçíßá", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 + CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Hu.rc b/reactos/dll/cpl/timedate/Hu.rc index 5acc59ad8a9..e1be94d0e2e 100644 --- a/reactos/dll/cpl/timedate/Hu.rc +++ b/reactos/dll/cpl/timedate/Hu.rc @@ -8,6 +8,11 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Dátum", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 + CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Ja.rc b/reactos/dll/cpl/timedate/Ja.rc index 9ef482aab70..4b63c6a8d07 100644 --- a/reactos/dll/cpl/timedate/Ja.rc +++ b/reactos/dll/cpl/timedate/Ja.rc @@ -7,6 +7,11 @@ FONT 9, "MS UI Gothic", 0, 0, 0x0 BEGIN GROUPBOX "“ú•t(&D)", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 + CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Nl.rc b/reactos/dll/cpl/timedate/Nl.rc index aa557382ebd..5514719cb71 100644 --- a/reactos/dll/cpl/timedate/Nl.rc +++ b/reactos/dll/cpl/timedate/Nl.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Da&tum", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Pl.rc b/reactos/dll/cpl/timedate/Pl.rc index f6cb8a935ef..449b2b931b1 100644 --- a/reactos/dll/cpl/timedate/Pl.rc +++ b/reactos/dll/cpl/timedate/Pl.rc @@ -9,6 +9,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Data", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Ru.rc b/reactos/dll/cpl/timedate/Ru.rc index 60758249fbc..862186e5979 100644 --- a/reactos/dll/cpl/timedate/Ru.rc +++ b/reactos/dll/cpl/timedate/Ru.rc @@ -7,6 +7,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Äàòà", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/Sv.rc b/reactos/dll/cpl/timedate/Sv.rc index 1c42c1d8688..2f1bc698d07 100644 --- a/reactos/dll/cpl/timedate/Sv.rc +++ b/reactos/dll/cpl/timedate/Sv.rc @@ -12,6 +12,10 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "&Datum", -1, 4, 2, 122, 125 COMBOBOX IDC_MONTHCB, 11, 17, 50, 120, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_YEARTEXT,65, 17, 55, 12, ES_RIGHT | WS_GROUP + CONTROL "", IDC_YEAR, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_NOTHOUSANDS | + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | + WS_BORDER | WS_GROUP, 120, 17, 50, 12 CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 37, 108, 80, WS_EX_CLIENTEDGE diff --git a/reactos/dll/cpl/timedate/resource.h b/reactos/dll/cpl/timedate/resource.h index dd21c46e293..f3a2f1be91d 100644 --- a/reactos/dll/cpl/timedate/resource.h +++ b/reactos/dll/cpl/timedate/resource.h @@ -10,6 +10,8 @@ #define IDC_MONTHCALENDAR 103 #define IDC_TIMEZONE 106 #define IDC_TIMEPICKER 107 +#define IDC_YEAR 108 +#define IDC_YEARTEXT 109 #define IDD_TIMEZONEPAGE 110 #define IDC_TIMEZONELIST 111 diff --git a/reactos/dll/cpl/timedate/timedate.c b/reactos/dll/cpl/timedate/timedate.c index 4b6ab7e9ea4..07a5b97e81f 100644 --- a/reactos/dll/cpl/timedate/timedate.c +++ b/reactos/dll/cpl/timedate/timedate.c @@ -5,6 +5,7 @@ * PURPOSE: ReactOS Timedate Control Panel * COPYRIGHT: Copyright 2004-2005 Eric Kohl * Copyright 2006 Ged Murphy + * Copyright 2006 Christoph v. Wittich * */ @@ -293,11 +294,21 @@ DateTimePageProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { + SYSTEMTIME st; + GetLocalTime(&st); + switch (uMsg) { case WM_INITDIALOG: FillMonthsComboBox(GetDlgItem(hwndDlg, IDC_MONTHCB)); + + SetTimer(hwndDlg, ID_TIMER, 1000, NULL); + + /* set range and current year */ + SendMessage(GetDlgItem(hwndDlg, IDC_YEAR), UDM_SETRANGE, 0, MAKELONG ((short) 9999, (short) 1900)); + SendMessage(GetDlgItem(hwndDlg, IDC_YEAR), UDM_SETPOS, 0, MAKELONG( (short) st.wYear, 0)); + InitClockWindowClass(); CreateWindowExW(0, L"ClockWndClass", @@ -310,6 +321,11 @@ DateTimePageProc(HWND hwndDlg, NULL); break; + case WM_TIMER: + { + SendMessage(GetDlgItem(hwndDlg, IDC_TIMEPICKER), DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM) &st); + break; + } case WM_COMMAND: { switch (LOWORD(wParam)) @@ -336,6 +352,25 @@ DateTimePageProc(HWND hwndDlg, switch (lpnm->idFrom) { + case IDC_YEAR: + switch (lpnm->code) + { + case UDN_DELTAPOS: + { + short wYear; + LPNMUPDOWN updown = (LPNMUPDOWN) lpnm; + wYear = SendMessage(GetDlgItem(hwndDlg, IDC_YEAR), UDM_GETPOS, 0, 0); + /* Enable the 'Apply' button */ + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + ChangeMonthCalDate(GetDlgItem(hwndDlg, + IDC_MONTHCALENDAR), + -1, + -1, + wYear + updown->iDelta); + break; + } + } + break; case IDC_TIMEPICKER: switch (lpnm->code) { @@ -386,6 +421,11 @@ DateTimePageProc(HWND hwndDlg, 0); break; } + case WM_DESTROY: + { + KillTimer(hwndDlg, ID_TIMER); + break; + } } return FALSE;