pxt-common-packages
Version:
Microsoft MakeCode (PXT) common packages
312 lines (300 loc) • 7.87 kB
text/typescript
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()
}
}