73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
package ui
|
|
|
|
import (
|
|
"go_dreamfactory/cmd/v2/service/observer"
|
|
"time"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/canvas"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/widget"
|
|
"github.com/BabySid/gobase"
|
|
)
|
|
|
|
type toyDateTime struct {
|
|
toyAdapter
|
|
date *canvas.Text
|
|
week *canvas.Text
|
|
time *canvas.Text
|
|
}
|
|
|
|
func (tdt *toyDateTime) Init(obs observer.Observer) error {
|
|
tdt.date = canvas.NewText("", nil)
|
|
tdt.date.TextSize = 15
|
|
|
|
tdt.week = canvas.NewText("", nil)
|
|
tdt.week.TextSize = 15
|
|
|
|
tdt.time = canvas.NewText("", nil)
|
|
tdt.time.TextSize = 42
|
|
|
|
tdt.widget = widget.NewCard("", "",
|
|
container.NewVBox(
|
|
container.NewHBox(layout.NewSpacer(), tdt.date, tdt.week, layout.NewSpacer()),
|
|
container.NewCenter(tdt.time),
|
|
),
|
|
)
|
|
|
|
tdt.widget.Resize(fyne.NewSize(ToyWidth, 110))
|
|
|
|
// for init
|
|
tdt.Run()
|
|
|
|
_ = gobase.GlobalScheduler.AddJob("toy_datetime", "*/1 * * * * *", tdt)
|
|
// todo assert(err == nil)
|
|
return nil
|
|
}
|
|
|
|
var (
|
|
weekStr = [...]string{
|
|
"Sunday",
|
|
"Monday",
|
|
"Tuesday",
|
|
"Wednesday",
|
|
"Thursday",
|
|
"Friday",
|
|
"Saturday",
|
|
}
|
|
)
|
|
|
|
func (tdt *toyDateTime) Run() {
|
|
now := time.Now()
|
|
|
|
tdt.date.Text = gobase.FormatTimeStampWithFormat(now.Unix(), gobase.DateFormat)
|
|
tdt.date.Refresh()
|
|
|
|
tdt.week.Text = weekStr[now.Weekday()]
|
|
tdt.week.Refresh()
|
|
|
|
tdt.time.Text = gobase.FormatTimeStampWithFormat(now.Unix(), gobase.TimeFormat)
|
|
tdt.time.Refresh()
|
|
}
|