diff --git a/icons/direction.png b/icons/direction.png new file mode 100644 index 000000000..f6b6b717a Binary files /dev/null and b/icons/direction.png differ diff --git a/icons/forward.svg b/icons/direction.svg similarity index 63% rename from icons/forward.svg rename to icons/direction.svg index 7e64613d3..836e5e598 100644 --- a/icons/forward.svg +++ b/icons/direction.svg @@ -7,8 +7,11 @@ viewBox="0 0 256 256" id="svg8375" version="1.1" - inkscape:version="1.3 (1:1.3+202307231459+0e150ed6c4)" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" sodipodi:docname="forward.svg" + inkscape:export-filename="forward.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -52,6 +55,25 @@ apply_with_radius="true" only_selected="false" hide_knots="false" /> + + + + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:30;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Triangle)" + d="M 28.654909,91.432761 191.42073,91.63363" + id="path3" + sodipodi:nodetypes="cc" /> + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:30;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Triangle)" + d="M 227.34509,164.20927 64.579263,164.41014" + id="path1" + sodipodi:nodetypes="cc" /> diff --git a/icons/forward.png b/icons/forward.png deleted file mode 100644 index f7a95d116..000000000 Binary files a/icons/forward.png and /dev/null differ diff --git a/icons/pause.png b/icons/pause.png deleted file mode 100644 index 39b55f3b2..000000000 Binary files a/icons/pause.png and /dev/null differ diff --git a/icons/pause.svg b/icons/pause.svg deleted file mode 100644 index eec61f249..000000000 --- a/icons/pause.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - -image/svg+xml diff --git a/icons/reverse.png b/icons/reverse.png deleted file mode 100644 index 982bf3e55..000000000 Binary files a/icons/reverse.png and /dev/null differ diff --git a/icons/reverse.svg b/icons/reverse.svg deleted file mode 100644 index 29e3d738f..000000000 --- a/icons/reverse.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/lib/gui/simulator.py b/lib/gui/simulator.py index 863800bd2..423802f8f 100644 --- a/lib/gui/simulator.py +++ b/lib/gui/simulator.py @@ -78,15 +78,10 @@ class ControlPanel(wx.Panel): self.btnForwardCommand.Bind(wx.EVT_BUTTON, self.animation_one_command_forward) self.btnForwardCommand.SetBitmap(self.load_icon('forward_command')) self.btnForwardCommand.SetToolTip(_('Go forward one command (page-up)')) - self.btnForward = wx.BitmapToggleButton(self, -1, style=self.button_style) - self.btnForward.SetValue(True) - self.btnForward.Bind(wx.EVT_TOGGLEBUTTON, self.on_forward_button) - self.btnForward.SetBitmap(self.load_icon('forward')) - self.btnForward.SetToolTip(_('Animate forward (arrow right)')) - self.btnReverse = wx.BitmapToggleButton(self, -1, style=self.button_style) - self.btnReverse.Bind(wx.EVT_TOGGLEBUTTON, self.on_reverse_button) - self.btnReverse.SetBitmap(self.load_icon('reverse')) - self.btnReverse.SetToolTip(_('Animate in reverse (arrow left)')) + self.btnDirection = wx.Button(self, -1, style=self.button_style) + self.btnDirection.Bind(wx.EVT_BUTTON, self.on_direction_button) + self.btnDirection.SetBitmap(self.load_icon('direction')) + self.btnDirection.SetToolTip(_('Switch animation direction (arrow left, arrow right)')) self.btnPlay = wx.BitmapToggleButton(self, -1, style=self.button_style) self.btnPlay.Bind(wx.EVT_TOGGLEBUTTON, self.on_play_button) self.btnPlay.SetBitmap(self.load_icon('play')) @@ -143,8 +138,7 @@ class ControlPanel(wx.Panel): self.controls_inner_sizer.Add(self.btnBackwardStitch, 0, wx.EXPAND | wx.ALL, 2) self.controls_inner_sizer.Add(self.btnForwardStitch, 0, wx.EXPAND | wx.ALL, 2) self.controls_inner_sizer.Add(self.btnForwardCommand, 0, wx.EXPAND | wx.ALL, 2) - self.controls_inner_sizer.Add(self.btnReverse, 0, wx.EXPAND | wx.ALL, 2) - self.controls_inner_sizer.Add(self.btnForward, 0, wx.EXPAND | wx.ALL, 2) + self.controls_inner_sizer.Add(self.btnDirection, 0, wx.EXPAND | wx.ALL, 2) self.controls_inner_sizer.Add(self.btnPlay, 0, wx.EXPAND | wx.ALL, 2) self.controls_inner_sizer.Add(self.btnRestart, 0, wx.EXPAND | wx.ALL, 2) self.controls_sizer.Add((1, 1), 1) @@ -173,7 +167,7 @@ class ControlPanel(wx.Panel): self.speed_buttons_sizer.Add((1, 1), 1) self.speed_sizer.Add(self.speed_buttons_sizer, 0, wx.EXPAND | wx.ALL) self.speed_text = wx.StaticText(self, wx.ID_ANY, label="", style=wx.ALIGN_CENTRE_HORIZONTAL | wx.ST_NO_AUTORESIZE) - self.speed_text.SetFont(wx.Font(wx.FontInfo(15).Bold())) + self.speed_text.SetFont(wx.Font(wx.FontInfo(10).Bold())) extent = self.speed_text.GetTextExtent(self.format_speed_text(100000)) self.speed_text.SetMinSize(extent) self.speed_sizer.Add(self.speed_text, 0, wx.EXPAND | wx.ALL, 5) @@ -294,24 +288,20 @@ class ControlPanel(wx.Panel): self.set_speed(self.target_stitches_per_second) def animation_forward(self, event=None): - self.btnForward.SetValue(True) - self.btnReverse.SetValue(False) self.drawing_panel.forward() self.direction = 1 self.update_speed_text() def animation_reverse(self, event=None): - self.btnForward.SetValue(False) - self.btnReverse.SetValue(True) self.drawing_panel.reverse() self.direction = -1 self.update_speed_text() - def on_forward_button(self, event): - self.animation_forward() - - def on_reverse_button(self, event): - self.animation_reverse() + def on_direction_button(self, event): + if self.direction == -1: + self.animation_forward() + else: + self.animation_reverse() def set_speed(self, speed): self.speed = int(max(speed, 1)) @@ -376,19 +366,15 @@ class ControlPanel(wx.Panel): def animation_pause(self, event=None): self.drawing_panel.stop() - self.btnPlay.SetBitmap(self.load_icon('play')) def animation_start(self, event=None): self.drawing_panel.go() - self.btnPlay.SetBitmap(self.load_icon('pause')) def on_start(self): self.btnPlay.SetValue(True) - self.btnPlay.SetBitmap(self.load_icon('pause')) def on_stop(self): self.btnPlay.SetValue(False) - self.btnPlay.SetBitmap(self.load_icon('play')) def on_play_button(self, event): play = self.btnPlay.GetValue()