printrun-src/printrun/gui/toolbar.py

changeset 15
0bbb006204fc
child 46
cce0af6351f0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/printrun-src/printrun/gui/toolbar.py	Fri Jun 03 09:16:07 2016 +0200
@@ -0,0 +1,94 @@
+# This file is part of the Printrun suite.
+#
+# Printrun is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Printrun is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Printrun.  If not, see <http://www.gnu.org/licenses/>.
+
+import wx
+
+from .utils import make_autosize_button
+
+def MainToolbar(root, parentpanel = None, use_wrapsizer = False):
+    if not parentpanel: parentpanel = root.panel
+    if root.settings.lockbox:
+        root.locker = wx.CheckBox(parentpanel, label = _("Lock") + "  ")
+        root.locker.Bind(wx.EVT_CHECKBOX, root.lock)
+        root.locker.SetToolTip(wx.ToolTip(_("Lock graphical interface")))
+        glob = wx.BoxSizer(wx.HORIZONTAL)
+        parentpanel = root.newPanel(parentpanel)
+        glob.Add(parentpanel, 1, flag = wx.EXPAND)
+        glob.Add(root.locker, 0, flag = wx.ALIGN_CENTER)
+    ToolbarSizer = wx.WrapSizer if use_wrapsizer and wx.VERSION > (2, 9) else wx.BoxSizer
+    self = ToolbarSizer(wx.HORIZONTAL)
+    root.rescanbtn = make_autosize_button(parentpanel, _("Port"), root.rescanports, _("Communication Settings\nClick to rescan ports"))
+    self.Add(root.rescanbtn, 0, wx.TOP | wx.LEFT, 0)
+
+    root.serialport = wx.ComboBox(parentpanel, -1, choices = root.scanserial(),
+                                  style = wx.CB_DROPDOWN)
+    root.serialport.SetToolTip(wx.ToolTip(_("Select Port Printer is connected to")))
+    root.rescanports()
+    self.Add(root.serialport)
+
+    self.Add(wx.StaticText(parentpanel, -1, "@"), 0, wx.RIGHT | wx.ALIGN_CENTER, 0)
+    root.baud = wx.ComboBox(parentpanel, -1,
+                            choices = ["2400", "9600", "19200", "38400",
+                                       "57600", "115200", "250000"],
+                            style = wx.CB_DROPDOWN, size = (100, -1))
+    root.baud.SetToolTip(wx.ToolTip(_("Select Baud rate for printer communication")))
+    try:
+        root.baud.SetValue("115200")
+        root.baud.SetValue(str(root.settings.baudrate))
+    except:
+        pass
+    self.Add(root.baud)
+
+    if not hasattr(root, "connectbtn"):
+        root.connectbtn = make_autosize_button(parentpanel, _("Connect"), root.connect, _("Connect to the printer"))
+        root.statefulControls.append(root.connectbtn)
+    else:
+        root.connectbtn.Reparent(parentpanel)
+    self.Add(root.connectbtn)
+    if not hasattr(root, "resetbtn"):
+        root.resetbtn = make_autosize_button(parentpanel, _("Reset"), root.reset, _("Reset the printer"))
+        root.statefulControls.append(root.resetbtn)
+    else:
+        root.resetbtn.Reparent(parentpanel)
+    self.Add(root.resetbtn)
+
+    self.AddStretchSpacer(prop = 1)
+
+    root.loadbtn = make_autosize_button(parentpanel, _("Load file"), root.loadfile, _("Load a 3D model file"), self)
+    root.sdbtn = make_autosize_button(parentpanel, _("SD"), root.sdmenu, _("SD Card Printing"), self)
+    root.sdbtn.Reparent(parentpanel)
+    root.printerControls.append(root.sdbtn)
+    if not hasattr(root, "printbtn"):
+        root.printbtn = make_autosize_button(parentpanel, _("Print"), root.printfile, _("Start Printing Loaded File"))
+        root.statefulControls.append(root.printbtn)
+    else:
+        root.printbtn.Reparent(parentpanel)
+    self.Add(root.printbtn)
+    if not hasattr(root, "pausebtn"):
+        root.pausebtn = make_autosize_button(parentpanel, _("Pause"), root.pause, _("Pause Current Print"))
+        root.statefulControls.append(root.pausebtn)
+    else:
+        root.pausebtn.Reparent(parentpanel)
+    self.Add(root.pausebtn)
+    root.offbtn = make_autosize_button(parentpanel, _("Off"), root.off, _("Turn printer off"), self)
+    root.printerControls.append(root.offbtn)
+
+    self.AddStretchSpacer(prop = 4)
+
+    if root.settings.lockbox:
+        parentpanel.SetSizer(self)
+        return glob
+    else:
+        return self

mercurial