Fixed keypad toggle for XY controls. Defaults to off.
parent
37cdd32347
commit
f4d18e4dff
|
@ -144,4 +144,4 @@ class BufferedCanvas(wx.Panel):
|
|||
self.backbuffer = wx.EmptyBitmapRGBA(w, h, alpha=0)
|
||||
|
||||
# Now update the screen
|
||||
self.update()
|
||||
self.update()
|
||||
|
|
|
@ -76,36 +76,14 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
ycol=(180,180,255)
|
||||
zcol=(180,255,180)
|
||||
self.cpbuttons=[
|
||||
# [_("X+100"),("move X 100"),(2,0),xcol,(1,3)],
|
||||
# [_("X+10"),("move X 10"),(3,0),xcol,(1,3)],
|
||||
# [_("X+1"),("move X 1"),(4,0),xcol,(1,3)],
|
||||
# [_("X+0.1"),("move X 0.1"),(5,0),xcol,(1,3)],
|
||||
# [_("HomeX"),("home X"),(6,0),(205,205,78),(1,3)],
|
||||
# [_("X-0.1"),("move X -0.1"),(7,0),xcol,(1,3)],
|
||||
# [_("X-1"),("move X -1"),(8,0),xcol,(1,3)],
|
||||
# [_("X-10"),("move X -10"),(9,0),xcol,(1,3)],
|
||||
# [_("X-100"),("move X -100"),(10,0),xcol,(1,3)],
|
||||
# [_("Y+100"),("move Y 100"),(2,3),ycol,(1,3)],
|
||||
# [_("Y+10"),("move Y 10"),(3,3),ycol,(1,3)],
|
||||
# [_("Y+1"),("move Y 1"),(4,3),ycol,(1,3)],
|
||||
# [_("Y+0.1"),("move Y 0.1"),(5,3),ycol,(1,3)],
|
||||
# [_("HomeY"),("home Y"),(6,3),(150,150,205),(1,3)],
|
||||
# [_("Y-0.1"),("move Y -0.1"),(7,3),ycol,(1,3)],
|
||||
# [_("Y-1"),("move Y -1"),(8,3),ycol,(1,3)],
|
||||
# [_("Y-10"),("move Y -10"),(9,3),ycol,(1,3)],
|
||||
# [_("Y-100"),("move Y -100"),(10,3),ycol,(1,3)],
|
||||
# [_("Motors off"),("M84"),(2,6),(250,250,250),(1,3)],
|
||||
# [_("Z+10"),("move Z 10"),(3,6),zcol,(1,3)],
|
||||
# [_("Z+1"),("move Z 1"),(4,6),zcol,(1,3)],
|
||||
# [_("Z+0.1"),("move Z 0.1"),(5,6),zcol,(1,3)],
|
||||
# [_("HomeZ"),("home Z"),(6,6),(150,205,150),(1,3)],
|
||||
# [_("Z-0.1"),("move Z -0.1"),(7,6),zcol,(1,3)],
|
||||
# [_("Z-1"),("move Z -1"),(8,6),zcol,(1,3)],
|
||||
# [_("Z-10"),("move Z -10"),(9,6),zcol,(1,3)],
|
||||
# [_("Home"),("home"),(10,6),(250,250,250),(1,3)],
|
||||
[_("Check temp"),("M105"),(11,6),(225,200,200),(1,3)],
|
||||
[_("Extrude"),("extrude"),(13,0),(225,200,200),(1,2)],
|
||||
[_("Reverse"),("reverse"),(14,0),(225,200,200),(1,2)],
|
||||
[_("Home"),("home"),(3,0),(250,250,250),(1,2)],
|
||||
[_("HomeX"),("home X"),(3,2),(205,205,78),(1,2)],
|
||||
[_("HomeY"),("home Y"),(3,4),(150,150,205),(1,2)],
|
||||
[_("HomeZ"),("home Z"),(3,6),(150,205,150),(1,2)],
|
||||
[_("Motors off"),("M84"),(3,8),(250,250,250),(1,2)],
|
||||
[_("Check temp"),("M105"),(6,6),(225,200,200),(1,3)],
|
||||
[_("Extrude"),("extrude"),(7,0),(225,200,200),(1,2)],
|
||||
[_("Reverse"),("reverse"),(8,0),(225,200,200),(1,2)],
|
||||
]
|
||||
self.custombuttons=[]
|
||||
self.btndict={}
|
||||
|
@ -388,7 +366,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
portslist += [self.settings.port]
|
||||
self.serialport = wx.ComboBox(self.panel, -1,
|
||||
choices=portslist,
|
||||
style=wx.CB_DROPDOWN|wx.CB_SORT, pos=(50,0))
|
||||
style=wx.CB_DROPDOWN|wx.CB_SORT|wx.CB_READONLY, pos=(50,0))
|
||||
try:
|
||||
if self.settings.port in scan:
|
||||
self.serialport.SetValue(self.settings.port)
|
||||
|
@ -400,7 +378,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
uts.Add(wx.StaticText(self.panel,-1,"@",pos=(250,5)),wx.RIGHT,5)
|
||||
self.baud = wx.ComboBox(self.panel, -1,
|
||||
choices=["2400", "9600", "19200", "38400", "57600", "115200"],
|
||||
style=wx.CB_DROPDOWN|wx.CB_SORT, size=(110,30),pos=(275,0))
|
||||
style=wx.CB_DROPDOWN|wx.CB_SORT|wx.CB_READONLY, size=(110,30),pos=(275,0))
|
||||
try:
|
||||
self.baud.SetValue("115200")
|
||||
self.baud.SetValue(str(self.settings.baudrate))
|
||||
|
@ -480,8 +458,11 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
|
||||
#lls.Add((200,375))
|
||||
|
||||
lls.Add(XYButtons(self.panel, self.moveXY, self.home), pos=(2,0), span=(9,6))
|
||||
lls.Add(ZButtons(self.panel, self.moveZ, self.home), pos=(2,7), span=(9,2))
|
||||
xyb = XYButtons(self.panel, self.moveXY)
|
||||
lls.Add(xyb, pos=(2,0), span=(1,6), flag=wx.ALIGN_CENTER)
|
||||
zb = ZButtons(self.panel, self.moveZ)
|
||||
lls.Add(zb, pos=(2,7), span=(1,2), flag=wx.ALIGN_CENTER)
|
||||
wx.CallAfter(xyb.SetFocus)
|
||||
|
||||
for i in self.cpbuttons:
|
||||
btn=wx.Button(self.panel,-1,i[0])#,size=(60,-1))
|
||||
|
@ -494,7 +475,7 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
lls.Add(btn,pos=i[2],span=i[4])
|
||||
|
||||
|
||||
lls.Add(wx.StaticText(self.panel,-1,_("Heater:"),pos=(0,343)),pos=(11,0),span=(1,1))
|
||||
lls.Add(wx.StaticText(self.panel,-1,_("Heater:"),pos=(0,343)),pos=(4,0),span=(1,1))
|
||||
htemp_choices=[self.temps[i]+" ("+i+")" for i in sorted(self.temps.keys(),key=lambda x:self.temps[x])]
|
||||
|
||||
if self.settings.last_temperature not in map(float,self.temps.values()):
|
||||
|
@ -503,12 +484,12 @@ class PronterWindow(wx.Frame,pronsole.pronsole):
|
|||
choices=htemp_choices,style=wx.CB_DROPDOWN, size=(90,25),pos=(45,337))
|
||||
|
||||
|
||||
lls.Add(self.htemp,pos=(11,1),span=(1,3))
|
||||
lls.Add(self.htemp,pos=(4,1),span=(1,3))
|
||||
self.settbtn=wx.Button(self.panel,-1,_("Set"),size=(38,-1),pos=(135,335))
|
||||
self.settbtn.Bind(wx.EVT_BUTTON,self.do_settemp)
|
||||
self.printerControls.append(self.settbtn)
|
||||
lls.Add(self.settbtn,pos=(11,4),span=(1,2))
|
||||
lls.Add(wx.StaticText(self.panel,-1,_("Bed:"),pos=(0,343)),pos=(12,0),span=(1,1))
|
||||
lls.Add(self.settbtn,pos=(4,4),span=(1,2))
|
||||
lls.Add(wx.StaticText(self.panel,-1,_("Bed:"),pos=(0,343)),pos=(5,0),span=(1,1))
|
||||
btemp_choices=[self.bedtemps[i]+" ("+i+")" for i in sorted(self.bedtemps.keys(),key=lambda x:self.temps[x])]
|
||||
if self.settings.last_bed_temperature not in map(float,self.bedtemps.values()):
|
||||
btemp_choices = [str(self.settings.last_bed_temperature)] + btemp_choices
|
||||
|
|
55
xybuttons.py
55
xybuttons.py
|
@ -19,15 +19,13 @@ class XYButtons(BufferedCanvas):
|
|||
concentric_circle_radii = [15, 55, 86, 117, 142]
|
||||
center = (166, 164)
|
||||
|
||||
def __init__(self, parent, moveCallback=None, homeCallback=None, ID=-1):
|
||||
def __init__(self, parent, moveCallback=None, ID=-1):
|
||||
self.bg_bmp = wx.Image(imagefile("control_xy.png"),wx.BITMAP_TYPE_PNG).ConvertToBitmap()
|
||||
self.keypad_bmp = wx.Image(imagefile("arrow_keys.png"),wx.BITMAP_TYPE_PNG).ConvertToBitmap()
|
||||
self.keypad_idx = 0
|
||||
self.orderOfMagnitudeIdx = 0
|
||||
self.keypad_idx = -1
|
||||
self.quadrant = None
|
||||
self.concentric = None
|
||||
self.moveCallback = moveCallback
|
||||
self.homeCallback = homeCallback
|
||||
|
||||
BufferedCanvas.__init__(self, parent, ID)
|
||||
|
||||
|
@ -38,26 +36,27 @@ class XYButtons(BufferedCanvas):
|
|||
self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown)
|
||||
self.Bind(wx.EVT_MOTION, self.OnMotion)
|
||||
self.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeaveWindow)
|
||||
parent.Bind(wx.EVT_CHAR_HOOK, self.onKey)
|
||||
wx.GetTopLevelParent(self).Bind(wx.EVT_CHAR_HOOK, self.onKey)
|
||||
|
||||
def onKey(self, evt):
|
||||
if evt.GetKeyCode() == wx.WXK_TAB:
|
||||
self.setKeypadIndex(self.rotateKeypadIndex())
|
||||
elif evt.GetKeyCode() == wx.WXK_UP:
|
||||
self.quadrant = 1
|
||||
elif evt.GetKeyCode() == wx.WXK_DOWN:
|
||||
self.quadrant = 3
|
||||
elif evt.GetKeyCode() == wx.WXK_LEFT:
|
||||
self.quadrant = 2
|
||||
elif evt.GetKeyCode() == wx.WXK_RIGHT:
|
||||
self.quadrant = 0
|
||||
else:
|
||||
evt.Skip()
|
||||
return
|
||||
if self.moveCallback:
|
||||
self.concentric = self.keypad_idx
|
||||
x, y = self.getMovement()
|
||||
self.moveCallback(x, y)
|
||||
if self.keypad_idx >= 0:
|
||||
if evt.GetKeyCode() == wx.WXK_TAB:
|
||||
self.setKeypadIndex(self.rotateKeypadIndex())
|
||||
elif evt.GetKeyCode() == wx.WXK_UP:
|
||||
self.quadrant = 1
|
||||
elif evt.GetKeyCode() == wx.WXK_DOWN:
|
||||
self.quadrant = 3
|
||||
elif evt.GetKeyCode() == wx.WXK_LEFT:
|
||||
self.quadrant = 2
|
||||
elif evt.GetKeyCode() == wx.WXK_RIGHT:
|
||||
self.quadrant = 0
|
||||
else:
|
||||
evt.Skip()
|
||||
return False
|
||||
if self.moveCallback:
|
||||
self.concentric = self.keypad_idx
|
||||
x, y = self.getMovement()
|
||||
self.moveCallback(x, y)
|
||||
|
||||
|
||||
def rotateKeypadIndex(self):
|
||||
|
@ -135,7 +134,10 @@ class XYButtons(BufferedCanvas):
|
|||
if self.moveCallback:
|
||||
self.moveCallback(x, y)
|
||||
else:
|
||||
self.setKeypadIndex(idx)
|
||||
if self.keypad_idx == idx:
|
||||
self.setKeypadIndex(-1)
|
||||
else:
|
||||
self.setKeypadIndex(idx)
|
||||
|
||||
def OnLeaveWindow(self, evt):
|
||||
self.quadrant = None
|
||||
|
@ -207,8 +209,9 @@ class XYButtons(BufferedCanvas):
|
|||
|
||||
if self.quadrant != None and self.concentric != None:
|
||||
self.highlightQuadrant(dc, self.quadrant, self.concentric)
|
||||
|
||||
pos = XYButtons.keypad_positions[self.keypad_idx]
|
||||
dc.DrawBitmap(self.keypad_bmp, pos[0], pos[1])
|
||||
|
||||
if self.keypad_idx >= 0:
|
||||
pos = XYButtons.keypad_positions[self.keypad_idx]
|
||||
dc.DrawBitmap(self.keypad_bmp, pos[0], pos[1])
|
||||
|
||||
return True
|
||||
|
|
|
@ -13,13 +13,12 @@ class ZButtons(BufferedCanvas):
|
|||
button_ydistances = [8, 30, 56, 84, 118]
|
||||
center = (32, 146)
|
||||
|
||||
def __init__(self, parent, moveCallback=None, homeCallback=None, ID=-1):
|
||||
def __init__(self, parent, moveCallback=None, ID=-1):
|
||||
self.bg_bmp = wx.Image(imagefile("control_z.png"),wx.BITMAP_TYPE_PNG).ConvertToBitmap()
|
||||
self.range = None
|
||||
self.direction = None
|
||||
self.orderOfMagnitudeIdx = 0 # 0 means '1', 1 means '10', 2 means '100', etc.
|
||||
self.moveCallback = moveCallback
|
||||
self.homeCallback = homeCallback
|
||||
|
||||
BufferedCanvas.__init__(self, parent, ID)
|
||||
|
||||
|
@ -73,9 +72,6 @@ class ZButtons(BufferedCanvas):
|
|||
value = math.pow(10, self.orderOfMagnitudeIdx) * math.pow(10, r - 1) * d
|
||||
if self.moveCallback:
|
||||
self.moveCallback(value)
|
||||
else:
|
||||
if self.homeCallback:
|
||||
self.homeCallback()
|
||||
|
||||
def OnLeaveWindow(self, evt):
|
||||
self.range = None
|
||||
|
|
Loading…
Reference in New Issue