コード例 #1
0
    def __init__(self, parent):
        self.us_to_jp_map = {}
        self.monster_data = {}
        wx.Panel.__init__(self, parent)
        grid = wx.GridBagSizer(hgap=5, vgap=10)

        config = wx.ConfigBase.Get()
        host = config.Read("host") or socket.gethostbyname(socket.gethostname())

        start_instructions = wx.StaticText(self, label="Just the first time, you need to add the HTTPS certificate to your iOS/Android device. To do this, go to your wifi settings and set up a manual HTTP proxy. Set the server to '%s' and the port to 8080. Then visit http://mitm.it in Safari/Chrome, click the link for your device, and install the configuration profile when asked. After this is done, turn off the HTTP proxy." % host)
        start_instructions.Wrap(580)
        grid.Add(start_instructions, pos=(0,0))

        dns_instructions = wx.StaticText(self, label="To synchronize your box with padherder, enter your padherder username and password in Settings. Then go to your wifi settings and change your DNS server to '%s'. Then press the home button. If you switch to the DNS Proxy Log tab, you should see a bunch of log lines. Make sure Puzzle and Dragons is completely closed, and re-open it. Once you get in game, close PAD completely again and restore your DNS settings." % host)
        dns_instructions.Wrap(580)
        grid.Add(dns_instructions, pos=(1,0))

        status_label = wx.StaticText(self, label="Status:")
        grid.Add(status_label, pos=(2,0))

        self.status_ctrl = wx.TextCtrl(self, wx.ID_ANY, size=(400,300),
                          style = wx.TE_MULTILINE|wx.TE_READONLY)
        self.Bind(custom_events.EVT_STATUS_EVENT, self.onStatusEvent)
        if not config.Read("username"):
            self.status_ctrl.AppendText("You need to set your padherder username in Settings\n")
        if not config.Read("password"):
            self.status_ctrl.AppendText("You need to set your padherder password in Settings\n")

        grid.Add(self.status_ctrl, pos=(3,0), span=(1,2))

        if is_out_of_date(self):
            updateCtrl = HyperLinkCtrl(self, wx.ID_ANY, label="An updated version is available", URL="https://github.com/jgoldshlag/padherder_proxy")
            grid.Add(updateCtrl, pos=(4,0), span=(1,2))

        self.SetSizer(grid)
コード例 #2
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)

        self.db = Database.db.Db()

        # create some sizers
        mainSizer = wx.BoxSizer(wx.VERTICAL)
        grid = wx.GridBagSizer(hgap=5, vgap=5)
        hSizer = wx.BoxSizer(wx.HORIZONTAL)

        self.webview = wx.html2.WebView.New(self, size=(340, 390))

        # data table
        self.table = wx.grid.Grid(self, size=(340, 385))
        self.table.CreateGrid(0, 3)
        self.table.SetColLabelValue(0, "Id")
        self.table.SetColLabelValue(1, "Content")
        self.table.SetColLabelValue(2, "Date")

        self.btnsavecanvas = wx.Button(self, label="Save Canvas")
        self.Bind(wx.EVT_BUTTON, self.OnClickSaveCanvas, self.btnsavecanvas)

        self.btnclearcanvas = wx.Button(self, label="Clear Canvas")
        self.Bind(wx.EVT_BUTTON, self.OnClickClearCanvas, self.btnclearcanvas)

        self.btnrestorecanvas = wx.Button(self, label="Restore Canvas")
        self.Bind(wx.EVT_BUTTON, self.OnClickRestoreCanvas,
                  self.btnrestorecanvas)

        sz = wx.BoxSizer(wx.HORIZONTAL)

        self.lblname = wx.StaticText(self, label="Http Url:")
        self.editname = wx.TextCtrl(self,
                                    value=os.environ.get(
                                        "APP_COURSE_URL", "Your Url Here"),
                                    size=(450, -1))

        self.button_load = wx.Button(self, label="Load", size=(80, -1))
        self.Bind(wx.EVT_BUTTON, self.OnClickLoad, self.button_load)

        sz.Add(self.lblname, 0)
        sz.Add(self.editname, 1, wx.EXPAND | wx.ALL)
        sz.Add(self.button_load, 2, wx.SHAPED | wx.ALL)
        mainSizer.Add(sz, 0, wx.TOP, 15)

        grid.Add(self.webview, pos=(1, 0))
        grid.Add(self.table, pos=(1, 1))

        hSizer.Add(grid, 0, wx.ALL, 5)

        btnsizer = wx.BoxSizer(wx.HORIZONTAL)
        btnsizer.Add(self.btnsavecanvas, 1)
        btnsizer.Add(self.btnclearcanvas, 1)
        btnsizer.Add(self.btnrestorecanvas, 1)

        mainSizer.Add(hSizer, 1, wx.ALL, 1)
        mainSizer.Add(btnsizer, 2, wx.ALL)

        self.SetSizerAndFit(mainSizer)
