mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-26 19:58:54 +01:00
491b578866
Closes #2801
1031 lines
22 KiB
Go
1031 lines
22 KiB
Go
// Copyright 2013 The Ebitengine Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Code generated by genkeys.go using 'go generate'. DO NOT EDIT.
|
|
|
|
package ebiten
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/hajimehoshi/ebiten/v2/internal/ui"
|
|
)
|
|
|
|
// A Key represents a keyboard key.
|
|
// These keys represent physical keys of US keyboard.
|
|
// For example, KeyQ represents Q key on US keyboards and ' (quote) key on Dvorak keyboards.
|
|
type Key int
|
|
|
|
// Keys.
|
|
const (
|
|
KeyA Key = Key(ui.KeyA)
|
|
KeyB Key = Key(ui.KeyB)
|
|
KeyC Key = Key(ui.KeyC)
|
|
KeyD Key = Key(ui.KeyD)
|
|
KeyE Key = Key(ui.KeyE)
|
|
KeyF Key = Key(ui.KeyF)
|
|
KeyG Key = Key(ui.KeyG)
|
|
KeyH Key = Key(ui.KeyH)
|
|
KeyI Key = Key(ui.KeyI)
|
|
KeyJ Key = Key(ui.KeyJ)
|
|
KeyK Key = Key(ui.KeyK)
|
|
KeyL Key = Key(ui.KeyL)
|
|
KeyM Key = Key(ui.KeyM)
|
|
KeyN Key = Key(ui.KeyN)
|
|
KeyO Key = Key(ui.KeyO)
|
|
KeyP Key = Key(ui.KeyP)
|
|
KeyQ Key = Key(ui.KeyQ)
|
|
KeyR Key = Key(ui.KeyR)
|
|
KeyS Key = Key(ui.KeyS)
|
|
KeyT Key = Key(ui.KeyT)
|
|
KeyU Key = Key(ui.KeyU)
|
|
KeyV Key = Key(ui.KeyV)
|
|
KeyW Key = Key(ui.KeyW)
|
|
KeyX Key = Key(ui.KeyX)
|
|
KeyY Key = Key(ui.KeyY)
|
|
KeyZ Key = Key(ui.KeyZ)
|
|
KeyAltLeft Key = Key(ui.KeyAltLeft)
|
|
KeyAltRight Key = Key(ui.KeyAltRight)
|
|
KeyArrowDown Key = Key(ui.KeyArrowDown)
|
|
KeyArrowLeft Key = Key(ui.KeyArrowLeft)
|
|
KeyArrowRight Key = Key(ui.KeyArrowRight)
|
|
KeyArrowUp Key = Key(ui.KeyArrowUp)
|
|
KeyBackquote Key = Key(ui.KeyBackquote)
|
|
KeyBackslash Key = Key(ui.KeyBackslash)
|
|
KeyBackspace Key = Key(ui.KeyBackspace)
|
|
KeyBracketLeft Key = Key(ui.KeyBracketLeft)
|
|
KeyBracketRight Key = Key(ui.KeyBracketRight)
|
|
KeyCapsLock Key = Key(ui.KeyCapsLock)
|
|
KeyComma Key = Key(ui.KeyComma)
|
|
KeyContextMenu Key = Key(ui.KeyContextMenu)
|
|
KeyControlLeft Key = Key(ui.KeyControlLeft)
|
|
KeyControlRight Key = Key(ui.KeyControlRight)
|
|
KeyDelete Key = Key(ui.KeyDelete)
|
|
KeyDigit0 Key = Key(ui.KeyDigit0)
|
|
KeyDigit1 Key = Key(ui.KeyDigit1)
|
|
KeyDigit2 Key = Key(ui.KeyDigit2)
|
|
KeyDigit3 Key = Key(ui.KeyDigit3)
|
|
KeyDigit4 Key = Key(ui.KeyDigit4)
|
|
KeyDigit5 Key = Key(ui.KeyDigit5)
|
|
KeyDigit6 Key = Key(ui.KeyDigit6)
|
|
KeyDigit7 Key = Key(ui.KeyDigit7)
|
|
KeyDigit8 Key = Key(ui.KeyDigit8)
|
|
KeyDigit9 Key = Key(ui.KeyDigit9)
|
|
KeyEnd Key = Key(ui.KeyEnd)
|
|
KeyEnter Key = Key(ui.KeyEnter)
|
|
KeyEqual Key = Key(ui.KeyEqual)
|
|
KeyEscape Key = Key(ui.KeyEscape)
|
|
KeyF1 Key = Key(ui.KeyF1)
|
|
KeyF2 Key = Key(ui.KeyF2)
|
|
KeyF3 Key = Key(ui.KeyF3)
|
|
KeyF4 Key = Key(ui.KeyF4)
|
|
KeyF5 Key = Key(ui.KeyF5)
|
|
KeyF6 Key = Key(ui.KeyF6)
|
|
KeyF7 Key = Key(ui.KeyF7)
|
|
KeyF8 Key = Key(ui.KeyF8)
|
|
KeyF9 Key = Key(ui.KeyF9)
|
|
KeyF10 Key = Key(ui.KeyF10)
|
|
KeyF11 Key = Key(ui.KeyF11)
|
|
KeyF12 Key = Key(ui.KeyF12)
|
|
KeyF13 Key = Key(ui.KeyF13)
|
|
KeyF14 Key = Key(ui.KeyF14)
|
|
KeyF15 Key = Key(ui.KeyF15)
|
|
KeyF16 Key = Key(ui.KeyF16)
|
|
KeyF17 Key = Key(ui.KeyF17)
|
|
KeyF18 Key = Key(ui.KeyF18)
|
|
KeyF19 Key = Key(ui.KeyF19)
|
|
KeyF20 Key = Key(ui.KeyF20)
|
|
KeyF21 Key = Key(ui.KeyF21)
|
|
KeyF22 Key = Key(ui.KeyF22)
|
|
KeyF23 Key = Key(ui.KeyF23)
|
|
KeyF24 Key = Key(ui.KeyF24)
|
|
KeyHome Key = Key(ui.KeyHome)
|
|
KeyInsert Key = Key(ui.KeyInsert)
|
|
KeyMetaLeft Key = Key(ui.KeyMetaLeft)
|
|
KeyMetaRight Key = Key(ui.KeyMetaRight)
|
|
KeyMinus Key = Key(ui.KeyMinus)
|
|
KeyNumLock Key = Key(ui.KeyNumLock)
|
|
KeyNumpad0 Key = Key(ui.KeyNumpad0)
|
|
KeyNumpad1 Key = Key(ui.KeyNumpad1)
|
|
KeyNumpad2 Key = Key(ui.KeyNumpad2)
|
|
KeyNumpad3 Key = Key(ui.KeyNumpad3)
|
|
KeyNumpad4 Key = Key(ui.KeyNumpad4)
|
|
KeyNumpad5 Key = Key(ui.KeyNumpad5)
|
|
KeyNumpad6 Key = Key(ui.KeyNumpad6)
|
|
KeyNumpad7 Key = Key(ui.KeyNumpad7)
|
|
KeyNumpad8 Key = Key(ui.KeyNumpad8)
|
|
KeyNumpad9 Key = Key(ui.KeyNumpad9)
|
|
KeyNumpadAdd Key = Key(ui.KeyNumpadAdd)
|
|
KeyNumpadDecimal Key = Key(ui.KeyNumpadDecimal)
|
|
KeyNumpadDivide Key = Key(ui.KeyNumpadDivide)
|
|
KeyNumpadEnter Key = Key(ui.KeyNumpadEnter)
|
|
KeyNumpadEqual Key = Key(ui.KeyNumpadEqual)
|
|
KeyNumpadMultiply Key = Key(ui.KeyNumpadMultiply)
|
|
KeyNumpadSubtract Key = Key(ui.KeyNumpadSubtract)
|
|
KeyPageDown Key = Key(ui.KeyPageDown)
|
|
KeyPageUp Key = Key(ui.KeyPageUp)
|
|
KeyPause Key = Key(ui.KeyPause)
|
|
KeyPeriod Key = Key(ui.KeyPeriod)
|
|
KeyPrintScreen Key = Key(ui.KeyPrintScreen)
|
|
KeyQuote Key = Key(ui.KeyQuote)
|
|
KeyScrollLock Key = Key(ui.KeyScrollLock)
|
|
KeySemicolon Key = Key(ui.KeySemicolon)
|
|
KeyShiftLeft Key = Key(ui.KeyShiftLeft)
|
|
KeyShiftRight Key = Key(ui.KeyShiftRight)
|
|
KeySlash Key = Key(ui.KeySlash)
|
|
KeySpace Key = Key(ui.KeySpace)
|
|
KeyTab Key = Key(ui.KeyTab)
|
|
KeyAlt Key = Key(ui.KeyReserved0)
|
|
KeyControl Key = Key(ui.KeyReserved1)
|
|
KeyShift Key = Key(ui.KeyReserved2)
|
|
KeyMeta Key = Key(ui.KeyReserved3)
|
|
KeyMax Key = KeyMeta
|
|
|
|
// Keys for backward compatibility.
|
|
// Deprecated: as of v2.1.
|
|
Key0 Key = Key(ui.KeyDigit0)
|
|
Key1 Key = Key(ui.KeyDigit1)
|
|
Key2 Key = Key(ui.KeyDigit2)
|
|
Key3 Key = Key(ui.KeyDigit3)
|
|
Key4 Key = Key(ui.KeyDigit4)
|
|
Key5 Key = Key(ui.KeyDigit5)
|
|
Key6 Key = Key(ui.KeyDigit6)
|
|
Key7 Key = Key(ui.KeyDigit7)
|
|
Key8 Key = Key(ui.KeyDigit8)
|
|
Key9 Key = Key(ui.KeyDigit9)
|
|
KeyApostrophe Key = Key(ui.KeyQuote)
|
|
KeyDown Key = Key(ui.KeyArrowDown)
|
|
KeyGraveAccent Key = Key(ui.KeyBackquote)
|
|
KeyKP0 Key = Key(ui.KeyNumpad0)
|
|
KeyKP1 Key = Key(ui.KeyNumpad1)
|
|
KeyKP2 Key = Key(ui.KeyNumpad2)
|
|
KeyKP3 Key = Key(ui.KeyNumpad3)
|
|
KeyKP4 Key = Key(ui.KeyNumpad4)
|
|
KeyKP5 Key = Key(ui.KeyNumpad5)
|
|
KeyKP6 Key = Key(ui.KeyNumpad6)
|
|
KeyKP7 Key = Key(ui.KeyNumpad7)
|
|
KeyKP8 Key = Key(ui.KeyNumpad8)
|
|
KeyKP9 Key = Key(ui.KeyNumpad9)
|
|
KeyKPAdd Key = Key(ui.KeyNumpadAdd)
|
|
KeyKPDecimal Key = Key(ui.KeyNumpadDecimal)
|
|
KeyKPDivide Key = Key(ui.KeyNumpadDivide)
|
|
KeyKPEnter Key = Key(ui.KeyNumpadEnter)
|
|
KeyKPEqual Key = Key(ui.KeyNumpadEqual)
|
|
KeyKPMultiply Key = Key(ui.KeyNumpadMultiply)
|
|
KeyKPSubtract Key = Key(ui.KeyNumpadSubtract)
|
|
KeyLeft Key = Key(ui.KeyArrowLeft)
|
|
KeyLeftBracket Key = Key(ui.KeyBracketLeft)
|
|
KeyMenu Key = Key(ui.KeyContextMenu)
|
|
KeyRight Key = Key(ui.KeyArrowRight)
|
|
KeyRightBracket Key = Key(ui.KeyBracketRight)
|
|
KeyUp Key = Key(ui.KeyArrowUp)
|
|
)
|
|
|
|
func (k Key) isValid() bool {
|
|
switch k {
|
|
case KeyA:
|
|
return true
|
|
case KeyB:
|
|
return true
|
|
case KeyC:
|
|
return true
|
|
case KeyD:
|
|
return true
|
|
case KeyE:
|
|
return true
|
|
case KeyF:
|
|
return true
|
|
case KeyG:
|
|
return true
|
|
case KeyH:
|
|
return true
|
|
case KeyI:
|
|
return true
|
|
case KeyJ:
|
|
return true
|
|
case KeyK:
|
|
return true
|
|
case KeyL:
|
|
return true
|
|
case KeyM:
|
|
return true
|
|
case KeyN:
|
|
return true
|
|
case KeyO:
|
|
return true
|
|
case KeyP:
|
|
return true
|
|
case KeyQ:
|
|
return true
|
|
case KeyR:
|
|
return true
|
|
case KeyS:
|
|
return true
|
|
case KeyT:
|
|
return true
|
|
case KeyU:
|
|
return true
|
|
case KeyV:
|
|
return true
|
|
case KeyW:
|
|
return true
|
|
case KeyX:
|
|
return true
|
|
case KeyY:
|
|
return true
|
|
case KeyZ:
|
|
return true
|
|
case KeyAlt:
|
|
return true
|
|
case KeyAltLeft:
|
|
return true
|
|
case KeyAltRight:
|
|
return true
|
|
case KeyArrowDown:
|
|
return true
|
|
case KeyArrowLeft:
|
|
return true
|
|
case KeyArrowRight:
|
|
return true
|
|
case KeyArrowUp:
|
|
return true
|
|
case KeyBackquote:
|
|
return true
|
|
case KeyBackslash:
|
|
return true
|
|
case KeyBackspace:
|
|
return true
|
|
case KeyBracketLeft:
|
|
return true
|
|
case KeyBracketRight:
|
|
return true
|
|
case KeyCapsLock:
|
|
return true
|
|
case KeyComma:
|
|
return true
|
|
case KeyContextMenu:
|
|
return true
|
|
case KeyControl:
|
|
return true
|
|
case KeyControlLeft:
|
|
return true
|
|
case KeyControlRight:
|
|
return true
|
|
case KeyDelete:
|
|
return true
|
|
case KeyDigit0:
|
|
return true
|
|
case KeyDigit1:
|
|
return true
|
|
case KeyDigit2:
|
|
return true
|
|
case KeyDigit3:
|
|
return true
|
|
case KeyDigit4:
|
|
return true
|
|
case KeyDigit5:
|
|
return true
|
|
case KeyDigit6:
|
|
return true
|
|
case KeyDigit7:
|
|
return true
|
|
case KeyDigit8:
|
|
return true
|
|
case KeyDigit9:
|
|
return true
|
|
case KeyEnd:
|
|
return true
|
|
case KeyEnter:
|
|
return true
|
|
case KeyEqual:
|
|
return true
|
|
case KeyEscape:
|
|
return true
|
|
case KeyF1:
|
|
return true
|
|
case KeyF2:
|
|
return true
|
|
case KeyF3:
|
|
return true
|
|
case KeyF4:
|
|
return true
|
|
case KeyF5:
|
|
return true
|
|
case KeyF6:
|
|
return true
|
|
case KeyF7:
|
|
return true
|
|
case KeyF8:
|
|
return true
|
|
case KeyF9:
|
|
return true
|
|
case KeyF10:
|
|
return true
|
|
case KeyF11:
|
|
return true
|
|
case KeyF12:
|
|
return true
|
|
case KeyF13:
|
|
return true
|
|
case KeyF14:
|
|
return true
|
|
case KeyF15:
|
|
return true
|
|
case KeyF16:
|
|
return true
|
|
case KeyF17:
|
|
return true
|
|
case KeyF18:
|
|
return true
|
|
case KeyF19:
|
|
return true
|
|
case KeyF20:
|
|
return true
|
|
case KeyF21:
|
|
return true
|
|
case KeyF22:
|
|
return true
|
|
case KeyF23:
|
|
return true
|
|
case KeyF24:
|
|
return true
|
|
case KeyHome:
|
|
return true
|
|
case KeyInsert:
|
|
return true
|
|
case KeyMeta:
|
|
return true
|
|
case KeyMetaLeft:
|
|
return true
|
|
case KeyMetaRight:
|
|
return true
|
|
case KeyMinus:
|
|
return true
|
|
case KeyNumLock:
|
|
return true
|
|
case KeyNumpad0:
|
|
return true
|
|
case KeyNumpad1:
|
|
return true
|
|
case KeyNumpad2:
|
|
return true
|
|
case KeyNumpad3:
|
|
return true
|
|
case KeyNumpad4:
|
|
return true
|
|
case KeyNumpad5:
|
|
return true
|
|
case KeyNumpad6:
|
|
return true
|
|
case KeyNumpad7:
|
|
return true
|
|
case KeyNumpad8:
|
|
return true
|
|
case KeyNumpad9:
|
|
return true
|
|
case KeyNumpadAdd:
|
|
return true
|
|
case KeyNumpadDecimal:
|
|
return true
|
|
case KeyNumpadDivide:
|
|
return true
|
|
case KeyNumpadEnter:
|
|
return true
|
|
case KeyNumpadEqual:
|
|
return true
|
|
case KeyNumpadMultiply:
|
|
return true
|
|
case KeyNumpadSubtract:
|
|
return true
|
|
case KeyPageDown:
|
|
return true
|
|
case KeyPageUp:
|
|
return true
|
|
case KeyPause:
|
|
return true
|
|
case KeyPeriod:
|
|
return true
|
|
case KeyPrintScreen:
|
|
return true
|
|
case KeyQuote:
|
|
return true
|
|
case KeyScrollLock:
|
|
return true
|
|
case KeySemicolon:
|
|
return true
|
|
case KeyShift:
|
|
return true
|
|
case KeyShiftLeft:
|
|
return true
|
|
case KeyShiftRight:
|
|
return true
|
|
case KeySlash:
|
|
return true
|
|
case KeySpace:
|
|
return true
|
|
case KeyTab:
|
|
return true
|
|
|
|
default:
|
|
return false
|
|
}
|
|
}
|
|
|
|
// String returns a string representing the key.
|
|
//
|
|
// If k is an undefined key, String returns an empty string.
|
|
func (k Key) String() string {
|
|
switch k {
|
|
case KeyA:
|
|
return "A"
|
|
case KeyB:
|
|
return "B"
|
|
case KeyC:
|
|
return "C"
|
|
case KeyD:
|
|
return "D"
|
|
case KeyE:
|
|
return "E"
|
|
case KeyF:
|
|
return "F"
|
|
case KeyG:
|
|
return "G"
|
|
case KeyH:
|
|
return "H"
|
|
case KeyI:
|
|
return "I"
|
|
case KeyJ:
|
|
return "J"
|
|
case KeyK:
|
|
return "K"
|
|
case KeyL:
|
|
return "L"
|
|
case KeyM:
|
|
return "M"
|
|
case KeyN:
|
|
return "N"
|
|
case KeyO:
|
|
return "O"
|
|
case KeyP:
|
|
return "P"
|
|
case KeyQ:
|
|
return "Q"
|
|
case KeyR:
|
|
return "R"
|
|
case KeyS:
|
|
return "S"
|
|
case KeyT:
|
|
return "T"
|
|
case KeyU:
|
|
return "U"
|
|
case KeyV:
|
|
return "V"
|
|
case KeyW:
|
|
return "W"
|
|
case KeyX:
|
|
return "X"
|
|
case KeyY:
|
|
return "Y"
|
|
case KeyZ:
|
|
return "Z"
|
|
case KeyAlt:
|
|
return "Alt"
|
|
case KeyAltLeft:
|
|
return "AltLeft"
|
|
case KeyAltRight:
|
|
return "AltRight"
|
|
case KeyArrowDown:
|
|
return "ArrowDown"
|
|
case KeyArrowLeft:
|
|
return "ArrowLeft"
|
|
case KeyArrowRight:
|
|
return "ArrowRight"
|
|
case KeyArrowUp:
|
|
return "ArrowUp"
|
|
case KeyBackquote:
|
|
return "Backquote"
|
|
case KeyBackslash:
|
|
return "Backslash"
|
|
case KeyBackspace:
|
|
return "Backspace"
|
|
case KeyBracketLeft:
|
|
return "BracketLeft"
|
|
case KeyBracketRight:
|
|
return "BracketRight"
|
|
case KeyCapsLock:
|
|
return "CapsLock"
|
|
case KeyComma:
|
|
return "Comma"
|
|
case KeyContextMenu:
|
|
return "ContextMenu"
|
|
case KeyControl:
|
|
return "Control"
|
|
case KeyControlLeft:
|
|
return "ControlLeft"
|
|
case KeyControlRight:
|
|
return "ControlRight"
|
|
case KeyDelete:
|
|
return "Delete"
|
|
case KeyDigit0:
|
|
return "Digit0"
|
|
case KeyDigit1:
|
|
return "Digit1"
|
|
case KeyDigit2:
|
|
return "Digit2"
|
|
case KeyDigit3:
|
|
return "Digit3"
|
|
case KeyDigit4:
|
|
return "Digit4"
|
|
case KeyDigit5:
|
|
return "Digit5"
|
|
case KeyDigit6:
|
|
return "Digit6"
|
|
case KeyDigit7:
|
|
return "Digit7"
|
|
case KeyDigit8:
|
|
return "Digit8"
|
|
case KeyDigit9:
|
|
return "Digit9"
|
|
case KeyEnd:
|
|
return "End"
|
|
case KeyEnter:
|
|
return "Enter"
|
|
case KeyEqual:
|
|
return "Equal"
|
|
case KeyEscape:
|
|
return "Escape"
|
|
case KeyF1:
|
|
return "F1"
|
|
case KeyF2:
|
|
return "F2"
|
|
case KeyF3:
|
|
return "F3"
|
|
case KeyF4:
|
|
return "F4"
|
|
case KeyF5:
|
|
return "F5"
|
|
case KeyF6:
|
|
return "F6"
|
|
case KeyF7:
|
|
return "F7"
|
|
case KeyF8:
|
|
return "F8"
|
|
case KeyF9:
|
|
return "F9"
|
|
case KeyF10:
|
|
return "F10"
|
|
case KeyF11:
|
|
return "F11"
|
|
case KeyF12:
|
|
return "F12"
|
|
case KeyF13:
|
|
return "F13"
|
|
case KeyF14:
|
|
return "F14"
|
|
case KeyF15:
|
|
return "F15"
|
|
case KeyF16:
|
|
return "F16"
|
|
case KeyF17:
|
|
return "F17"
|
|
case KeyF18:
|
|
return "F18"
|
|
case KeyF19:
|
|
return "F19"
|
|
case KeyF20:
|
|
return "F20"
|
|
case KeyF21:
|
|
return "F21"
|
|
case KeyF22:
|
|
return "F22"
|
|
case KeyF23:
|
|
return "F23"
|
|
case KeyF24:
|
|
return "F24"
|
|
case KeyHome:
|
|
return "Home"
|
|
case KeyInsert:
|
|
return "Insert"
|
|
case KeyMeta:
|
|
return "Meta"
|
|
case KeyMetaLeft:
|
|
return "MetaLeft"
|
|
case KeyMetaRight:
|
|
return "MetaRight"
|
|
case KeyMinus:
|
|
return "Minus"
|
|
case KeyNumLock:
|
|
return "NumLock"
|
|
case KeyNumpad0:
|
|
return "Numpad0"
|
|
case KeyNumpad1:
|
|
return "Numpad1"
|
|
case KeyNumpad2:
|
|
return "Numpad2"
|
|
case KeyNumpad3:
|
|
return "Numpad3"
|
|
case KeyNumpad4:
|
|
return "Numpad4"
|
|
case KeyNumpad5:
|
|
return "Numpad5"
|
|
case KeyNumpad6:
|
|
return "Numpad6"
|
|
case KeyNumpad7:
|
|
return "Numpad7"
|
|
case KeyNumpad8:
|
|
return "Numpad8"
|
|
case KeyNumpad9:
|
|
return "Numpad9"
|
|
case KeyNumpadAdd:
|
|
return "NumpadAdd"
|
|
case KeyNumpadDecimal:
|
|
return "NumpadDecimal"
|
|
case KeyNumpadDivide:
|
|
return "NumpadDivide"
|
|
case KeyNumpadEnter:
|
|
return "NumpadEnter"
|
|
case KeyNumpadEqual:
|
|
return "NumpadEqual"
|
|
case KeyNumpadMultiply:
|
|
return "NumpadMultiply"
|
|
case KeyNumpadSubtract:
|
|
return "NumpadSubtract"
|
|
case KeyPageDown:
|
|
return "PageDown"
|
|
case KeyPageUp:
|
|
return "PageUp"
|
|
case KeyPause:
|
|
return "Pause"
|
|
case KeyPeriod:
|
|
return "Period"
|
|
case KeyPrintScreen:
|
|
return "PrintScreen"
|
|
case KeyQuote:
|
|
return "Quote"
|
|
case KeyScrollLock:
|
|
return "ScrollLock"
|
|
case KeySemicolon:
|
|
return "Semicolon"
|
|
case KeyShift:
|
|
return "Shift"
|
|
case KeyShiftLeft:
|
|
return "ShiftLeft"
|
|
case KeyShiftRight:
|
|
return "ShiftRight"
|
|
case KeySlash:
|
|
return "Slash"
|
|
case KeySpace:
|
|
return "Space"
|
|
case KeyTab:
|
|
return "Tab"
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func keyNameToKeyCode(name string) (Key, bool) {
|
|
switch strings.ToLower(name) {
|
|
case "0":
|
|
return Key0, true
|
|
case "1":
|
|
return Key1, true
|
|
case "2":
|
|
return Key2, true
|
|
case "3":
|
|
return Key3, true
|
|
case "4":
|
|
return Key4, true
|
|
case "5":
|
|
return Key5, true
|
|
case "6":
|
|
return Key6, true
|
|
case "7":
|
|
return Key7, true
|
|
case "8":
|
|
return Key8, true
|
|
case "9":
|
|
return Key9, true
|
|
case "a":
|
|
return KeyA, true
|
|
case "b":
|
|
return KeyB, true
|
|
case "c":
|
|
return KeyC, true
|
|
case "d":
|
|
return KeyD, true
|
|
case "e":
|
|
return KeyE, true
|
|
case "f":
|
|
return KeyF, true
|
|
case "g":
|
|
return KeyG, true
|
|
case "h":
|
|
return KeyH, true
|
|
case "i":
|
|
return KeyI, true
|
|
case "j":
|
|
return KeyJ, true
|
|
case "k":
|
|
return KeyK, true
|
|
case "l":
|
|
return KeyL, true
|
|
case "m":
|
|
return KeyM, true
|
|
case "n":
|
|
return KeyN, true
|
|
case "o":
|
|
return KeyO, true
|
|
case "p":
|
|
return KeyP, true
|
|
case "q":
|
|
return KeyQ, true
|
|
case "r":
|
|
return KeyR, true
|
|
case "s":
|
|
return KeyS, true
|
|
case "t":
|
|
return KeyT, true
|
|
case "u":
|
|
return KeyU, true
|
|
case "v":
|
|
return KeyV, true
|
|
case "w":
|
|
return KeyW, true
|
|
case "x":
|
|
return KeyX, true
|
|
case "y":
|
|
return KeyY, true
|
|
case "z":
|
|
return KeyZ, true
|
|
case "alt":
|
|
return KeyAlt, true
|
|
case "altleft":
|
|
return KeyAltLeft, true
|
|
case "altright":
|
|
return KeyAltRight, true
|
|
case "apostrophe":
|
|
return KeyApostrophe, true
|
|
case "arrowdown":
|
|
return KeyArrowDown, true
|
|
case "arrowleft":
|
|
return KeyArrowLeft, true
|
|
case "arrowright":
|
|
return KeyArrowRight, true
|
|
case "arrowup":
|
|
return KeyArrowUp, true
|
|
case "backquote":
|
|
return KeyBackquote, true
|
|
case "backslash":
|
|
return KeyBackslash, true
|
|
case "backspace":
|
|
return KeyBackspace, true
|
|
case "bracketleft":
|
|
return KeyBracketLeft, true
|
|
case "bracketright":
|
|
return KeyBracketRight, true
|
|
case "capslock":
|
|
return KeyCapsLock, true
|
|
case "comma":
|
|
return KeyComma, true
|
|
case "contextmenu":
|
|
return KeyContextMenu, true
|
|
case "control":
|
|
return KeyControl, true
|
|
case "controlleft":
|
|
return KeyControlLeft, true
|
|
case "controlright":
|
|
return KeyControlRight, true
|
|
case "delete":
|
|
return KeyDelete, true
|
|
case "digit0":
|
|
return KeyDigit0, true
|
|
case "digit1":
|
|
return KeyDigit1, true
|
|
case "digit2":
|
|
return KeyDigit2, true
|
|
case "digit3":
|
|
return KeyDigit3, true
|
|
case "digit4":
|
|
return KeyDigit4, true
|
|
case "digit5":
|
|
return KeyDigit5, true
|
|
case "digit6":
|
|
return KeyDigit6, true
|
|
case "digit7":
|
|
return KeyDigit7, true
|
|
case "digit8":
|
|
return KeyDigit8, true
|
|
case "digit9":
|
|
return KeyDigit9, true
|
|
case "down":
|
|
return KeyDown, true
|
|
case "end":
|
|
return KeyEnd, true
|
|
case "enter":
|
|
return KeyEnter, true
|
|
case "equal":
|
|
return KeyEqual, true
|
|
case "escape":
|
|
return KeyEscape, true
|
|
case "f1":
|
|
return KeyF1, true
|
|
case "f2":
|
|
return KeyF2, true
|
|
case "f3":
|
|
return KeyF3, true
|
|
case "f4":
|
|
return KeyF4, true
|
|
case "f5":
|
|
return KeyF5, true
|
|
case "f6":
|
|
return KeyF6, true
|
|
case "f7":
|
|
return KeyF7, true
|
|
case "f8":
|
|
return KeyF8, true
|
|
case "f9":
|
|
return KeyF9, true
|
|
case "f10":
|
|
return KeyF10, true
|
|
case "f11":
|
|
return KeyF11, true
|
|
case "f12":
|
|
return KeyF12, true
|
|
case "f13":
|
|
return KeyF13, true
|
|
case "f14":
|
|
return KeyF14, true
|
|
case "f15":
|
|
return KeyF15, true
|
|
case "f16":
|
|
return KeyF16, true
|
|
case "f17":
|
|
return KeyF17, true
|
|
case "f18":
|
|
return KeyF18, true
|
|
case "f19":
|
|
return KeyF19, true
|
|
case "f20":
|
|
return KeyF20, true
|
|
case "f21":
|
|
return KeyF21, true
|
|
case "f22":
|
|
return KeyF22, true
|
|
case "f23":
|
|
return KeyF23, true
|
|
case "f24":
|
|
return KeyF24, true
|
|
case "graveaccent":
|
|
return KeyGraveAccent, true
|
|
case "home":
|
|
return KeyHome, true
|
|
case "insert":
|
|
return KeyInsert, true
|
|
case "kp0":
|
|
return KeyKP0, true
|
|
case "kp1":
|
|
return KeyKP1, true
|
|
case "kp2":
|
|
return KeyKP2, true
|
|
case "kp3":
|
|
return KeyKP3, true
|
|
case "kp4":
|
|
return KeyKP4, true
|
|
case "kp5":
|
|
return KeyKP5, true
|
|
case "kp6":
|
|
return KeyKP6, true
|
|
case "kp7":
|
|
return KeyKP7, true
|
|
case "kp8":
|
|
return KeyKP8, true
|
|
case "kp9":
|
|
return KeyKP9, true
|
|
case "kpadd":
|
|
return KeyKPAdd, true
|
|
case "kpdecimal":
|
|
return KeyKPDecimal, true
|
|
case "kpdivide":
|
|
return KeyKPDivide, true
|
|
case "kpenter":
|
|
return KeyKPEnter, true
|
|
case "kpequal":
|
|
return KeyKPEqual, true
|
|
case "kpmultiply":
|
|
return KeyKPMultiply, true
|
|
case "kpsubtract":
|
|
return KeyKPSubtract, true
|
|
case "left":
|
|
return KeyLeft, true
|
|
case "leftbracket":
|
|
return KeyLeftBracket, true
|
|
case "menu":
|
|
return KeyMenu, true
|
|
case "meta":
|
|
return KeyMeta, true
|
|
case "metaleft":
|
|
return KeyMetaLeft, true
|
|
case "metaright":
|
|
return KeyMetaRight, true
|
|
case "minus":
|
|
return KeyMinus, true
|
|
case "numlock":
|
|
return KeyNumLock, true
|
|
case "numpad0":
|
|
return KeyNumpad0, true
|
|
case "numpad1":
|
|
return KeyNumpad1, true
|
|
case "numpad2":
|
|
return KeyNumpad2, true
|
|
case "numpad3":
|
|
return KeyNumpad3, true
|
|
case "numpad4":
|
|
return KeyNumpad4, true
|
|
case "numpad5":
|
|
return KeyNumpad5, true
|
|
case "numpad6":
|
|
return KeyNumpad6, true
|
|
case "numpad7":
|
|
return KeyNumpad7, true
|
|
case "numpad8":
|
|
return KeyNumpad8, true
|
|
case "numpad9":
|
|
return KeyNumpad9, true
|
|
case "numpadadd":
|
|
return KeyNumpadAdd, true
|
|
case "numpaddecimal":
|
|
return KeyNumpadDecimal, true
|
|
case "numpaddivide":
|
|
return KeyNumpadDivide, true
|
|
case "numpadenter":
|
|
return KeyNumpadEnter, true
|
|
case "numpadequal":
|
|
return KeyNumpadEqual, true
|
|
case "numpadmultiply":
|
|
return KeyNumpadMultiply, true
|
|
case "numpadsubtract":
|
|
return KeyNumpadSubtract, true
|
|
case "pagedown":
|
|
return KeyPageDown, true
|
|
case "pageup":
|
|
return KeyPageUp, true
|
|
case "pause":
|
|
return KeyPause, true
|
|
case "period":
|
|
return KeyPeriod, true
|
|
case "printscreen":
|
|
return KeyPrintScreen, true
|
|
case "quote":
|
|
return KeyQuote, true
|
|
case "right":
|
|
return KeyRight, true
|
|
case "rightbracket":
|
|
return KeyRightBracket, true
|
|
case "scrolllock":
|
|
return KeyScrollLock, true
|
|
case "semicolon":
|
|
return KeySemicolon, true
|
|
case "shift":
|
|
return KeyShift, true
|
|
case "shiftleft":
|
|
return KeyShiftLeft, true
|
|
case "shiftright":
|
|
return KeyShiftRight, true
|
|
case "slash":
|
|
return KeySlash, true
|
|
case "space":
|
|
return KeySpace, true
|
|
case "tab":
|
|
return KeyTab, true
|
|
case "up":
|
|
return KeyUp, true
|
|
}
|
|
return 0, false
|
|
}
|
|
|
|
// MarshalText implements encoding.TextMarshaler.
|
|
func (k Key) MarshalText() ([]byte, error) {
|
|
return []byte(k.String()), nil
|
|
}
|
|
|
|
// UnmarshalText implements encoding.TextUnmarshaler
|
|
func (k *Key) UnmarshalText(text []byte) error {
|
|
key, ok := keyNameToKeyCode(string(text))
|
|
if !ok {
|
|
return fmt.Errorf("ebiten: unexpected key name: %s", string(text))
|
|
}
|
|
*k = key
|
|
return nil
|
|
}
|