[OSK]
authorJames Tabor <james.tabor@reactos.org>
Fri, 5 Dec 2014 21:43:00 +0000 (21:43 +0000)
committerJames Tabor <james.tabor@reactos.org>
Fri, 5 Dec 2014 21:43:00 +0000 (21:43 +0000)
- Add On Screen Keyboard to base applications. See CORE-7279 #resolved.

svn path=/trunk/; revision=65568

31 files changed:
reactos/base/applications/CMakeLists.txt
reactos/base/applications/osk/CMakeLists.txt [new file with mode: 0644]
reactos/base/applications/osk/lang/ar-DZ.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/en-GB.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/en-US.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/es-ES.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/fr-CA.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/fr-FR.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/it-IT.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/pl-PL.rc [new file with mode: 0644]
reactos/base/applications/osk/lang/ru-RU.rc [new file with mode: 0644]
reactos/base/applications/osk/main.c [new file with mode: 0644]
reactos/base/applications/osk/main.h [new file with mode: 0644]
reactos/base/applications/osk/osk.h [new file with mode: 0644]
reactos/base/applications/osk/osk_res.h [new file with mode: 0644]
reactos/base/applications/osk/res/back.ico [new file with mode: 0644]
reactos/base/applications/osk/res/bottom.ico [new file with mode: 0644]
reactos/base/applications/osk/res/caps_lock.ico [new file with mode: 0644]
reactos/base/applications/osk/res/home.ico [new file with mode: 0644]
reactos/base/applications/osk/res/left.ico [new file with mode: 0644]
reactos/base/applications/osk/res/menu.ico [new file with mode: 0644]
reactos/base/applications/osk/res/osk.ico [new file with mode: 0644]
reactos/base/applications/osk/res/pg_down.ico [new file with mode: 0644]
reactos/base/applications/osk/res/pg_up.ico [new file with mode: 0644]
reactos/base/applications/osk/res/reactos.ico [new file with mode: 0644]
reactos/base/applications/osk/res/return.ico [new file with mode: 0644]
reactos/base/applications/osk/res/right.ico [new file with mode: 0644]
reactos/base/applications/osk/res/shift.ico [new file with mode: 0644]
reactos/base/applications/osk/res/tab.ico [new file with mode: 0644]
reactos/base/applications/osk/res/top.ico [new file with mode: 0644]
reactos/base/applications/osk/rsrc.rc [new file with mode: 0644]

index ca7fba2..df969c0 100644 (file)
@@ -19,10 +19,11 @@ add_subdirectory(mmc)
 add_subdirectory(mplay32)
 add_subdirectory(msconfig)
 add_subdirectory(mscutils)
+add_subdirectory(mspaint)
 add_subdirectory(mstsc)
 add_subdirectory(network)
 add_subdirectory(notepad)
-add_subdirectory(mspaint)
+add_subdirectory(osk)
 add_subdirectory(rapps)
 add_subdirectory(regedit)
 add_subdirectory(regedt32)
