ReactOS 0.4.15-dev-5667-ged97270
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
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 return TRUE;
49 }
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
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}
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define IDC_KB_LAYOUT_IME_COMBO
Definition: resource.h:34
#define IDC_INPUT_LANG_STR
Definition: resource.h:35
#define CALLBACK
Definition: compat.h:35
INT_PTR CALLBACK EditDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: edit_dialog.c:14
#define INPUT_LIST_NODE_FLAG_EDITED
Definition: input_list.h:11
LAYOUT_LIST_NODE * LayoutList_GetFirst(VOID)
Definition: layout_list.c:293
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define LOWORD(l)
Definition: pedump.c:82
LAYOUT_LIST_NODE * pLayout
Definition: input_list.h:37
LOCALE_LIST_NODE * pLocale
Definition: input_list.h:36
struct _LAYOUT_LIST_NODE * pNext
Definition: layout_list.h:14
#define GWLP_USERDATA
Definition: treelist.c:63
int32_t INT_PTR
Definition: typedefs.h:64
int32_t INT
Definition: typedefs.h:58
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define ComboBox_GetItemData(hwndCtl, index)
Definition: windowsx.h:54
#define ComboBox_GetCurSel(hwndCtl)
Definition: windowsx.h:49
#define ComboBox_AddString(hwndCtl, lpsz)
Definition: windowsx.h:41
#define ComboBox_SetItemData(hwndCtl, index, data)
Definition: windowsx.h:69
#define ComboBox_SelectString(hwndCtl, indexStart, lpszSelect)
Definition: windowsx.h:65
#define GetWindowLongPtrW
Definition: winuser.h:4819
#define IDCANCEL
Definition: winuser.h:825
#define WM_COMMAND
Definition: winuser.h:1730
#define WM_INITDIALOG
Definition: winuser.h:1729
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:824
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define SetWindowLongPtrW
Definition: winuser.h:5336
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)