chiark / gitweb /
Add direct control buttons to print window (needs icons :P). Add project planner...
authordaid <daid303@gmail.com>
Thu, 19 Apr 2012 15:35:08 +0000 (17:35 +0200)
committerdaid <daid303@gmail.com>
Thu, 19 Apr 2012 15:35:08 +0000 (17:35 +0200)
Cura/gui/mainWindow.py
Cura/gui/printWindow.py
Cura/gui/projectPlanner.py

index fd5ded49b6a1ab5b548ddac8a65d97fa3a1c8899..c9ad00db50c6bb411e25bc989e857ef51c3c9511 100644 (file)
@@ -14,6 +14,7 @@ from gui import configWizard
 from gui import machineCom
 from gui import printWindow
 from gui import simpleMode
+from gui import projectPlanner
 from gui import icon
 from util import profile
 from util import version
@@ -50,6 +51,9 @@ class mainWindow(configBase.configWindowBase):
                i = fileMenu.Append(-1, 'Preferences...')
                self.Bind(wx.EVT_MENU, self.OnPreferences, i)
                fileMenu.AppendSeparator()
+               i = fileMenu.Append(-1, 'Open project planner...')
+               self.Bind(wx.EVT_MENU, self.OnProjectPlanner, i)
+               fileMenu.AppendSeparator()
                i = fileMenu.Append(wx.ID_EXIT, 'Quit')
                self.Bind(wx.EVT_MENU, self.OnQuit, i)
                menubar.Append(fileMenu, '&File')
@@ -296,6 +300,11 @@ class mainWindow(configBase.configWindowBase):
                ecw = expertConfig.expertConfigWindow()
                ecw.Centre()
                ecw.Show(True)
+       
+       def OnProjectPlanner(self, e):
+               pp = projectPlanner.projectPlanner()
+               pp.Centre()
+               pp.Show(True)
 
        def removeSliceProgress(self, spp):
                self.progressPanelList.remove(spp)
index 96538271f795fe0d6a281233dd5e91d67d95795a..27d2d9eeec07db8799874814d2d57319fca83b5b 100644 (file)
@@ -1,7 +1,8 @@
 from __future__ import absolute_import\r
 import __init__\r
 \r
-import wx, threading, re, subprocess, sys\r
+import wx, threading, re, subprocess, sys, os\r
+from wx.lib import buttons\r
 \r
 from gui import machineCom\r
 from gui import icon\r
@@ -50,6 +51,23 @@ class printProcessMonitor():
                self.handle = None\r
                self.thread = None\r
 \r
+class PrintCommandButton(buttons.GenBitmapButton):\r
+       def __init__(self, parent, command, bitmapFilename, size=(20,20)):\r
+               self.bitmap = wx.Bitmap(os.path.join(os.path.split(__file__)[0], "../images", bitmapFilename))\r
+               super(PrintCommandButton, self).__init__(parent.directControlPanel, -1, self.bitmap, size=size)\r
+\r
+               self.command = command\r
+               self.parent = parent\r
+\r
+               self.SetBezelWidth(1)\r
+               self.SetUseFocusIndicator(False)\r
+\r
+               self.Bind(wx.EVT_BUTTON, self.OnClick)\r
+\r
+       def OnClick(self, e):\r
+               self.parent.sendCommand(self.command)\r
+               e.Skip()\r
+\r
 class printWindow(wx.Frame):\r
        "Main user interface window"\r
        def __init__(self):\r
@@ -95,9 +113,38 @@ class printWindow(wx.Frame):
                self.sizer.Add(self.printButton, pos=(2,1))\r
                self.sizer.Add(self.cancelButton, pos=(3,1))\r
                self.sizer.Add(self.progress, pos=(4,0), span=(1,2), flag=wx.EXPAND)\r
-\r
+               \r
                self.sizer.Add(wx.StaticText(self.panel, -1, "Temp:"), pos=(0,3))\r
                self.sizer.Add(self.temperatureSelect, pos=(0,4))\r
