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 @@
-
-
-
-
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 @@
-
-
-
-
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()