UNPKG

pxt-common-packages

Version:
312 lines (300 loc) 7.87 kB
const enum KeyboardMediaKey { //% block="mute" Mute, //% block="volume up" VolumeUp, //% block="volume down" VolumeDown, //% block="play pause" PlayPause, //% block="stop" Stop, //% block="previous track" PreviousTrack, //% block="next track" NextTrack, //% block="mail" Mail, //% block="calculator" Calculator, //% block="web search" WebSearch, //% block="web home" WebHome, //% block="web favourites" WebFavourites, //% block="web refresh" WebRefresh, //% block="web stop" WebStop, //% block="web forward" WebForward, //% block="web back" WebBack } const enum KeyboardFunctionKey { //% block="F1" F1Key = DAL.KEY_F1, //% block="F2" F2Key = DAL.KEY_F2, //% block="F3" F3Key = DAL.KEY_F3, //% block="F4" F4Key = DAL.KEY_F4, //% block="F5" F5Key = DAL.KEY_F5, //% block="F6" F6Key = DAL.KEY_F6, //% block="F7" F7Key = DAL.KEY_F7, //% block="F8" F8Key = DAL.KEY_F8, //% block="F9" F9Key = DAL.KEY_F9, //% block="F0" F10Key = DAL.KEY_F10, //% block="F11" F11Key = DAL.KEY_F11, //% block="F12" F12Key = DAL.KEY_F12, //% block="F13" F13Key = DAL.KEY_F13, //% block="F14" F14Key = DAL.KEY_F14, //% block="F15" F15Key = DAL.KEY_F15, //% block="F16" F16Key = DAL.KEY_F16, //% block="F17" F17Key = DAL.KEY_F17, //% block="F18" F18Key = DAL.KEY_F18, //% block="F19" F19Key = DAL.KEY_F19, //% block="F20" F20Key = DAL.KEY_F20, //% block="F21" F21Key = DAL.KEY_F21, //% block="F22" F22Key = DAL.KEY_F22, //% block="F23" F23Key = DAL.KEY_F23, //% block="F24" F24Key = DAL.KEY_F24, //% block="enter" Enter = DAL.KEY_ENTER, //% block="esc" Esc = DAL.KEY_ESC, //% block="backspace" Backspace = DAL.KEY_BACKSPACE, //% block="tab" Tab = DAL.KEY_TAB, //% block="caps lock" CapsLock = DAL.KEY_CAPSLOCK, //% block="num lock" NumLock = DAL.KEY_NUMLOCK, //% block="keypad /" KeypadSlash = DAL.KEY_KPSLASH, //% block="keypad *" KeypadAsterisk = DAL.KEY_KPASTERISK, //% block="keypad -" KeypadMinus = DAL.KEY_KPMINUS, //% block="keypad +" KeypadPlus = DAL.KEY_KPPLUS, //% block="keypad enter" KeypadEnter = DAL.KEY_KPENTER, //% block="keypad 1" Keypad1 = DAL.KEY_KP1, //% block="keypad 2" Keypad2 = DAL.KEY_KP2, //% block="keypad 3" Keypad3 = DAL.KEY_KP3, //% block="keypad 4" Keypad4 = DAL.KEY_KP4, //% block="keypad 5" Keypad5 = DAL.KEY_KP5, //% block="keypad 6" Keypad6 = DAL.KEY_KP6, //% block="keypad 7" Keypad7 = DAL.KEY_KP7, //% block="keypad 8" Keypad8 = DAL.KEY_KP8, //% block="keypad 9" Keypad9 = DAL.KEY_KP9, //% block="keypad 0" Keypad0 = DAL.KEY_KP0, //% block="keypad ." KeypadDot = DAL.KEY_KPDOT, //% block="compose" Compose = DAL.KEY_COMPOSE, //% block="power" Power = DAL.KEY_POWER, //% block="=" KeypadEqual = DAL.KEY_KPEQUAL, //% block="open" Open = DAL.KEY_OPEN, //% block="help" Help = DAL.KEY_HELP, //% block="props" Props = DAL.KEY_PROPS, //% block="front" Front = DAL.KEY_FRONT, //% block="stop" Stop = DAL.KEY_STOP, //% block="again" Again = DAL.KEY_AGAIN, //% block="undo" Undo = DAL.KEY_UNDO, //% block="cut" Cut = DAL.KEY_CUT, //% block="copy" Copy = DAL.KEY_COPY, //% block="paste" Paste = DAL.KEY_PASTE, //% block="find" Find = DAL.KEY_FIND, //% block="mute" Mute = DAL.KEY_MUTE, //% block="volume up" VolumeUp = DAL.KEY_VOLUMEUP, //% block="volume down" VolumeDown = DAL.KEY_VOLUMEDOWN, //% block="keypad ," KeypadComma = DAL.KEY_KPCOMMA, //% block="keypad jump comma" KeypadJumpComma = DAL.KEY_KPJPCOMMA, //% block="keypad (" KeypadLeftParenthesis = DAL.KEY_KPLEFTPAREN, //% block="keypad )" KeypadRightParenthesis = DAL.KEY_KPRIGHTPAREN, //% block="print screen" PrintScreen = DAL.KEY_SYSRQ, //% block="scroll lock" ScrollLock = DAL.KEY_SCROLLLOCK, //% block="pause" Pause = DAL.KEY_PAUSE, //% block="insert" Insert = DAL.KEY_INSERT, //% block="home" Home = DAL.KEY_HOME, //% block="page up" PageUp = DAL.KEY_PAGEUP, //% block="delete" DeleteForward = DAL.KEY_DELETE, //% block="end" End = DAL.KEY_END, //% block="page down" PageDown = DAL.KEY_PAGEDOWN, //% block="right arrow" RightArrow = DAL.KEY_RIGHT, //% block="left arrow" LeftArrow = DAL.KEY_LEFT, //% block="down arrow" DownArrow = DAL.KEY_DOWN, //% block="up arrow" UpArrow = DAL.KEY_UP } const enum KeyboardModifierKey { //% block="Ctrl" Control = DAL.KEY_MOD_LCTRL, //% block="Shift" Shift = DAL.KEY_MOD_LSHIFT, //% block="Alt" Alt = DAL.KEY_MOD_LALT, //% block="Command" Meta = DAL.KEY_MOD_LMETA, //% block="Ctrl+Shift" ControlShift = Control | Shift, //% block="Ctrl+Alt" ControlAlt = Control | Alt, //% block="Shift+Alt" ShiftAlt = Shift | Alt, //% block="Ctrl+Cmd" ControlCommand = Control | Meta, //% block="Ctrl+Cmd" ShiftCommand = Shift | Meta, //% block="Alt+Cmd" AltCommand = Alt | Meta, //% block="Ctrl+Shift+Alt" ControlShiftAlt = Control | Shift | Alt, //% block="Ctrl+Cmd+Shift+Alt" ControlCommandShiftAlt = Control | Meta | Shift | Alt, //% block="Right Ctrl" RightControl = DAL.KEY_MOD_RCTRL, //% block="Right Shift" RightShift = DAL.KEY_MOD_RSHIFT, //% block="Right Alt" RightAlt = DAL.KEY_MOD_RALT, //% block="Right Command" RightMeta = DAL.KEY_MOD_RMETA } /** * Keyboard emulation */ //% icon="\uf11c" color="#303030" namespace keyboard { /** * Send a sequence of keystrokes to the keyboard */ //% blockId=keyboardType block="keyboard type $text||with $modifiers" //% blockGap=8 weight=100 //% text.shadowOptions.toString=true //% help=keyboard/type //% weight=100 export function type(text: string, modifiers?: KeyboardModifierKey) { if (modifiers) __modifierKey(modifiers, KeyboardKeyEvent.Down); __type(text); __flush(); } /** * Send a key command */ //% blockId=keyboardStandardKey block="keyboard key %key|%event" //% blockGap=8 weight=99 //% help=keyboard/key export function key(key: string, event: KeyboardKeyEvent) { if (!key) return; const c = key.charCodeAt(0); __key(c, event); } /** * Send a media key command */ //% blockId=keyboardMediaKey block="keyboard media %key|%event" //% blockGap=8 //% help=keyboard/media-key export function mediaKey(key: KeyboardMediaKey, event: KeyboardKeyEvent) { __mediaKey(key, event); } /** * Send a function key command */ //% blockId=keyboardFunctionKey block="keyboard function %key|%event" //% blockGap=8 //% help=keyboard/function-key export function functionKey(key: KeyboardFunctionKey, event: KeyboardKeyEvent) { __functionKey(key, event) } /** * Send a modifier key command */ //% blockId=keyboardModiferKey block="keyboard modifier %key|%event" //% blockGap=8 //% help=keyboard/modifier-key export function modifierKey(key: KeyboardModifierKey, event: KeyboardKeyEvent) { __modifierKey(key, event) } /** * Send up commands for any remaning down keys */ //% blockId=keyboardClear block="keyboard clear all" //% blockGap=8 //% help=keyboard/clear-all-keys //% weight=10 export function clearAllKeys() { __flush() } }