StartOnce and unicode control symbols

pull/284/head
Momo 2018-08-21 19:21:53 +02:00
rodzic a1440903cb
commit 6defc29587
1 zmienionych plików z 31 dodań i 22 usunięć

Wyświetl plik

@ -24,7 +24,7 @@ class EmbroiderySimulator(wx.Frame):
self.max_height = kwargs.pop('max_height', screen_rect[3])
self.scale = 1
self.min_width = 800
self.min_width = 600
if self.max_width < self.min_width:
self.max_width = self.min_width
@ -42,13 +42,14 @@ class EmbroiderySimulator(wx.Frame):
self.button_sizer = wx.StdDialogButtonSizer()
self.button_label = (
[_("Speed up"), _('Press + or arrow up to speed up'), self.animation_speed_up],
[_("Slow down"), _('Press - or arrow down to slow down'), self.animation_slow_down],
[_("Backwards"), _('Backwards'), self.animation_backwards],
[_("Forwards"), _('Forwards'), self.animation_forwards],
[_("Pause"), _("Press P to pause the animation"), self.animation_pause],
[_("Restart"), _("Press R to restart the animation"), self.animation_restart],
[_("Quit"), _("Press Q to close the simulation window"), self.animation_quit])
[u"\u2BC7", _('Play backwards (arrow left)'), self.animation_backwards],
[u"\u2BC8", _('Play forwards (arrow right)'), self.animation_forwards],
[u"\u2BC5", _('Speed up (arrow up)'), self.animation_speed_up],
[u"\u2BC6", _('Slow down (arrow down)'), self.animation_slow_down],
[u"\u23F8", _("Pause (P)"), self.animation_pause],
[u"\u2B8C", _("Restart (R)"), self.animation_restart],
[u"\u2BBF", _("Close (Q)"), self.animation_quit])
self.buttons = []
for i in range(0, len(self.button_label)):
self.buttons.append(wx.Button(self, -1, self.button_label[i][0]))
@ -73,7 +74,7 @@ class EmbroiderySimulator(wx.Frame):
self.clear()
self.current_frame = 1
self.current_frame = 0
self.set_stitch_counter(0)
self.animation_direction = 1
@ -171,7 +172,7 @@ class EmbroiderySimulator(wx.Frame):
if self.timer.IsRunning():
self.timer.Stop()
else:
self.timer.Start(self.frame_period)
self.timer.StartOnce(self.frame_period)
def animation_quit(self, event):
self.Close()
@ -182,17 +183,17 @@ class EmbroiderySimulator(wx.Frame):
self.set_stitch_counter(self.current_frame)
if self.timer.IsRunning():
self.timer.Stop()
self.timer.Start(self.frame_period)
self.timer.StartOnce(self.frame_period)
def animation_backwards(self, event):
self.animation_direction = -1
if self.current_frame > 0:
self.timer.Start(self.frame_period)
if self.current_frame > 1:
self.timer.StartOnce(self.frame_period)
def animation_forwards(self, event):
self.animation_direction = 1
if self.current_frame <= len(self.lines):
self.timer.Start(self.frame_period)
if self.current_frame < len(self.lines):
self.timer.StartOnce(self.frame_period)
def set_stitch_counter(self, current_frame):
if hasattr(self.panel, 'stitch_counter'):
@ -294,12 +295,12 @@ class EmbroiderySimulator(wx.Frame):
def go(self):
self.clear()
self.current_frame = 1
self.current_frame = 0
if not self.timer:
self.timer = wx.PyTimer(self.iterate_frames)
self.timer.Start(self.frame_period)
self.timer.StartOnce(self.frame_period)
def on_close(self, event):
self.stop()
@ -364,14 +365,22 @@ class EmbroiderySimulator(wx.Frame):
def iterate_frames(self):
self.current_frame += self.stitches_per_frame * self.animation_direction
if self.current_frame <= len(self.lines) and self.current_frame >= 1:
self.draw_one_frame()
self.timer.StartOnce(self.frame_period)
elif self.current_frame > len(self.lines):
self.current_frame = len(self.lines)
self.draw_one_frame()
elif self.current_frame < 1:
self.current_frame = 1
self.draw_one_frame()
else:
self.timer.Stop()
self.set_stitch_counter(self.current_frame)
self.set_stitch_slider(self.current_frame)
self.draw_one_frame()
if self.current_frame >= len(self.lines) or self.current_frame <= 1:
self.timer.Stop()
def draw_one_frame(self):
self.clear()
self.visible_lines = self.lines[:self.current_frame]