mirror of
https://github.com/reactos/reactos.git
synced 2024-08-28 22:28:36 +00:00
93 lines
2.6 KiB
C
93 lines
2.6 KiB
C
/*
|
|
* PROJECT: input.dll
|
|
* FILE: dll/cpl/input/edit_dialog.c
|
|
* PURPOSE: input.dll
|
|
* PROGRAMMER: Dmitry Chapyshev (dmitry@reactos.org)
|
|
*/
|
|
|
|
#include "input.h"
|
|
#include "locale_list.h"
|
|
#include "input_list.h"
|
|
|
|
|
|
INT_PTR CALLBACK
|
|
EditDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
UNREFERENCED_PARAMETER(lParam);
|
|
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
{
|
|
LAYOUT_LIST_NODE *pCurrentLayout;
|
|
INPUT_LIST_NODE *pInput;
|
|
HWND hwndList;
|
|
|
|
pInput = (INPUT_LIST_NODE*) lParam;
|
|
|
|
if (pInput == NULL)
|
|
return TRUE;
|
|
|
|
SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR) pInput);
|
|
|
|
SetWindowTextW(GetDlgItem(hwndDlg, IDC_INPUT_LANG_STR), pInput->pLocale->pszName);
|
|
|
|
hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
|
|
|
|
for (pCurrentLayout = LayoutList_GetFirst();
|
|
pCurrentLayout != NULL;
|
|
pCurrentLayout = pCurrentLayout->pNext)
|
|
{
|
|
INT iItemIndex;
|
|
|
|
iItemIndex = ComboBox_AddString(hwndList, pCurrentLayout->pszName);
|
|
ComboBox_SetItemData(hwndList, iItemIndex, pCurrentLayout);
|
|
}
|
|
|
|
ComboBox_SelectString(hwndList, 0, pInput->pLayout->pszName);
|
|
}
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
{
|
|
switch (LOWORD(wParam))
|
|
{
|
|
case IDOK:
|
|
{
|
|
INPUT_LIST_NODE *pInput;
|
|
HWND hwndList;
|
|
|
|
hwndList = GetDlgItem(hwndDlg, IDC_KB_LAYOUT_IME_COMBO);
|
|
|
|
pInput = (INPUT_LIST_NODE*) GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
|
|
|
|
if (pInput != NULL)
|
|
{
|
|
LAYOUT_LIST_NODE *pNewLayout;
|
|
|
|
pNewLayout = (LAYOUT_LIST_NODE*)ComboBox_GetItemData(hwndList,
|
|
ComboBox_GetCurSel(hwndList));
|
|
if (pNewLayout != NULL)
|
|
{
|
|
pInput->pLayout = pNewLayout;
|
|
pInput->wFlags |= INPUT_LIST_NODE_FLAG_EDITED;
|
|
}
|
|
}
|
|
|
|
EndDialog(hwndDlg, LOWORD(wParam));
|
|
}
|
|
break;
|
|
|
|
case IDCANCEL:
|
|
{
|
|
EndDialog(hwndDlg, LOWORD(wParam));
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|