diff --git a/reactos/base/applications/osk/CMakeLists.txt b/reactos/base/applications/osk/CMakeLists.txt
new file mode 100644 (file)
index 0000000..1a14503
--- /dev/null
@@ -0,0 +1,10 @@
+
+list(APPEND SOURCE
+    main.c
+    osk.h)
+
+add_executable(osk ${SOURCE} rsrc.rc)
+set_module_type(osk win32gui UNICODE)
+add_importlibs(osk comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32)
+add_pch(osk osk.h SOURCE)
+add_cd_file(TARGET osk DESTINATION reactos/system32 FOR all)
diff --git a/reactos/base/applications/osk/lang/ar-DZ.rc b/reactos/base/applications/osk/lang/ar-DZ.rc
new file mode 100644 (file)
index 0000000..f027799
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/ar-DZ.rc
+ * PURPOSE:         Arabic (Algeria) translation for On screen keyboard 
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_ARABIC, SUBLANG_DEFAULT
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "On screen keyboard"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Esc",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Prn",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Stop",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "ذ",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "ض",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "ص",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "ث",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "ق",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "ف",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "غ",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "ع",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "ه",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "خ",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "ح",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "ج",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "د",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "\\",SCAN_CODE_29,242,43,20,13
+    PUSHBUTTON      "Verr maj",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "ش",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "س",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "ي",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "ب",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "ل",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "ا",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "ت",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "ن",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "م",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      "ك",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "ط",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,231,60,31,13,BS_ICON
+    PUSHBUTTON      "shift",SCAN_CODE_44,3,77,35,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ئ",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "ء",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "ؤ",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "ر",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "ﻻ",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "ﻯ",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "ﺓ",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      "و",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      "ز",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "ظ",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "del",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "end",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT      "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/en-GB.rc b/reactos/base/applications/osk/lang/en-GB.rc
new file mode 100644 (file)
index 0000000..4bd3c5d
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/en-GB.rc
+ * PURPOSE:         On screen keyboard (English resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Clavier visuel"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Ech",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Prn",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Stop",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "|",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "[",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "]",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Caps Lock",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      ";",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "'",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "#",SCAN_CODE_42,231,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,248,43,14,30,BS_ICON
+    PUSHBUTTON      "Shift",SCAN_CODE_44,3,77,18,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "\\",SCAN_CODE_45,24,77,14,13
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "Shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "can",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "End",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg up",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg down",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/en-US.rc b/reactos/base/applications/osk/lang/en-US.rc
new file mode 100644 (file)
index 0000000..7c5a95c
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/en-US.rc
+ * PURPOSE:         On screen keyboard (American resources).
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "On screen keyboard"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Esc",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Prn",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Stop",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "`",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "[",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "]",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "\\",SCAN_CODE_29,242,43,20,13
+    PUSHBUTTON      "Caps Lock",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      ";",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "'",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,231,60,31,13,BS_ICON
+    PUSHBUTTON      "shift",SCAN_CODE_44,3,77,35,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "del",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "end",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg up",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg down",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/es-ES.rc b/reactos/base/applications/osk/lang/es-ES.rc
new file mode 100644 (file)
index 0000000..a2d6fcf
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/es-ES.rc
+ * PURPOSE:         On screen keyboard (Spanish resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Teclado visual"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "ech",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "imp",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "arr",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "att",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "°",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "'",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "¡",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "`",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "+",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Verr maj",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      "Ñ",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      ",",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ç",SCAN_CODE_42,231,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,248,43,14,30,BS_ICON
+    PUSHBUTTON      "maj",SCAN_CODE_44,3,77,18,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "<",SCAN_CODE_45,24,77,14,13
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "-",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "maj",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "sup",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "fin",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/fr-CA.rc b/reactos/base/applications/osk/lang/fr-CA.rc
new file mode 100644 (file)
index 0000000..d3f1762
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/fr-CA.rc
+ * PURPOSE:         On screen keyboard (French canadian resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH_CANADIAN
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Clavier visuel"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "ech",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "imp",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "arr",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "att",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "#",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "^",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "¨",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Verr maj",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      ";",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "`",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "<",SCAN_CODE_42,231,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,248,43,14,30,BS_ICON
+    PUSHBUTTON      "maj",SCAN_CODE_44,3,77,18,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "«",SCAN_CODE_45,24,77,14,13
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "maj",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "sup",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "fin",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/fr-FR.rc b/reactos/base/applications/osk/lang/fr-FR.rc
new file mode 100644 (file)
index 0000000..ca6832a
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/fr-FR.rc
+ * PURPOSE:         On screen keyboard (French resources).
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Clavier visuel"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "ech",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "imp",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "arr",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "att",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "²",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "&&",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "é",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      """",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "'",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "(",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "è",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "_",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "ç",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "à",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      ")",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "Z",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "^",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "$",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Verr maj",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      "M",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "ù",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "*",SCAN_CODE_42,231,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,248,43,14,30,BS_ICON
+    PUSHBUTTON      "maj",SCAN_CODE_44,3,77,18,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "<",SCAN_CODE_45,24,77,14,13
+    PUSHBUTTON      "W",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ";",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ":",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "!",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "maj",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "sup",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "fin",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/it-IT.rc b/reactos/base/applications/osk/lang/it-IT.rc
new file mode 100644 (file)
index 0000000..5755e6c
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/it-IT.rc
+ * PURPOSE:         On screen keyboard (Italian resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Tastiera visivo"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Esc",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Imp",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Arr",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "\\",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0 ",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "'",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "|",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "è",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "+",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Verr maj",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      "ò",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "à",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ù",SCAN_CODE_42,231,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,248,43,14,30,BS_ICON
+    PUSHBUTTON      "Shift",SCAN_CODE_44,3,77,18,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "<",SCAN_CODE_45,24,77,14,13
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "-",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "Shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "del",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "fin",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg up",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg down",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/pl-PL.rc b/reactos/base/applications/osk/lang/pl-PL.rc
new file mode 100644 (file)
index 0000000..df540bd
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/pl-PL.rc
+ * PURPOSE:         On screen keyboard (Polish resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_POLISH, SUBLANG_NEUTRAL
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Klawiatura Ekranowa"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Esc",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Prn",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Stop",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "`",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,181,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,199,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,216,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,234,26,28,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Q",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "W",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "R",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "T",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Y",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "U",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "I",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "O",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "P",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "[",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "]",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "\\",SCAN_CODE_29,242,43,20,13
+    PUSHBUTTON      "Caps Lock",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "A",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "S",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "D",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "F",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "G",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "H",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "J",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "K",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "L",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      ";",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "'",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,231,60,31,13,BS_ICON
+    PUSHBUTTON      "shift",SCAN_CODE_44,3,77,35,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "Z",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "X",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "V",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "B",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "N",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      ",",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "del",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "end",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/lang/ru-RU.rc b/reactos/base/applications/osk/lang/ru-RU.rc
new file mode 100644 (file)
index 0000000..bf108fc
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/lang/ru-RU.rc
+ * PURPOSE:         On screen keyboard (Russian resources)
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+LANGUAGE LANG_RUSSIAN, SUBLANG_NEUTRAL
+
+MAIN_DIALOG DIALOG DISCARDABLE 0, 0, 404, 108
+CAPTION "Клавиатура визуальный"
+FONT 8, "MS Sans Serif"
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE
+BEGIN
+    PUSHBUTTON      "Esc",SCAN_CODE_110,3,3,14,13
+    PUSHBUTTON      "F1",SCAN_CODE_112,39,3,14,13
+    PUSHBUTTON      "F2",SCAN_CODE_113,56,3,14,13
+    PUSHBUTTON      "F3",SCAN_CODE_114,74,3,14,13
+    PUSHBUTTON      "F4",SCAN_CODE_115,92,3,14,13
+    PUSHBUTTON      "F5",SCAN_CODE_116,117,3,14,13
+    PUSHBUTTON      "F6",SCAN_CODE_117,135,3,14,13
+    PUSHBUTTON      "F7",SCAN_CODE_118,152,3,14,13
+    PUSHBUTTON      "F8",SCAN_CODE_119,170,3,14,13
+    PUSHBUTTON      "F9",SCAN_CODE_120,195,3,14,13
+    PUSHBUTTON      "F10",SCAN_CODE_121,213,3,14,13
+    PUSHBUTTON      "F11",SCAN_CODE_122,231,3,14,13
+    PUSHBUTTON      "F12",SCAN_CODE_123,248,3,14,13
+    PUSHBUTTON      "Prn",SCAN_CODE_124,273,3,14,13
+    PUSHBUTTON      "Stop",SCAN_CODE_125,291,3,14,13
+    PUSHBUTTON      "Attn",SCAN_CODE_126,309,3,14,13
+    PUSHBUTTON      "Ë",SCAN_CODE_1,3,26,14,13
+    PUSHBUTTON      "1",SCAN_CODE_2,21,26,14,13
+    PUSHBUTTON      "2",SCAN_CODE_3,39,26,14,13
+    PUSHBUTTON      "3",SCAN_CODE_4,56,26,14,13
+    PUSHBUTTON      "4",SCAN_CODE_5,74,26,14,13
+    PUSHBUTTON      "5",SCAN_CODE_6,92,26,14,13
+    PUSHBUTTON      "6",SCAN_CODE_7,110,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_8,128,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_9,145,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_10,163,26,14,13
+    PUSHBUTTON      "0",SCAN_CODE_11,180,26,14,13
+    PUSHBUTTON      "-",SCAN_CODE_12,197,26,14,13
+    PUSHBUTTON      "=",SCAN_CODE_13,214,26,14,13
+    PUSHBUTTON      "\\",SCAN_CODE_42,231,26,14,13
+    PUSHBUTTON      "<--",SCAN_CODE_15,248,26,14,13,BS_ICON
+    PUSHBUTTON      "Tab",SCAN_CODE_16,3,43,21,13,BS_ICON
+    PUSHBUTTON      "Й",SCAN_CODE_17,28,43,14,13
+    PUSHBUTTON      "Ц",SCAN_CODE_18,46,43,14,13
+    PUSHBUTTON      "У",SCAN_CODE_19,64,43,14,13
+    PUSHBUTTON      "К",SCAN_CODE_20,81,43,14,13
+    PUSHBUTTON      "E",SCAN_CODE_21,99,43,14,13
+    PUSHBUTTON      "Н",SCAN_CODE_22,117,43,14,13
+    PUSHBUTTON      "Г",SCAN_CODE_23,135,43,14,13
+    PUSHBUTTON      "Ш",SCAN_CODE_24,152,43,14,13
+    PUSHBUTTON      "Щ",SCAN_CODE_25,170,43,14,13
+    PUSHBUTTON      "З",SCAN_CODE_26,188,43,14,13
+    PUSHBUTTON      "X",SCAN_CODE_27,206,43,14,13
+    PUSHBUTTON      "Ъ",SCAN_CODE_28,224,43,14,13
+    PUSHBUTTON      "Caps lock",SCAN_CODE_30,3,60,28,13,BS_ICON
+    PUSHBUTTON      "Ф",SCAN_CODE_31,35,60,14,13
+    PUSHBUTTON      "Ы",SCAN_CODE_32,53,60,14,13
+    PUSHBUTTON      "В",SCAN_CODE_33,71,60,14,13
+    PUSHBUTTON      "A",SCAN_CODE_34,88,60,14,13
+    PUSHBUTTON      "П",SCAN_CODE_35,106,60,14,13
+    PUSHBUTTON      "P",SCAN_CODE_36,124,60,14,13
+    PUSHBUTTON      "O",SCAN_CODE_37,142,60,14,13
+    PUSHBUTTON      "Л",SCAN_CODE_38,160,60,14,13
+    PUSHBUTTON      "Д",SCAN_CODE_39,177,60,14,13
+    PUSHBUTTON      "Ж",SCAN_CODE_40,195,60,14,13
+    PUSHBUTTON      "Э",SCAN_CODE_41,213,60,14,13
+    PUSHBUTTON      "ret",SCAN_CODE_43,242,43,20,30,BS_ICON
+    PUSHBUTTON      "shift",SCAN_CODE_44,3,77,35,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "Я",SCAN_CODE_46,42,77,14,13
+    PUSHBUTTON      "Ч",SCAN_CODE_47,60,77,14,13
+    PUSHBUTTON      "C",SCAN_CODE_48,78,77,14,13
+    PUSHBUTTON      "M",SCAN_CODE_49,96,77,14,13
+    PUSHBUTTON      "И",SCAN_CODE_50,113,77,14,13
+    PUSHBUTTON      "T",SCAN_CODE_51,131,77,14,13
+    PUSHBUTTON      "b",SCAN_CODE_52,149,77,14,13
+    PUSHBUTTON      "Б",SCAN_CODE_53,167,77,14,13
+    PUSHBUTTON      "Ю",SCAN_CODE_54,184,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_55,202,77,14,13
+    PUSHBUTTON      "shift",SCAN_CODE_57,220,77,43,13,BS_ICON|BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ctrl",SCAN_CODE_58,3,94,25,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_127,32,94,18,13,BS_ICON
+    PUSHBUTTON      "alt",SCAN_CODE_60,53,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "",SCAN_CODE_61,74,94,100,13
+    PUSHBUTTON      "alt gr",SCAN_CODE_62,177,94,18,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ROS",SCAN_CODE_128,199,94,18,13,BS_ICON
+    PUSHBUTTON      "menu",SCAN_CODE_129,220,94,18,13,BS_ICON
+    PUSHBUTTON      "ctrl",SCAN_CODE_64,241,94,21,13,BS_PUSHLIKE|BS_AUTOCHECKBOX
+    PUSHBUTTON      "ins",SCAN_CODE_75,273,26,14,13
+    PUSHBUTTON      "del",SCAN_CODE_76,273,43,14,13
+    PUSHBUTTON      "home",SCAN_CODE_80,291,26,14,13,BS_ICON
+    PUSHBUTTON      "end",SCAN_CODE_81,291,43,14,13
+    PUSHBUTTON      "pg AR",SCAN_CODE_85,309,26,14,13,BS_ICON
+    PUSHBUTTON      "pg AV",SCAN_CODE_86,309,43,14,13,BS_ICON
+    PUSHBUTTON      "<-",SCAN_CODE_79,273,94,14,13,BS_ICON
+    PUSHBUTTON      "^",SCAN_CODE_83,291,77,14,13,BS_ICON
+    PUSHBUTTON      "v",SCAN_CODE_84,291,94,14,13,BS_ICON
+    PUSHBUTTON      "->",SCAN_CODE_89,309,94,14,13,BS_ICON
+    PUSHBUTTON      "num",SCAN_CODE_90,334,26,14,13
+    PUSHBUTTON      "7",SCAN_CODE_91,334,43,14,13
+    PUSHBUTTON      "4",SCAN_CODE_92,334,60,14,13
+    PUSHBUTTON      "1",SCAN_CODE_93,334,77,14,13
+    PUSHBUTTON      "/",SCAN_CODE_95,352,26,14,13
+    PUSHBUTTON      "8",SCAN_CODE_96,352,43,14,13
+    PUSHBUTTON      "5",SCAN_CODE_97,352,60,14,13
+    PUSHBUTTON      "2",SCAN_CODE_98,352,77,14,13
+    PUSHBUTTON      "0",SCAN_CODE_99,334,94,32,13
+    PUSHBUTTON      "*",SCAN_CODE_100,369,26,14,13
+    PUSHBUTTON      "9",SCAN_CODE_101,369,43,14,13
+    PUSHBUTTON      "6",SCAN_CODE_102,369,60,14,13
+    PUSHBUTTON      "3",SCAN_CODE_103,369,77,14,13
+    PUSHBUTTON      ".",SCAN_CODE_104,369,94,14,13
+    PUSHBUTTON      "-",SCAN_CODE_105,387,26,14,13
+    PUSHBUTTON      "+",SCAN_CODE_106,387,43,14,30
+    PUSHBUTTON      "ent",SCAN_CODE_108,387,77,14,30
+    CTEXT           "Num",IDC_STATIC,334,4,18,8
+    CONTROL         "",IDC_LED_NUM,"Static",SS_CENTER|SS_NOTIFY,341,16,4,3
+    CTEXT           "Caps",IDC_STATIC,359,4,18,8
+    CONTROL         "",IDC_LED_CAPS,"Static",SS_CENTER|SS_NOTIFY,366,16,4,3
+    CTEXT           "Scroll",IDC_STATIC,384,4,18,8
+    CONTROL         "",IDC_LED_SCROLL,"Static",SS_CENTER|SS_NOTIFY,391,16,4,3
+END
+
+/* EOF */
diff --git a/reactos/base/applications/osk/main.c b/reactos/base/applications/osk/main.c
new file mode 100644 (file)
index 0000000..8bcce23
--- /dev/null
@@ -0,0 +1,410 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/main.c
+ * PURPOSE:         On screen keyboard.
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+/* INCLUDES ******************************************************************/
+#include "osk.h"
+
+OSK_GLOBALS Globals;
+
+/* Functions */
+int OSK_SetImage(int IdDlgItem, int IdResource);
+int OSK_DlgInitDialog(HWND hDlg);
+int OSK_DlgClose(void);
+int OSK_DlgTimer(void);
+BOOL OSK_DlgCommand(WPARAM wCommand, HWND hWndControl);
+BOOL OSK_ReleaseKey(WORD ScanCode);
+
+INT_PTR APIENTRY OSK_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int);
+
+
+
+/***********************************************************************
+ *
+ *           OSK_SetImage
+ *
+ *  Set an image on a button
+ */
+int OSK_SetImage(int IdDlgItem, int IdResource)
+{
+  HICON hIcon;
+  HWND hWndItem;
+
+  hIcon = (HICON) LoadImage(Globals.hInstance, MAKEINTRESOURCE(IdResource),
+      IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
+  if (hIcon == NULL) return FALSE;
+
+  hWndItem = GetDlgItem(Globals.hMainWnd, IdDlgItem);
+  if (hWndItem == NULL) return FALSE;
+
+  SendMessage(hWndItem, BM_SETIMAGE, (WPARAM) IMAGE_ICON,  (LPARAM) hIcon );
+
+  /* The system automatically deletes these resources when the process that created them terminates (msdn) */
+
+  return TRUE;
+}
+
+
+/***********************************************************************
+ *
+ *           OSK_DlgInitDialog
+ *
+ *  Handling of WM_INITDIALOG
+ */
+int OSK_DlgInitDialog(HWND hDlg)
+{
+  HMONITOR  monitor;
+  MONITORINFO info;
+  POINT Pt;
+  RECT rcWindow;
+
+  /* Save handle */
+  Globals.hMainWnd = hDlg;
+
+  /* Get screen info */
+  memset(&Pt, 0, sizeof(Pt));
+  monitor = MonitorFromPoint(Pt, MONITOR_DEFAULTTOPRIMARY );
+  info.cbSize = sizeof(info);
+  GetMonitorInfoW(monitor, &info);
+
+  /* Move the dialog on the bottom of main screen */
+  GetWindowRect(hDlg, &rcWindow);
+  MoveWindow(
+      hDlg,
+      (info.rcMonitor.left + info.rcMonitor.right) / 2 -  // Center of screen
+      (rcWindow.right - rcWindow.left) / 2,  // - half size of dialog
+      info.rcMonitor.bottom -   // Bottom of screen
+      (rcWindow.bottom - rcWindow.top),  // - size of window
+      (rcWindow.right - rcWindow.left),  // Width
+      (rcWindow.bottom - rcWindow.top),  // Height
+      TRUE);
+
+  /* Set icon on visual buttons */
+  OSK_SetImage(SCAN_CODE_15, IDI_BACK);
+  OSK_SetImage(SCAN_CODE_16, IDI_TAB);
+  OSK_SetImage(SCAN_CODE_30, IDI_CAPS_LOCK);
+  OSK_SetImage(SCAN_CODE_43, IDI_RETURN);
+  OSK_SetImage(SCAN_CODE_44, IDI_SHIFT);
+  OSK_SetImage(SCAN_CODE_57, IDI_SHIFT);
+  OSK_SetImage(SCAN_CODE_127, IDI_REACTOS);
+  OSK_SetImage(SCAN_CODE_128, IDI_REACTOS);
+  OSK_SetImage(SCAN_CODE_129, IDI_MENU);
+  OSK_SetImage(SCAN_CODE_80, IDI_HOME);
+  OSK_SetImage(SCAN_CODE_85, IDI_PG_UP);
+  OSK_SetImage(SCAN_CODE_86, IDI_PG_DOWN);
+  OSK_SetImage(SCAN_CODE_79, IDI_LEFT);
+  OSK_SetImage(SCAN_CODE_83, IDI_TOP);
+  OSK_SetImage(SCAN_CODE_84, IDI_BOTTOM);
+  OSK_SetImage(SCAN_CODE_89, IDI_RIGHT);
+
+  /* Create a green brush for leds */
+  Globals.hBrushGreenLed = CreateSolidBrush(RGB(0, 255, 0));
+
+  /* Set a timer for periodics tasks */
+  Globals.iTimer = SetTimer(hDlg, 0, 200, NULL);
+
+  return TRUE;
+}
+
+/***********************************************************************
+ *
+ *           OSK_DlgClose
+ *
+ *  Handling of WM_CLOSE
+ */
+int OSK_DlgClose(void)
+{
+
+  KillTimer(Globals.hMainWnd, Globals.iTimer);
+
+  /* Release ctrl, shift, alt keys */
+  OSK_ReleaseKey(SCAN_CODE_44);   // Left shift
+  OSK_ReleaseKey(SCAN_CODE_57);   // Right shift
+  OSK_ReleaseKey(SCAN_CODE_58);   // Left ctrl
+  OSK_ReleaseKey(SCAN_CODE_60);   // Left alt
+  OSK_ReleaseKey(SCAN_CODE_62);   // Right alt
+  OSK_ReleaseKey(SCAN_CODE_64);   // Right ctrl
+
+  /* delete GDI objects */
+  if (Globals.hBrushGreenLed) DeleteObject(Globals.hBrushGreenLed);
+
+  return TRUE;
+}
+
+/***********************************************************************
+ *
+ *           OSK_DlgTimer
+ *
+ *  Handling of WM_TIMER
+ */
+int OSK_DlgTimer(void)
+{
+
+  /* FIXME: To be deleted when Reactos will support WS_EX_NOACTIVATE */
+  HWND hWndActiveWindow;
+
+  hWndActiveWindow = GetForegroundWindow();
+  if (hWndActiveWindow != NULL && hWndActiveWindow != Globals.hMainWnd)
+  {
+    Globals.hActiveWnd = hWndActiveWindow;
+  }
+  /*******************************************************************/
+
+  /* Always redraw leds because it can be changed by the real keyboard) */
+  InvalidateRect(GetDlgItem(Globals.hMainWnd, IDC_LED_NUM), NULL, TRUE);
+  InvalidateRect(GetDlgItem(Globals.hMainWnd, IDC_LED_CAPS), NULL, TRUE);
+  InvalidateRect(GetDlgItem(Globals.hMainWnd, IDC_LED_SCROLL), NULL, TRUE);
+
+  return TRUE;
+}
+
+/***********************************************************************
+ *
+ *           OSK_DlgCommand
+ *
+ *  All handling of dialog command
+ */
+BOOL OSK_DlgCommand(WPARAM wCommand, HWND hWndControl)
+{
+  WORD ScanCode;
+  INPUT Input;
+  BOOL bExtendedKey;
+  BOOL bKeyDown;
+  BOOL bKeyUp;
+  LONG WindowStyle;
+
+
+  /* FIXME: To be deleted when Reactos will support WS_EX_NOACTIVATE */
+  if (Globals.hActiveWnd)
+  {
+    MSG msg;
+
+    SetForegroundWindow(Globals.hActiveWnd);
+    while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
+    {
+      TranslateMessage(&msg);
+      DispatchMessage(&msg);
+    }
+  }
+  /*******************************************************************/
+
+  /* KeyDown and/or KeyUp ? */
+  WindowStyle = GetWindowLong(hWndControl, GWL_STYLE);
+  if ((WindowStyle & BS_AUTOCHECKBOX) == BS_AUTOCHECKBOX)
+  {
+    /* 2-states key like Shift, Alt, Ctrl, ... */
+    if (SendMessage(hWndControl, BM_GETCHECK, 0, 0) == BST_CHECKED)
+    {
+      bKeyDown = TRUE;
+      bKeyUp = FALSE;
+    }
+    else
+    {
+      bKeyDown = FALSE;
+      bKeyUp = TRUE;
+    }
+  }
+  else
+  {
+    /* Other key */
+    bKeyDown = TRUE;
+    bKeyUp = TRUE;
+  }
+
+  /* Extended key ? */
+  ScanCode = wCommand;
+  if (ScanCode & 0x0200) bExtendedKey = TRUE;
+  else bExtendedKey = FALSE;
+  ScanCode &= 0xFF;
+
+  /* Press and release the key */
+  if (bKeyDown)
+  {
+    Input.type = INPUT_KEYBOARD;
+    Input.ki.wVk = 0;
+    Input.ki.wScan = ScanCode;
+    Input.ki.time = GetTickCount();
+    Input.ki.dwExtraInfo = GetMessageExtraInfo();
+    Input.ki.dwFlags = KEYEVENTF_SCANCODE;
+    if (bExtendedKey) Input.ki.dwFlags |= KEYEVENTF_EXTENDEDKEY;
+    SendInput(1, &Input, sizeof(Input));
+  }
+
+  if (bKeyUp)
+  {
+    Input.type = INPUT_KEYBOARD;
+    Input.ki.wVk = 0;
+    Input.ki.wScan = ScanCode;
+    Input.ki.time = GetTickCount();
+    Input.ki.dwExtraInfo = GetMessageExtraInfo();
+    Input.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
+    if (bExtendedKey) Input.ki.dwFlags |= KEYEVENTF_EXTENDEDKEY;
+    SendInput(1, &Input, sizeof(Input));
+  }
+
+  return TRUE;
+}
+
+/***********************************************************************
+ *
+ *           OSK_ReleaseKey
+ *
+ *  Release the key of ID wCommand
+ */
+BOOL OSK_ReleaseKey(WORD ScanCode)
+{
+  INPUT Input;
+  BOOL bExtendedKey;
+  LONG WindowStyle;
+  HWND hWndControl;
+
+
+  /* Is it a 2-states key ? */
+  hWndControl = GetDlgItem(Globals.hMainWnd, ScanCode);
+  WindowStyle = GetWindowLong(hWndControl, GWL_STYLE);
+  if ((WindowStyle & BS_AUTOCHECKBOX) != BS_AUTOCHECKBOX) return FALSE;
+
+  /* Is the key down ? */
+  if (SendMessage(hWndControl, BM_GETCHECK, 0, 0) != BST_CHECKED) return TRUE;
+
+  /* Extended key ? */
+  if (ScanCode & 0x0200) bExtendedKey = TRUE;
+  else bExtendedKey = FALSE;
+  ScanCode &= 0xFF;
+
+  /* Release the key */
+  Input.type = INPUT_KEYBOARD;
+  Input.ki.wVk = 0;
+  Input.ki.wScan = ScanCode;
+  Input.ki.time = GetTickCount();
+  Input.ki.dwExtraInfo = GetMessageExtraInfo();
+  Input.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
+  if (bExtendedKey) Input.ki.dwFlags |= KEYEVENTF_EXTENDEDKEY;
+  SendInput(1, &Input, sizeof(Input));
+
+  return TRUE;
+}
+
+/***********************************************************************
+ *
+ *       OSK_DlgProc
+ */
+INT_PTR APIENTRY OSK_DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+  switch (msg)
+  {
+
+  case WM_INITDIALOG:
+    OSK_DlgInitDialog(hDlg);
+    return TRUE;
+
+  case WM_TIMER:
+    OSK_DlgTimer();
+    return TRUE;
+
+  case WM_CTLCOLORSTATIC:
+    if ((HWND) lParam == GetDlgItem(hDlg, IDC_LED_NUM))
+    {
+      if (GetKeyState(VK_NUMLOCK) & 0x0001)
+      {
+        return (INT_PTR) Globals.hBrushGreenLed;
+      }
+      else
+      {
+        return (INT_PTR) GetStockObject(BLACK_BRUSH);
+      }
+    }
+    if ((HWND) lParam == GetDlgItem(hDlg, IDC_LED_CAPS))
+    {
+      if (GetKeyState(VK_CAPITAL) & 0x0001)
+      {
+        return (INT_PTR) Globals.hBrushGreenLed;
+      }
+      else
+      {
+        return (INT_PTR) GetStockObject(BLACK_BRUSH);
+      }
+    }
+    if ((HWND) lParam == GetDlgItem(hDlg, IDC_LED_SCROLL))
+    {
+      if (GetKeyState(VK_SCROLL) & 0x0001)
+      {
+        return (INT_PTR) Globals.hBrushGreenLed;
+      }
+      else
+      {
+        return (INT_PTR) GetStockObject(BLACK_BRUSH);
+      }
+    }
+    break;
+
+  case WM_COMMAND:
+    if (wParam == IDCANCEL) EndDialog(hDlg, FALSE);
+    else if (wParam != IDC_STATIC) OSK_DlgCommand(wParam, (HWND) lParam);
+    break;
+
+  case WM_CLOSE:
+    OSK_DlgClose();
+    break;
+
+  }
+  return 0;
+}
+
+/***********************************************************************
+ *
+ *       WinMain
+ */
+int WINAPI _tWinMain(
+    HINSTANCE hInstance,
+    HINSTANCE prev,
+    LPTSTR cmdline,
+    int show)
+{
+  HANDLE     hMutex;
+
+  UNREFERENCED_PARAMETER(prev);
+  UNREFERENCED_PARAMETER(cmdline);
+  UNREFERENCED_PARAMETER(show);
+
+  ZeroMemory(&Globals, sizeof(Globals));
+  Globals.hInstance = hInstance;
+
+  /* try to open a mutex for a single instance */
+  hMutex = OpenMutexA(MUTEX_ALL_ACCESS, FALSE, "osk");
+
+  if (!hMutex)
+  {
+    /* Mutex doesn\92t exist. This is
+     * the first instance so create
+     * the mutex. */
+    hMutex = CreateMutexA(NULL, FALSE, "osk");
+
+    DialogBox(
+        hInstance,
+        MAKEINTRESOURCE(MAIN_DIALOG),
+        GetDesktopWindow(),
+        OSK_DlgProc);
+
+    /* delete the mutex */
+    if (hMutex) CloseHandle(hMutex);
+  }
+  else
+  {
+    /* Programme already launched */
+
+    /* delete the mutex */
+    CloseHandle(hMutex);
+
+    ExitProcess(0);
+  }
+
+  return 0;
+}
+
+/* EOF */
diff --git a/reactos/base/applications/osk/main.h b/reactos/base/applications/osk/main.h
new file mode 100644 (file)
index 0000000..3d63323
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef _OSKMAIN_H
+#define _OSKMAIN_H
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/main.h
+ * PURPOSE:         On screen keyboard.
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+/* INCLUDES ******************************************************************/
+#include "osk_res.h"
+
+/* STRUCTURES ****************************************************************/
+
+typedef struct
+{
+  HINSTANCE  hInstance;
+  HWND       hMainWnd;
+  HBRUSH     hBrushGreenLed;
+  UINT_PTR   iTimer;
+  /* FIXME: To be deleted when Reactos will support WS_EX_NOACTIVATE */
+  HWND       hActiveWnd;
+  /*******************************************************************/
+} OSK_GLOBALS;
+
+/* DEFINES *******************************************************************/
+
+extern OSK_GLOBALS Globals;
+
+#define countof(x) (sizeof(x) / sizeof((x)[0]))
+
+
+#endif
+/* EOF */
diff --git a/reactos/base/applications/osk/osk.h b/reactos/base/applications/osk/osk.h
new file mode 100644 (file)
index 0000000..70d4a55
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef _OSK_H
+#define _OSK_H
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/osk.h
+ * PURPOSE:         On screen keyboard.
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+#ifndef STRSAFE_NO_DEPRECATE
+#define STRSAFE_NO_DEPRECATE
+#endif
+
+/* INCLUDES ******************************************************************/
+#include <assert.h>
+#include <stdio.h>
+#include <windows.h>
+#include <commdlg.h>
+#include <commctrl.h>
+#include <tchar.h>
+#include <richedit.h>
+#include <malloc.h>
+#include <strsafe.h>
+
+#include "main.h"
+
+#endif
+/* EOF */
diff --git a/reactos/base/applications/osk/osk_res.h b/reactos/base/applications/osk/osk_res.h
new file mode 100644 (file)
index 0000000..c15eb2c
--- /dev/null
@@ -0,0 +1,146 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/osk_res.h
+ * PURPOSE:         On screen keyboard.
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+#define MAIN_DIALOG             2000
+
+#define IDC_LED_NUM             100
+#define IDC_LED_CAPS            101
+#define IDC_LED_SCROLL          102
+
+#define IDI_OSK                 200
+#define IDI_BACK                201
+#define IDI_TAB                 202
+#define IDI_CAPS_LOCK           203
+#define IDI_RETURN              204
+#define IDI_SHIFT               205
+#define IDI_REACTOS             206
+#define IDI_MENU                207
+#define IDI_HOME                208
+#define IDI_PG_UP               209
+#define IDI_PG_DOWN             210
+#define IDI_LEFT                211
+#define IDI_TOP                 212
+#define IDI_RIGHT               213
+#define IDI_BOTTOM              214
+
+#define IDC_STATIC              -1
+
+
+/* Scan codes by key number */
+/* + 0x0100 to avoid a conflict with IDCANCEL = 2 */
+/* + 0x0200 if extended key */
+
+#define SCAN_CODE_1     0x0129
+#define SCAN_CODE_2     0x0102
+#define SCAN_CODE_3     0x0103
+#define SCAN_CODE_4     0x0104
+#define SCAN_CODE_5     0x0105
+#define SCAN_CODE_6     0x0106
+#define SCAN_CODE_7     0x0107
+#define SCAN_CODE_8     0x0108
+#define SCAN_CODE_9     0x0109
+#define SCAN_CODE_10    0x010A
+#define SCAN_CODE_11    0x010B
+#define SCAN_CODE_12    0x010C
+#define SCAN_CODE_13    0x010D
+#define SCAN_CODE_15    0x010E
+#define SCAN_CODE_16    0x010F
+#define SCAN_CODE_17    0x0110
+#define SCAN_CODE_18    0x0111
+#define SCAN_CODE_19    0x0112
+#define SCAN_CODE_20    0x0113
+#define SCAN_CODE_21    0x0114
+#define SCAN_CODE_22    0x0115
+#define SCAN_CODE_23    0x0116
+#define SCAN_CODE_24    0x0117
+#define SCAN_CODE_25    0x0118
+#define SCAN_CODE_26    0x0119
+#define SCAN_CODE_27    0x011A
+#define SCAN_CODE_28    0x011B
+#define SCAN_CODE_29    0x012B
+#define SCAN_CODE_30    0x013A
+#define SCAN_CODE_31    0x011E
+#define SCAN_CODE_32    0x011F
+#define SCAN_CODE_33    0x0120
+#define SCAN_CODE_34    0x0121
+#define SCAN_CODE_35    0x0122
+#define SCAN_CODE_36    0x0123
+#define SCAN_CODE_37    0x0124
+#define SCAN_CODE_38    0x0125
+#define SCAN_CODE_39    0x0126
+#define SCAN_CODE_40    0x0127
+#define SCAN_CODE_41    0x0128
+#define SCAN_CODE_42    0x012B
+#define SCAN_CODE_43    0x011C
+#define SCAN_CODE_44    0x012A
+#define SCAN_CODE_45    0x0156
+#define SCAN_CODE_46    0x012C
+#define SCAN_CODE_47    0x012D
+#define SCAN_CODE_48    0x012E
+#define SCAN_CODE_49    0x012F
+#define SCAN_CODE_50    0x0130
+#define SCAN_CODE_51    0x0131
+#define SCAN_CODE_52    0x0132
+#define SCAN_CODE_53    0x0133
+#define SCAN_CODE_54    0x0134
+#define SCAN_CODE_55    0x0135
+#define SCAN_CODE_57    0x0136
+#define SCAN_CODE_58    0x011D
+#define SCAN_CODE_60    0x0138
+#define SCAN_CODE_61    0x0139
+#define SCAN_CODE_62    0x0338
+#define SCAN_CODE_64    0x031D
+#define SCAN_CODE_75    0x0352
+#define SCAN_CODE_76    0x0353
+#define SCAN_CODE_79    0x034B
+#define SCAN_CODE_80    0x0347
+#define SCAN_CODE_81    0x034F
+#define SCAN_CODE_83    0x0348
+#define SCAN_CODE_84    0x0350
+#define SCAN_CODE_85    0x0349
+#define SCAN_CODE_86    0x0351
+#define SCAN_CODE_89    0x034D
+#define SCAN_CODE_90    0x0145
+#define SCAN_CODE_91    0x0147
+#define SCAN_CODE_92    0x014B
+#define SCAN_CODE_93    0x014F
+#define SCAN_CODE_95    0x0335
+#define SCAN_CODE_96    0x0148
+#define SCAN_CODE_97    0x014C
+#define SCAN_CODE_98    0x0150
+#define SCAN_CODE_99    0x0152
+#define SCAN_CODE_100   0x0137
+#define SCAN_CODE_101   0x0149
+#define SCAN_CODE_102   0x014D
+#define SCAN_CODE_103   0x0151
+#define SCAN_CODE_104   0x0153
+#define SCAN_CODE_105   0x014A
+#define SCAN_CODE_106   0x014E
+#define SCAN_CODE_108   0x031C
+#define SCAN_CODE_110   0x0101
+#define SCAN_CODE_112   0x013B
+#define SCAN_CODE_113   0x013C
+#define SCAN_CODE_114   0x013D
+#define SCAN_CODE_115   0x013E
+#define SCAN_CODE_116   0x013F
+#define SCAN_CODE_117   0x0140
+#define SCAN_CODE_118   0x0141
+#define SCAN_CODE_119   0x0142
+#define SCAN_CODE_120   0x0143
+#define SCAN_CODE_121   0x0144
+#define SCAN_CODE_122   0x0157
+#define SCAN_CODE_123   0x0158
+#define SCAN_CODE_124   0x032A
+#define SCAN_CODE_125   0x0146
+#define SCAN_CODE_126   0x071D
+
+#define SCAN_CODE_127   0x035B  // Left ROS
+#define SCAN_CODE_128   0x035C  // Right ROS
+#define SCAN_CODE_129   0x035D  // Applications
+
+/* EOF */
diff --git a/reactos/base/applications/osk/res/back.ico b/reactos/base/applications/osk/res/back.ico
new file mode 100644 (file)
index 0000000..de989b7
Binary files /dev/null and b/reactos/base/applications/osk/res/back.ico differ
diff --git a/reactos/base/applications/osk/res/bottom.ico b/reactos/base/applications/osk/res/bottom.ico
new file mode 100644 (file)
index 0000000..749c578
Binary files /dev/null and b/reactos/base/applications/osk/res/bottom.ico differ
diff --git a/reactos/base/applications/osk/res/caps_lock.ico b/reactos/base/applications/osk/res/caps_lock.ico
new file mode 100644 (file)
index 0000000..844933d
Binary files /dev/null and b/reactos/base/applications/osk/res/caps_lock.ico differ
diff --git a/reactos/base/applications/osk/res/home.ico b/reactos/base/applications/osk/res/home.ico
new file mode 100644 (file)
index 0000000..d3661b1
Binary files /dev/null and b/reactos/base/applications/osk/res/home.ico differ
diff --git a/reactos/base/applications/osk/res/left.ico b/reactos/base/applications/osk/res/left.ico
new file mode 100644 (file)
index 0000000..14ce00c
Binary files /dev/null and b/reactos/base/applications/osk/res/left.ico differ
diff --git a/reactos/base/applications/osk/res/menu.ico b/reactos/base/applications/osk/res/menu.ico
new file mode 100644 (file)
index 0000000..81a4e41
Binary files /dev/null and b/reactos/base/applications/osk/res/menu.ico differ
diff --git a/reactos/base/applications/osk/res/osk.ico b/reactos/base/applications/osk/res/osk.ico
new file mode 100644 (file)
index 0000000..bfffd10
Binary files /dev/null and b/reactos/base/applications/osk/res/osk.ico differ
diff --git a/reactos/base/applications/osk/res/pg_down.ico b/reactos/base/applications/osk/res/pg_down.ico
new file mode 100644 (file)
index 0000000..bff5db7
Binary files /dev/null and b/reactos/base/applications/osk/res/pg_down.ico differ
diff --git a/reactos/base/applications/osk/res/pg_up.ico b/reactos/base/applications/osk/res/pg_up.ico
new file mode 100644 (file)
index 0000000..7704ad4
Binary files /dev/null and b/reactos/base/applications/osk/res/pg_up.ico differ
diff --git a/reactos/base/applications/osk/res/reactos.ico b/reactos/base/applications/osk/res/reactos.ico
new file mode 100644 (file)
index 0000000..8e62bf0
Binary files /dev/null and b/reactos/base/applications/osk/res/reactos.ico differ
diff --git a/reactos/base/applications/osk/res/return.ico b/reactos/base/applications/osk/res/return.ico
new file mode 100644 (file)
index 0000000..2f0fdf7
Binary files /dev/null and b/reactos/base/applications/osk/res/return.ico differ
diff --git a/reactos/base/applications/osk/res/right.ico b/reactos/base/applications/osk/res/right.ico
new file mode 100644 (file)
index 0000000..5e2a239
Binary files /dev/null and b/reactos/base/applications/osk/res/right.ico differ
diff --git a/reactos/base/applications/osk/res/shift.ico b/reactos/base/applications/osk/res/shift.ico
new file mode 100644 (file)
index 0000000..02b50f0
Binary files /dev/null and b/reactos/base/applications/osk/res/shift.ico differ
diff --git a/reactos/base/applications/osk/res/tab.ico b/reactos/base/applications/osk/res/tab.ico
new file mode 100644 (file)
index 0000000..41854da
Binary files /dev/null and b/reactos/base/applications/osk/res/tab.ico differ
diff --git a/reactos/base/applications/osk/res/top.ico b/reactos/base/applications/osk/res/top.ico
new file mode 100644 (file)
index 0000000..20725d9
Binary files /dev/null and b/reactos/base/applications/osk/res/top.ico differ
diff --git a/reactos/base/applications/osk/rsrc.rc b/reactos/base/applications/osk/rsrc.rc
new file mode 100644 (file)
index 0000000..14daffc
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * PROJECT:         ReactOS Kernel
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            base/applications/osk/rsrc.rc
+ * PURPOSE:         On Screen Keyboard
+ * PROGRAMMERS:     Denis ROBERT
+ */
+
+/* INCLUDES ******************************************************************/
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "main.h"
+#include "winnls.h"
+#include "commctrl.h"
+#include "osk_res.h"
+
+#define REACTOS_STR_FILE_DESCRIPTION  "ReactOS On Screen Keyboard"
+#define REACTOS_STR_INTERNAL_NAME     "osk"
+#define REACTOS_STR_ORIGINAL_FILENAME "osk.exe"
+
+#include <reactos/version.rc>
+
+IDI_OSK       ICON "res/osk.ico"
+
+
+IDI_BACK      ICON "res/back.ico"
+IDI_TAB       ICON "res/tab.ico"
+IDI_CAPS_LOCK ICON "res/caps_lock.ico"
+IDI_RETURN    ICON "res/return.ico"
+IDI_SHIFT     ICON "res/shift.ico"
+IDI_REACTOS   ICON "res/reactos.ico"
+IDI_MENU      ICON "res/menu.ico"
+IDI_HOME      ICON "res/home.ico"
+IDI_PG_UP     ICON "res/pg_up.ico"
+IDI_PG_DOWN   ICON "res/pg_down.ico"
+IDI_LEFT      ICON "res/left.ico"
+IDI_TOP       ICON "res/top.ico"
+IDI_RIGHT     ICON "res/right.ico"
+IDI_BOTTOM    ICON "res/bottom.ico"
+
+
+// UTF-8
+#pragma code_page(65001)
+#ifdef LANGUAGE_AR_DZ
+    #include "lang/ar-DZ.rc"
+#endif
+#ifdef LANGUAGE_EN_US
+    #include "lang/en-US.rc"
+#endif
+#ifdef LANGUAGE_EN_GB
+    #include "lang/en-GB.rc"
+#endif
+#ifdef LANGUAGE_ES_ES
+    #include "lang/es-ES.rc"
+#endif
+#ifdef LANGUAGE_FR_CA
+    #include "lang/fr-CA.rc"
+#endif
+#ifdef LANGUAGE_FR_FR
+    #include "lang/fr-FR.rc"
+#endif
+#ifdef LANGUAGE_IT_IT
+    #include "lang/it-IT.rc"
+#endif
+#ifdef LANGUAGE_PL_PL
+    #include "lang/pl-PL.rc"
+#endif
+#ifdef LANGUAGE_RU_RU
+    #include "lang/ru-RU.rc"
+#endif
+
+/* EOF */