| 123456789101112131415161718192021222324252627282930313233 |
- package animation
- import (
- "sync/atomic"
- "time"
- "fyne.io/fyne/v2"
- )
- type anim struct {
- a *fyne.Animation
- end time.Time
- repeatsLeft int
- reverse bool
- start time.Time
- total int64
- stopped uint32 // atomic, 0 == false 1 == true
- }
- func newAnim(a *fyne.Animation) *anim {
- animate := &anim{a: a, start: time.Now(), end: time.Now().Add(a.Duration)}
- animate.total = animate.end.Sub(animate.start).Milliseconds()
- animate.repeatsLeft = a.RepeatCount
- return animate
- }
- func (a *anim) setStopped() {
- atomic.StoreUint32(&a.stopped, 1)
- }
- func (a *anim) isStopped() bool {
- return atomic.LoadUint32(&a.stopped) == 1
- }
|