mirror of
https://github.com/reactos/reactos.git
synced 2025-05-07 18:56:48 +00:00
- Enumerate short and long date formats.
- Use the currently selected locale id instead of LOCALE_USER_DEFAULT. svn path=/trunk/; revision=28998
This commit is contained in:
parent
9fe96d7b9b
commit
f9e9cc03c6
1 changed files with 56 additions and 68 deletions
|
@ -35,13 +35,13 @@
|
||||||
/* GLOBALS ******************************************************************/
|
/* GLOBALS ******************************************************************/
|
||||||
|
|
||||||
#define YEAR_STR_MAX_SIZE 4
|
#define YEAR_STR_MAX_SIZE 4
|
||||||
#define MAX_SHORT_FMT_SAMPLES 5
|
|
||||||
#define MAX_LONG_FMT_SAMPLES 2
|
|
||||||
#define MAX_SHRT_DATE_SEPARATORS 3
|
#define MAX_SHRT_DATE_SEPARATORS 3
|
||||||
#define STD_DATE_SEP _T(".")
|
#define STD_DATE_SEP _T(".")
|
||||||
#define YEAR_DIFF (99)
|
#define YEAR_DIFF (99)
|
||||||
#define MAX_YEAR (9999)
|
#define MAX_YEAR (9999)
|
||||||
|
|
||||||
|
static HWND hwndEnum = NULL;
|
||||||
|
|
||||||
/* FUNCTIONS ****************************************************************/
|
/* FUNCTIONS ****************************************************************/
|
||||||
|
|
||||||
/* if char is 'y' or 'M' or 'd' return TRUE, else FALSE */
|
/* if char is 'y' or 'M' or 'd' return TRUE, else FALSE */
|
||||||
|
@ -91,7 +91,7 @@ FindDateSep(const TCHAR *szSourceStr)
|
||||||
|
|
||||||
/* Setted up short date separator to registry */
|
/* Setted up short date separator to registry */
|
||||||
static BOOL
|
static BOOL
|
||||||
SetShortDateSep(HWND hwndDlg)
|
SetShortDateSep(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
|
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
|
||||||
INT nSepStrSize;
|
INT nSepStrSize;
|
||||||
|
@ -119,14 +119,14 @@ SetShortDateSep(HWND hwndDlg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save date separator */
|
/* Save date separator */
|
||||||
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDATE, szShortDateSep);
|
SetLocaleInfo(lcid, LOCALE_SDATE, szShortDateSep);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Setted up short date format to registry */
|
/* Setted up short date format to registry */
|
||||||
static BOOL
|
static BOOL
|
||||||
SetShortDateFormat(HWND hwndDlg)
|
SetShortDateFormat(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
|
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
|
||||||
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
|
TCHAR szShortDateSep[MAX_SAMPLES_STR_SIZE];
|
||||||
|
@ -186,14 +186,14 @@ SetShortDateFormat(HWND hwndDlg)
|
||||||
free(pszResultStr);
|
free(pszResultStr);
|
||||||
|
|
||||||
/* Save short date format */
|
/* Save short date format */
|
||||||
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, szShortDateFmt);
|
SetLocaleInfo(lcid, LOCALE_SSHORTDATE, szShortDateFmt);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Setted up long date format to registry */
|
/* Setted up long date format to registry */
|
||||||
static BOOL
|
static BOOL
|
||||||
SetLongDateFormat(HWND hwndDlg)
|
SetLongDateFormat(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
|
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
|
||||||
BOOL OpenApostFlg = FALSE;
|
BOOL OpenApostFlg = FALSE;
|
||||||
|
@ -238,14 +238,14 @@ SetLongDateFormat(HWND hwndDlg)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Save short date format */
|
/* Save short date format */
|
||||||
SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, szLongDateFmt);
|
SetLocaleInfo(lcid, LOCALE_SLONGDATE, szLongDateFmt);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Init short date separator control box */
|
/* Init short date separator control box */
|
||||||
static VOID
|
static VOID
|
||||||
InitShortDateSepSamples(HWND hwndDlg)
|
InitShortDateSepSamples(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
LPTSTR ShortDateSepSamples[MAX_SHRT_DATE_SEPARATORS] =
|
LPTSTR ShortDateSepSamples[MAX_SHRT_DATE_SEPARATORS] =
|
||||||
{
|
{
|
||||||
|
@ -258,7 +258,7 @@ InitShortDateSepSamples(HWND hwndDlg)
|
||||||
INT nRetCode;
|
INT nRetCode;
|
||||||
|
|
||||||
/* Get current short date separator */
|
/* Get current short date separator */
|
||||||
GetLocaleInfo(LOCALE_USER_DEFAULT,
|
GetLocaleInfo(lcid,
|
||||||
LOCALE_SDATE,
|
LOCALE_SDATE,
|
||||||
szShortDateSep,
|
szShortDateSep,
|
||||||
MAX_SAMPLES_STR_SIZE);
|
MAX_SAMPLES_STR_SIZE);
|
||||||
|
@ -274,7 +274,7 @@ InitShortDateSepSamples(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
||||||
CB_ADDSTRING,
|
CB_ADDSTRING,
|
||||||
nCBIndex,
|
0,
|
||||||
(LPARAM)ShortDateSepSamples[nCBIndex]);
|
(LPARAM)ShortDateSepSamples[nCBIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ InitShortDateSepSamples(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
||||||
CB_ADDSTRING,
|
CB_ADDSTRING,
|
||||||
MAX_SHRT_DATE_SEPARATORS+1,
|
0,
|
||||||
(LPARAM)szShortDateSep);
|
(LPARAM)szShortDateSep);
|
||||||
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
SendMessageW(GetDlgItem(hwndDlg, IDC_SHRTDATESEP_COMBO),
|
||||||
CB_SELECTSTRING,
|
CB_SELECTSTRING,
|
||||||
|
@ -298,24 +298,26 @@ InitShortDateSepSamples(HWND hwndDlg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL CALLBACK
|
||||||
|
ShortDateFormatEnumProc(LPTSTR lpTimeFormatString)
|
||||||
|
{
|
||||||
|
SendMessage(hwndEnum,
|
||||||
|
CB_ADDSTRING,
|
||||||
|
0,
|
||||||
|
(LPARAM)lpTimeFormatString);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* Init short date control box */
|
/* Init short date control box */
|
||||||
VOID
|
VOID
|
||||||
InitShortDateCB(HWND hwndDlg)
|
InitShortDateCB(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
LPTSTR ShortDateFmtSamples[MAX_SHORT_FMT_SAMPLES] =
|
|
||||||
{
|
|
||||||
_T("dd.MM.yyyy"),
|
|
||||||
_T("dd.MM.yy"),
|
|
||||||
_T("d.M.yy"),
|
|
||||||
_T("dd/MM/yy"),
|
|
||||||
_T("yyyy-MM-dd")
|
|
||||||
};
|
|
||||||
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
|
TCHAR szShortDateFmt[MAX_SAMPLES_STR_SIZE];
|
||||||
INT nCBIndex;
|
|
||||||
INT nRetCode;
|
INT nRetCode;
|
||||||
|
|
||||||
/* Get current short date format */
|
/* Get current short date format */
|
||||||
GetLocaleInfo(LOCALE_USER_DEFAULT,
|
GetLocaleInfo(lcid,
|
||||||
LOCALE_SSHORTDATE,
|
LOCALE_SSHORTDATE,
|
||||||
szShortDateFmt,
|
szShortDateFmt,
|
||||||
MAX_SAMPLES_STR_SIZE);
|
MAX_SAMPLES_STR_SIZE);
|
||||||
|
@ -326,14 +328,9 @@ InitShortDateCB(HWND hwndDlg)
|
||||||
(WPARAM)0,
|
(WPARAM)0,
|
||||||
(LPARAM)0);
|
(LPARAM)0);
|
||||||
|
|
||||||
/* Create standart list of date formats */
|
/* Enumerate short date formats */
|
||||||
for (nCBIndex = 0; nCBIndex < MAX_SHORT_FMT_SAMPLES; nCBIndex++)
|
hwndEnum = GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO);
|
||||||
{
|
EnumDateFormats(ShortDateFormatEnumProc, lcid, DATE_SHORTDATE);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
|
||||||
CB_ADDSTRING,
|
|
||||||
nCBIndex,
|
|
||||||
(LPARAM)ShortDateFmtSamples[nCBIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set current item to value from registry */
|
/* Set current item to value from registry */
|
||||||
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
||||||
|
@ -346,7 +343,7 @@ InitShortDateCB(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
||||||
CB_ADDSTRING,
|
CB_ADDSTRING,
|
||||||
MAX_SHORT_FMT_SAMPLES+1,
|
0,
|
||||||
(LPARAM)szShortDateFmt);
|
(LPARAM)szShortDateFmt);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
SendMessage(GetDlgItem(hwndDlg, IDC_SHRTDATEFMT_COMBO),
|
||||||
CB_SELECTSTRING,
|
CB_SELECTSTRING,
|
||||||
|
@ -357,20 +354,13 @@ InitShortDateCB(HWND hwndDlg)
|
||||||
|
|
||||||
/* Init long date control box */
|
/* Init long date control box */
|
||||||
static VOID
|
static VOID
|
||||||
InitLongDateCB(HWND hwndDlg)
|
InitLongDateCB(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
/* Where this data stored? */
|
|
||||||
LPTSTR LongDateFmtSamples[MAX_LONG_FMT_SAMPLES] =
|
|
||||||
{
|
|
||||||
_T("d MMMM yyyy 'y.'"),
|
|
||||||
_T("dd MMMM yyyy 'y.'")
|
|
||||||
};
|
|
||||||
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
|
TCHAR szLongDateFmt[MAX_SAMPLES_STR_SIZE];
|
||||||
INT nCBIndex;
|
|
||||||
INT nRetCode;
|
INT nRetCode;
|
||||||
|
|
||||||
/* Get current long date format */
|
/* Get current long date format */
|
||||||
GetLocaleInfo(LOCALE_USER_DEFAULT,
|
GetLocaleInfo(lcid,
|
||||||
LOCALE_SLONGDATE,
|
LOCALE_SLONGDATE,
|
||||||
szLongDateFmt,
|
szLongDateFmt,
|
||||||
MAX_SAMPLES_STR_SIZE);
|
MAX_SAMPLES_STR_SIZE);
|
||||||
|
@ -381,14 +371,9 @@ InitLongDateCB(HWND hwndDlg)
|
||||||
(WPARAM)0,
|
(WPARAM)0,
|
||||||
(LPARAM)0);
|
(LPARAM)0);
|
||||||
|
|
||||||
/* Create standart list of date formats */
|
/* Enumerate short long formats */
|
||||||
for (nCBIndex = 0; nCBIndex < MAX_LONG_FMT_SAMPLES; nCBIndex++)
|
hwndEnum = GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO);
|
||||||
{
|
EnumDateFormats(ShortDateFormatEnumProc, lcid, DATE_LONGDATE);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
|
||||||
CB_ADDSTRING,
|
|
||||||
nCBIndex,
|
|
||||||
(LPARAM)LongDateFmtSamples[nCBIndex]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set current item to value from registry */
|
/* Set current item to value from registry */
|
||||||
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
nRetCode = SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
||||||
|
@ -401,7 +386,7 @@ InitLongDateCB(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
||||||
CB_ADDSTRING,
|
CB_ADDSTRING,
|
||||||
MAX_LONG_FMT_SAMPLES+1,
|
0,
|
||||||
(LPARAM)szLongDateFmt);
|
(LPARAM)szLongDateFmt);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
SendMessage(GetDlgItem(hwndDlg, IDC_LONGDATEFMT_COMBO),
|
||||||
CB_SELECTSTRING,
|
CB_SELECTSTRING,
|
||||||
|
@ -412,7 +397,7 @@ InitLongDateCB(HWND hwndDlg)
|
||||||
|
|
||||||
/* Set up max date value to registry */
|
/* Set up max date value to registry */
|
||||||
static VOID
|
static VOID
|
||||||
SetMaxDate(HWND hwndDlg)
|
SetMaxDate(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
TCHAR szMaxDateVal[YEAR_STR_MAX_SIZE];
|
TCHAR szMaxDateVal[YEAR_STR_MAX_SIZE];
|
||||||
HWND hWndYearSpin;
|
HWND hWndYearSpin;
|
||||||
|
@ -430,7 +415,7 @@ SetMaxDate(HWND hwndDlg)
|
||||||
_itot(nSpinVal, szMaxDateVal, DECIMAL_RADIX);
|
_itot(nSpinVal, szMaxDateVal, DECIMAL_RADIX);
|
||||||
|
|
||||||
/* Save max date value */
|
/* Save max date value */
|
||||||
SetCalendarInfo(LOCALE_USER_DEFAULT,
|
SetCalendarInfo(lcid,
|
||||||
CAL_GREGORIAN,
|
CAL_GREGORIAN,
|
||||||
48 , /* CAL_ITWODIGITYEARMAX */
|
48 , /* CAL_ITWODIGITYEARMAX */
|
||||||
(LPCTSTR)&szMaxDateVal);
|
(LPCTSTR)&szMaxDateVal);
|
||||||
|
@ -438,11 +423,11 @@ SetMaxDate(HWND hwndDlg)
|
||||||
|
|
||||||
/* Get max date value from registry set */
|
/* Get max date value from registry set */
|
||||||
static INT
|
static INT
|
||||||
GetMaxDate(VOID)
|
GetMaxDate(LCID lcid)
|
||||||
{
|
{
|
||||||
INT nMaxDateVal;
|
INT nMaxDateVal;
|
||||||
|
|
||||||
GetCalendarInfo(LOCALE_USER_DEFAULT,
|
GetCalendarInfo(lcid,
|
||||||
CAL_GREGORIAN,
|
CAL_GREGORIAN,
|
||||||
CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
|
CAL_ITWODIGITYEARMAX | CAL_RETURN_NUMBER,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -478,7 +463,7 @@ SetMinData(HWND hwndDlg)
|
||||||
|
|
||||||
/* Init spin control */
|
/* Init spin control */
|
||||||
static VOID
|
static VOID
|
||||||
InitMinMaxDateSpin(HWND hwndDlg)
|
InitMinMaxDateSpin(HWND hwndDlg, LCID lcid)
|
||||||
{
|
{
|
||||||
TCHAR OutBuffer[YEAR_STR_MAX_SIZE];
|
TCHAR OutBuffer[YEAR_STR_MAX_SIZE];
|
||||||
HWND hWndYearSpin;
|
HWND hWndYearSpin;
|
||||||
|
@ -486,14 +471,14 @@ InitMinMaxDateSpin(HWND hwndDlg)
|
||||||
hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR);
|
hWndYearSpin = GetDlgItem(hwndDlg, IDC_SCR_MAX_YEAR);
|
||||||
|
|
||||||
/* Init max date value */
|
/* Init max date value */
|
||||||
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate());
|
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate(lcid));
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_SECONDYEAR_EDIT),
|
SendMessage(GetDlgItem(hwndDlg, IDC_SECONDYEAR_EDIT),
|
||||||
WM_SETTEXT,
|
WM_SETTEXT,
|
||||||
0,
|
0,
|
||||||
(LPARAM)OutBuffer);
|
(LPARAM)OutBuffer);
|
||||||
|
|
||||||
/* Init min date value */
|
/* Init min date value */
|
||||||
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate()-YEAR_DIFF);
|
wsprintf(OutBuffer, _T("%04d"), (DWORD)GetMaxDate(lcid) - YEAR_DIFF);
|
||||||
SendMessage(GetDlgItem(hwndDlg, IDC_FIRSTYEAR_EDIT),
|
SendMessage(GetDlgItem(hwndDlg, IDC_FIRSTYEAR_EDIT),
|
||||||
WM_SETTEXT,
|
WM_SETTEXT,
|
||||||
0,
|
0,
|
||||||
|
@ -510,7 +495,7 @@ InitMinMaxDateSpin(HWND hwndDlg)
|
||||||
SendMessage(hWndYearSpin,
|
SendMessage(hWndYearSpin,
|
||||||
UDM_SETPOS,
|
UDM_SETPOS,
|
||||||
0,
|
0,
|
||||||
MAKELONG(GetMaxDate(),0));
|
MAKELONG(GetMaxDate(lcid),0));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update all date locale samples */
|
/* Update all date locale samples */
|
||||||
|
@ -542,16 +527,19 @@ DatePageProc(HWND hwndDlg,
|
||||||
{
|
{
|
||||||
PGLOBALDATA pGlobalData;
|
PGLOBALDATA pGlobalData;
|
||||||
|
|
||||||
|
pGlobalData = (PGLOBALDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||||
|
|
||||||
switch (uMsg)
|
switch (uMsg)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
|
pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
|
||||||
|
SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
|
||||||
|
|
||||||
InitMinMaxDateSpin(hwndDlg);
|
InitMinMaxDateSpin(hwndDlg, pGlobalData->lcid);
|
||||||
UpdateDateLocaleSamples(hwndDlg, pGlobalData->lcid);
|
UpdateDateLocaleSamples(hwndDlg, pGlobalData->lcid);
|
||||||
InitShortDateCB(hwndDlg);
|
InitShortDateCB(hwndDlg, pGlobalData->lcid);
|
||||||
InitLongDateCB(hwndDlg);
|
InitLongDateCB(hwndDlg, pGlobalData->lcid);
|
||||||
InitShortDateSepSamples(hwndDlg);
|
InitShortDateSepSamples(hwndDlg, pGlobalData->lcid);
|
||||||
/* TODO: Add other calendar types */
|
/* TODO: Add other calendar types */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -595,14 +583,14 @@ DatePageProc(HWND hwndDlg,
|
||||||
/* If push apply button */
|
/* If push apply button */
|
||||||
if (lpnm->code == (UINT)PSN_APPLY)
|
if (lpnm->code == (UINT)PSN_APPLY)
|
||||||
{
|
{
|
||||||
SetMaxDate(hwndDlg);
|
SetMaxDate(hwndDlg, pGlobalData->lcid);
|
||||||
if(!SetShortDateSep(hwndDlg)) break;
|
if(!SetShortDateSep(hwndDlg, pGlobalData->lcid)) break;
|
||||||
if(!SetShortDateFormat(hwndDlg)) break;
|
if(!SetShortDateFormat(hwndDlg, pGlobalData->lcid)) break;
|
||||||
if(!SetLongDateFormat(hwndDlg)) break;
|
if(!SetLongDateFormat(hwndDlg, pGlobalData->lcid)) break;
|
||||||
InitShortDateCB(hwndDlg);
|
InitShortDateCB(hwndDlg, pGlobalData->lcid);
|
||||||
/* FIXME: */
|
/* FIXME: */
|
||||||
//Sleep(15);
|
//Sleep(15);
|
||||||
UpdateDateLocaleSamples(hwndDlg, LOCALE_USER_DEFAULT);
|
UpdateDateLocaleSamples(hwndDlg, pGlobalData->lcid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue