4 * FILE: dll/win32/input/keysettings.c
6 * PROGRAMMER: Dmitry Chapyshev (dmitry@reactos.org)
15 static HWND hKeySettingsWnd
;
18 AddListColumn(HWND hDlg
)
21 HWND hList
= GetDlgItem(hDlg
, IDC_KEY_LISTVIEW
);
23 ZeroMemory(&column
, sizeof(LV_COLUMN
));
24 column
.mask
= LVCF_FMT
| LVCF_TEXT
| LVCF_WIDTH
| LVCF_SUBITEM
;
26 column
.fmt
= LVCFMT_LEFT
;
28 column
.pszText
= _T("");
30 (VOID
) ListView_InsertColumn(hList
, 0, &column
);
32 column
.fmt
= LVCFMT_RIGHT
;
35 column
.pszText
= _T("");
36 (VOID
) ListView_InsertColumn(hList
, 1, &column
);
42 DWORD dwValue
, dwType
, dwSize
;
45 if (RegOpenKeyEx(HKEY_CURRENT_USER
, _T("Keyboard Layout"), 0, KEY_QUERY_VALUE
, &hKey
) != ERROR_SUCCESS
)
49 dwSize
= sizeof(DWORD
);
51 if (RegQueryValueEx(hKey
, _T("Attributes"), NULL
, &dwType
, (LPBYTE
)&dwValue
, &dwSize
) != ERROR_SUCCESS
)
62 SaveKeySettings(HWND hDlg
)
67 if (SendDlgItemMessage(hDlg
, IDC_PRESS_CL_KEY_RB
, BM_GETCHECK
, 0, 0) == BST_CHECKED
)
72 if (RegCreateKeyEx(HKEY_CURRENT_USER
, _T("Keyboard Layout"), 0, NULL
,
73 REG_OPTION_NON_VOLATILE
, KEY_ALL_ACCESS
,
74 NULL
, &hKey
, NULL
) == ERROR_SUCCESS
)
76 RegSetValueEx(hKey
, _T("Attributes"), 0, REG_DWORD
, (LPBYTE
)&dwValue
, sizeof(DWORD
));
83 InitKeySettingsDlg(HWND hDlg
)
85 TCHAR szHotkey
[1 + 1], szLangHotkey
[1 + 1], szLayoutHotkey
[1 + 1],
86 szTitle
[MAX_PATH
], szText
[MAX_PATH
];
88 HWND hHotkeyList
= GetDlgItem(hDlg
, IDC_KEY_LISTVIEW
);
91 if (GetAttributes() != 0x0)
92 SendDlgItemMessage(hDlg
, IDC_PRESS_SHIFT_KEY_RB
, BM_SETCHECK
, 1, 1);
94 SendDlgItemMessage(hDlg
, IDC_PRESS_CL_KEY_RB
, BM_SETCHECK
, 1, 1);
96 if (!GetHotkeys(szHotkey
, szLangHotkey
, szLayoutHotkey
))
99 if (!LoadString(hApplet
, IDS_SWITCH_BET_INLANG
, szTitle
, sizeof(szTitle
) / sizeof(TCHAR
)))
102 if (_tcscmp(szLangHotkey
, _T("2")) == 0)
103 LoadString(hApplet
, IDS_CTRL_SHIFT
, szText
, sizeof(szText
) / sizeof(TCHAR
));
104 else if (_tcscmp(szLangHotkey
, _T("1")) == 0)
105 LoadString(hApplet
, IDS_LEFT_ALT_SHIFT
, szText
, sizeof(szText
) / sizeof(TCHAR
));
107 LoadString(hApplet
, IDS_NONE
, szText
, sizeof(szText
) / sizeof(TCHAR
));
109 item
.mask
= LVIF_TEXT
| LVIF_PARAM
| LVIF_STATE
;
110 item
.pszText
= szTitle
;
112 i
= ListView_InsertItem(hHotkeyList
, &item
);
114 ListView_SetItemText(hHotkeyList
, i
, 1, szText
);
116 (VOID
) ListView_SetHotItem(hHotkeyList
, i
);
117 ListView_SetItemState(hHotkeyList
, i
, LVIS_SELECTED
, LVIS_OVERLAYMASK
);
121 UpdateKeySettingsList()
123 (VOID
) ListView_DeleteAllItems(GetDlgItem(hKeySettingsWnd
, IDC_KEY_LISTVIEW
));
124 InitKeySettingsDlg(hKeySettingsWnd
);
128 KeySettingsDlgProc(HWND hDlg
,
133 UNREFERENCED_PARAMETER(lParam
);
138 hKeySettingsWnd
= hDlg
;
140 (VOID
) ListView_SetExtendedListViewStyle(GetDlgItem(hDlg
, IDC_KEY_LISTVIEW
),
141 LVS_EX_FULLROWSELECT
);
142 InitKeySettingsDlg(hDlg
);
146 switch (LOWORD(wParam
))
148 case IDC_CHANGE_KEY_SEQ_BTN
:
150 MAKEINTRESOURCE(IDD_CHANGE_KEY_SEQ
),
152 ChangeKeySeqDlgProc
);
156 SaveKeySettings(hDlg
);
157 EndDialog(hDlg
, LOWORD(wParam
));
161 EndDialog(hDlg
, LOWORD(wParam
));