import wx from configtool.page import Page class CommunicationsPage(wx.Panel, Page): def __init__(self, parent, nb, idPg, font): wx.Panel.__init__(self, nb, wx.ID_ANY) Page.__init__(self, font) self.parent = parent self.id = idPg self.defaultBaud = "115200" self.bauds = ["19200", "38400", "57600", "115200", "230400", "250000"] self.labels = { "XONXOFF": "XON/XOFF Flow Control", "BAUD": "Baud Rate:", "USB_SERIAL": "USB Serial", } sz = wx.GridBagSizer() sz.Add((20, 40), pos=(0, 0)) k = "USB_SERIAL" cb = self.addCheckBox(k, self.onUSBCheckBox) sz.Add(cb, pos=(1, 1)) ch = self.addChoice( "BAUD", self.bauds, self.bauds.index(self.defaultBaud), 80, self.onChoice ) sz.Add(ch, pos=(1, 3)) cb = self.addCheckBox("XONXOFF", self.onCheckBox) sz.Add(cb, pos=(3, 3)) sz.Add((100, 10), pos=(2, 2)) self.SetSizer(sz) self.enableAll(False) def onUSBCheckBox(self, evt): self.assertModified(True) f = not self.checkBoxes["USB_SERIAL"].IsChecked() self.checkBoxes["XONXOFF"].Enable(f) self.choices["BAUD"].Enable(f) evt.Skip() def insertValues(self, cfgValues): Page.insertValues(self, cfgValues) k = "BAUD" self.setChoice(k, cfgValues, self.defaultBaud) if self.checkBoxes["USB_SERIAL"].IsChecked(): self.checkBoxes["XONXOFF"].Enable(False) self.choices["BAUD"].Enable(False) def getValues(self): result = Page.getValues(self) if result["USB_SERIAL"]: result["BAUD"] = result["BAUD"][0], False result["XONXOFF"] = False return result