Merge lp:~sneakypete81/simplegc/simplegc into lp:simplegc

Proposed by sneakypete
Status: Needs review
Proposed branch: lp:~sneakypete81/simplegc/simplegc
Merge into: lp:simplegc
Diff against target: 76 lines (+13/-4)
2 files modified
sgc/widgets/_locals.py (+2/-2)
sgc/widgets/base_widget.py (+11/-2)
To merge this branch: bzr merge lp:~sneakypete81/simplegc/simplegc
Reviewer Review Type Date Requested Status
Sam Bull Disapprove
Review via email: mp+158807@code.launchpad.net

Description of the change

Add the ability to specify the fade in/out rate on a per-widget basis.

To post a comment you must log in.
Revision history for this message
Sam Bull (dreamsorcerer) wrote :

This will be refactored in the next major release, to provide more flexible animations. I'll make sure to allow custom speed changes in the default animation. If you want to be updated on progress, I've added a bug you can subscribe to: https://bugs.launchpad.net/simplegc/+bug/1169738

review: Disapprove

Unmerged revisions

356. By sneakypete

Make widget fade delay configurable

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'sgc/widgets/_locals.py'
2--- sgc/widgets/_locals.py 2013-03-22 17:24:10 +0000
3+++ sgc/widgets/_locals.py 2013-04-14 19:36:32 +0000
4@@ -45,9 +45,9 @@
5 if widget._fade is not None:
6 widget.image.set_alpha(widget._fade)
7 if widget._fade_up:
8- widget._fade += time / 3.
9+ widget._fade += float(time) / widget._fade_delay
10 else:
11- widget._fade -= time / 4.
12+ widget._fade -= float(time) / widget._fade_delay
13 if widget._fade <= 0:
14 # Remove after fading
15 widget.kill()
16
17=== modified file 'sgc/widgets/base_widget.py'
18--- sgc/widgets/base_widget.py 2013-03-22 17:24:10 +0000
19+++ sgc/widgets/base_widget.py 2013-04-14 19:36:32 +0000
20@@ -46,6 +46,7 @@
21
22 _fade = None # Alpha level when fading
23 _fade_up = True
24+ _fade_delay = 1
25 _custom_image = False
26 _custom_extra = ()
27 _label = None
28@@ -154,7 +155,7 @@
29 """Widgets should overload for custom widget configuration."""
30 pass
31
32- def add(self, order=None, fade=True, focus=False):
33+ def add(self, order=None, fade=True, focus=False, fade_delay=3):
34 """
35 Add widget to screen.
36
37@@ -165,13 +166,17 @@
38 fade: True if widget should fade in, False if not.
39 focus: To focus widget immediately, use 1 if focused by keyboard,
40 2 if by mouse, otherwise 0.
41+ fade_delay: Higher numbers fade the widget in more slowly
42
43 """
44 added = add_widget(self, order, focus)
45
46 # Fade widget in
47+ if fade_delay < 1:
48+ fade_delay = 1
49 if fade:
50 self._fade_up = True
51+ self._fade_delay = fade_delay
52 if added and self._fade is None: self._fade = 1
53 self.image.set_alpha(self._fade)
54 else:
55@@ -182,16 +187,20 @@
56 if self._label is not None:
57 self._label.add(fade=fade)
58
59- def remove(self, fade=True):
60+ def remove(self, fade=True, fade_delay=4):
61 """
62 Remove widget from screen.
63
64 Args:
65 fade: True if widget should fade out.
66+ fade_delay: Higher numbers fade the widget out more slowly
67
68 """
69+ if fade_delay < 1:
70+ fade_delay = 1
71 if fade: # Fade widget out
72 self._fade_up = False
73+ self._fade_delay = fade_delay
74 if self._fade is None: self._fade = 250
75 else: # Remove widget immediately
76 self.kill()

Subscribers

People subscribed via source and target branches