Fix and clean, updated CKI

pull/3/head
Minizbot2012 4 years ago
parent 63addabed2
commit 896f03c6f7
No known key found for this signature in database
GPG Key ID: 977C8ADE12361917

@ -4,96 +4,27 @@ import (
"fmt"
"fyne.io/fyne"
"fyne.io/fyne/driver/desktop"
)
//CKIFyneKeyMap Control Keys interop
func CKIFyneKeyMap(e fyne.KeyName) int {
fmt.Println(e)
switch e {
case fyne.KeyUp:
return CommonToASCII["KEY_UP"]
case fyne.KeyDown:
return CommonToASCII["KEY_DOWN"]
case fyne.KeyLeft:
return CommonToASCII["KEY_LEFT"]
case fyne.KeyRight:
return CommonToASCII["KEY_RIGHT"]
case fyne.KeyEnd:
return CommonToASCII["KEY_END"]
case fyne.KeyHome:
return CommonToASCII["KEY_HOME"]
case fyne.KeyInsert:
return CommonToASCII["KEY_INSERT"]
case fyne.KeyDelete:
return CommonToASCII["KEY_DELETE"]
case fyne.KeyEnter:
return CommonToASCII["KEY_ENTER"]
case fyne.KeyTab:
return CommonToASCII["KEY_TAB"]
case fyne.KeyEscape:
return CommonToASCII["KEY_ESC"]
case fyne.KeyF1:
return CommonToASCII["KEY_F1"]
case fyne.KeyF2:
return CommonToASCII["KEY_F2"]
case fyne.KeyF3:
return CommonToASCII["KEY_F3"]
case fyne.KeyF4:
return CommonToASCII["KEY_F4"]
case fyne.KeyF5:
return CommonToASCII["KEY_F5"]
case fyne.KeyF6:
return CommonToASCII["KEY_F6"]
case fyne.KeyF7:
return CommonToASCII["KEY_F7"]
case fyne.KeyF8:
return CommonToASCII["KEY_F8"]
case fyne.KeyF9:
return CommonToASCII["KEY_F9"]
case fyne.KeyF10:
return CommonToASCII["KEY_F10"]
case fyne.KeyF11:
return CommonToASCII["KEY_F11"]
case fyne.KeyF12:
return CommonToASCII["KEY_F12"]
case fyne.KeyPageDown:
return CommonToASCII["KEY_PAGEDOWN"]
case fyne.KeyPageUp:
return CommonToASCII["KEY_PAGEUP"]
case desktop.KeyAltLeft:
return CommonToASCII["KEY_LEFTALT"]
case desktop.KeyAltRight:
return CommonToASCII["KEY_RIGHTALT"]
case desktop.KeyControlLeft:
return CommonToASCII["KEY_LEFTCTRL"]
case desktop.KeyControlRight:
return CommonToASCII["KEY_RIGHTCTRL"]
case desktop.KeyShiftLeft:
return CommonToASCII["KEY_LEFTSHIFT"]
case desktop.KeyShiftRight:
return CommonToASCII["KEY_RIGHTSHIFT"]
default:
return CommonToASCII["KEY_"+string(e)]
}
//CKIFIsCMPLX Determines whether or not to shorten
func CKIFIsCMPLX(e fyne.KeyName) bool {
_, ok := FyneToASCII[e]
return ok
}
//CKIDetName Determines CTRL key status and returns ascii or name for it
func CKIDetName(e fyne.KeyName) string {
i := CKIFyneKeyMap(e)
if i != 0 {
return ASCIIToCommon[i]
}
return "UNK"
//CKIAIsCMPLX Determines whether or not to shorten in revo
func CKIAIsCMPLX(i int) bool {
_, ok := ASCIIToFyne[i]
return ok
}
//CKIDetControl Determines if this is a control key
func CKIDetControl(e fyne.KeyName) bool {
i := CKIFyneKeyMap(e)
if i != 0 {
return true
//CKIFyneKeyMap Control Keys interop
func CKIFyneKeyMap(e fyne.KeyName) int {
fmt.Println(e)
if val, ok := FyneToASCII[e]; ok {
return val
}
return false
return CommonToASCII["KEY_"+string(e)]
}
//CKICommonName returns common name for ascii

@ -3,6 +3,8 @@ package keys
import (
"encoding/json"
"fyne.io/fyne"
"fyne.io/fyne/driver/desktop"
"github.com/minizbot2012/orbbind/box"
)
@ -13,8 +15,45 @@ var (
CommonToScan map[string]int
CommonToASCII map[string]int
FyneToASCII map[fyne.KeyName]int
ASCIIToFyne map[int]fyne.KeyName
)
func genStatics() {
FyneToASCII[fyne.KeyUp] = CommonToASCII["KEY_UP"]
FyneToASCII[fyne.KeyDown] = CommonToASCII["KEY_DOWN"]
FyneToASCII[fyne.KeyRight] = CommonToASCII["KEY_RIGHT"]
FyneToASCII[fyne.KeyLeft] = CommonToASCII["KEY_LEFT"]
FyneToASCII[fyne.KeyEnd] = CommonToASCII["KEY_END"]
FyneToASCII[fyne.KeyHome] = CommonToASCII["KEY_HOME"]
FyneToASCII[fyne.KeyInsert] = CommonToASCII["KEY_INSERT"]
FyneToASCII[fyne.KeyDelete] = CommonToASCII["KEY_DELETE"]
FyneToASCII[fyne.KeyEnter] = CommonToASCII["KEY_ENTER"]
FyneToASCII[fyne.KeyTab] = CommonToASCII["KEY_TAB"]
FyneToASCII[fyne.KeyEscape] = CommonToASCII["KEY_ESC"]
FyneToASCII[fyne.KeyF1] = CommonToASCII["KEY_F1"]
FyneToASCII[fyne.KeyF2] = CommonToASCII["KEY_F2"]
FyneToASCII[fyne.KeyF3] = CommonToASCII["KEY_F3"]
FyneToASCII[fyne.KeyF4] = CommonToASCII["KEY_F4"]
FyneToASCII[fyne.KeyF5] = CommonToASCII["KEY_F5"]
FyneToASCII[fyne.KeyF6] = CommonToASCII["KEY_F6"]
FyneToASCII[fyne.KeyF7] = CommonToASCII["KEY_F7"]
FyneToASCII[fyne.KeyF8] = CommonToASCII["KEY_F8"]
FyneToASCII[fyne.KeyF9] = CommonToASCII["KEY_F9"]
FyneToASCII[fyne.KeyF10] = CommonToASCII["KEY_F10"]
FyneToASCII[fyne.KeyF11] = CommonToASCII["KEY_F11"]
FyneToASCII[fyne.KeyF12] = CommonToASCII["KEY_F12"]
FyneToASCII[fyne.KeyPageDown] = CommonToASCII["KEY_PAGEDOWN"]
FyneToASCII[fyne.KeyPageUp] = CommonToASCII["KEY_PAGEUP"]
FyneToASCII[fyne.KeySpace] = CommonToASCII["KEY_SPACE"]
FyneToASCII[desktop.KeyAltLeft] = CommonToASCII["KEY_LEFTALT"]
FyneToASCII[desktop.KeyAltRight] = CommonToASCII["KEY_RIGHTALT"]
FyneToASCII[desktop.KeyControlLeft] = CommonToASCII["KEY_LEFTCTRL"]
FyneToASCII[desktop.KeyControlRight] = CommonToASCII["KEY_RIGHTCTRL"]
FyneToASCII[desktop.KeyShiftLeft] = CommonToASCII["KEY_LEFTSHIFT"]
FyneToASCII[desktop.KeyShiftRight] = CommonToASCII["KEY_RIGHTSHIFT"]
}
func genMap() {
ASCII := box.Get("ascii.json")
SC := box.Get("scancodes.json")
@ -26,6 +65,10 @@ func genMap() {
for k, v := range CommonToScan {
ScanToCommon[v] = k
}
genStatics()
for k, v := range FyneToASCII {
ASCIIToFyne[v] = k
}
}
//GetASCIIForSC Returns Ascii for Scancode
@ -44,5 +87,8 @@ func init() {
CommonToScan = make(map[string]int)
CommonToASCII = make(map[string]int)
FyneToASCII = make(map[fyne.KeyName]int)
ASCIIToFyne = make(map[int]fyne.KeyName)
genMap()
}

@ -26,7 +26,7 @@ type Page struct {
//TypeKey event on key
func (bp *Page) TypeKey(e *fyne.KeyEvent) {
bp.Bind.Bound = keys.CKIFyneKeyMap(e.Name)
if !keys.CKIDetControl(e.Name) {
if !keys.CKIFIsCMPLX(e.Name) {
kp := keys.ASCIIToCommon[int(e.Name[0])]
bp.dev["BL"].(*widget.Label).SetText(kp)
} else {
@ -61,11 +61,10 @@ func (bp *Page) createGrid() *fyne.Container {
//Create the binding page popup
func (bp *Page) Create(bid string) fyne.CanvasObject {
bp.dev = make(map[string]fyne.CanvasObject)
cmn := len(keys.ASCIIToCommon[bp.Bind.Bound])
if cmn == 5 {
bp.dev["BL"] = widget.NewLabel(string(keys.ASCIIToCommon[bp.Bind.Bound][cmn-1]))
} else {
if keys.CKIAIsCMPLX(bp.Bind.Bound) {
bp.dev["BL"] = widget.NewLabel(string(keys.ASCIIToCommon[bp.Bind.Bound]))
} else {
bp.dev["BL"] = widget.NewLabel(keys.CKIName(bp.Bind.Bound))
}
pop := widget.NewVBox(bp.dev["BL"], bp.createGrid())
bp.window.Canvas().SetOnTypedKey(bp.TypeKey)

Loading…
Cancel
Save