111 lines
2.9 KiB
Go
111 lines
2.9 KiB
Go
package mujica_test
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
|
|
mujica "mujicaui"
|
|
)
|
|
|
|
func ExampleCalendar() {
|
|
day := mujica.Date{Year: 2026, Month: time.October, Day: 5}
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
if mujica.Calendar(c, &day, mujica.CalendarOptions{WeekStart: mujica.WeekStartMonday}).Changed() {
|
|
fmt.Println("chosen", day)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleDatePicker() {
|
|
due := mujica.Date{Year: 2026, Month: time.October, Day: 5}
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.DatePickerOptions{Label: "Due date", Clearable: true,
|
|
Min: mujica.Date{Year: 2026, Month: time.January, Day: 1}}
|
|
if mujica.DatePicker(c, &due, opts).Changed() {
|
|
fmt.Println("due", due)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleDateRangePicker() {
|
|
var stay mujica.DateRange
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
r := mujica.DateRangePicker(c, &stay, mujica.DateRangePickerOptions{Label: "Stay"})
|
|
if r.Changed() {
|
|
fmt.Println("stay", stay.Start, stay.End, stay.Days())
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleTimePicker() {
|
|
alarm := mujica.TimeOfDay{Hour: 7, Minute: 30}
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.TimePickerOptions{Label: "Alarm", Hour12: true, MinuteStep: 5}
|
|
if mujica.TimePicker(c, &alarm, opts).Changed() {
|
|
fmt.Println("alarm", alarm)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleTimeRangePicker() {
|
|
shift := mujica.TimeRange{Start: mujica.TimeOfDay{Hour: 22}, End: mujica.TimeOfDay{Hour: 6}}
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.TimeRangePickerOptions{Label: "Night shift", AllowOvernight: true}
|
|
if mujica.TimeRangePicker(c, &shift, opts).Changed() {
|
|
fmt.Println("shift", shift.Start, shift.End, shift.Overnight())
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleDateTimePicker() {
|
|
tokyo, err := time.LoadLocation("Asia/Tokyo")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
var meeting time.Time
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.DateTimePickerOptions{Label: "Meeting", Location: tokyo, MinuteStep: 15}
|
|
if mujica.DateTimePicker(c, &meeting, opts).Changed() {
|
|
fmt.Println("meeting", meeting)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleMonthPicker() {
|
|
var month mujica.YearMonth
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.MonthPickerOptions{Label: "Billing month", Clearable: true}
|
|
if mujica.MonthPicker(c, &month, opts).Changed() {
|
|
fmt.Println("month", month)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|
|
|
|
func ExampleYearPicker() {
|
|
year := 2026
|
|
view := func(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
opts := mujica.YearPickerOptions{Label: "Vintage", Min: 1990, Max: 2030}
|
|
if mujica.YearPicker(c, &year, opts).Changed() {
|
|
fmt.Println("year", year)
|
|
}
|
|
}
|
|
ui.Render(view, 400, 300, 1)
|
|
}
|