3 * FILE: dll/cpl/input/key_sequence_dialog.c
5 * PROGRAMMER: Dmitry Chapyshev (dmitry@reactos.org)
12 ChangeKeySeqDialogProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
)
14 UNREFERENCED_PARAMETER(lParam
);
20 KEY_SETTINGS
*keySettings
= (KEY_SETTINGS
*) lParam
;
22 if (keySettings
!= NULL
)
24 SetWindowLongPtrW(hwndDlg
, GWLP_USERDATA
, (LONG_PTR
) keySettings
);
26 if (keySettings
->dwLanguage
== 3)
28 CheckDlgButton(hwndDlg
, IDC_CTRL_LANG
, BST_CHECKED
);
29 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LANG
), FALSE
);
30 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LANG
), FALSE
);
34 CheckDlgButton(hwndDlg
, IDC_SWITCH_INPUT_LANG_CB
, BST_CHECKED
);
36 if (keySettings
->dwLanguage
== 1)
38 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LANG
, BST_CHECKED
);
42 CheckDlgButton(hwndDlg
, IDC_CTRL_LANG
, BST_CHECKED
);
46 if (keySettings
->dwLayout
== 3)
48 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LAYOUT
, BST_CHECKED
);
49 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LAYOUT
), FALSE
);
50 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LAYOUT
), FALSE
);
54 CheckDlgButton(hwndDlg
, IDC_SWITCH_KBLAYOUTS_CB
, BST_CHECKED
);
56 if (keySettings
->dwLayout
== 1)
58 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LAYOUT
, BST_CHECKED
);
62 CheckDlgButton(hwndDlg
, IDC_CTRL_LAYOUT
, BST_CHECKED
);
71 switch (LOWORD(wParam
))
73 case IDC_SWITCH_INPUT_LANG_CB
:
75 if (HIWORD(wParam
) == BN_CLICKED
)
77 if (IsDlgButtonChecked(hwndDlg
, IDC_SWITCH_INPUT_LANG_CB
) == BST_CHECKED
)
79 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LANG
), TRUE
);
80 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LANG
), TRUE
);
84 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LANG
), FALSE
);
85 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LANG
), FALSE
);
91 case IDC_SWITCH_KBLAYOUTS_CB
:
93 if (HIWORD(wParam
) == BN_CLICKED
)
95 if (IsDlgButtonChecked(hwndDlg
, IDC_SWITCH_KBLAYOUTS_CB
) == BST_CHECKED
)
97 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LAYOUT
), TRUE
);
98 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LAYOUT
), TRUE
);
102 EnableWindow(GetDlgItem(hwndDlg
, IDC_CTRL_LAYOUT
), FALSE
);
103 EnableWindow(GetDlgItem(hwndDlg
, IDC_LEFT_ALT_LAYOUT
), FALSE
);
111 if (HIWORD(wParam
) == BN_CLICKED
)
113 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LAYOUT
, BST_CHECKED
);
114 CheckDlgButton(hwndDlg
, IDC_CTRL_LAYOUT
, BST_UNCHECKED
);
119 case IDC_LEFT_ALT_LANG
:
121 if (HIWORD(wParam
) == BN_CLICKED
)
123 CheckDlgButton(hwndDlg
, IDC_CTRL_LAYOUT
, BST_CHECKED
);
124 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LAYOUT
, BST_UNCHECKED
);
129 case IDC_CTRL_LAYOUT
:
131 if (HIWORD(wParam
) == BN_CLICKED
)
133 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LANG
, BST_CHECKED
);
134 CheckDlgButton(hwndDlg
, IDC_CTRL_LANG
, BST_UNCHECKED
);
139 case IDC_LEFT_ALT_LAYOUT
:
141 if (HIWORD(wParam
) == BN_CLICKED
)
143 CheckDlgButton(hwndDlg
, IDC_CTRL_LANG
, BST_CHECKED
);
144 CheckDlgButton(hwndDlg
, IDC_LEFT_ALT_LANG
, BST_UNCHECKED
);
151 KEY_SETTINGS
*keySettings
;
153 keySettings
= (KEY_SETTINGS
*)GetWindowLongPtrW(hwndDlg
, GWLP_USERDATA
);
155 if (keySettings
!= NULL
)
157 if (IsDlgButtonChecked(hwndDlg
, IDC_SWITCH_INPUT_LANG_CB
) == BST_CHECKED
)
159 if (IsDlgButtonChecked(hwndDlg
, IDC_CTRL_LANG
) == BST_CHECKED
)
161 keySettings
->dwLanguage
= 2;
165 keySettings
->dwLanguage
= 1;
170 keySettings
->dwLanguage
= 3;
173 if (IsDlgButtonChecked(hwndDlg
, IDC_SWITCH_KBLAYOUTS_CB
) == BST_CHECKED
)
175 if (IsDlgButtonChecked(hwndDlg
, IDC_CTRL_LAYOUT
) == BST_CHECKED
)
177 keySettings
->dwLayout
= 2;
181 keySettings
->dwLayout
= 1;
186 keySettings
->dwLayout
= 3;
190 EndDialog(hwndDlg
, LOWORD(wParam
));
196 EndDialog(hwndDlg
, LOWORD(wParam
));