mirror of https://github.com/OrbTools/OrbBind
further port to Fyne v2
parent
079a65bd7d
commit
911cda4fb0
@ -1,45 +1,70 @@
|
|||||||
package keys
|
package keys
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fyne.io/fyne/v2"
|
"strings"
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
"fyne.io/fyne/v2"
|
||||||
//KCToASCII keycode to ascii table
|
"fyne.io/fyne/v2/driver/desktop"
|
||||||
KCToASCII map[Code]rune
|
"github.com/OrbTools/OrbCommon/hid"
|
||||||
)
|
)
|
||||||
|
|
||||||
//GetASCIIForSC Returns Ascii for Scancode
|
func FyneToKeymap(e *fyne.KeyEvent) hid.Key {
|
||||||
func GetASCIIForSC(r uint16) uint16 {
|
switch e.Name {
|
||||||
return uint16(KCToASCII[Code(r)])
|
case fyne.Key0:
|
||||||
}
|
case fyne.Key1:
|
||||||
|
case fyne.Key2:
|
||||||
//GetSCForASCII Returns scancode For Ascii
|
case fyne.Key3:
|
||||||
func GetSCForASCII(r uint16) uint16 {
|
case fyne.Key4:
|
||||||
return uint16(ASCIIToKC[rune(r)])
|
case fyne.Key5:
|
||||||
}
|
case fyne.Key6:
|
||||||
|
case fyne.Key7:
|
||||||
func init() {
|
case fyne.Key8:
|
||||||
KCToASCII = make(map[Code]rune)
|
case fyne.Key9:
|
||||||
for x, y := range ASCIIToKC {
|
return hid.GetMappingFromName("DIGIT" + string(e.Name))
|
||||||
KCToASCII[y] = x
|
case fyne.KeyF1:
|
||||||
}
|
case fyne.KeyF2:
|
||||||
}
|
case fyne.KeyF3:
|
||||||
|
case fyne.KeyF4:
|
||||||
//CKIFyneKeyMap Control Keys interop
|
case fyne.KeyF5:
|
||||||
func CKIFyneKeyMap(e fyne.KeyName) uint16 {
|
case fyne.KeyF6:
|
||||||
if val, ok := FyneToKC[e]; ok {
|
case fyne.KeyF7:
|
||||||
return uint16(val)
|
case fyne.KeyF8:
|
||||||
|
case fyne.KeyF9:
|
||||||
|
case fyne.KeyF10:
|
||||||
|
case fyne.KeyF11:
|
||||||
|
case fyne.KeyF12:
|
||||||
|
return hid.GetMappingFromName(string(e.Name))
|
||||||
|
case fyne.KeyLeft:
|
||||||
|
case fyne.KeyRight:
|
||||||
|
case fyne.KeyUp:
|
||||||
|
case fyne.KeyDown:
|
||||||
|
return hid.GetMappingFromName("ARROW_" + strings.ToUpper(string(e.Name)))
|
||||||
|
case fyne.KeyBackspace:
|
||||||
|
case fyne.KeyBackslash:
|
||||||
|
case fyne.KeyEscape:
|
||||||
|
return hid.GetMappingFromName(strings.ToUpper(string(e.Name)))
|
||||||
|
case fyne.KeyReturn:
|
||||||
|
return hid.GetMappingFromName("ENTER")
|
||||||
|
case desktop.KeyAltLeft:
|
||||||
|
return hid.GetMappingFromName("ALT_LEFT")
|
||||||
|
case desktop.KeyAltRight:
|
||||||
|
return hid.GetMappingFromName("ALT_RIGHT")
|
||||||
|
case desktop.KeyControlLeft:
|
||||||
|
return hid.GetMappingFromName("CONTROL_LEFT")
|
||||||
|
case desktop.KeyControlRight:
|
||||||
|
return hid.GetMappingFromName("CONTROL_RIGHT")
|
||||||
|
case desktop.KeyShiftLeft:
|
||||||
|
return hid.GetMappingFromName("SHIFT_LEFT")
|
||||||
|
case desktop.KeyShiftRight:
|
||||||
|
return hid.GetMappingFromName("SHIFT_RIGHT")
|
||||||
|
case fyne.KeyTab:
|
||||||
|
return hid.GetMappingFromName("TAB")
|
||||||
|
default:
|
||||||
|
return hid.GetMappingFromName("US_" + strings.ToUpper(string(e.Name)))
|
||||||
}
|
}
|
||||||
return 0
|
return hid.GetMappingFromName("USB_RESERVED")
|
||||||
}
|
|
||||||
|
|
||||||
//CKIKeyNameFromKC Key Name from Keycode
|
|
||||||
func CKIKeyNameFromKC(r uint16) string {
|
|
||||||
return Code(r).String()[4:]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//CKIKeyNameFromASCII key name from ascii code
|
func KeyFromEvdev(b uint16) hid.Key {
|
||||||
func CKIKeyNameFromASCII(r uint16) string {
|
return hid.GetMappingFromLinux(b)
|
||||||
return ASCIIToKC[rune(r)].String()[4:]
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue