Mercurial > MadButterfly
changeset 971:a4c0aff915ad
Fix the rm_keyframe to search the keyframe.
Implement tween_type_none which will duplicate all frames between two keyframe
author | wycc |
---|---|
date | Fri, 19 Nov 2010 23:54:24 +0800 |
parents | a1ebbe11354d |
children | 8a7e5914a84b |
files | pyink/frameline.py |
diffstat | 1 files changed, 26 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/pyink/frameline.py Thu Nov 18 12:10:51 2010 +0800 +++ b/pyink/frameline.py Fri Nov 19 23:54:24 2010 +0800 @@ -121,6 +121,10 @@ _normal_border = 0xaaaaaa # border color of normal frames. _active_border = 0xff3030 # border color of an active frame _hover_border_color = 0xa0a0a0 # border when the pointer over a frame + # tween types + _tween_type_none=0 + _tween_type_shape=3 + FRAME_BUT_PRESS = 'frame-button-press' @@ -343,11 +347,15 @@ gc.set_rgb_fg_color(color) for key in self._keys: + if key.left_tween is True and lastkey.right_tween_type == frameline._tween_type_none: + continue + mark_sz = self._key_mark_sz mark_x = int((key.idx + 0.5) * self._frame_width - mark_sz / 2) mark_y = w_h * 2 / 3 - mark_sz / 2 win.draw_rectangle(gc, True, mark_x, mark_y, mark_sz, mark_sz) + lastkey = key pass pass @@ -432,7 +440,10 @@ for i in range(first_pos, last_pos + 1): key = self._keys[i] - self._draw_keyframe(key.idx) + print "frame %d type=%d" % (key.idx,key.right_tween_type) + if key.left_tween is False or lastkey.right_tween_type != frameline._tween_type_none: + self._draw_keyframe(key.idx) + lasykey = key pass pass else: # not in tween @@ -516,6 +527,13 @@ pass def rm_keyframe(self, idx): + found=False + for i in range(0,len(self._keys)): + if self._keys[i].idx == idx: + idx = i + found = True + break + if not found: return key = self._keys[idx] del self._keys[idx] @@ -526,13 +544,13 @@ if key.right_tween: right_key = self._keys[idx] right_key.left_tween = False - rdraw_range = (right_key.idx, idx + 1) + redraw_range = (right_key.idx, idx + 1) else: left_key = self._keys[idx - 1] left_key.right_key = False redraw_range = (idx, left_key.idx + 1) pass - + print redraw_range for i in range(*redraw_range): self._redraw_frame(i) pass @@ -617,12 +635,13 @@ fl = frameline(40) fl.set_size_request(300, 20) fl.add_keyframe(3) + fl.add_keyframe(15) + fl.tween(3) fl.add_keyframe(9) - fl.add_keyframe(15) fl.add_keyframe(20) - fl.tween(3) - fl.tween(15, 1) - fl.active_frame(15) + fl.tween(9) + fl.active_frame(1) + fl.rm_keyframe(15) print 'num of frames: %d' % (len(fl)) def press_sig(fl, frame, but):