ebiten/keys.go

764 lines
15 KiB
Go
Raw Normal View History

2016-08-26 17:50:26 +02:00
// Copyright 2013 The Ebiten 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.
2014-12-14 08:53:32 +01:00
// Code generated by genkeys.go using 'go generate'. DO NOT EDIT.
2015-01-07 15:21:52 +01:00
2014-12-14 08:53:32 +01:00
package ebiten
2015-01-01 17:20:20 +01:00
import (
"strings"
2020-10-03 19:35:13 +02:00
"github.com/hajimehoshi/ebiten/v2/internal/driver"
2015-01-01 17:20:20 +01:00
)
2014-12-14 14:05:44 +01:00
// A Key represents a keyboard key.
2017-04-10 03:45:04 +02:00
// These keys represent pysical keys of US keyboard.
2017-07-23 15:49:04 +02:00
// For example, KeyQ represents Q key on US keyboards and ' (quote) key on Dvorak keyboards.
2014-12-14 08:53:32 +01:00
type Key int
2018-04-13 19:29:18 +02:00
// Keys.
2014-12-14 08:53:32 +01:00
const (
2019-03-30 15:28:07 +01:00
Key0 Key = Key(driver.Key0)
Key1 Key = Key(driver.Key1)
Key2 Key = Key(driver.Key2)
Key3 Key = Key(driver.Key3)
Key4 Key = Key(driver.Key4)
Key5 Key = Key(driver.Key5)
Key6 Key = Key(driver.Key6)
Key7 Key = Key(driver.Key7)
Key8 Key = Key(driver.Key8)
Key9 Key = Key(driver.Key9)
KeyA Key = Key(driver.KeyA)
KeyB Key = Key(driver.KeyB)
KeyC Key = Key(driver.KeyC)
KeyD Key = Key(driver.KeyD)
KeyE Key = Key(driver.KeyE)
KeyF Key = Key(driver.KeyF)
KeyG Key = Key(driver.KeyG)
KeyH Key = Key(driver.KeyH)
KeyI Key = Key(driver.KeyI)
KeyJ Key = Key(driver.KeyJ)
KeyK Key = Key(driver.KeyK)
KeyL Key = Key(driver.KeyL)
KeyM Key = Key(driver.KeyM)
KeyN Key = Key(driver.KeyN)
KeyO Key = Key(driver.KeyO)
KeyP Key = Key(driver.KeyP)
KeyQ Key = Key(driver.KeyQ)
KeyR Key = Key(driver.KeyR)
KeyS Key = Key(driver.KeyS)
KeyT Key = Key(driver.KeyT)
KeyU Key = Key(driver.KeyU)
KeyV Key = Key(driver.KeyV)
KeyW Key = Key(driver.KeyW)
KeyX Key = Key(driver.KeyX)
KeyY Key = Key(driver.KeyY)
KeyZ Key = Key(driver.KeyZ)
KeyApostrophe Key = Key(driver.KeyApostrophe)
KeyBackslash Key = Key(driver.KeyBackslash)
KeyBackspace Key = Key(driver.KeyBackspace)
KeyCapsLock Key = Key(driver.KeyCapsLock)
KeyComma Key = Key(driver.KeyComma)
KeyDelete Key = Key(driver.KeyDelete)
KeyDown Key = Key(driver.KeyDown)
KeyEnd Key = Key(driver.KeyEnd)
KeyEnter Key = Key(driver.KeyEnter)
KeyEqual Key = Key(driver.KeyEqual)
KeyEscape Key = Key(driver.KeyEscape)
KeyF1 Key = Key(driver.KeyF1)
KeyF2 Key = Key(driver.KeyF2)
KeyF3 Key = Key(driver.KeyF3)
KeyF4 Key = Key(driver.KeyF4)
KeyF5 Key = Key(driver.KeyF5)
KeyF6 Key = Key(driver.KeyF6)
KeyF7 Key = Key(driver.KeyF7)
KeyF8 Key = Key(driver.KeyF8)
KeyF9 Key = Key(driver.KeyF9)
KeyF10 Key = Key(driver.KeyF10)
KeyF11 Key = Key(driver.KeyF11)
KeyF12 Key = Key(driver.KeyF12)
KeyGraveAccent Key = Key(driver.KeyGraveAccent)
KeyHome Key = Key(driver.KeyHome)
KeyInsert Key = Key(driver.KeyInsert)
KeyKP0 Key = Key(driver.KeyKP0)
KeyKP1 Key = Key(driver.KeyKP1)
KeyKP2 Key = Key(driver.KeyKP2)
KeyKP3 Key = Key(driver.KeyKP3)
KeyKP4 Key = Key(driver.KeyKP4)
KeyKP5 Key = Key(driver.KeyKP5)
KeyKP6 Key = Key(driver.KeyKP6)
KeyKP7 Key = Key(driver.KeyKP7)
KeyKP8 Key = Key(driver.KeyKP8)
KeyKP9 Key = Key(driver.KeyKP9)
KeyKPAdd Key = Key(driver.KeyKPAdd)
KeyKPDecimal Key = Key(driver.KeyKPDecimal)
KeyKPDivide Key = Key(driver.KeyKPDivide)
KeyKPEnter Key = Key(driver.KeyKPEnter)
KeyKPEqual Key = Key(driver.KeyKPEqual)
KeyKPMultiply Key = Key(driver.KeyKPMultiply)
KeyKPSubtract Key = Key(driver.KeyKPSubtract)
KeyLeft Key = Key(driver.KeyLeft)
KeyLeftBracket Key = Key(driver.KeyLeftBracket)
KeyMenu Key = Key(driver.KeyMenu)
KeyMinus Key = Key(driver.KeyMinus)
KeyNumLock Key = Key(driver.KeyNumLock)
KeyPageDown Key = Key(driver.KeyPageDown)
KeyPageUp Key = Key(driver.KeyPageUp)
KeyPause Key = Key(driver.KeyPause)
KeyPeriod Key = Key(driver.KeyPeriod)
KeyPrintScreen Key = Key(driver.KeyPrintScreen)
KeyRight Key = Key(driver.KeyRight)
KeyRightBracket Key = Key(driver.KeyRightBracket)
KeyScrollLock Key = Key(driver.KeyScrollLock)
KeySemicolon Key = Key(driver.KeySemicolon)
KeySlash Key = Key(driver.KeySlash)
KeySpace Key = Key(driver.KeySpace)
KeyTab Key = Key(driver.KeyTab)
KeyUp Key = Key(driver.KeyUp)
KeyAlt Key = Key(driver.KeyReserved0)
KeyControl Key = Key(driver.KeyReserved1)
KeyShift Key = Key(driver.KeyReserved2)
2020-10-11 11:33:40 +02:00
KeySuper Key = Key(driver.KeyReserved3)
KeyMax Key = KeySuper
2014-12-14 08:53:32 +01:00
)
func (k Key) isValid() bool {
switch k {
case Key0:
return true
case Key1:
return true
case Key2:
return true
case Key3:
return true
case Key4:
return true
case Key5:
return true
case Key6:
return true
case Key7:
return true
case Key8:
return true
case Key9:
return true
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 KeyApostrophe:
return true
case KeyBackslash:
return true
case KeyBackspace:
return true
case KeyCapsLock:
return true
case KeyComma:
return true
case KeyControl:
return true
case KeyDelete:
return true
case KeyDown:
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 KeyGraveAccent:
return true
case KeyHome:
return true
case KeyInsert:
return true
case KeyKP0:
return true
case KeyKP1:
return true
case KeyKP2:
return true
case KeyKP3:
return true
case KeyKP4:
return true
case KeyKP5:
return true
case KeyKP6:
return true
case KeyKP7:
return true
case KeyKP8:
return true
case KeyKP9:
return true
case KeyKPAdd:
return true
case KeyKPDecimal:
return true
case KeyKPDivide:
return true
case KeyKPEnter:
return true
case KeyKPEqual:
return true
case KeyKPMultiply:
return true
case KeyKPSubtract:
return true
case KeyLeft:
return true
case KeyLeftBracket:
return true
case KeyMenu:
return true
case KeyMinus:
return true
case KeyNumLock:
return true
case KeyPageDown:
return true
case KeyPageUp:
return true
case KeyPause:
return true
case KeyPeriod:
return true
case KeyPrintScreen:
return true
case KeyRight:
return true
case KeyRightBracket:
return true
case KeyScrollLock:
return true
case KeySemicolon:
return true
case KeyShift:
return true
case KeySlash:
return true
case KeySpace:
return true
2020-10-11 11:33:40 +02:00
case KeySuper:
return true
case KeyTab:
return true
case KeyUp:
return true
default:
return false
}
}
2018-04-13 20:20:43 +02:00
// 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 Key0:
return "0"
case Key1:
return "1"
case Key2:
return "2"
case Key3:
return "3"
case Key4:
return "4"
case Key5:
return "5"
case Key6:
return "6"
case Key7:
return "7"
case Key8:
return "8"
case Key9:
return "9"
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 KeyApostrophe:
return "Apostrophe"
case KeyBackslash:
return "Backslash"
case KeyBackspace:
return "Backspace"
case KeyCapsLock:
return "CapsLock"
case KeyComma:
return "Comma"
case KeyControl:
return "Control"
case KeyDelete:
return "Delete"
case KeyDown:
return "Down"
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 KeyGraveAccent:
return "GraveAccent"
case KeyHome:
return "Home"
case KeyInsert:
return "Insert"
case KeyKP0:
return "KP0"
case KeyKP1:
return "KP1"
case KeyKP2:
return "KP2"
case KeyKP3:
return "KP3"
case KeyKP4:
return "KP4"
case KeyKP5:
return "KP5"
case KeyKP6:
return "KP6"
case KeyKP7:
return "KP7"
case KeyKP8:
return "KP8"
case KeyKP9:
return "KP9"
case KeyKPAdd:
return "KPAdd"
case KeyKPDecimal:
return "KPDecimal"
case KeyKPDivide:
return "KPDivide"
case KeyKPEnter:
return "KPEnter"
case KeyKPEqual:
return "KPEqual"
case KeyKPMultiply:
return "KPMultiply"
case KeyKPSubtract:
return "KPSubtract"
case KeyLeft:
return "Left"
case KeyLeftBracket:
return "LeftBracket"
case KeyMenu:
return "Menu"
2018-04-13 20:20:43 +02:00
case KeyMinus:
return "Minus"
case KeyNumLock:
return "NumLock"
case KeyPageDown:
return "PageDown"
case KeyPageUp:
return "PageUp"
case KeyPause:
return "Pause"
2018-04-13 20:20:43 +02:00
case KeyPeriod:
return "Period"
case KeyPrintScreen:
return "PrintScreen"
2018-04-13 20:20:43 +02:00
case KeyRight:
return "Right"
case KeyRightBracket:
return "RightBracket"
case KeyScrollLock:
return "ScrollLock"
2018-04-13 20:20:43 +02:00
case KeySemicolon:
return "Semicolon"
case KeyShift:
return "Shift"
case KeySlash:
return "Slash"
case KeySpace:
return "Space"
2020-10-11 11:33:40 +02:00
case KeySuper:
return "Super"
2018-04-13 20:20:43 +02:00
case KeyTab:
return "Tab"
case KeyUp:
return "Up"
}
return ""
}
2020-02-19 02:42:42 +01:00
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 "apostrophe":
return KeyApostrophe, true
case "backslash":
return KeyBackslash, true
case "backspace":
return KeyBackspace, true
case "capslock":
return KeyCapsLock, true
case "comma":
return KeyComma, true
case "control":
return KeyControl, true
case "delete":
return KeyDelete, 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 "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 "minus":
return KeyMinus, true
2018-04-12 18:18:54 +02:00
case "numlock":
return KeyNumLock, 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 "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 "slash":
return KeySlash, true
case "space":
return KeySpace, true
2020-10-11 11:33:40 +02:00
case "super":
return KeySuper, true
case "tab":
return KeyTab, true
case "up":
return KeyUp, true
}
return 0, false
}