Skip to content
Snippets Groups Projects
Commit 2583f46c authored by Andrew E. Torda's avatar Andrew E. Torda
Browse files

Menu for saving function values and X trajectories.

parent 2b409335
No related branches found
No related tags found
No related merge requests found
......@@ -8,48 +8,51 @@ package ui
import (
"bytes"
"fmt"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/dialog"
"fyne.io/fyne/v2/storage"
"fyne.io/fyne/v2/widget"
)
func coffee() {
print("coffee\n")
func tryfsave(uriw fyne.URIWriteCloser, err error, data []byte, parent fyne.Window) {
if err != nil {
dialog.ShowError(err, parent)
return
}
if uriw == nil {
return // cancel
}
if _, err := uriw.Write(data); err != nil {
fmt.Println("error writing")
}
if err := uriw.Close(); err != nil {
fmt.Println("error closing")
}
func tea() {
print("tea\n")
fmt.Printf("trydsave called with %+v %+v", uriw, err)
}
func trydsave(uriwc fyne.URIWriteCloser, err error) {
uriwc.Write([]byte("hello from trydsave\n"))
fmt.Printf("trydsave called with %+v %+v", uriwc, err)
func fsave(parent fyne.Window, fdata []byte, suggested string) {
filter := storage.NewExtensionFileFilter([]string{"png", "PNG"})
ts := func(uriw fyne.URIWriteCloser, err error) {
tryfsave(uriw, err, fdata, parent)
}
func dsave(parent fyne.Window) {
filter := storage.NewExtensionFileFilter([]string{"csv", "abc"})
t := dialog.NewFileSave(trydsave, parent)
t.SetFileName("f_val.csv")
t := dialog.NewFileSave(ts, parent)
t.SetFileName(suggested)
t.SetFilter(filter)
t.Show()
fmt.Println("dsave called and returning")
}
func stopme() {
print("stopme\n")
fmt.Println("dsave called and returning")
}
type fssavefunc func(fyne.URIReadCloser, error)
func topmenu(parent fyne.Window) *fyne.Menu {
ds := func() { dsave(parent) }
a := fyne.NewMenuItem("coffee", coffee)
b := fyne.NewMenuItem("tea", tea)
func topmenu(parent fyne.Window, fdata, xdata []byte) *fyne.Menu {
ds := func() { fsave(parent, fdata, "func_val.png") } // function values
xs := func() { fsave(parent, xdata, "x_trj.png") }
c := fyne.NewMenuItem("save func plot", ds)
d := fyne.NewMenuItem("frueh feierabend", stopme)
return fyne.NewMenu("a simple menu", a, b, c, d)
d := fyne.NewMenuItem("save X trajectory plot", xs)
return fyne.NewMenu("actions", c, d)
}
func fileSaved(f fyne.URIWriteCloser, w fyne.Window) {
......@@ -64,44 +67,22 @@ func fileSaved(f fyne.URIWriteCloser, w fyne.Window) {
}
fmt.Println("Saved to...", f.URI())
}
func nothing(...interface{}) {}
// buf2file takes an array of bytes and writes them to a file.
func buf2file(buf []byte) {
var z fyne.URIWriteCloser
// NewFileSave(callback func(fyne.URIWriteCloser, error), parent fyne.Window) *FileDialog
var win fyne.Window
fs := widget.NewButton("File Save", func() {
dialog.ShowFileSave(func(writer fyne.URIWriteCloser, err error) {
if err != nil {
dialog.ShowError(err, win)
return
}
if writer == nil {
fmt.Println("Cancelled")
return
}
fileSaved(writer, win)
}, win)
})
nothing(fs, z)
}
func nothing(...interface{}) {}
func breaker(...interface{}) {}
func Scrnplt(fdata []byte, xdata []byte) {
func Scrnplt(fdata, xdata []byte) {
a := app.NewWithID("ackley") // Find a way to check if it is happy
w := a.NewWindow("container")
w := a.NewWindow("Monte Carlo")
w.SetMainMenu(fyne.NewMainMenu(topmenu(w)))
w.SetMainMenu(fyne.NewMainMenu(topmenu(w, fdata, xdata)))
fImage := canvas.NewImageFromReader(bytes.NewReader(fdata), "func.png")
fImage.FillMode = canvas.ImageFillContain
xImage := canvas.NewImageFromReader(bytes.NewReader(xdata), "xdata.png")
xImage.FillMode = canvas.ImageFillContain
content := container.NewGridWithRows(2, fImage, xImage)
w.Resize(fyne.NewSize(500, 300))
w.Resize(fyne.NewSize(500, 600))
w.SetContent(content)
w.ShowAndRun()
fmt.Println("This was executed after the graphics finished")
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment