Animate striped progress bars in queue
This commit is contained in:
parent
2e7b622402
commit
ef7c7c9f6e
|
|
@ -22,6 +22,7 @@ type stripedProgress struct {
|
||||||
progress float64
|
progress float64
|
||||||
color color.Color
|
color color.Color
|
||||||
bg color.Color
|
bg color.Color
|
||||||
|
offset float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func newStripedProgress(col color.Color) *stripedProgress {
|
func newStripedProgress(col color.Color) *stripedProgress {
|
||||||
|
|
@ -54,8 +55,8 @@ func (s *stripedProgress) CreateRenderer() fyne.WidgetRenderer {
|
||||||
dark := applyAlpha(s.color, 140)
|
dark := applyAlpha(s.color, 140)
|
||||||
for y := 0; y < h; y++ {
|
for y := 0; y < h; y++ {
|
||||||
for x := 0; x < w; x++ {
|
for x := 0; x < w; x++ {
|
||||||
// simple diagonal stripe pattern
|
// animate diagonal stripes using offset
|
||||||
if ((x + y) / 6 % 2) == 0 {
|
if (((x + y) + int(s.offset)) / 6 % 2) == 0 {
|
||||||
img.Set(x, y, light)
|
img.Set(x, y, light)
|
||||||
} else {
|
} else {
|
||||||
img.Set(x, y, dark)
|
img.Set(x, y, dark)
|
||||||
|
|
@ -104,6 +105,8 @@ func (r *stripedProgressRenderer) MinSize() fyne.Size {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *stripedProgressRenderer) Refresh() {
|
func (r *stripedProgressRenderer) Refresh() {
|
||||||
|
// small drift to animate stripes
|
||||||
|
r.bar.offset += 1
|
||||||
r.Layout(r.bg.Size())
|
r.Layout(r.bg.Size())
|
||||||
canvas.Refresh(r.bg)
|
canvas.Refresh(r.bg)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user