86 lines
1.7 KiB
Go
86 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
_ "embed"
|
|
"fmt"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/app"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/theme"
|
|
"fyne.io/fyne/v2/widget"
|
|
|
|
model "rex_model"
|
|
)
|
|
|
|
var rex_version = "UNDEFINED"
|
|
|
|
func main() {
|
|
a := app.New()
|
|
w := a.NewWindow(fmt.Sprintf("RexForge %s", rex_version))
|
|
w.Resize(fyne.NewSize(900, 600))
|
|
|
|
addons := model.AddonIndex
|
|
|
|
list := widget.NewList(
|
|
func() int {
|
|
return len(addons)
|
|
},
|
|
func() fyne.CanvasObject {
|
|
btn := widget.NewButton("", func() {})
|
|
label := widget.NewLabel("")
|
|
|
|
return container.NewBorder(nil, nil, label, btn)
|
|
},
|
|
func(i widget.ListItemID, o fyne.CanvasObject) {
|
|
o.(*fyne.Container).RemoveAll()
|
|
|
|
btn := widget.NewButtonWithIcon("Download", theme.DownloadIcon(), func() {
|
|
fmt.Println("Downloading: " + addons[i])
|
|
})
|
|
btn.Importance = widget.LowImportance
|
|
|
|
label := widget.NewLabel(addons[i])
|
|
|
|
row := container.NewBorder(nil, nil, label, btn)
|
|
o.(*fyne.Container).Add(row)
|
|
})
|
|
|
|
refresh_button := widget.NewButtonWithIcon("Refresh", theme.ViewRefreshIcon(), func() {
|
|
println("Refresh")
|
|
})
|
|
|
|
upall_button := widget.NewButtonWithIcon("Update All", theme.DownloadIcon(), func() {
|
|
println("Update All")
|
|
})
|
|
|
|
about_button := widget.NewButtonWithIcon("About", theme.InfoIcon(), func() {
|
|
println("About")
|
|
})
|
|
|
|
settings_button := widget.NewButtonWithIcon("Settings", theme.SettingsIcon(), func() {
|
|
println("Settings")
|
|
})
|
|
|
|
toprow := container.NewVBox(
|
|
container.NewHBox(
|
|
refresh_button,
|
|
upall_button,
|
|
layout.NewSpacer(),
|
|
about_button,
|
|
settings_button,
|
|
),
|
|
widget.NewSeparator(),
|
|
)
|
|
|
|
c := container.New(
|
|
layout.NewBorderLayout(toprow, nil, nil, nil),
|
|
toprow,
|
|
container.NewStack(list),
|
|
)
|
|
|
|
w.SetContent(c)
|
|
|
|
w.ShowAndRun()
|
|
}
|