コード例 #3
0
    def __init__(self, parent, settings, filename):

        self.settings = settings
        self.dirname = settings.dirScans
        self.filename = filename

        wx.Dialog.__init__(self,
                           parent=parent,
                           title="Compare plots",
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER
                           | wx.MAXIMIZE_BOX)

        self.graph = PanelGraphCompare(self, self.__on_cursor)
        self.graph.show_plot1(settings.compareOne)
        self.graph.show_plot2(settings.compareTwo)
        self.graph.show_plotdiff(settings.compareDiff)

        textPlot1 = wx.StaticText(self, label='Plot 1')
        linePlot1 = PanelLine(self, wx.BLUE)
        self.checkOne = wx.CheckBox(self, wx.ID_ANY)
        self.checkOne.SetValue(settings.compareOne)
        self.buttonPlot1 = wx.Button(self, wx.ID_ANY, 'Load...')
        self.textPlot1 = wx.StaticText(self, label="<None>")
        self.textLoc1 = wx.StaticText(self, label='\n')
        self.Bind(wx.EVT_BUTTON, self.__on_load_plot, self.buttonPlot1)

        textPlot2 = wx.StaticText(self, label='Plot 2')
        linePlot2 = PanelLine(self, wx.GREEN)
        self.checkTwo = wx.CheckBox(self, wx.ID_ANY)
        self.checkTwo.SetValue(settings.compareTwo)
        self.buttonPlot2 = wx.Button(self, wx.ID_ANY, 'Load...')
        self.textPlot2 = wx.StaticText(self, label="<None>")
        self.textLoc2 = wx.StaticText(self, label='\n')
        self.Bind(wx.EVT_BUTTON, self.__on_load_plot, self.buttonPlot2)

        textPlotDiff = wx.StaticText(self, label='Difference')
        linePlotDiff = PanelLine(self, wx.RED)
        self.checkDiff = wx.CheckBox(self, wx.ID_ANY)
        self.checkDiff.SetValue(settings.compareDiff)
        self.textLocDiff = wx.StaticText(self, label='\n')

        font = textPlot1.GetFont()
        fontSize = font.GetPointSize()
        font.SetPointSize(fontSize + 4)
        textPlot1.SetFont(font)
        textPlot2.SetFont(font)
        textPlotDiff.SetFont(font)

        fontStyle = font.GetStyle()
        fontWeight = font.GetWeight()
        font = wx.Font(fontSize, wx.FONTFAMILY_MODERN, fontStyle, fontWeight)
        self.textLoc1.SetFont(font)
        self.textLoc2.SetFont(font)
        self.textLocDiff.SetFont(font)

        buttonClose = wx.Button(self, wx.ID_CLOSE, 'Close')

        self.Bind(wx.EVT_CHECKBOX, self.__on_check1, self.checkOne)
        self.Bind(wx.EVT_CHECKBOX, self.__on_check2, self.checkTwo)
        self.Bind(wx.EVT_CHECKBOX, self.__on_check_diff, self.checkDiff)
        self.Bind(wx.EVT_BUTTON, self.__on_close, buttonClose)

        grid = wx.GridBagSizer(5, 5)

        grid.Add(textPlot1, pos=(0, 0))
        grid.Add(linePlot1, pos=(0, 1), flag=wx.EXPAND)
        grid.Add(self.checkOne, pos=(0, 2), flag=wx.ALIGN_CENTER_VERTICAL)
        grid.Add(self.buttonPlot1, pos=(1, 0))
        grid.Add(self.textPlot1, pos=(2, 0))
        grid.Add(self.textLoc1, pos=(3, 0))

        grid.Add(wx.StaticLine(self), pos=(5, 0), span=(1, 3), flag=wx.EXPAND)
        grid.Add(textPlot2, pos=(6, 0))
        grid.Add(linePlot2, pos=(6, 1), flag=wx.EXPAND)
        grid.Add(self.checkTwo, pos=(6, 2), flag=wx.ALIGN_CENTER_VERTICAL)
        grid.Add(self.buttonPlot2, pos=(7, 0))
        grid.Add(self.textPlot2, pos=(8, 0))
        grid.Add(self.textLoc2, pos=(9, 0))

        grid.Add(wx.StaticLine(self), pos=(11, 0), span=(1, 3), flag=wx.EXPAND)
        grid.Add(textPlotDiff, pos=(12, 0))
        grid.Add(linePlotDiff, pos=(12, 1), flag=wx.EXPAND)
        grid.Add(self.checkDiff, pos=(12, 2), flag=wx.ALIGN_CENTER_VERTICAL)
        grid.Add(self.textLocDiff, pos=(13, 0))

        sizerV = wx.BoxSizer(wx.HORIZONTAL)
        sizerV.Add(self.graph, 1, wx.EXPAND)
        sizerV.Add(grid, 0, wx.ALL, border=5)

        sizerH = wx.BoxSizer(wx.VERTICAL)
        sizerH.Add(sizerV, 1, wx.EXPAND, border=5)
        sizerH.Add(buttonClose, 0, wx.ALL | wx.ALIGN_RIGHT, border=5)

        self.SetSizerAndFit(sizerH)

        close_modeless()
コード例 #4
0
    def __init__(self, parent, scanInfo):
        wx.Dialog.__init__(self, parent, title="Scan Properties")

        self.scanInfo = scanInfo

        box = wx.BoxSizer(wx.VERTICAL)

        grid = wx.GridBagSizer(0, 0)

        boxScan = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, "Scan"),
                                    wx.HORIZONTAL)

        gridScan = wx.GridBagSizer(0, 0)

        textDesc = wx.StaticText(self, label="Description")
        gridScan.Add(textDesc, (0, 0), (1, 1), wx.ALL, 5)
        self.textCtrlDesc = wx.TextCtrl(self, value=scanInfo.desc,
                                        style=wx.TE_MULTILINE)
        gridScan.Add(self.textCtrlDesc, (0, 1), (2, 2), wx.ALL | wx.EXPAND, 5)

        textStart = wx.StaticText(self, label="Start")
        gridScan.Add(textStart, (2, 0), (1, 1), wx.ALL, 5)
        textCtrlStart = wx.TextCtrl(self, value="Unknown",
                                    style=wx.TE_READONLY)
        if scanInfo.start is not None:
            textCtrlStart.SetValue(str(scanInfo.start))
        gridScan.Add(textCtrlStart, (2, 1), (1, 1), wx.ALL, 5)
        textMHz1 = wx.StaticText(self, wx.ID_ANY, label="MHz")
        gridScan.Add(textMHz1, (2, 2), (1, 1), wx.ALL, 5)

        textStop = wx.StaticText(self, label="Stop")
        gridScan.Add(textStop, (3, 0), (1, 1), wx.ALL, 5)
        textCtrlStop = wx.TextCtrl(self, value="Unknown",
                                   style=wx.TE_READONLY)
        if scanInfo.stop is not None:
            textCtrlStop.SetValue(str(scanInfo.stop))
        gridScan.Add(textCtrlStop, (3, 1), (1, 1), wx.ALL, 5)
        textMHz2 = wx.StaticText(self, label="MHz")
        gridScan.Add(textMHz2, (3, 2), (1, 1), wx.ALL, 5)

        textDwell = wx.StaticText(self, label="Dwell")
        gridScan.Add(textDwell, (4, 0), (1, 1), wx.ALL, 5)
        textCtrlDwell = wx.TextCtrl(self, value="Unknown",
                                    style=wx.TE_READONLY)
        if scanInfo.dwell is not None:
            textCtrlDwell.SetValue(str(scanInfo.dwell))
        gridScan.Add(textCtrlDwell, (4, 1), (1, 1), wx.ALL, 5)
        textSeconds = wx.StaticText(self, label="seconds")
        gridScan.Add(textSeconds, (4, 2), (1, 1), wx.ALL, 5)

        textNfft = wx.StaticText(self, label="FFT Size")
        gridScan.Add(textNfft, (5, 0), (1, 1), wx.ALL, 5)
        textCtrlNfft = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.nfft is not None:
            textCtrlNfft.SetValue(str(scanInfo.nfft))
        gridScan.Add(textCtrlNfft, (5, 1), (1, 1), wx.ALL, 5)

        textRbw = wx.StaticText(self, label="RBW")
        gridScan.Add(textRbw, (6, 0), (1, 1), wx.ALL, 5)
        rbw = ((SAMPLE_RATE / scanInfo.nfft) / 1000.0) * 2.0
        textCtrlStop = wx.TextCtrl(self, value="{0:.3f}".format(rbw),
                                   style=wx.TE_READONLY)
        gridScan.Add(textCtrlStop, (6, 1), (1, 1), wx.ALL, 5)
        textKHz = wx.StaticText(self, label="kHz")
        gridScan.Add(textKHz, (6, 2), (1, 1), wx.ALL, 5)

        textTime = wx.StaticText(self, label="First scan")
        gridScan.Add(textTime, (7, 0), (1, 1), wx.ALL, 5)
        textCtrlTime = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.timeFirst is not None:
            textCtrlTime.SetValue(format_time(scanInfo.timeFirst, True))
        gridScan.Add(textCtrlTime, (7, 1), (1, 1), wx.ALL, 5)

        textTime = wx.StaticText(self, label="Last scan")
        gridScan.Add(textTime, (8, 0), (1, 1), wx.ALL, 5)
        textCtrlTime = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.timeLast is not None:
            textCtrlTime.SetValue(format_time(scanInfo.timeLast, True))
        gridScan.Add(textCtrlTime, (8, 1), (1, 1), wx.ALL, 5)

        textLat = wx.StaticText(self, label="Latitude")
        gridScan.Add(textLat, (9, 0), (1, 1), wx.ALL, 5)
        self.textCtrlLat = wx.TextCtrl(self, value="Unknown")
        self.textCtrlLat.SetValidator(ValidatorCoord(True))
        if scanInfo.lat is not None:
            self.textCtrlLat.SetValue(str(scanInfo.lat))
        gridScan.Add(self.textCtrlLat, (9, 1), (1, 1), wx.ALL, 5)

        textLon = wx.StaticText(self, label="Longitude")
        gridScan.Add(textLon, (10, 0), (1, 1), wx.ALL, 5)
        self.textCtrlLon = wx.TextCtrl(self, value="Unknown")
        self.textCtrlLon.SetValidator(ValidatorCoord(False))
        if scanInfo.lon is not None:
            self.textCtrlLon.SetValue(str(scanInfo.lon))
        gridScan.Add(self.textCtrlLon, (10, 1), (1, 1), wx.ALL, 5)

        boxScan.Add(gridScan, 0, 0, 5)

        grid.Add(boxScan, (0, 0), (1, 1), wx.ALL | wx.EXPAND, 5)

        boxDevice = wx.StaticBoxSizer(wx.StaticBox(self, label="Device"),
                                      wx.VERTICAL)

        gridDevice = wx.GridBagSizer(0, 0)

        textName = wx.StaticText(self, label="Name")
        gridDevice.Add(textName, (0, 0), (1, 1), wx.ALL, 5)
        textCtrlName = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.name is not None:
            textCtrlName.SetValue(scanInfo.name)
        gridDevice.Add(textCtrlName, (0, 1), (1, 2), wx.ALL | wx.EXPAND, 5)

        textTuner = wx.StaticText(self, label="Tuner")
        gridDevice.Add(textTuner, (1, 0), (1, 1), wx.ALL, 5)
        textCtrlTuner = wx.TextCtrl(self, value="Unknown",
                                    style=wx.TE_READONLY)
        if scanInfo.tuner != -1:
            textCtrlTuner.SetValue(TUNER[scanInfo.tuner])
        gridDevice.Add(textCtrlTuner, (1, 1), (1, 2), wx.ALL | wx.EXPAND, 5)

        testGain = wx.StaticText(self, label="Gain")
        gridDevice.Add(testGain, (2, 0), (1, 1), wx.ALL, 5)
        textCtrlGain = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.gain is not None:
            textCtrlGain.SetValue(str(scanInfo.gain))
        gridDevice.Add(textCtrlGain, (2, 1), (1, 1), wx.ALL, 5)
        textDb = wx.StaticText(self, label="dB")
        gridDevice.Add(textDb, (2, 2), (1, 1), wx.ALL, 5)

        textLo = wx.StaticText(self, label="LO")
        gridDevice.Add(textLo, (3, 0), (1, 1), wx.ALL, 5)
        textCtrlLo = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.lo is not None:
            textCtrlLo.SetValue(str(scanInfo.lo))
        gridDevice.Add(textCtrlLo, (3, 1), (1, 1), wx.ALL, 5)
        textMHz3 = wx.StaticText(self, label="MHz")
        gridDevice.Add(textMHz3, (3, 2), (1, 1), wx.ALL, 5)

        textCal = wx.StaticText(self, label="Calibration")
        gridDevice.Add(textCal, (4, 0), (1, 1), wx.ALL, 5)
        textCtrlCal = wx.TextCtrl(self, value="Unknown", style=wx.TE_READONLY)
        if scanInfo.calibration is not None:
            textCtrlCal.SetValue(str(scanInfo.calibration))
        gridDevice.Add(textCtrlCal, (4, 1), (1, 1), wx.ALL, 5)
        testPpm = wx.StaticText(self, label="ppm")
        gridDevice.Add(testPpm, (4, 2), (1, 1), wx.ALL, 5)

        boxDevice.Add(gridDevice, 1, wx.EXPAND, 5)

        grid.Add(boxDevice, (1, 0), (1, 1), wx.ALL | wx.EXPAND, 5)

        box.Add(grid, 1, wx.ALL | wx.EXPAND, 5)

        sizerButtons = wx.StdDialogButtonSizer()
        buttonOk = wx.Button(self, wx.ID_OK)
        buttonCancel = wx.Button(self, wx.ID_CANCEL)
        sizerButtons.AddButton(buttonOk)
        sizerButtons.AddButton(buttonCancel)
        sizerButtons.Realize()
        self.Bind(wx.EVT_BUTTON, self.__on_ok, buttonOk)
        box.Add(sizerButtons, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.SetSizerAndFit(box)
コード例 #5
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)

        config = wx.ConfigBase.Get()
        host = config.Read("host") or socket.gethostbyname(socket.gethostname())
        grid = wx.GridBagSizer(hgap=5, vgap=5)

        lblUsername = wx.StaticText(self, label="Padherder Username:"******"username"), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.onUsernameChange, self.editUsername)
        grid.Add(self.editUsername, pos=(0,1))

        lblUsername = wx.StaticText(self, label="Padherder Password:"******"password"), size=(140,-1), style=wx.TE_PASSWORD)
        self.Bind(wx.EVT_TEXT, self.onPasswordChange, self.editPassword)
        grid.Add(self.editPassword, pos=(1,1))

        lblHost = wx.StaticText(self, label="IP Address to bind to:")
        grid.Add(lblHost, pos=(2,0))
        self.editHost = wx.TextCtrl(self, value=config.Read("host"), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.onHostChange, self.editHost)
        grid.Add(self.editHost, pos=(2,1))

        lblHostHelp = wx.StaticText(self, label="Leave blank, unless your computer has multiple IPs. Restart app after changing this")
        lblHostHelp.Wrap(580)
        grid.Add(lblHostHelp, pos=(3,0), span=(1,2))

        lblDNSPort = wx.StaticText(self, label="Port for DNS Proxy:")
        grid.Add(lblDNSPort, pos=(4,0))
        self.editDNSPort = wx.TextCtrl(self, value=config.Read("dnsport"), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.onDNSPortChange, self.editDNSPort)
        grid.Add(self.editDNSPort, pos=(4,1))

        export = config.Read("dnsport") or "<padproxydnsport>"
        lblDNSPortHelp = wx.StaticText(self, label="Leave blank, unless you need to bind the DNS Proxy to a different port (ie: for non-root use on a *nix system.) You will need to have a proxy to pass DNS requests from UDP port 53 to this port (ex: sudo dnsmasq -R -a=%s -S=%s#%s). Restart app after changing this." % (host, host, export))
        lblDNSPortHelp.Wrap(580)
        grid.Add(lblDNSPortHelp, pos=(5,0), span=(1,2))

        lblHTTPSPort = wx.StaticText(self, label="Port for HTTPS Proxy:")
        grid.Add(lblHTTPSPort, pos=(6,0))
        self.editHTTPSPort = wx.TextCtrl(self, value=config.Read("httpsport"), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.onHTTPSPortChange, self.editHTTPSPort)
        grid.Add(self.editHTTPSPort, pos=(6,1))

        export = config.Read("httpsport") or "<padproxyhttpsport>"
        lblHTTPSPortHelp = wx.StaticText(self, label="Leave blank, unless you need to bind the HTTPS Proxy a different port (ie: for non-root use on a *nix system.) You will need to have some way to forward TCP port 443 to the this port (ex: sudo socat TCP4-LISTEN:443,bind=%s,su=nobody,fork TCP4:%s:%s). Restart app after changing this." % (host, host, export))
        lblHTTPSPortHelp.Wrap(580)
        grid.Add(lblHTTPSPortHelp, pos=(7,0), span=(1,2))

        lblCustomCapture = wx.StaticText(self, label="Custom URLs to capture")
        grid.Add(lblCustomCapture, pos=(8,0))
        self.editCustomCapture = wx.TextCtrl(self, value=config.Read("customcapture"), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.onCustomCaptureChange, self.editCustomCapture)
        grid.Add(self.editCustomCapture, pos=(8,1))

        lblCustomCaptureHelp = wx.StaticText(self, label="Leave blank, unless you are raijinili. Comma separated list of actions to capture.")
        lblCustomCaptureHelp.Wrap(580)
        grid.Add(lblCustomCaptureHelp, pos=(9,0), span=(1,2))

        self.SetSizer(grid)
