mirror of
https://github.com/reactos/reactos.git
synced 2024-10-21 13:00:24 +00:00
- get default language and keyboard layout selection from txtsetup.sif and preselect the entries
- set selected language and keyboard layout when selecting next property sheet svn path=/trunk/; revision=37283
This commit is contained in:
parent
886c6bd7d5
commit
7732295e3c
|
@ -61,13 +61,13 @@ struct
|
|||
LONG FSType; // file system type on partition
|
||||
LONG MBRInstallType; // install bootloader
|
||||
LONG FormatPart; // type of format the partition
|
||||
TCHAR SelectedLangId[9]; // selected language
|
||||
TCHAR SelectedKBLayout[9]; // selected kayboard layout
|
||||
LONG SelectedLangId; // selected language (table index)
|
||||
LONG SelectedKBLayout; // selected keyboard layout (table index)
|
||||
WCHAR InstallationDirectory[MAX_PATH]; // installation directory on hdd
|
||||
BOOLEAN RepairUpdateFlag; // flag for update/repair an installed reactos
|
||||
// txtsetup.sif data
|
||||
TCHAR DefaultLang[20]; // default language
|
||||
TCHAR DefaultKBLayout[20]; // default keyboard layout
|
||||
LONG DefaultLang; // default language (table index)
|
||||
LONG DefaultKBLayout; // default keyboard layout (table index)
|
||||
PLANG pLanguages;
|
||||
LONG LangCount;
|
||||
PKBLAYOUT pKbLayouts;
|
||||
|
@ -225,6 +225,8 @@ LangSelDlgProc(HWND hwndDlg,
|
|||
{
|
||||
PIMGINFO pImgInfo;
|
||||
LONG i;
|
||||
LRESULT tindex;
|
||||
HWND hList;
|
||||
pImgInfo = (PIMGINFO)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
switch (uMsg)
|
||||
{
|
||||
|
@ -259,10 +261,23 @@ LangSelDlgProc(HWND hwndDlg,
|
|||
WM_SETFONT,
|
||||
(WPARAM)hTitleFont,
|
||||
(LPARAM)TRUE);*/
|
||||
hList = GetDlgItem(hwndDlg, IDC_LANGUAGES);
|
||||
for (i=0; i< SetupData.LangCount;i++)
|
||||
(void)ComboBox_AddString(GetDlgItem(hwndDlg,IDC_LANGUAGES),SetupData.pLanguages[i].LangName);
|
||||
{
|
||||
tindex = SendMessage(hList,CB_ADDSTRING,(WPARAM)0,(LPARAM)SetupData.pLanguages[i].LangName);
|
||||
SendMessage(hList,CB_SETITEMDATA,tindex,i);
|
||||
if (SetupData.DefaultLang == i)
|
||||
SendMessage(hList,CB_SETCURSEL,(WPARAM)tindex,(LPARAM)0);
|
||||
|
||||
}
|
||||
hList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT);
|
||||
for (i=0; i< SetupData.KbLayoutCount;i++)
|
||||
(void)ComboBox_AddString(GetDlgItem(hwndDlg,IDC_KEYLAYOUT),SetupData.pKbLayouts[i].LayoutName);
|
||||
{
|
||||
tindex = SendMessage(hList,CB_ADDSTRING,(WPARAM)0,(LPARAM)SetupData.pKbLayouts[i].LayoutName);
|
||||
SendMessage(hList,CB_SETITEMDATA,tindex,i);
|
||||
if (SetupData.DefaultKBLayout == i)
|
||||
SendMessage(hList,CB_SETCURSEL,(WPARAM)tindex,(LPARAM)0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WM_DRAWITEM:
|
||||
|
@ -307,6 +322,20 @@ LangSelDlgProc(HWND hwndDlg,
|
|||
case PSN_QUERYCANCEL:
|
||||
SetWindowLong(hwndDlg, DWL_MSGRESULT,MessageBox(GetParent(hwndDlg), abort_msg, abort_title, MB_YESNO | MB_ICONQUESTION) != IDYES);
|
||||
return TRUE;
|
||||
case PSN_WIZNEXT: // set the selected data
|
||||
hList =GetDlgItem(hwndDlg, IDC_LANGUAGES);
|
||||
tindex = SendMessage(hList,CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
|
||||
if (tindex != CB_ERR)
|
||||
{
|
||||
SetupData.SelectedLangId = SendMessage(hList,CB_GETITEMDATA, (WPARAM)tindex, (LPARAM)0);
|
||||
}
|
||||
hList =GetDlgItem(hwndDlg, IDC_KEYLAYOUT);
|
||||
tindex = SendMessage(hList,CB_GETCURSEL, (WPARAM)0, (LPARAM)0);
|
||||
if (tindex != CB_ERR)
|
||||
{
|
||||
SetupData.SelectedKBLayout = SendMessage(hList,CB_GETITEMDATA, (WPARAM)tindex, (LPARAM)0);
|
||||
}
|
||||
return TRUE;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -596,6 +625,7 @@ RestartDlgProc(HWND hwndDlg,
|
|||
void LoadSetupData()
|
||||
{
|
||||
WCHAR szPath[MAX_PATH];
|
||||
TCHAR tmp[10];
|
||||
WCHAR *ch;
|
||||
HINF hTxtsetupSif;
|
||||
INFCONTEXT InfContext;
|
||||
|
@ -655,6 +685,29 @@ void LoadSetupData()
|
|||
while (SetupFindNextLine(&InfContext, &InfContext) && Count < SetupData.LangCount);
|
||||
}
|
||||
}
|
||||
// get default for keyboard and language
|
||||
SetupData.DefaultKBLayout = -1;
|
||||
SetupData.DefaultLang = -1;
|
||||
if (SetupFindFirstLine(hTxtsetupSif, _T("NLS"),_T("DefaultLayout"),&InfContext))
|
||||
{
|
||||
SetupGetStringField(&InfContext, 1, tmp, sizeof(tmp) / sizeof(TCHAR), &LineLength);
|
||||
for (Count=0;Count<SetupData.KbLayoutCount;Count++)
|
||||
if (_tcscmp(tmp,SetupData.pKbLayouts[Count].LayoutId)==0)
|
||||
{
|
||||
SetupData.DefaultKBLayout = Count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (SetupFindFirstLine(hTxtsetupSif, _T("NLS"),_T("DefaultLanguage"),&InfContext))
|
||||
{
|
||||
SetupGetStringField(&InfContext, 1, tmp, sizeof(tmp) / sizeof(TCHAR), &LineLength);
|
||||
for (Count=0;Count<SetupData.LangCount;Count++)
|
||||
if (_tcscmp(tmp,SetupData.pLanguages[Count].LangId)==0)
|
||||
{
|
||||
SetupData.DefaultLang = Count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
SetupCloseInfFile(hTxtsetupSif);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue