Merge branch 'main' of github.com:Minizbot2012/orbbind into main

pull/3/head
Minizbot2012 3 years ago
commit 0bf7605810
No known key found for this signature in database
GPG Key ID: 977C8ADE12361917

@ -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```

@ -71,15 +71,14 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad h1:MCsdmFSdEd4UEa5TKS5JztCRHK/WtvNei1edOj5RSRo= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad h1:MCsdmFSdEd4UEa5TKS5JztCRHK/WtvNei1edOj5RSRo=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d h1:MiWWjyhUzZ+jvhZvloX6ZrUsdEghn8a64Upd8EMHglE=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190808195139-e713427fea3f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190808195139-e713427fea3f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03 h1:XpToik3MpT5iW3iHgNwnh3a8QwugfomvxOlyDnaOils=
golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

@ -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
) )

Binary file not shown.

@ -16,7 +16,7 @@ func main() {
window := ap.NewWindow("Orbweaver Rebinding") window := ap.NewWindow("Orbweaver Rebinding")
window.SetMaster() window.SetMaster()
omap := &orbweaver.PKM{} omap := new(orbweaver.PKM)
pages := make(map[string]baseui.PageWithBindings) pages := make(map[string]baseui.PageWithBindings)
pages["main"] = mainpage.NewMainPage(window, omap) pages["main"] = mainpage.NewMainPage(window, omap)
pages["side"] = sidepage.NewSidePage(window, omap) pages["side"] = sidepage.NewSidePage(window, omap)

@ -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…
Cancel
Save