From b9785f4cd09974b0c668cc6ee7a90a2e5eedcc30 Mon Sep 17 00:00:00 2001 From: Ryan Hamilton Date: Mon, 29 Nov 2021 10:05:15 -0600 Subject: [PATCH] remove clock files --- src/clock/clock.go | 110 --------------------------------------------- 1 file changed, 110 deletions(-) delete mode 100644 src/clock/clock.go diff --git a/src/clock/clock.go b/src/clock/clock.go deleted file mode 100644 index 76d4d77..0000000 --- a/src/clock/clock.go +++ /dev/null @@ -1,110 +0,0 @@ -package clock - -import ( - "math" - "time" - - "fyne.io/fyne/v2" - "fyne.io/fyne/v2/canvas" - "fyne.io/fyne/v2/container" - "fyne.io/fyne/v2/theme" -) - -type ClockLayout struct { - hour, minute, second *canvas.Line - hourDot, secondDot, face *canvas.Circle - - canvas fyne.CanvasObject - stop bool -} - -func (c *ClockLayout) rotate(hand *canvas.Line, middle fyne.Position, facePosition float64, offset, length float32) { - rotation := math.Pi * 2 / 60 * facePosition - x2 := length * float32(math.Sin(rotation)) - y2 := -length * float32(math.Cos(rotation)) - - offX := float32(0) - offY := float32(0) - if offset > 0 { - offX += offset * float32(math.Sin(rotation)) - offY += -offset * float32(math.Cos(rotation)) - } - - hand.Position1 = fyne.NewPos(middle.X+offX, middle.Y+offY) - hand.Position2 = fyne.NewPos(middle.X+offX+x2, middle.Y+offY+y2) - hand.Refresh() -} - -func (c *ClockLayout) Layout(_ []fyne.CanvasObject, size fyne.Size) { - diameter := fyne.Min(size.Width, size.Height) - radius := diameter / 2 - dotRadius := radius / 12 - smallDotRadius := dotRadius / 8 - - stroke := diameter / 40 - midStroke := diameter / 90 - smallStroke := diameter / 200 - - size = fyne.NewSize(diameter, diameter) - middle := fyne.NewPos(size.Width/2, size.Height/2) - topleft := fyne.NewPos(middle.X-radius, middle.Y-radius) - - c.face.Resize(size) - c.face.Move(topleft) - - c.hour.StrokeWidth = stroke - c.rotate(c.hour, middle, float64((time.Now().Hour()%12)*5)+(float64(time.Now().Minute())/12), dotRadius, radius/2) - c.minute.StrokeWidth = midStroke - c.rotate(c.minute, middle, float64(time.Now().Minute())+(float64(time.Now().Second())/60), dotRadius, radius*.9) - c.second.StrokeWidth = smallStroke - c.rotate(c.second, middle, float64(time.Now().Second()), 0, radius-3) - - c.hourDot.StrokeWidth = stroke - c.hourDot.Resize(fyne.NewSize(dotRadius*2, dotRadius*2)) - c.hourDot.Move(fyne.NewPos(middle.X-dotRadius, middle.Y-dotRadius)) - c.secondDot.StrokeWidth = smallStroke - c.secondDot.Resize(fyne.NewSize(smallDotRadius*2, smallDotRadius*2)) - c.secondDot.Move(fyne.NewPos(middle.X-smallDotRadius, middle.Y-smallDotRadius)) - c.face.StrokeWidth = smallStroke -} - -func (c *ClockLayout) MinSize(_ []fyne.CanvasObject) fyne.Size { - return fyne.NewSize(200, 200) -} - -func (c *ClockLayout) Render() *fyne.Container { - c.hourDot = &canvas.Circle{StrokeColor: theme.ForegroundColor(), StrokeWidth: 5} - c.secondDot = &canvas.Circle{StrokeColor: theme.PrimaryColor(), StrokeWidth: 3} - c.face = &canvas.Circle{StrokeColor: theme.ForegroundColor(), StrokeWidth: 1} - - c.hour = &canvas.Line{StrokeColor: theme.ForegroundColor(), StrokeWidth: 5} - c.minute = &canvas.Line{StrokeColor: theme.ForegroundColor(), StrokeWidth: 3} - c.second = &canvas.Line{StrokeColor: theme.PrimaryColor(), StrokeWidth: 1} - - container := container.NewWithoutLayout(c.hourDot, c.secondDot, c.face, c.hour, c.minute, c.second) - container.Layout = c - - c.canvas = container - return container -} - -func (c *ClockLayout) Animate(co fyne.CanvasObject) { - tick := time.NewTicker(time.Second) - go func() { - for !c.stop { - c.Layout(nil, co.Size()) - canvas.Refresh(c.canvas) - <-tick.C - } - }() -} - -func (c *ClockLayout) ApplyTheme(_ fyne.Settings) { - c.hourDot.StrokeColor = theme.ForegroundColor() - c.secondDot.StrokeColor = theme.PrimaryColor() - c.face.StrokeColor = theme.ForegroundColor() - - c.hour.StrokeColor = theme.ForegroundColor() - c.minute.StrokeColor = theme.ForegroundColor() - c.second.StrokeColor = theme.PrimaryColor() -}