Use Animation for popdown.
This commit is contained in:
parent
84dcb022cb
commit
7beb2b24ac
@ -41,6 +41,15 @@ class _PopupAnimation(animator.Animation):
|
|||||||
if current == 1.0:
|
if current == 1.0:
|
||||||
self._icon.show_popup()
|
self._icon.show_popup()
|
||||||
|
|
||||||
|
class _PopdownAnimation(animator.Animation):
|
||||||
|
def __init__(self, icon):
|
||||||
|
animator.Animation.__init__(self, 0.0, 1.0)
|
||||||
|
self._icon = icon
|
||||||
|
|
||||||
|
def next_frame(self, current):
|
||||||
|
if current == 1.0:
|
||||||
|
self._icon.hide_popup()
|
||||||
|
|
||||||
class _IconCacheIcon:
|
class _IconCacheIcon:
|
||||||
def __init__(self, name, fill_color, stroke_color, now):
|
def __init__(self, name, fill_color, stroke_color, now):
|
||||||
self.data_size = None
|
self.data_size = None
|
||||||
@ -409,7 +418,10 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
|
|||||||
self.prelight(enter=True)
|
self.prelight(enter=True)
|
||||||
|
|
||||||
def _leave(self):
|
def _leave(self):
|
||||||
self.hide_popup()
|
self._popup_anim = animator.Animator(0.2, 10)
|
||||||
|
self._popup_anim.add(_PopdownAnimation(self))
|
||||||
|
self._popup_anim.start()
|
||||||
|
|
||||||
self.prelight(enter=False)
|
self.prelight(enter=False)
|
||||||
|
|
||||||
def _enter_or_leave_cb(self):
|
def _enter_or_leave_cb(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user