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
=== modified file 'sgc/widgets/_locals.py'
--- sgc/widgets/_locals.py 2013-03-22 17:24:10 +0000
+++ sgc/widgets/_locals.py 2013-04-14 19:36:32 +0000
@@ -45,9 +45,9 @@
45 if widget._fade is not None:45 if widget._fade is not None:
46 widget.image.set_alpha(widget._fade)46 widget.image.set_alpha(widget._fade)
47 if widget._fade_up:47 if widget._fade_up:
48 widget._fade += time / 3.48 widget._fade += float(time) / widget._fade_delay
49 else:49 else:
50 widget._fade -= time / 4.50 widget._fade -= float(time) / widget._fade_delay
51 if widget._fade <= 0:51 if widget._fade <= 0:
52 # Remove after fading52 # Remove after fading
53 widget.kill()53 widget.kill()
5454
=== modified file 'sgc/widgets/base_widget.py'
--- sgc/widgets/base_widget.py 2013-03-22 17:24:10 +0000
+++ sgc/widgets/base_widget.py 2013-04-14 19:36:32 +0000
@@ -46,6 +46,7 @@
4646
47 _fade = None # Alpha level when fading47 _fade = None # Alpha level when fading
48 _fade_up = True48 _fade_up = True
49 _fade_delay = 1
49 _custom_image = False50 _custom_image = False
50 _custom_extra = ()51 _custom_extra = ()
51 _label = None52 _label = None
@@ -154,7 +155,7 @@
154 """Widgets should overload for custom widget configuration."""155 """Widgets should overload for custom widget configuration."""
155 pass156 pass
156157
157 def add(self, order=None, fade=True, focus=False):158 def add(self, order=None, fade=True, focus=False, fade_delay=3):
158 """159 """
159 Add widget to screen.160 Add widget to screen.
160161
@@ -165,13 +166,17 @@
165 fade: True if widget should fade in, False if not.166 fade: True if widget should fade in, False if not.
166 focus: To focus widget immediately, use 1 if focused by keyboard,167 focus: To focus widget immediately, use 1 if focused by keyboard,
167 2 if by mouse, otherwise 0.168 2 if by mouse, otherwise 0.
169 fade_delay: Higher numbers fade the widget in more slowly
168170
169 """171 """
170 added = add_widget(self, order, focus)172 added = add_widget(self, order, focus)
171173
172 # Fade widget in174 # Fade widget in
175 if fade_delay < 1:
176 fade_delay = 1
173 if fade:177 if fade:
174 self._fade_up = True178 self._fade_up = True
179 self._fade_delay = fade_delay
175 if added and self._fade is None: self._fade = 1180 if added and self._fade is None: self._fade = 1
176 self.image.set_alpha(self._fade)181 self.image.set_alpha(self._fade)
177 else:182 else:
@@ -182,16 +187,20 @@
182 if self._label is not None:187 if self._label is not None:
183 self._label.add(fade=fade)188 self._label.add(fade=fade)
184189
185 def remove(self, fade=True):190 def remove(self, fade=True, fade_delay=4):
186 """191 """
187 Remove widget from screen.192 Remove widget from screen.
188193
189 Args:194 Args:
190 fade: True if widget should fade out.195 fade: True if widget should fade out.
196 fade_delay: Higher numbers fade the widget out more slowly
191197
192 """198 """
199 if fade_delay < 1:
200 fade_delay = 1
193 if fade: # Fade widget out201 if fade: # Fade widget out
194 self._fade_up = False202 self._fade_up = False
203 self._fade_delay = fade_delay
195 if self._fade is None: self._fade = 250204 if self._fade is None: self._fade = 250
196 else: # Remove widget immediately205 else: # Remove widget immediately
197 self.kill()206 self.kill()

Subscribers

People subscribed via source and target branches