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

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

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

Loading…
Cancel
Save