123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package screens
- import (
- "fmt"
- "time"
- "fyne.io/fyne"
- "fyne.io/fyne/canvas"
- "fyne.io/fyne/layout"
- "fyne.io/fyne/theme"
- "fyne.io/fyne/widget"
- )
- func makeButtonTab() fyne.Widget {
- disabled := widget.NewButton("Disabled", func() {})
- disabled.Disable()
- return widget.NewVBox(
- widget.NewLabel("Text label"),
- widget.NewButton("Text button", func() { fmt.Println("tapped text button") }),
- widget.NewButtonWithIcon("With icon", theme.ConfirmIcon(), func() { fmt.Println("tapped icon button") }),
- disabled,
- )
- }
- func makeInputTab() fyne.Widget {
- entry := widget.NewEntry()
- entry.SetPlaceHolder("Entry")
- entryReadOnly := widget.NewEntry()
- entryReadOnly.SetText("Entry (disabled)")
- entryReadOnly.Disable()
- disabledCheck := widget.NewCheck("Disabled check", func(bool) {})
- disabledCheck.Disable()
- radio := widget.NewRadio([]string{"Radio Item 1", "Radio Item 2"}, func(s string) { fmt.Println("selected", s) })
- radio.Horizontal = true
- disabledRadio := widget.NewRadio([]string{"Disabled radio"}, func(string) {})
- disabledRadio.Disable()
- return widget.NewVBox(
- entry,
- entryReadOnly,
- widget.NewSelect([]string{"Option 1", "Option 2", "Option 3"}, func(s string) { fmt.Println("selected", s) }),
- widget.NewCheck("Check", func(on bool) { fmt.Println("checked", on) }),
- disabledCheck,
- radio,
- disabledRadio,
- widget.NewSlider(0, 100),
- )
- }
- func makeProgressTab() fyne.Widget {
- progress := widget.NewProgressBar()
- infProgress := widget.NewProgressBarInfinite()
- go func() {
- num := 0.0
- for num < 1.0 {
- time.Sleep(100 * time.Millisecond)
- progress.SetValue(num)
- num += 0.01
- }
- progress.SetValue(1)
- }()
- return widget.NewVBox(
- widget.NewLabel("Percent"), progress,
- widget.NewLabel("Infinite"), infProgress)
- }
- func makeFormTab() fyne.Widget {
- name := widget.NewEntry()
- name.SetPlaceHolder("John Smith")
- email := widget.NewEntry()
- email.SetPlaceHolder("test@example.com")
- password := widget.NewPasswordEntry()
- password.SetPlaceHolder("Password")
- largeText := widget.NewMultiLineEntry()
- form := &widget.Form{
- OnCancel: func() {
- fmt.Println("Cancelled")
- },
- OnSubmit: func() {
- fmt.Println("Form submitted")
- fmt.Println("Name:", name.Text)
- fmt.Println("Email:", email.Text)
- fmt.Println("Password:", password.Text)
- fmt.Println("Message:", largeText.Text)
- },
- }
- form.Append("Name", name)
- form.Append("Email", email)
- form.Append("Password", password)
- form.Append("Message", largeText)
- return form
- }
- func makeScrollTab() fyne.CanvasObject {
- logo := canvas.NewImageFromResource(theme.FyneLogo())
- logo.SetMinSize(fyne.NewSize(320, 320))
- list := widget.NewHBox()
- list2 := widget.NewVBox()
- for i := 1; i <= 20; i++ {
- index := i
- list.Append(widget.NewButton(fmt.Sprintf("Button %d", index), func() {
- fmt.Println("Tapped", index)
- }))
- list2.Append(widget.NewButton(fmt.Sprintf("Button %d", index), func() {
- fmt.Println("Tapped", index)
- }))
- }
- scroll := widget.NewScrollContainer(list)
- scroll.Resize(fyne.NewSize(200, 300))
- scroll2 := widget.NewScrollContainer(list2)
- scroll2.Resize(fyne.NewSize(200, 100))
- return fyne.NewContainerWithLayout(layout.NewGridLayout(1), scroll, scroll2)
- }
- func makeScrollBothTab() fyne.CanvasObject {
- logo := canvas.NewImageFromResource(theme.FyneLogo())
- logo.SetMinSize(fyne.NewSize(800, 800))
- scroll := widget.NewScrollContainer(logo)
- scroll.Resize(fyne.NewSize(400, 400))
- return scroll
- }
- func WidgetScreen() fyne.CanvasObject {
- toolbar := widget.NewToolbar(widget.NewToolbarAction(theme.MailComposeIcon(), func() { fmt.Println("New") }),
- widget.NewToolbarSeparator(),
- widget.NewToolbarSpacer(),
- widget.NewToolbarAction(theme.ContentCutIcon(), func() { fmt.Println("Cut") }),
- widget.NewToolbarAction(theme.ContentCopyIcon(), func() { fmt.Println("Copy") }),
- widget.NewToolbarAction(theme.ContentPasteIcon(), func() { fmt.Println("Paste") }),
- )
- return fyne.NewContainerWithLayout(layout.NewBorderLayout(toolbar, nil, nil, nil),
- toolbar,
- widget.NewTabContainer(
- widget.NewTabItem("Buttons", makeButtonTab()),
- widget.NewTabItem("Input", makeInputTab()),
- widget.NewTabItem("Progress", makeProgressTab()),
- widget.NewTabItem("Form", makeFormTab()),
- widget.NewTabItem("Scroll", makeScrollTab()),
- widget.NewTabItem("Full Scroll", makeScrollBothTab()),
- ),
- )
- }
|