2024-10-15 09:19:20 +08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-10-15 09:53:15 +08:00
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
|
2024-10-15 09:19:20 +08:00
|
|
|
"fyne.io/fyne/v2"
|
|
|
|
"fyne.io/fyne/v2/app"
|
|
|
|
"fyne.io/fyne/v2/container"
|
2024-10-15 09:53:15 +08:00
|
|
|
"fyne.io/fyne/v2/dialog"
|
2024-10-15 09:19:20 +08:00
|
|
|
"fyne.io/fyne/v2/layout"
|
2024-10-15 09:53:15 +08:00
|
|
|
"fyne.io/fyne/v2/storage"
|
2024-10-15 09:19:20 +08:00
|
|
|
"fyne.io/fyne/v2/widget"
|
|
|
|
)
|
|
|
|
|
|
|
|
var mainWin fyne.Window
|
|
|
|
|
|
|
|
type Containers struct {
|
|
|
|
device *fyne.Container
|
|
|
|
main *fyne.Container
|
|
|
|
erase *fyne.Container
|
|
|
|
program *fyne.Container
|
|
|
|
rtt *fyne.Container
|
|
|
|
}
|
|
|
|
|
|
|
|
var containers Containers
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
mainApp := app.New()
|
|
|
|
mainWin = mainApp.NewWindow("File Open Dialog")
|
|
|
|
mainWin.Resize(fyne.NewSize(800, 600))
|
|
|
|
|
|
|
|
// button := widget.NewButton("Open File Dialog", func() {
|
|
|
|
// fileName := dialog.NewFileOpen(func(fyne.URIReadCloser, error) {}, mainWin)
|
|
|
|
// println("Selected file:", fileName)
|
|
|
|
// fileName.Show()
|
|
|
|
// })
|
|
|
|
|
|
|
|
initMain()
|
|
|
|
|
|
|
|
mainWin.SetContent(containers.main)
|
|
|
|
mainWin.ShowAndRun()
|
|
|
|
}
|
|
|
|
|
|
|
|
func initMain() {
|
|
|
|
labPack := widget.NewLabel("")
|
|
|
|
labPack.Resize(fyne.NewSize(560, 24))
|
|
|
|
btnPack := widget.NewButton("选择 pack 文件", onBtnPack)
|
|
|
|
|
|
|
|
labChip := widget.NewLabel("选择芯片型号")
|
|
|
|
labChip.Resize(fyne.NewSize(144, 24))
|
|
|
|
selChip := widget.NewSelect(nil, func(selected string) {})
|
|
|
|
|
|
|
|
btnErase := widget.NewButton("擦除", onBtnErase)
|
|
|
|
btnProgram := widget.NewButton("烧写", func() {})
|
|
|
|
btnRTT := widget.NewButton("RTT", func() {})
|
|
|
|
|
|
|
|
packSelect := container.New(layout.NewGridLayoutWithColumns(2), labPack, btnPack)
|
|
|
|
chipSelect := container.New(layout.NewGridLayoutWithColumns(2), labChip, selChip)
|
|
|
|
containers.device = container.New(layout.NewGridLayoutWithRows(2), packSelect, chipSelect)
|
|
|
|
|
|
|
|
containers.main = container.New(layout.NewGridLayoutWithRows(4), containers.device, btnErase, btnProgram, btnRTT)
|
|
|
|
|
|
|
|
radEType := widget.NewRadioGroup([]string{"芯片", "自动"}, func(selected string) {})
|
|
|
|
btnEter := widget.NewButton("擦除", func() {})
|
|
|
|
btnCancel := widget.NewButton("取消", func() {
|
|
|
|
mainWin.SetContent(containers.main)
|
|
|
|
})
|
|
|
|
containers.erase = container.New(layout.NewGridLayoutWithRows(4), containers.device, radEType, btnEter, btnCancel)
|
|
|
|
}
|
|
|
|
|
2024-10-15 09:53:15 +08:00
|
|
|
func onBtnPack() {
|
|
|
|
diaFile := dialog.NewFileOpen(func(ufile fyne.URIReadCloser, err error) {
|
|
|
|
if err == nil && ufile != nil {
|
|
|
|
fmt.Println(ufile.URI())
|
|
|
|
defer ufile.Close()
|
|
|
|
}
|
|
|
|
}, mainWin)
|
|
|
|
diaFile.SetFilter(storage.NewExtensionFileFilter([]string{".pack"}))
|
|
|
|
pwd, err := os.Getwd()
|
|
|
|
if err == nil {
|
|
|
|
mfileLister, _ := storage.ListerForURI(storage.NewFileURI(pwd))
|
|
|
|
diaFile.SetLocation(mfileLister)
|
|
|
|
}
|
|
|
|
println("Selected file:", diaFile)
|
|
|
|
diaFile.Show()
|
|
|
|
}
|
2024-10-15 09:19:20 +08:00
|
|
|
|
|
|
|
func onBtnErase() {
|
|
|
|
mainWin.SetContent(containers.erase)
|
|
|
|
}
|