def __init__(self, version, url): self.url = url eg.Dialog.__init__(self, None, -1, eg.APP_NAME) bmp = wx.ArtProvider.GetBitmap(wx.ART_INFORMATION, wx.ART_MESSAGE_BOX, (32, 32)) staticBitmap = wx.StaticBitmap(self, -1, bmp) staticText = self.StaticText(Text.newVersionMesg % (eg.Version.string, version)) downloadButton = wx.Button(self, -1, eg.text.General.ok) downloadButton.Bind(wx.EVT_BUTTON, self.OnOk) cancelButton = wx.Button(self, -1, eg.text.General.cancel) cancelButton.Bind(wx.EVT_BUTTON, self.OnCancel) sizer2 = eg.HBoxSizer( (staticBitmap, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 10), ((5, 5), 0), (staticText, 0, wx.TOP | wx.RIGHT | wx.BOTTOM | wx.ALIGN_CENTER_VERTICAL, 10), ) self.SetSizerAndFit( eg.VBoxSizer( (sizer2), ((5, 5), 1), (eg.HBoxSizer( (downloadButton), ((5, 5), 0), (cancelButton), ), 0, wx.ALIGN_CENTER_HORIZONTAL), ((2, 10), 0), )) self.ShowModal()
def __init__(self, parent, name="", text="", icon=None, url = None): text = REPLACE_BR_TAG.sub('\n', text) text = REMOVE_HTML_PATTERN.sub('', text).strip() if text == name: text = "" self.parent = parent wx.PyWindow.__init__(self, parent, -1) self.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW) ) nameBox = wx.StaticText(self, -1, name) font = wx.Font(8, wx.SWISS, wx.NORMAL, wx.FONTWEIGHT_BOLD) nameBox.SetFont(font) self.text = '<html><body bgcolor="%s" text="%s">%s</body></html>' % ( self.GetBackgroundColour().GetAsString(wx.C2S_HTML_SYNTAX), self.GetForegroundColour().GetAsString(wx.C2S_HTML_SYNTAX), text ) if url: self.text = eg.Utils.AppUrl(self.text, url) descBox = eg.HtmlWindow(self, style=wx.html.HW_NO_SELECTION) descBox.SetBorders(1) descBox.SetFonts("Arial", "Times New Roman", [8, 8, 8, 8, 8, 8, 8]) descBox.Bind(wx.html.EVT_HTML_LINK_CLICKED, self.OnLinkClicked) self.descBox = descBox staticBitmap = wx.StaticBitmap(self) staticBitmap.SetIcon(icon.GetWxIcon()) mainSizer = eg.HBoxSizer( ((4, 4)), (staticBitmap, 0, wx.TOP, 5), ((4, 4)), (eg.VBoxSizer( ((4, 4)), (eg.HBoxSizer( (nameBox, 1, wx.EXPAND | wx.ALIGN_BOTTOM), ), 0, wx.EXPAND | wx.TOP, 2), (descBox, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 8), ), 1, wx.EXPAND), ) # odd sequence to setup the window, but all other ways seem # to wrap the text wrong self.SetSizer(mainSizer) self.SetAutoLayout(True) mainSizer.Fit(self) mainSizer.Layout() self.Layout() self.Bind(wx.EVT_SIZE, self.OnSize)
def Configure(self, code='', repeatCount=0): text = self.text panel = eg.ConfigPanel() editCtrl = panel.TextCtrl(code, style=wx.TE_MULTILINE) font = editCtrl.GetFont() font.SetFaceName("Courier New") editCtrl.SetFont(font) editCtrl.SetMinSize((-1, 100)) repeatCtrl = eg.SpinIntCtrl(panel, -1, value=repeatCount, min=0, max=127) repeatCtrl.SetInitialSize((50, -1)) learnButton = panel.Button("Learn an IR Code...") result = self.plugin.client.GetDeviceInfo() if result is None or result[2] != 2: learnButton.Enable(False) panel.sizer.Add(panel.StaticText("Pronto Code"),0,wx.EXPAND) panel.sizer.Add((5, 5)) panel.sizer.Add(editCtrl,0,wx.EXPAND) panel.sizer.Add((5, 5)) panel.sizer.Add(eg.HBoxSizer(panel.StaticText("Repeat Counter:"),(5,5),repeatCtrl, ((5,5),1,wx.EXPAND),(learnButton,0,wx.ALIGN_RIGHT)),0,wx.EXPAND) def LearnIR(event): code = self.plugin.client.LearnIR() if not code is None: editCtrl.SetValue(code) learnButton.Bind(wx.EVT_BUTTON, LearnIR) while panel.Affirmed(): panel.SetResult( editCtrl.GetValue(), repeatCtrl.GetValue() )
def Configure(self, led1=2, led2=0): panel = eg.ConfigPanel() choices = ["Always off", "Always on", "Blink on IR reception"] led1Ctrl = panel.RadioBox(led1, choices=choices) led2Ctrl = panel.RadioBox(led2, choices=choices) group1 = panel.BoxedGroup("LED 1", led1Ctrl) group2 = panel.BoxedGroup("LED 2", led2Ctrl) sizer = eg.HBoxSizer(group1, (15, 15), group2) panel.sizer.Add(sizer) while panel.Affirmed(): panel.SetResult(led1Ctrl.GetValue(), led2Ctrl.GetValue())
def Configure(self, eventString="", waitTime=0): panel = eg.ConfigPanel() text = self.text eventStringCtrl = panel.TextCtrl(eventString, size=(250, -1)) waitTimeCtrl = panel.SpinNumCtrl(waitTime, integerWidth=5) sizer1 = eg.HBoxSizer( (panel.StaticText(text.text1), 0, wx.ALIGN_CENTER_VERTICAL, 5), (eventStringCtrl, 0, wx.LEFT, 5), ) sizer2 = eg.HBoxSizer( (panel.StaticText(text.text2), 0, wx.ALIGN_CENTER_VERTICAL), (waitTimeCtrl, 0, wx.ALL, 5), (panel.StaticText(text.text3), 0, wx.ALIGN_CENTER_VERTICAL), ) panel.sizer.AddMany(((sizer1, 0, wx.EXPAND), (sizer2, 0, wx.EXPAND))) while panel.Affirmed(): panel.SetResult( eventStringCtrl.GetValue(), waitTimeCtrl.GetValue(), )
def Configure(self, data=""): text = self.text panel = eg.ConfigPanel() data_ctrl = panel.TextCtrl(data) data_ctrl_label = panel.StaticText(text.write_string_label) result_preview_ctrl_label = panel.StaticText(text.parse_string_label) result_preview_ctrl = panel.StaticText("") eg.EqualizeWidths((data_ctrl_label, result_preview_ctrl_label)) eg.EqualizeWidths((data_ctrl, result_preview_ctrl)) Add = panel.sizer.Add Add(eg.HBoxSizer(data_ctrl_label, (5, 5), data_ctrl)) Add((5, 5)) Add( eg.HBoxSizer(result_preview_ctrl_label, (5, 5), result_preview_ctrl)) def on_data_change(event): try: temp = eg.ParseString(data_ctrl.GetValue()) temp = temp.strip() result_preview_ctrl.SetLabel(temp) panel.EnableButtons(True) except: result_preview_ctrl.SetLabel(text.parse_string_error) panel.EnableButtons(False) event.Skip() data_ctrl.Bind(wx.EVT_TEXT, on_data_change) data_ctrl.SetValue(data_ctrl.GetValue()) while panel.Affirmed(): panel.SetResult(data_ctrl.GetValue())
def Configure(self, correction=0): text = self.text panel = eg.ConfigPanel() correction_ctrl = panel.SpinIntCtrl(correction, min=-2147483648, max=2147483647) correction_ctrl_label = panel.StaticText(text.correction_ctrl_label) Add = panel.sizer.Add Add(eg.HBoxSizer(correction_ctrl_label, (5, 5), correction_ctrl)) while panel.Affirmed(): panel.SetResult(correction_ctrl.GetValue())
def __init__(self, parent): wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER) backgroundColour = (255, 255, 255) self.SetBackgroundColour(backgroundColour) hypelink1 = eg.HyperLinkCtrl( self, wx.ID_ANY, eg.text.MainFrame.Menu.WebHomepage.replace("&", ""), URL="http://www.eventghost.org/" ) font = hypelink1.GetFont() font.SetPointSize(11) font.SetWeight(wx.FONTWEIGHT_BOLD) hypelink1.SetFont(font) hypelink2 = eg.HyperLinkCtrl( self, wx.ID_ANY, eg.text.MainFrame.Menu.WebForum.replace("&", ""), URL="http://www.eventghost.org/forum/" ) hypelink2.SetFont(font) hypelink3 = eg.HyperLinkCtrl( self, wx.ID_ANY, eg.text.MainFrame.Menu.WebWiki.replace("&", ""), URL="http://www.eventghost.org/mediawiki/" ) hypelink3.SetFont(font) animatedWindow = eg.AnimatedWindow(self) animatedWindow.SetBackgroundColour(backgroundColour) sizer = eg.VBoxSizer( (eg.HBoxSizer( ((5, 5), 1), (hypelink1, 0, wx.EXPAND, 15), ((5, 5), 1), (hypelink2, 0, wx.EXPAND, 15), ((5, 5), 1), (hypelink3, 0, wx.EXPAND, 15), ((5, 5), 1), ), 0, wx.ALIGN_CENTER | wx.EXPAND | wx.TOP, 15), (animatedWindow, 1, wx.ALIGN_CENTER | wx.ALL | wx.EXPAND, 10), ) self.SetSizerAndFit(sizer)
def Configure(self, parent): #IGNORE:W0221 if AboutDialog.instance: AboutDialog.instance.Raise() return AboutDialog.instance = self eg.TaskletDialog.__init__(self, parent=parent, title=Text.Title, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) notebook = wx.Notebook(self) notebook.AddPage(AboutPanel(notebook), Text.tabAbout) notebook.AddPage(SpecialThanksPanel(notebook), Text.tabSpecialThanks) notebook.AddPage(LicensePanel(notebook), Text.tabLicense) notebook.AddPage(SystemInfoPanel(notebook), Text.tabSystemInfo) #notebook.AddPage(ChangelogPanel(notebook), Text.tabChangelog) def OnPageChanged(event): pageNum = event.GetSelection() notebook.ChangeSelection(pageNum) notebook.GetPage(pageNum).SetFocus() notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, OnPageChanged) okButton = wx.Button(self, wx.ID_OK, eg.text.General.ok) okButton.SetDefault() okButton.Bind(wx.EVT_BUTTON, self.OnOK) buttonSizer = eg.HBoxSizer( ((0, 0), 1, wx.EXPAND), (okButton, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.ALL, 5), ((0, 0), 1, wx.EXPAND), (eg.SizeGrip(self), 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT), ) mainSizer = eg.VBoxSizer( (notebook, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, 5), (buttonSizer, 0, wx.EXPAND), ) self.SetSizerAndFit(mainSizer) self.SetMinSize(self.GetSize()) while self.Affirmed(): self.SetResult() AboutDialog.instance = None
def Configure(self, interval=2.0, link=None): panel = eg.ConfigPanel() text = self.text intervalCtrl = panel.SpinNumCtrl(interval) macroCtrl = eg.MacroSelectButton(panel, eg.text.General.choose, text.text4, text.text5, link) sizer1 = eg.HBoxSizer( (panel.StaticText(text.text1), 0, wx.ALIGN_CENTER_VERTICAL), (intervalCtrl, 0, wx.LEFT | wx.RIGHT, 5), (panel.StaticText(text.text2), 0, wx.ALIGN_CENTER_VERTICAL), ) mySizer = wx.FlexGridSizer(2, 3, 5, 5) mySizer.AddGrowableCol(1, 1) mySizer.Add(panel.StaticText(text.text3), 0, wx.ALIGN_CENTER_VERTICAL) mySizer.Add(macroCtrl, 1, wx.EXPAND) panel.sizer.AddMany(((sizer1), (mySizer, 1, wx.EXPAND | wx.TOP, 5))) while panel.Affirmed(): panel.SetResult(intervalCtrl.GetValue(), macroCtrl.GetValue())
def __init__(self, parent, hwnds): eg.Dialog.__init__( self, parent, title="Found Windows", size=(500, 350), style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER, ) windowList = eg.WindowList(self, hwnds) okButton = wx.Button(self, wx.ID_OK) btnSizer = eg.HBoxSizer( ((0, 0), 1, wx.EXPAND), (okButton, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.ALL, 5), ((0, 0), 1, wx.EXPAND), (eg.SizeGrip(self), 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT), ) mainSizer = eg.VBoxSizer( (windowList, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, 5), (btnSizer, 0, wx.EXPAND), ) self.SetSizer(mainSizer)
def Configure(self, remoteType=2, ids=None, prefix="X10"): panel = eg.ConfigPanel() text = self.text fbtypes = [] selection = 0 for i, remoteId in enumerate(REMOTES_SORT_ORDER): fbtypes.append(REMOTES[remoteId][0]) if remoteId == remoteType: selection = i remoteTypeCtrl = panel.Choice(selection, fbtypes) prefixCtrl = panel.TextCtrl(prefix) btnsizer = wx.FlexGridSizer(4, 4) idBtns = [] for i in xrange(16): btn = wx.ToggleButton(panel, -1, size=(35, 35), label=str(i + 1)) if (ids is None) or ((i+1) in ids): btn.SetValue(True) btnsizer.Add(btn) idBtns.append(btn) selectAllButton = panel.Button(text.allButton, style=wx.BU_EXACTFIT) def OnSelectAll(event): for item in idBtns: item.SetValue(True) event.Skip() selectAllButton.Bind(wx.EVT_BUTTON, OnSelectAll) selectNoneButton = panel.Button(text.noneButton, style=wx.BU_EXACTFIT) def OnSelectNone(event): for item in idBtns: item.SetValue(False) event.Skip() selectNoneButton.Bind(wx.EVT_BUTTON, OnSelectNone) rightBtnSizer = eg.VBoxSizer( (selectAllButton, 0, wx.EXPAND), ((5, 5), 1), (selectNoneButton, 0, wx.EXPAND), ) idSizer = eg.HBoxSizer( (btnsizer), ((10, 10), 0), (rightBtnSizer, 0, wx.EXPAND), ) leftSizer = eg.VBoxSizer( (panel.StaticText(text.remoteBox), 0, wx.BOTTOM, 2), (remoteTypeCtrl, 0, wx.BOTTOM, 10), (panel.StaticText(text.usePrefix), 0, wx.BOTTOM, 2), (prefixCtrl), ) rightSizer = eg.VBoxSizer( (panel.StaticText(text.idBox), 0, wx.BOTTOM, 2), (idSizer), ) mainSizer = eg.HBoxSizer( (leftSizer), ((0, 0), 1, wx.EXPAND), (wx.StaticLine(panel, style=wx.LI_VERTICAL), 0, wx.EXPAND), ((0, 0), 1, wx.EXPAND), (rightSizer), ((0, 0), 1, wx.EXPAND), ) panel.sizer.Add(mainSizer, 1, wx.EXPAND) while panel.Affirmed(): panel.SetResult( REMOTES_SORT_ORDER[remoteTypeCtrl.GetValue()], [i+1 for i, button in enumerate(idBtns) if button.GetValue()], prefixCtrl.GetValue() )
def Configure( self, port=0, baudrate=9600, bytesize=3, parity=0, stopbits=0, generate_events=True, prefix="Atric", init=True, bytecount=6, ): text = self.text panel = eg.ConfigPanel() port_ctrl = panel.SerialPortChoice(port) baudrate_ctrl = panel.ComboBox(str(baudrate), BAUDRATES, style=wx.CB_DROPDOWN, validator=eg.DigitOnlyValidator()) bytesize_ctrl = panel.Choice(bytesize, BYTESIZES) parity_ctrl = panel.Choice(parity, PARITIES_CHOICE) stopbits_ctrl = panel.Choice(stopbits, STOPBITS) init_ctrl = panel.CheckBox(init, text.init_ctrl_label) bytecount_ctrl = panel.SpinIntCtrl(bytecount, min=1, max=32) bytecount_ctrl.Enable(generate_events) prefix_ctrl = panel.TextCtrl(prefix) prefix_ctrl.Enable(generate_events) generate_events_ctrl = panel.CheckBox(generate_events, text.generate_events_ctrl_label) def on_checkbox(event): flag = generate_events_ctrl.GetValue() bytecount_ctrl.Enable(flag) prefix_ctrl.Enable(flag) event.Skip() generate_events_ctrl.Bind(wx.EVT_CHECKBOX, on_checkbox) panel.SetColumnFlags(1, wx.EXPAND) port_settings_box = panel.BoxedGroup( text.port_settings_box_label, (text.port_ctrl_label, port_ctrl), (text.baudrate_ctrl_label, baudrate_ctrl), (text.bytesize_ctrl_label, bytesize_ctrl), (text.parity_ctrl_label, parity_ctrl), (text.stopbits_ctrl_label, stopbits_ctrl), (init_ctrl)) event_settings_box = panel.BoxedGroup( text.event_settings_box_label, (generate_events_ctrl), (text.bytecount_ctrl_label, bytecount_ctrl), (text.prefix_ctrl_label, prefix_ctrl)) eg.EqualizeWidths(port_settings_box.GetColumnItems(0)[:-1]) eg.EqualizeWidths(port_settings_box.GetColumnItems(1)) eg.EqualizeWidths(event_settings_box.GetColumnItems(0)[1:]) eg.EqualizeWidths(event_settings_box.GetColumnItems(1)) Add = panel.sizer.Add Add(eg.HBoxSizer(port_settings_box, (5, 5), event_settings_box)) while panel.Affirmed(): panel.SetResult(port_ctrl.GetValue(), int(baudrate_ctrl.GetValue()), bytesize_ctrl.GetValue(), parity_ctrl.GetValue(), stopbits_ctrl.GetValue(), generate_events_ctrl.GetValue(), prefix_ctrl.GetValue(), init_ctrl.GetValue(), bytecount_ctrl.GetValue())
def Configure( self, waketime="0000000000", year=0, month=1, day=2, hour=3, minute=4, delete=1, ): text = self.text panel = eg.ConfigPanel() delete_ctrl = panel.CheckBox(delete, text.delete_ctrl_label) year_ctrl = panel.SpinIntCtrl(year, 0, 99) month_ctrl = panel.SpinIntCtrl(month, 1, 12) day_ctrl = panel.SpinIntCtrl(day, 1, 31) hour_ctrl = panel.SpinIntCtrl(hour, 0, 23) minute_ctrl = panel.SpinIntCtrl(minute, 0, 59) year_ctrl_label = panel.StaticText(text.year_label_ctrl_label) month_ctrl_label = panel.StaticText(text.month_label_ctrl_label) day_ctrl_label = panel.StaticText(text.day_label_ctrl_label) hour_ctrl_label = panel.StaticText(text.hour_label_ctrl_label) minute_ctrl_label = panel.StaticText(text.minute_label_ctrl_label) waketime_label_ctrl = panel.StaticText(text.waketime_label_ctrl_label) waketime_cleartext_label_ctrl = panel.StaticText( text.waketime_cleartext_label_ctrl_label) waketime_ctrl = panel.StaticText(waketime) waketime_cleartext_ctrl = panel.StaticText("") year_ctrl.Enable(not delete) month_ctrl.Enable(not delete) day_ctrl.Enable(not delete) hour_ctrl.Enable(not delete) minute_ctrl.Enable(not delete) def on_checkbox(event): flag = delete_ctrl.GetValue() year_ctrl.Enable(not flag) month_ctrl.Enable(not flag) day_ctrl.Enable(not flag) hour_ctrl.Enable(not flag) minute_ctrl.Enable(not flag) if flag is True: waketime_ctrl.SetLabel("0000000000") waketime_cleartext_ctrl.SetLabel( text.waketime_cleartext_label_ctrl_disable_text) panel.EnableButtons(True) event.Skip() def on_time_change(event): try: waketime_ctrl.SetLabel("%02d" % year_ctrl.GetValue() + str("%02d" % month_ctrl.GetValue()) + str("%02d" % day_ctrl.GetValue()) + str("%02d" % hour_ctrl.GetValue()) + str("%02d" % minute_ctrl.GetValue())) waketime_cleartext_ctrl.SetLabel( str( time.strftime( "%c", time.strptime(str(waketime_ctrl.GetLabel()), "%y%m%d%H%M")))) panel.EnableButtons(True) except BaseException: panel.EnableButtons(False) waketime_cleartext_ctrl.SetLabel( text.waketime_cleartext_label_ctrl_invalid_text) waketime_ctrl.SetLabel(text.waketime_ctrl_invalid_text) event.Skip() delete_ctrl.Bind(wx.EVT_CHECKBOX, on_checkbox) delete_ctrl.Bind(wx.EVT_CHECKBOX, on_time_change) year_ctrl.Bind(wx.EVT_TEXT, on_time_change) month_ctrl.Bind(wx.EVT_TEXT, on_time_change) day_ctrl.Bind(wx.EVT_TEXT, on_time_change) hour_ctrl.Bind(wx.EVT_TEXT, on_time_change) minute_ctrl.Bind(wx.EVT_TEXT, on_time_change) if delete_ctrl.GetValue() is True: waketime_cleartext_ctrl.SetLabel( text.waketime_cleartext_label_ctrl_disable_text) else: try: waketime_cleartext_ctrl.SetLabel( str( time.strftime( "%c", time.strptime(str(waketime_ctrl.GetLabel()), "%y%m%d%H%M")))) except: waketime_cleartext_ctrl.SetLabel( text.waketime_cleartext_label_ctrl_invalid_text) eg.EqualizeWidths( (year_ctrl, month_ctrl, day_ctrl, hour_ctrl, minute_ctrl)) eg.EqualizeWidths((year_ctrl_label, day_ctrl_label, hour_ctrl_label)) eg.EqualizeWidths((month_ctrl_label, minute_ctrl_label)) eg.EqualizeWidths((waketime_label_ctrl, waketime_cleartext_label_ctrl)) Add = panel.sizer.Add Add(delete_ctrl) Add(panel.StaticText("")) Add( eg.HBoxSizer(year_ctrl_label, (5, 5), year_ctrl, (10, 5), month_ctrl_label, (5, 5), month_ctrl, (10, 5), day_ctrl_label, (5, 5), day_ctrl)) Add((5, 5)) Add( eg.HBoxSizer(hour_ctrl_label, (5, 5), hour_ctrl, (10, 5), minute_ctrl_label, (5, 5), minute_ctrl)) Add(panel.StaticText("")) Add( eg.HBoxSizer(waketime_cleartext_label_ctrl, (5, 5), waketime_cleartext_ctrl)) Add(eg.HBoxSizer(waketime_label_ctrl, (5, 5), waketime_ctrl)) while panel.Affirmed(): panel.SetResult( waketime_ctrl.GetLabel(), year_ctrl.GetValue(), month_ctrl.GetValue(), day_ctrl.GetValue(), hour_ctrl.GetValue(), minute_ctrl.GetValue(), delete_ctrl.GetValue(), )
def Configure(self, data="", timeout=0.2, read_num_bytes=None, read_timeout=1.0, read_returnformat="hex", read_debug=False, disable_infrared_while_write=True): text = self.text panel = eg.ConfigPanel() if read_num_bytes is None: read_num_bytes = 2147483647 flag = False else: flag = True disable_infrared_while_write_ctrl = panel.CheckBox( disable_infrared_while_write, text.disable_infrared_while_write_ctrl_label) data_ctrl_label = panel.StaticText(text.write_string_label) data_ctrl = panel.TextCtrl(data) returnformat_ctrl_label = panel.StaticText( text.returnformat_ctrl_label) returnformat_ctrl = panel.ComboBox(read_returnformat, RETURNFORMATS, style=wx.CB_DROPDOWN | wx.CB_READONLY) debug_ctrl = panel.CheckBox(read_debug, text.debug_ctrl_label) result_preview_ctrl_label = panel.StaticText(text.parse_string_label) result_preview_ctrl = panel.StaticText("") timeout_ctrl_label = panel.StaticText(text.timeout_ctrl_label) timeout_ctrl = panel.SpinNumCtrl( timeout, min=0.0, max=10.0, allowNegative=False, increment=0.1, integerWidth=2, fractionWidth=2, ) dummy_ctrl = panel.StaticText("") rb1 = panel.RadioButton(not flag, text.read_all, style=wx.RB_GROUP) rb2 = panel.RadioButton(flag, text.read_some) count_ctrl = panel.SpinIntCtrl(read_num_bytes, 1, 2147483647) count_ctrl.Enable(flag) read_timeout_ctrl_label = panel.StaticText(text.read_time) read_timeout_ctrl = panel.SpinNumCtrl( read_timeout, min=0.0, max=10.0, allowNegative=False, increment=0.1, integerWidth=2, fractionWidth=2, ) read_ctrl = panel.StaticText(text.read) def on_data_change(event): try: temp = eg.ParseString(data_ctrl.GetValue()) temp = temp.strip() result_preview_ctrl.SetLabel(temp) panel.EnableButtons(True) except BaseException: result_preview_ctrl.SetLabel(text.parse_string_error) panel.EnableButtons(False) event.Skip() def on_radiobutton(event): flag = rb2.GetValue() count_ctrl.Enable(flag) event.Skip() rb1.Bind(wx.EVT_RADIOBUTTON, on_radiobutton) rb2.Bind(wx.EVT_RADIOBUTTON, on_radiobutton) data_ctrl.Bind(wx.EVT_TEXT, on_data_change) data_ctrl.SetValue(data_ctrl.GetValue()) eg.EqualizeWidths(( data_ctrl_label, result_preview_ctrl_label, timeout_ctrl_label, returnformat_ctrl_label, dummy_ctrl, read_timeout_ctrl_label, read_ctrl, )) eg.EqualizeWidths(( data_ctrl, result_preview_ctrl, timeout_ctrl, returnformat_ctrl, read_timeout_ctrl, debug_ctrl, rb1, )) Add = panel.sizer.Add Add(eg.HBoxSizer(data_ctrl_label, (5, 5), data_ctrl)) Add((5, 5)) Add( eg.HBoxSizer(result_preview_ctrl_label, (5, 5), result_preview_ctrl)) Add(panel.StaticText("")) Add(eg.HBoxSizer(timeout_ctrl_label, (5, 5), timeout_ctrl)) Add(panel.StaticText("")) Add(eg.HBoxSizer(read_ctrl, (5, 5), rb1)) Add( eg.HBoxSizer(dummy_ctrl, (5, 5), rb2, count_ctrl, (5, 5), panel.StaticText(text.bytes_name))) Add((5, 5)) Add(eg.HBoxSizer(read_timeout_ctrl_label, (5, 5), read_timeout_ctrl)) Add((5, 5)) Add(panel.StaticText(text.read_info)) Add(panel.StaticText("")) Add(eg.HBoxSizer(returnformat_ctrl_label, (5, 5), returnformat_ctrl)) Add((5, 5)) Add(eg.HBoxSizer(dummy_ctrl, (5, 5), debug_ctrl)) Add(panel.StaticText("")) Add(eg.HBoxSizer(disable_infrared_while_write_ctrl)) while panel.Affirmed(): if rb1.GetValue(): panel.SetResult(data_ctrl.GetValue(), timeout_ctrl.GetValue(), None, read_timeout_ctrl.GetValue(), returnformat_ctrl.GetValue(), debug_ctrl.GetValue(), disable_infrared_while_write_ctrl.GetValue()) else: panel.SetResult(data_ctrl.GetValue(), timeout_ctrl.GetValue(), count_ctrl.GetValue(), read_timeout_ctrl.GetValue(), returnformat_ctrl.GetValue(), debug_ctrl.GetValue(), disable_infrared_while_write_ctrl.GetValue())
def Configure(self, menuData=[]): menuData = self.Compile(menuData) panel = eg.ConfigPanel(resizable=True) text = self.text tree = MenuTreeListCtrl(panel, text, menuData) root = tree.GetRootItem() @eg.LogIt def OnSelectionChanged(dummyEvent): itemType = 0 item = tree.GetSelection() if item == root: enableMoveFlag = False enableEditFlag = False elif tree.GetPyData(item)[1] == "separator": enableMoveFlag = True enableEditFlag = False itemType = 2 else: enableMoveFlag = True enableEditFlag = True upButton.Enable(enableMoveFlag) downButton.Enable(enableMoveFlag) deleteButton.Enable(enableMoveFlag) labelBox.Enable(enableEditFlag) eventBox.Enable(enableEditFlag) labelBox.SetLabel(tree.GetItemText(item, 0)) eventBox.SetLabel(tree.GetItemText(item, 1)) #itemTypeCtrl.SetSelection(itemType) #event.Skip() tree.Bind(wx.EVT_TREE_SEL_CHANGED, OnSelectionChanged) # Delete button deleteButton = wx.Button(panel, -1, text.deleteButton) deleteButton.Enable(False) def OnDelete(dummyEvent): item = tree.GetSelection() next = tree.GetNextSibling(item) if not next.IsOk(): next = tree.GetPrevSibling(item) if not next.IsOk(): next = tree.GetItemParent(item) tree.SelectItem(next) tree.Delete(item) tree.EnsureVisible(next) deleteButton.Bind(wx.EVT_BUTTON, OnDelete) # Up button bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_OTHER, (16, 16)) upButton = wx.BitmapButton(panel, -1, bmp) upButton.Enable(False) def OnUp(dummyEvent): item = tree.GetSelection() previous = tree.GetPrevSibling(item) if previous.IsOk(): id = tree.GetPrevSibling(previous) if not id.IsOk(): id = None newId = tree.CopyItem(item, tree.GetItemParent(previous), id) tree.SelectItem(newId) tree.EnsureVisible(newId) tree.Delete(item) upButton.Bind(wx.EVT_BUTTON, OnUp) # Down button bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_OTHER, (16, 16)) downButton = wx.BitmapButton(panel, -1, bmp) downButton.Enable(False) def OnDown(dummyEvent): item = tree.GetSelection() nextId = tree.GetNext(item) if nextId is not None: newId = tree.CopyItem(item, tree.GetItemParent(nextId), nextId) tree.Delete(item) tree.SelectItem(newId) tree.EnsureVisible(newId) downButton.Bind(wx.EVT_BUTTON, OnDown) # Add menu item button addItemButton = wx.Button(panel, -1, text.addItemButton) @eg.LogIt def OnAddItem(dummyEvent): numStr = str(tree.GetCount() + 1) item = tree.AppendItem(root, text.unnamedLabel % numStr) data = ("", "item", "", tree.GetNewMenuId()) tree.SetPyData(item, data) tree.SetItemText(item, text.unnamedEvent % numStr, 1) tree.Expand(tree.GetItemParent(item)) tree.SelectItem(item) tree.EnsureVisible(item) tree.Update() addItemButton.Bind(wx.EVT_BUTTON, OnAddItem) # Add separator button addSeparatorButton = wx.Button(panel, -1, text.addSeparatorButton) def OnAddSeparator(dummyEvent): item = tree.AppendItem(root, "---------") tree.SetPyData(item, ("", "separator", "", tree.GetNewMenuId())) tree.Expand(tree.GetItemParent(item)) tree.SelectItem(item) tree.EnsureVisible(item) tree.Update() addSeparatorButton.Bind(wx.EVT_BUTTON, OnAddSeparator) # Label edit box labelBox = wx.TextCtrl(panel, -1) def OnLabelTextChange(event): item = tree.GetSelection() tree.SetItemText(item, labelBox.GetValue(), 0) event.Skip() labelBox.Bind(wx.EVT_TEXT, OnLabelTextChange) # Event edit box eventBox = wx.TextCtrl(panel, -1) def OnEventTextChange(event): item = tree.GetSelection() tree.SetItemText(item, eventBox.GetValue(), 1) event.Skip() eventBox.Bind(wx.EVT_TEXT, OnEventTextChange) # Item type control #choices = ["Menu item", "Check menu item", "Separator"] #itemTypeCtrl = wx.Choice(dialog, choices=choices) # construction of the dialog with sizers staticBox = wx.StaticBox(panel, -1, text.addBox) addSizer = wx.StaticBoxSizer(staticBox, wx.VERTICAL) addSizer.Add(addItemButton, 0, wx.EXPAND) addSizer.Add((5, 5)) addSizer.Add(addSeparatorButton, 0, wx.EXPAND) editSizer = wx.FlexGridSizer(2, 2, 5, 5) editSizer.AddGrowableCol(1) editSizer.AddMany(( (panel.StaticText(text.editLabel), 0, wx.ALIGN_CENTER_VERTICAL), (labelBox, 0, wx.EXPAND), (panel.StaticText(text.editEvent), 0, wx.ALIGN_CENTER_VERTICAL), (eventBox, 0, wx.EXPAND), )) mainSizer = eg.HBoxSizer( (eg.VBoxSizer( (tree, 1, wx.EXPAND), (editSizer, 0, wx.EXPAND | wx.TOP, 5), ), 1, wx.EXPAND), ((5, 5)), (eg.VBoxSizer( (deleteButton, 0, wx.EXPAND), ((5, 5), 1, wx.EXPAND), (upButton), (downButton, 0, wx.TOP, 5), ((5, 5), 1, wx.EXPAND), (addSizer, 0, wx.EXPAND), ), 0, wx.EXPAND), ) panel.sizer.Add(mainSizer, 1, wx.EXPAND) nextId = tree.GetFirstChild(root)[0] if nextId.IsOk(): tree.SelectItem(nextId) else: tree.SelectItem(root) while panel.Affirmed(): resultList = [] def Traverse(item): child, cookie = tree.GetFirstChild(item) while child.IsOk(): name, kind, eventString, menuId = tree.GetPyData(child) name = tree.GetItemText(child, 0) eventString = tree.GetItemText(child, 1) resultList.append((name, kind, eventString, menuId)) if tree.HasChildren(child): Traverse(child) child, cookie = tree.GetNextChild(item, cookie) Traverse(root) self.Compile(resultList) panel.SetResult(resultList)
def Configure( self, port=0, baudrate=9600, bytesize=3, parity=0, stopbits=0, handshake=0, generateEvents=False, terminator="\\r", prefix="Serial", encodingNum=0, ): text = self.text panel = eg.ConfigPanel() portCtrl = panel.SerialPortChoice(port) baudrateCtrl = panel.ComboBox(str(baudrate), BAUDRATES, style=wx.CB_DROPDOWN, validator=eg.DigitOnlyValidator()) bytesizeCtrl = panel.Choice(bytesize, ['5', '6', '7', '8']) parityCtrl = panel.Choice(parity, text.parities) stopbitsCtrl = panel.Choice(stopbits, ['1', '2']) handshakeCtrl = panel.Choice(handshake, text.handshakes) generateEventsCtrl = panel.CheckBox(generateEvents, text.generateEvents) terminatorCtrl = panel.TextCtrl(terminator) terminatorCtrl.Enable(generateEvents) prefixCtrl = panel.TextCtrl(prefix) prefixCtrl.Enable(generateEvents) encodingCtrl = panel.Choice(encodingNum, text.codecChoices) encodingCtrl.Enable(generateEvents) def OnCheckBox(event): flag = generateEventsCtrl.GetValue() terminatorCtrl.Enable(flag) prefixCtrl.Enable(flag) encodingCtrl.Enable(flag) event.Skip() generateEventsCtrl.Bind(wx.EVT_CHECKBOX, OnCheckBox) panel.SetColumnFlags(1, wx.EXPAND) portSettingsBox = panel.BoxedGroup( "Port settings", (text.port, portCtrl), (text.baudrate, baudrateCtrl), (text.bytesize, bytesizeCtrl), (text.parity, parityCtrl), (text.stopbits, stopbitsCtrl), (text.flowcontrol, handshakeCtrl), ) eventSettingsBox = panel.BoxedGroup( "Event generation", (generateEventsCtrl), (text.terminator, terminatorCtrl), (text.eventPrefix, prefixCtrl), (text.encoding, encodingCtrl), ) eg.EqualizeWidths(portSettingsBox.GetColumnItems(0)) eg.EqualizeWidths(portSettingsBox.GetColumnItems(1)) eg.EqualizeWidths(eventSettingsBox.GetColumnItems(0)[1:]) eg.EqualizeWidths(eventSettingsBox.GetColumnItems(1)) panel.sizer.Add( eg.HBoxSizer(portSettingsBox, (10, 10), eventSettingsBox)) while panel.Affirmed(): panel.SetResult( portCtrl.GetValue(), int(baudrateCtrl.GetValue()), bytesizeCtrl.GetValue(), parityCtrl.GetValue(), stopbitsCtrl.GetValue(), handshakeCtrl.GetValue(), generateEventsCtrl.GetValue(), terminatorCtrl.GetValue(), prefixCtrl.GetValue(), encodingCtrl.GetValue(), )
def __init__(self, parent, document): wx.Dialog.__init__(self, parent, -1, title=Text.title, style=wx.DEFAULT_DIALOG_STYLE) self.parent = parent self.choices = [""] textCtrl = wx.TextCtrl(self) wholeWordsOnlyCb = wx.CheckBox(self, -1, Text.wholeWordsOnly) caseSensitiveCb = wx.CheckBox(self, -1, Text.caseSensitive) searchParametersCb = wx.CheckBox(self, -1, Text.searchParameters) searchParametersCb.SetValue(1) directionRb = wx.RadioBox(self, label=Text.direction, choices=[Text.up, Text.down], style=wx.RA_SPECIFY_ROWS) directionRb.SetSelection(1) searchButton = wx.Button(self, -1, Text.findButton) searchButton.SetDefault() searchButton.Enable(False) cancelButton = wx.Button(self, wx.ID_CANCEL, eg.text.General.cancel) acv = wx.ALIGN_CENTER_VERTICAL upperLeftSizer = eg.HBoxSizer( (wx.StaticText(self, -1, Text.searchLabel), 0, acv | wx.RIGHT, 5), (textCtrl, 1, wx.EXPAND), ) cbSizer = eg.VBoxSizer( (wholeWordsOnlyCb), (caseSensitiveCb, 0, wx.TOP, 5), (searchParametersCb, 0, wx.TOP, 5), ) lowerLeftSizer = eg.HBoxSizer( (cbSizer, 0, acv | wx.RIGHT, 10), (directionRb), ) leftSizer = eg.VBoxSizer( (upperLeftSizer, 0, wx.EXPAND | wx.ALL, 5), (lowerLeftSizer, 0, wx.EXPAND | wx.ALL, 5), ) btnSizer = eg.VBoxSizer( (searchButton, 0, wx.EXPAND), (cancelButton, 0, wx.EXPAND | wx.TOP, 5), ) sizer = eg.HBoxSizer( (leftSizer, 1, wx.EXPAND), (btnSizer, 0, wx.EXPAND | wx.ALL, 5), ) self.SetSizerAndFit(sizer) self.SetMinSize(self.GetSize()) searchButton.Bind(wx.EVT_BUTTON, self.OnFindButton) def EnableSearchButton(event): enable = textCtrl.GetValue() != "" searchButton.Enable(enable) textCtrl.Bind(wx.EVT_TEXT, EnableSearchButton) self.textCtrl = textCtrl self.wholeWordsOnlyCb = wholeWordsOnlyCb self.caseSensitiveCb = caseSensitiveCb self.searchParametersCb = searchParametersCb self.directionRb = directionRb self.searchButton = searchButton
def Configure(self, parent=None): if OptionsDialog.instance: OptionsDialog.instance.Raise() return OptionsDialog.instance = self text = Text config = eg.config self.useFixedFont = config.useFixedFont eg.TaskletDialog.__init__( self, parent=parent, title=text.Title, ) languageNames = eg.Translation.languageNames languageList = ["en_EN"] for item in os.listdir(eg.languagesDir): name, ext = os.path.splitext(item) if ext == ".py" and name in languageNames: languageList.append(name) languageList.sort() languageNameList = [languageNames[x] for x in languageList] notebook = wx.Notebook(self, -1) page1 = eg.Panel(notebook) notebook.AddPage(page1, text.Tab1) # page 1 controls startWithWindowsCtrl = page1.CheckBox( exists(join((eg.folderPath.Startup or ""), eg.APP_NAME + ".lnk")), text.StartWithWindows) if eg.folderPath.Startup is None: startWithWindowsCtrl.Enable(False) checkUpdateCtrl = page1.CheckBox(config.checkUpdate, text.CheckUpdate) checkPreReleaseCtrl = page1.CheckBox(config.checkPreRelease, text.CheckPreRelease) checkPreReleaseCtrl.Enable(config.checkUpdate) def OnCheckUpdateCheckBox(event): checkPreReleaseCtrl.Enable(event.IsChecked()) checkUpdateCtrl.Bind(wx.EVT_CHECKBOX, OnCheckUpdateCheckBox) confirmDeleteCtrl = page1.CheckBox(config.confirmDelete, text.confirmDelete) showTrayIconCtrl = page1.CheckBox(config.showTrayIcon, text.showTrayIcon) hideOnCloseCtrl = page1.CheckBox(config.hideOnClose, text.HideOnClose) memoryLimitCtrl = page1.CheckBox(config.limitMemory, text.limitMemory1) memoryLimitSpinCtrl = page1.SpinIntCtrl(config.limitMemorySize, min=4, max=999) def OnMemoryLimitCheckBox(dummyEvent): memoryLimitSpinCtrl.Enable(memoryLimitCtrl.IsChecked()) memoryLimitCtrl.Bind(wx.EVT_CHECKBOX, OnMemoryLimitCheckBox) OnMemoryLimitCheckBox(None) refreshEnvCtrl = page1.CheckBox(config.refreshEnv, text.refreshEnv) propResizeCtrl = page1.CheckBox(config.propResize, text.propResize) useFixedFontCtrl = page1.CheckBox(config.useFixedFont, text.UseFixedFont) def OnFixedFontBox(evt): self.UpdateFont(evt.IsChecked()) useFixedFontCtrl.Bind(wx.EVT_CHECKBOX, OnFixedFontBox) datestampCtrl = page1.TextCtrl(config.datestamp) datestampCtrl.SetToolTipString(text.DatestampHelp) datestampLabel = page1.StaticText(text.Datestamp) datestampLabel.SetToolTipString(text.DatestampHelp) datestampSzr = wx.BoxSizer(wx.HORIZONTAL) datestampSzr.AddMany( ((datestampLabel, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5), (datestampCtrl, 1, wx.EXPAND))) def OnDatestampKillFocus(_): dt_fmt = datestampCtrl.GetValue() try: strftime(dt_fmt, localtime()) except ValueError: wx.MessageBox("Invalid format string!", "Error") datestampCtrl.SetBackgroundColour("pink") datestampCtrl.Refresh() wx.CallAfter(datestampCtrl.SetFocus) else: datestampCtrl.SetBackgroundColour( wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW)) datestampCtrl.Refresh() datestampCtrl.Bind(wx.EVT_KILL_FOCUS, OnDatestampKillFocus) languageChoice = BitmapComboBox(page1, style=wx.CB_READONLY) for name, code in zip(languageNameList, languageList): filename = os.path.join(eg.imagesDir, "flags", "%s.png" % code) if os.path.exists(filename): image = wx.Image(filename) image.Resize((16, 16), (0, 3)) bmp = image.ConvertToBitmap() languageChoice.Append(name, bmp) else: languageChoice.Append(name) languageChoice.SetSelection(languageList.index(config.language)) languageChoice.SetMinSize((150, -1)) buttonRow = eg.ButtonRow(self, (wx.ID_OK, wx.ID_CANCEL)) # construction of the layout with sizers flags = wx.ALIGN_CENTER_VERTICAL memoryLimitSizer = eg.HBoxSizer( (memoryLimitCtrl, 0, flags), (memoryLimitSpinCtrl, 0, flags), (page1.StaticText(text.limitMemory2), 0, flags | wx.LEFT, 2), ) startGroupSizer = wx.GridSizer(cols=1, vgap=2, hgap=2) startGroupSizer.AddMany(( (startWithWindowsCtrl, 0, flags), (checkUpdateCtrl, 0, flags), (checkPreReleaseCtrl, 0, flags | wx.LEFT, INDENT_WIDTH), (confirmDeleteCtrl, 0, flags), (showTrayIconCtrl, 0, flags), (hideOnCloseCtrl, 0, flags), (memoryLimitSizer, 0, flags), (refreshEnvCtrl, 0, flags), (propResizeCtrl, 0, flags), (useFixedFontCtrl, 0, flags), (datestampSzr, 0, flags), )) langGroupSizer = page1.VStaticBoxSizer( text.LanguageGroup, (languageChoice, 0, wx.LEFT | wx.RIGHT, INDENT_WIDTH), ) page1Sizer = eg.VBoxSizer( ((15, 7), 1), (startGroupSizer, 0, wx.EXPAND | wx.ALL, 5), ((15, 7), 1), (langGroupSizer, 0, wx.EXPAND | wx.ALL, 5), ) page1.SetSizer(page1Sizer) page1.SetAutoLayout(True) sizer = eg.VBoxSizer( (notebook, 1, wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, 5), (buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizerAndFit(sizer) self.SetMinSize(self.GetSize()) notebook.ChangeSelection(0) oldLanguage = config.language while self.Affirmed(): config.checkUpdate = checkUpdateCtrl.GetValue() config.checkPreRelease = checkPreReleaseCtrl.GetValue() config.confirmDelete = confirmDeleteCtrl.GetValue() config.showTrayIcon = showTrayIconCtrl.GetValue() config.hideOnClose = hideOnCloseCtrl.GetValue() config.limitMemory = bool(memoryLimitCtrl.GetValue()) config.limitMemorySize = memoryLimitSpinCtrl.GetValue() config.refreshEnv = refreshEnvCtrl.GetValue() config.propResize = propResizeCtrl.GetValue() config.useFixedFont = useFixedFontCtrl.GetValue() config.datestamp = datestampCtrl.GetValue() config.language = languageList[languageChoice.GetSelection()] config.Save() self.SetResult() eg.Utils.UpdateStartupShortcut(startWithWindowsCtrl.GetValue()) if config.showTrayIcon: eg.taskBarIcon.Show() else: eg.taskBarIcon.Hide() if eg.mainFrame: eg.mainFrame.SetWindowStyleFlag() eg.mainFrame.logCtrl.SetDTLogging() if config.language != oldLanguage: wx.CallAfter(self.ShowLanguageWarning) OptionsDialog.instance = None
def Configure( self, voiceName=None, rate=0, voiceText="", suffix="", volume=100, device=None ): text = self.text panel = eg.ConfigPanel() textCtrl = wx.TextCtrl(panel, wx.ID_ANY, voiceText) suffCtrl = wx.TextCtrl(panel, wx.ID_ANY, suffix) def MakeButton(txt, value): def OnButton(event): textCtrl.WriteText(value) textCtrl.SetFocus() btn = wx.Button(panel, wx.ID_ANY, txt) btn.Bind(wx.EVT_BUTTON, OnButton) return btn insertTimeButton = MakeButton(text.buttonInsertTime, '{TIME}') insertTimeButton1 = MakeButton(text.buttonInsertTime1, '{TIME1}') insertDateButton = MakeButton(text.buttonInsertDate, '{DATE}') insertDateButton1 = MakeButton(text.buttonInsertDate1, '{DATE1}') voices = self.plugin.GetVoices() devs = self.plugin.GetAudioOutputs() voiceChoice = wx.Choice(panel, wx.ID_ANY, choices=voices) voiceName = voiceName if voiceName else voices[0] voiceChoice.SetStringSelection(voiceName) devChoice = wx.Choice(panel, wx.ID_ANY, choices=devs) devName = device if device else devs[0] devChoice.SetStringSelection(devName) rateCtrl = CustomSlider( panel, value=int(rate), valueLabel=text.normal, minValue=-5, minLabel=text.slow, maxValue=5, maxLabel=text.fast, style=wx.SL_AUTOTICKS | wx.SL_TOP ) volumeCtrl = CustomSlider( panel, value=volume, valueLabel="%(1)i %%", minValue=0, minLabel=text.silent, maxValue=100, maxLabel=text.loud, style=wx.SL_AUTOTICKS | wx.SL_TOP ) volumeCtrl.slider.SetTickFreq(10, 3) sizer1 = eg.HBoxSizer((textCtrl, 1, wx.EXPAND)) sizer2 = eg.HBoxSizer( insertTimeButton, (insertTimeButton1, 0, wx.ALIGN_LEFT, 3), ((10, 5), 0), (insertDateButton, 0, wx.ALIGN_RIGHT, 3), (insertDateButton1, 0, wx.ALIGN_RIGHT) ) staticBoxSizer1 = panel.VStaticBoxSizer( text.textBoxLabel, (sizer1, 0, wx.EXPAND | wx.ALL, 5), (sizer2, 0, wx.EXPAND | wx.ALL, 5), ) ACV = wx.ALIGN_CENTER_VERTICAL sizer3 = wx.FlexGridSizer(0, 2, 5, 5) sizer3.AddGrowableCol(1, 1) sizer3.AddMany( ( (panel.StaticText(text.labelVoice), 0, ACV | wx.BOTTOM, 10), (voiceChoice, 0, wx.EXPAND | wx.BOTTOM, 10), (panel.StaticText(text.device), 0, ACV | wx.BOTTOM, 10), (devChoice, 0, wx.EXPAND | wx.BOTTOM, 10), (panel.StaticText(text.labelRate), 0, ACV), (rateCtrl, 0, wx.EXPAND), (panel.StaticText(text.labelVolume), 0, ACV), (volumeCtrl, 0, wx.EXPAND), (panel.StaticText(text.addSuffix), 0, ACV), (suffCtrl, 0, wx.EXPAND) ) ) staticBoxSizer2 = panel.VStaticBoxSizer( text.voiceProperties, (sizer3, 0, wx.EXPAND | wx.ALL, 5), ) panel.sizer.Add(staticBoxSizer1, 0, wx.EXPAND) panel.sizer.Add(staticBoxSizer2, 0, wx.EXPAND | wx.TOP, 10) while panel.Affirmed(): panel.SetResult( voiceChoice.GetStringSelection(), rateCtrl.GetValue(), textCtrl.GetValue(), suffCtrl.GetValue(), volumeCtrl.GetValue(), devChoice.GetStringSelection() )
def Configure(self, num_bytes=None, timeout=1, returnformat="Hex", debug=False): text = self.text panel = eg.ConfigPanel() if num_bytes is None: num_bytes = 2147483647 flag = False else: flag = True rb1 = panel.RadioButton(not flag, text.read_all, style=wx.RB_GROUP) rb2 = panel.RadioButton(flag, text.read_some) count_ctrl = panel.SpinIntCtrl(num_bytes, 1, 2147483647) count_ctrl.Enable(flag) time_ctrl_label = panel.StaticText(text.read_time) time_ctrl = panel.SpinNumCtrl( timeout, min=0.0, max=10.0, allowNegative=False, increment=0.1, integerWidth=2, fractionWidth=2, ) returnformat_ctrl_label = panel.StaticText( text.returnformat_ctrl_label) returnformat_ctrl = panel.ComboBox(returnformat, RETURNFORMATS, style=wx.CB_DROPDOWN | wx.CB_READONLY) read_ctrl = panel.StaticText(text.read) dummy_ctrl = panel.StaticText("") debug_ctrl = panel.CheckBox(debug, text.debug_Label) def on_radiobutton(event): flag = rb2.GetValue() count_ctrl.Enable(flag) event.Skip() rb1.Bind(wx.EVT_RADIOBUTTON, on_radiobutton) rb2.Bind(wx.EVT_RADIOBUTTON, on_radiobutton) eg.EqualizeWidths( (read_ctrl, returnformat_ctrl_label, time_ctrl_label, dummy_ctrl)) eg.EqualizeWidths((returnformat_ctrl, time_ctrl, debug_ctrl)) Add = panel.sizer.Add Add(eg.HBoxSizer(read_ctrl, (5, 5), rb1)) Add( eg.HBoxSizer(dummy_ctrl, (5, 5), rb2, count_ctrl, (5, 5), panel.StaticText(text.bytes_name))) Add((5, 5)) Add(eg.HBoxSizer(time_ctrl_label, (5, 5), time_ctrl)) Add((5, 5)) Add(panel.StaticText(text.read_info)) Add(panel.StaticText("")) Add(eg.HBoxSizer(returnformat_ctrl_label, (5, 5), returnformat_ctrl)) Add((5, 5)) Add(eg.HBoxSizer(dummy_ctrl, (5, 5), debug_ctrl)) while panel.Affirmed(): if rb1.GetValue(): panel.SetResult(None, time_ctrl.GetValue(), returnformat_ctrl.GetValue(), debug_ctrl.GetValue()) else: panel.SetResult(count_ctrl.GetValue(), time_ctrl.GetValue(), returnformat_ctrl.GetValue(), debug_ctrl.GetValue())