Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ButtonState ¶
type ButtonState uint32
ButtonState holds the state of the mouse buttons (see https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str).
const ( FROM_LEFT_1ST_BUTTON_PRESSED ButtonState = 0x0001 RIGHTMOST_BUTTON_PRESSED ButtonState = 0x0002 FROM_LEFT_2ND_BUTTON_PRESSED ButtonState = 0x0004 FROM_LEFT_3RD_BUTTON_PRESSED ButtonState = 0x0008 FROM_LEFT_4TH_BUTTON_PRESSED ButtonState = 0x0010 )
Valid values for ButtonState.
func (ButtonState) Contains ¶
func (bs ButtonState) Contains(state ButtonState) bool
func (ButtonState) IsReleased ¶
func (bs ButtonState) IsReleased() bool
func (ButtonState) String ¶
func (bs ButtonState) String() string
String ensures that ButtonState satisfies the fmt.Stringer interface.
type ControlKeyState ¶
type ControlKeyState uint32
ControlKeyState holds the state of the control keys for key and mouse events (see https://docs.microsoft.com/en-us/windows/console/key-event-record-str and https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str).
const ( CAPSLOCK_ON ControlKeyState = 0x0080 ENHANCED_KEY ControlKeyState = 0x0100 LEFT_ALT_PRESSED ControlKeyState = 0x0002 LEFT_CTRL_PRESSED ControlKeyState = 0x0008 NUMLOCK_ON ControlKeyState = 0x0020 RIGHT_ALT_PRESSED ControlKeyState = 0x0001 RIGHT_CTRL_PRESSED ControlKeyState = 0x0004 SCROLLLOCK_ON ControlKeyState = 0x0040 SHIFT_PRESSED ControlKeyState = 0x0010 NO_CONTROL_KEY ControlKeyState = 0x0000 )
Valid values for ControlKeyState.
func (ControlKeyState) Contains ¶
func (cks ControlKeyState) Contains(state ControlKeyState) bool
func (ControlKeyState) String ¶
func (cks ControlKeyState) String() string
String ensures that ControlKeyState satisfies the fmt.Stringer interface.
type Coord ¶
type Coord struct { // X is the horizontal coordinate or column value. The units depend on the function call. X uint16 // Y is the vertical coordinate or row value. The units depend on the function call. Y uint16 }
Coord represent the COORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/coord-str).
type EventFlags ¶
type EventFlags uint32
EventFlags specifies the type of a mouse event (see https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str).
const ( CLICK EventFlags = 0x0000 MOUSE_MOVED EventFlags = 0x0001 DOUBLE_CLICK EventFlags = 0x0002 MOUSE_WHEELED EventFlags = 0x0004 MOUSE_HWHEELED EventFlags = 0x0008 )
Valid values for EventFlags.
func (EventFlags) Contains ¶
func (ef EventFlags) Contains(flag EventFlags) bool
func (EventFlags) String ¶
func (ef EventFlags) String() string
String ensures that EventFlags satisfies the fmt.Stringer interface.
type EventRecord ¶
EventRecord represents one of the following event types: TypeFocusEventRecord, TypeKeyEventRecord, TypeMouseEventRecord, TypeWindowBufferSizeEvent, TypeMenuEventRecord and UnknownEvent.
type EventType ¶
type EventType uint16
EventType denots the type of an event
const FocusEventType EventType = 0x0010
FocusEventType is the event type for a FocusEventRecord (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
const KeyEventType EventType = 0x0001
KeyEventType is the event type for a KeyEventRecord (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
const MenuEventType EventType = 0x0008
MenuEventType is the event type for a MenuEventRecord (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
const MouseEventType EventType = 0x0002
MouseEventType is the event type for a MouseEventRecord (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
const WindowBufferSizeEventType EventType = 0x0004
WindowBufferSizeEventType is the event type for a WindowBufferSizeEventRecord (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
type EventUnion ¶
type EventUnion [maxEventSize]byte
EventUnion is the union data type that contains the data for any event.
type FocusEventRecord ¶
type FocusEventRecord struct { // SetFocus is reserved and should not be used. SetFocus bool }
FocusEventRecord represent the FOCUS_EVENT_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/focus-event-record-str). These events are used internally by the Windows console API and should be ignored.
func (FocusEventRecord) String ¶
func (e FocusEventRecord) String() string
String ensures that FocusEventRecord satisfies EventRecord and fmt.Stringer interfaces.
func (FocusEventRecord) Type ¶
func (e FocusEventRecord) Type() string
Type ensures that FocusEventRecord satisfies EventRecord interface.
type InputRecord ¶
type InputRecord struct { // EventType specifies the type of event that helt in Event. EventType EventType // Event holds the actual event data. Use Unrap to access it as its // respective event type. Event EventUnion // contains filtered or unexported fields }
InputRecord corresponds to the INPUT_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/input-record-str).
func (InputRecord) String ¶
func (ir InputRecord) String() string
String implements fmt.Stringer for InputRecord.
func (InputRecord) Unwrap ¶
func (ir InputRecord) Unwrap() EventRecord
Unwrap parses the event data into an EventRecord of the respective event type. The data in the returned EventRecord does not contain any references to the passed InputRecord.
type KeyEventRecord ¶
type KeyEventRecord struct { // KeyDown specified whether the key is pressed or released. KeyDown bool // RepeatCount indicates that a key is being held down. For example, when a // key is held down, five events with RepeatCount equal to 1 may be // generated, one event with RepeatCount equal to 5, or multiple events // with RepeatCount greater than or equal to 1. RepeatCount uint16 // VirtualKeyCode identifies the given key in a device-independent manner // (see // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes). VirtualKeyCode VirtualKeyCode // VirtualScanCode represents the device-dependent value generated by the // keyboard hardware. VirtualScanCode VirtualKeyCode // Char is the character that corresponds to the pressed key. Char can be // zero for some keys. Char rune //ControlKeyState holds the state of the control keys. ControlKeyState ControlKeyState }
KeyEventRecord represent the KEY_EVENT_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/key-event-record-str).
func (KeyEventRecord) String ¶
func (e KeyEventRecord) String() string
String ensures that KeyEventRecord satisfies EventRecord and fmt.Stringer interfaces.
func (KeyEventRecord) Type ¶
func (e KeyEventRecord) Type() string
Type ensures that KeyEventRecord satisfies EventRecord interface.
type MenuEventRecord ¶
type MenuEventRecord struct {
CommandID uint32
}
MenuEventRecord represent the MENU_EVENT_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/menu-event-record-str). These events are deprecated by the Windows console API and should be ignored.
func (MenuEventRecord) String ¶
func (e MenuEventRecord) String() string
String ensures that MenuEventRecord satisfies EventRecord and fmt.Stringer interfaces.
func (MenuEventRecord) Type ¶
func (e MenuEventRecord) Type() string
Type ensures that MenuEventRecord satisfies EventRecord interface.
type MouseEventRecord ¶
type MouseEventRecord struct { // MousePosition contains the location of the cursor, in terms of the // console screen buffer's character-cell coordinates. MousePositon Coord // ButtonState holds the status of the mouse buttons. ButtonState ButtonState // ControlKeyState holds the state of the control keys. ControlKeyState ControlKeyState // EventFlags specify tge type of mouse event. EventFlags EventFlags // WheelDirection specified the direction in which the mouse wheel is // spinning when EventFlags contains MOUSE_HWHEELED or MOUSE_WHEELED. When // the event flags specify MOUSE_WHEELED it is 1 if the wheel rotated // forward (away from the user) or -1 when it rotates backwards. When // MOUSE_HWHEELED is specified it is 1 when the wheel rotates right and -1 // when it rotates left. When the EventFlags do not indicate a mouse wheel // event it is 0. WheelDirection int }
MouseEventRecord represent the MOUSE_EVENT_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str).
func (MouseEventRecord) String ¶
func (e MouseEventRecord) String() string
String ensures that MouseEventRecord satisfies EventRecord and fmt.Stringer interfaces.
func (MouseEventRecord) Type ¶
func (e MouseEventRecord) Type() string
Type ensures that MouseEventRecord satisfies EventRecord interface.
func (MouseEventRecord) WheelDirectionName ¶
func (e MouseEventRecord) WheelDirectionName() string
type UnknownEvent ¶
type UnknownEvent struct {
InputRecord
}
UnknownEvent is generated when the event type does not match one of the following types: TypeFocusEventRecord, TypeKeyEventRecord, TypeMouseEventRecord, TypeWindowBufferSizeEvent, TypeMenuEventRecord and UnknownEvent.
func (UnknownEvent) String ¶
func (e UnknownEvent) String() string
String ensures that UnknownEvent satisfies EventRecord and fmt.Stringer interfaces.
func (UnknownEvent) Type ¶
func (e UnknownEvent) Type() string
Type ensures that UnknownEvent satisfies EventRecord interface.
type VirtualKeyCode ¶
type VirtualKeyCode uint16
VirtualKeyCode holds a virtual key code (see https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes).
const ( VK_LBUTTON VirtualKeyCode = 0x01 VK_RBUTTON VirtualKeyCode = 0x02 VK_CANCEL VirtualKeyCode = 0x03 VK_MBUTTON VirtualKeyCode = 0x04 VK_XBUTTON1 VirtualKeyCode = 0x05 VK_XBUTTON2 VirtualKeyCode = 0x06 VK_BACK VirtualKeyCode = 0x08 VK_TAB VirtualKeyCode = 0x09 VK_CLEAR VirtualKeyCode = 0x0C VK_RETURN VirtualKeyCode = 0x0D VK_SHIFT VirtualKeyCode = 0x10 VK_CONTROL VirtualKeyCode = 0x11 VK_MENU VirtualKeyCode = 0x12 VK_PAUSE VirtualKeyCode = 0x13 VK_CAPITAL VirtualKeyCode = 0x14 VK_KANA VirtualKeyCode = 0x15 VK_HANGEUL VirtualKeyCode = 0x15 VK_HANGUL VirtualKeyCode = 0x15 VK_IME_ON VirtualKeyCode = 0x16 VK_JUNJA VirtualKeyCode = 0x17 VK_FINAL VirtualKeyCode = 0x18 VK_HANJA VirtualKeyCode = 0x19 VK_KANJI VirtualKeyCode = 0x19 VK_IME_OFF VirtualKeyCode = 0x1A VK_ESCAPE VirtualKeyCode = 0x1B VK_CONVERT VirtualKeyCode = 0x1C VK_NONCONVERT VirtualKeyCode = 0x1D VK_ACCEPT VirtualKeyCode = 0x1E VK_MODECHANGE VirtualKeyCode = 0x1F VK_SPACE VirtualKeyCode = 0x20 VK_PRIOR VirtualKeyCode = 0x21 VK_NEXT VirtualKeyCode = 0x22 VK_END VirtualKeyCode = 0x23 VK_HOME VirtualKeyCode = 0x24 VK_LEFT VirtualKeyCode = 0x25 VK_UP VirtualKeyCode = 0x26 VK_RIGHT VirtualKeyCode = 0x27 VK_DOWN VirtualKeyCode = 0x28 VK_SELECT VirtualKeyCode = 0x29 VK_PRINT VirtualKeyCode = 0x2A VK_EXECUTE VirtualKeyCode = 0x2B VK_SNAPSHOT VirtualKeyCode = 0x2C VK_INSERT VirtualKeyCode = 0x2D VK_DELETE VirtualKeyCode = 0x2E VK_HELP VirtualKeyCode = 0x2F VK_0 VirtualKeyCode = 0x30 VK_1 VirtualKeyCode = 0x31 VK_2 VirtualKeyCode = 0x32 VK_3 VirtualKeyCode = 0x33 VK_4 VirtualKeyCode = 0x34 VK_5 VirtualKeyCode = 0x35 VK_6 VirtualKeyCode = 0x36 VK_7 VirtualKeyCode = 0x37 VK_8 VirtualKeyCode = 0x38 VK_9 VirtualKeyCode = 0x39 VK_A VirtualKeyCode = 0x41 VK_B VirtualKeyCode = 0x42 VK_C VirtualKeyCode = 0x43 VK_D VirtualKeyCode = 0x44 VK_E VirtualKeyCode = 0x45 VK_F VirtualKeyCode = 0x46 VK_G VirtualKeyCode = 0x47 VK_H VirtualKeyCode = 0x48 VK_I VirtualKeyCode = 0x49 VK_J VirtualKeyCode = 0x4A VK_K VirtualKeyCode = 0x4B VK_L VirtualKeyCode = 0x4C VK_M VirtualKeyCode = 0x4D VK_N VirtualKeyCode = 0x4E VK_O VirtualKeyCode = 0x4F VK_P VirtualKeyCode = 0x50 VK_Q VirtualKeyCode = 0x51 VK_R VirtualKeyCode = 0x52 VK_S VirtualKeyCode = 0x53 VK_T VirtualKeyCode = 0x54 VK_U VirtualKeyCode = 0x55 VK_V VirtualKeyCode = 0x56 VK_W VirtualKeyCode = 0x57 VK_X VirtualKeyCode = 0x58 VK_Y VirtualKeyCode = 0x59 VK_Z VirtualKeyCode = 0x5A VK_LWIN VirtualKeyCode = 0x5B VK_RWIN VirtualKeyCode = 0x5C VK_APPS VirtualKeyCode = 0x5D VK_SLEEP VirtualKeyCode = 0x5F VK_NUMPAD0 VirtualKeyCode = 0x60 VK_NUMPAD1 VirtualKeyCode = 0x61 VK_NUMPAD2 VirtualKeyCode = 0x62 VK_NUMPAD3 VirtualKeyCode = 0x63 VK_NUMPAD4 VirtualKeyCode = 0x64 VK_NUMPAD5 VirtualKeyCode = 0x65 VK_NUMPAD6 VirtualKeyCode = 0x66 VK_NUMPAD7 VirtualKeyCode = 0x67 VK_NUMPAD8 VirtualKeyCode = 0x68 VK_NUMPAD9 VirtualKeyCode = 0x69 VK_MULTIPLY VirtualKeyCode = 0x6A VK_ADD VirtualKeyCode = 0x6B VK_SEPARATOR VirtualKeyCode = 0x6C VK_SUBTRACT VirtualKeyCode = 0x6D VK_DECIMAL VirtualKeyCode = 0x6E VK_DIVIDE VirtualKeyCode = 0x6F VK_F1 VirtualKeyCode = 0x70 VK_F2 VirtualKeyCode = 0x71 VK_F3 VirtualKeyCode = 0x72 VK_F4 VirtualKeyCode = 0x73 VK_F5 VirtualKeyCode = 0x74 VK_F6 VirtualKeyCode = 0x75 VK_F7 VirtualKeyCode = 0x76 VK_F8 VirtualKeyCode = 0x77 VK_F9 VirtualKeyCode = 0x78 VK_F10 VirtualKeyCode = 0x79 VK_F11 VirtualKeyCode = 0x7A VK_F12 VirtualKeyCode = 0x7B VK_F13 VirtualKeyCode = 0x7C VK_F14 VirtualKeyCode = 0x7D VK_F15 VirtualKeyCode = 0x7E VK_F16 VirtualKeyCode = 0x7F VK_F17 VirtualKeyCode = 0x80 VK_F18 VirtualKeyCode = 0x81 VK_F19 VirtualKeyCode = 0x82 VK_F20 VirtualKeyCode = 0x83 VK_F21 VirtualKeyCode = 0x84 VK_F22 VirtualKeyCode = 0x85 VK_F23 VirtualKeyCode = 0x86 VK_F24 VirtualKeyCode = 0x87 VK_NUMLOCK VirtualKeyCode = 0x90 VK_SCROLL VirtualKeyCode = 0x91 VK_OEM_NEC_EQUAL VirtualKeyCode = 0x92 VK_OEM_FJ_JISHO VirtualKeyCode = 0x92 VK_OEM_FJ_MASSHOU VirtualKeyCode = 0x93 VK_OEM_FJ_TOUROKU VirtualKeyCode = 0x94 VK_OEM_FJ_LOYA VirtualKeyCode = 0x95 VK_OEM_FJ_ROYA VirtualKeyCode = 0x96 VK_LSHIFT VirtualKeyCode = 0xA0 VK_RSHIFT VirtualKeyCode = 0xA1 VK_LCONTROL VirtualKeyCode = 0xA2 VK_RCONTROL VirtualKeyCode = 0xA3 VK_LMENU VirtualKeyCode = 0xA4 VK_RMENU VirtualKeyCode = 0xA5 VK_BROWSER_BACK VirtualKeyCode = 0xA6 VK_BROWSER_FORWARD VirtualKeyCode = 0xA7 VK_BROWSER_REFRESH VirtualKeyCode = 0xA8 VK_BROWSER_STOP VirtualKeyCode = 0xA9 VK_BROWSER_SEARCH VirtualKeyCode = 0xAA VK_BROWSER_FAVORITES VirtualKeyCode = 0xAB VK_BROWSER_HOME VirtualKeyCode = 0xAC VK_VOLUME_MUTE VirtualKeyCode = 0xAD VK_VOLUME_DOWN VirtualKeyCode = 0xAE VK_VOLUME_UP VirtualKeyCode = 0xAF VK_MEDIA_NEXT_TRACK VirtualKeyCode = 0xB0 VK_MEDIA_PREV_TRACK VirtualKeyCode = 0xB1 VK_MEDIA_STOP VirtualKeyCode = 0xB2 VK_MEDIA_PLAY_PAUSE VirtualKeyCode = 0xB3 VK_LAUNCH_MAIL VirtualKeyCode = 0xB4 VK_LAUNCH_MEDIA_SELECT VirtualKeyCode = 0xB5 VK_LAUNCH_APP1 VirtualKeyCode = 0xB6 VK_LAUNCH_APP2 VirtualKeyCode = 0xB7 VK_OEM_1 VirtualKeyCode = 0xBA VK_OEM_PLUS VirtualKeyCode = 0xBB VK_OEM_COMMA VirtualKeyCode = 0xBC VK_OEM_MINUS VirtualKeyCode = 0xBD VK_OEM_PERIOD VirtualKeyCode = 0xBE VK_OEM_2 VirtualKeyCode = 0xBF VK_OEM_3 VirtualKeyCode = 0xC0 VK_OEM_4 VirtualKeyCode = 0xDB VK_OEM_5 VirtualKeyCode = 0xDC VK_OEM_6 VirtualKeyCode = 0xDD VK_OEM_7 VirtualKeyCode = 0xDE VK_OEM_8 VirtualKeyCode = 0xDF VK_OEM_AX VirtualKeyCode = 0xE1 VK_OEM_102 VirtualKeyCode = 0xE2 VK_ICO_HELP VirtualKeyCode = 0xE3 VK_ICO_00 VirtualKeyCode = 0xE4 VK_PROCESSKEY VirtualKeyCode = 0xE5 VK_ICO_CLEAR VirtualKeyCode = 0xE6 VK_OEM_RESET VirtualKeyCode = 0xE9 VK_OEM_JUMP VirtualKeyCode = 0xEA VK_OEM_PA1 VirtualKeyCode = 0xEB VK_OEM_PA2 VirtualKeyCode = 0xEC VK_OEM_PA3 VirtualKeyCode = 0xED VK_OEM_WSCTRL VirtualKeyCode = 0xEE VK_OEM_CUSEL VirtualKeyCode = 0xEF VK_OEM_ATTN VirtualKeyCode = 0xF0 VK_OEM_FINISH VirtualKeyCode = 0xF1 VK_OEM_COPY VirtualKeyCode = 0xF2 VK_OEM_AUTO VirtualKeyCode = 0xF3 VK_OEM_ENLW VirtualKeyCode = 0xF4 VK_OEM_BACKTAB VirtualKeyCode = 0xF5 VK_ATTN VirtualKeyCode = 0xF6 VK_CRSEL VirtualKeyCode = 0xF7 VK_EXSEL VirtualKeyCode = 0xF8 VK_EREOF VirtualKeyCode = 0xF9 VK_PLAY VirtualKeyCode = 0xFA VK_ZOOM VirtualKeyCode = 0xFB VK_NONAME VirtualKeyCode = 0xFC VK_PA1 VirtualKeyCode = 0xFD VK_OEM_CLEAR VirtualKeyCode = 0xFE )
type WindowBufferSizeEventRecord ¶
type WindowBufferSizeEventRecord struct { // Size contains the size of the console screen buffer, in character cell columns and rows. Size Coord }
WindowBufferSizeEventRecord represent the WINDOW_BUFFER_SIZE_RECORD structure from the Windows console API (see https://docs.microsoft.com/en-us/windows/console/window-buffer-size-record-str).
func (WindowBufferSizeEventRecord) String ¶
func (e WindowBufferSizeEventRecord) String() string
String ensures that WindowBufferSizeEventRecord satisfies EventRecord and fmt.Stringer interfaces.
func (WindowBufferSizeEventRecord) Type ¶
func (e WindowBufferSizeEventRecord) Type() string
Type ensures that WindowBufferSizeEventRecord satisfies EventRecord interface.