Files
MujicaUI/example_overlay_test.go
T

168 lines
4.3 KiB
Go

package mujica_test
import (
"fmt"
"github.com/egoist/mygo/ui"
mujica "mujicaui"
)
func ExampleDialog() {
open := true
name := "Ophelia"
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
if mujica.Button(c, "Rename…", mujica.ButtonOptions{}).Clicked() {
open = true
}
mujica.Dialog(c, &open, mujica.DialogOptions{
Title: "Rename the chamber",
Description: "The new name shows in every hall.",
Decorated: true,
Actions: func() {
if mujica.Button(c, "Cancel", mujica.ButtonOptions{Variant: mujica.Secondary}).Clicked() {
open = false
}
if mujica.Button(c, "Rename", mujica.ButtonOptions{}).Clicked() {
open = false
}
},
}, func() {
ui.TextInput(c, &name)
})
}
ui.Render(view, 400, 300, 1)
}
func ExampleAlertDialog() {
open := true
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
if mujica.Button(c, "Delete archive", mujica.ButtonOptions{Variant: mujica.Danger}).Clicked() {
open = true
}
r := mujica.AlertDialog(c, &open, mujica.AlertDialogOptions{
Title: "Delete the archive?",
Description: "Twelve letters will be destroyed.",
ConfirmText: "archive",
})
if r.Confirmed {
fmt.Println("deleted")
}
}
ui.Render(view, 400, 300, 1)
}
func ExampleDrawer() {
open := true
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
if mujica.Button(c, "Filters", mujica.ButtonOptions{}).Clicked() {
open = true
}
mujica.Drawer(c, &open, mujica.DrawerOptions{Title: "Filters", Side: mujica.DrawerRight, Size: 320}, func() {
ui.Text(c, "Guests are placed by rank.")
})
}
ui.Render(view, 400, 300, 1)
}
func ExamplePopover() {
open := true
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
b := mujica.Button(c, "Guests", mujica.ButtonOptions{Variant: mujica.Secondary})
if b.Clicked() {
open = !open
}
mujica.Popover(c, b, &open, mujica.PopoverOptions{Title: "Guest list"}, func() {
ui.Text(c, "Twelve guests confirmed.")
})
}
ui.Render(view, 400, 300, 1)
}
func ExampleTooltip() {
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
b := mujica.Button(c, "Seal", mujica.ButtonOptions{})
mujica.Tooltip(c, b, "Seal the letter with wax", mujica.TooltipOptions{})
}
ui.Render(view, 400, 300, 1)
}
func ExampleHoverCard() {
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
b := mujica.Button(c, "Lady Sakiko", mujica.ButtonOptions{Variant: mujica.Ghost})
mujica.HoverCard(c, b, mujica.HoverCardOptions{}, func() {
ui.Text(c, "Keyboardist of the court.")
})
}
ui.Render(view, 400, 300, 1)
}
func ExampleDropdownMenu() {
pinned := false
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
mujica.DropdownMenu(c, "Actions", mujica.DropdownMenuOptions{}, func(m *mujica.PopupMenu) {
m.Group("Letter", func() {
if m.Item("Rename", mujica.PopupMenuItemOptions{}) {
fmt.Println("rename")
}
m.Check("Pinned", &pinned, mujica.PopupMenuItemOptions{KeepOpen: true})
})
m.Submenu("Move to", mujica.PopupMenuItemOptions{}, func(m *mujica.PopupMenu) {
m.Item("Archive", mujica.PopupMenuItemOptions{})
})
m.Separator()
m.Item("Burn", mujica.PopupMenuItemOptions{Disabled: true})
})
}
ui.Render(view, 400, 300, 1)
}
func ExampleContextMenu() {
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
row := ui.Row(c).Padding(12).Children(func() {
ui.Text(c, "Letter to the Countess")
})
mujica.ContextMenu(c, row, mujica.ContextMenuOptions{}, func(m *mujica.PopupMenu) {
if m.Item("Reply", mujica.PopupMenuItemOptions{}) {
fmt.Println("reply")
}
m.Item("Delete", mujica.PopupMenuItemOptions{})
})
}
ui.Render(view, 400, 300, 1)
}
func ExamplePopconfirm() {
open := false
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
b := mujica.Button(c, "Archive", mujica.ButtonOptions{Variant: mujica.Secondary})
if b.Clicked() {
open = true
}
if mujica.Popconfirm(c, b, &open, mujica.PopconfirmOptions{Title: "Archive this letter?"}).Confirmed {
fmt.Println("archived")
}
}
ui.Render(view, 400, 300, 1)
}
func ExampleOverlay() {
open := true
view := func(c *ui.Context) {
mujica.Use(c, mujica.Settings{})
mujica.Overlay(c, &open, mujica.OverlayOptions{Place: mujica.OverlayBottomRight, Label: "Now playing"}, func() {
ui.Text(c, "Symbol I: △")
})
}
ui.Render(view, 400, 300, 1)
}