MCPcopy Create free account
hub / github.com/DIMFLIX/Spectrum-Security / AnimationHandler

Class AnimationHandler

ui/widgets/toggleswitch.py:10–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9
10class AnimationHandler:
11 def __init__(self, widget, startv, endv, type):
12 self.widget = widget
13 self.type = type
14 self.startv = startv
15 self.endv = endv
16 self.value = 0
17 self.speed = 3.45
18 self.sensitivity = 0.001
19 self.reverse = False
20 self.loop = False
21 self.started = None
22 self._tickfunc = None
23
24 def tick(self, func):
25 self._tickfunc = func
26 return func
27
28 def start(self, reverse=False, loop=False):
29 self.reverse = reverse
30 self.loop = loop
31 self.started = True
32 self.orgstart_time = time.time()
33 self.value = 0
34 self.widget.update()
35
36 def done(self):
37 return self.started is None
38
39 def update(self):
40 if not self.done():
41 ep = time.time() - self.orgstart_time
42 self.value = self.type(ep * self.speed)
43
44 if self.reverse:
45 if self.current() <= self.startv + self.sensitivity: self.started = None
46 else:
47 if self.current() >= self.endv - self.sensitivity: self.started = None
48 if self.done():
49 if self.loop:
50 self.start(reverse=not self.reverse, loop=True)
51 return
52 if self._tickfunc:
53 self._tickfunc()
54
55 def current(self):
56 if self.reverse:
57 return self.endv - (self.value * (self.endv-self.startv))
58 else:
59 return self.value * (self.endv-self.startv)
60
61
62

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected