Author: dchapyshev
Date: Tue Aug  9 18:26:43 2016
New Revision: 72168

URL: http://svn.reactos.org/svn/reactos?rev=72168&view=rev
Log:
[INPUT]
- Implement editing input methods
- Marking default layout
- Other bugfixes

Modified:
    trunk/reactos/dll/cpl/input_new/edit_dialog.c
    trunk/reactos/dll/cpl/input_new/input_list.c
    trunk/reactos/dll/cpl/input_new/input_list.h
    trunk/reactos/dll/cpl/input_new/key_settings_dialog.c
    trunk/reactos/dll/cpl/input_new/lang/bg-BG.rc
    trunk/reactos/dll/cpl/input_new/lang/cs-CZ.rc
    trunk/reactos/dll/cpl/input_new/lang/de-DE.rc
    trunk/reactos/dll/cpl/input_new/lang/el-GR.rc
    trunk/reactos/dll/cpl/input_new/lang/en-US.rc
    trunk/reactos/dll/cpl/input_new/lang/es-ES.rc
    trunk/reactos/dll/cpl/input_new/lang/fr-FR.rc
    trunk/reactos/dll/cpl/input_new/lang/he-IL.rc
    trunk/reactos/dll/cpl/input_new/lang/it-IT.rc
    trunk/reactos/dll/cpl/input_new/lang/no-NO.rc
    trunk/reactos/dll/cpl/input_new/lang/pl-PL.rc
    trunk/reactos/dll/cpl/input_new/lang/pt-BR.rc
    trunk/reactos/dll/cpl/input_new/lang/ro-RO.rc
    trunk/reactos/dll/cpl/input_new/lang/ru-RU.rc
    trunk/reactos/dll/cpl/input_new/lang/sk-SK.rc
    trunk/reactos/dll/cpl/input_new/lang/sq-AL.rc
    trunk/reactos/dll/cpl/input_new/lang/tr-TR.rc
    trunk/reactos/dll/cpl/input_new/lang/uk-UA.rc
    trunk/reactos/dll/cpl/input_new/lang/zh-CN.rc
    trunk/reactos/dll/cpl/input_new/lang/zh-TW.rc
    trunk/reactos/dll/cpl/input_new/settings_page.c

Modified: trunk/reactos/dll/cpl/input_new/edit_dialog.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/edit_dialog.c?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/edit_dialog.c       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/edit_dialog.c       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -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;

Modified: trunk/reactos/dll/cpl/input_new/input_list.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/input_list.c?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/input_list.c        [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/input_list.c        [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -215,28 +215,37 @@
         }
     }
 
