170 lines
4.4 KiB
Go
170 lines
4.4 KiB
Go
package overlay_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
|
|
"github.com/ZacharyZhang-NY/MujicaUI/core"
|
|
"github.com/ZacharyZhang-NY/MujicaUI/input"
|
|
"github.com/ZacharyZhang-NY/MujicaUI/overlay"
|
|
)
|
|
|
|
func ExampleDialog() {
|
|
open := true
|
|
name := "Ophelia"
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
if input.Button(c, "Rename…", input.ButtonOptions{}).Clicked() {
|
|
open = true
|
|
}
|
|
overlay.Dialog(c, &open, overlay.DialogOptions{
|
|
Title: "Rename the chamber",
|
|
Description: "The new name shows in every hall.",
|
|
Decorated: true,
|
|
Actions: func() {
|
|
if input.Button(c, "Cancel", input.ButtonOptions{Variant: input.Secondary}).Clicked() {
|
|
open = false
|
|
}
|
|
if input.Button(c, "Rename", input.ButtonOptions{}).Clicked() {
|
|
open = false
|
|
}
|
|
},
|
|
}, func() {
|
|
ui.TextInput(c, &name)
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleAlertDialog() {
|
|
open := true
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
if input.Button(c, "Delete archive", input.ButtonOptions{Variant: input.Danger}).Clicked() {
|
|
open = true
|
|
}
|
|
r := overlay.AlertDialog(c, &open, overlay.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) {
|
|
core.Use(c, core.Settings{})
|
|
if input.Button(c, "Filters", input.ButtonOptions{}).Clicked() {
|
|
open = true
|
|
}
|
|
overlay.Drawer(c, &open, overlay.DrawerOptions{Title: "Filters", Side: overlay.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) {
|
|
core.Use(c, core.Settings{})
|
|
b := input.Button(c, "Guests", input.ButtonOptions{Variant: input.Secondary})
|
|
if b.Clicked() {
|
|
open = !open
|
|
}
|
|
overlay.Popover(c, b, &open, overlay.PopoverOptions{Title: "Guest list"}, func() {
|
|
ui.Text(c, "Twelve guests confirmed.")
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleTooltip() {
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
b := input.Button(c, "Seal", input.ButtonOptions{})
|
|
overlay.Tooltip(c, b, "Seal the letter with wax", overlay.TooltipOptions{})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleHoverCard() {
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
b := input.Button(c, "Lady Sakiko", input.ButtonOptions{Variant: input.Ghost})
|
|
overlay.HoverCard(c, b, overlay.HoverCardOptions{}, func() {
|
|
ui.Text(c, "Keyboardist of the court.")
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleDropdownMenu() {
|
|
pinned := false
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
overlay.DropdownMenu(c, "Actions", overlay.DropdownMenuOptions{}, func(m *overlay.PopupMenu) {
|
|
m.Group("Letter", func() {
|
|
if m.Item("Rename", overlay.PopupMenuItemOptions{}) {
|
|
fmt.Println("rename")
|
|
}
|
|
m.Check("Pinned", &pinned, overlay.PopupMenuItemOptions{KeepOpen: true})
|
|
})
|
|
m.Submenu("Move to", overlay.PopupMenuItemOptions{}, func(m *overlay.PopupMenu) {
|
|
m.Item("Archive", overlay.PopupMenuItemOptions{})
|
|
})
|
|
m.Separator()
|
|
m.Item("Burn", overlay.PopupMenuItemOptions{Disabled: true})
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleContextMenu() {
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
row := ui.Row(c).Padding(12).Children(func() {
|
|
ui.Text(c, "Letter to the Countess")
|
|
})
|
|
overlay.ContextMenu(c, row, overlay.ContextMenuOptions{}, func(m *overlay.PopupMenu) {
|
|
if m.Item("Reply", overlay.PopupMenuItemOptions{}) {
|
|
fmt.Println("reply")
|
|
}
|
|
m.Item("Delete", overlay.PopupMenuItemOptions{})
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExamplePopconfirm() {
|
|
open := false
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
b := input.Button(c, "Archive", input.ButtonOptions{Variant: input.Secondary})
|
|
if b.Clicked() {
|
|
open = true
|
|
}
|
|
if overlay.Popconfirm(c, b, &open, overlay.PopconfirmOptions{Title: "Archive this letter?"}).Confirmed {
|
|
fmt.Println("archived")
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleOverlay() {
|
|
open := true
|
|
view := func(c *ui.Context) {
|
|
core.Use(c, core.Settings{})
|
|
overlay.Overlay(c, &open, overlay.OverlayOptions{Place: overlay.OverlayBottomRight, Label: "Now playing"}, func() {
|
|
ui.Text(c, "Symbol I: △")
|
|
})
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|