+               \r
+               self.directControlPanel = wx.Panel(self.panel)\r
+               self.sizer.Add(self.directControlPanel, pos=(1,3), span=(5,4))\r
+               \r
+               sizer = wx.GridBagSizer(2, 2)\r
+               self.directControlPanel.SetSizer(sizer)\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y100 F6000', 'object-mul-y-add.png'), pos=(0,3))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y10 F6000', 'object-mul-y-add.png'), pos=(1,3))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y1 F6000', 'object-mul-y-add.png'), pos=(2,3))\r
+\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y-1 F6000', 'object-mul-y-sub.png'), pos=(4,3))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y-10 F6000', 'object-mul-y-sub.png'), pos=(5,3))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Y-100 F6000', 'object-mul-y-sub.png'), pos=(6,3))\r
+\r
+               sizer.Add(PrintCommandButton(self, 'G1 X-100 F6000', 'object-mul-x-sub.png'), pos=(3,0))\r
+               sizer.Add(PrintCommandButton(self, 'G1 X-10 F6000', 'object-mul-x-sub.png'), pos=(3,1))\r
+               sizer.Add(PrintCommandButton(self, 'G1 X-1 F6000', 'object-mul-x-sub.png'), pos=(3,2))\r
+\r
+               sizer.Add(PrintCommandButton(self, 'G1 X1 F6000', 'object-mul-x-add.png'), pos=(3,4))\r
+               sizer.Add(PrintCommandButton(self, 'G1 X10 F6000', 'object-mul-x-add.png'), pos=(3,5))\r
+               sizer.Add(PrintCommandButton(self, 'G1 X100 F6000', 'object-mul-x-add.png'), pos=(3,6))\r
+\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z10 F200', 'object-max-size.png'), pos=(0,6))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z1 F200', 'object-max-size.png'), pos=(1,6))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z0.1 F200', 'object-max-size.png'), pos=(2,6))\r
+\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z0.1 F200', 'object-max-size.png'), pos=(4,6))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z1 F200', 'object-max-size.png'), pos=(5,6))\r
+               sizer.Add(PrintCommandButton(self, 'G1 Z10 F200', 'object-max-size.png'), pos=(6,6))\r
 \r
                self.sizer.AddGrowableRow(3)\r
                self.sizer.AddGrowableCol(0)\r
@@ -122,6 +169,8 @@ class printWindow(wx.Frame):
                #self.loadButton.Enable(self.printIdx == None)\r
                self.printButton.Enable(self.machineConnected and self.gcodeList != None and self.printIdx == None)\r
                self.cancelButton.Enable(self.printIdx != None)\r
+               self.temperatureSelect.Enable(self.machineConnected)\r
+               self.directControlPanel.Enable(self.machineConnected)\r
        \r
        def UpdateProgress(self):\r
                status = ""\r
index 0822a44aa068135adb57d481b58cca5d7f40acd9..14002802d1c2172ecc368d139c97736221b473bf 100644 (file)
@@ -56,7 +56,7 @@ class projectPlanner(wx.Frame):
 \r
                group = []\r
                toolbarUtil.RadioButton(self.toolbar, group, 'object-3d-on.png', 'object-3d-off.png', '3D view', callback=self.On3DClick)\r
-               toolbarUtil.RadioButton(self.toolbar, group, 'object-top-on.png', 'object-top-off.png', 'Topdown view', callback=self.OnTopClick)\r
+               toolbarUtil.RadioButton(self.toolbar, group, 'object-top-on.png', 'object-top-off.png', 'Topdown view', callback=self.OnTopClick).SetValue(True)\r
                \r
                self.toolbar.Realize()\r
                \r
@@ -259,7 +259,7 @@ class projectPlanner(wx.Frame):
                \r
                resultFile.write(';TYPE:CUSTOM\n')\r
                resultFile.write(profile.getAlterationFileContents('end.gcode'))\r
-               resultFile.close()      \r
+               resultFile.close()\r
        \r
        def loadModelFile(self, item):\r
                item.load(item.filename)\r