From 474212939dacaeb639733d6737a92b313e44f51e Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Thu, 12 Jun 2025 09:33:23 +0900 Subject: [PATCH] [KBSWITCH] Handle IME Menu default items (#8101) Finishing IME menu work. The IME menu of the system pen icon has to append the default items if DMI_LEFT and RDMI_RIGHT are not specified. JIRA issue: CORE-20142 - Add IsRegImeToolbarShown and ShowImeToolbar helper functions. - Add more code into KbSwitch_OnPenIconMsg function to handle IME menu default items. - Add some resource strings. --- .../applications/kbswitch/indicdll/indicdll.c | 3 - base/applications/kbswitch/kbswitch.c | 160 ++++++++++++++++-- base/applications/kbswitch/lang/bg-BG.rc | 10 ++ base/applications/kbswitch/lang/cs-CZ.rc | 10 ++ base/applications/kbswitch/lang/de-DE.rc | 10 ++ base/applications/kbswitch/lang/en-US.rc | 10 ++ base/applications/kbswitch/lang/es-ES.rc | 10 ++ base/applications/kbswitch/lang/et-EE.rc | 10 ++ base/applications/kbswitch/lang/fr-FR.rc | 10 ++ base/applications/kbswitch/lang/he-IL.rc | 10 ++ base/applications/kbswitch/lang/it-IT.rc | 10 ++ base/applications/kbswitch/lang/ja-JP.rc | 10 ++ base/applications/kbswitch/lang/lt-LT.rc | 10 ++ base/applications/kbswitch/lang/no-NO.rc | 10 ++ base/applications/kbswitch/lang/pl-PL.rc | 10 ++ base/applications/kbswitch/lang/pt-BR.rc | 10 ++ base/applications/kbswitch/lang/pt-PT.rc | 10 ++ base/applications/kbswitch/lang/ro-RO.rc | 10 ++ base/applications/kbswitch/lang/ru-RU.rc | 10 ++ base/applications/kbswitch/lang/sk-SK.rc | 10 ++ base/applications/kbswitch/lang/sq-AL.rc | 10 ++ base/applications/kbswitch/lang/sv-SE.rc | 10 ++ base/applications/kbswitch/lang/tr-TR.rc | 10 ++ base/applications/kbswitch/lang/uk-UA.rc | 10 ++ base/applications/kbswitch/lang/zh-CN.rc | 10 ++ base/applications/kbswitch/lang/zh-HK.rc | 10 ++ base/applications/kbswitch/lang/zh-TW.rc | 10 ++ base/applications/kbswitch/resource.h | 16 +- 28 files changed, 408 insertions(+), 21 deletions(-) diff --git a/base/applications/kbswitch/indicdll/indicdll.c b/base/applications/kbswitch/indicdll/indicdll.c index 50aebde4402..94b60ebd132 100644 --- a/base/applications/kbswitch/indicdll/indicdll.c +++ b/base/applications/kbswitch/indicdll/indicdll.c @@ -43,7 +43,6 @@ WinHookProc(INT code, WPARAM wParam, LPARAM lParam) case HCBT_ACTIVATE: case HCBT_SETFOCUS: { - OutputDebugStringA("HCBT_ACTIVATE / HCBT_SETFOCUS\n"); HWND hwndFocus = (HWND)wParam; if (hwndFocus && hwndFocus != g_pShared->hKbSwitchWnd) PostMessageToMainWnd(WM_WINDOW_ACTIVATE, (WPARAM)hwndFocus, 0); @@ -64,13 +63,11 @@ ShellHookProc(INT code, WPARAM wParam, LPARAM lParam) { case HSHELL_WINDOWACTIVATED: { - OutputDebugStringA("HSHELL_WINDOWACTIVATED\n"); PostMessageToMainWnd(WM_WINDOW_ACTIVATE, wParam, 0); break; } case HSHELL_LANGUAGE: { - OutputDebugStringA("HSHELL_LANGUAGE\n"); PostMessageToMainWnd(WM_LANG_CHANGED, wParam, lParam); break; } diff --git a/base/applications/kbswitch/kbswitch.c b/base/applications/kbswitch/kbswitch.c index 16f7ed71780..957822bb9a3 100644 --- a/base/applications/kbswitch/kbswitch.c +++ b/base/applications/kbswitch/kbswitch.c @@ -41,6 +41,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(internat); #define TIMER_ID_LANG_CHANGED_DELAYED 0x10000 #define TIMER_LANG_CHANGED_DELAY 200 +#define IME_HKL_MASK 0xF000FFFF +#define IS_KOREAN_IME_HKL(hKL) ((HandleToUlong(hKL) & IME_HKL_MASK) == 0xE0000412) + #define MAX_KLS 64 typedef BOOL (APIENTRY *FN_KbSwitchSetHooks)(BOOL bDoHook); @@ -189,7 +192,7 @@ static HKL GetActiveKL(VOID) { /* FIXME: Get correct console window's HKL when console window */ HWND hwndTarget = GetTargetWindow(NULL); - ERR("hwndTarget: %p\n", hwndTarget); + TRACE("hwndTarget: %p\n", hwndTarget); DWORD dwTID = GetWindowThreadProcessId(hwndTarget, NULL); return GetKeyboardLayout(dwTID); } @@ -490,7 +493,7 @@ LoadDefaultPenIcon(PCWSTR szImeFile, HKL hKL) DWORD dwImeStatus = GetImeStatus(hwndTarget); INT nIconID = -1; - if ((HandleToUlong(hKL) & 0xF000FFFF) == 0xE0000412) // Special Korean IME + if (IS_KOREAN_IME_HKL(hKL)) // Korean IME? { if (dwImeStatus != IME_STATUS_NO_IME) { @@ -1015,6 +1018,53 @@ KbSwitch_OnNotifyIconMsg(HWND hwnd, UINT uMouseMsg) PostMessage(hwnd, WM_COMMAND, nID, 0); } +static BOOL +IsRegImeToolbarShown(VOID) +{ + HKEY hKey; + LSTATUS error = RegOpenKey(HKEY_CURRENT_USER, TEXT("Control Panel\\Input Method"), &hKey); + if (error) + { + ERR("Cannot open regkey: 0x%lX\n", error); + return TRUE; + } + + WCHAR szText[8]; + DWORD cbValue = sizeof(szText); + error = RegQueryValueEx(hKey, TEXT("Show Status"), NULL, NULL, (PBYTE)szText, &cbValue); + if (error) + { + RegCloseKey(hKey); + return TRUE; + } + + BOOL ret = !!_wtoi(szText); + RegCloseKey(hKey); + return ret; +} + +static VOID +ShowImeToolbar(HWND hwndTarget, BOOL bShowToolbar) +{ + HKEY hKey; + LSTATUS error = RegOpenKey(HKEY_CURRENT_USER, TEXT("Control Panel\\Input Method"), &hKey); + if (error) + { + ERR("Cannot open regkey: 0x%lX\n", error); + return; + } + + WCHAR szText[8]; + StringCchPrintf(szText, _countof(szText), TEXT("%d"), bShowToolbar); + + DWORD cbValue = (lstrlen(szText) + 1) * sizeof(TCHAR); + RegSetValueEx(hKey, TEXT("Show Status"), 0, REG_SZ, (PBYTE)szText, cbValue); + RegCloseKey(hKey); + + HWND hwndIme = ImmGetDefaultIMEWnd(hwndTarget); + PostMessage(hwndIme, WM_IME_SYSTEM, IMS_NOTIFYIMESHOW, bShowToolbar); +} + // WM_PENICONMSG static VOID KbSwitch_OnPenIconMsg(HWND hwnd, UINT uMouseMsg) @@ -1028,10 +1078,12 @@ KbSwitch_OnPenIconMsg(HWND hwnd, UINT uMouseMsg) POINT pt; GetCursorPos(&pt); - ERR("g_hwndLastActive: %p\n", g_hwndLastActive); + // Get target window + TRACE("g_hwndLastActive: %p\n", g_hwndLastActive); HWND hwndTarget = GetTargetWindow(g_hwndLastActive); - ERR("hwndTarget: %p\n", hwndTarget); + TRACE("hwndTarget: %p\n", hwndTarget); + // Get default IME window HWND hwndIme = ImmGetDefaultIMEWnd(hwndTarget); if (!hwndIme) { @@ -1039,6 +1091,7 @@ KbSwitch_OnPenIconMsg(HWND hwnd, UINT uMouseMsg) return; } + // Get IME context from another process HIMC hIMC = (HIMC)SendMessage(hwndIme, WM_IME_SYSTEM, IMS_GETCONTEXT, (LPARAM)hwndTarget); if (!hIMC) { @@ -1046,40 +1099,95 @@ KbSwitch_OnPenIconMsg(HWND hwnd, UINT uMouseMsg) return; } + // Workaround of TrackPopupMenu's bug SetForegroundWindow(hwnd); + // Create IME menu BOOL bRightButton = (uMouseMsg == WM_RBUTTONUP); PIMEMENUNODE pImeMenu = CreateImeMenu(hIMC, NULL, bRightButton); HMENU hMenu = MenuFromImeMenu(pImeMenu); + HKL hKL = g_ahKLs[g_iKL]; + DWORD dwImeStatus = GetImeStatus(hwndTarget); + BOOL bImeOn = FALSE, bSoftOn = FALSE, bShowToolbar = FALSE; + TCHAR szText[128]; if (bRightButton) { - if (!(g_anFlags[g_iKL] & LAYOUTF_REMOVE_RIGHT_DEF_MENU)) + if (!(g_anFlags[g_iKL] & LAYOUTF_REMOVE_RIGHT_DEF_MENU)) // Add default menu items? { - // FIXME: Add default menu items + if (GetMenuItemCount(hMenu)) + AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); // Separator + + // "Input System (IME) configuration..." + LoadString(g_hInst, IDS_INPUTSYSTEM, szText, _countof(szText)); + AppendMenu(hMenu, MF_STRING, ID_INPUTSYSTEM, szText); } } else { - if (!(g_anFlags[g_iKL] & LAYOUTF_REMOVE_LEFT_DEF_MENU)) + if (!(g_anFlags[g_iKL] & LAYOUTF_REMOVE_LEFT_DEF_MENU)) // Add default menu items? { - // FIXME: Add default menu items + if (GetMenuItemCount(hMenu)) + AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); // Separator + + if (!IS_KOREAN_IME_HKL(hKL)) // Not Korean IME? + { + // "IME ON / OFF" + bImeOn = (dwImeStatus == IME_STATUS_IME_OPEN); + UINT nId = (bImeOn ? IDS_IME_ON : IDS_IME_OFF); + LoadString(g_hInst, nId, szText, _countof(szText)); + AppendMenu(hMenu, MF_STRING, ID_IMEONOFF, szText); + } + + if ((ImmGetProperty(hKL, IGP_CONVERSION) & IME_CMODE_SOFTKBD) && + IsWindow(hwndIme)) // Is Soft Keyboard available? + { + // "Soft Keyboard ON / OFF" + bSoftOn = (SendMessage(hwndIme, WM_IME_SYSTEM, IMS_GETCONVSTATUS, 0) & IME_CMODE_SOFTKBD); + UINT nId = (bSoftOn ? IDS_SOFTKBD_ON : IDS_SOFTKBD_OFF); + LoadString(g_hInst, nId, szText, _countof(szText)); + AppendMenu(hMenu, MF_STRING, ID_SOFTKBDONOFF, szText); + } + + if (GetMenuItemCount(hMenu)) + AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); // Separator + + // "Show toolbar" + LoadString(g_hInst, IDS_SHOWTOOLBAR, szText, _countof(szText)); + AppendMenu(hMenu, MF_STRING, ID_SHOWTOOLBAR, szText); + bShowToolbar = IsRegImeToolbarShown(); + if (bShowToolbar) + CheckMenuItem(hMenu, ID_SHOWTOOLBAR, MF_CHECKED); } } + if (!GetMenuItemCount(hMenu)) // No items? + { + // Clean up + DestroyMenu(hMenu); + CleanupImeMenus(); + + SetForegroundWindow(hwndTarget); + return; + } + + // TrackPopupMenuEx flags UINT uFlags = TPM_VERTICAL | TPM_RIGHTALIGN | TPM_RETURNCMD; uFlags |= (bRightButton ? TPM_RIGHTBUTTON : TPM_LEFTBUTTON); + // Exclude the notification area TPMPARAMS params = { sizeof(params) }; GetWindowRect(g_hTrayNotifyWnd, ¶ms.rcExclude); + // Show the popup menu INT nID = TrackPopupMenuEx(hMenu, uFlags, pt.x, pt.y, hwnd, ¶ms); + // Workaround of TrackPopupMenu's bug PostMessage(hwnd, WM_NULL, 0, 0); - if (nID) + if (nID) // Action! { - if (nID >= ID_STARTIMEMENU) + if (nID >= ID_STARTIMEMENU) // IME internal menu ID? { MENUITEMINFO mii = { sizeof(mii), MIIM_DATA }; GetMenuItemInfo(hMenu, nID, FALSE, &mii); @@ -1090,15 +1198,35 @@ KbSwitch_OnPenIconMsg(HWND hwnd, UINT uMouseMsg) if (SetPenMenuData) SetPenMenuData(nID, mii.dwItemData); - if (IsWindow(hwndIme)) - SendMessage(hwndIme, WM_IME_SYSTEM, IMS_IMEMENUITEMSELECTED, (LPARAM)hwndTarget); + PostMessage(hwndIme, WM_IME_SYSTEM, IMS_IMEMENUITEMSELECTED, (LPARAM)hwndTarget); } - else + else // Otherwise action of IME menu item { - PostMessage(hwnd, WM_COMMAND, nID, 0); + switch (nID) + { + case ID_INPUTSYSTEM: + if (IS_IME_HKL(hKL)) + PostMessage(hwndIme, WM_IME_SYSTEM, IMS_CONFIGURE, (LPARAM)hKL); + break; + case ID_IMEONOFF: + ImmSetOpenStatus(hIMC, !bImeOn); + break; + case ID_SOFTKBDONOFF: + PostMessage(hwndIme, WM_IME_SYSTEM, IMS_SOFTKBDONOFF, !bSoftOn); + break; + case ID_SHOWTOOLBAR: + ShowImeToolbar(hwndTarget, !bShowToolbar); + break; + default: + { + PostMessage(hwnd, WM_COMMAND, nID, 0); + break; + } + } } } + // Clean up DestroyMenu(hMenu); CleanupImeMenus(); @@ -1140,7 +1268,7 @@ KbSwitch_OnCommand(HWND hwnd, UINT nID) } } -// WM_LANG_CHANGED +// WM_LANG_CHANGED (HSHELL_LANGUAGE) static LRESULT KbSwitch_OnLangChanged(HWND hwnd, HWND hwndTarget OPTIONAL, HKL hKL OPTIONAL) { @@ -1151,7 +1279,7 @@ KbSwitch_OnLangChanged(HWND hwnd, HWND hwndTarget OPTIONAL, HKL hKL OPTIONAL) return 0; } -// WM_WINDOW_ACTIVATE +// WM_WINDOW_ACTIVATE (HCBT_ACTIVATE / HCBT_SETFOCUS / HSHELL_WINDOWACTIVATED) static LRESULT KbSwitch_OnWindowActivate(HWND hwnd, HWND hwndTarget OPTIONAL, LPARAM lParam OPTIONAL) { diff --git a/base/applications/kbswitch/lang/bg-BG.rc b/base/applications/kbswitch/lang/bg-BG.rc index 3aefbec3c85..c768e5171d5 100644 --- a/base/applications/kbswitch/lang/bg-BG.rc +++ b/base/applications/kbswitch/lang/bg-BG.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "Из&ход", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/cs-CZ.rc b/base/applications/kbswitch/lang/cs-CZ.rc index a1cd96fbcab..9dbec04b610 100644 --- a/base/applications/kbswitch/lang/cs-CZ.rc +++ b/base/applications/kbswitch/lang/cs-CZ.rc @@ -14,3 +14,13 @@ BEGIN MENUITEM "&Ukončit", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/de-DE.rc b/base/applications/kbswitch/lang/de-DE.rc index b53b8fe887f..ca8da9a3873 100644 --- a/base/applications/kbswitch/lang/de-DE.rc +++ b/base/applications/kbswitch/lang/de-DE.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&Beenden", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/en-US.rc b/base/applications/kbswitch/lang/en-US.rc index dc5a2ca2910..8fa047e4d38 100644 --- a/base/applications/kbswitch/lang/en-US.rc +++ b/base/applications/kbswitch/lang/en-US.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "E&xit", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/es-ES.rc b/base/applications/kbswitch/lang/es-ES.rc index e020e3a76c8..2adff452e2b 100644 --- a/base/applications/kbswitch/lang/es-ES.rc +++ b/base/applications/kbswitch/lang/es-ES.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&Salir", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/et-EE.rc b/base/applications/kbswitch/lang/et-EE.rc index 6f80d342145..2e3e2855986 100644 --- a/base/applications/kbswitch/lang/et-EE.rc +++ b/base/applications/kbswitch/lang/et-EE.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "V&älju", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/fr-FR.rc b/base/applications/kbswitch/lang/fr-FR.rc index d1a76ed6d31..8bd35b4e11f 100644 --- a/base/applications/kbswitch/lang/fr-FR.rc +++ b/base/applications/kbswitch/lang/fr-FR.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "Quitt&er", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/he-IL.rc b/base/applications/kbswitch/lang/he-IL.rc index 04ed657eeb3..2b77787ecf1 100644 --- a/base/applications/kbswitch/lang/he-IL.rc +++ b/base/applications/kbswitch/lang/he-IL.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&יציאה", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/it-IT.rc b/base/applications/kbswitch/lang/it-IT.rc index 2261a8a8278..1888bcdde03 100644 --- a/base/applications/kbswitch/lang/it-IT.rc +++ b/base/applications/kbswitch/lang/it-IT.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&Esci", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/ja-JP.rc b/base/applications/kbswitch/lang/ja-JP.rc index 1d16b5f8061..c7427406455 100644 --- a/base/applications/kbswitch/lang/ja-JP.rc +++ b/base/applications/kbswitch/lang/ja-JP.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "終了(&E)", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "入力システム (IME) - オン" + IDS_IME_OFF "入力システム (IME) - オフ" + IDS_SOFTKBD_ON "ソフト キーボード - オン" + IDS_SOFTKBD_OFF "ソフト キーボード - オフ" + IDS_SHOWTOOLBAR "ツールバーを表示する" + IDS_INPUTSYSTEM "入力システム (IME) の設定..." +END diff --git a/base/applications/kbswitch/lang/lt-LT.rc b/base/applications/kbswitch/lang/lt-LT.rc index 58e6eeffa3e..3fedec253aa 100644 --- a/base/applications/kbswitch/lang/lt-LT.rc +++ b/base/applications/kbswitch/lang/lt-LT.rc @@ -11,3 +11,13 @@ BEGIN MENUITEM "&Baigti", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/no-NO.rc b/base/applications/kbswitch/lang/no-NO.rc index 759071990c7..9e0008063e8 100644 --- a/base/applications/kbswitch/lang/no-NO.rc +++ b/base/applications/kbswitch/lang/no-NO.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&Avslutt", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/pl-PL.rc b/base/applications/kbswitch/lang/pl-PL.rc index 2e778c6afca..013af9473ac 100644 --- a/base/applications/kbswitch/lang/pl-PL.rc +++ b/base/applications/kbswitch/lang/pl-PL.rc @@ -17,3 +17,13 @@ BEGIN MENUITEM "&Wyjście", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/pt-BR.rc b/base/applications/kbswitch/lang/pt-BR.rc index 8f33558a014..1afe91eef4a 100644 --- a/base/applications/kbswitch/lang/pt-BR.rc +++ b/base/applications/kbswitch/lang/pt-BR.rc @@ -11,3 +11,13 @@ BEGIN MENUITEM "&Sair", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/pt-PT.rc b/base/applications/kbswitch/lang/pt-PT.rc index 1b57f7e0bee..9fc93dd2efb 100644 --- a/base/applications/kbswitch/lang/pt-PT.rc +++ b/base/applications/kbswitch/lang/pt-PT.rc @@ -16,3 +16,13 @@ BEGIN MENUITEM "&Sair", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/ro-RO.rc b/base/applications/kbswitch/lang/ro-RO.rc index 13125ca2b03..6258f33ba95 100644 --- a/base/applications/kbswitch/lang/ro-RO.rc +++ b/base/applications/kbswitch/lang/ro-RO.rc @@ -16,3 +16,13 @@ BEGIN MENUITEM "I&eșire", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/ru-RU.rc b/base/applications/kbswitch/lang/ru-RU.rc index e278e199899..5a89f73b652 100644 --- a/base/applications/kbswitch/lang/ru-RU.rc +++ b/base/applications/kbswitch/lang/ru-RU.rc @@ -9,3 +9,13 @@ BEGIN MENUITEM "&Выход", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/sk-SK.rc b/base/applications/kbswitch/lang/sk-SK.rc index ecebbb6c16a..2720a07bc58 100644 --- a/base/applications/kbswitch/lang/sk-SK.rc +++ b/base/applications/kbswitch/lang/sk-SK.rc @@ -13,3 +13,13 @@ BEGIN MENUITEM "&Zavrieť", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/sq-AL.rc b/base/applications/kbswitch/lang/sq-AL.rc index 8552ca6c3ee..e9f99a9c1cd 100644 --- a/base/applications/kbswitch/lang/sq-AL.rc +++ b/base/applications/kbswitch/lang/sq-AL.rc @@ -13,3 +13,13 @@ BEGIN MENUITEM "&Dil", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/sv-SE.rc b/base/applications/kbswitch/lang/sv-SE.rc index 3639e9daaff..6b263b52b18 100644 --- a/base/applications/kbswitch/lang/sv-SE.rc +++ b/base/applications/kbswitch/lang/sv-SE.rc @@ -11,3 +11,13 @@ BEGIN MENUITEM "&Avsluta", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/tr-TR.rc b/base/applications/kbswitch/lang/tr-TR.rc index beeda8fe27e..d2a4f5cde89 100644 --- a/base/applications/kbswitch/lang/tr-TR.rc +++ b/base/applications/kbswitch/lang/tr-TR.rc @@ -11,3 +11,13 @@ BEGIN MENUITEM "&Çıkış", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/uk-UA.rc b/base/applications/kbswitch/lang/uk-UA.rc index bc7f01592df..63777338536 100644 --- a/base/applications/kbswitch/lang/uk-UA.rc +++ b/base/applications/kbswitch/lang/uk-UA.rc @@ -17,3 +17,13 @@ BEGIN MENUITEM "В&ихід", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/zh-CN.rc b/base/applications/kbswitch/lang/zh-CN.rc index 7d193496194..0aa890e9031 100644 --- a/base/applications/kbswitch/lang/zh-CN.rc +++ b/base/applications/kbswitch/lang/zh-CN.rc @@ -17,3 +17,13 @@ BEGIN MENUITEM "退出(&E)", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/zh-HK.rc b/base/applications/kbswitch/lang/zh-HK.rc index 31dec59db0e..19dab7f3167 100644 --- a/base/applications/kbswitch/lang/zh-HK.rc +++ b/base/applications/kbswitch/lang/zh-HK.rc @@ -17,3 +17,13 @@ BEGIN MENUITEM "結束(&E)", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/lang/zh-TW.rc b/base/applications/kbswitch/lang/zh-TW.rc index b12f7731c9f..0591e786502 100644 --- a/base/applications/kbswitch/lang/zh-TW.rc +++ b/base/applications/kbswitch/lang/zh-TW.rc @@ -17,3 +17,13 @@ BEGIN MENUITEM "結束(&E)", ID_EXIT END END + +STRINGTABLE +BEGIN + IDS_IME_ON "Input System (IME) - ON" + IDS_IME_OFF "Input System (IME) - OFF" + IDS_SOFTKBD_ON "Soft Keyboard - ON" + IDS_SOFTKBD_OFF "Soft Keyboard - OFF" + IDS_SHOWTOOLBAR "Show Toolbar" + IDS_INPUTSYSTEM "Input System (IME) configuration..." +END diff --git a/base/applications/kbswitch/resource.h b/base/applications/kbswitch/resource.h index 3a1109b6aaa..79325e507f7 100644 --- a/base/applications/kbswitch/resource.h +++ b/base/applications/kbswitch/resource.h @@ -6,7 +6,19 @@ /* Menus */ #define IDR_POPUP 100 +/* Strings */ +#define IDS_IME_ON 300 +#define IDS_IME_OFF 301 +#define IDS_SOFTKBD_ON 302 +#define IDS_SOFTKBD_OFF 303 +#define IDS_SHOWTOOLBAR 304 +#define IDS_INPUTSYSTEM 305 + /* Menu items */ -#define ID_EXIT 100 +#define ID_EXIT 100 #define ID_PREFERENCES 101 -#define ID_LANG_BASE 1000 +#define ID_INPUTSYSTEM 252 +#define ID_IMEONOFF 500 +#define ID_SOFTKBDONOFF 501 +#define ID_SHOWTOOLBAR 502 +#define ID_LANG_BASE 1000