mirror of https://github.com/OrbTools/OrbBind
Merge branch 'main' of github.com:Minizbot2012/orbbind into main
commit
0bf7605810
@ -1,12 +1,12 @@
|
|||||||
# These are supported funding model platforms
|
# These are supported funding model platforms
|
||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
patreon: # Replace with a single Patreon username
|
patreon: # Replace with a single Patreon username
|
||||||
open_collective: # Replace with a single Open Collective username
|
open_collective: # Replace with a single Open Collective username
|
||||||
ko_fi: minizbot # Replace with a single Ko-fi username
|
ko_fi: minizbot # Replace with a single Ko-fi username
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
liberapay: # Replace with a single Liberapay username
|
liberapay: # Replace with a single Liberapay username
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
otechie: # Replace with a single Otechie username
|
otechie: # Replace with a single Otechie username
|
||||||
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
Orbweaver Mapping utility for orbmap
|
Orbweaver Mapping utility for orbmap
|
||||||
```go get github.com/Minizbot2012/orbbind```
|
```go get github.com/Minizbot2012/orbbind```
|
@ -1,28 +1,28 @@
|
|||||||
package orbweaver
|
package orbweaver
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
|
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
)
|
)
|
||||||
|
|
||||||
//PKM format for altering the keymap
|
//PKM format for altering the keymap
|
||||||
type PKM struct {
|
type PKM struct {
|
||||||
MIP [20]uint16
|
MIP [20]uint16
|
||||||
SIP [6]uint16
|
SIP [6]uint16
|
||||||
COL [3]byte
|
COL [3]byte
|
||||||
}
|
}
|
||||||
|
|
||||||
//SaveIntoKeymap saves an orb
|
//SaveIntoKeymap saves an orb
|
||||||
func SaveIntoKeymap(mapped *PKM, file fyne.URIWriteCloser) {
|
func SaveIntoKeymap(mapped *PKM, file fyne.URIWriteCloser) {
|
||||||
binary.Write(file, binary.LittleEndian, mapped)
|
binary.Write(file, binary.LittleEndian, mapped)
|
||||||
file.Close()
|
file.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
//LoadFile loads an orb
|
//LoadFile loads an orb
|
||||||
func LoadFile(file fyne.URIReadCloser) *PKM {
|
func LoadFile(file fyne.URIReadCloser) *PKM {
|
||||||
mapped := &PKM{}
|
mapped := new(PKM)
|
||||||
binary.Read(file, binary.LittleEndian, mapped)
|
binary.Read(file, binary.LittleEndian, mapped)
|
||||||
file.Close()
|
file.Close()
|
||||||
return mapped
|
return mapped
|
||||||
}
|
}
|
||||||
|
@ -1,131 +1,131 @@
|
|||||||
package keys
|
package keys
|
||||||
|
|
||||||
// Common Interface 2, natified go
|
// Common Interface 2, natified go
|
||||||
import (
|
import (
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
"fyne.io/fyne/driver/desktop"
|
"fyne.io/fyne/driver/desktop"
|
||||||
)
|
)
|
||||||
|
|
||||||
//ASCIIToKC -- ASCII Value to a KBD Scancode
|
//ASCIIToKC -- ASCII Value to a KBD Scancode
|
||||||
var ASCIIToKC = map[rune]Code{
|
var ASCIIToKC = map[rune]Code{
|
||||||
'a': CodeA,
|
'a': CodeA,
|
||||||
'b': CodeB,
|
'b': CodeB,
|
||||||
'c': CodeC,
|
'c': CodeC,
|
||||||
'd': CodeD,
|
'd': CodeD,
|
||||||
'e': CodeE,
|
'e': CodeE,
|
||||||
'f': CodeF,
|
'f': CodeF,
|
||||||
'g': CodeG,
|
'g': CodeG,
|
||||||
'h': CodeH,
|
'h': CodeH,
|
||||||
'i': CodeI,
|
'i': CodeI,
|
||||||
'k': CodeK,
|
'k': CodeK,
|
||||||
'l': CodeL,
|
'l': CodeL,
|
||||||
'm': CodeM,
|
'm': CodeM,
|
||||||
'n': CodeN,
|
'n': CodeN,
|
||||||
'o': CodeO,
|
'o': CodeO,
|
||||||
'p': CodeP,
|
'p': CodeP,
|
||||||
'q': CodeQ,
|
'q': CodeQ,
|
||||||
'r': CodeR,
|
'r': CodeR,
|
||||||
's': CodeS,
|
's': CodeS,
|
||||||
't': CodeT,
|
't': CodeT,
|
||||||
'u': CodeU,
|
'u': CodeU,
|
||||||
'v': CodeV,
|
'v': CodeV,
|
||||||
'w': CodeW,
|
'w': CodeW,
|
||||||
'x': CodeX,
|
'x': CodeX,
|
||||||
'y': CodeY,
|
'y': CodeY,
|
||||||
'z': CodeZ,
|
'z': CodeZ,
|
||||||
'0': Code0,
|
'0': Code0,
|
||||||
'1': Code1,
|
'1': Code1,
|
||||||
'2': Code2,
|
'2': Code2,
|
||||||
'3': Code3,
|
'3': Code3,
|
||||||
'4': Code4,
|
'4': Code4,
|
||||||
'5': Code5,
|
'5': Code5,
|
||||||
'6': Code6,
|
'6': Code6,
|
||||||
'7': Code7,
|
'7': Code7,
|
||||||
'8': Code8,
|
'8': Code8,
|
||||||
'9': Code9,
|
'9': Code9,
|
||||||
' ': CodeSpace,
|
' ': CodeSpace,
|
||||||
'-': CodeMinus,
|
'-': CodeMinus,
|
||||||
'=': CodeEqual,
|
'=': CodeEqual,
|
||||||
'[': CodeLeftBrack,
|
'[': CodeLeftBrack,
|
||||||
']': CodeRightBrace,
|
']': CodeRightBrace,
|
||||||
'\\': CodeBackslash,
|
'\\': CodeBackslash,
|
||||||
';': CodeSemicolon,
|
';': CodeSemicolon,
|
||||||
'\'': CodeApostrophe,
|
'\'': CodeApostrophe,
|
||||||
'`': CodeGrave,
|
'`': CodeGrave,
|
||||||
',': CodeComma,
|
',': CodeComma,
|
||||||
'.': CodeDot,
|
'.': CodeDot,
|
||||||
'/': CodeSlash,
|
'/': CodeSlash,
|
||||||
}
|
}
|
||||||
|
|
||||||
//FyneToKC - conversion between fyne to ode
|
//FyneToKC - conversion between fyne to ode
|
||||||
var FyneToKC = map[fyne.KeyName]Code{
|
var FyneToKC = map[fyne.KeyName]Code{
|
||||||
fyne.Key0: Code0,
|
fyne.Key0: Code0,
|
||||||
fyne.Key1: Code1,
|
fyne.Key1: Code1,
|
||||||
fyne.Key2: Code2,
|
fyne.Key2: Code2,
|
||||||
fyne.Key3: Code3,
|
fyne.Key3: Code3,
|
||||||
fyne.Key4: Code4,
|
fyne.Key4: Code4,
|
||||||
fyne.Key5: Code5,
|
fyne.Key5: Code5,
|
||||||
fyne.Key6: Code6,
|
fyne.Key6: Code6,
|
||||||
fyne.Key7: Code7,
|
fyne.Key7: Code7,
|
||||||
fyne.Key8: Code8,
|
fyne.Key8: Code8,
|
||||||
fyne.Key9: Code9,
|
fyne.Key9: Code9,
|
||||||
fyne.KeyA: CodeA,
|
fyne.KeyA: CodeA,
|
||||||
fyne.KeyB: CodeB,
|
fyne.KeyB: CodeB,
|
||||||
fyne.KeyC: CodeC,
|
fyne.KeyC: CodeC,
|
||||||
fyne.KeyD: CodeD,
|
fyne.KeyD: CodeD,
|
||||||
fyne.KeyE: CodeE,
|
fyne.KeyE: CodeE,
|
||||||
fyne.KeyF: CodeF,
|
fyne.KeyF: CodeF,
|
||||||
fyne.KeyG: CodeG,
|
fyne.KeyG: CodeG,
|
||||||
fyne.KeyH: CodeH,
|
fyne.KeyH: CodeH,
|
||||||
fyne.KeyI: CodeI,
|
fyne.KeyI: CodeI,
|
||||||
fyne.KeyJ: CodeJ,
|
fyne.KeyJ: CodeJ,
|
||||||
fyne.KeyK: CodeK,
|
fyne.KeyK: CodeK,
|
||||||
fyne.KeyL: CodeL,
|
fyne.KeyL: CodeL,
|
||||||
fyne.KeyM: CodeM,
|
fyne.KeyM: CodeM,
|
||||||
fyne.KeyN: CodeN,
|
fyne.KeyN: CodeN,
|
||||||
fyne.KeyO: CodeO,
|
fyne.KeyO: CodeO,
|
||||||
fyne.KeyP: CodeP,
|
fyne.KeyP: CodeP,
|
||||||
fyne.KeyQ: CodeQ,
|
fyne.KeyQ: CodeQ,
|
||||||
fyne.KeyR: CodeR,
|
fyne.KeyR: CodeR,
|
||||||
fyne.KeyS: CodeS,
|
fyne.KeyS: CodeS,
|
||||||
fyne.KeyT: CodeT,
|
fyne.KeyT: CodeT,
|
||||||
fyne.KeyU: CodeU,
|
fyne.KeyU: CodeU,
|
||||||
fyne.KeyV: CodeV,
|
fyne.KeyV: CodeV,
|
||||||
fyne.KeyW: CodeW,
|
fyne.KeyW: CodeW,
|
||||||
fyne.KeyX: CodeX,
|
fyne.KeyX: CodeX,
|
||||||
fyne.KeyY: CodeY,
|
fyne.KeyY: CodeY,
|
||||||
fyne.KeyZ: CodeZ,
|
fyne.KeyZ: CodeZ,
|
||||||
fyne.KeyUp: CodeUpArrow,
|
fyne.KeyUp: CodeUpArrow,
|
||||||
fyne.KeyDown: CodeDownArrow,
|
fyne.KeyDown: CodeDownArrow,
|
||||||
fyne.KeyRight: CodeRightArrow,
|
fyne.KeyRight: CodeRightArrow,
|
||||||
fyne.KeyLeft: CodeLeftArrow,
|
fyne.KeyLeft: CodeLeftArrow,
|
||||||
fyne.KeyEnd: CodeEnd,
|
fyne.KeyEnd: CodeEnd,
|
||||||
fyne.KeyHome: CodeHome,
|
fyne.KeyHome: CodeHome,
|
||||||
fyne.KeyInsert: CodeInsert,
|
fyne.KeyInsert: CodeInsert,
|
||||||
fyne.KeyDelete: CodeDelete,
|
fyne.KeyDelete: CodeDelete,
|
||||||
fyne.KeyEnter: CodeEnter,
|
fyne.KeyEnter: CodeEnter,
|
||||||
fyne.KeyTab: CodeTab,
|
fyne.KeyTab: CodeTab,
|
||||||
fyne.KeyEscape: CodeESC,
|
fyne.KeyEscape: CodeESC,
|
||||||
fyne.KeyF1: CodeF1,
|
fyne.KeyF1: CodeF1,
|
||||||
fyne.KeyF2: CodeF2,
|
fyne.KeyF2: CodeF2,
|
||||||
fyne.KeyF3: CodeF3,
|
fyne.KeyF3: CodeF3,
|
||||||
fyne.KeyF4: CodeF4,
|
fyne.KeyF4: CodeF4,
|
||||||
fyne.KeyF5: CodeF5,
|
fyne.KeyF5: CodeF5,
|
||||||
fyne.KeyF6: CodeF6,
|
fyne.KeyF6: CodeF6,
|
||||||
fyne.KeyF7: CodeF7,
|
fyne.KeyF7: CodeF7,
|
||||||
fyne.KeyF8: CodeF8,
|
fyne.KeyF8: CodeF8,
|
||||||
fyne.KeyF9: CodeF9,
|
fyne.KeyF9: CodeF9,
|
||||||
fyne.KeyF10: CodeF10,
|
fyne.KeyF10: CodeF10,
|
||||||
fyne.KeyF11: CodeF11,
|
fyne.KeyF11: CodeF11,
|
||||||
fyne.KeyF12: CodeF12,
|
fyne.KeyF12: CodeF12,
|
||||||
fyne.KeyPageDown: CodePageDown,
|
fyne.KeyPageDown: CodePageDown,
|
||||||
fyne.KeyPageUp: CodePageUp,
|
fyne.KeyPageUp: CodePageUp,
|
||||||
fyne.KeySpace: CodeSpace,
|
fyne.KeySpace: CodeSpace,
|
||||||
fyne.KeyBackTick: CodeGrave,
|
fyne.KeyBackTick: CodeGrave,
|
||||||
desktop.KeyAltLeft: CodeLeftAlt,
|
desktop.KeyAltLeft: CodeLeftAlt,
|
||||||
desktop.KeyAltRight: CodeRightAlt,
|
desktop.KeyAltRight: CodeRightAlt,
|
||||||
desktop.KeyControlLeft: CodeLeftCntl,
|
desktop.KeyControlLeft: CodeLeftCntl,
|
||||||
desktop.KeyControlRight: CodeRightControl,
|
desktop.KeyControlRight: CodeRightControl,
|
||||||
desktop.KeyShiftLeft: CodeLeftShift,
|
desktop.KeyShiftLeft: CodeLeftShift,
|
||||||
desktop.KeyShiftRight: CodeRightShift,
|
desktop.KeyShiftRight: CodeRightShift,
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,45 @@
|
|||||||
package keys
|
package keys
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//KCToASCII keycode to ascii table
|
//KCToASCII keycode to ascii table
|
||||||
KCToASCII map[Code]rune
|
KCToASCII map[Code]rune
|
||||||
)
|
)
|
||||||
|
|
||||||
//GetASCIIForSC Returns Ascii for Scancode
|
//GetASCIIForSC Returns Ascii for Scancode
|
||||||
func GetASCIIForSC(r uint16) uint16 {
|
func GetASCIIForSC(r uint16) uint16 {
|
||||||
return uint16(KCToASCII[Code(r)])
|
return uint16(KCToASCII[Code(r)])
|
||||||
}
|
}
|
||||||
|
|
||||||
//GetSCForASCII Returns scancode For Ascii
|
//GetSCForASCII Returns scancode For Ascii
|
||||||
func GetSCForASCII(r uint16) uint16 {
|
func GetSCForASCII(r uint16) uint16 {
|
||||||
return uint16(ASCIIToKC[rune(r)])
|
return uint16(ASCIIToKC[rune(r)])
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
KCToASCII = make(map[Code]rune)
|
KCToASCII = make(map[Code]rune)
|
||||||
for x, y := range ASCIIToKC {
|
for x, y := range ASCIIToKC {
|
||||||
KCToASCII[y] = x
|
KCToASCII[y] = x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//CKIFyneKeyMap Control Keys interop
|
//CKIFyneKeyMap Control Keys interop
|
||||||
func CKIFyneKeyMap(e fyne.KeyName) uint16 {
|
func CKIFyneKeyMap(e fyne.KeyName) uint16 {
|
||||||
if val, ok := FyneToKC[e]; ok {
|
if val, ok := FyneToKC[e]; ok {
|
||||||
return uint16(val)
|
return uint16(val)
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
//CKIKeyNameFromKC Key Name from Keycode
|
//CKIKeyNameFromKC Key Name from Keycode
|
||||||
func CKIKeyNameFromKC(r uint16) string {
|
func CKIKeyNameFromKC(r uint16) string {
|
||||||
return Code(r).String()[4:]
|
return Code(r).String()[4:]
|
||||||
}
|
}
|
||||||
|
|
||||||
//CKIKeyNameFromASCII key name from ascii code
|
//CKIKeyNameFromASCII key name from ascii code
|
||||||
func CKIKeyNameFromASCII(r uint16) string {
|
func CKIKeyNameFromASCII(r uint16) string {
|
||||||
return ASCIIToKC[rune(r)].String()[4:]
|
return ASCIIToKC[rune(r)].String()[4:]
|
||||||
}
|
}
|
||||||
|
@ -1,109 +1,109 @@
|
|||||||
//go:generate stringer --type Code
|
//go:generate stringer --type Code
|
||||||
//Package keys provides back end keymapping
|
//Package keys provides back end keymapping
|
||||||
package keys
|
package keys
|
||||||
|
|
||||||
//Code ScanCode object
|
//Code ScanCode object
|
||||||
type Code uint16
|
type Code uint16
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CodeNone Code = 0
|
CodeNone Code = 0
|
||||||
CodeESC Code = 1
|
CodeESC Code = 1
|
||||||
Code1 Code = 2
|
Code1 Code = 2
|
||||||
Code2 Code = 3
|
Code2 Code = 3
|
||||||
Code3 Code = 4
|
Code3 Code = 4
|
||||||
Code4 Code = 5
|
Code4 Code = 5
|
||||||
Code5 Code = 6
|
Code5 Code = 6
|
||||||
Code6 Code = 7
|
Code6 Code = 7
|
||||||
Code7 Code = 8
|
Code7 Code = 8
|
||||||
Code8 Code = 9
|
Code8 Code = 9
|
||||||
Code9 Code = 10
|
Code9 Code = 10
|
||||||
Code0 Code = 11
|
Code0 Code = 11
|
||||||
CodeMinus Code = 12
|
CodeMinus Code = 12
|
||||||
CodeEqual Code = 13
|
CodeEqual Code = 13
|
||||||
CodeBackspace Code = 14
|
CodeBackspace Code = 14
|
||||||
CodeTab Code = 15
|
CodeTab Code = 15
|
||||||
CodeQ Code = 16
|
CodeQ Code = 16
|
||||||
CodeW Code = 17
|
CodeW Code = 17
|
||||||
CodeE Code = 18
|
CodeE Code = 18
|
||||||
CodeR Code = 19
|
CodeR Code = 19
|
||||||
CodeT Code = 20
|
CodeT Code = 20
|
||||||
CodeY Code = 21
|
CodeY Code = 21
|
||||||
CodeU Code = 22
|
CodeU Code = 22
|
||||||
CodeI Code = 23
|
CodeI Code = 23
|
||||||
CodeO Code = 24
|
CodeO Code = 24
|
||||||
CodeP Code = 25
|
CodeP Code = 25
|
||||||
CodeLeftBrack Code = 26
|
CodeLeftBrack Code = 26
|
||||||
CodeRightBrace Code = 27
|
CodeRightBrace Code = 27
|
||||||
CodeEnter Code = 28
|
CodeEnter Code = 28
|
||||||
CodeLeftCntl Code = 29
|
CodeLeftCntl Code = 29
|
||||||
CodeA Code = 30
|
CodeA Code = 30
|
||||||
CodeS Code = 31
|
CodeS Code = 31
|
||||||
CodeD Code = 32
|
CodeD Code = 32
|
||||||
CodeF Code = 33
|
CodeF Code = 33
|
||||||
CodeG Code = 34
|
CodeG Code = 34
|
||||||
CodeH Code = 35
|
CodeH Code = 35
|
||||||
CodeJ Code = 36
|
CodeJ Code = 36
|
||||||
CodeK Code = 37
|
CodeK Code = 37
|
||||||
CodeL Code = 38
|
CodeL Code = 38
|
||||||
CodeSemicolon Code = 39
|
CodeSemicolon Code = 39
|
||||||
CodeApostrophe Code = 40
|
CodeApostrophe Code = 40
|
||||||
CodeGrave Code = 41
|
CodeGrave Code = 41
|
||||||
CodeLeftShift Code = 42
|
CodeLeftShift Code = 42
|
||||||
CodeBackslash Code = 43
|
CodeBackslash Code = 43
|
||||||
CodeZ Code = 44
|
CodeZ Code = 44
|
||||||
CodeX Code = 45
|
CodeX Code = 45
|
||||||
CodeC Code = 46
|
CodeC Code = 46
|
||||||
CodeV Code = 47
|
CodeV Code = 47
|
||||||
CodeB Code = 48
|
CodeB Code = 48
|
||||||
CodeN Code = 49
|
CodeN Code = 49
|
||||||
CodeM Code = 50
|
CodeM Code = 50
|
||||||
CodeComma Code = 51
|
CodeComma Code = 51
|
||||||
CodeDot Code = 52
|
CodeDot Code = 52
|
||||||
CodeSlash Code = 53
|
CodeSlash Code = 53
|
||||||
CodeRightShift Code = 54
|
CodeRightShift Code = 54
|
||||||
CodeKPAsterisk Code = 55
|
CodeKPAsterisk Code = 55
|
||||||
CodeLeftAlt Code = 56
|
CodeLeftAlt Code = 56
|
||||||
CodeSpace Code = 57
|
CodeSpace Code = 57
|
||||||
CodeCapsLock Code = 58
|
CodeCapsLock Code = 58
|
||||||
CodeF1 Code = 59
|
CodeF1 Code = 59
|
||||||
CodeF2 Code = 60
|
CodeF2 Code = 60
|
||||||
CodeF3 Code = 61
|
CodeF3 Code = 61
|
||||||
CodeF4 Code = 62
|
CodeF4 Code = 62
|
||||||
CodeF5 Code = 63
|
CodeF5 Code = 63
|
||||||
CodeF6 Code = 64
|
CodeF6 Code = 64
|
||||||
CodeF7 Code = 65
|
CodeF7 Code = 65
|
||||||
CodeF8 Code = 66
|
CodeF8 Code = 66
|
||||||
CodeF9 Code = 67
|
CodeF9 Code = 67
|
||||||
CodeF10 Code = 68
|
CodeF10 Code = 68
|
||||||
CodeNumlock Code = 69
|
CodeNumlock Code = 69
|
||||||
CodeScrollLock Code = 70
|
CodeScrollLock Code = 70
|
||||||
CodeKP7 Code = 71
|
CodeKP7 Code = 71
|
||||||
CodeKP8 Code = 72
|
CodeKP8 Code = 72
|
||||||
CodeKP9 Code = 73
|
CodeKP9 Code = 73
|
||||||
CodeKPMinus Code = 74
|
CodeKPMinus Code = 74
|
||||||
CodeKP4 Code = 75
|
CodeKP4 Code = 75
|
||||||
CodeKP5 Code = 76
|
CodeKP5 Code = 76
|
||||||
CodeKP6 Code = 77
|
CodeKP6 Code = 77
|
||||||
CodeKPPlus Code = 78
|
CodeKPPlus Code = 78
|
||||||
CodeKP1 Code = 79
|
CodeKP1 Code = 79
|
||||||
CodeKP2 Code = 80
|
CodeKP2 Code = 80
|
||||||
CodeKP3 Code = 81
|
CodeKP3 Code = 81
|
||||||
CodeKP0 Code = 82
|
CodeKP0 Code = 82
|
||||||
CodeKPDot Code = 83
|
CodeKPDot Code = 83
|
||||||
CodeF11 Code = 87
|
CodeF11 Code = 87
|
||||||
CodeF12 Code = 88
|
CodeF12 Code = 88
|
||||||
CodeKPEnter Code = 96
|
CodeKPEnter Code = 96
|
||||||
CodeRightControl Code = 97
|
CodeRightControl Code = 97
|
||||||
CodeKPSlash Code = 98
|
CodeKPSlash Code = 98
|
||||||
CodeRightAlt Code = 100
|
CodeRightAlt Code = 100
|
||||||
CodeHome Code = 102
|
CodeHome Code = 102
|
||||||
CodeUpArrow Code = 103
|
CodeUpArrow Code = 103
|
||||||
CodePageUp Code = 104
|
CodePageUp Code = 104
|
||||||
CodeLeftArrow Code = 105
|
CodeLeftArrow Code = 105
|
||||||
CodeRightArrow Code = 106
|
CodeRightArrow Code = 106
|
||||||
CodeEnd Code = 107
|
CodeEnd Code = 107
|
||||||
CodeDownArrow Code = 108
|
CodeDownArrow Code = 108
|
||||||
CodePageDown Code = 109
|
CodePageDown Code = 109
|
||||||
CodeInsert Code = 110
|
CodeInsert Code = 110
|
||||||
CodeDelete Code = 111
|
CodeDelete Code = 111
|
||||||
)
|
)
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
package baseui
|
package baseui
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
"fyne.io/fyne/widget"
|
"fyne.io/fyne/widget"
|
||||||
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
||||||
)
|
)
|
||||||
|
|
||||||
//BasicPage creates a very basic Page
|
//BasicPage creates a very basic Page
|
||||||
type BasicPage interface {
|
type BasicPage interface {
|
||||||
Create() *widget.TabItem
|
Create() *widget.TabItem
|
||||||
}
|
}
|
||||||
|
|
||||||
//PageWithBindings defines a page with bindings
|
//PageWithBindings defines a page with bindings
|
||||||
type PageWithBindings interface {
|
type PageWithBindings interface {
|
||||||
BasicPage
|
BasicPage
|
||||||
SetBindings(*orbweaver.PKM)
|
SetBindings(*orbweaver.PKM)
|
||||||
}
|
}
|
||||||
|
|
||||||
//DialogPage is a dialog popup
|
//DialogPage is a dialog popup
|
||||||
type DialogPage interface {
|
type DialogPage interface {
|
||||||
Create() *fyne.CanvasObject
|
Create() *fyne.CanvasObject
|
||||||
}
|
}
|
||||||
|
@ -1,67 +1,65 @@
|
|||||||
package bind
|
package bind
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
"fyne.io/fyne/driver/desktop"
|
"fyne.io/fyne/driver/desktop"
|
||||||
"fyne.io/fyne/layout"
|
"fyne.io/fyne/layout"
|
||||||
"fyne.io/fyne/widget"
|
"fyne.io/fyne/widget"
|
||||||
"github.com/minizbot2012/orbbind/keys"
|
"github.com/minizbot2012/orbbind/keys"
|
||||||
"github.com/minizbot2012/orbbind/ui/baseui"
|
)
|
||||||
)
|
|
||||||
|
//BindingInfo Genral data to use in a channel
|
||||||
//BindingInfo Genral data to use in a channel
|
type BindingInfo struct {
|
||||||
type BindingInfo struct {
|
Bindid int
|
||||||
Bindid int
|
Bound uint16
|
||||||
Bound uint16
|
}
|
||||||
}
|
|
||||||
|
//Page Binding UI
|
||||||
//Page Binding UI
|
type Page struct {
|
||||||
type Page struct {
|
dev map[string]fyne.CanvasObject
|
||||||
baseui.DialogPage
|
Bind BindingInfo
|
||||||
dev map[string]fyne.CanvasObject
|
window fyne.Window
|
||||||
Bind BindingInfo
|
}
|
||||||
window fyne.Window
|
|
||||||
}
|
//TypeKey event on key
|
||||||
|
func (bp *Page) TypeKey(e *fyne.KeyEvent) {
|
||||||
//TypeKey event on key
|
bp.Bind.Bound = keys.CKIFyneKeyMap(e.Name)
|
||||||
func (bp *Page) TypeKey(e *fyne.KeyEvent) {
|
kp := keys.CKIKeyNameFromKC(bp.Bind.Bound)
|
||||||
bp.Bind.Bound = keys.CKIFyneKeyMap(e.Name)
|
bp.dev["BL"].(*widget.Label).SetText(kp)
|
||||||
kp := keys.CKIKeyNameFromKC(bp.Bind.Bound)
|
}
|
||||||
bp.dev["BL"].(*widget.Label).SetText(kp)
|
|
||||||
}
|
func (bp *Page) createGrid() *fyne.Container {
|
||||||
|
cont := fyne.NewContainerWithLayout(layout.NewGridLayoutWithColumns(4))
|
||||||
func (bp *Page) createGrid() *fyne.Container {
|
cont.AddObject(widget.NewButton("Clear", func() {
|
||||||
cont := fyne.NewContainerWithLayout(layout.NewGridLayoutWithColumns(4))
|
bp.Bind.Bound = 0x0
|
||||||
cont.AddObject(widget.NewButton("Clear", func() {
|
bp.dev["BL"].(*widget.Label).SetText(keys.CKIKeyNameFromKC(bp.Bind.Bound))
|
||||||
bp.Bind.Bound = 0x0
|
}))
|
||||||
bp.dev["BL"].(*widget.Label).SetText(keys.CKIKeyNameFromKC(bp.Bind.Bound))
|
k1 := widget.NewButton("Tab", func() { bp.TypeKey(&fyne.KeyEvent{Name: fyne.KeyTab}) })
|
||||||
}))
|
k3 := widget.NewButton("Left Alt", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyAltLeft}) })
|
||||||
k1 := widget.NewButton("Tab", func() { bp.TypeKey(&fyne.KeyEvent{Name: fyne.KeyTab}) })
|
k5 := widget.NewButton("Left Control", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyControlLeft}) })
|
||||||
k3 := widget.NewButton("Left Alt", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyAltLeft}) })
|
k7 := widget.NewButton("Left Shift", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyShiftLeft}) })
|
||||||
k5 := widget.NewButton("Left Control", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyControlLeft}) })
|
//k8 := widget.NewButton("Grave (`)", func() { bp.TypeKey(&fyne.KeyEvent{Name: fyne.KeyBackTick}) })
|
||||||
k7 := widget.NewButton("Left Shift", func() { bp.TypeKey(&fyne.KeyEvent{Name: desktop.KeyShiftLeft}) })
|
cont.AddObject(k1)
|
||||||
//k8 := widget.NewButton("Grave (`)", func() { bp.TypeKey(&fyne.KeyEvent{Name: fyne.KeyBackTick}) })
|
cont.AddObject(k3)
|
||||||
cont.AddObject(k1)
|
cont.AddObject(k5)
|
||||||
cont.AddObject(k3)
|
cont.AddObject(k7)
|
||||||
cont.AddObject(k5)
|
return cont
|
||||||
cont.AddObject(k7)
|
}
|
||||||
return cont
|
|
||||||
}
|
//Create the binding page popup
|
||||||
|
func (bp *Page) Create(bid string) fyne.CanvasObject {
|
||||||
//Create the binding page popup
|
bp.dev = make(map[string]fyne.CanvasObject)
|
||||||
func (bp *Page) Create(bid string) fyne.CanvasObject {
|
bp.dev["BL"] = widget.NewLabel(keys.CKIKeyNameFromKC(bp.Bind.Bound))
|
||||||
bp.dev = make(map[string]fyne.CanvasObject)
|
pop := widget.NewVBox(bp.dev["BL"], bp.createGrid())
|
||||||
bp.dev["BL"] = widget.NewLabel(keys.CKIKeyNameFromKC(bp.Bind.Bound))
|
bp.window.Canvas().SetOnTypedKey(bp.TypeKey)
|
||||||
pop := widget.NewVBox(bp.dev["BL"], bp.createGrid())
|
return pop
|
||||||
bp.window.Canvas().SetOnTypedKey(bp.TypeKey)
|
}
|
||||||
return pop
|
|
||||||
}
|
//NewBindPage Create a new bind popup
|
||||||
|
func NewBindPage(bid int, w fyne.Window, def uint16) *Page {
|
||||||
//NewBindPage Create a new bind popup
|
p := new(Page)
|
||||||
func NewBindPage(bid int, w fyne.Window, def uint16) *Page {
|
p.window = w
|
||||||
p := &Page{}
|
p.Bind.Bindid = bid
|
||||||
p.window = w
|
p.Bind.Bound = def
|
||||||
p.Bind.Bindid = bid
|
return p
|
||||||
p.Bind.Bound = def
|
}
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
@ -1,60 +1,58 @@
|
|||||||
package mainpage
|
package mainpage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
"fyne.io/fyne/dialog"
|
"fyne.io/fyne/dialog"
|
||||||
"fyne.io/fyne/layout"
|
"fyne.io/fyne/layout"
|
||||||
"fyne.io/fyne/widget"
|
"fyne.io/fyne/widget"
|
||||||
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
||||||
"github.com/minizbot2012/orbbind/ui/baseui"
|
"github.com/minizbot2012/orbbind/ui/bind"
|
||||||
"github.com/minizbot2012/orbbind/ui/bind"
|
)
|
||||||
)
|
|
||||||
|
//Page is a basic page
|
||||||
//Page is a basic page
|
type Page struct {
|
||||||
type Page struct {
|
binds *orbweaver.PKM
|
||||||
baseui.PageWithBindings
|
dev map[string]fyne.CanvasObject
|
||||||
binds *orbweaver.PKM
|
parent fyne.Window
|
||||||
dev map[string]fyne.CanvasObject
|
}
|
||||||
parent fyne.Window
|
|
||||||
}
|
func (mp *Page) createButtons() {
|
||||||
|
for i := 0; i < 4; i++ {
|
||||||
func (mp *Page) createButtons() {
|
for j := 0; j < 5; j++ {
|
||||||
for i := 0; i < 4; i++ {
|
id := (j + i*5 + 1)
|
||||||
for j := 0; j < 5; j++ {
|
mp.dev["B"+strconv.Itoa(id)] = widget.NewButton(strconv.Itoa(id), func() {
|
||||||
id := (j + i*5 + 1)
|
popup := bind.NewBindPage(id, mp.parent, mp.binds.MIP[id-1])
|
||||||
mp.dev["B"+strconv.Itoa(id)] = widget.NewButton(strconv.Itoa(id), func() {
|
dialog.ShowCustomConfirm("Binding", "Set", "Cancel", popup.Create(string(id)), func(b bool) {
|
||||||
popup := bind.NewBindPage(id, mp.parent, mp.binds.MIP[id-1])
|
if b {
|
||||||
dialog.ShowCustomConfirm("Binding", "Set", "Cancel", popup.Create(string(id)), func(b bool) {
|
mp.binds.MIP[popup.Bind.Bindid-1] = popup.Bind.Bound
|
||||||
if b {
|
}
|
||||||
mp.binds.MIP[popup.Bind.Bindid-1] = popup.Bind.Bound
|
}, mp.parent)
|
||||||
}
|
})
|
||||||
}, mp.parent)
|
mp.dev["V"].(*fyne.Container).AddObject(mp.dev["B"+strconv.Itoa(id)])
|
||||||
})
|
}
|
||||||
mp.dev["V"].(*fyne.Container).AddObject(mp.dev["B"+strconv.Itoa(id)])
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
//SetBindings Sets the binding Map
|
||||||
|
func (mp *Page) SetBindings(o *orbweaver.PKM) {
|
||||||
//SetBindings Sets the binding Map
|
mp.binds = o
|
||||||
func (mp *Page) SetBindings(o *orbweaver.PKM) {
|
}
|
||||||
mp.binds = o
|
|
||||||
}
|
//Create Creates the main binding page
|
||||||
|
func (mp *Page) Create() *widget.TabItem {
|
||||||
//Create Creates the main binding page
|
mp.dev = make(map[string]fyne.CanvasObject)
|
||||||
func (mp *Page) Create() *widget.TabItem {
|
layout := layout.NewGridLayout(5)
|
||||||
mp.dev = make(map[string]fyne.CanvasObject)
|
mp.dev["V"] = fyne.NewContainerWithLayout(layout)
|
||||||
layout := layout.NewGridLayout(5)
|
mp.createButtons()
|
||||||
mp.dev["V"] = fyne.NewContainerWithLayout(layout)
|
return widget.NewTabItem("Main Bindings", mp.dev["V"])
|
||||||
mp.createButtons()
|
}
|
||||||
return widget.NewTabItem("Main Bindings", mp.dev["V"])
|
|
||||||
}
|
//NewMainPage Creates a new main page
|
||||||
|
func NewMainPage(parent fyne.Window, pkm *orbweaver.PKM) *Page {
|
||||||
//NewMainPage Creates a new main page
|
mp := new(Page)
|
||||||
func NewMainPage(parent fyne.Window, pkm *orbweaver.PKM) *Page {
|
mp.binds = pkm
|
||||||
mp := &Page{}
|
mp.parent = parent
|
||||||
mp.binds = pkm
|
return mp
|
||||||
mp.parent = parent
|
}
|
||||||
return mp
|
|
||||||
}
|
|
||||||
|
@ -1,53 +1,51 @@
|
|||||||
package sidepage
|
package sidepage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"fyne.io/fyne"
|
"fyne.io/fyne"
|
||||||
"fyne.io/fyne/dialog"
|
"fyne.io/fyne/dialog"
|
||||||
"fyne.io/fyne/layout"
|
"fyne.io/fyne/layout"
|
||||||
"fyne.io/fyne/widget"
|
"fyne.io/fyne/widget"
|
||||||
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
"github.com/minizbot2012/orbbind/keymap/orbweaver"
|
||||||
"github.com/minizbot2012/orbbind/ui/baseui"
|
"github.com/minizbot2012/orbbind/ui/bind"
|
||||||
"github.com/minizbot2012/orbbind/ui/bind"
|
)
|
||||||
)
|
|
||||||
|
//Page Overweave side button configs
|
||||||
//Page Overweave side button configs
|
type Page struct {
|
||||||
type Page struct {
|
binds *orbweaver.PKM
|
||||||
baseui.PageWithBindings
|
dev map[string]fyne.CanvasObject
|
||||||
binds *orbweaver.PKM
|
parent fyne.Window
|
||||||
dev map[string]fyne.CanvasObject
|
}
|
||||||
parent fyne.Window
|
|
||||||
}
|
//SetBindings Loads bindings from SIP
|
||||||
|
func (p *Page) SetBindings(o *orbweaver.PKM) {
|
||||||
//SetBindings Loads bindings from SIP
|
p.binds = o
|
||||||
func (p *Page) SetBindings(o *orbweaver.PKM) {
|
}
|
||||||
p.binds = o
|
|
||||||
}
|
//Create Creates the page
|
||||||
|
func (p *Page) Create() *widget.TabItem {
|
||||||
//Create Creates the page
|
p.dev = make(map[string]fyne.CanvasObject)
|
||||||
func (p *Page) Create() *widget.TabItem {
|
strs := []string{"Upper Button", "Dpad Up", "Dpad Right", "Dpad Down", "Dpad Left", "Lower Button"}
|
||||||
p.dev = make(map[string]fyne.CanvasObject)
|
for j := 0; j < 6; j++ {
|
||||||
strs := []string{"Upper Button", "Dpad Up", "Dpad Right", "Dpad Down", "Dpad Left", "Lower Button"}
|
id := j + 1
|
||||||
for j := 0; j < 6; j++ {
|
p.dev["B"+strconv.Itoa(id)] = widget.NewButton(strs[j], func() {
|
||||||
id := j + 1
|
popup := bind.NewBindPage(id, p.parent, p.binds.SIP[id-1])
|
||||||
p.dev["B"+strconv.Itoa(id)] = widget.NewButton(strs[j], func() {
|
dialog.ShowCustomConfirm("Binding", "Set", "Cancel", popup.Create(string(id)), func(b bool) {
|
||||||
popup := bind.NewBindPage(id, p.parent, p.binds.SIP[id-1])
|
if b {
|
||||||
dialog.ShowCustomConfirm("Binding", "Set", "Cancel", popup.Create(string(id)), func(b bool) {
|
p.binds.SIP[popup.Bind.Bindid-1] = popup.Bind.Bound
|
||||||
if b {
|
}
|
||||||
p.binds.SIP[popup.Bind.Bindid-1] = popup.Bind.Bound
|
}, p.parent)
|
||||||
}
|
})
|
||||||
}, p.parent)
|
}
|
||||||
})
|
cont := fyne.NewContainerWithLayout(layout.NewBorderLayout(p.dev["B2"], p.dev["B4"], p.dev["B5"], p.dev["B3"]), p.dev["B2"], p.dev["B4"], p.dev["B5"], p.dev["B3"], widget.NewVBox(p.dev["B1"], p.dev["B6"]))
|
||||||
}
|
return widget.NewTabItem("Side Config", cont)
|
||||||
cont := fyne.NewContainerWithLayout(layout.NewBorderLayout(p.dev["B2"], p.dev["B4"], p.dev["B5"], p.dev["B3"]), p.dev["B2"], p.dev["B4"], p.dev["B5"], p.dev["B3"], widget.NewVBox(p.dev["B1"], p.dev["B6"]))
|
}
|
||||||
return widget.NewTabItem("Side Config", cont)
|
|
||||||
}
|
//NewSidePage Creates a new side configuration page
|
||||||
|
func NewSidePage(parent fyne.Window, pkm *orbweaver.PKM) *Page {
|
||||||
//NewSidePage Creates a new side configuration page
|
p := new(Page)
|
||||||
func NewSidePage(parent fyne.Window, pkm *orbweaver.PKM) *Page {
|
p.binds = pkm
|
||||||
p := &Page{}
|
p.parent = parent
|
||||||
p.binds = pkm
|
return p
|
||||||
p.parent = parent
|
}
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue