2019-10-17 19:57:20 +03:00
|
|
|
package ui
|
|
|
|
|
|
|
|
|
|
import (
|
2019-10-26 23:32:32 +03:00
|
|
|
"lab.zaar.be/thefish/alchemyst-go/util"
|
|
|
|
|
blt "lab.zaar.be/thefish/bearlibterminal"
|
2019-10-17 19:57:20 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var modifiers = []int{blt.TK_SHIFT, blt.TK_ALT, blt.TK_CONTROL}
|
|
|
|
|
|
2019-10-31 02:33:37 +03:00
|
|
|
func ReadKey() (string, int) {
|
2019-10-17 19:57:20 +03:00
|
|
|
if !blt.HasInput() {
|
|
|
|
|
return "", blt.TK_NONE
|
|
|
|
|
}
|
|
|
|
|
var key = blt.Read()
|
|
|
|
|
var pressed = ""
|
2019-11-10 01:24:45 +03:00
|
|
|
var isModifier, _ = util.IntInSlice(key, modifiers)
|
2019-10-17 19:57:20 +03:00
|
|
|
if !isModifier {
|
|
|
|
|
|
|
|
|
|
pressed = Scancodemap[key]
|
|
|
|
|
|
|
|
|
|
if blt.Check(blt.TK_SHIFT) != 0 {
|
|
|
|
|
pressed = "Shift+" + pressed
|
|
|
|
|
}
|
|
|
|
|
if blt.Check(blt.TK_ALT) != 0 {
|
|
|
|
|
pressed = "Alt+" + pressed
|
|
|
|
|
}
|
|
|
|
|
if blt.Check(blt.TK_CONTROL) != 0 {
|
|
|
|
|
pressed = "Ctrl+" + pressed
|
|
|
|
|
}
|
2019-11-13 02:56:09 +03:00
|
|
|
//appctx.Logger().Debug().Msg(pressed)
|
2019-10-17 19:57:20 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return pressed, key
|
|
|
|
|
}
|
2019-10-31 14:01:54 +03:00
|
|
|
|
|
|
|
|
func ReadKeyCode() int {
|
|
|
|
|
if !blt.HasInput() {
|
|
|
|
|
return blt.TK_NONE
|
|
|
|
|
}
|
|
|
|
|
return blt.Read()
|
|
|
|
|
}
|