コード例 #6
0
    def __init__(self, parent, device):
        self.device = device
        self.threadLocation = None
        self.raw = ''

        wx.Dialog.__init__(self, parent=parent, title='GPS Test')

        textLat = wx.StaticText(self, label='Longitude')
        self.textLat = wx.TextCtrl(self, style=wx.TE_READONLY)
        textLon = wx.StaticText(self, label='Latitude')
        self.textLon = wx.TextCtrl(self, style=wx.TE_READONLY)
        textAlt = wx.StaticText(self, label='Altitude')
        self.textAlt = wx.TextCtrl(self, style=wx.TE_READONLY)
        textSats = wx.StaticText(self, label='Satellites')
        self.textSats = wx.TextCtrl(self, style=wx.TE_READONLY)
        textRaw = wx.StaticText(self, label='Raw output')
        self.textRaw = wx.TextCtrl(self,
                                   style=wx.TE_MULTILINE | wx.TE_READONLY)

        textLevel = wx.StaticText(self, label='Level')
        self.satLevel = SatLevel(self)

        self.buttonStart = wx.Button(self, label='Start')
        self.Bind(wx.EVT_BUTTON, self.__on_start, self.buttonStart)
        self.buttonStop = wx.Button(self, label='Stop')
        self.Bind(wx.EVT_BUTTON, self.__on_stop, self.buttonStop)
        self.buttonStop.Disable()

        buttonOk = wx.Button(self, wx.ID_OK)
        self.Bind(wx.EVT_BUTTON, self.__on_ok, buttonOk)

        grid = wx.GridBagSizer(10, 10)

        grid.Add(textLat, pos=(0, 0), flag=wx.ALL, border=5)
        grid.Add(self.textLat, pos=(0, 1), span=(1, 2), flag=wx.ALL, border=5)
        grid.Add(textLon, pos=(1, 0), flag=wx.ALL, border=5)
        grid.Add(self.textLon, pos=(1, 1), span=(1, 2), flag=wx.ALL, border=5)
        grid.Add(textAlt, pos=(2, 0), flag=wx.ALL, border=5)
        grid.Add(self.textAlt, pos=(2, 1), span=(1, 2), flag=wx.ALL, border=5)
        grid.Add(textSats, pos=(3, 0), flag=wx.ALL, border=5)
        grid.Add(self.textSats, pos=(3, 1), span=(1, 2), flag=wx.ALL, border=5)
        grid.Add(textLevel, pos=(0, 3), flag=wx.ALL, border=5)
        grid.Add(self.satLevel, pos=(1, 3), span=(3, 2), flag=wx.ALL, border=5)
        grid.Add(textRaw, pos=(4, 0), flag=wx.ALL, border=5)
        grid.Add(self.textRaw, pos=(5, 0), span=(5, 5),
                 flag=wx.ALL | wx.EXPAND, border=5)
        grid.Add(self.buttonStart, pos=(10, 2), flag=wx.ALL, border=5)
        grid.Add(self.buttonStop, pos=(10, 3), flag=wx.ALL | wx.ALIGN_RIGHT,
                 border=5)
        grid.Add(buttonOk, pos=(11, 4), flag=wx.ALL | wx.ALIGN_RIGHT,
                 border=5)

        self.SetSizerAndFit(grid)

        self.queue = Queue.Queue()
        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.__on_timer, self.timer)
        self.timer.Start(self.POLL)
