From e64e194b5d6b8817a06dfcf9565901d5a89cc84c Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Tue, 9 Aug 2016 18:26:43 +0000 Subject: [PATCH] [INPUT] - Implement editing input methods - Marking default layout - Other bugfixes svn path=/trunk/; revision=72168 --- reactos/dll/cpl/input_new/edit_dialog.c | 66 +++++- reactos/dll/cpl/input_new/input_list.c | 81 +++++-- reactos/dll/cpl/input_new/input_list.h | 14 +- .../dll/cpl/input_new/key_settings_dialog.c | 62 +++++- reactos/dll/cpl/input_new/lang/bg-BG.rc | 4 +- reactos/dll/cpl/input_new/lang/cs-CZ.rc | 4 +- reactos/dll/cpl/input_new/lang/de-DE.rc | 4 +- reactos/dll/cpl/input_new/lang/el-GR.rc | 4 +- reactos/dll/cpl/input_new/lang/en-US.rc | 4 +- reactos/dll/cpl/input_new/lang/es-ES.rc | 4 +- reactos/dll/cpl/input_new/lang/fr-FR.rc | 4 +- reactos/dll/cpl/input_new/lang/he-IL.rc | 4 +- reactos/dll/cpl/input_new/lang/it-IT.rc | 4 +- reactos/dll/cpl/input_new/lang/no-NO.rc | 4 +- reactos/dll/cpl/input_new/lang/pl-PL.rc | 4 +- reactos/dll/cpl/input_new/lang/pt-BR.rc | 2 +- reactos/dll/cpl/input_new/lang/ro-RO.rc | 2 +- reactos/dll/cpl/input_new/lang/ru-RU.rc | 4 +- reactos/dll/cpl/input_new/lang/sk-SK.rc | 4 +- reactos/dll/cpl/input_new/lang/sq-AL.rc | 4 +- reactos/dll/cpl/input_new/lang/tr-TR.rc | 4 +- reactos/dll/cpl/input_new/lang/uk-UA.rc | 4 +- reactos/dll/cpl/input_new/lang/zh-CN.rc | 2 +- reactos/dll/cpl/input_new/lang/zh-TW.rc | 2 +- reactos/dll/cpl/input_new/settings_page.c | 197 ++++++++++++------ 25 files changed, 357 insertions(+), 135 deletions(-) diff --git a/reactos/dll/cpl/input_new/edit_dialog.c b/reactos/dll/cpl/input_new/edit_dialog.c index f0960760394..4acd2c0a321 100644 --- a/reactos/dll/cpl/input_new/edit_dialog.c +++ b/reactos/dll/cpl/input_new/edit_dialog.c @@ -6,29 +6,83 @@ */ #include "input.h" +#include "locale_list.h" +#include "input_list.h" INT_PTR CALLBACK -EditDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +EditDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(lParam); switch (uMsg) { case WM_INITDIALOG: - break; + { + LAYOUT_LIST_NODE *pCurrentLayout; + INPUT_LIST_NODE *pInput; + HWND hwndList; + + pInput = (INPUT_LIST_NODE*) lParam; + + if (pInput == NULL) + return TRUE; + + SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR) pInput); + + SetWindowTextW(GetDlgItem(hwndDlg, IDC_INPUT_LANG_STR), pInput->pLocale->pszName); + + hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO); + + for (pCurrentLayout = LayoutList_GetFirst(); + pCurrentLayout != NULL; + pCurrentLayout = pCurrentLayout->pNext) + { + INT iItemIndex; + + iItemIndex = ComboBox_AddString(hwndList, pCurrentLayout->pszName); + ComboBox_SetItemData(hwndList, iItemIndex, pCurrentLayout); + } + + ComboBox_SelectString(hwndList, 0, pInput->pLayout->pszName); + } + break; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDOK: - EndDialog(hDlg, LOWORD(wParam)); - break; + { + INPUT_LIST_NODE *pInput; + HWND hwndList; + + hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO); + + pInput = (INPUT_LIST_NODE*) GetWindowLongPtrW(hwndDlg, GWLP_USERDATA); + + if (pInput != NULL) + { + LAYOUT_LIST_NODE *pNewLayout; + + pNewLayout = (LAYOUT_LIST_NODE*)ComboBox_GetItemData(hwndList, + ComboBox_GetCurSel(hwndList)); + if (pNewLayout != NULL) + { + pInput->pLayout = pNewLayout; + pInput->wFlags |= INPUT_LIST_NODE_FLAG_EDITED; + } + } + + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; case IDCANCEL: - EndDialog(hDlg, LOWORD(wParam)); - break; + { + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; } } break; diff --git a/reactos/dll/cpl/input_new/input_list.c b/reactos/dll/cpl/input_new/input_list.c index a61e64954ef..2fea50b609a 100644 --- a/reactos/dll/cpl/input_new/input_list.c +++ b/reactos/dll/cpl/input_new/input_list.c @@ -215,28 +215,37 @@ InputList_AddInputMethodToUserRegistry(DWORD dwIndex, INPUT_LIST_NODE *pNode) } } - if (pNode->dwFlags & INPUT_LIST_NODE_FLAG_ADDED) + if ((pNode->wFlags & INPUT_LIST_NODE_FLAG_ADDED) || + (pNode->wFlags & INPUT_LIST_NODE_FLAG_EDITED)) { pNode->hkl = LoadKeyboardLayoutW(szPreload, KLF_SUBSTITUTE_OK | KLF_NOTELLSHELL); } } +/* + * Writes any changes in input methods to the registry + */ VOID InputList_Process(VOID) { INPUT_LIST_NODE *pCurrent; DWORD dwIndex; - /* Process deleted input methods */ + /* Process deleted and edited input methods */ for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext) { - if (!(pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DELETED)) - continue; - - if (UnloadKeyboardLayout(pCurrent->hkl)) + if ((pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DELETED) || + (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_EDITED)) { - InputList_RemoveNode(pCurrent); + if (UnloadKeyboardLayout(pCurrent->hkl)) + { + /* Only unload the edited input method, but does not delete it from the list */ + if (!(pCurrent->wFlags & INPUT_LIST_NODE_FLAG_EDITED)) + { + InputList_RemoveNode(pCurrent); + } + } } } @@ -245,7 +254,7 @@ InputList_Process(VOID) /* Find default input method */ for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext) { - if (pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT) + if (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT) { InputList_AddInputMethodToUserRegistry(1, pCurrent); break; @@ -273,7 +282,7 @@ InputList_Process(VOID) for (pCurrent = _InputList; pCurrent != NULL; pCurrent = pCurrent->pNext) { - if (pCurrent->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT) + if (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT) continue; InputList_AddInputMethodToUserRegistry(dwIndex, pCurrent); @@ -283,7 +292,7 @@ InputList_Process(VOID) } -VOID +BOOL InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout) { WCHAR szIndicator[MAX_STR_LEN]; @@ -291,12 +300,20 @@ InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout) if (pLocale == NULL || pLayout == NULL) { - return; + return FALSE; + } + + for (pInput = _InputList; pInput != NULL; pInput = pInput->pNext) + { + if (pInput->pLocale == pLocale && pInput->pLayout == pLayout) + { + return FALSE; + } } pInput = InputList_AppendNode(); - pInput->dwFlags |= INPUT_LIST_NODE_FLAG_ADDED; + pInput->wFlags = INPUT_LIST_NODE_FLAG_ADDED; pInput->pLocale = pLocale; pInput->pLayout = pLayout; @@ -314,6 +331,8 @@ InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout) pInput->pszIndicator = DublicateString(szIndicator); } } + + return TRUE; } @@ -329,35 +348,57 @@ InputList_SetDefault(INPUT_LIST_NODE *pNode) { if (pCurrent == pNode) { - pCurrent->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; + pCurrent->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; } else { - pCurrent->dwFlags &= ~INPUT_LIST_NODE_FLAG_DEFAULT; + pCurrent->wFlags &= ~INPUT_LIST_NODE_FLAG_DEFAULT; } } } +/* + * It marks the input method for deletion, but does not delete it directly. + * To apply the changes using InputList_Process() + */ VOID InputList_Remove(INPUT_LIST_NODE *pNode) { + BOOL bRemoveNode = FALSE; + if (pNode == NULL) return; - pNode->dwFlags |= INPUT_LIST_NODE_FLAG_DELETED; + if (pNode->wFlags & INPUT_LIST_NODE_FLAG_ADDED) + { + /* + * If the input method has been added to the list, but not yet written + * in the registry, then simply remove it from the list + */ + bRemoveNode = TRUE; + } + else + { + pNode->wFlags = INPUT_LIST_NODE_FLAG_DELETED; + } - if (pNode->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT) + if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT) { if (pNode->pNext != NULL) { - pNode->pNext->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; + pNode->pNext->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; } else if (pNode->pPrev != NULL) { - pNode->pPrev->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; + pNode->pPrev->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; } } + + if (bRemoveNode != FALSE) + { + InputList_RemoveNode(pNode); + } } @@ -368,7 +409,7 @@ InputList_Create(VOID) HKL *pLayoutList; iLayoutCount = GetKeyboardLayoutList(0, NULL); - pLayoutList = (HKL*)malloc(iLayoutCount * sizeof(HKL)); + pLayoutList = (HKL*) malloc(iLayoutCount * sizeof(HKL)); if (pLayoutList != NULL) { @@ -403,7 +444,7 @@ InputList_Create(VOID) if (pInput->hkl == hklDefault) { - pInput->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; + pInput->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; } if (GetLocaleInfoW(LOWORD(pInput->pLocale->dwId), diff --git a/reactos/dll/cpl/input_new/input_list.h b/reactos/dll/cpl/input_new/input_list.h index 837f03e576d..d2659f306dd 100644 --- a/reactos/dll/cpl/input_new/input_list.h +++ b/reactos/dll/cpl/input_new/input_list.h @@ -5,20 +5,20 @@ #include "layout_list.h" -#define INPUT_LIST_NODE_FLAG_EDITED 0x00000001 -#define INPUT_LIST_NODE_FLAG_ADDED 0x00000002 -#define INPUT_LIST_NODE_FLAG_DELETED 0x00000004 -#define INPUT_LIST_NODE_FLAG_DEFAULT 0x00000008 +#define INPUT_LIST_NODE_FLAG_EDITED 0x0001 +#define INPUT_LIST_NODE_FLAG_ADDED 0x0002 +#define INPUT_LIST_NODE_FLAG_DELETED 0x0004 +#define INPUT_LIST_NODE_FLAG_DEFAULT 0x0008 typedef struct _INPUT_LIST_NODE { - DWORD dwFlags; + WORD wFlags; LOCALE_LIST_NODE *pLocale; LAYOUT_LIST_NODE *pLayout; - HKL hkl; + HKL hkl; /* Only for loaded input methods */ WCHAR *pszIndicator; @@ -33,7 +33,7 @@ InputList_Create(VOID); VOID InputList_Process(VOID); -VOID +BOOL InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout); VOID diff --git a/reactos/dll/cpl/input_new/key_settings_dialog.c b/reactos/dll/cpl/input_new/key_settings_dialog.c index 619224ed348..0e1a80f9a23 100644 --- a/reactos/dll/cpl/input_new/key_settings_dialog.c +++ b/reactos/dll/cpl/input_new/key_settings_dialog.c @@ -9,7 +9,43 @@ INT_PTR CALLBACK -KeySettingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +ChangeKeySeqDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + + switch (uMsg) + { + case WM_INITDIALOG: + { + + } + break; + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + case IDOK: + { + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; + + case IDCANCEL: + { + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; + } + } + break; + } + + return FALSE; +} + +INT_PTR CALLBACK +KeySettingsDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { UNREFERENCED_PARAMETER(lParam); @@ -22,13 +58,29 @@ KeySettingsDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (LOWORD(wParam)) { + case IDC_CHANGE_KEY_SEQ_BTN: + { + if (DialogBoxW(hApplet, + MAKEINTRESOURCEW(IDD_CHANGE_KEY_SEQ), + hwndDlg, + ChangeKeySeqDialogProc) == IDOK) + { + + } + } + break; + case IDOK: - EndDialog(hDlg, LOWORD(wParam)); - break; + { + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; case IDCANCEL: - EndDialog(hDlg, LOWORD(wParam)); - break; + { + EndDialog(hwndDlg, LOWORD(wParam)); + } + break; } } break; diff --git a/reactos/dll/cpl/input_new/lang/bg-BG.rc b/reactos/dll/cpl/input_new/lang/bg-BG.rc index fa8ac2bf868..615bf756b4c 100644 --- a/reactos/dll/cpl/input_new/lang/bg-BG.rc +++ b/reactos/dll/cpl/input_new/lang/bg-BG.rc @@ -6,10 +6,10 @@ CAPTION "Настройки" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Посочете избраните от вас услуги за всеки посочен в списъка език.\nПромяната на списъка става с „Премахване“ и „Добавяне“.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Прилагане на подразбираните", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Добавяне...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "Пре&махване...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "Пре&махване", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Предпочитания", -1, 7, 185, 240, 36 PUSHBUTTON "Настройка на &клавишите...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/cs-CZ.rc b/reactos/dll/cpl/input_new/lang/cs-CZ.rc index 70e4c89d064..71f3a5348ba 100644 --- a/reactos/dll/cpl/input_new/lang/cs-CZ.rc +++ b/reactos/dll/cpl/input_new/lang/cs-CZ.rc @@ -11,10 +11,10 @@ CAPTION "Nastavení" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Zvolte služby pro každý vstupní jazyk v seznamu.\nSeznam lze měnit pomocí tlačítek Přidat a Odebrat.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "Nas&tavit výchozí", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Přidat...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Odebrat...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Odebrat", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Vlastnosti...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Předvolby", -1, 7, 185, 240, 36 PUSHBUTTON "&Nastavení kláves...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/de-DE.rc b/reactos/dll/cpl/input_new/lang/de-DE.rc index ac5cc1a56c2..3f646dc634c 100644 --- a/reactos/dll/cpl/input_new/lang/de-DE.rc +++ b/reactos/dll/cpl/input_new/lang/de-DE.rc @@ -6,10 +6,10 @@ CAPTION "Einstellungen" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Wählen Sie die Dienste aus, die Sie für die Eingabesprachen in der Liste verwenden wollen.\nVerwenden Sie ""Hinzufügen"" und ""Entfernen"", um die Liste zu bearbeiten.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Als Standard", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Hinzufügen...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "Ent&fernen...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "Ent&fernen", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Eigenschaften...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Einstellungen", -1, 7, 185, 240, 36 PUSHBUTTON "&Tasteneinstellungen...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/el-GR.rc b/reactos/dll/cpl/input_new/lang/el-GR.rc index a4f8c9c38ff..7964c5e7195 100644 --- a/reactos/dll/cpl/input_new/lang/el-GR.rc +++ b/reactos/dll/cpl/input_new/lang/el-GR.rc @@ -6,10 +6,10 @@ CAPTION "Ρυθμίσεις" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Επιλέξτε τις υπηρεσίες που θέλετε για κάθε γλώσσα εισαγωγής που εμφανίζεται στη λίστα.\nΧρησιμοποιήστε τα κουμπιά Προσθήκη και Κατάργηση για την τροποποίηση αυτής της λίστας.", -1, 9, 6, 238, 33 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 42, 237, 95 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 42, 237, 95 PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "Π&ροσθήκη...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Κατάργηση...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Κατάργηση", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Ιδιότητες...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Προτιμήσεις", -1, 7, 185, 240, 36 PUSHBUTTON "&Ρυθμίσεις πλήκτρων...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/en-US.rc b/reactos/dll/cpl/input_new/lang/en-US.rc index 90090576a18..0c8f84dbf0e 100644 --- a/reactos/dll/cpl/input_new/lang/en-US.rc +++ b/reactos/dll/cpl/input_new/lang/en-US.rc @@ -6,10 +6,10 @@ CAPTION "Settings" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Select the services that you want for each input language shown in the list.\nUse the Add and Remove buttons to modify this list.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "A&dd...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Remove...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Remove", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Properties...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Preferences", -1, 7, 185, 240, 36 PUSHBUTTON "&Key Settings...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/es-ES.rc b/reactos/dll/cpl/input_new/lang/es-ES.rc index b88f7aea077..28675d3480c 100644 --- a/reactos/dll/cpl/input_new/lang/es-ES.rc +++ b/reactos/dll/cpl/input_new/lang/es-ES.rc @@ -8,10 +8,10 @@ CAPTION "Configuración" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Seleccione los servicios que desea para cada idioma mostrado en la lista. Use los botones de Agregar y Quitar para modificar esta lista.", -1, 9, 6, 238, 17 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109 PUSHBUTTON "Pr&edeterminado", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "Ag®ar...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Quitar...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Quitar", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Propiedades...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Pre&ferencias ", -1, 7, 185, 240, 36 PUSHBUTTON "C&onfiguración de teclas...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/fr-FR.rc b/reactos/dll/cpl/input_new/lang/fr-FR.rc index 20a4b29cbcc..24884ab09c6 100644 --- a/reactos/dll/cpl/input_new/lang/fr-FR.rc +++ b/reactos/dll/cpl/input_new/lang/fr-FR.rc @@ -6,10 +6,10 @@ CAPTION "Paramètres" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Sélectionnez les services que vous désirez pour chaque langue de saisie affichée dans la liste.\nUtilisez les boutons Ajouter et Supprimer pour modifier la liste.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "Par &défaut", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "A&jouter...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "Supp&rimer...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "Supp&rimer", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Propriétés...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Pré&férences", -1, 7, 185, 240, 36 PUSHBUTTON "Para&mètres des touches...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/he-IL.rc b/reactos/dll/cpl/input_new/lang/he-IL.rc index 79fc0b53724..2ffcf116181 100644 --- a/reactos/dll/cpl/input_new/lang/he-IL.rc +++ b/reactos/dll/cpl/input_new/lang/he-IL.rc @@ -8,10 +8,10 @@ CAPTION "הגדרות" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Select the services that you want for each input language shown in the list.\nUse the Add and Remove buttons to modify this list.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "קבע כברירת מחדל...", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "הוסף...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "הסר...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "הסר", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "מאפיניים...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "העדפות", -1, 7, 185, 240, 36 PUSHBUTTON "הגדרות מקשים...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/it-IT.rc b/reactos/dll/cpl/input_new/lang/it-IT.rc index b0cd2c80a5d..7575de6c567 100644 --- a/reactos/dll/cpl/input_new/lang/it-IT.rc +++ b/reactos/dll/cpl/input_new/lang/it-IT.rc @@ -6,10 +6,10 @@ CAPTION "Impostazioni" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Scegliere i servizi desiderati per ognuna delle lingue nella lista.\nUsare Aggiungi e Rimuovi per modificare la lista.", -1, 9, 6, 238, 17 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109 PUSHBUTTON "&Predefinito", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Aggiungi...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Rimuovi...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Rimuovi", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Proprietà...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Preferenze", -1, 7, 185, 240, 36 PUSHBUTTON "&Impostazioni tasti...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/no-NO.rc b/reactos/dll/cpl/input_new/lang/no-NO.rc index c9a3d4afe8d..aa209ab0513 100644 --- a/reactos/dll/cpl/input_new/lang/no-NO.rc +++ b/reactos/dll/cpl/input_new/lang/no-NO.rc @@ -6,10 +6,10 @@ CAPTION "Innstillinger" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Velg tjenesten som du vil ha for hver inndatasprÃ¥k som er vist i listen.\nBruk legg til og fjern knappen for Ã¥ endre denne listen.", -1, 9, 6, 238, 25 - CONTROL "TEKST", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Sett Standard", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "Le&gg til...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Fjern...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Fjern", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Egenskaper...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Innstillinger", -1, 7, 185, 240, 36 PUSHBUTTON "&Tasteinnstillinger...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/pl-PL.rc b/reactos/dll/cpl/input_new/lang/pl-PL.rc index b52f95366e3..62ef5faddd5 100644 --- a/reactos/dll/cpl/input_new/lang/pl-PL.rc +++ b/reactos/dll/cpl/input_new/lang/pl-PL.rc @@ -14,10 +14,10 @@ CAPTION "Ustawienia" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Wybierz usługi dla kadego używanego języka z listy.\nListę można modyfikować przyciskami Dodaj i Usuń.", -1, 9, 6, 238, 17 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109 PUSHBUTTON "&Ustaw domyślne", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Dodaj...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "U&suń...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "U&suń", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Właściwości...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Preferencje", -1, 7, 185, 240, 36 PUSHBUTTON "Us&tawienia klawiszy...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/pt-BR.rc b/reactos/dll/cpl/input_new/lang/pt-BR.rc index d492ae0ce65..8b1ca89ae17 100644 --- a/reactos/dll/cpl/input_new/lang/pt-BR.rc +++ b/reactos/dll/cpl/input_new/lang/pt-BR.rc @@ -6,7 +6,7 @@ CAPTION "Configurações" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Selecione os serviços desejados para cada idioma de entrada mostrado na lista. Use os botões 'Adicionar' e 'Remover' para modificar essa lista.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "De&finir padrão", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Adicionar...", IDC_ADD_BUTTON, 27, 142, 70, 14 PUSHBUTTON "&Remover", IDC_REMOVE_BUTTON, 101, 142, 70, 14 diff --git a/reactos/dll/cpl/input_new/lang/ro-RO.rc b/reactos/dll/cpl/input_new/lang/ro-RO.rc index b8701553968..fc1ebecc6d5 100644 --- a/reactos/dll/cpl/input_new/lang/ro-RO.rc +++ b/reactos/dll/cpl/input_new/lang/ro-RO.rc @@ -8,7 +8,7 @@ CAPTION "Configurare" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Gestionați serviciile aferente limbilor de intrare utilizate în sistem. Utilizați butoanele pentru a aduce modificări listei.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Restabilește opțiunile implicite", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "A&dăugare…", IDC_ADD_BUTTON, 27, 142, 70, 14 PUSHBUTTON "&Elimină", IDC_REMOVE_BUTTON, 101, 142, 70, 14 diff --git a/reactos/dll/cpl/input_new/lang/ru-RU.rc b/reactos/dll/cpl/input_new/lang/ru-RU.rc index 72958c19d69..b25e80eee04 100644 --- a/reactos/dll/cpl/input_new/lang/ru-RU.rc +++ b/reactos/dll/cpl/input_new/lang/ru-RU.rc @@ -6,10 +6,10 @@ CAPTION "Параметры" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Выберите нужные раскладки для каждого языка ввода из списка. Для изменения списка служат кнопки ""Добавить"" и ""Удалить"".", -1, 9, 6, 238, 17 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 28, 237, 109 PUSHBUTTON "Ус&тановить по умолчанию", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Добавить...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Удалить...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Удалить", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Параметры", -1, 7, 185, 240, 36 PUSHBUTTON "&Параметры клавиатуры...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/sk-SK.rc b/reactos/dll/cpl/input_new/lang/sk-SK.rc index 51064b7243f..513459a1aaa 100644 --- a/reactos/dll/cpl/input_new/lang/sk-SK.rc +++ b/reactos/dll/cpl/input_new/lang/sk-SK.rc @@ -11,10 +11,10 @@ CAPTION "Nastavenia" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Vyberte služby, ktoré chcete priradiÅ¥ ku každému vstupnému jazyku uvedenému v zozname.\nPoužite tlačidlá PridaÅ¥ a OdstrániÅ¥ k úprave zoznamu.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "Pred&voliÅ¥", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&PridaÅ¥...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "O&dstrániÅ¥...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "O&dstrániÅ¥", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "Vl&astnosti...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Preferencie", -1, 7, 185, 240, 36 PUSHBUTTON "Nastavenie &klávesov...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/sq-AL.rc b/reactos/dll/cpl/input_new/lang/sq-AL.rc index 4d9253a451a..7b47ca765e1 100644 --- a/reactos/dll/cpl/input_new/lang/sq-AL.rc +++ b/reactos/dll/cpl/input_new/lang/sq-AL.rc @@ -10,10 +10,10 @@ CAPTION "Cilësimet" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Zgjidhni shërbimet që ju dëshironi për çdo gjuhë të dhënash treguar në listë.\nPërdor Shto dhe Hiq butonat për të modifikuar këtë listë.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Vendos Parazgjedhur", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "Sh&to...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Hiq...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Hiq", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Karakteristikat...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Preferenca", -1, 7, 185, 240, 36 PUSHBUTTON "&Çeles cilësimesh...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/tr-TR.rc b/reactos/dll/cpl/input_new/lang/tr-TR.rc index 59c2a56e49a..7bfe910339f 100644 --- a/reactos/dll/cpl/input_new/lang/tr-TR.rc +++ b/reactos/dll/cpl/input_new/lang/tr-TR.rc @@ -8,10 +8,10 @@ CAPTION "Ayarlar" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Dizelgede gösterilen tüm giriş dilleri için istediğiniz hizmetleri seçiniz.\nBu dizelgeyi değiştirmek için Ekle veyâ Sil düğmelerini kullanınız.", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "&Ön Tanımlı Yap", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Ekle...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Sil...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "&Sil", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "&Husûsiyetler...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Yeğlemeler", -1, 7, 185, 240, 36 PUSHBUTTON "&Düğme Ayarları...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/uk-UA.rc b/reactos/dll/cpl/input_new/lang/uk-UA.rc index fdfe7a2ceb6..84aae8fed48 100644 --- a/reactos/dll/cpl/input_new/lang/uk-UA.rc +++ b/reactos/dll/cpl/input_new/lang/uk-UA.rc @@ -14,10 +14,10 @@ CAPTION "Параметри" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Виберіть потрібні розкладки для кожної мови введення зі списку. Для зміни списку використовуйте кнопки ""Додати"" і ""Видалити"".", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "Встановити за замов&чуванням", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Додати...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "В&идалити...", IDC_REMOVE_BUTTON, 101, 142, 70, 14 + PUSHBUTTON "В&идалити", IDC_REMOVE_BUTTON, 101, 142, 70, 14 PUSHBUTTON "В&ластивості...", IDC_PROP_BUTTON, 175, 142, 70, 14 GROUPBOX "Налаштування", -1, 7, 185, 240, 36 PUSHBUTTON "&Параметри клавіатури...", IDC_KEY_SET_BTN, 14, 198, 110, 14 diff --git a/reactos/dll/cpl/input_new/lang/zh-CN.rc b/reactos/dll/cpl/input_new/lang/zh-CN.rc index 5a75381269b..2df9beaa1a6 100644 --- a/reactos/dll/cpl/input_new/lang/zh-CN.rc +++ b/reactos/dll/cpl/input_new/lang/zh-CN.rc @@ -8,7 +8,7 @@ CAPTION "设置" FONT 9, "MS Shell Dlg" BEGIN LTEXT "为列表中显示的每个输入语言选择服务。\n使用“添加”和“删除”按钮来修改这个列表。", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "设为默认值(&S)", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "添加(&D)...", IDC_ADD_BUTTON, 27, 142, 70, 14 PUSHBUTTON "删除(&R)", IDC_REMOVE_BUTTON, 101, 142, 70, 14 diff --git a/reactos/dll/cpl/input_new/lang/zh-TW.rc b/reactos/dll/cpl/input_new/lang/zh-TW.rc index f248dab52d9..4aa96e76c72 100644 --- a/reactos/dll/cpl/input_new/lang/zh-TW.rc +++ b/reactos/dll/cpl/input_new/lang/zh-TW.rc @@ -8,7 +8,7 @@ CAPTION "設定" FONT 9, "MS Shell Dlg" BEGIN LTEXT "為列表中顯示的每個輸入語言選擇服務。\n使用“添加”和“刪除”按鈕來修改這個列表。", -1, 9, 6, 238, 25 - CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 36, 237, 101 + CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SINGLESEL | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS | LVS_REPORT, 8, 36, 237, 101 PUSHBUTTON "設為預設值(&S)", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "添加(&D)...", IDC_ADD_BUTTON, 27, 142, 70, 14 PUSHBUTTON "刪除(&R)", IDC_REMOVE_BUTTON, 101, 142, 70, 14 diff --git a/reactos/dll/cpl/input_new/settings_page.c b/reactos/dll/cpl/input_new/settings_page.c index 6b4ed92095f..1d12d6c4018 100644 --- a/reactos/dll/cpl/input_new/settings_page.c +++ b/reactos/dll/cpl/input_new/settings_page.c @@ -12,8 +12,10 @@ static HICON -CreateLayoutIcon(LPWSTR szLayout) +CreateLayoutIcon(LPWSTR szLayout, BOOL bIsDefault) { + INT width = GetSystemMetrics(SM_CXSMICON) * 2; + INT height = GetSystemMetrics(SM_CYSMICON); HDC hdc; HDC hdcsrc; HBITMAP hBitmap; @@ -21,60 +23,83 @@ CreateLayoutIcon(LPWSTR szLayout) hdcsrc = GetDC(NULL); hdc = CreateCompatibleDC(hdcsrc); - hBitmap = CreateCompatibleBitmap(hdcsrc, - GetSystemMetrics(SM_CXSMICON), - GetSystemMetrics(SM_CYSMICON)); + hBitmap = CreateCompatibleBitmap(hdcsrc, width, height); + ReleaseDC(NULL, hdcsrc); if (hdc && hBitmap) { HBITMAP hBmpNew; - hBmpNew = CreateBitmap(GetSystemMetrics(SM_CXSMICON), - GetSystemMetrics(SM_CYSMICON), - 1, 1, NULL); + hBmpNew = CreateBitmap(width, height, 1, 1, NULL); if (hBmpNew) { - ICONINFO IconInfo; - HBITMAP hBmpOld; - HFONT hFont; - RECT rect; + LOGFONT lf; + + if (SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, 0)) + { + ICONINFO IconInfo; + HFONT hFont; + + hFont = CreateFontIndirectW(&lf); + + if (hFont != NULL) + { + HBITMAP hBmpOld; + + hBmpOld = SelectObject(hdc, hBitmap); + + if (hBmpOld != NULL) + { + RECT rect; + + SetRect(&rect, 0, 0, width / 2, height); + + if (bIsDefault != FALSE) + { + SetBkColor(hdc, GetSysColor(COLOR_WINDOW)); + SetTextColor(hdc, GetSysColor(COLOR_WINDOWTEXT)); + + ExtTextOutW(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL); + + SelectObject(hdc, hFont); + DrawTextW(hdc, L"\x25CF", 1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); + } + else + { + FillRect(hdc, &rect, GetSysColorBrush(COLOR_WINDOW)); + } + + SetRect(&rect, width / 2, 0, width, height); + + SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT)); + SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)); - hBmpOld = SelectObject(hdc, hBitmap); - rect.right = GetSystemMetrics(SM_CXSMICON); - rect.left = 0; - rect.bottom = GetSystemMetrics(SM_CYSMICON); - rect.top = 0; + ExtTextOutW(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL); - SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT)); - SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)); + SelectObject(hdc, hFont); + DrawTextW(hdc, szLayout, 2, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); - ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL); + SelectObject(hdc, hBmpNew); - hFont = CreateFontW(-11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET, - OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, - DEFAULT_QUALITY, FF_DONTCARE, L"Tahoma"); + PatBlt(hdc, 0, 0, width, height, BLACKNESS); - SelectObject(hdc, hFont); - DrawTextW(hdc, szLayout, 2, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER); - SelectObject(hdc, hBmpNew); + SelectObject(hdc, hBmpOld); - PatBlt(hdc, 0, 0, - GetSystemMetrics(SM_CXSMICON), - GetSystemMetrics(SM_CYSMICON), - BLACKNESS); + IconInfo.hbmColor = hBitmap; + IconInfo.hbmMask = hBmpNew; + IconInfo.fIcon = TRUE; - SelectObject(hdc, hBmpOld); + hIcon = CreateIconIndirect(&IconInfo); - IconInfo.hbmColor = hBitmap; - IconInfo.hbmMask = hBmpNew; - IconInfo.fIcon = TRUE; + DeleteObject(hBmpOld); + } - hIcon = CreateIconIndirect(&IconInfo); + DeleteObject(hFont); + } + } DeleteObject(hBmpNew); - DeleteObject(hBmpOld); - DeleteObject(hFont); } } @@ -85,6 +110,15 @@ CreateLayoutIcon(LPWSTR szLayout) } +static VOID +SetControlsState(HWND hwndDlg, BOOL bIsEnabled) +{ + EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), bIsEnabled); + EnableWindow(GetDlgItem(hwndDlg, IDC_PROP_BUTTON), bIsEnabled); + EnableWindow(GetDlgItem(hwndDlg, IDC_SET_DEFAULT), bIsEnabled); +} + + static VOID AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode) { @@ -99,7 +133,8 @@ AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode) { HICON hLayoutIcon; - hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator); + hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator, + (pInputNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)); if (hLayoutIcon != NULL) { @@ -110,9 +145,9 @@ AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode) memset(&item, 0, sizeof(LV_ITEM)); - item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; + item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; item.pszText = pInputNode->pLocale->pszName; - item.iItem = -1; + item.iItem = ListView_GetItemCount(hwndList) + 1; item.lParam = (LPARAM)pInputNode; item.iImage = ImageIndex; @@ -140,7 +175,7 @@ UpdateInputListView(HWND hwndList) pCurrentInputNode != NULL; pCurrentInputNode = pCurrentInputNode->pNext) { - if (!(pCurrentInputNode->dwFlags & INPUT_LIST_NODE_FLAG_DELETED)) + if (!(pCurrentInputNode->wFlags & INPUT_LIST_NODE_FLAG_DELETED)) { AddToInputListView(hwndList, pCurrentInputNode); } @@ -185,7 +220,7 @@ OnInitSettingsPage(HWND hwndDlg) column.pszText = szBuffer; ListView_InsertColumn(hwndInputList, 1, &column); - hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON), + hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON) * 2, GetSystemMetrics(SM_CYSMICON), ILC_COLOR8 | ILC_MASK, 0, 0); if (hLayoutImageList != NULL) @@ -195,6 +230,8 @@ OnInitSettingsPage(HWND hwndDlg) UpdateInputListView(hwndInputList); } + + SetControlsState(hwndDlg, FALSE); } @@ -236,7 +273,9 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) case IDC_REMOVE_BUTTON: { - HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); + HWND hwndList; + + hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); if (hwndList != NULL) { @@ -247,8 +286,8 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) if (ListView_GetItem(hwndList, &item) != FALSE) { - InputList_Remove((INPUT_LIST_NODE*)item.lParam); - UpdateInputListView(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST)); + InputList_Remove((INPUT_LIST_NODE*) item.lParam); + UpdateInputListView(hwndList); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } } @@ -257,20 +296,38 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) case IDC_PROP_BUTTON: { - if (DialogBoxW(hApplet, - MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP), - hwndDlg, - EditDialogProc) == IDOK) + HWND hwndList; + + hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); + + if (hwndList != NULL) { - UpdateInputListView(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST)); - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + LVITEM item = { 0 }; + + item.mask = LVIF_PARAM; + item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); + + if (ListView_GetItem(hwndList, &item) != FALSE) + { + if (DialogBoxParamW(hApplet, + MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP), + hwndDlg, + EditDialogProc, + item.lParam) == IDOK) + { + UpdateInputListView(hwndList); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + } + } } } break; case IDC_SET_DEFAULT: { - HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); + HWND hwndList; + + hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); if (hwndList != NULL) { @@ -281,14 +338,8 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) if (ListView_GetItem(hwndList, &item) != FALSE) { - INPUT_LIST_NODE *pSelected; - - pSelected = (INPUT_LIST_NODE*) item.lParam; - if (pSelected != NULL) - { - InputList_SetDefault(pSelected); - } - + InputList_SetDefault((INPUT_LIST_NODE*) item.lParam); + UpdateInputListView(hwndList); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } } @@ -313,9 +364,33 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) static VOID OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam) { - if (((LPPSHNOTIFY)lParam)->hdr.code == PSN_APPLY) + LPNMHDR header; + + header = (LPNMHDR)lParam; + + switch (header->code) { - InputList_Process(); + case NM_CLICK: + { + if (header->idFrom == IDC_KEYLAYOUT_LIST) + { + if (ListView_GetNextItem(header->hwndFrom, -1, LVNI_SELECTED) != -1) + { + SetControlsState(hwndDlg, TRUE); + } + else + { + SetControlsState(hwndDlg, FALSE); + } + } + } + break; + + case PSN_APPLY: + { + InputList_Process(); + } + break; } } -- 2.17.1