12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package main
- import (
- "fmt"
- "net/url"
- "fyne.io/fyne"
- "fyne.io/fyne/app"
- "fyne.io/fyne/canvas"
- "fyne.io/fyne/layout"
- "fyne.io/fyne/theme"
- "fyne.io/fyne/widget"
- "github.com/cnlh/nps/gui/fyne_demo/data"
- "github.com/cnlh/nps/gui/fyne_demo/screens"
- )
- const preferenceCurrentTab = "currentTab"
- func welcomeScreen(a fyne.App) fyne.CanvasObject {
- logo := canvas.NewImageFromResource(data.FyneScene)
- logo.SetMinSize(fyne.NewSize(228, 167))
- link, err := url.Parse("https://fyne.io/")
- if err != nil {
- fyne.LogError("Could not parse URL", err)
- }
- return widget.NewVBox(
- widget.NewLabelWithStyle("Welcome to the Fyne toolkit demo app", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
- layout.NewSpacer(),
- widget.NewHBox(layout.NewSpacer(), logo, layout.NewSpacer()),
- widget.NewHyperlinkWithStyle("fyne.io", link, fyne.TextAlignCenter, fyne.TextStyle{}),
- layout.NewSpacer(),
- widget.NewGroup("Theme",
- fyne.NewContainerWithLayout(layout.NewGridLayout(2),
- widget.NewButton("Dark", func() {
- a.Settings().SetTheme(theme.DarkTheme())
- }),
- widget.NewButton("Light", func() {
- a.Settings().SetTheme(theme.LightTheme())
- }),
- ),
- ),
- )
- }
- func main() {
- a := app.NewWithID("io.fyne.demo")
- a.SetIcon(theme.FyneLogo())
- w := a.NewWindow("Fyne Demo")
- w.SetMainMenu(fyne.NewMainMenu(fyne.NewMenu("File",
- fyne.NewMenuItem("New", func() { fmt.Println("Menu New") }),
-
- ), fyne.NewMenu("Edit",
- fyne.NewMenuItem("Cut", func() { fmt.Println("Menu Cut") }),
- fyne.NewMenuItem("Copy", func() { fmt.Println("Menu Copy") }),
- fyne.NewMenuItem("Paste", func() { fmt.Println("Menu Paste") }),
- )))
- w.SetMaster()
- tabs := widget.NewTabContainer(
- widget.NewTabItemWithIcon("Welcome", theme.HomeIcon(), welcomeScreen(a)),
- widget.NewTabItemWithIcon("Widgets", theme.ContentCopyIcon(), screens.WidgetScreen()),
- widget.NewTabItemWithIcon("Graphics", theme.DocumentCreateIcon(), screens.GraphicsScreen()),
- widget.NewTabItemWithIcon("Windows", theme.ViewFullScreenIcon(), screens.DialogScreen(w)),
- widget.NewTabItemWithIcon("Advanced", theme.SettingsIcon(), screens.AdvancedScreen(w)))
- tabs.SetTabLocation(widget.TabLocationLeading)
- tabs.SelectTabIndex(a.Preferences().Int(preferenceCurrentTab))
- w.SetContent(tabs)
- w.ShowAndRun()
- a.Preferences().SetInt(preferenceCurrentTab, tabs.CurrentTabIndex())
- }
|