- Add On Screen Keyboard to base applications. See CORE-7279 #resolved.

svn path=/trunk/; revision=65568
This commit is contained in:
James Tabor 2014-12-05 21:43:00 +00:00
parent 63a134ffc1
commit e86551f057
31 changed files with 1862 additions and 1 deletions

View 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)

View file

@ -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)

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 doesnt 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 */

View file

@ -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 */

View file

@ -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 */

View file

@ -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 */

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

View file

@ -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 */