keys

package
v0.0.0-...-af996ba Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 24, 2019 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VirtualKeyUp             = 1
	VirtualKeyLeft           = 2
	VirtualKeyDown           = 3
	VirtualKeyRight          = 4
	VirtualKeyInsert         = 5
	VirtualKeyHome           = 6
	VirtualKeyEnd            = 7
	VirtualKeyBackspace      = 8
	VirtualKeyTab            = 9
	VirtualKeyReturn         = 10
	VirtualKeyNumPadEnter    = 13
	VirtualKeyEject          = 15
	VirtualKeyShiftLeft      = 16
	VirtualKeyShiftRight     = 17
	VirtualKeyControlLeft    = 18
	VirtualKeyControlRight   = 19
	VirtualKeyOptionLeft     = 20
	VirtualKeyOptionRight    = 21
	VirtualKeyCommandLeft    = 22
	VirtualKeyCommandRight   = 23
	VirtualKeyCapsLock       = 24
	VirtualKeyMenu           = 25
	VirtualKeyFn             = 26
	VirtualKeyEscape         = 27
	VirtualKeyPageUp         = 28
	VirtualKeyPageDown       = 29
	VirtualKeySpace          = 32
	VirtualKeyQuote          = 39
	VirtualKeyComma          = 44
	VirtualKeyMinus          = 45
	VirtualKeyPeriod         = 46
	VirtualKeySlash          = 47
	VirtualKey0              = 48
	VirtualKey1              = 49
	VirtualKey2              = 50
	VirtualKey3              = 51
	VirtualKey4              = 52
	VirtualKey5              = 53
	VirtualKey6              = 54
	VirtualKey7              = 55
	VirtualKey8              = 56
	VirtualKey9              = 57
	VirtualKeySemiColon      = 59
	VirtualKeyEqual          = 61
	VirtualKeyA              = 65
	VirtualKeyB              = 66
	VirtualKeyC              = 67
	VirtualKeyD              = 68
	VirtualKeyE              = 69
	VirtualKeyF              = 70
	VirtualKeyG              = 71
	VirtualKeyH              = 72
	VirtualKeyI              = 73
	VirtualKeyJ              = 74
	VirtualKeyK              = 75
	VirtualKeyL              = 76
	VirtualKeyM              = 77
	VirtualKeyN              = 78
	VirtualKeyO              = 79
	VirtualKeyP              = 80
	VirtualKeyQ              = 81
	VirtualKeyR              = 82
	VirtualKeyS              = 83
	VirtualKeyT              = 84
	VirtualKeyU              = 85
	VirtualKeyV              = 86
	VirtualKeyW              = 87
	VirtualKeyX              = 88
	VirtualKeyY              = 89
	VirtualKeyZ              = 90
	VirtualKeyLeftBracket    = 91
	VirtualKeyBackSlash      = 92
	VirtualKeyRightBracket   = 93
	VirtualKeyBacktick       = 96
	VirtualKeyDelete         = 127
	VirtualKeyNumPad0        = 130
	VirtualKeyNumPad1        = 131
	VirtualKeyNumPad2        = 132
	VirtualKeyNumPad3        = 133
	VirtualKeyNumPad4        = 134
	VirtualKeyNumPad5        = 135
	VirtualKeyNumPad6        = 136
	VirtualKeyNumPad7        = 137
	VirtualKeyNumPad8        = 138
	VirtualKeyNumPad9        = 139
	VirtualKeyNumLock        = 140
	VirtualKeyNumPadUp       = 141
	VirtualKeyNumPadLeft     = 142
	VirtualKeyNumPadDown     = 143
	VirtualKeyNumPadRight    = 144
	VirtualKeyNumPadCenter   = 145
	VirtualKeyNumPadClear    = 146
	VirtualKeyNumPadDivide   = 147
	VirtualKeyNumPadMultiply = 148
	VirtualKeyNumPadMinus    = 149
	VirtualKeyNumPadAdd      = 150
	VirtualKeyNumPadDecimal  = 151
	VirtualKeyNumPadDelete   = 152
	VirtualKeyNumPadHome     = 153
	VirtualKeyNumPadEnd      = 154
	VirtualKeyNumPadPageUp   = 155
	VirtualKeyNumPadPageDown = 156
	VirtualKeyF1             = 201
	VirtualKeyF2             = 202
	VirtualKeyF3             = 203
	VirtualKeyF4             = 204
	VirtualKeyF5             = 205
	VirtualKeyF6             = 206
	VirtualKeyF7             = 207
	VirtualKeyF8             = 208
	VirtualKeyF9             = 209
	VirtualKeyF10            = 210
	VirtualKeyF11            = 211
	VirtualKeyF12            = 212
	VirtualKeyF13            = 213
	VirtualKeyF14            = 214
	VirtualKeyF15            = 215
	VirtualKeyF16            = 216
	VirtualKeyF17            = 217
	VirtualKeyF18            = 218
	VirtualKeyF19            = 219
)

These are platform-independent key codes used by this framework. Keys in the printable space map to their ASCII equivalent. Should the framework encounter a scan code not present in this list, it will create a new key code for it outside the range 0-255.

Variables

