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)
Esempio n. 3
0
    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()
            )
Esempio n. 4
0
 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())
Esempio n. 5
0
    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(),
            )
Esempio n. 6
0
    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())
Esempio n. 7
0
    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)
Esempio n. 9
0
    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
Esempio n. 10
0
    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())
Esempio n. 11
0
 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)
Esempio n. 12
0
    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()
            )
Esempio n. 13
0
    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())
Esempio n. 14
0
    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(),
            )
Esempio n. 15
0
    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())
Esempio n. 16
0
    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)
Esempio n. 17
0
    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(),
            )
Esempio n. 18
0
    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
Esempio n. 19
0
    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
Esempio n. 20
0
    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()
            )
Esempio n. 21
0
    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())