-    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))
-        {
-            InputList_RemoveNode(pCurrent);
+        if ((pCurrent->wFlags & INPUT_LIST_NODE_FLAG_DELETED) ||
+            (pCurrent->wFlags & INPUT_LIST_NODE_FLAG_EDITED))
+        {
+            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 @@
     /* 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 @@
 
     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 @@
 }
 
 
-VOID
+BOOL
 InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout)
 {
     WCHAR szIndicator[MAX_STR_LEN];
@@ -291,12 +300,20 @@
 
     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 @@
             pInput->pszIndicator = DublicateString(szIndicator);
         }
     }
+
+    return TRUE;
 }
 
 
@@ -329,34 +348,56 @@
     {
         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->dwFlags & INPUT_LIST_NODE_FLAG_DEFAULT)
+    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->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 @@
     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 @@
 
                     if (pInput->hkl == hklDefault)
                     {
-                        pInput->dwFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
+                        pInput->wFlags |= INPUT_LIST_NODE_FLAG_DEFAULT;
                     }
 
                     if (GetLocaleInfoW(LOWORD(pInput->pLocale->dwId),

Modified: trunk/reactos/dll/cpl/input_new/input_list.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/input_list.h?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/input_list.h        [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/input_list.h        [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -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 @@
 VOID
 InputList_Process(VOID);
 
-VOID
+BOOL
 InputList_Add(LOCALE_LIST_NODE *pLocale, LAYOUT_LIST_NODE *pLayout);
 
 VOID

Modified: trunk/reactos/dll/cpl/input_new/key_settings_dialog.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/key_settings_dialog.c?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/key_settings_dialog.c       [iso-8859-1] 
(original)
+++ trunk/reactos/dll/cpl/input_new/key_settings_dialog.c       [iso-8859-1] 
Tue Aug  9 18:26:43 2016
@@ -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 @@
         {
             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;

Modified: trunk/reactos/dll/cpl/input_new/lang/bg-BG.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/bg-BG.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/bg-BG.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/bg-BG.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/cs-CZ.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/cs-CZ.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/cs-CZ.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/cs-CZ.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -11,10 +11,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/de-DE.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/de-DE.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/de-DE.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/de-DE.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/el-GR.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/el-GR.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/el-GR.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/el-GR.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/en-US.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/en-US.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/en-US.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/en-US.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/es-ES.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/es-ES.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/es-ES.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/es-ES.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,10 +8,10 @@
 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&regar...", 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

Modified: trunk/reactos/dll/cpl/input_new/lang/fr-FR.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/fr-FR.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/fr-FR.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/fr-FR.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/he-IL.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/he-IL.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/he-IL.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/he-IL.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,10 +8,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/it-IT.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/it-IT.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/it-IT.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/it-IT.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/no-NO.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/no-NO.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/no-NO.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/no-NO.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/pl-PL.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/pl-PL.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/pl-PL.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/pl-PL.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -14,10 +14,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/pt-BR.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/pt-BR.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/pt-BR.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/pt-BR.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,7 +6,7 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/ro-RO.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/ro-RO.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/ro-RO.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/ro-RO.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,7 +8,7 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/ru-RU.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/ru-RU.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/ru-RU.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/ru-RU.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -6,10 +6,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/sk-SK.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/sk-SK.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/sk-SK.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/sk-SK.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -11,10 +11,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/sq-AL.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/sq-AL.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/sq-AL.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/sq-AL.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -10,10 +10,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/tr-TR.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/tr-TR.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/tr-TR.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/tr-TR.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,10 +8,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/uk-UA.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/uk-UA.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/uk-UA.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/uk-UA.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -14,10 +14,10 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/zh-CN.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/zh-CN.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/zh-CN.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/zh-CN.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,7 +8,7 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/lang/zh-TW.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/lang/zh-TW.rc?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/lang/zh-TW.rc       [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/lang/zh-TW.rc       [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -8,7 +8,7 @@
 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

Modified: trunk/reactos/dll/cpl/input_new/settings_page.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input_new/settings_page.c?rev=72168&r1=72167&r2=72168&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input_new/settings_page.c     [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input_new/settings_page.c     [iso-8859-1] Tue Aug  9 
18:26:43 2016
@@ -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 @@
 
     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;
-
-            hBmpOld = SelectObject(hdc, hBitmap);
-            rect.right = GetSystemMetrics(SM_CXSMICON);
-            rect.left = 0;
-            rect.bottom = GetSystemMetrics(SM_CYSMICON);
-            rect.top = 0;
-
-            SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
-            SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
-
-            ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, L"", 0, 
NULL);
-
-            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");
-
-            SelectObject(hdc, hFont);
-            DrawTextW(hdc, szLayout, 2, &rect, 
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
-            SelectObject(hdc, hBmpNew);
-
-            PatBlt(hdc, 0, 0,
-                   GetSystemMetrics(SM_CXSMICON),
-                   GetSystemMetrics(SM_CYSMICON),
-                   BLACKNESS);
-
-            SelectObject(hdc, hBmpOld);
-
-            IconInfo.hbmColor = hBitmap;
-            IconInfo.hbmMask = hBmpNew;
-            IconInfo.fIcon = TRUE;
-
-            hIcon = CreateIconIndirect(&IconInfo);
+            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));
+
+                        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);
-            DeleteObject(hBmpOld);
-            DeleteObject(hFont);
         }
     }
 
@@ -82,6 +107,15 @@
     DeleteObject(hBitmap);
 
     return hIcon;
+}
+
+
+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);
 }
 
 
@@ -99,7 +133,8 @@
     {
         HICON hLayoutIcon;
 
-        hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator);
+        hLayoutIcon = CreateLayoutIcon(pInputNode->pszIndicator,
+                                       (pInputNode->wFlags & 
INPUT_LIST_NODE_FLAG_DEFAULT));
 
         if (hLayoutIcon != NULL)
         {
@@ -110,9 +145,9 @@
 
     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 @@
          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 @@
         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 @@
 
         UpdateInputListView(hwndInputList);
     }
+
+    SetControlsState(hwndDlg, FALSE);
 }
 
 
@@ -236,7 +273,9 @@
 
         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 @@
 
                 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,9 @@
 
         case IDC_PROP_BUTTON:
         {
-            if (DialogBoxW(hApplet,
-                           MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP),
-                           hwndDlg,
-                           EditDialogProc) == IDOK)
-            {
-                UpdateInputListView(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST));
-                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 +309,37 @@
 
                 if (ListView_GetItem(hwndList, &item) != FALSE)
                 {
-                    INPUT_LIST_NODE *pSelected;
-
-                    pSelected = (INPUT_LIST_NODE*) item.lParam;
-                    if (pSelected != NULL)
+                    if (DialogBoxParamW(hApplet,
+                                        MAKEINTRESOURCEW(IDD_INPUT_LANG_PROP),
+                                        hwndDlg,
+                                        EditDialogProc,
+                                        item.lParam) == IDOK)
                     {
-                        InputList_SetDefault(pSelected);
+                        UpdateInputListView(hwndList);
+                        PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
                     }
-
+                }
+            }
+        }
+        break;
+
+        case IDC_SET_DEFAULT:
+        {
+            HWND hwndList;
+            
+            hwndList = GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST);
+
+            if (hwndList != NULL)
+            {
+                LVITEM item = { 0 };
+
+                item.mask = LVIF_PARAM;
+                item.iItem = ListView_GetNextItem(hwndList, -1, LVNI_SELECTED);
+
+                if (ListView_GetItem(hwndList, &item) != FALSE)
+                {
+                    InputList_SetDefault((INPUT_LIST_NODE*) item.lParam);
+                    UpdateInputListView(hwndList);
                     PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
                 }
             }
@@ -313,9 +364,33 @@
 static VOID
 OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam)
 {
-    if (((LPPSHNOTIFY)lParam)->hdr.code == PSN_APPLY)
-    {
-        InputList_Process();
+    LPNMHDR header;
+
+    header = (LPNMHDR)lParam;
+
+    switch (header->code)
+    {
+        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;
     }
 }
 


Reply via email to