diff --git a/reactos/dll/cpl/cpl.rbuild b/reactos/dll/cpl/cpl.rbuild
index 55dae51aec4..d89a5391802 100644
--- a/reactos/dll/cpl/cpl.rbuild
+++ b/reactos/dll/cpl/cpl.rbuild
@@ -10,6 +10,9 @@
+
+
+
diff --git a/reactos/dll/cpl/input/add.c b/reactos/dll/cpl/input/add.c
new file mode 100644
index 00000000000..719a241d3b3
--- /dev/null
+++ b/reactos/dll/cpl/input/add.c
@@ -0,0 +1,70 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/add.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+INT_PTR CALLBACK
+AddDlgProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+
+ }
+ case WM_COMMAND:
+ {
+ if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
+ {
+ EndDialog(hDlg,LOWORD(wParam));
+ return TRUE;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/advanced.c b/reactos/dll/cpl/input/advanced.c
new file mode 100644
index 00000000000..95778e8f81d
--- /dev/null
+++ b/reactos/dll/cpl/input/advanced.c
@@ -0,0 +1,58 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/advanced.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+AdvancedPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ UNREFERENCED_PARAMETER(wParam);
+ UNREFERENCED_PARAMETER(hwndDlg);
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/changekeyseq.c b/reactos/dll/cpl/input/changekeyseq.c
new file mode 100644
index 00000000000..b9a3f5b1b95
--- /dev/null
+++ b/reactos/dll/cpl/input/changekeyseq.c
@@ -0,0 +1,74 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/changekeyseq.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+INT_PTR CALLBACK
+ChangeKeySeqDlgProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+
+ }
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+
+ break;
+ case IDCANCEL:
+ EndDialog(hDlg,LOWORD(wParam));
+ break;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/input.c b/reactos/dll/cpl/input/input.c
new file mode 100644
index 00000000000..9c6409a1da3
--- /dev/null
+++ b/reactos/dll/cpl/input/input.c
@@ -0,0 +1,144 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/input.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+#define NUM_APPLETS (1)
+
+LONG CALLBACK SystemApplet(VOID);
+HINSTANCE hApplet = 0;
+
+/* Applets */
+APPLET Applets[NUM_APPLETS] =
+{
+ {IDI_CPLSYSTEM, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet}
+};
+
+VOID
+InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
+{
+ ZeroMemory(psp, sizeof(PROPSHEETPAGE));
+ psp->dwSize = sizeof(PROPSHEETPAGE);
+ psp->dwFlags = PSP_DEFAULT;
+ psp->hInstance = hApplet;
+ psp->pszTemplate = MAKEINTRESOURCE(idDlg);
+ psp->pfnDlgProc = DlgProc;
+}
+
+
+/* First Applet */
+
+LONG CALLBACK
+SystemApplet(VOID)
+{
+ PROPSHEETPAGE psp[2];
+ PROPSHEETHEADER psh;
+ TCHAR Caption[1024];
+
+ LoadString(hApplet, IDS_CPLSYSTEMNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
+
+ ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
+ psh.dwSize = sizeof(PROPSHEETHEADER);
+ psh.dwFlags = PSH_PROPSHEETPAGE;
+ psh.hwndParent = NULL;
+ psh.hInstance = hApplet;
+ psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDI_CPLSYSTEM));
+ psh.pszCaption = Caption;
+ psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
+ psh.nStartPage = 0;
+ psh.ppsp = psp;
+ psh.pfnCallback = NULL;
+
+ InitPropSheetPage(&psp[0], IDD_PROPPAGESETTINGS, (DLGPROC) SettingPageProc);
+ InitPropSheetPage(&psp[1], IDD_PROPPAGEADVANCED, (DLGPROC) AdvancedPageProc);
+
+ return (LONG)(PropertySheet(&psh) != -1);
+}
+
+
+/* Control Panel Callback */
+LONG CALLBACK
+CPlApplet(HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
+{
+ CPLINFO *CPlInfo;
+ DWORD i;
+
+ UNREFERENCED_PARAMETER(hwndCPl);
+
+ i = (DWORD)lParam1;
+ switch(uMsg)
+ {
+ case CPL_INIT:
+ return TRUE;
+
+ case CPL_GETCOUNT:
+ return NUM_APPLETS;
+
+ case CPL_INQUIRE:
+ CPlInfo = (CPLINFO*)lParam2;
+ CPlInfo->lData = 0;
+ CPlInfo->idIcon = Applets[i].idIcon;
+ CPlInfo->idName = Applets[i].idName;
+ CPlInfo->idInfo = Applets[i].idDescription;
+ break;
+
+ case CPL_DBLCLK:
+ Applets[i].AppletProc();
+ break;
+ }
+
+ return FALSE;
+}
+
+
+BOOL WINAPI
+DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
+{
+ UNREFERENCED_PARAMETER(lpvReserved);
+ switch(dwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ case DLL_THREAD_ATTACH:
+ hApplet = hinstDLL;
+ break;
+ }
+ return TRUE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/input.def b/reactos/dll/cpl/input/input.def
new file mode 100644
index 00000000000..b56f162a3f3
--- /dev/null
+++ b/reactos/dll/cpl/input/input.def
@@ -0,0 +1,6 @@
+LIBRARY input.dll
+
+EXPORTS
+CPlApplet
+
+; EOF
diff --git a/reactos/dll/cpl/input/input.h b/reactos/dll/cpl/input/input.h
new file mode 100644
index 00000000000..25936282ac2
--- /dev/null
+++ b/reactos/dll/cpl/input/input.h
@@ -0,0 +1,52 @@
+#ifndef __CPL_INPUT_H
+#define __CPL_INPUT_H
+
+typedef LONG (CALLBACK *CPLAPPLET_PROC)(VOID);
+
+typedef struct
+{
+ int idIcon;
+ int idName;
+ int idDescription;
+ CPLAPPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+extern HINSTANCE hApplet;
+
+/* input.c */
+VOID
+InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc);
+
+/* settings.c */
+INT_PTR CALLBACK
+SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+/* advanced.c */
+INT_PTR CALLBACK
+AdvancedPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+/* langbar.c */
+INT_PTR CALLBACK
+LangBarDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
+
+/* keysettings.c */
+INT_PTR CALLBACK
+KeySettingsDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
+
+/* add.c */
+INT_PTR CALLBACK
+AddDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
+
+/* changekeyseq.c */
+INT_PTR CALLBACK
+ChangeKeySeqDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
+
+/* inputlangprop.c */
+INT_PTR CALLBACK
+InputLangPropDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
+
+void ShowLastWin32Error(HWND hWndOwner);
+
+#endif /* __CPL_INPUT_H */
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/input.rbuild b/reactos/dll/cpl/input/input.rbuild
new file mode 100644
index 00000000000..0844ebe94c0
--- /dev/null
+++ b/reactos/dll/cpl/input/input.rbuild
@@ -0,0 +1,24 @@
+
+
+ .
+
+
+
+
+ 0x600
+ 0x501
+ kernel32
+ advapi32
+ user32
+ comctl32
+ msvcrt
+ input.c
+ settings.c
+ advanced.c
+ langbar.c
+ keysettings.c
+ add.c
+ changekeyseq.c
+ inputlangprop.c
+ input.rc
+
diff --git a/reactos/dll/cpl/input/input.rc b/reactos/dll/cpl/input/input.rc
new file mode 100644
index 00000000000..f6174bd4636
--- /dev/null
+++ b/reactos/dll/cpl/input/input.rc
@@ -0,0 +1,28 @@
+#include "resource.h"
+#include
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Software Control Panel\0"
+#define REACTOS_STR_INTERNAL_NAME "input\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "input.dll\0"
+#ifdef _MSC_VER
+#include <../../../reactos/version.rc>
+#else
+#include
+#endif
+
+IDI_KEYBOARD_ICO ICON "resources/keyboard.ico"
+IDI_MARKER_ICO ICON "resources/marker.ico"
+IDI_MIC_ICO ICON "resources/microphone.ico"
+IDI_KEY_SHORT_ICO ICON "resources/keyboard-shortcuts.ico"
+IDI_INFO_ICO ICON "resources/information.ico"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+/*
+ * Everything specific to any language goes in one of the specific
+ * files. Note that you can and may override resources which also have
+ * a neutral version. This is to get localized bitmaps for example.
+ */
+
+#include "lang/en-US.rc"
diff --git a/reactos/dll/cpl/input/inputlangprop.c b/reactos/dll/cpl/input/inputlangprop.c
new file mode 100644
index 00000000000..00795855d1e
--- /dev/null
+++ b/reactos/dll/cpl/input/inputlangprop.c
@@ -0,0 +1,74 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/inputlangprop.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+INT_PTR CALLBACK
+InputLangPropDlgProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+
+ }
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+
+ break;
+ case IDCANCEL:
+ EndDialog(hDlg,LOWORD(wParam));
+ break;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/keysettings.c b/reactos/dll/cpl/input/keysettings.c
new file mode 100644
index 00000000000..98c6f311960
--- /dev/null
+++ b/reactos/dll/cpl/input/keysettings.c
@@ -0,0 +1,80 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/keysettings.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+INT_PTR CALLBACK
+KeySettingsDlgProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+
+ }
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDC_CHANGE_KEY_SEQ_BUTTON:
+ DialogBox(hApplet,
+ MAKEINTRESOURCE(IDD_CHANGE_KEY_SEQ),
+ hDlg,
+ ChangeKeySeqDlgProc);
+ break;
+ case IDOK:
+
+ break;
+ case IDCANCEL:
+ EndDialog(hDlg,LOWORD(wParam));
+ break;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/lang/en-US.rc b/reactos/dll/cpl/input/lang/en-US.rc
new file mode 100644
index 00000000000..bc4c5ef7807
--- /dev/null
+++ b/reactos/dll/cpl/input/lang/en-US.rc
@@ -0,0 +1,247 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+IDD_PROPPAGESETTINGS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Settings"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ GROUPBOX "Default input language", -1, 7,7,231,53
+ LTEXT "Select one of the installed input languages to use when you start your coputer.",-1,14,18,220,17
+ COMBOBOX IDC_DEFAULT_INPUT_LANG, 14, 40, 218, 46, CBS_DROPDOWNLIST
+ GROUPBOX "&Installed services", -1, 7,65,231,115
+ LTEXT "Select the services that you want for each input language shown in the list. Use the Add and Remove buttons to modify this list.",-1,14,75,220,17
+ CONTROL "TEXT", IDC_KEYLAYOUT_TREE, "SysTreeView32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | 0x00000034, 14, 96, 160, 78
+ PUSHBUTTON "&Set Default", IDC_SET_DEFAULT, 179, 106, 53, 14
+ PUSHBUTTON "A&dd...", IDC_ADD_BUTTON, 179, 124, 53, 14
+ PUSHBUTTON "&Remove...", IDC_REMOVE_BUTTON, 179, 142, 53, 14
+ PUSHBUTTON "&Properties...", IDC_PROP_BUTTON, 179, 160, 53, 14
+ GROUPBOX "Proferences", -1, 7,185,231,36
+ PUSHBUTTON "Language &Bar...", IDC_LANG_BAR_BUTTON, 14, 198, 70, 14
+ PUSHBUTTON "&Key Settings...", IDC_KEY_SETTINGS_BUTTON, 90, 198, 70, 14
+END
+
+IDD_PROPPAGEADVANCED DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Advanced"
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ GROUPBOX "Compatibility Configuration", -1, 7,7,231,60
+ AUTOCHECKBOX "&Extend support of advanced text services to all programs", IDC_SUPPORT_ADV_SERV_CHECKBOX, 14, 19, 210, 10, WS_GROUP
+ LTEXT "Select this check box to on advanced text services in Notepad and other programs that do not normally support speech and handwriting recognition or other advanced input services.",-1,14,33,220,25
+ GROUPBOX "System Configuration", -1, 7,74,231,60
+ AUTOCHECKBOX "&Turn off advanced text services", IDC_TURNOFF_ADV_TXTSERV_CHECKBOX, 14, 86, 210, 10, WS_GROUP
+ LTEXT "Select this chack box to turn off advanced text services in all programs. Not recommended for East Asian users because this closes the language bar.",-1,14,100,220,25
+END
+
+IDD_LANGBAR DIALOG 20, 20, 240, 120
+STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Language Bar Settings"
+FONT 8, "MS Shell Dlg"
+{
+ GROUPBOX "", -1, 7, 7, 226, 85
+ AUTOCHECKBOX "Show the Language &bar on the desktop", IDC_LANGBAR_ON_DESK_CHECKBOX, 17, 17, 210, 10, WS_GROUP
+ AUTOCHECKBOX "Show the Language bar as &transparent when inactive", IDC_LANGBAR_TRANSP_INACT_CHECKBOX, 17, 32, 210, 10
+ AUTOCHECKBOX "Show &additional Language bar icons in the Notification area", IDC_ADDIT_LANGBAR_ICON_NOTIFYAREA_CHECKBOX, 17, 47, 210, 10
+ AUTOCHECKBOX "Show text &labels on the Language bar", IDC_TEXTLABEL_ON_LANGBAR_CHECKBOX, 17, 62, 210, 10
+ AUTOCHECKBOX "Turn &off advanced text services", IDC_OFF_ADVAN_TEXTSERV_CHECKBOX, 17, 77, 200, 10
+ DEFPUSHBUTTON "OK", IDOK, 129, 99, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 182, 99, 50, 14
+}
+
+IDD_KEYSETTINGS DIALOG 0, 0, 272, 163
+STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Advanced Key Settings"
+FONT 8, "MS Shell Dlg"
+{
+ GROUPBOX "To turn off Caps Lock", -1, 7, 7, 258, 26
+ AUTORADIOBUTTON "Press the CAPS &LOCK key", IDC_PRESS_CAPSLOCK_KEY_RADIOBTN, 14, 17, 120, 11, WS_GROUP
+ AUTORADIOBUTTON "Press the SHI&FT key", IDC_PRESS_SHIFT_KEY_RADIOBTN, 144, 17, 120, 11, NOT WS_TABSTOP
+ GROUPBOX "Hot keys for input languages", -1, 7, 37, 258, 95
+ LTEXT "Action", -1, 14, 47, 60, 9
+ RTEXT "&Key sequence", -1, 177, 47, 79, 9
+ LISTBOX IDC_KEY_LISTBOX, 14, 57, 244, 52, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "&Change Key Sequence...", IDC_CHANGE_KEY_SEQ_BUTTON, 152, 113, 106, 14, WS_GROUP
+ DEFPUSHBUTTON "OK", IDOK, 66, 140, 70, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 146, 140, 70, 14
+}
+
+IDD_ADD DIALOG 20, 20, 227, 90
+STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Add Input language"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "&Input language:", -1, 7, 7, 61, 10
+ COMBOBOX IDC_INPUT_LANGUAGE_COMBO, 7, 17, 212, 60, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
+ LTEXT "&Keyboard layout/IME:", -1, 7, 36, 110, 10
+ COMBOBOX IDC_KEYBOARD_LAYOUT_COMBO, 7, 47, 212, 60, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
+ DEFPUSHBUTTON "OK", IDOK, 116, 68, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 169, 68, 50, 14
+}
+
+IDD_CHANGE_KEY_SEQ DIALOG 5, 100, 269, 78
+STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Change Key Sequence"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "", -1, 16, 5, 250, 10
+ GROUPBOX "", -1, 12, 17, 184, 48
+ AUTOCHECKBOX "&Enable Key Sequence", IDC_ENABLE_KEY_SEQ_CHECKBOX, 17, 17, 85, 8
+ CTEXT "SHIFT", -1, 68, 37, 27, 12
+ CTEXT "+", -1, 57, 37, 8, 9
+ CTEXT "+", -1, 98, 37, 8, 10
+ CHECKBOX "&CTRL", IDC_CTRL_CHECKBOX, 24, 31, 30, 11, NOT WS_TABSTOP
+ CHECKBOX "&ALT", IDC_ALT_CHECKBOX, 24, 45, 40, 12, NOT WS_TABSTOP
+ LTEXT "&Key:", -1, 110, 37, 14, 10
+ COMBOBOX IDC_CKEY_COMBOBOX, 127, 34, 46, 48, CBS_DROPDOWNLIST | WS_VSCROLL
+ DEFPUSHBUTTON "OK", IDOK, 212, 25, 50, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 212, 47, 50, 14
+}
+
+IDD_INPUT_LANG_PROP DIALOG 20, 20, 227, 75
+STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
+CAPTION "Input language Properties"
+FONT 8, "MS Shell Dlg"
+{
+ LTEXT "Input language:", -1, 7, 7, 61, 8
+ LTEXT "", -1, 73, 7, 129, 8
+ LTEXT "&Keyboard layout/IME:", -1, 7, 21, 110, 10
+ COMBOBOX IDC_KEYBOARD_LAYOUT_IME_COMBO, 7, 32, 212, 60, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL
+ DEFPUSHBUTTON "OK", IDOK, 116, 53, 52, 14
+ PUSHBUTTON "Cancel", IDCANCEL, 169, 53, 52, 14
+}
+
+STRINGTABLE
+BEGIN
+ IDS_CPLSYSTEMNAME "Text Services and Input Languages"
+ IDS_CPLSYSTEMDESCRIPTION "Customizes settings for text input of languages."
+ IDS_US_LAYOUT, "US"
+ IDS_BELGIAN_LAYOUT, "Belgian (Period)"
+ IDS_BELGIAN_FRENCH_LAYOUT, "Belgian French"
+ IDS_PORTUGUESE_BRAZILIAN_ABNT_LAYOUT, "Portuguese (Brazilian ABNT)"
+ IDS_CANADIAN_FRENCH_LAYOUT, "Canadian French"
+ IDS_CANADIAN_FRENCH_LEGACY_LAYOUT, "Canadian French (Legacy)"
+ IDS_DANISH_LAYOUT, "Danish"
+ IDS_DUTCH_LAYOUT, "Dutch"
+ IDS_FINNISH_LAYOUT, "Finnish"
+ IDS_FRENCH_LAYOUT, "French"
+ IDS_GERMAN_LAYOUT, "German"
+ IDS_GERMAN_IBM_LAYOUT, "German (IBM)"
+ IDS_ICELANDIC_LAYOUT, "Icelandic"
+ IDS_IRISH_LAYOUT, "Irish"
+ IDS_ITALIAN_LAYOUT, "Italian"
+ IDS_ITALIAN_142_LAYOUT, "Italian (142)"
+ IDS_LATIN_AMERICAN_LAYOUT, "Latin American"
+ IDS_NORWEGIAN_LAYOUT, "Norwegian"
+ IDS_PORTUGUESE_LAYOUT, "Portuguese"
+ IDS_SPANISH_LAYOUT, "Spanish"
+ IDS_SPANISH_VARIANTION_LAYOUT, "Spanish Variation"
+ IDS_SWEDISH_LAYOUT, "Swedish"
+ IDS_SWISS_FRENCH_LAYOUT, "Swiss French"
+ IDS_SWISS_GERMAN_LAYOUT, "Swiss German"
+ IDS_UNITED_KINGDOM_LAYOUT, "United Kingdom"
+ IDS_UNITED_STATES_INTERNATIONAL_LAYOUT, "United States-International"
+ IDS_UNITED_STATES_DVORAK_FOR_LEFT_HAND_LAYOUT, "United States-Dvorak for left hand"
+ IDS_UNITED_STATES_DVORAK_FOR_RIGHT_HAND_LAYOUT, "United States-Dvorak for right hand"
+ IDS_ALBANIAN_LAYOUT, "Albanian"
+ IDS_CROATIAN_LAYOUT, "Croatian"
+ IDS_CZECH_LAYOUT, "Czech"
+ IDS_CZECH_QWERTY_LAYOUT, "Czech (QWERTY)"
+ IDS_HUNGARIAN_LAYOUT, "Hungarian"
+ IDS_HUNGARIAN_101_KEY_LAYOUT, "Hungarian 101-key"
+ IDS_POLISH_LAYOUT, "Polish (Programmers)"
+ IDS_POLISH_214_LAYOUT, "Polish (214)"
+ IDS_ROMANIAN_LAYOUT, "Romanian"
+ IDS_SERBIAN_LATIN_LAYOUT, "Serbian (Latin)"
+ IDS_SLOVAK_LAYOUT, "Slovak"
+ IDS_SLOVAK_QWERTY_LAYOUT, "Slovak (QWERTY)"
+ IDS_SLOVENIAN_LAYOUT, "Slovenian"
+ IDS_ESTONIAN_LAYOUT, "Estonian"
+ IDS_LATVIAN_LAYOUT, "Latvian"
+ IDS_LATVIAN_QWERTY_LAYOUT, "Latvian (QWERTY)"
+ IDS_LITHUANIAN_IBM_LAYOUT, "Lithuanian IBM"
+ IDS_GREEK_LAYOUT, "Greek"
+ IDS_GREEK_LATIN_LAYOUT, "Greek Latin"
+ IDS_GREEK_220_LAYOUT, "Greek (220)"
+ IDS_GREEK_319_LAYOUT, "Greek (319)"
+ IDS_GREEK_220_LATIN_LAYOUT, "Greek (220) Latin"
+ IDS_GREEK_319_LATIN_LAYOUT, "Greek (319) Latin"
+ IDS_BELARUSIAN_LAYOUT, "Belarusian"
+ IDS_BULGARIAN_LAYOUT, "Bulgarian"
+ IDS_BULGARIAN_LATIN_LAYOUT, "Bulgarian (Latin)"
+ IDS_RUSSIAN_LAYOUT, "Russian"
+ IDS_RUSSIAN_TYPEWRITER_LAYOUT, "Russian (Typewriter)"
+ IDS_SERBIAN_CYRILLIC_LAYOUT, "Serbian (Cyrillic)"
+ IDS_UKRAINIAN_LAYOUT, "Ukrainian"
+ IDS_TURKISH_F_LAYOUT, "Turkish F"
+ IDS_TURKISH_Q_LAYOUT, "Turkish Q"
+ IDS_JAPANESE_LAYOUT, "Japanese"
+ IDS_JAPANESE_INPUT_SYSTEM_MSIME2002_LAYOUT, "Japanese Input System (MS-IME2002)"
+ IDS_KOREAN_LAYOUT, "Korean"
+ IDS_KOREAN_INPUT_SYSTEM_MSIME2002_LAYOUT, "Korean Input System (MS-IME2002)"
+ IDS_CHINESE_TRADITIONAL_USKEYBOARD_LAYOUT, "Chinese (Traditional) - US Keyboard"
+ IDS_CHINESE_TRADITIONAL_PHONETIC_LAYOUT, "Chinese (Traditional) - Phonetic"
+ IDS_CHINESE_TRADITIONAL_CHANGJIE_LAYOUT, "Chinese (Traditional) - ChangJie"
+ IDS_CHINESE_TRADITIONAL_BIG5CODE_LAYOUT, "Chinese (Traditional) - Big5 Code"
+ IDS_CHINESE_TRADITIONAL_DAYI_LAYOUT, "Chinese (Traditional) - DaYi"
+ IDS_CHINESE_TRADITIONAL_UNICODE_LAYOUT, "Chinese (Traditional) - Unicode"
+ IDS_CHINESE_TRADITIONAL_ALPHANUMERIC_LAYOUT, "Chinese (Traditional) - Alphanumeric"
+ IDS_CHINESE_SIMPLIFIED_USKEYBOARD_LAYOUT, "Chinese (Simplified) - US Keyboard"
+ IDS_CHINESE_SIMPLIFIED_QUANPIN_LAYOUT, "Chinese (Simplified) - QuanPin"
+ IDS_CHINESE_SIMPLIFIED_SHUANGPIN_LAYOUT, "Chinese (Simplified) - ShuangPin"
+ IDS_CHINESE_SIMPLIFIED_ZHENGMA_LAYOUT, "Chinese (Simplified) - ZhengMa"
+ IDS_CHINESE_SIMPLIFIED_NEIMA_LAYOUT, "Chinese (Simplified) - NeiMa"
+ IDS_THAI_KEDMANEE_LAYOUT, "Thai Kedmanee"
+ IDS_THAI_PATTACHOTE_LAYOUT, "Thai Pattachote"
+ IDS_THAI_KEDMANEE_NONSHIFTLOCK_LAYOUT, "Thai Kedmanee (non-ShiftLock)"
+ IDS_THAI_PATTACHOTE_NONSHIFTLOCK_LAYOUT, "Thai Pattachote (non-ShiftLock)"
+ IDS_HEBREW_LAYOUT, "Hebrew"
+ IDS_ARABIC_101_LAYOUT, "Arabic (101)"
+ IDS_ARABIC_102_LAYOUT, "Arabic (102)"
+ IDS_ARABIC_102_AZERTY_LAYOUT, "Arabic (102) AZERTY"
+ IDS_CZECH_PROGRAMMERS_LAYOUT, "Czech Programmers"
+ IDS_LITHUANIAN_LAYOUT, "Lithuanian"
+ IDS_BELGIAN_COMMA_LAYOUT, "Belgian (Comma)"
+ IDS_CHINESE_TRADITIONAL_NEWPHONETIC_LAYOUT, "Chinese (Traditional) - New Phonetic"
+ IDS_CHINESE_SIMPLIFIED_MSPINYINIME30_LAYOUT, "Chinese (Simplified) - Microsoft Pinyin IME 3.0"
+ IDS_UNITED_STATES_DVIRAK_LAYOUT, "United States-Dvorak"
+ IDS_CHINESE_TRADITIONAL_NEWCHANGJIE_LAYOUT, "Chinese (Traditional) - New ChangJie"
+ IDS_ASSAMESE_LAYOUT, "Assamese"
+ IDS_BENGALI_LAYOUT, "Bengali"
+ IDS_DEVANAGARI_INSCRIPT_LAYOUT, "Devanagari - INSCRIPT"
+ IDS_GUJARATI_LAYOUT, "Gujarati"
+ IDS_KANNADA_LAYOUT, "Kannada"
+ IDS_MALAYALAM_LAYOUT, "Malayalam"
+ IDS_ORIYA_LAYOUT, "Oriya"
+ IDS_PUNJABI_LAYOUT, "Punjabi"
+ IDS_TAMIL_LAYOUT, "Tamil"
+ IDS_TELUGU_LAYOUT, "Telugu"
+ IDS_MARATHI_LAYOUT, "Marathi"
+ IDS_HINDI_TRADITIONAL_LAYOUT, "Hindi Traditional"
+ IDS_CANTONESE_PHONETIC_LAYOUT, "Cantonese Phonetic"
+ IDS_FAEROESE_LAYOUT, "Faeroese"
+ IDS_FYRO_MACEDONIAN_LAYOUT, "FYRO Macedonian"
+ IDS_CANADIAN_MULTILINGUAL_STD_LAYOUT, "Canadian Multilingual Standard"
+ IDS_CHINESE_TRADITIONAL_QUICK_LAYOUT, "Chinese (Traditional) - Quick"
+ IDS_CHINESE_TRADITIONAL_ARRAY_LAYOUT, "Chinese (Traditional) - Array"
+ IDS_KAZAKH_LAYOUT, "Kazakh"
+ IDS_UZBEK_CYRILLIC_LAYOUT, "Uzbek Cyrillic"
+ IDS_AZERI_CYRILLIC_LAYOUT, "Azeri Cyrillic"
+ IDS_TATAR_LAYOUT, "Tatar"
+ IDS_AZERI_LATIN_LAYOUT, "Azeri Latin"
+ IDS_VIETNAMESE_LAYOUT, "Vietnamese"
+ IDS_GEORGIAN_LAYOUT, "Georgian"
+ IDS_ARMENIAN_EASTERN_LAYOUT, "Armenian Eastern"
+ IDS_ARMENIAN_WESTERN_LAYOUT, "Armenian Western"
+ IDS_GREEK_POLYTONIC_LAYOUT, "Greek Polytonic"
+ IDS_USENG_TABLE_IBM_ARABIC238L_LAYOUT, "US English Table for IBM Arabic 238_L"
+ IDS_FARSI_LAYOUT, "Farsi"
+ IDS_GAELIC_LAYOUT, "Gaelic"
+ IDS_PORTUGUESE_BRAZIL_ABNT2_LAYOUT, "Portuguese (Brazilian ABNT2)"
+ IDS_MONGOLIAN_CYRILLIC_LAYOUT, "Mongolian Cyrillic"
+ IDS_KYRGYZ_CYRILLIC_LAYOUT, "Kyrgyz Cyrillic"
+ IDS_URDU_LAYOUT, "Urdu"
+ IDS_SYRIAC_LAYOUT, "Syriac"
+ IDS_SYRIAC_PHONETIC_LAYOUT, "Syriac Phonetic"
+ IDS_DIVEHI_PHONETIC_LAYOUT, "Divehi Phonetic"
+ IDS_DIVEHI_TYPEWRITER_LAYOUT, "Divehi Typewriter"
+END
diff --git a/reactos/dll/cpl/input/langbar.c b/reactos/dll/cpl/input/langbar.c
new file mode 100644
index 00000000000..ce2d0788259
--- /dev/null
+++ b/reactos/dll/cpl/input/langbar.c
@@ -0,0 +1,74 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/langbar.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+INT_PTR CALLBACK
+LangBarDlgProc(HWND hDlg,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+
+ }
+ case WM_COMMAND:
+ {
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+
+ break;
+ case IDCANCEL:
+ EndDialog(hDlg,LOWORD(wParam));
+ break;
+ }
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/resource.h b/reactos/dll/cpl/input/resource.h
new file mode 100644
index 00000000000..c05dc79e4e7
--- /dev/null
+++ b/reactos/dll/cpl/input/resource.h
@@ -0,0 +1,193 @@
+#ifndef __CPL_RESOURCE_H
+#define __CPL_RESOURCE_H
+
+/* metrics */
+#define PROPSHEETWIDTH 246
+#define PROPSHEETHEIGHT 228
+#define PROPSHEETPADDING 6
+#define SYSTEM_COLUMN (0 * PROPSHEETPADDING)
+#define ICONSIZE 16
+
+/* IDI */
+#define IDI_KEYBOARD_ICO 202
+#define IDI_MARKER_ICO 205
+#define IDI_MIC_ICO 203
+#define IDI_KEY_SHORT_ICO 200
+#define IDI_INFO_ICO 207
+#define IDI_CPLSYSTEM 1502
+
+/* IDD */
+#define IDD_PROPPAGESETTINGS 500
+#define IDD_PROPPAGEADVANCED 501
+#define IDD_LANGBAR 502
+#define IDD_KEYSETTINGS 503
+#define IDD_ADD 504
+#define IDD_CHANGE_KEY_SEQ 505
+#define IDD_INPUT_LANG_PROP 506
+
+/* IDC */
+#define IDC_DEFAULT_INPUT_LANG 150
+#define IDC_ADD_BUTTON 151
+#define IDC_REMOVE_BUTTON 152
+#define IDC_PROP_BUTTON 153
+#define IDC_LANG_BAR_BUTTON 154
+#define IDC_KEY_SETTINGS_BUTTON 155
+#define IDC_SET_DEFAULT 156
+#define IDC_KEYLAYOUT_TREE 157
+#define IDC_CHANGE_KEY_SEQ_BUTTON 158
+#define IDC_LANGBAR_TRANSP_INACT_CHECKBOX 159
+#define IDC_ADDIT_LANGBAR_ICON_NOTIFYAREA_CHECKBOX 160
+#define IDC_TEXTLABEL_ON_LANGBAR_CHECKBOX 161
+#define IDC_OFF_ADVAN_TEXTSERV_CHECKBOX 162
+#define IDC_LANGBAR_ON_DESK_CHECKBOX 163
+#define IDC_SUPPORT_ADV_SERV_CHECKBOX 164
+#define IDC_TURNOFF_ADV_TXTSERV_CHECKBOX 165
+#define IDC_PRESS_CAPSLOCK_KEY_RADIOBTN 166
+#define IDC_PRESS_SHIFT_KEY_RADIOBTN 167
+#define IDC_KEY_LISTBOX 168
+#define IDC_INPUT_LANGUAGE_COMBO 169
+#define IDC_KEYBOARD_LAYOUT_COMBO 170
+#define IDC_ENABLE_KEY_SEQ_CHECKBOX 171
+#define IDC_CTRL_CHECKBOX 172
+#define IDC_ALT_CHECKBOX 173
+#define IDC_CKEY_COMBOBOX 174
+#define IDC_KEYBOARD_LAYOUT_IME_COMBO 175
+
+/* IDS */
+#define IDS_CPLSYSTEMNAME 1
+#define IDS_CPLSYSTEMDESCRIPTION 2
+
+#define IDS_US_LAYOUT 5000
+#define IDS_BELGIAN_LAYOUT 5001
+#define IDS_BELGIAN_FRENCH_LAYOUT 5002
+#define IDS_PORTUGUESE_BRAZILIAN_ABNT_LAYOUT 5003
+#define IDS_CANADIAN_FRENCH_LAYOUT 5004
+#define IDS_CANADIAN_FRENCH_LEGACY_LAYOUT 5005
+#define IDS_DANISH_LAYOUT 5007
+#define IDS_DUTCH_LAYOUT 5008
+#define IDS_FINNISH_LAYOUT 5009
+#define IDS_FRENCH_LAYOUT 5010
+#define IDS_GERMAN_LAYOUT 5011
+#define IDS_GERMAN_IBM_LAYOUT 5012
+#define IDS_ICELANDIC_LAYOUT 5013
+#define IDS_IRISH_LAYOUT 5014
+#define IDS_ITALIAN_LAYOUT 5015
+#define IDS_ITALIAN_142_LAYOUT 5016
+#define IDS_LATIN_AMERICAN_LAYOUT 5017
+#define IDS_NORWEGIAN_LAYOUT 5018
+#define IDS_PORTUGUESE_LAYOUT 5019
+#define IDS_SPANISH_LAYOUT 5020
+#define IDS_SPANISH_VARIANTION_LAYOUT 5021
+#define IDS_SWEDISH_LAYOUT 5022
+#define IDS_SWISS_FRENCH_LAYOUT 5023
+#define IDS_SWISS_GERMAN_LAYOUT 5024
+#define IDS_UNITED_KINGDOM_LAYOUT 5025
+#define IDS_UNITED_STATES_INTERNATIONAL_LAYOUT 5026
+#define IDS_UNITED_STATES_DVORAK_FOR_LEFT_HAND_LAYOUT 5027
+#define IDS_UNITED_STATES_DVORAK_FOR_RIGHT_HAND_LAYOUT 5028
+#define IDS_ALBANIAN_LAYOUT 5029
+#define IDS_CROATIAN_LAYOUT 5030
+#define IDS_CZECH_LAYOUT 5031
+#define IDS_CZECH_QWERTY_LAYOUT 5032
+#define IDS_HUNGARIAN_LAYOUT 5033
+#define IDS_HUNGARIAN_101_KEY_LAYOUT 5034
+#define IDS_POLISH_LAYOUT 5035
+#define IDS_POLISH_214_LAYOUT 5036
+#define IDS_ROMANIAN_LAYOUT 5037
+#define IDS_SERBIAN_LATIN_LAYOUT 5038
+#define IDS_SLOVAK_LAYOUT 5039
+#define IDS_SLOVAK_QWERTY_LAYOUT 5040
+#define IDS_SLOVENIAN_LAYOUT 5041
+#define IDS_ESTONIAN_LAYOUT 5042
+#define IDS_LATVIAN_LAYOUT 5043
+#define IDS_LATVIAN_QWERTY_LAYOUT 5044
+#define IDS_LITHUANIAN_IBM_LAYOUT 5045
+#define IDS_GREEK_LAYOUT 5046
+#define IDS_GREEK_LATIN_LAYOUT 5047
+#define IDS_GREEK_220_LAYOUT 5048
+#define IDS_GREEK_319_LAYOUT 5049
+#define IDS_GREEK_220_LATIN_LAYOUT 5050
+#define IDS_GREEK_319_LATIN_LAYOUT 5051
+#define IDS_BELARUSIAN_LAYOUT 5052
+#define IDS_BULGARIAN_LAYOUT 5053
+#define IDS_BULGARIAN_LATIN_LAYOUT 5054
+#define IDS_RUSSIAN_LAYOUT 5055
+#define IDS_RUSSIAN_TYPEWRITER_LAYOUT 5056
+#define IDS_SERBIAN_CYRILLIC_LAYOUT 5057
+#define IDS_UKRAINIAN_LAYOUT 5058
+#define IDS_TURKISH_F_LAYOUT 5059
+#define IDS_TURKISH_Q_LAYOUT 5060
+#define IDS_JAPANESE_LAYOUT 5061
+#define IDS_JAPANESE_INPUT_SYSTEM_MSIME2002_LAYOUT 5062
+#define IDS_KOREAN_LAYOUT 5063
+#define IDS_KOREAN_INPUT_SYSTEM_MSIME2002_LAYOUT 5064
+#define IDS_CHINESE_TRADITIONAL_USKEYBOARD_LAYOUT 5065
+#define IDS_CHINESE_TRADITIONAL_PHONETIC_LAYOUT 5066
+#define IDS_CHINESE_TRADITIONAL_CHANGJIE_LAYOUT 5067
+#define IDS_CHINESE_TRADITIONAL_BIG5CODE_LAYOUT 5068
+#define IDS_CHINESE_TRADITIONAL_DAYI_LAYOUT 5069
+#define IDS_CHINESE_TRADITIONAL_UNICODE_LAYOUT 5070
+#define IDS_CHINESE_TRADITIONAL_ALPHANUMERIC_LAYOUT 5071
+#define IDS_CHINESE_SIMPLIFIED_USKEYBOARD_LAYOUT 5072
+#define IDS_CHINESE_SIMPLIFIED_QUANPIN_LAYOUT 5073
+#define IDS_CHINESE_SIMPLIFIED_SHUANGPIN_LAYOUT 5074
+#define IDS_CHINESE_SIMPLIFIED_ZHENGMA_LAYOUT 5075
+#define IDS_CHINESE_SIMPLIFIED_NEIMA_LAYOUT 5077
+#define IDS_THAI_KEDMANEE_LAYOUT 5079
+#define IDS_THAI_PATTACHOTE_LAYOUT 5080
+#define IDS_THAI_KEDMANEE_NONSHIFTLOCK_LAYOUT 5081
+#define IDS_THAI_PATTACHOTE_NONSHIFTLOCK_LAYOUT 5082
+#define IDS_HEBREW_LAYOUT 5083
+#define IDS_ARABIC_101_LAYOUT 5084
+#define IDS_ARABIC_102_LAYOUT 5085
+#define IDS_ARABIC_102_AZERTY_LAYOUT 5086
+#define IDS_CZECH_PROGRAMMERS_LAYOUT 5087
+#define IDS_LITHUANIAN_LAYOUT 5088
+#define IDS_BELGIAN_COMMA_LAYOUT 5089
+#define IDS_CHINESE_TRADITIONAL_NEWPHONETIC_LAYOUT 5090
+#define IDS_CHINESE_SIMPLIFIED_MSPINYINIME30_LAYOUT 5091
+#define IDS_UNITED_STATES_DVIRAK_LAYOUT 5092
+#define IDS_CHINESE_TRADITIONAL_NEWCHANGJIE_LAYOUT 5093
+#define IDS_ASSAMESE_LAYOUT 5094
+#define IDS_BENGALI_LAYOUT 5095
+#define IDS_DEVANAGARI_INSCRIPT_LAYOUT 5096
+#define IDS_GUJARATI_LAYOUT 5097
+#define IDS_KANNADA_LAYOUT 5098
+#define IDS_MALAYALAM_LAYOUT 5099
+#define IDS_ORIYA_LAYOUT 5100
+#define IDS_PUNJABI_LAYOUT 5101
+#define IDS_TAMIL_LAYOUT 5102
+#define IDS_TELUGU_LAYOUT 5103
+#define IDS_MARATHI_LAYOUT 5104
+#define IDS_HINDI_TRADITIONAL_LAYOUT 5105
+#define IDS_CANTONESE_PHONETIC_LAYOUT 5107
+#define IDS_FAEROESE_LAYOUT 5108
+#define IDS_FYRO_MACEDONIAN_LAYOUT 5109
+#define IDS_CANADIAN_MULTILINGUAL_STD_LAYOUT 5110
+#define IDS_CHINESE_TRADITIONAL_QUICK_LAYOUT 5111
+#define IDS_CHINESE_TRADITIONAL_ARRAY_LAYOUT 5112
+#define IDS_KAZAKH_LAYOUT 5113
+#define IDS_UZBEK_CYRILLIC_LAYOUT 5114
+#define IDS_AZERI_CYRILLIC_LAYOUT 5115
+#define IDS_TATAR_LAYOUT 5116
+#define IDS_AZERI_LATIN_LAYOUT 5117
+#define IDS_VIETNAMESE_LAYOUT 5118
+#define IDS_GEORGIAN_LAYOUT 5119
+#define IDS_ARMENIAN_EASTERN_LAYOUT 5120
+#define IDS_ARMENIAN_WESTERN_LAYOUT 5121
+#define IDS_GREEK_POLYTONIC_LAYOUT 5122
+#define IDS_USENG_TABLE_IBM_ARABIC238L_LAYOUT 5123
+#define IDS_FARSI_LAYOUT 5124
+#define IDS_GAELIC_LAYOUT 5125
+#define IDS_PORTUGUESE_BRAZIL_ABNT2_LAYOUT 5126
+#define IDS_MONGOLIAN_CYRILLIC_LAYOUT 5127
+#define IDS_KYRGYZ_CYRILLIC_LAYOUT 5128
+#define IDS_URDU_LAYOUT 5129
+#define IDS_SYRIAC_LAYOUT 5130
+#define IDS_SYRIAC_PHONETIC_LAYOUT 5131
+#define IDS_DIVEHI_PHONETIC_LAYOUT 5132
+#define IDS_DIVEHI_TYPEWRITER_LAYOUT 5133
+
+#endif /* __CPL_RESOURCE_H */
+
+/* EOF */
diff --git a/reactos/dll/cpl/input/resources/information.ico b/reactos/dll/cpl/input/resources/information.ico
new file mode 100644
index 00000000000..b88b35c2156
Binary files /dev/null and b/reactos/dll/cpl/input/resources/information.ico differ
diff --git a/reactos/dll/cpl/input/resources/keyboard-shortcuts.ico b/reactos/dll/cpl/input/resources/keyboard-shortcuts.ico
new file mode 100644
index 00000000000..fbe5e7f756e
Binary files /dev/null and b/reactos/dll/cpl/input/resources/keyboard-shortcuts.ico differ
diff --git a/reactos/dll/cpl/input/resources/keyboard.ico b/reactos/dll/cpl/input/resources/keyboard.ico
new file mode 100644
index 00000000000..082c0049982
Binary files /dev/null and b/reactos/dll/cpl/input/resources/keyboard.ico differ
diff --git a/reactos/dll/cpl/input/resources/marker.ico b/reactos/dll/cpl/input/resources/marker.ico
new file mode 100644
index 00000000000..699d159f249
Binary files /dev/null and b/reactos/dll/cpl/input/resources/marker.ico differ
diff --git a/reactos/dll/cpl/input/resources/microphone.ico b/reactos/dll/cpl/input/resources/microphone.ico
new file mode 100644
index 00000000000..1a562ca6b85
Binary files /dev/null and b/reactos/dll/cpl/input/resources/microphone.ico differ
diff --git a/reactos/dll/cpl/input/settings.c b/reactos/dll/cpl/input/settings.c
new file mode 100644
index 00000000000..80549e6b858
--- /dev/null
+++ b/reactos/dll/cpl/input/settings.c
@@ -0,0 +1,87 @@
+/*
+ * ReactOS
+ * Copyright (C) 2007 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/*
+ *
+ * PROJECT: input.dll
+ * FILE: dll/win32/input/settings.c
+ * PURPOSE: input.dll
+ * PROGRAMMER: Dmitry Chapyshev (lentind@yandex.ru)
+ * UPDATE HISTORY:
+ * 06-09-2007 Created
+ */
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include "resource.h"
+#include "input.h"
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDC_LANG_BAR_BUTTON:
+ DialogBox(hApplet,
+ MAKEINTRESOURCE(IDD_LANGBAR),
+ hwndDlg,
+ LangBarDlgProc);
+ break;
+ case IDC_KEY_SETTINGS_BUTTON:
+ DialogBox(hApplet,
+ MAKEINTRESOURCE(IDD_KEYSETTINGS),
+ hwndDlg,
+ KeySettingsDlgProc);
+ break;
+ case IDC_ADD_BUTTON:
+ DialogBox(hApplet,
+ MAKEINTRESOURCE(IDD_ADD),
+ hwndDlg,
+ AddDlgProc);
+ break;
+ case IDC_PROP_BUTTON:
+ DialogBox(hApplet,
+ MAKEINTRESOURCE(IDD_INPUT_LANG_PROP),
+ hwndDlg,
+ InputLangPropDlgProc);
+ break;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+/* EOF */