diff --git a/reactos/base/applications/kbswitch/kbswitch.c b/reactos/base/applications/kbswitch/kbswitch.c index 456dd413568..dea20f06aad 100644 --- a/reactos/base/applications/kbswitch/kbswitch.c +++ b/reactos/base/applications/kbswitch/kbswitch.c @@ -137,6 +137,7 @@ BuildPopupMenu() HMENU hMenu; HKEY hKey; DWORD dwIndex, dwSize; + LPTSTR szExit; TCHAR szLayoutNum[CCH_ULONG_DEC + 1]; TCHAR szName[MAX_PATH]; @@ -159,8 +160,9 @@ BuildPopupMenu() RegCloseKey(hKey); } - AppendMenu(hMenu, MF_SEPARATOR, 0, _T("")); - AppendMenu(hMenu, MF_STRING, 1000, _T("Exit")); + LoadString(hInst, IDS_EXIT, (LPTSTR)&szExit, 0); + AppendMenu(hMenu, MF_SEPARATOR, 0, NULL); + AppendMenu(hMenu, MF_STRING, MENU_ID_EXIT, szExit); return hMenu; } @@ -194,16 +196,11 @@ WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) break; case WM_COMMAND: - if (LOWORD(wParam) == 1000) - { - DestroyMenu(hPopupMenu); - DelTrayIcon(hwnd); - PostQuitMessage(0); - } + if (LOWORD(wParam) == MENU_ID_EXIT) + SendMessage(hwnd, WM_CLOSE, 0, 0); else - { ActivateLayout(LOWORD(wParam)); - } + break; case WM_DESTROY: diff --git a/reactos/base/applications/kbswitch/kbswitch.h b/reactos/base/applications/kbswitch/kbswitch.h index 1be3801cef6..9630da63c73 100644 --- a/reactos/base/applications/kbswitch/kbswitch.h +++ b/reactos/base/applications/kbswitch/kbswitch.h @@ -9,3 +9,5 @@ // Maximum Character Count of a ULONG in decimal #define CCH_ULONG_DEC 10 + +#define MENU_ID_EXIT 65535 diff --git a/reactos/base/applications/kbswitch/kbswitch.rc b/reactos/base/applications/kbswitch/kbswitch.rc index ca5c22b6caf..8d45e25507f 100644 --- a/reactos/base/applications/kbswitch/kbswitch.rc +++ b/reactos/base/applications/kbswitch/kbswitch.rc @@ -3,4 +3,11 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Keyboard Layout Switcher\0" +#define REACTOS_STR_INTERNAL_NAME "kbswitch\0" +#define REACTOS_STR_ORIGINAL_FILENAME "kbswitch.exe\0" +#include + IDI_MAIN ICON "res/kbswitch.ico" + +#include "rsrc.rc" diff --git a/reactos/base/applications/kbswitch/lang/de-DE.rc b/reactos/base/applications/kbswitch/lang/de-DE.rc new file mode 100644 index 00000000000..073d73e6588 --- /dev/null +++ b/reactos/base/applications/kbswitch/lang/de-DE.rc @@ -0,0 +1,6 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_EXIT, "Beenden" +END diff --git a/reactos/base/applications/kbswitch/lang/en-US.rc b/reactos/base/applications/kbswitch/lang/en-US.rc new file mode 100644 index 00000000000..cdc895f3e3c --- /dev/null +++ b/reactos/base/applications/kbswitch/lang/en-US.rc @@ -0,0 +1,6 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +STRINGTABLE +BEGIN + IDS_EXIT, "Exit" +END diff --git a/reactos/base/applications/kbswitch/resource.h b/reactos/base/applications/kbswitch/resource.h index 48937260e9b..e6976c73898 100644 --- a/reactos/base/applications/kbswitch/resource.h +++ b/reactos/base/applications/kbswitch/resource.h @@ -1,2 +1,5 @@ /* Icons */ #define IDI_MAIN 100 + +/* Strings */ +#define IDS_EXIT 1001 diff --git a/reactos/base/applications/kbswitch/rsrc.rc b/reactos/base/applications/kbswitch/rsrc.rc new file mode 100644 index 00000000000..eec97261e8d --- /dev/null +++ b/reactos/base/applications/kbswitch/rsrc.rc @@ -0,0 +1,2 @@ +#include "lang/de-DE.rc" +#include "lang/en-US.rc"