Files
Modus/utils/animatedcircularprogressbar.py
T

26 lines
833 B
Python

from fabric.widgets.circularprogressbar import CircularProgressBar
from utils.animator import Animator
class AnimatedCircularProgressBar(CircularProgressBar):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.animator = (
Animator(
bezier_curve=(0.15, 0.88, 0.68, 0.95),
duration=0.8,
min_value=self.min_value,
max_value=self.value,
tick_widget=self,
notify_value=lambda p, *_: self.set_value(p.value),
)
.build()
.play()
.unwrap()
)
def animate_value(self, value: float):
self.animator.pause()
self.animator.min_value = self.value
self.animator.max_value = value
self.animator.play()
return