From 5f4bb73edaaa738759cc86bf4cffde85c0765513 Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Thu, 29 Sep 2022 07:31:43 +0900 Subject: [PATCH] [CPL][INPUT] Make the ListView a TreeView (#4726) - Make the list a TreeView. - Modify IDD_PROPPAGESETTINGS resource dialog for UI compatibility. --- dll/cpl/input/input.rc | 2 + dll/cpl/input/input_list.c | 116 +++++- dll/cpl/input/input_list.h | 11 +- dll/cpl/input/lang/bg-BG.rc | 20 +- dll/cpl/input/lang/cs-CZ.rc | 20 +- dll/cpl/input/lang/de-DE.rc | 20 +- dll/cpl/input/lang/el-GR.rc | 20 +- dll/cpl/input/lang/en-US.rc | 20 +- dll/cpl/input/lang/es-ES.rc | 20 +- dll/cpl/input/lang/fr-FR.rc | 20 +- dll/cpl/input/lang/he-IL.rc | 20 +- dll/cpl/input/lang/id-ID.rc | 20 +- dll/cpl/input/lang/it-IT.rc | 20 +- dll/cpl/input/lang/ja-JP.rc | 20 +- dll/cpl/input/lang/no-NO.rc | 20 +- dll/cpl/input/lang/pl-PL.rc | 20 +- dll/cpl/input/lang/pt-BR.rc | 20 +- dll/cpl/input/lang/pt-PT.rc | 20 +- dll/cpl/input/lang/ro-RO.rc | 20 +- dll/cpl/input/lang/ru-RU.rc | 20 +- dll/cpl/input/lang/sk-SK.rc | 20 +- dll/cpl/input/lang/sq-AL.rc | 20 +- dll/cpl/input/lang/tr-TR.rc | 20 +- dll/cpl/input/lang/uk-UA.rc | 20 +- dll/cpl/input/lang/zh-CN.rc | 20 +- dll/cpl/input/lang/zh-HK.rc | 20 +- dll/cpl/input/lang/zh-TW.rc | 20 +- dll/cpl/input/resource.h | 5 +- dll/cpl/input/resources/dot.ico | Bin 0 -> 894 bytes dll/cpl/input/resources/keyboard.ico | Bin 0 -> 25214 bytes dll/cpl/input/settings_page.c | 602 ++++++++++++++++++--------- 31 files changed, 822 insertions(+), 394 deletions(-) create mode 100644 dll/cpl/input/resources/dot.ico create mode 100644 dll/cpl/input/resources/keyboard.ico diff --git a/dll/cpl/input/input.rc b/dll/cpl/input/input.rc index 706a14cdb62..52b23b3cc45 100644 --- a/dll/cpl/input/input.rc +++ b/dll/cpl/input/input.rc @@ -13,6 +13,8 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #include IDI_CPLSYSTEM ICON "resources/keyboard-shortcuts.ico" +IDI_KEYBOARD ICON "resources/keyboard.ico" +IDI_DOT ICON "resources/dot.ico" #include diff --git a/dll/cpl/input/input_list.c b/dll/cpl/input/input_list.c index 97fe16a13b6..ec415b372fe 100644 --- a/dll/cpl/input/input_list.c +++ b/dll/cpl/input/input_list.c @@ -7,6 +7,7 @@ */ #include "input_list.h" +#define NOTHING typedef struct { @@ -154,7 +155,7 @@ InputList_AppendNode(VOID) /* Find last node */ for (pCurrent = _InputList; pCurrent->pNext; pCurrent = pCurrent->pNext) { - ; + NOTHING; } /* Add to the end */ @@ -568,13 +569,14 @@ InputList_FindNextDefault(INPUT_LIST_NODE *pNode) * It marks the input method for deletion, but does not delete it directly. * To apply the changes using InputList_Process() */ -VOID +BOOL InputList_Remove(INPUT_LIST_NODE *pNode) { + BOOL ret = FALSE; BOOL bRemoveNode = FALSE; if (pNode == NULL) - return; + return FALSE; if (pNode->wFlags & INPUT_LIST_NODE_FLAG_ADDED) { @@ -596,14 +598,39 @@ InputList_Remove(INPUT_LIST_NODE *pNode) pCurrent->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT; pNode->wFlags &= ~INPUT_LIST_NODE_FLAG_DEFAULT; + ret = TRUE; /* default input is changed */ } if (bRemoveNode) { InputList_RemoveNode(pNode); } + + return ret; } +BOOL +InputList_RemoveByLang(LANGID wLangId) +{ + BOOL ret = FALSE; + INPUT_LIST_NODE *pCurrent; + +Retry: + for (pCurrent = _InputList; pCurrent; pCurrent = pCurrent->pNext) + { + if (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DELETED) + continue; + + if (LOWORD(pCurrent->pLocale->dwId) == wLangId) + { + if (InputList_Remove(pCurrent)) + ret = TRUE; /* default input is changed */ + goto Retry; + } + } + + return ret; +} VOID InputList_Create(VOID) @@ -662,6 +689,89 @@ InputList_Create(VOID) free(pLayoutList); } +static INT InputList_Compare(INPUT_LIST_NODE *pNode1, INPUT_LIST_NODE *pNode2) +{ + INT nCompare = _wcsicmp(pNode1->pszIndicator, pNode2->pszIndicator); + if (nCompare != 0) + return nCompare; + + return _wcsicmp(pNode1->pLayout->pszName, pNode2->pLayout->pszName); +} + +VOID InputList_Sort(VOID) +{ + INPUT_LIST_NODE *pList = _InputList; + INPUT_LIST_NODE *pNext, *pPrev; + INPUT_LIST_NODE *pMinimum, *pNode; + + _InputList = NULL; + + while (pList) + { + /* Find the minimum node */ + pMinimum = NULL; + for (pNode = pList; pNode; pNode = pNext) + { + pNext = pNode->pNext; + + if (pMinimum == NULL) + { + pMinimum = pNode; + } + else if (InputList_Compare(pNode, pMinimum) < 0) + { + pMinimum = pNode; + } + } + + // Remove pMinimum from pList + pNext = pMinimum->pNext; + pPrev = pMinimum->pPrev; + if (pNext) + pNext->pPrev = pPrev; + if (pPrev) + pPrev->pNext = pNext; + else + pList = pNext; + + // Append pMinimum to _InputList + if (!_InputList) + { + pMinimum->pPrev = pMinimum->pNext = NULL; + _InputList = pMinimum; + } + else + { + /* Find last node */ + for (pNode = _InputList; pNode->pNext; pNode = pNode->pNext) + { + NOTHING; + } + + /* Add to the end */ + pNode->pNext = pMinimum; + pMinimum->pPrev = pNode; + pMinimum->pNext = NULL; + } + } +} + +INT +InputList_GetAliveCount(VOID) +{ + INPUT_LIST_NODE *pNode; + INT nCount = 0; + + for (pNode = _InputList; pNode; pNode = pNode->pNext) + { + if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DELETED) + continue; + + ++nCount; + } + + return nCount; +} INPUT_LIST_NODE* InputList_GetFirst(VOID) diff --git a/dll/cpl/input/input_list.h b/dll/cpl/input/input_list.h index 5c947dbaae2..59785bf8166 100644 --- a/dll/cpl/input/input_list.h +++ b/dll/cpl/input/input_list.h @@ -57,9 +57,18 @@ InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout); VOID InputList_SetDefault(INPUT_LIST_NODE *pNode); -VOID +INT +InputList_GetAliveCount(VOID); + +BOOL InputList_Remove(INPUT_LIST_NODE *pNode); +BOOL +InputList_RemoveByLang(LANGID wLangId); + +VOID +InputList_Sort(VOID); + VOID InputList_Destroy(VOID); diff --git a/dll/cpl/input/lang/bg-BG.rc b/dll/cpl/input/lang/bg-BG.rc index ffc54fcc3ab..9833958bd6e 100644 --- a/dll/cpl/input/lang/bg-BG.rc +++ b/dll/cpl/input/lang/bg-BG.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Предпочитания", -1, 7, 185, 240, 36 - PUSHBUTTON "Настройка на &клавишите...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Посочете избраните от вас услуги за всеки посочен в списъка език. Промяната на списъка става с „Премахване“ и „Добавяне“.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Добавяне...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "Пре&махване", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Предпочитания", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "Настройка на &клавишите...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/cs-CZ.rc b/dll/cpl/input/lang/cs-CZ.rc index df2c7d2756c..f1046fab271 100644 --- a/dll/cpl/input/lang/cs-CZ.rc +++ b/dll/cpl/input/lang/cs-CZ.rc @@ -10,14 +10,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Zvolte služby pro každý vstupní jazyk v seznamu. Seznam lze měnit pomocí tlačítek Přidat a Odebrat.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Přidat...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Odebrat", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Vlastnosti...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Předvolby", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Nastavení kláves...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/de-DE.rc b/dll/cpl/input/lang/de-DE.rc index 702e67219c9..b23641e5cee 100644 --- a/dll/cpl/input/lang/de-DE.rc +++ b/dll/cpl/input/lang/de-DE.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Wählen Sie die Dienste aus, die Sie für die Eingabesprachen in der Liste verwenden wollen. Verwenden Sie ""Hinzufügen"" und ""Entfernen"", um die Liste zu bearbeiten.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Hinzufügen...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "Ent&fernen", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Eigenschaften...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Einstellungen", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Tasteneinstellungen...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/el-GR.rc b/dll/cpl/input/lang/el-GR.rc index 87691f00b1c..464aaa58581 100644 --- a/dll/cpl/input/lang/el-GR.rc +++ b/dll/cpl/input/lang/el-GR.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Προτιμήσεις", -1, 7, 185, 240, 36 - PUSHBUTTON "&Ρυθμίσεις πλήκτρων...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Επιλέξτε τις υπηρεσίες που θέλετε για κάθε γλώσσα εισαγωγής που εμφανίζεται στη λίστα. Χρησιμοποιήστε τα κουμπιά Προσθήκη και Κατάργηση για την τροποποίηση αυτής της λίστας.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "Π&ροσθήκη...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Κατάργηση", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Ιδιότητες...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Προτιμήσεις", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Ρυθμίσεις πλήκτρων...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/en-US.rc b/dll/cpl/input/lang/en-US.rc index 1abf3968a41..41e07463b91 100644 --- a/dll/cpl/input/lang/en-US.rc +++ b/dll/cpl/input/lang/en-US.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Select the services that you want for each input language shown in the list. Use the Add and Remove buttons to modify this list.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "A&dd...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Remove", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Properties...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferences", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Key Settings...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/es-ES.rc b/dll/cpl/input/lang/es-ES.rc index 433bb279f5b..c4dd0b014bd 100644 --- a/dll/cpl/input/lang/es-ES.rc +++ b/dll/cpl/input/lang/es-ES.rc @@ -14,14 +14,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + 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, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "Ag®ar...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Quitar", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Propiedades...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Pre&ferencias", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "C&onfiguración de teclas...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/fr-FR.rc b/dll/cpl/input/lang/fr-FR.rc index e6d45431874..26fd2848772 100644 --- a/dll/cpl/input/lang/fr-FR.rc +++ b/dll/cpl/input/lang/fr-FR.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Sélectionnez les services que vous désirez pour chaque langue de saisie affichée dans la liste. Utilisez les boutons Ajouter et Supprimer pour modifier la liste.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "A&jouter...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "Supp&rimer", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Propriétés...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Pré&férences", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "Para&mètres des touches...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/he-IL.rc b/dll/cpl/input/lang/he-IL.rc index 45dc162a539..b88284c27ca 100644 --- a/dll/cpl/input/lang/he-IL.rc +++ b/dll/cpl/input/lang/he-IL.rc @@ -7,14 +7,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "העדפות", -1, 7, 185, 240, 36 - PUSHBUTTON "הגדרות מקשים...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Select the services that you want for each input language shown in the list. Use the Add and Remove buttons to modify this list.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "הוסף...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "הסר", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "מאפיניים...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "העדפות", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "הגדרות מקשים...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/id-ID.rc b/dll/cpl/input/lang/id-ID.rc index 6805553a9b8..0c65a242953 100644 --- a/dll/cpl/input/lang/id-ID.rc +++ b/dll/cpl/input/lang/id-ID.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Setelan" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Pilih layanan yang anda inginkan untuk setiap bahasa masukan untuk ditampilkan dalam daftar.\nGunakan tombol Tambah atau Hapus untuk mengubah daftar.", -1, 9, 6, 238, 25 - 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 "&Setelan Asal", IDC_SET_DEFAULT, 101, 159, 144, 14 - PUSHBUTTON "&Tambah...", IDC_ADD_BUTTON, 27, 142, 70, 14 - PUSHBUTTON "&Hapus", IDC_REMOVE_BUTTON, 101, 142, 70, 14 - PUSHBUTTON "&Properti...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Preferensi", -1, 7, 185, 240, 36 - PUSHBUTTON "Setelan To&mbol...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Pilih layanan yang anda inginkan untuk setiap bahasa masukan untuk ditampilkan dalam daftar. Gunakan tombol Tambah atau Hapus untuk mengubah daftar.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Tambah...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Hapus", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Properti...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferensi", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "Setelan To&mbol...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/it-IT.rc b/dll/cpl/input/lang/it-IT.rc index 06f46fafb64..872727901f6 100644 --- a/dll/cpl/input/lang/it-IT.rc +++ b/dll/cpl/input/lang/it-IT.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Scegliere i servizi desiderati per ognuna delle lingue nella lista. Usare Aggiungi e Rimuovi per modificare la lista.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Aggiungi...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Rimuovi", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Proprietà...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferenze", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Impostazioni tasti...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/ja-JP.rc b/dll/cpl/input/lang/ja-JP.rc index be53b949ef0..7fe83d20e85 100644 --- a/dll/cpl/input/lang/ja-JP.rc +++ b/dll/cpl/input/lang/ja-JP.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "設定" FONT 9, "MS UI Gothic" BEGIN - LTEXT "リストで示されている各入力言語にご希望のサービスを選択して下さい。\nリストを変更するには、追加または削除ボタンをお使いください。", -1, 9, 6, 238, 25 - 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 - PUSHBUTTON "プロパティ(&P)...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "プレファレンス", -1, 7, 185, 240, 36 - PUSHBUTTON "キー設定(&K)...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "デフォルトの入力言語(&L)", -1, 5, 5, 246, 55 + LTEXT "コンピュータ起動時に使う、インストール済みの入力言語の一つを選択して下さい。", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "インストール済みのサービス(&I)", -1, 5, 65, 246, 125 + LTEXT "リストで示されている各入力言語にご希望のサービスを選択して下さい。リストを変更するには、追加または削除ボタンをお使いください。", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "追加(&D)...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "削除(&R)", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "プロパティ(&P)...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "詳細設定", -1, 5, 195, 245, 30 + PUSHBUTTON "言語バー(&B)...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "キー設定(&K)...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/no-NO.rc b/dll/cpl/input/lang/no-NO.rc index 60bdf8f482f..fa996580e08 100644 --- a/dll/cpl/input/lang/no-NO.rc +++ b/dll/cpl/input/lang/no-NO.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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 "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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Velg tjenesten som du vil ha for hver inndataspråk som er vist i listen. Bruk legg til og fjern knappen for å endre denne listen.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "Le&gg til...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Fjern", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Egenskaper...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Innstillinger", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Tasteinnstillinger...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/pl-PL.rc b/dll/cpl/input/lang/pl-PL.rc index 93672cc60b1..11603d4c4cb 100644 --- a/dll/cpl/input/lang/pl-PL.rc +++ b/dll/cpl/input/lang/pl-PL.rc @@ -13,14 +13,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Wybierz usługi dla kadego używanego języka z listy. Listę można modyfikować przyciskami Dodaj i Usuń.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Dodaj...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "U&suń", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Właściwości...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferencje", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "Us&tawienia klawiszy...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/pt-BR.rc b/dll/cpl/input/lang/pt-BR.rc index 855f986998d..af1929f8f9f 100644 --- a/dll/cpl/input/lang/pt-BR.rc +++ b/dll/cpl/input/lang/pt-BR.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 - PUSHBUTTON "&Propriedades...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Preferências", -1, 7, 185, 240, 36 - PUSHBUTTON "&Configurações de tecla...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + 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, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Adicionar...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Remover", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Propriedades...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferências", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Configurações de tecla...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/pt-PT.rc b/dll/cpl/input/lang/pt-PT.rc index 01df2d6d4a6..58c10e99ca0 100644 --- a/dll/cpl/input/lang/pt-PT.rc +++ b/dll/cpl/input/lang/pt-PT.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Definições" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Seleccione os serviços desejados para cada idioma de entrada mostrado na lista. Use os botões 'Adicionar' e 'Remover' para modificar a lista.", -1, 9, 6, 238, 25 - 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 - PUSHBUTTON "&Propriedades...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Preferências", -1, 7, 185, 240, 36 - PUSHBUTTON "&Definições de tecla...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Seleccione os serviços desejados para cada idioma de entrada mostrado na lista. Use os botões 'Adicionar' e 'Remover' para modificar a lista.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Adicionar...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Remover", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Propriedades...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferências", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Definições de tecla...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/ro-RO.rc b/dll/cpl/input/lang/ro-RO.rc index a280fbdd318..e21a9401a53 100644 --- a/dll/cpl/input/lang/ro-RO.rc +++ b/dll/cpl/input/lang/ro-RO.rc @@ -7,14 +7,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 - PUSHBUTTON "&Proprietăți…", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Preferințe", -1, 7, 185, 240, 36 - PUSHBUTTON "&Combinații de taste…", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Gestionați serviciile aferente limbilor de intrare utilizate în sistem. Utilizați butoanele pentru a aduce modificări listei.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "A&dăugare…", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Elimină", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Proprietăți…", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferințe", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Combinații de taste…", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/ru-RU.rc b/dll/cpl/input/lang/ru-RU.rc index 2a7bd8646a6..2b45a8cdaa8 100644 --- a/dll/cpl/input/lang/ru-RU.rc +++ b/dll/cpl/input/lang/ru-RU.rc @@ -5,14 +5,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Параметры", -1, 7, 185, 240, 36 - PUSHBUTTON "&Параметры клавиатуры...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Выберите нужные раскладки для каждого языка ввода из списка. Для изменения списка служат кнопки ""Добавить"" и ""Удалить"".", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Добавить...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Удалить", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Свойства...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Параметры", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Параметры клавиатуры...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/sk-SK.rc b/dll/cpl/input/lang/sk-SK.rc index c0899d3e311..6b93972ee18 100644 --- a/dll/cpl/input/lang/sk-SK.rc +++ b/dll/cpl/input/lang/sk-SK.rc @@ -10,14 +10,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Vyberte služby, ktoré chcete priradiť ku každému vstupnému jazyku uvedenému v zozname. Použite tlačidlá Pridať a Odstrániť k úprave zoznamu.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Pridať...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "O&dstrániť", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "Vl&astnosti...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferencie", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "Nastavenie &klávesov...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/sq-AL.rc b/dll/cpl/input/lang/sq-AL.rc index 5eda787ad32..a2d95b4a527 100644 --- a/dll/cpl/input/lang/sq-AL.rc +++ b/dll/cpl/input/lang/sq-AL.rc @@ -9,14 +9,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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 "&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 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Zgjidhni shërbimet që ju dëshironi për çdo gjuhë të dhënash treguar në listë. Përdor Shto dhe Hiq butonat për të modifikuar këtë listë.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "Sh&to...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Hiq", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "&Karakteristikat...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Preferenca", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Çeles cilësimesh...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/tr-TR.rc b/dll/cpl/input/lang/tr-TR.rc index fc7441526ec..fcfab5246f8 100644 --- a/dll/cpl/input/lang/tr-TR.rc +++ b/dll/cpl/input/lang/tr-TR.rc @@ -7,14 +7,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Ayarlar" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Listede gösterilen her bir giriş dili için istediğiniz hizmetleri seçiniz.\nBu listeyi değiştirmek için Ekle veya Sil tuşlarını kullanınız.", -1, 9, 6, 238, 25 - 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 "Ö&zellikler...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Tercihler", -1, 7, 185, 240, 36 - PUSHBUTTON "&Tuş Ayarları...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Listede gösterilen her bir giriş dili için istediğiniz hizmetleri seçiniz. Bu listeyi değiştirmek için Ekle veya Sil tuşlarını kullanınız.", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Ekle...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "&Sil", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "Ö&zellikler...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Tercihler", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Tuş Ayarları...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/uk-UA.rc b/dll/cpl/input/lang/uk-UA.rc index a341ebaffdb..2d91e093aa6 100644 --- a/dll/cpl/input/lang/uk-UA.rc +++ b/dll/cpl/input/lang/uk-UA.rc @@ -13,14 +13,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION 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_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_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "Налаштування", -1, 7, 185, 240, 36 - PUSHBUTTON "&Параметри клавіатури...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "Виберіть потрібні розкладки для кожної мови введення зі списку. Для зміни списку використовуйте кнопки ""Додати"" і ""Видалити"".", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "&Додати...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "В&идалити", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "В&ластивості...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "Налаштування", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "&Параметри клавіатури...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/zh-CN.rc b/dll/cpl/input/lang/zh-CN.rc index fbd602efcfd..3a6e20841c4 100644 --- a/dll/cpl/input/lang/zh-CN.rc +++ b/dll/cpl/input/lang/zh-CN.rc @@ -7,14 +7,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "设置" FONT 9, "宋体" BEGIN - LTEXT "为列表中显示的每个输入语言选择服务。\n使用“添加”和“删除”按钮来修改这个列表。", -1, 9, 6, 238, 25 - 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 - PUSHBUTTON "属性(&P)...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "首选项", -1, 7, 185, 240, 36 - PUSHBUTTON "键设置(&K)...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "为列表中显示的每个输入语言选择服务。使用“添加”和“删除”按钮来修改这个列表。", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "添加(&D)...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "删除(&R)", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "属性(&P)...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "首选项", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "键设置(&K)...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/zh-HK.rc b/dll/cpl/input/lang/zh-HK.rc index 79f635bfc88..9430e0ff36e 100644 --- a/dll/cpl/input/lang/zh-HK.rc +++ b/dll/cpl/input/lang/zh-HK.rc @@ -13,14 +13,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "設定" FONT 9, "新細明體" BEGIN - LTEXT "為列表中顯示的每個輸入語言選擇服務。\n請按[新增]和[刪除]按鈕來修改這個列表。", -1, 9, 6, 238, 25 - 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 - PUSHBUTTON "內容(&P)...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "偏好設定", -1, 7, 185, 240, 36 - PUSHBUTTON "按鍵設定(&K)...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "為列表中顯示的每個輸入語言選擇服務。請按[新增]和[刪除]按鈕來修改這個列表。", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "新增(&D)...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "刪除(&R)", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "內容(&P)...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "偏好設定", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "按鍵設定(&K)...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/lang/zh-TW.rc b/dll/cpl/input/lang/zh-TW.rc index b5902c9b4df..e7ddb4a0ce0 100644 --- a/dll/cpl/input/lang/zh-TW.rc +++ b/dll/cpl/input/lang/zh-TW.rc @@ -13,14 +13,18 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "設定" FONT 9, "新細明體" BEGIN - LTEXT "為列表中顯示的每個輸入語言選擇服務。\n請按[新增]和[刪除]按鈕來修改這個列表。", -1, 9, 6, 238, 25 - 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 - PUSHBUTTON "內容(&P)...", IDC_PROP_BUTTON, 175, 142, 70, 14 - GROUPBOX "偏好設定", -1, 7, 185, 240, 36 - PUSHBUTTON "按鍵設定(&K)...", IDC_KEY_SET_BTN, 14, 198, 110, 14 + GROUPBOX "Default input &language", -1, 5, 5, 246, 55 + LTEXT "Select one of the installed input languages to use when your computer starts.", -1, 15, 15, 230, 23 + COMBOBOX IDC_DEFAULT_LANGUAGE, 15, 40, 230, 300, CBS_HASSTRINGS | CBS_AUTOHSCROLL | CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "&Installed services", -1, 5, 65, 246, 125 + LTEXT "為列表中顯示的每個輸入語言選擇服務。請按[新增]和[刪除]按鈕來修改這個列表。", -1, 15, 78, 230, 25 + CONTROL "", IDC_KEYLAYOUT_LIST, "SysTreeView32", TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 15, 105, 155, 80 + PUSHBUTTON "新增(&D)...", IDC_ADD_BUTTON, 175, 105, 70, 14 + PUSHBUTTON "刪除(&R)", IDC_REMOVE_BUTTON, 175, 125, 70, 14 + PUSHBUTTON "內容(&P)...", IDC_PROP_BUTTON, 175, 145, 70, 14 + GROUPBOX "偏好設定", -1, 5, 195, 245, 30 + PUSHBUTTON "Language &Bar...", IDC_LANGUAGE_BAR, 15, 205, 110, 14 + PUSHBUTTON "按鍵設定(&K)...", IDC_KEY_SET_BTN, 133, 205, 110, 14 END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 diff --git a/dll/cpl/input/resource.h b/dll/cpl/input/resource.h index 7a76196151b..31a2083f235 100644 --- a/dll/cpl/input/resource.h +++ b/dll/cpl/input/resource.h @@ -6,6 +6,8 @@ #define IDI_MIC_ICO 203 #define IDI_INFO_ICO 207 #define IDI_CPLSYSTEM 1502 +#define IDI_KEYBOARD 1503 +#define IDI_DOT 1504 /* IDD */ #define IDD_PROPPAGESETTINGS 500 @@ -17,7 +19,7 @@ /* IDC */ #define IDC_KEYLAYOUT_LIST 1000 -#define IDC_SET_DEFAULT 1001 +#define IDC_DEFAULT_LANGUAGE 1001 #define IDC_ADD_BUTTON 1002 #define IDC_REMOVE_BUTTON 1003 #define IDC_PROP_BUTTON 1004 @@ -37,6 +39,7 @@ #define IDC_CTRL_LAYOUT 1018 #define IDC_LEFT_ALT_LANG 1019 #define IDC_LEFT_ALT_LAYOUT 1020 +#define IDC_LANGUAGE_BAR 1021 /* IDS */ #define IDS_CPLSYSTEMNAME 1 diff --git a/dll/cpl/input/resources/dot.ico b/dll/cpl/input/resources/dot.ico new file mode 100644 index 0000000000000000000000000000000000000000..2ae06af2d03dd95fbf850c5d002b26b4ae45ce13 GIT binary patch literal 894 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 literal 0 HcmV?d00001 diff --git a/dll/cpl/input/settings_page.c b/dll/cpl/input/settings_page.c index 86ff2162f66..c49e25d9b29 100644 --- a/dll/cpl/input/settings_page.c +++ b/dll/cpl/input/settings_page.c @@ -11,178 +11,360 @@ #include "locale_list.h" #include "input_list.h" +static INT s_nAliveLeafCount = 0; +static INT s_nRootCount = 0; +static INT s_iKeyboardImage = -1; +static INT s_iDotImage = -1; +static BOOL s_bDefaultInputChanged = FALSE; + static HICON -CreateLayoutIcon(LPWSTR szLayout, BOOL bIsDefault) +CreateLayoutIcon(LANGID LangID) { - INT width = GetSystemMetrics(SM_CXSMICON) * 2; - INT height = GetSystemMetrics(SM_CYSMICON); + WCHAR szBuf[4]; HDC hdc; - HDC hdcsrc; - HBITMAP hBitmap; - HICON hIcon = NULL; + HBITMAP hbmColor, hbmMono, hBmpOld; + RECT rect; + HFONT hFontOld, hFont; + ICONINFO IconInfo; + HICON hIcon; + LOGFONTW lf; + BITMAPINFO bmi; + INT cxIcon = GetSystemMetrics(SM_CXSMICON); + INT cyIcon = GetSystemMetrics(SM_CYSMICON); - hdcsrc = GetDC(NULL); - hdc = CreateCompatibleDC(hdcsrc); - hBitmap = CreateCompatibleBitmap(hdcsrc, width, height); - - ReleaseDC(NULL, hdcsrc); - - if (hdc && hBitmap) + /* Getting "EN", "FR", etc. from English, French, ... */ + if (!GetLocaleInfoW(LangID, LOCALE_SABBREVLANGNAME | LOCALE_NOUSEROVERRIDE, + szBuf, ARRAYSIZE(szBuf))) { - HBITMAP hBmpNew; + StringCchCopyW(szBuf, ARRAYSIZE(szBuf), L"??"); + } + szBuf[2] = UNICODE_NULL; /* Truncate the identifier to two characters: "ENG" --> "EN" etc. */ - hBmpNew = CreateBitmap(width, height, 1, 1, NULL); - if (hBmpNew) - { - LOGFONTW lf; + /* Prepare for DIB (device-independent bitmap) */ + ZeroMemory(&bmi, sizeof(bmi)); + bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader); + bmi.bmiHeader.biWidth = cxIcon; + bmi.bmiHeader.biHeight = cyIcon; + bmi.bmiHeader.biPlanes = 1; + bmi.bmiHeader.biBitCount = 24; - if (SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0)) - { - ICONINFO IconInfo; - HFONT hFont; + /* Create hdc, hbmColor and hbmMono */ + hdc = CreateCompatibleDC(NULL); + hbmColor = CreateDIBSection(hdc, &bmi, DIB_RGB_COLORS, NULL, NULL, 0); + hbmMono = CreateBitmap(cxIcon, cyIcon, 1, 1, NULL); - hFont = CreateFontIndirectW(&lf); + /* Create a font */ + if (SystemParametersInfoW(SPI_GETICONTITLELOGFONT, sizeof(lf), &lf, 0)) + hFont = CreateFontIndirectW(&lf); + else + hFont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); - 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); - DrawFrameControl(hdc, &rect, DFC_MENU, DFCS_MENUBULLET); - } - else - { - FillRect(hdc, &rect, GetSysColorBrush(COLOR_WINDOW)); - } - - SetRect(&rect, width / 2, 0, width, height); - - SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT)); - SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)); - - ExtTextOutW(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, NULL); - - SelectObject(hdc, hFont); - DrawTextW(hdc, szLayout, 2, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); - - SelectObject(hdc, hBmpNew); - - PatBlt(hdc, 0, 0, width, height, BLACKNESS); - - SelectObject(hdc, hBmpOld); - - IconInfo.hbmColor = hBitmap; - IconInfo.hbmMask = hBmpNew; - IconInfo.fIcon = TRUE; - - hIcon = CreateIconIndirect(&IconInfo); - - DeleteObject(hBmpOld); - } - - DeleteObject(hFont); - } - } - - DeleteObject(hBmpNew); - } + /* Checking NULL */ + if (!hdc || !hbmColor || !hbmMono || !hFont) + { + if (hdc) + DeleteDC(hdc); + if (hbmColor) + DeleteObject(hbmColor); + if (hbmMono) + DeleteObject(hbmMono); + if (hFont) + DeleteObject(hFont); + return NULL; } + SetRect(&rect, 0, 0, cxIcon, cyIcon); + + /* Draw hbmColor */ + hBmpOld = SelectObject(hdc, hbmColor); + SetDCBrushColor(hdc, GetSysColor(COLOR_HIGHLIGHT)); + FillRect(hdc, &rect, (HBRUSH)GetStockObject(DC_BRUSH)); + hFontOld = SelectObject(hdc, hFont); + SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)); + SetBkMode(hdc, TRANSPARENT); + DrawTextW(hdc, szBuf, 2, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); + SelectObject(hdc, hFontOld); + SelectObject(hdc, hBmpOld); + + /* Fill hbmMono by black */ + hBmpOld = SelectObject(hdc, hbmMono); + PatBlt(hdc, 0, 0, cxIcon, cyIcon, BLACKNESS); + SelectObject(hdc, hBmpOld); + + /* Create an icon from hbmColor and hbmMono */ + IconInfo.hbmColor = hbmColor; + IconInfo.hbmMask = hbmMono; + IconInfo.fIcon = TRUE; + hIcon = CreateIconIndirect(&IconInfo); + + /* Clean up */ + DeleteObject(hbmColor); + DeleteObject(hbmMono); + DeleteObject(hFont); DeleteDC(hdc); - DeleteObject(hBitmap); return hIcon; } +static VOID InitDefaultLangComboBox(HWND hwndCombo) +{ + WCHAR szText[256]; + INPUT_LIST_NODE *pNode; + INT iIndex, nCount, iDefault = (INT)SendMessageW(hwndCombo, CB_GETCURSEL, 0, 0); + + SendMessageW(hwndCombo, CB_RESETCONTENT, 0, 0); + + for (pNode = InputList_GetFirst(); pNode != NULL; pNode = pNode->pNext) + { + if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DELETED) + continue; + + StringCchPrintfW(szText, _countof(szText), L"%s - %s", + pNode->pLocale->pszName, pNode->pLayout->pszName); + iIndex = (INT)SendMessageW(hwndCombo, CB_ADDSTRING, 0, (LPARAM)szText); + SendMessageW(hwndCombo, CB_SETITEMDATA, iIndex, (LPARAM)pNode); + + if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT) + iDefault = iIndex; + } + + nCount = (INT)SendMessageW(hwndCombo, CB_GETCOUNT, 0, 0); + if (iDefault >= nCount) + SendMessageW(hwndCombo, CB_SETCURSEL, nCount - 1, 0); + else + SendMessageW(hwndCombo, CB_SETCURSEL, iDefault, 0); +} static VOID SetControlsState(HWND hwndDlg) { HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); - INT iSelected = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); - INT nCount = ListView_GetItemCount(hwndList); - BOOL bCanRemove = (iSelected != -1) && (nCount >= 2); - BOOL bCanDefault = (iSelected != -1) && (nCount >= 2); - BOOL bCanProp = (iSelected != -1); + HWND hwndCombo = GetDlgItem(hwndDlg, IDC_DEFAULT_LANGUAGE); + BOOL bIsLeaf, bCanRemove, bCanProp; + HTREEITEM hSelected = TreeView_GetSelection(hwndList); + TV_ITEM item = { TVIF_PARAM | TVIF_HANDLE }; + item.hItem = hSelected; - LV_ITEM item = { LVIF_PARAM, iSelected }; - if (ListView_GetItem(hwndList, &item)) - { - INPUT_LIST_NODE *pInput = (INPUT_LIST_NODE*)item.lParam; + bIsLeaf = (hSelected && TreeView_GetItem(hwndList, &item) && HIWORD(item.lParam)); - if (pInput && (pInput->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)) - { - bCanDefault = FALSE; - } - } + bCanRemove = (bIsLeaf && (s_nAliveLeafCount > 1)) || (s_nRootCount > 1); + bCanProp = bIsLeaf; EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), bCanRemove); EnableWindow(GetDlgItem(hwndDlg, IDC_PROP_BUTTON), bCanProp); - EnableWindow(GetDlgItem(hwndDlg, IDC_SET_DEFAULT), bCanDefault); + + InitDefaultLangComboBox(hwndCombo); +} + +static BOOL CALLBACK +EnumResNameProc(HMODULE hModule, LPCWSTR lpszType, LPWSTR lpszName, LONG_PTR lParam) +{ + HICON* phIconSm = (HICON*)lParam; + if (*phIconSm) + return FALSE; + + *phIconSm = (HICON)LoadImageW(hModule, lpszName, IMAGE_ICON, + GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + 0); + return TRUE; +} + +static HICON LoadIMEIcon(LPCTSTR pszImeFile) +{ + WCHAR szSysDir[MAX_PATH], szPath[MAX_PATH]; + HINSTANCE hImeInst; + HICON hIconSm = NULL; + + GetSystemDirectoryW(szSysDir, _countof(szSysDir)); + StringCchPrintfW(szPath, _countof(szPath), L"%s\\%s", szSysDir, pszImeFile); + + hImeInst = LoadLibraryExW(szPath, NULL, DONT_RESOLVE_DLL_REFERENCES); + if (hImeInst == NULL) + return NULL; + + EnumResourceNamesW(hImeInst, RT_GROUP_ICON, EnumResNameProc, (LPARAM)&hIconSm); + FreeLibrary(hImeInst); + + return hIconSm; +} + +static HTREEITEM FindLanguageInList(HWND hwndList, LPCTSTR pszLangName) +{ + TV_ITEM item; + TCHAR szText[128]; + HTREEITEM hItem; + + hItem = TreeView_GetRoot(hwndList); + while (hItem) + { + szText[0] = 0; + item.mask = TVIF_TEXT | TVIF_HANDLE; + item.pszText = szText; + item.cchTextMax = _countof(szText); + item.hItem = hItem; + TreeView_GetItem(hwndList, &item); + if (_wcsicmp(szText, pszLangName) == 0) + return hItem; + + hItem = TreeView_GetNextSibling(hwndList, hItem); + } + + return NULL; } static VOID AddToInputListView(HWND hwndList, INPUT_LIST_NODE *pInputNode) { - INT ItemIndex, ImageIndex = -1; - LV_ITEM item; - HIMAGELIST hImageList = ListView_GetImageList(hwndList, LVSIL_SMALL); + TV_ITEM item; + TV_INSERTSTRUCT insert; + HIMAGELIST hImageList = TreeView_GetImageList(hwndList, TVSIL_NORMAL); + WCHAR szKeyboard[64]; + HTREEITEM hItem; + BOOL bBold = !!(pInputNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT); - if (hImageList != NULL) + hItem = FindLanguageInList(hwndList, pInputNode->pLocale->pszName); + if (hItem == NULL) { - HICON hLayoutIcon; - - hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator, - (pInputNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)); - if (hLayoutIcon != NULL) + // Language icon + INT LangImageIndex = -1; + HICON hLangIcon = CreateLayoutIcon(LOWORD(pInputNode->pLocale->dwId)); + if (hLangIcon) { - ImageIndex = ImageList_AddIcon(hImageList, hLayoutIcon); - DestroyIcon(hLayoutIcon); + LangImageIndex = ImageList_AddIcon(hImageList, hLangIcon); + DestroyIcon(hLangIcon); } + + // Language + ZeroMemory(&item, sizeof(item)); + item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE; + item.pszText = pInputNode->pLocale->pszName; + item.iImage = LangImageIndex; + item.iSelectedImage = LangImageIndex; + item.lParam = LOWORD(pInputNode->pLocale->dwId); // HIWORD(item.lParam) == 0 + if (bBold) + { + item.state = item.stateMask = TVIS_BOLD; + } + insert.hParent = TVI_ROOT; + insert.hInsertAfter = TVI_LAST; + insert.item = item; + hItem = TreeView_InsertItem(hwndList, &insert); + + // The type of input method (currently keyboard only) + LoadStringW(hApplet, IDS_KEYBOARD, szKeyboard, _countof(szKeyboard)); + ZeroMemory(&item, sizeof(item)); + item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE; + item.pszText = szKeyboard; + item.iImage = s_iKeyboardImage; + item.iSelectedImage = s_iKeyboardImage; + item.lParam = 0; // HIWORD(item.lParam) == 0 + insert.hParent = hItem; + insert.hInsertAfter = TVI_LAST; + insert.item = item; + hItem = TreeView_InsertItem(hwndList, &insert); + } + else + { + // Language + ZeroMemory(&item, sizeof(item)); + item.mask = TVIF_STATE | TVIF_HANDLE; + item.hItem = hItem; + item.stateMask = TVIS_BOLD; + if (TreeView_GetItem(hwndList, &item) && bBold && !(item.state & TVIS_BOLD)) + { + // Make the item bold + item.mask = TVIF_STATE | TVIF_HANDLE; + item.hItem = hItem; + item.state = item.stateMask = TVIS_BOLD; + TreeView_SetItem(hwndList, &item); + } + + // The type of input method (currently keyboard only) + hItem = TreeView_GetChild(hwndList, hItem); } - ZeroMemory(&item, sizeof(item)); - item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; - item.pszText = pInputNode->pLocale->pszName; - item.iItem = ListView_GetItemCount(hwndList); - item.lParam = (LPARAM)pInputNode; - item.iImage = ImageIndex; - ItemIndex = ListView_InsertItem(hwndList, &item); + // Input method + if (hItem) + { + INT ImeImageIndex = s_iDotImage; + if (IS_IME_HKL(pInputNode->hkl) && pInputNode->pLayout->pszImeFile) // IME? + { + HICON hImeIcon = LoadIMEIcon(pInputNode->pLayout->pszImeFile); + if (hImeIcon) + { + ImeImageIndex = ImageList_AddIcon(hImageList, hImeIcon); + DestroyIcon(hImeIcon); + } + } - ListView_SetItemText(hwndList, ItemIndex, 1, pInputNode->pLayout->pszName); + ZeroMemory(&item, sizeof(item)); + item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE | TVIF_STATE; + item.pszText = pInputNode->pLayout->pszName; + item.iImage = ImeImageIndex; + item.iSelectedImage = ImeImageIndex; + item.lParam = (LPARAM)pInputNode; // HIWORD(item.lParam) != 0 + if (bBold) + { + item.state = item.stateMask = TVIS_BOLD; // Make the item bold + } + insert.hParent = hItem; + insert.hInsertAfter = TVI_LAST; + insert.item = item; + hItem = TreeView_InsertItem(hwndList, &insert); + } } +static VOID ExpandTreeItem(HWND hwndTree, HTREEITEM hItem) +{ + TreeView_Expand(hwndTree, hItem, TVE_EXPAND); + hItem = TreeView_GetChild(hwndTree, hItem); + while (hItem) + { + ExpandTreeItem(hwndTree, hItem); + hItem = TreeView_GetNextSibling(hwndTree, hItem); + } +} static VOID UpdateInputListView(HWND hwndList) { INPUT_LIST_NODE *pNode; - HIMAGELIST hImageList = ListView_GetImageList(hwndList, LVSIL_SMALL); - INT iSelected = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); + HIMAGELIST hImageList = TreeView_GetImageList(hwndList, TVSIL_NORMAL); + HTREEITEM hItem; + HICON hKeyboardIcon, hDotIcon; - if (hImageList) + ImageList_RemoveAll(hImageList); + TreeView_DeleteAllItems(hwndList); + + // Add keyboard icon + s_iKeyboardImage = -1; + hKeyboardIcon = (HICON)LoadImageW(hApplet, MAKEINTRESOURCEW(IDI_KEYBOARD), IMAGE_ICON, + GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), + 0); + if (hKeyboardIcon) { - ImageList_RemoveAll(hImageList); + s_iKeyboardImage = ImageList_AddIcon(hImageList, hKeyboardIcon); + DestroyIcon(hKeyboardIcon); } - ListView_DeleteAllItems(hwndList); + // Add dot icon + s_iDotImage = -1; + hDotIcon = (HICON)LoadImageW(hApplet, MAKEINTRESOURCEW(IDI_DOT), IMAGE_ICON, + GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), + 0); + if (hDotIcon) + { + s_iDotImage = ImageList_AddIcon(hImageList, hDotIcon); + DestroyIcon(hDotIcon); + } - for (pNode = InputList_GetFirst(); pNode != NULL; pNode = pNode->pNext) + InputList_Sort(); + + s_nAliveLeafCount = InputList_GetAliveCount(); + + // Add items to the list + for (pNode = InputList_GetFirst(); pNode; pNode = pNode->pNext) { if (pNode->wFlags & INPUT_LIST_NODE_FLAG_DELETED) continue; @@ -190,62 +372,43 @@ UpdateInputListView(HWND hwndList) AddToInputListView(hwndList, pNode); } - if (iSelected != -1) + // Expand all (with counting s_nRootCount) + s_nRootCount = 0; + hItem = TreeView_GetRoot(hwndList); + while (hItem) { - INT nCount = ListView_GetItemCount(hwndList); - LV_ITEM item = { LVIF_STATE }; - item.state = item.stateMask = LVIS_SELECTED; - item.iItem = ((nCount == iSelected) ? nCount - 1 : iSelected); - ListView_SetItem(hwndList, &item); + ++s_nRootCount; + ExpandTreeItem(hwndList, hItem); + hItem = TreeView_GetNextSibling(hwndList, hItem); } + // Redraw InvalidateRect(hwndList, NULL, TRUE); } - static VOID OnInitSettingsPage(HWND hwndDlg) { HWND hwndInputList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); + HIMAGELIST hLayoutImageList, hOldImageList; LayoutList_Create(); LocaleList_Create(); InputList_Create(); - if (hwndInputList != NULL) + EnableWindow(GetDlgItem(hwndDlg, IDC_LANGUAGE_BAR), FALSE); + + hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON), + GetSystemMetrics(SM_CYSMICON), + ILC_COLOR8 | ILC_MASK, 0, 0); + if (hLayoutImageList != NULL) { - WCHAR szBuffer[MAX_STR_LEN]; - HIMAGELIST hLayoutImageList; - LV_COLUMN column = { LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM }; - - ListView_SetExtendedListViewStyle(hwndInputList, LVS_EX_FULLROWSELECT); - - LoadStringW(hApplet, IDS_LANGUAGE, szBuffer, ARRAYSIZE(szBuffer)); - column.fmt = LVCFMT_LEFT; - column.iSubItem = 0; - column.pszText = szBuffer; - column.cx = 175; - ListView_InsertColumn(hwndInputList, 0, &column); - - LoadStringW(hApplet, IDS_LAYOUT, szBuffer, ARRAYSIZE(szBuffer)); - column.fmt = LVCFMT_RIGHT; - column.cx = 155; - column.iSubItem = 1; - column.pszText = szBuffer; - ListView_InsertColumn(hwndInputList, 1, &column); - - hLayoutImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON) * 2, - GetSystemMetrics(SM_CYSMICON), - ILC_COLOR8 | ILC_MASK, 0, 0); - if (hLayoutImageList != NULL) - { - HIMAGELIST hOldImagelist = ListView_SetImageList(hwndInputList, hLayoutImageList, LVSIL_SMALL); - ImageList_Destroy(hOldImagelist); - } - - UpdateInputListView(hwndInputList); + hOldImageList = TreeView_SetImageList(hwndInputList, hLayoutImageList, TVSIL_NORMAL); + ImageList_Destroy(hOldImageList); } + UpdateInputListView(hwndInputList); + SetControlsState(hwndDlg); } @@ -283,12 +446,30 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); if (hwndList) { - LVITEM item = { LVIF_PARAM }; - item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); + HTREEITEM hItem = TreeView_GetSelection(hwndList); + TV_ITEM item = { TVIF_HANDLE | TVIF_PARAM }; + item.hItem = hItem; - if (ListView_GetItem(hwndList, &item)) + if (hItem && TreeView_GetItem(hwndList, &item)) { - InputList_Remove((INPUT_LIST_NODE*) item.lParam); + if (item.lParam == 0) // Branch? (currently branch is keyboard only) + { + // Get root of branch + item.hItem = TreeView_GetParent(hwndList, hItem); + TreeView_GetItem(hwndList, &item); + } + + if (HIWORD(item.lParam)) // Leaf? + { + if (InputList_Remove((INPUT_LIST_NODE*)item.lParam)) + s_bDefaultInputChanged = TRUE; + } + else // Root? + { + if (InputList_RemoveByLang(LOWORD(item.lParam))) + s_bDefaultInputChanged = TRUE; + } + UpdateInputListView(hwndList); SetControlsState(hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); @@ -302,10 +483,11 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); if (hwndList) { - LVITEM item = { LVIF_PARAM }; - item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); + HTREEITEM hItem = TreeView_GetSelection(hwndList); + TV_ITEM item = { TVIF_HANDLE | TVIF_PARAM }; + item.hItem = hItem; - if (ListView_GetItem(hwndList, &item)) + if (hItem && TreeView_GetItem(hwndList, &item) && HIWORD(item.lParam)) { if (DialogBoxParamW(hApplet, MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP), @@ -322,25 +504,6 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) } break; - case IDC_SET_DEFAULT: - { - HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); - if (hwndList) - { - LVITEM item = { LVIF_PARAM }; - item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED); - - if (ListView_GetItem(hwndList, &item)) - { - InputList_SetDefault((INPUT_LIST_NODE*) item.lParam); - UpdateInputListView(hwndList); - SetControlsState(hwndDlg); - PropSheet_Changed(GetParent(hwndDlg), hwndDlg); - } - } - } - break; - case IDC_KEY_SET_BTN: { DialogBoxW(hApplet, @@ -349,6 +512,38 @@ OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam) KeySettingsDialogProc); } break; + + case IDC_LANGUAGE_BAR: + { + // FIXME + break; + } + + case IDC_DEFAULT_LANGUAGE: + { + if (HIWORD(wParam) == CBN_SELENDOK) + { + HWND hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST); + HWND hwndCombo = GetDlgItem(hwndDlg, IDC_DEFAULT_LANGUAGE); + INT iSelected = (INT)SendMessageW(hwndCombo, CB_GETCURSEL, 0, 0); + if (iSelected != CB_ERR) + { + LPARAM lParam = SendMessageW(hwndCombo, CB_GETITEMDATA, iSelected, 0); + if (lParam) + { + INPUT_LIST_NODE* pNode = (INPUT_LIST_NODE*)lParam; + if (!(pNode->wFlags & INPUT_LIST_NODE_FLAG_DEFAULT)) + { + s_bDefaultInputChanged = TRUE; + InputList_SetDefault(pNode); + UpdateInputListView(hwndList); + SetControlsState(hwndDlg); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + } + } + } + } + } } } @@ -356,6 +551,9 @@ static BOOL IsRebootNeeded(VOID) { INPUT_LIST_NODE *pNode; + if (s_bDefaultInputChanged) + return TRUE; + for (pNode = InputList_GetFirst(); pNode != NULL; pNode = pNode->pNext) { if (IS_IME_HKL(pNode->hkl)) /* IME? */ @@ -394,21 +592,31 @@ BOOL EnableProcessPrivileges(LPCWSTR lpPrivilegeName, BOOL bEnable) return Ret; } -static VOID +static INT_PTR OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam) { LPNMHDR header = (LPNMHDR)lParam; switch (header->code) { - case LVN_ITEMCHANGED: + case TVN_SELCHANGED: { - if (header->idFrom == IDC_KEYLAYOUT_LIST) - { - SetControlsState(hwndDlg); - } + SetControlsState(hwndDlg); + break; + } + + case TVN_ITEMEXPANDING: + { + // FIXME: Prevent collapse (COMCTL32 is buggy) + // https://bugs.winehq.org/show_bug.cgi?id=53727 + NM_TREEVIEW* pTreeView = (NM_TREEVIEW*)lParam; + if ((pTreeView->action & TVE_TOGGLE) == TVE_COLLAPSE) + { + SetWindowLongPtrW(hwndDlg, DWLP_MSGRESULT, TRUE); + return TRUE; + } + break; } - break; case PSN_APPLY: { @@ -429,11 +637,12 @@ OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam) ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0); } } + break; } - break; } -} + return 0; +} INT_PTR CALLBACK SettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -453,8 +662,7 @@ SettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) break; case WM_NOTIFY: - OnNotifySettingsPage(hwndDlg, lParam); - break; + return OnNotifySettingsPage(hwndDlg, lParam); } return FALSE;