Author: ekohl
Date: Sun Feb 28 17:01:35 2016
New Revision: 70799

URL: http://svn.reactos.org/svn/reactos?rev=70799&view=rev
Log:
[INPUT]
Prevent removal of all languages from the language list by disabling the 
'Remove' button when only one item remains. Enable the 'Remove' button when 
there is more than one item in the list.
CORE-3587 #resolve

Modified:
    trunk/reactos/dll/cpl/input/settings.c

Modified: trunk/reactos/dll/cpl/input/settings.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/input/settings.c?rev=70799&r1=70798&r2=70799&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/input/settings.c      [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/input/settings.c      [iso-8859-1] Sun Feb 28 
17:01:35 2016
@@ -743,8 +743,13 @@
             hImgList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 1);
             InitLangList(hwndDlg, hImgList);
             (VOID) ListView_SetImageList(GetDlgItem(MainDlgWnd, 
IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL);
+
+            /* Disable the Remove button if there is only one layout in the 
layout list */
+            if (ListView_GetItemCount(GetDlgItem(hwndDlg, IDC_KEYLAYOUT_LIST)) 
<= 1)
+                EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), FALSE);
         }
             break;
+
         case WM_NOTIFY:
         {
             switch (LOWORD(wParam))
@@ -753,11 +758,16 @@
             }
         }
             break;
+
         case WM_COMMAND:
             switch (LOWORD(wParam))
             {
                 case IDC_REMOVE_BUTTON:
                     DeleteLayout();
+
+                    /* Disable the Remove button if there is only one layout 
in the layout list */
+                    if (ListView_GetItemCount(GetDlgItem(hwndDlg, 
IDC_KEYLAYOUT_LIST)) <= 1)
+                        EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), 
FALSE);
                     break;
 
                 case IDC_KEY_SET_BTN:
@@ -772,6 +782,10 @@
                               MAKEINTRESOURCE(IDD_ADD),
                               hwndDlg,
                               AddDlgProc);
+
+                    /* Enable the Remove button if there is more than one 
layout in the layout list */
+                    if (ListView_GetItemCount(GetDlgItem(hwndDlg, 
IDC_KEYLAYOUT_LIST)) > 1)
+                        EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_BUTTON), 
TRUE);
                     break;
 
                 case IDC_PROP_BUTTON:
@@ -788,6 +802,7 @@
                     break;
             }
             break;
+
         case WM_DESTROY:
             break;
     }


Reply via email to