コード例 #7
0
    def __init__(self, parent, device):
        self.device = device
        ports = get_serial_ports()
        ports.append(device.resource)
        self.ports = list(set(ports))

        wx.Dialog.__init__(self, parent=parent, title='Serial port settings')

        textPort = wx.StaticText(self, label='Port')
        self.comboPort = wx.ComboBox(self, choices=self.ports,
                                     style=wx.TE_PROCESS_ENTER)
        self.comboPort.SetSelection(self.ports.index(device.resource))

        textBaud = wx.StaticText(self, label='Baud rate')
        self.choiceBaud = wx.Choice(self,
                                    choices=[str(baud) for baud in device.get_bauds()])
        self.choiceBaud.SetSelection(device.get_bauds().index(device.baud))
        textByte = wx.StaticText(self, label='Byte size')
        self.choiceBytes = wx.Choice(self,
                                     choices=[str(byte) for byte in DeviceGPS.BYTES])
        self.choiceBytes.SetSelection(DeviceGPS.BYTES.index(device.bytes))
        textParity = wx.StaticText(self, label='Parity')
        self.choiceParity = wx.Choice(self, choices=DeviceGPS.PARITIES)
        self.choiceParity.SetSelection(DeviceGPS.PARITIES.index(device.parity))
        textStop = wx.StaticText(self, label='Stop bits')
        self.choiceStops = wx.Choice(self,
                                     choices=[str(stop) for stop in DeviceGPS.STOPS])
        self.choiceStops.SetSelection(DeviceGPS.STOPS.index(device.stops))
        textSoft = wx.StaticText(self, label='Software flow control')
        self.checkSoft = wx.CheckBox(self)
        self.checkSoft.SetValue(device.soft)

        buttonOk = wx.Button(self, wx.ID_OK)
        buttonCancel = wx.Button(self, wx.ID_CANCEL)
        sizerButtons = wx.StdDialogButtonSizer()
        sizerButtons.AddButton(buttonOk)
        sizerButtons.AddButton(buttonCancel)
        sizerButtons.Realize()
        self.Bind(wx.EVT_BUTTON, self.__on_ok, buttonOk)

        grid = wx.GridBagSizer(10, 10)
        grid.Add(textPort, pos=(0, 0), flag=wx.ALL)
        grid.Add(self.comboPort, pos=(0, 1), flag=wx.ALL)
        grid.Add(textBaud, pos=(1, 0), flag=wx.ALL)
        grid.Add(self.choiceBaud, pos=(1, 1), flag=wx.ALL)
        grid.Add(textByte, pos=(2, 0), flag=wx.ALL)
        grid.Add(self.choiceBytes, pos=(2, 1), flag=wx.ALL)
        grid.Add(textParity, pos=(3, 0), flag=wx.ALL)
        grid.Add(self.choiceParity, pos=(3, 1), flag=wx.ALL)
        grid.Add(textStop, pos=(4, 0), flag=wx.ALL)
        grid.Add(self.choiceStops, pos=(4, 1), flag=wx.ALL)
        grid.Add(textSoft, pos=(5, 0), flag=wx.ALL)
        grid.Add(self.checkSoft, pos=(5, 1), flag=wx.ALL)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(grid, flag=wx.ALL, border=10)
        box.Add(sizerButtons, flag=wx.ALL | wx.ALIGN_RIGHT, border=10)

        self.SetSizerAndFit(box)
