def __init__(self, parent=None, title=eg.APP_NAME, source="", icon=None, basePath=None, style=wx.OK): eg.Dialog.__init__(self, parent, -1, title, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) if icon: self.SetIcon(icon) htmlCtrl = eg.HtmlWindow(self, -1, style=wx.SUNKEN_BORDER) htmlCtrl.SetBorders(2) htmlCtrl.SetBasePath(basePath) htmlCtrl.SetPage(source) buttonIds = [] if style & wx.OK: buttonIds.append(wx.ID_OK) if style & wx.CANCEL: buttonIds.append(wx.ID_CANCEL) self.buttonRow = eg.ButtonRow(self, buttonIds, True, True) mainSizer = eg.VBoxSizer( (htmlCtrl, 1, wx.EXPAND | wx.ALL, 5), (self.buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizerAndFit(mainSizer) if Config.position is not None: self.SetPosition(Config.position) self.SetSize(Config.size)
def Configure(self): self.foundId = None style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER eg.TaskletDialog.__init__(self, None, -1, title="Export", style=style) staticText = wx.StaticText(self, -1, text.mesg) filterClasses = (eg.FolderItem, ) #eg.MacroItem) def filterFunc(obj): return isinstance(obj, filterClasses) tree = eg.TreeItemBrowseCtrl(self, filterFunc) #, multiSelect=True) #tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelectionChanged) tree.UnselectAll() buttonRow = eg.ButtonRow(self, (wx.ID_OK, wx.ID_CANCEL), True) mainSizer = eg.VBoxSizer( (staticText, 0, wx.EXPAND | wx.ALL, 5), (tree, 1, wx.EXPAND), (buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizerAndFit(mainSizer) self.SetAutoLayout(True) #mainSizer.Fit(self) #self.SetMinSize(self.GetSize()) self.SetSize((450, 400)) while self.Affirmed(): items = tree.GetSelections() GetPyData = tree.GetPyData self.SetResult([GetPyData(item) for item in items])
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=None, title=eg.APP_NAME, basePath=None, pluginData=None, message="", ): Dialog.__init__( self, None, #eg.document.frame, -1, title, size=(400, 300), style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER ) self.text = TEMPLATE.format(**pluginData) headerCtrl = eg.HtmlWindow(self, style=wx.html.HW_SCROLLBAR_NEVER) headerCtrl.SetBorders(2) headerCtrl.SetBasePath(basePath) headerCtrl.SetPage(self.text) self.headerCtrl = headerCtrl #height = headerCtrl.GetInternalRepresentation().GetHeight() #headerCtrl.SetMinSize((-1, height + 4)) #headerCtrl.Layout() descriptionCtrl = eg.HtmlWindow(self) descriptionCtrl.SetBorders(2) descriptionCtrl.SetBasePath(basePath) descriptionCtrl.SetPage(pluginData['description']) questionCtrl = self.StaticText(message) self.buttonRow = eg.ButtonRow( self, (wx.ID_OK, wx.ID_CANCEL), True, True ) mainSizer = eg.VBoxSizer( (headerCtrl, 0, wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, 5), (wx.StaticLine(self), 0, wx.EXPAND, 0), (descriptionCtrl, 1, wx.EXPAND | wx.ALL, 5), (wx.StaticLine(self), 0, wx.EXPAND, 0), (questionCtrl, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5), (self.buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizer(mainSizer) self.SetAutoLayout(True) mainSizer.Fit(self) mainSizer.Layout() self.Layout() self.Bind(wx.EVT_SIZE, self.OnSize) self.SetSize((400, 500)) self.SetMinSize(self.GetSize()) self.Center()
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 __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, prompt=None, initialValue=""): if prompt is None: prompt = PROMPT eg.TaskletDialog.__init__( self, None, -1, PROMPT, style=wx.RESIZE_BORDER | wx.CAPTION ) textCtrl = self.TextCtrl(initialValue, size=(300, -1)) buttonRow = eg.ButtonRow(self, [wx.ID_OK]) mainSizer = eg.VBoxSizer( (self.StaticText(prompt), 0, wx.EXPAND | wx.ALL, 5), (textCtrl, 0, wx.EXPAND | wx.ALL, 5), ((5, 5), 1, wx.EXPAND), (wx.StaticLine(self), 0, wx.EXPAND), (buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizerAndFit(mainSizer) self.SetMinSize(self.GetSize()) while self.Affirmed(): self.SetResult(textCtrl.GetValue())
def Configure( self, title, text, searchItem, resultClasses, filterClasses=(eg.FolderItem, eg.MacroItem), parent=None, ): self.resultData = searchItem self.resultClasses = resultClasses self.foundId = None style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER eg.TaskletDialog.__init__(self, parent, -1, title=title, style=style) staticText = wx.StaticText(self, -1, text) staticText.Wrap(430) def filterFunc(obj): return isinstance(obj, filterClasses) tree = eg.TreeItemBrowseCtrl(self, filterFunc, selectItem=searchItem) tree.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelectionChanged) self.treeCtrl = tree self.buttonRow = eg.ButtonRow(self, (wx.ID_CANCEL, wx.ID_OK), True) mainSizer = eg.VBoxSizer( (staticText, 0, wx.EXPAND | wx.ALL, 5), (tree, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 5), (self.buttonRow.sizer, 0, wx.EXPAND), ) self.SetSizerAndFit(mainSizer) self.SetSize((450, 400)) if not searchItem: self.buttonRow.okButton.Enable(False) while self.Affirmed(): self.SetResult(self.resultData)
def Configure(self, data="", useAlternateMethod=False, mode=2): panel = eg.ConfigPanel() text = self.text key = text.Keys keyChoices = [ (key.returnKey, "Return"), (key.enter, "Enter"), (key.tabulator, "Tabulator"), (key.backspace, "Backspace"), (key.escape, "Escape"), (key.space, "Space"), (key.up, "Up"), (key.down, "Down"), (key.left, "Left"), (key.right, "Right"), (key.insert, "Insert"), (key.delete, "Delete"), (key.home, "Home"), (key.end, "End"), (key.pageUp, "PageUp"), (key.pageDown, "PageDown"), (key.win, "Win"), (key.context, "Apps"), (key.numDivide, "Divide"), (key.numMultiply, "Multiply"), (key.numSubtract, "Subtract"), (key.numAdd, "Add"), (key.numDecimal, "Decimal"), (key.num0, "Numpad0"), (key.num1, "Numpad1"), (key.num2, "Numpad2"), (key.num3, "Numpad3"), (key.num4, "Numpad4"), (key.num5, "Numpad5"), (key.num6, "Numpad6"), (key.num7, "Numpad7"), (key.num8, "Numpad8"), (key.num9, "Numpad9"), ] fKeys = ( "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "F21", "F22", "F23", "F24" ) keyLabels, keyWords = zip(*keyChoices) keyLabels += fKeys keyWords += fKeys textCtrl = panel.TextCtrl(data, style=wx.TE_NOHIDESEL) alternateMethodCB = panel.CheckBox( useAlternateMethod, text.useAlternativeMethod ) radioBox = wx.RadioBox( panel, label=text.radioBoxLabel, choices=text.radioBoxOptions, style=wx.RA_SPECIFY_ROWS ) radioBox.SetSelection(mode) shiftCB = wx.CheckBox(panel, -1, "Shift") ctrlCB = wx.CheckBox(panel, -1, "Ctrl") altCB = wx.CheckBox(panel, -1, "Alt") keyChoice = wx.Choice(panel, -1, choices=keyLabels) keyChoice.SetSelection(0) insertButton = wx.Button(panel, -1, text.insertButton) def DummyHandler(dummyEvent): pass # used to prevent propagating of the event to the panel shiftCB.Bind(wx.EVT_CHECKBOX, DummyHandler) ctrlCB.Bind(wx.EVT_CHECKBOX, DummyHandler) altCB.Bind(wx.EVT_CHECKBOX, DummyHandler) keyChoice.Bind(wx.EVT_CHOICE, DummyHandler) def OnInsert(dummyEvent): res = [] if shiftCB.GetValue(): res.append("Shift") if ctrlCB.GetValue(): res.append("Ctrl") if altCB.GetValue(): res.append("Alt") res.append(keyWords[keyChoice.GetSelection()]) textCtrl.WriteText("{%s}" % "+".join(res)) insertButton.Bind(wx.EVT_BUTTON, OnInsert) cbSizer = eg.VBoxSizer( (shiftCB, 0, wx.EXPAND | wx.BOTTOM, 5), (ctrlCB, 0, wx.EXPAND | wx.BOTTOM, 5), (altCB, 0, wx.EXPAND, 0), ) rightSizer = eg.VBoxSizer( (keyChoice), (insertButton, 0, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL, 15), ) staticBox = wx.StaticBox(panel, -1, text.specialKeyTool) specialKeySizer = wx.StaticBoxSizer(staticBox, wx.HORIZONTAL) specialKeySizer.Add(cbSizer) specialKeySizer.Add((15, 15)) specialKeySizer.Add(rightSizer) panel.sizer.AddMany( ( (panel.StaticText(text.textToType)), (textCtrl, 0, wx.EXPAND), ((10, 10)), (specialKeySizer, 0, wx.ALIGN_RIGHT), ((10, 10), 1), (alternateMethodCB), (radioBox), ) ) while panel.Affirmed(): panel.SetResult( textCtrl.GetValue(), alternateMethodCB.GetValue(), radioBox.GetSelection() )
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, 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() )