[INPUT]
[reactos.git] / reactos / dll / cpl / input / settings.c
index 393359d..131de5a 100644 (file)
@@ -1,5 +1,4 @@
 /*
- *
  * PROJECT:         input.dll
  * FILE:            dll/win32/input/settings.c
  * PURPOSE:         input.dll
@@ -10,11 +9,9 @@
  *      06-09-2007  Created
  */
 
-#include "resource.h"
 #include "input.h"
 
 static HWND MainDlgWnd;
-static HIMAGELIST hImgList;
 // for SaveInputLang()
 static INT OldLayoutNum;
 
@@ -112,7 +109,6 @@ CreateLayoutIcon(LPTSTR szInd)
     HDC hdc, hdcsrc;
     HBITMAP hBitmap, hBmpNew, hBmpOld;
     RECT rect;
-    DWORD bkColor, bkText;
     HFONT hFont = NULL;
     ICONINFO IconInfo;
     HICON hIcon = NULL;
@@ -133,8 +129,8 @@ CreateLayoutIcon(LPTSTR szInd)
             rect.bottom = 16;
             rect.top = 0;
 
-            bkColor = SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
-            bkText  = SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
+            SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
+            SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
 
             ExtTextOut(hdc, rect.left, rect.top, ETO_OPAQUE, &rect, _T(""), 0, NULL);
 
@@ -299,7 +295,7 @@ AddListColumn(HWND hWnd)
 }
 
 static VOID
-InitLangList(HWND hWnd)
+InitLangList(HWND hWnd, HIMAGELIST hImgList)
 {
     HKEY hKey, hSubKey;
     TCHAR szBuf[MAX_PATH], szPreload[CCH_LAYOUT_ID + 1], szSub[CCH_LAYOUT_ID + 1];
@@ -370,11 +366,19 @@ InitLangList(HWND hWnd)
 VOID
 UpdateLayoutsList(VOID)
 {
-    (VOID) ImageList_Destroy(hImgList);
+    HIMAGELIST hImgList;
+
+    /* Clear the list */
     (VOID) ListView_DeleteAllItems(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST));
+
+    /* Crate new list */
     hImgList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 1);
-    InitLangList(MainDlgWnd);
-    (VOID) ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL);
+    InitLangList(MainDlgWnd, hImgList);
+    hImgList = ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL);
+
+    /* Destroy old image list */
+    if(hImgList)
+        (VOID) ImageList_Destroy(hImgList);
 }
 
 typedef struct _REG_KB_ENTRY_
@@ -540,7 +544,7 @@ SaveInputLang(HWND hDlg)
     _ultot(OldLayoutNum, szLayoutNum, 10);
     if (!GetLayoutID(szLayoutNum, szLayoutID)) return;
 
-    // if old layout = selected layout
+    // If old layout = selected layout
     if (_tcscmp(szLayoutID, pts) == 0) return;
 
     if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"), 0,
@@ -720,7 +724,7 @@ InputLangPropDlgProc(HWND hDlg,
 
 /* Property page dialog callback */
 INT_PTR CALLBACK
-SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
+SettingsPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
 {
     UNREFERENCED_PARAMETER(lParam);
 
@@ -728,12 +732,14 @@ SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
     {
         case WM_INITDIALOG:
         {
+            HIMAGELIST hImgList;
+
             MainDlgWnd = hwndDlg;
             AddListColumn(hwndDlg);
             (VOID) ListView_SetExtendedListViewStyle(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST),
                                                      LVS_EX_FULLROWSELECT);
             hImgList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 1);
-            InitLangList(hwndDlg);
+            InitLangList(hwndDlg, hImgList);
             (VOID) ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL);
         }
             break;
@@ -781,7 +787,6 @@ SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
             }
             break;
         case WM_DESTROY:
-            (VOID) ImageList_Destroy(hImgList);
             break;
     }