コード例 #8
0
	def __init__(self,parent):
		wx.Panel.__init__(self,parent,id=3,pos=(0,220),size=(330,300))
		#self.SetBackgroundColour('Green')
		
		vbox = wx.BoxSizer(wx.VERTICAL)
		hboxBottom = wx.BoxSizer(wx.HORIZONTAL)
		
		grid = wx.GridSizer(7,2,6,0)
		st1 = wx.StaticText(self, -1, 'First Name')
		self.firstInput = wx.TextCtrl(self, -1)
		self.firstInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st1, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.firstInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st2 = wx.StaticText(self, -1, 'Last Name')
		self.lastInput = wx.TextCtrl(self, -1)
		self.lastInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st2, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.lastInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st3 = wx.StaticText(self, -1, 'Email')
		self.emailInput = wx.TextCtrl(self, -1)
		self.emailInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st3, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.emailInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st4 = wx.StaticText(self, -1, 'Username')
		self.usernameInput = wx.TextCtrl(self, -1)
		self.usernameInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st4, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.usernameInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st5 = wx.StaticText(self, -1, 'Password')
		self.passwordInput = wx.TextCtrl(self, -1, style = wx.TE_PASSWORD)
		self.passwordInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st5, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.passwordInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st6 = wx.StaticText(self, -1, 'Confirm')
		self.confirmInput = wx.TextCtrl(self, -1, style = wx.TE_PASSWORD)
		self.confirmInput.Bind(wx.EVT_KEY_UP, self.checkValid)
		grid.Add(st6, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.confirmInput, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		st7 = wx.StaticText(self, -1, 'Department')
		self.departmentCombo = wx.ComboBox(self, -1)
		self.firstInput.Bind(wx.EVT_COMBOBOX, self.checkValid)
		grid.Add(st7, 0, wx.ALIGN_CENTER_VERTICAL)
		grid.Add(self.departmentCombo, 0, wx.ALIGN_RIGHT | wx.EXPAND)
		
		self.addBtn = wx.Button(self, -1, "Add User", size=(100,-1))
		self.addBtn.Disable()
		self.addBtn.Bind(wx.EVT_BUTTON, self.onAdd)
		self.cancelBtn = wx.Button(self, -1, "Cancel")
		self.cancelBtn.Bind(wx.EVT_BUTTON, self.onCancel)
		
		vbox.Add(grid, 0, wx.ALL | wx.EXPAND, 10)
		
		hboxBottom.Add(self.addBtn, 0, wx.RIGHT,10)
		hboxBottom.Add(self.cancelBtn, 0, wx.RIGHT,10)
		vbox.Add(hboxBottom, 0, wx.BOTTOM|wx.ALIGN_RIGHT,10)

		self.SetAutoLayout(True)
		self.SetSizer(vbox)
		self.Layout()
コード例 #9
0
    def create_widgets(self):
        panel = wx.Panel(self)

        self.panel = wx.Panel(panel)
        self.graph = PanelGraph(panel, self)

        self.buttonStart = wx.Button(self.panel, wx.ID_ANY, 'Start')
        self.buttonStop = wx.Button(self.panel, wx.ID_ANY, 'Stop')
        self.buttonStart.SetToolTip(wx.ToolTip('Start scan'))
        self.buttonStop.SetToolTip(wx.ToolTip('Stop scan'))
        self.Bind(wx.EVT_BUTTON, self.on_start, self.buttonStart)
        self.Bind(wx.EVT_BUTTON, self.on_stop, self.buttonStop)

        textRange = wx.StaticText(self.panel,
                                  label="Range (MHz)",
                                  style=wx.ALIGN_CENTER)
        textStart = wx.StaticText(self.panel, label="Start")
        textStop = wx.StaticText(self.panel, label="Stop")

        self.spinCtrlStart = wx.SpinCtrl(self.panel)
        self.spinCtrlStop = wx.SpinCtrl(self.panel)
        self.spinCtrlStart.SetToolTip(wx.ToolTip('Start frequency'))
        self.spinCtrlStop.SetToolTip(wx.ToolTip('Stop frequency'))
        self.spinCtrlStart.SetRange(F_MIN, F_MAX - 1)
        self.spinCtrlStop.SetRange(F_MIN + 1, F_MAX)
        self.set_range()
        self.Bind(wx.EVT_SPINCTRL, self.on_spin, self.spinCtrlStart)
        self.Bind(wx.EVT_SPINCTRL, self.on_spin, self.spinCtrlStop)

        textDwell = wx.StaticText(self.panel, label="Dwell")
        self.choiceDwell = wx.Choice(self.panel, choices=DWELL[::2])
        self.choiceDwell.SetToolTip(wx.ToolTip('Scan time per step'))
        self.choiceDwell.SetSelection(DWELL[1::2].index(0.1))

        self.checkUpdate = wx.CheckBox(self.panel, wx.ID_ANY,
                                       "Continuous update")
        self.checkUpdate.SetToolTip(wx.ToolTip('Very slow, not recommended'))
        self.checkUpdate.SetValue(self.update)
        self.Bind(wx.EVT_CHECKBOX, self.on_check_update, self.checkUpdate)

        self.checkGrid = wx.CheckBox(self.panel, wx.ID_ANY, "Grid")
        self.checkGrid.SetToolTip(wx.ToolTip('Draw grid'))
        self.checkGrid.SetValue(self.grid)
        self.Bind(wx.EVT_CHECKBOX, self.on_check_grid, self.checkGrid)

        grid = wx.GridBagSizer(5, 5)

        grid.Add(self.buttonStart,
                 pos=(0, 0),
                 span=(2, 1),
                 flag=wx.ALIGN_CENTER)
        grid.Add(self.buttonStop,
                 pos=(0, 1),
                 span=(2, 1),
                 flag=wx.ALIGN_CENTER)

        grid.Add((20, 1), pos=(0, 2))

        grid.Add(textRange, pos=(0, 3), span=(1, 4), flag=wx.ALIGN_CENTER)
        grid.Add(textStart, pos=(1, 3), flag=wx.ALIGN_CENTER)
        grid.Add(self.spinCtrlStart, pos=(1, 4))
        grid.Add(textStop, pos=(1, 5), flag=wx.ALIGN_CENTER)
        grid.Add(self.spinCtrlStop, pos=(1, 6))

        grid.Add((20, 1), pos=(0, 7))

        grid.Add(textDwell, pos=(0, 8), flag=wx.ALIGN_CENTER)
        grid.Add(self.choiceDwell, pos=(1, 8), flag=wx.ALIGN_CENTER)

        grid.Add((20, 1), pos=(0, 9))

        grid.Add(self.checkUpdate, pos=(0, 10))
        grid.Add(self.checkGrid, pos=(1, 10))

        self.panel.SetSizer(grid)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.graph, 1, wx.EXPAND)
        sizer.Add(self.panel, 0, wx.ALIGN_CENTER)
        panel.SetSizer(sizer)