ReactOS  0.4.13-dev-259-g5ca9c9c
edit_dialog.c
Go to the documentation of this file.
1 /*
2 * PROJECT: input.dll
3 * FILE: dll/cpl/input/edit_dialog.c
4 * PURPOSE: input.dll
5 * PROGRAMMER: Dmitry Chapyshev (dmitry@reactos.org)
6 */
7 
8 #include "input.h"
9 #include "locale_list.h"
10 #include "input_list.h"
11 
12 
15 {
17 
18  switch (uMsg)
19  {
20  case WM_INITDIALOG:
21  {
22  LAYOUT_LIST_NODE *pCurrentLayout;
23  INPUT_LIST_NODE *pInput;
24  HWND hwndList;
25 
26  pInput = (INPUT_LIST_NODE*) lParam;
27 
28  if (pInput == NULL)
29  return TRUE;
30 
31  SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR) pInput);
32 
33  SetWindowTextW(GetDlgItem(hwndDlg, IDC_INPUT_LANG_STR), pInput->pLocale->pszName);
34 
35  hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
36 
37  for (pCurrentLayout = LayoutList_GetFirst();
38  pCurrentLayout != NULL;
39  pCurrentLayout = pCurrentLayout->pNext)
40  {
41  INT iItemIndex;
42 
43  iItemIndex = ComboBox_AddString(hwndList, pCurrentLayout->pszName);
44  ComboBox_SetItemData(hwndList, iItemIndex, pCurrentLayout);
45  }
46 
47  ComboBox_SelectString(hwndList, 0, pInput->pLayout->pszName);
48  }
49  break;
50 
51  case WM_COMMAND:
52  {
53  switch (LOWORD(wParam))
54  {
55  case IDOK:
56  {
57  INPUT_LIST_NODE *pInput;
58  HWND hwndList;
59 
60  hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
61 
62  pInput = (INPUT_LIST_NODE*) GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
63 
64  if (pInput != NULL)
65  {
66  LAYOUT_LIST_NODE *pNewLayout;
67 
68  pNewLayout = (LAYOUT_LIST_NODE*)ComboBox_GetItemData(hwndList,
69  ComboBox_GetCurSel(hwndList));
70  if (pNewLayout != NULL)
71  {
72  pInput->pLayout = pNewLayout;
74  }
75  }
76 
77  EndDialog(hwndDlg, LOWORD(wParam));
78  }
79  break;
80 
81  case IDCANCEL:
82  {
83  EndDialog(hwndDlg, LOWORD(wParam));
84  }
85  break;
86  }
87  }
88  break;
89  }
90 
91  return FALSE;
92 }
INT_PTR CALLBACK EditDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: edit_dialog.c:14
#define TRUE
Definition: types.h:120
#define IDOK
Definition: winuser.h:824
#define ComboBox_AddString(hwndCtl, lpsz)
Definition: windowsx.h:16
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:323
#define CALLBACK
Definition: compat.h:27
LAYOUT_LIST_NODE * LayoutList_GetFirst(VOID)
Definition: layout_list.c:274
#define ComboBox_GetCurSel(hwndCtl)
Definition: windowsx.h:24
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
UINT_PTR WPARAM
Definition: windef.h:207
#define GetWindowLongPtrW
Definition: winuser.h:4698
int32_t INT_PTR
Definition: typedefs.h:62
LAYOUT_LIST_NODE * pLayout
Definition: input_list.h:19
int32_t INT
Definition: typedefs.h:56
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
WPARAM wParam
Definition: combotst.c:138
#define GWLP_USERDATA
Definition: treelist.c:63
smooth NULL
Definition: ftsmooth.c:416
LONG_PTR LPARAM
Definition: windef.h:208
struct _LAYOUT_LIST_NODE * pNext
Definition: layout_list.h:13
#define IDC_INPUT_LANG_STR
Definition: resource.h:34
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define ComboBox_GetItemData(hwndCtl, index)
Definition: windowsx.h:29
#define ComboBox_SelectString(hwndCtl, indexStart, lpszSelect)
Definition: windowsx.h:40
#define WM_COMMAND
Definition: winuser.h:1716
#define IDC_KB_LAYOUT_IME_COMBO
Definition: resource.h:33
#define ComboBox_SetItemData(hwndCtl, index, data)
Definition: windowsx.h:44
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define SetWindowLongPtrW
Definition: winuser.h:5215
#define IDCANCEL
Definition: winuser.h:825
#define WM_INITDIALOG
Definition: winuser.h:1715
LPARAM lParam
Definition: combotst.c:139
#define LOWORD(l)
Definition: pedump.c:82
#define INPUT_LIST_NODE_FLAG_EDITED
Definition: input_list.h:8