Clean up and fix

pull/3/head
Minizbot2012 4 years ago
parent 9a426c146f
commit 980aac46b0
No known key found for this signature in database
GPG Key ID: 977C8ADE12361917

@ -2,8 +2,8 @@ package orbweaver
import (
"encoding/binary"
"os"
"fyne.io/fyne"
"github.com/minizbot2012/orbbind/keys"
)
@ -15,8 +15,7 @@ type PKM struct {
}
//SaveIntoKeymap saves an orb
func SaveIntoKeymap(mapped *PKM, path string) {
fil, _ := os.OpenFile(path, os.O_RDWR, 0)
func SaveIntoKeymap(mapped *PKM, file fyne.FileWriteCloser) {
for i := 0; i < 26; i++ {
if i < 26 {
buf := make([]byte, 2)
@ -25,21 +24,21 @@ func SaveIntoKeymap(mapped *PKM, path string) {
} else {
binary.LittleEndian.PutUint16(buf, uint16(keys.GetSCForASCII(int(byte(mapped.SIP[i-20])))))
}
fil.Write(buf)
file.Write(buf)
} else {
arr := []byte{byte(mapped.COL[0]), byte(mapped.COL[1]), byte(mapped.COL[2])}
fil.Write(arr)
file.Write(arr)
}
}
file.Close()
}
//LoadFile loads an orb
func LoadFile(file string) *PKM {
func LoadFile(file fyne.FileReadCloser) *PKM {
mapped := &PKM{}
inf, _ := os.Open(file)
for i := 0; i < 26; i++ {
b := make([]byte, 2)
inf.Read(b)
file.Read(b)
Asc := keys.GetASCIIForSC(int(binary.LittleEndian.Uint16(b)))
if i < 26 {
if i < 20 {
@ -50,10 +49,10 @@ func LoadFile(file string) *PKM {
}
}
b := make([]byte, 3)
inf.Read(b)
file.Read(b)
mapped.COL[0] = int(b[0])
mapped.COL[1] = int(b[1])
mapped.COL[2] = int(b[2])
inf.Close()
file.Close()
return mapped
}

@ -8,6 +8,7 @@ import (
"fyne.io/fyne/dialog"
"fyne.io/fyne/widget"
"github.com/minizbot2012/orbbind/keymap/orbweaver"
"github.com/minizbot2012/orbbind/ui/baseui"
"github.com/minizbot2012/orbbind/ui/mainpage"
"github.com/minizbot2012/orbbind/ui/sidepage"
)
@ -15,25 +16,60 @@ import (
func main() {
ap := app.NewWithID("com.minizbot2012.orbbind")
window := ap.NewWindow("Orbweaver Rebinding")
window.Resize(fyne.NewSize(480, 480))
window.SetMaster()
omap := &orbweaver.PKM{}
nmp := mainpage.NewMainPage(window, omap)
nsp := sidepage.NewSidePage(window, omap)
tabs := widget.NewTabContainer(nmp.Create(), nsp.Create())
tabs.Resize(window.Content().Size())
window.SetMainMenu(fyne.NewMainMenu(fyne.NewMenu("File", fyne.NewMenuItem("Save", func() {
dialog.ShowFileSave(func(p string) {
orbweaver.SaveIntoKeymap(omap, p)
pages := make(map[string]baseui.PageWithBindings)
pages["main"] = mainpage.NewMainPage(window, omap)
pages["side"] = sidepage.NewSidePage(window, omap)
tabs := widget.NewTabContainer(pages["main"].Create(), pages["side"].Create())
tabs.Resize(fyne.NewSize(640, 480))
dmenu := widget.NewHBox(widget.NewButton("Save", func() {
dialog.ShowFileSave(func(writer fyne.FileWriteCloser, err error) {
if err != nil {
dialog.ShowError(err, window)
return
}
if writer != nil {
orbweaver.SaveIntoKeymap(omap, writer)
}
}, window)
}), widget.NewButton("Load", func() {
dialog.ShowFileOpen(func(reader fyne.FileReadCloser, err error) {
if err != nil {
dialog.ShowError(err, window)
return
}
if reader != nil {
omap = orbweaver.LoadFile(reader)
pages["main"].SetBindings(omap)
pages["side"].SetBindings(omap)
}
}, window)
}))
main := widget.NewVBox(dmenu, tabs)
window.Resize(fyne.NewSize(640, 500))
/*mainMenu := fyne.NewMainMenu(fyne.NewMenu("File", fyne.NewMenuItem("Save", func() {
dialog.ShowFileSave(func(writer fyne.FileWriteCloser, err error) {
if err != nil {
dialog.ShowError(err, window)
return
}
orbweaver.SaveIntoKeymap(omap, writer)
}, window)
}), fyne.NewMenuItem("Load", func() {
dialog.ShowFileOpen(func(p string) {
if p != "" {
omap = orbweaver.LoadFile(p)
nmp.SetBindings(omap)
nsp.SetBindings(omap)
dialog.ShowFileOpen(func(reader fyne.FileReadCloser, err error) {
if err != nil {
dialog.ShowError(err, window)
return
}
omap = orbweaver.LoadFile(reader)
pages["main"].SetBindings(omap)
pages["side"].SetBindings(omap)
}, window)
}))))
window.SetContent(tabs)
})))
window.SetMainMenu(mainMenu)
*/
window.SetContent(main)
window.ShowAndRun()
}

@ -14,7 +14,7 @@ type BasicPage interface {
//PageWithBindings defines a page with bindings
type PageWithBindings interface {
BasicPage
SetBinding(*orbweaver.PKM)
SetBindings(*orbweaver.PKM)
}
//DialogPage is a dialog popup

Loading…
Cancel
Save