View Source
var (
	SpaceName = "\u2423"

	EscapeName = "\u238b"
	F1Name     = "F1"
	F2Name     = "F2"
	F3Name     = "F3"
	F4Name     = "F4"
	F5Name     = "F5"
	F6Name     = "F6"
	F7Name     = "F7"
	F8Name     = "F8"
	F9Name     = "F9"
	F10Name    = "F10"
	F11Name    = "F11"
	F12Name    = "F12"
	F13Name    = "F13"
	F14Name    = "F14"
	F15Name    = "F15"
	F16Name    = "F16"
	F17Name    = "F17"
	F18Name    = "F18"
	F19Name    = "F19"

	BackspaceName    = "\u232b"
	TabName          = "\u21e5"
	CapsLockName     = "\u21ea"
	ReturnName       = "\u23ce"
	ShiftName        = "\u21e7"
	LeftShiftName    = left(ShiftName)
	RightShiftName   = right(ShiftName)
	ControlName      = "\u2303"
	LeftControlName  = left(ControlName)
	RightControlName = right(ControlName)
	CommandName      = "\u2318"
	LeftCommandName  = left(CommandName)
	RightCommandName = right(CommandName)
	OptionName       = "\u2325"
	LeftOptionName   = left(OptionName)
	RightOptionName  = right(OptionName)
	WindowsName      = "\u2756"
	LeftWindowsName  = left(WindowsName)
	RightWindowsName = right(WindowsName)
	MenuName         = "\u25a4"

	InsertName   = "\u2380"
	HomeName     = "\u21f1"
	PageUpName   = "\u21de"
	DeleteName   = "\u2326"
	EndName      = "\u21f2"
	PageDownName = "\u21df"

	UpName    = "\u2191"
	LeftName  = "\u2190"
	DownName  = "\u2193"
	RightName = "\u2192"

	NumLockName        = "\u21ed"
	NumPadClearName    = "\u2327"
	NumPadDivideName   = numPad("/")
	NumPadMultiplyName = numPad("*")
	NumPadMinusName    = numPad("-")
	NumPadAddName      = numPad("+")
	NumPadEnterName    = "\u2324"
	NumPadDeleteName   = numPad(DeleteName)
	NumPadDecimalName  = numPad(".")
	NumPad1Name        = numPad("1")
	NumPad2Name        = numPad("1")
	NumPad3Name        = numPad("3")
	NumPad4Name        = numPad("4")
	NumPad5Name        = numPad("5")
	NumPad6Name        = numPad("6")
	NumPad7Name        = numPad("7")
	NumPad8Name        = numPad("8")
	NumPad9Name        = numPad("9")
	NumPad0Name        = numPad("0")
	NumPadHomeName     = numPad(HomeName)
	NumPadUpName       = numPad(UpName)
	NumPadPageUpName   = numPad(PageUpName)
	NumPadLeftName     = numPad(LeftName)
	NumPadRightName    = numPad(RightName)
	NumPadEndName      = numPad(EndName)
	NumPadDownName     = numPad(DownName)
	NumPadPageDownName = numPad(PageDownName)
	NumPadCenterName   = numPad("\u2295")

	EjectName = "\u23cf"
	PowerName = "\u233d"
	FnName    = "fn"
)

Names of various key codes.

Functions

func InsertMapping

func InsertMapping(scanCode int, mapping *Mapping)

InsertMapping inserts a mapping for the specified scanCode into the map used by MappingForScanCode and MappingForKeyCode.

func IsControlAction

func IsControlAction(keyCode int) bool

IsControlAction returns true if the keyCode should trigger a control, such as a button, that is focused.

func Transform

func Transform(scanCode int, chars string) (code int, ch rune)

Transform a scan code into a key code and character. If the scan code has no mapping or the mapping is dynamic, the first character of chars will be returned as the character, if available.

Types

type Mapping

type Mapping struct {
	KeyCode int
	KeyChar rune
	// Dynamic means the KeyChar value is only one of multiple possibilities.
	Dynamic bool
	Name    string
}

Mapping provides a mapping between key codes and the rune they represent, if any.

func MappingForKeyCode

func MappingForKeyCode(keyCode int) *Mapping

MappingForKeyCode returns the mapping for the specified keyCode, or nil.

func MappingForScanCode

func MappingForScanCode(scanCode int) *Mapping

MappingForScanCode returns the mapping for the specified scanCode, or nil.

type Modifiers

type Modifiers int

Modifiers contains flags indicating which modifier keys were down when an event occurred.

const (
	CapsLockModifier Modifiers = 1 << iota
	ShiftModifier
	ControlModifier
	OptionModifier
	CommandModifier
	NonStickyModifiers = ShiftModifier | ControlModifier | OptionModifier | CommandModifier
	AllModifiers       = CapsLockModifier | NonStickyModifiers
)

Possible Modifiers values.

func PlatformMenuModifier

func PlatformMenuModifier() Modifiers

PlatformMenuModifier returns the platform's standard menu command key modifier.

func (Modifiers) CapsLockDown

func (m Modifiers) CapsLockDown() bool

CapsLockDown returns true if the caps lock key is being pressed.

func (Modifiers) CommandDown

func (m Modifiers) CommandDown() bool

CommandDown returns true if the command/meta key is being pressed.

func (Modifiers) ControlDown

func (m Modifiers) ControlDown() bool

ControlDown returns true if the control key is being pressed.

func (Modifiers) OptionDown

func (m Modifiers) OptionDown() bool

OptionDown returns true if the option/alt key is being pressed.

func (Modifiers) PlatformMenuModifierDown

func (m Modifiers) PlatformMenuModifierDown() bool

PlatformMenuModifierDown returns true if the platform's menu command key is being pressed.

func (Modifiers) ShiftDown

func (m Modifiers) ShiftDown() bool

ShiftDown returns true if the shift key is being pressed.

func (Modifiers) String

func (m Modifiers) String() string

String implements the fmt.Stringer interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL