mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 02:10:07 +00:00
- Getting a localized layout names from input.dll
- Add some layouts to resources svn path=/trunk/; revision=33228
This commit is contained in:
parent
1163b5af3c
commit
aa249071fc
|
@ -72,7 +72,7 @@ AddNewLayout(HWND hwndDlg)
|
|||
VOID
|
||||
CreateKeyboardLayoutList(VOID)
|
||||
{
|
||||
HKEY hKey, hSubKey;
|
||||
HKEY hKey;
|
||||
PTSTR pstrLayoutID;
|
||||
TCHAR szLayoutID[CCH_LAYOUT_ID + 1], KeyName[MAX_PATH];
|
||||
DWORD dwIndex = 0;
|
||||
|
@ -84,32 +84,22 @@ CreateKeyboardLayoutList(VOID)
|
|||
|
||||
while (RegEnumKeyEx(hKey, dwIndex, szLayoutID, &dwSize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS)
|
||||
{
|
||||
wsprintf(KeyName, _T("System\\CurrentControlSet\\Control\\Keyboard Layouts\\%s"), szLayoutID);
|
||||
GetLayoutName(szLayoutID, KeyName);
|
||||
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, KeyName, 0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS)
|
||||
INT iIndex = (INT) SendMessage(hLayoutList, CB_ADDSTRING, 0, (LPARAM)KeyName);
|
||||
|
||||
pstrLayoutID = (PTSTR)HeapAlloc(hProcessHeap, 0, sizeof(szLayoutID));
|
||||
lstrcpy(pstrLayoutID, szLayoutID);
|
||||
SendMessage(hLayoutList, CB_SETITEMDATA, iIndex, (LPARAM)pstrLayoutID);
|
||||
|
||||
// FIXME!
|
||||
if (_tcscmp(szLayoutID, _T("00000409")) == 0)
|
||||
{
|
||||
DWORD dwKeyNameSize = sizeof(KeyName);
|
||||
|
||||
if (RegQueryValueEx(hSubKey, _T("Layout Text"), NULL, NULL, (LPBYTE)KeyName, &dwKeyNameSize) == ERROR_SUCCESS)
|
||||
{
|
||||
INT iIndex = (INT) SendMessage(hLayoutList, CB_ADDSTRING, 0, (LPARAM)KeyName);
|
||||
|
||||
pstrLayoutID = (PTSTR)HeapAlloc(hProcessHeap, 0, sizeof(szLayoutID));
|
||||
lstrcpy(pstrLayoutID, szLayoutID);
|
||||
SendMessage(hLayoutList, CB_SETITEMDATA, iIndex, (LPARAM)pstrLayoutID);
|
||||
|
||||
// FIXME!
|
||||
if (_tcscmp(szLayoutID, _T("00000409")) == 0)
|
||||
{
|
||||
SendMessage(hLayoutList, CB_SETCURSEL, (WPARAM)iIndex, (LPARAM)0);
|
||||
}
|
||||
|
||||
dwIndex++;
|
||||
}
|
||||
|
||||
RegCloseKey(hSubKey);
|
||||
SendMessage(hLayoutList, CB_SETCURSEL, (WPARAM)iIndex, (LPARAM)0);
|
||||
}
|
||||
|
||||
dwIndex++;
|
||||
|
||||
dwSize = sizeof(szLayoutID) / sizeof(TCHAR);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc);
|
|||
INT_PTR CALLBACK
|
||||
SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
|
||||
BOOL
|
||||
GetLayoutName(LPCTSTR lcid, LPTSTR name);
|
||||
GetLayoutName(LPCTSTR szLCID, LPTSTR szName);
|
||||
VOID
|
||||
UpdateLayoutsList(VOID);
|
||||
|
||||
|
|
|
@ -223,4 +223,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Äõèâåõñêà ìàëòèéñêà"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Áúëãàðñêà ßÂÅÐÒÚ"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Áúëãàðñêà ×ØÅÐÒÚ"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -224,4 +224,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi (Schreibmaschine)"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -223,4 +223,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -222,5 +222,10 @@ BEGIN
|
|||
IDS_DIVEHI_PHONETIC_LAYOUT, "Divehi Phonetic"
|
||||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS 5237-1978)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -228,4 +228,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Búlgaro Fonético (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Búlgaro Fonético (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -225,4 +225,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -223,4 +223,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -230,4 +230,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Malediwski (Maszynisty)"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bu³garski (Fonetyczny)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bu³garski (Fonetyczny, BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -223,4 +223,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Äèâèõàé ìàøèíîïèñü"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Áîëãàðñêàÿ ôîíåòè÷åñêàÿ (êëàññè÷åñêàÿ)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Áîëãàðñêàÿ ôîíåòè÷åñêàÿ (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Áîëãàğñêàÿ (BDS 5237-1978)"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -227,4 +227,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Bulgarian Phonetic (Classic)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Bulgarian Phonetic (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -232,4 +232,9 @@ BEGIN
|
|||
IDS_DIVEHI_TYPEWRITER_LAYOUT, "Ìàëüä³âñüêà (äðóêàðñüêà ìàøèíêà)"
|
||||
IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT, "Áîëãàðñüêà ôîíåòè÷íà (êëàñè÷íà)"
|
||||
IDS_BULGARIAN_PHONETIC_BDS_LAYOUT, "Áîëãàðñüêà ôîíåòè÷íà (BDS)"
|
||||
IDS_BULGARIAN_BDS_LAYOUT, "Bulgarian BDS 5237-1978"
|
||||
IDS_GERMAN_RISTOME_LAYOUT, "German (RISTOME)"
|
||||
IDS_GERMAN_NEO_11_LAYOUT, "German (NEO-1.1)"
|
||||
IDS_GERMAN_DE_ERGO_LAYOUT, "German (de_ergo)"
|
||||
IDS_BURMESE_LAYOUT, "Burmese"
|
||||
END
|
||||
|
|
|
@ -185,6 +185,11 @@
|
|||
#define IDS_DIVEHI_TYPEWRITER_LAYOUT 5133
|
||||
#define IDS_BULGARIAN_PHONETIC_CLASSIC_LAYOUT 5134
|
||||
#define IDS_BULGARIAN_PHONETIC_BDS_LAYOUT 5135
|
||||
#define IDS_BULGARIAN_BDS_LAYOUT 5136
|
||||
#define IDS_GERMAN_RISTOME_LAYOUT 5137
|
||||
#define IDS_GERMAN_NEO_11_LAYOUT 5138
|
||||
#define IDS_GERMAN_DE_ERGO_LAYOUT 5139
|
||||
#define IDS_BURMESE_LAYOUT 5140
|
||||
|
||||
#endif /* __CPL_RESOURCE_H */
|
||||
|
||||
|
|
|
@ -86,19 +86,58 @@ CreateLayoutIcon(LPTSTR szInd)
|
|||
}
|
||||
|
||||
BOOL
|
||||
GetLayoutName(LPCTSTR lcid, LPTSTR name)
|
||||
GetLayoutName(LPCTSTR szLCID, LPTSTR szName)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD dwBufLen;
|
||||
TCHAR szBuf[MAX_PATH];
|
||||
TCHAR szBuf[MAX_PATH], szDispName[MAX_PATH], szIndex[MAX_PATH], szPath[MAX_PATH];
|
||||
HANDLE hLib;
|
||||
int i, j, k;
|
||||
|
||||
wsprintf(szBuf, _T("SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\%s"), lcid);
|
||||
wsprintf(szBuf, _T("SYSTEM\\CurrentControlSet\\Control\\Keyboard Layouts\\%s"), szLCID);
|
||||
|
||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, (LPCTSTR)szBuf, 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
||||
{
|
||||
dwBufLen = sizeof(szBuf);
|
||||
|
||||
if (RegQueryValueEx(hKey, _T("Layout Text"), NULL, NULL, (LPBYTE)name, &dwBufLen) == ERROR_SUCCESS)
|
||||
if (RegQueryValueEx(hKey, _T("Layout Display Name"), NULL, NULL, (LPBYTE)szDispName, &dwBufLen) == ERROR_SUCCESS)
|
||||
{
|
||||
if (szDispName[0] == '@')
|
||||
{
|
||||
for (i = 0; i < _tcslen(szDispName); i++)
|
||||
{
|
||||
if ((szDispName[i] == ',') && (szDispName[i + 1] == '-'))
|
||||
{
|
||||
for (j = i + 2, k = 0; j < _tcslen(szDispName)+1; j++, k++)
|
||||
{
|
||||
szIndex[k] = szDispName[j];
|
||||
}
|
||||
szDispName[i - 1] = '\0';
|
||||
break;
|
||||
}
|
||||
else szDispName[i] = szDispName[i + 1];
|
||||
}
|
||||
|
||||
if (ExpandEnvironmentStrings(szDispName, szPath, MAX_PATH))
|
||||
{
|
||||
hLib = LoadLibrary(szPath);
|
||||
if (hLib)
|
||||
{
|
||||
if (LoadString(hLib, _ttoi(szIndex), szPath, sizeof(szPath) / sizeof(TCHAR)) != 0)
|
||||
{
|
||||
_tcscpy(szName, szPath);
|
||||
RegCloseKey(hKey);
|
||||
return TRUE;
|
||||
}
|
||||
FreeLibrary(hLib);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dwBufLen = sizeof(szBuf);
|
||||
|
||||
if (RegQueryValueEx(hKey, _T("Layout Text"), NULL, NULL, (LPBYTE)szName, &dwBufLen) == ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(hKey);
|
||||
return TRUE;
|
||||
|
|
Loading…
Reference in a new issue