diff --git a/go.mod b/go.mod index 399b38e..60fc1c2 100644 --- a/go.mod +++ b/go.mod @@ -4,16 +4,16 @@ go 1.16 require ( fyne.io/fyne/v2 v2.0.3 - github.com/OrbTools/OrbCommon v0.0.0-20210724065833-4ff2abe0a12c + github.com/OrbTools/OrbCommon v0.0.0-20210728065050-8432fa48d1c4 github.com/fyne-io/mobile v0.1.3-0.20210524083716-78f416561547 // indirect github.com/go-gl/gl v0.0.0-20210501111010-69f74958bac0 // indirect - github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210727001814-0db043d8d5be // indirect github.com/kr/text v0.2.0 // indirect github.com/srwiley/oksvg v0.0.0-20210519022825-9fc0c575d5fe // indirect github.com/srwiley/rasterx v0.0.0-20210519020934-456a8d69b780 // indirect github.com/stretchr/testify v1.7.0 // indirect golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d // indirect - golang.org/x/net v0.0.0-20210716203947-853a461950ff // indirect + golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 // indirect golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect diff --git a/go.sum b/go.sum index 0b5c4ae..03110e4 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,17 @@ fyne.io/fyne/v2 v2.0.3 h1:qzd2uLLrAVrNeqnLY44QZCsMxZwjoo1my+lMzHicMXY= fyne.io/fyne/v2 v2.0.3/go.mod h1:nNpgL7sZkDVLraGtQII2ArNRnnl6kHup/KfQRxIhbvs= github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I= -github.com/OrbTools/OrbCommon v0.0.0-20210724065833-4ff2abe0a12c h1:oTZtQVfLPB3ef+m8NVY8pnvAZgrvMRyr6u21HdkRa9I= -github.com/OrbTools/OrbCommon v0.0.0-20210724065833-4ff2abe0a12c/go.mod h1:8HEhD7wF9Fqritt/jYxDmjbxEScWhFfVajdYdPO5Y14= +github.com/OrbTools/OrbCommon v0.0.0-20210728064103-00fcb730cbf9 h1:6xeK3YlRK/mt8HQ09LMqgh53YLyZVkn9GH5dWcWV5vE= +github.com/OrbTools/OrbCommon v0.0.0-20210728064103-00fcb730cbf9/go.mod h1:LhYZl/HJpFZqHa/3CD/nxsXAZtMeVRinztSngSFMCDM= +github.com/OrbTools/OrbCommon v0.0.0-20210728065050-8432fa48d1c4 h1:tLKJu4PeL96/1FyzXlVden50jX69tIkJODTLx35fqrg= +github.com/OrbTools/OrbCommon v0.0.0-20210728065050-8432fa48d1c4/go.mod h1:LhYZl/HJpFZqHa/3CD/nxsXAZtMeVRinztSngSFMCDM= github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892 h1:qg9VbHo1TlL0KDM0vYvBG9EY0X0Yku5WYIPoFWt8f6o= +github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE= github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 h1:FDqhDm7pcsLhhWl1QtD8vlzI4mm59llRvNzrFg6/LAA= github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3/go.mod h1:CzM2G82Q9BDUvMTGHnXf/6OExw/Dz2ivDj48nVg7Lg8= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= @@ -19,8 +23,8 @@ github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ github.com/go-gl/gl v0.0.0-20210501111010-69f74958bac0 h1:7xNa69TzlTrKtlBtE4yyNRFP9oqAneXAs9oKJkVOECs= github.com/go-gl/gl v0.0.0-20210501111010-69f74958bac0/go.mod h1:wjpnOv6ONl2SuJSxqCPVaPZibGFdSci9HFocT9qtVYM= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137 h1:nkvwT/9HzcHRekrCaLk/a4At+RNwr6lu6rl28kBDQ+Q= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210715014612-ab6297867137/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210727001814-0db043d8d5be h1:vEIVIuBApEBQTEJt19GfhoU+zFSV+sNTa9E9FdnRYfk= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210727001814-0db043d8d5be/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff h1:W71vTCKoxtdXgnm1ECDFkfQnpdqAO00zzGXLA5yaEX8= @@ -65,8 +69,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20210716203947-853a461950ff h1:j2EK/QoxYNBsXI4R7fQkkRUk8y6wnOBI+6hgPdP/6Ds= -golang.org/x/net v0.0.0-20210716203947-853a461950ff/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= diff --git a/orbbind.go b/orbbind.go index f3a2c01..dafb8ee 100644 --- a/orbbind.go +++ b/orbbind.go @@ -7,7 +7,7 @@ import ( "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/dialog" "github.com/OrbTools/OrbBind/ui/mui" - "github.com/OrbTools/OrbCommon/devices/orbweaver" + "github.com/OrbTools/OrbCommon/devices" ) func main() { @@ -15,11 +15,11 @@ func main() { window := ap.NewWindow("Orbweaver Rebinding") window.SetMaster() - omap := new(orbweaver.PKM) + omap := new(devices.KeyMap) //pages := make(map[string]baseui.PageWithBindings) //pages["main"] = mainpage.NewMainPage(window, omap) //pages["side"] = sidepage.NewSidePage(window, omap) - tabs, setter, getter := mui.Generate(orbweaver.GUI, window, reflect.ValueOf(omap)) + tabs, setter, getter := mui.Generate(devices.DeviceTypes["orbweaver"], window, reflect.ValueOf(omap)) //tabs := widget.NewTabContainer(pages["main"].Create(), pages["side"].Create()) tabs.Resize(fyne.NewSize(640, 480)) main := tabs @@ -31,7 +31,7 @@ func main() { return } if writer != nil { - orbweaver.SavePKMKeymap(getter().Interface(), writer) + devices.SaveKeymap(writer, getter().Interface()) } }, window) }), fyne.NewMenuItem("Load", func() { @@ -41,7 +41,7 @@ func main() { return } if reader != nil { - omap := orbweaver.LoadPKMKeymap(reader) + omap := devices.LoadKeymap(reader, devices.DeviceTypes["orbweaver"]) setter(reflect.ValueOf(omap)) } }, window) diff --git a/ui/mui/generator.go b/ui/mui/generator.go index a6d3d9a..6997b0e 100644 --- a/ui/mui/generator.go +++ b/ui/mui/generator.go @@ -10,18 +10,17 @@ import ( "fyne.io/fyne/v2/layout" "fyne.io/fyne/v2/widget" "github.com/OrbTools/OrbBind/ui/bind" - "github.com/OrbTools/OrbCommon/gui" + "github.com/OrbTools/OrbCommon/devices" ) //Generate creates a GUI from definition -func Generate(ui *gui.GUI, window fyne.Window, KBS reflect.Value) (*container.AppTabs, func(reflect.Value), func() reflect.Value) { +func Generate(ui *devices.DeviceDef, window fyne.Window, KBS reflect.Value) (*container.AppTabs, func(reflect.Value), func() reflect.Value) { keybind := KBS tui := container.NewAppTabs() - for _, page := range ui.Pages[:] { + for _, page := range ui.GuiPages { var cont *fyne.Container - pg := page switch page.Type { - case gui.PGrid: + case "PGrid": { cont = container.New(layout.NewGridLayout(int(math.Ceil(math.Sqrt(float64(len(page.Keys))))))) } @@ -33,13 +32,13 @@ func Generate(ui *gui.GUI, window fyne.Window, KBS reflect.Value) (*container.Ap for _, key := range page.Keys[:] { ky := key btn := widget.NewButton(ky.KeyName, func() { - bp := bind.NewBindPage(ky.KeyID, window, uint16(keybind.Elem().FieldByName(pg.Hive).Index(ky.KeyID).Uint())) + bp := bind.NewBindPage(ky.KeyID, window, uint16(keybind.Elem().FieldByName("Keymap").Index(ky.KeyID).Uint())) cont := bp.Create(ky.KeyName) ok := func(ok bool) { kb := keybind.Elem() if ok { - field := kb.FieldByName(pg.Hive) - if field.Kind() == reflect.Array { + field := kb.FieldByName("Keymap") + if field.Kind() == reflect.Array || field.Kind() == reflect.Slice { field.Index(ky.KeyID).SetUint(uint64(bp.Bind.Bound)) } }