def __init__(self, parent):
        super(minecraftImportWindow,
              self).__init__(parent, title='Cura - Minecraft import')

        saveFileList = map(os.path.basename,
                           glob.glob(mclevel.saveFileDir + "/*"))

        self.panel = wx.Panel(self, -1)
        self.SetSizer(wx.BoxSizer())
        self.GetSizer().Add(self.panel, 1, wx.EXPAND)

        sizer = wx.GridBagSizer(2, 2)

        self.saveListBox = wx.ListBox(self.panel, -1, choices=saveFileList)
        sizer.Add(self.saveListBox, (0, 0), span=(2, 1), flag=wx.EXPAND)
        self.playerListBox = wx.ListBox(self.panel, -1, choices=[])
        sizer.Add(self.playerListBox, (0, 1), span=(2, 1), flag=wx.EXPAND)

        self.previewPanel = wx.Panel(self.panel, -1)
        self.previewPanel.SetMinSize((512, 512))
        sizer.Add(self.previewPanel, (0, 2), flag=wx.EXPAND)

        self.importButton = wx.Button(self.panel, -1, 'Import')
        sizer.Add(self.importButton, (1, 2))

        sizer.AddGrowableRow(1)

        self.panel.SetSizer(sizer)

        self.saveListBox.Bind(wx.EVT_LISTBOX, self.OnSaveSelect)
        self.playerListBox.Bind(wx.EVT_LISTBOX, self.OnPlayerSelect)
        self.importButton.Bind(wx.EVT_BUTTON, self.OnImport)

        self.previewPanel.Bind(wx.EVT_PAINT, self.OnPaintPreview)
        self.previewPanel.Bind(wx.EVT_SIZE, self.OnSizePreview)
        self.previewPanel.Bind(wx.EVT_ERASE_BACKGROUND,
                               self.OnEraseBackgroundPreview)
        self.previewPanel.Bind(wx.EVT_MOTION, self.OnMotion)

        self.level = None
        self.previewImage = None
        self.renderList = []
        self.selectArea = None
        self.draggingArea = False

        self.Layout()
        self.Fit()

        self.gravelPen = wx.Pen(wx.Colour(128, 128, 128))
        self.sandPen = wx.Pen(wx.Colour(192, 192, 0))
        self.grassPen = []
        self.waterPen = []
        for z in xrange(0, 256):
            self.waterPen.append(wx.Pen(wx.Colour(0, 0, min(z + 64, 255))))
            self.grassPen.append(wx.Pen(wx.Colour(0, min(64 + z, 255), 0)))

        self.isSolid = [True] * 256
        self.isSolid[0] = False  #Air
        self.isSolid[8] = False  #Water
        self.isSolid[9] = False  #Water
        self.isSolid[10] = False  #Lava
        self.isSolid[11] = False  #Lava
        self.isSolid[50] = False  #Torch
        self.isSolid[51] = False  #Fire
Esempio n. 2
0
    def __init__(self,
                 parent,
                 filename=None,
                 read_ok_cb=None,
                 size=(725, 450),
                 _larch=None):
        self.parent = parent
        self.filename = filename
        self.larch = _larch
        self.read_ok_cb = read_ok_cb

        self.colors = GUIColors()

        wx.Frame.__init__(self, parent, -1, size=size, style=FRAMESTYLE)
        splitter = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE)
        splitter.SetMinimumPaneSize(200)

        leftpanel = wx.Panel(splitter)
        ltop = wx.Panel(leftpanel)

        sel_none = Button(ltop,
                          'Select None',
                          size=(100, 30),
                          action=self.onSelNone)
        sel_all = Button(ltop,
                         'Select All',
                         size=(100, 30),
                         action=self.onSelAll)
        sel_imp = Button(ltop,
                         'Import Selected Groups',
                         size=(200, 30),
                         action=self.onOK)

        self.select_imported = sel_imp
        self.grouplist = FileCheckList(leftpanel,
                                       select_action=self.onShowGroup)

        tsizer = wx.GridBagSizer(2, 2)
        tsizer.Add(sel_all, (0, 0), (1, 1), LCEN, 0)
        tsizer.Add(sel_none, (0, 1), (1, 1), LCEN, 0)
        tsizer.Add(sel_imp, (1, 0), (1, 2), LCEN, 0)

        pack(ltop, tsizer)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(ltop, 0, LCEN | wx.GROW, 1)
        sizer.Add(self.grouplist, 1, LCEN | wx.GROW | wx.ALL, 1)
        pack(leftpanel, sizer)

        # right hand side
        rightpanel = wx.Panel(splitter)

        self.SetTitle("Reading Athena Project '%s'" % self.filename)
        self.title = SimpleText(rightpanel,
                                self.filename,
                                font=Font(13),
                                colour=self.colors.title,
                                style=LCEN)

        self.plotpanel = PlotPanel(rightpanel, messenger=self.plot_messages)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.title, 0, LCEN, 2)
        sizer.Add(self.plotpanel, 0, LCEN, 2)
        pack(rightpanel, sizer)

        splitter.SplitVertically(leftpanel, rightpanel, 1)

        self.statusbar = self.CreateStatusBar(2, 0)
        self.statusbar.SetStatusWidths([-3, -1])
        statusbar_fields = [self.filename, ""]
        for i in range(len(statusbar_fields)):
            self.statusbar.SetStatusText(statusbar_fields[i], i)

        self.a_project = read_athena(self.filename,
                                     do_bkg=False,
                                     do_fft=False,
                                     _larch=_larch)
        self.allgroups = []
        for item in self.a_project._athena_groups:
            if not item.startswith('_athena_'):
                self.allgroups.append(item)
                self.grouplist.Append(item)
        self.Show()
        self.Raise()
Esempio n. 3
0
    def __init__(self,
                 parent,
                 btn_clear_size=(120, -1),
                 btn_clear_label='Clear PHIL',
                 btn_import=True,
                 btn_import_size=(120, -1),
                 btn_import_label='Import PHIL',
                 btn_export=False,
                 btn_export_size=(120, -1),
                 btn_export_label='Export PHIL',
                 btn_default=True,
                 btn_default_size=(120, -1),
                 btn_default_label='Default PHIL',
                 btn_pos='top',
                 ctr_size=(-1, 125),
                 ctr_value='',
                 label_style='normal',
                 content_style='normal'):

        CtrlBase.__init__(self,
                          parent=parent,
                          label_style=label_style,
                          content_style=content_style)

        self.main_sizer = wx.BoxSizer(wx.VERTICAL)
        self.SetSizer(self.main_sizer)

        self.ctrl_sizer = wx.GridBagSizer(5, 5)

        self.ctr = wx.richtext.RichTextCtrl(self,
                                            size=ctr_size,
                                            style=wx.VSCROLL,
                                            value=ctr_value)
        span_counter = 1
        if btn_pos in ('left', 'right'):
            self.btn_sizer = wx.BoxSizer(wx.VERTICAL)
            b_flag = wx.BOTTOM
        elif btn_pos in ('top', 'bottom'):
            self.btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
            b_flag = wx.RIGHT
        else:
            b_flag = wx.ALL

        if btn_import:
            self.btn_import = wx.Button(self,
                                        label=btn_import_label,
                                        size=btn_import_size)
            self.btn_sizer.Add(self.btn_import, flag=b_flag, border=5)
        if btn_export:
            self.btn_export = wx.Button(self,
                                        label=btn_export_label,
                                        size=btn_export_size)
            self.btn_sizer.Add(self.btn_export, flag=b_flag, border=5)
        if btn_default:
            self.btn_default = wx.Button(self,
                                         label=btn_default_label,
                                         size=btn_default_size)
            self.btn_sizer.Add(self.btn_default, flag=b_flag, border=5)

        self.btn_clear = wx.Button(self,
                                   label=btn_clear_label,
                                   size=btn_clear_size)
        self.btn_sizer.Add(self.btn_clear)
        self.Bind(wx.EVT_BUTTON, self.onClear, self.btn_clear)

        if btn_pos == 'left':
            self.ctrl_sizer.Add(self.btn_sizer, pos=(0, 0), flag=wx.ALL)
            self.ctrl_sizer.Add(self.ctr, pos=(0, 1), flag=wx.EXPAND)
            self.ctrl_sizer.AddGrowableCol(1)
            self.ctrl_sizer.AddGrowableRow(0)
        elif btn_pos == 'right':
            self.ctrl_sizer.Add(self.btn_sizer, pos=(0, 1), flag=wx.ALL)
            self.ctrl_sizer.Add(self.ctr, pos=(0, 0), flag=wx.EXPAND)
            self.ctrl_sizer.AddGrowableCol(0)
            self.ctrl_sizer.AddGrowableRow(0)
        elif btn_pos == 'top':
            self.ctrl_sizer.Add(self.btn_sizer,
                                pos=(0, 0),
                                flag=wx.ALL | wx.ALIGN_LEFT)
            self.ctrl_sizer.Add(self.ctr, pos=(1, 0), flag=wx.EXPAND)
            self.ctrl_sizer.AddGrowableCol(0)
            self.ctrl_sizer.AddGrowableRow(1)
        elif btn_pos == 'bottom':
            self.ctrl_sizer.Add(self.btn_sizer,
                                pos=(1, 0),
                                flag=wx.ALL | wx.ALIGN_RIGHT)
            self.ctrl_sizer.Add(self.ctr, pos=(0, 0), flag=wx.EXPAND)
            self.ctrl_sizer.AddGrowableCol(0)
            self.ctrl_sizer.AddGrowableRow(0)

        self.main_sizer.Add(self.ctrl_sizer,
                            1,
                            flag=wx.EXPAND | wx.ALL,
                            border=5)
Esempio n. 4
0
    def __init__(self, parent):
        adv.WizardPageSimple.__init__(self, parent)

        self.errors = []

        border = 4
        vbs = wx.BoxSizer(wx.VERTICAL)
        vbs.Add(wx.StaticText(self, label=u'{}'.format(_('Summary'))),
                flag=wx.ALL,
                border=border)
        vbs.Add(wx.StaticText(self, label=u' '), flag=wx.ALL, border=border)

        rows = 0

        self.fileLabel = wx.StaticText(self,
                                       label=u'{}:'.format(_('Excel File')))
        self.fileName = wx.StaticText(self)
        rows += 1

        self.sheetLabel = wx.StaticText(self,
                                        label=u'{}:'.format(_('Sheet Name')))
        self.sheetName = wx.StaticText(self)
        rows += 1

        self.riderLabel = wx.StaticText(self,
                                        label=u'{}:'.format(
                                            _('Rider Data Entries')))
        self.riderNumber = wx.StaticText(self)
        rows += 1

        self.getCategoriesFromCategoriesLabel = wx.StaticText(
            self,
            label=u'{}:'.format(
                _('CrossMgr Categories from Excel EventCategory/CustomCategory'
                  )))
        self.initCategoriesFromExcel = wx.StaticText(self)
        rows += 1

        self.categoryAndPropertiesLabel = wx.StaticText(
            self, label=u'{}:'.format(_('Categories and Properties')))
        self.categoryAndProperties = wx.StaticText(self)
        rows += 1

        self.statusLabel = wx.StaticText(self,
                                         label=u'{}:'.format(_('Status')))
        self.statusName = wx.StaticText(self)
        rows += 1

        self.errorLabel = wx.StaticText(self, label=u'{}:'.format(_('Errors')))
        self.errorName = wx.TextCtrl(self,
                                     style=wx.TE_MULTILINE | wx.TE_READONLY,
                                     size=(-1, 128))
        rows += 1

        self.copyErrorsToClipboard = wx.Button(
            self, label=_('Copy Errors to Clipboard'))
        self.copyErrorsToClipboard.Bind(wx.EVT_BUTTON,
                                        self.doCopyErrorsToClipboard)
        rows += 1

        fbs = wx.GridBagSizer(hgap=2, vgap=1)

        labelAlign = wx.ALIGN_RIGHT
        fieldAlign = wx.EXPAND | wx.GROW
        blank = lambda: None

        labelFieldFormats = [
            (self.fileLabel, 0, labelAlign),
            (self.fileName, 1, fieldAlign),
            (self.sheetLabel, 0, labelAlign),
            (self.sheetName, 1, fieldAlign),
            (self.riderLabel, 0, labelAlign),
            (self.riderNumber, 1, fieldAlign),
            (self.getCategoriesFromCategoriesLabel, 0, labelAlign),
            (self.initCategoriesFromExcel, 1, fieldAlign),
            (self.categoryAndPropertiesLabel, 0, labelAlign),
            (self.categoryAndProperties, 1, fieldAlign),
            (self.statusLabel, 0, labelAlign),
            (self.statusName, 1, fieldAlign),
            (self.errorLabel, 0, labelAlign),
            (self.errorName, 1, fieldAlign),
            (blank(), 0, labelAlign),
            (self.copyErrorsToClipboard, 1, fieldAlign),
        ]

        row = 0
        for i, (item, column, flag) in enumerate(labelFieldFormats):
            if not item:
                continue
            if column == 1:
                flag |= wx.EXPAND
            if item == self.errorName:
                fbs.Add(item, pos=(row, 1), span=(1, 1), flag=flag)
                row += 1
            else:
                fbs.Add(item, pos=(row, column), span=(1, 1), flag=flag)
                if column == 1:
                    row += 1

        vbs.Add(fbs)

        self.SetSizer(vbs)
Esempio n. 5
0
    def InitUI(self):
        self.mainSizer = wx.GridBagSizer(4, 4)
        self.metadataTemplatesLbl = wx.StaticText(self,
                                                  label="Metadata Templates")
        self.metadataTemplatesLbl.ToolTip = "List of Metadata Templates available."

        self.metadataTemplatesComboBox = wx.ComboBox(self,
                                                     style=wx.CB_READONLY)
        self.metadataTemplatesComboBox.ToolTip = "List of Metadata Templates available."
        self.metadataTemplatesComboBox.Items = dtkglobal.metadataTemplates
        self.metadataTemplatesComboBox.Bind(wx.EVT_COMBOBOX,
                                            self.ChangeMetadataTemplate)

        self.metadataTypesLbl = wx.StaticText(self, label="Metadata Types")
        self.metadataTypesLbl.ToolTip = "List of Metadata Types."
        self.metadataTypesListBox = wx.ListBox(self, style=wx.LB_MULTIPLE)
        self.metadataTypesListBox.ToolTip = "List of Metadata Types."
        self.metadataTypesListBox.Items = dtkglobal.metadataTypes
        self.btnSaveMetadataTemplate = wx.Button(self, label="Save")
        self.btnSaveMetadataTemplate.Bind(wx.EVT_BUTTON,
                                          self.SaveMetadataTemplate)
        self.btnDeleteMetadataTemplate = wx.Button(self, label="Delete")
        self.btnDeleteMetadataTemplate.Bind(wx.EVT_BUTTON,
                                            self.DeleteMetadataTemplate)

        row = 0
        col = 0
        self.mainSizer.Add(self.metadataTemplatesLbl,
                           pos=(row, col),
                           flag=wx.EXPAND | wx.ALL | wx.ALIGN_LEFT,
                           border=5)
        row = 0
        col = 2
        self.mainSizer.Add(
            self.metadataTemplatesComboBox,
            pos=(row, col),
            span=(0, 10),
            flag=wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT,
            border=5,
        )
        row = 1
        col = 0
        self.mainSizer.Add(self.metadataTypesLbl,
                           pos=(row, col),
                           flag=wx.EXPAND | wx.ALL | wx.ALIGN_LEFT,
                           border=5)
        row = 1
        col = 2

        self.mainSizer.AddGrowableRow(row)
        self.mainSizer.Add(self.metadataTypesListBox,
                           pos=(row, col),
                           span=(0, 10),
                           flag=wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT,
                           border=5)
        row = 2
        col = 0
        self.mainSizer.Add(self.btnSaveMetadataTemplate,
                           pos=(row, col),
                           flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_LEFT,
                           border=5)
        row = 2
        col = 10
        self.mainSizer.Add(self.btnDeleteMetadataTemplate,
                           pos=(row, col),
                           flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT,
                           border=5)

        self.mainSizer.AddGrowableCol(col)
        self.mainSizer.SetEmptyCellSize((0, 0))
        self.Layout()
        self.Fit()
        self.SetSizer(self.mainSizer)
Esempio n. 6
0
    def buildSteps(self, panel):
        operation_step = wx.StaticBox(panel, label="操作步骤")
        operation_step_sizer = wx.StaticBoxSizer(operation_step, wx.VERTICAL)

        grid_bag_sizer1 = wx.GridBagSizer(5, 0)

        precondition = wx.StaticText(panel, label="前提条件: ")
        precondition_input = wx.TextCtrl(panel, size=(400, 20))
        grid_bag_sizer1.Add(precondition, pos=(0, 0), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input,
                            pos=(0, 1),
                            span=(1, 10),
                            flag=wx.RIGHT,
                            border=10)

        precondition = wx.StaticText(panel, label="操作步骤: ")
        num1 = wx.StaticText(panel, label="(1) ")
        precondition_input1 = wx.TextCtrl(panel, size=(374, 20))
        grid_bag_sizer1.Add(precondition, pos=(1, 0), span=(1, 1))
        grid_bag_sizer1.Add(num1, pos=(1, 1), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input1, pos=(1, 2), span=(1, 10))

        num2 = wx.StaticText(panel, label="(2) ")
        precondition_input2 = wx.TextCtrl(panel, size=(374, 20))
        grid_bag_sizer1.Add(num2, pos=(2, 1), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input2, pos=(2, 2), span=(1, 10))

        num3 = wx.StaticText(panel, label="(3) ")
        precondition_input3 = wx.TextCtrl(panel, size=(374, 20))
        grid_bag_sizer1.Add(num3, pos=(3, 1), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input3, pos=(3, 2), span=(1, 10))

        num4 = wx.StaticText(panel, label="(4) ")
        precondition_input4 = wx.TextCtrl(panel, size=(374, 20))
        grid_bag_sizer1.Add(num4, pos=(4, 1), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input4, pos=(4, 2), span=(1, 10))

        num5 = wx.StaticText(panel, label="(5) ")
        precondition_input5 = wx.TextCtrl(panel, size=(374, 20))
        grid_bag_sizer1.Add(num5, pos=(5, 1), span=(1, 1))
        grid_bag_sizer1.Add(precondition_input5, pos=(5, 2), span=(1, 10))

        actual_result = wx.StaticText(panel, label="实际结果: ")
        actual_result_input = wx.TextCtrl(panel, size=(400, 40))
        grid_bag_sizer1.Add(actual_result, pos=(6, 0), span=(1, 1))
        grid_bag_sizer1.Add(actual_result_input, pos=(6, 1), span=(2, 10))

        expect_result = wx.StaticText(panel, label="期望结果: ")
        expect_result_input = wx.TextCtrl(panel,
                                          style=wx.TE_MULTILINE,
                                          size=(400, 40))
        grid_bag_sizer1.Add(expect_result, pos=(8, 0), span=(1, 1))
        grid_bag_sizer1.Add(expect_result_input, pos=(8, 1), span=(2, 10))

        remark = wx.StaticText(panel, label="备注: ")
        remark_input = wx.TextCtrl(panel, size=(400, 40))
        grid_bag_sizer1.Add(remark, pos=(10, 0), span=(1, 1))
        grid_bag_sizer1.Add(remark_input, pos=(10, 1), span=(2, 10))

        operation_step_sizer.Add(grid_bag_sizer1, flag=wx.ALL, border=5)
        return operation_step_sizer
Esempio n. 7
0
    def __init__(self):
        wx.Frame.__init__(self,
                          None,
                          -1,
                          'Find Recent Files (pid {})'.format(os.getpid()),
                          size=(600, 300))
        panel = wx.Panel(self, -1)

        self.target_tc = wx.TextCtrl(panel)
        self.target_button = wx.Button(panel, -1, "Target Dir", pos=(50, 20))
        self.Bind(wx.EVT_BUTTON, self.OnChooseTarget, self.target_button)

        self.result_tc = wx.TextCtrl(panel, style=wx.TE_MULTILINE)

        self.find_button = wx.Button(panel, -1, "Find", pos=(50, 20))
        self.Bind(wx.EVT_BUTTON, self.OnClick, self.find_button)
        self.find_button.SetDefault()
        self.exit_button = wx.Button(panel, -1, "Exit", pos=(50, 20))
        self.Bind(wx.EVT_BUTTON, self.OnExit, self.exit_button)

        lbl = wx.StaticText(panel,
                            label="python " + platform.python_version() +
                            " on " + platform.system() + " " + wx.__file__)

        bagSizer = wx.GridBagSizer(hgap=5, vgap=5)
        row = 0
        col = 0
        bagSizer.Add(self.target_button,
                     pos=(row, 0),
                     flag=wx.EXPAND | wx.ALL,
                     border=1)
        bagSizer.Add(self.target_tc,
                     pos=(row, 1),
                     span=(1, 3),
                     flag=wx.EXPAND | wx.ALL,
                     border=1)
        row += 1

        bagSizer.Add(self.result_tc,
                     pos=(row, 0),
                     span=(1, 3),
                     flag=wx.EXPAND | wx.ALL,
                     border=1)
        row += 1

        bagSizer.Add(self.find_button,
                     pos=(row, 0),
                     flag=wx.EXPAND | wx.ALL,
                     border=1)
        bagSizer.Add(self.exit_button,
                     pos=(row, 1),
                     flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL
                     | wx.ALIGN_CENTER_HORIZONTAL,
                     border=1)
        row += 1
        bagSizer.Add(lbl,
                     pos=(row, 0),
                     span=(1, 3),
                     flag=wx.EXPAND | wx.ALL,
                     border=1)
        bagSizer.AddGrowableCol(2, 0)
        bagSizer.AddGrowableRow(1, 0)
        panel.SetSizerAndFit(bagSizer)
Esempio n. 8
0
    def __init__(self, parent, title, homeDir):
        #wiz.WizardPageSimple.__init__(self, parent)
        wiz.PyWizardPage.__init__(self, parent)

        # create a sizer of this page.
        self.sizerA = makePageTitle(self, title)

        defaultOutputDir = os.path.join(homeDir, 'code')

        self.outputDirLabel = wx.StaticText(self, -1, 'Output Dir')
        self.outputDirTextBox = wx.TextCtrl(self, -1, defaultOutputDir, 
                                            (0, 0), (250, 21))

        self.outputDirBtn = wx.Button(self, -1, 'Browse...')
        self.Bind(wx.EVT_BUTTON, self.OnOutputDirBtn, self.outputDirBtn)

        self.moduleSubdirLabel = wx.StaticText(self, -1, 'Module Subdir')
        self.moduleSubdirTextBox = wx.TextCtrl(self, -1, '', 
                                               (0, 0), (200, 21))

        self.companyNameLabel = wx.StaticText(self, -1, 'Company Name')
        self.companyNameTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21))

        self.authorLabel = wx.StaticText(self, -1, 'Author')
        self.authorTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21))

        self.docGroupLabel = wx.StaticText(self, -1, 'Doxygen Group')
        self.docGroupTextBox = wx.TextCtrl(self, -1, '', (0, 0), (200, 21))

        # Layout
        sizerB = wx.GridBagSizer(4, 6)

        # row 0
        sizerB.Add(self.outputDirLabel, (0, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.outputDirTextBox, (0, 1),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        # row 1
        sizerB.Add(self.outputDirBtn, (1, 1),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        # row 2
        sizerB.Add(self.moduleSubdirLabel, (2, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.moduleSubdirTextBox, (2, 1), flag = wx.EXPAND)
        #
        sizerB.Add(self.companyNameLabel, (3, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.companyNameTextBox, (3, 1), flag = wx.EXPAND)      
        # row 5 
        sizerB.Add(self.authorLabel, (4, 0), 
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.authorTextBox, (4, 1), flag = wx.EXPAND)
        # row 6 
        sizerB.Add(self.docGroupLabel, (5, 0),
                   flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizerB.Add(self.docGroupTextBox, (5, 1), flag = wx.EXPAND)
        # row 7

        self.sizerA.Add(sizerB, 0, wx.ALL, 6)
        self.sizerA.Fit(self)
        self.SetSizer(self.sizerA)
    def __init__(self, parent, log):

        self.log = log

        wx.Panel.__init__(self, parent, -1)

        # This will be used for all of the labels that follow (bold label)
        bfont = self.GetFont()
        bfont.SetWeight(wx.BOLD)

        # Contains everything
        tsizer = wx.BoxSizer(wx.VERTICAL)

        # Contains upper controls
        usizer = wx.BoxSizer(wx.HORIZONTAL)

        # Text control for ext / type entry plus label.
        t = wx.StaticText(self,
                          -1,
                          'Extension / MIME type: ',
                          style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        usizer.Add(t, 0, wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL,
                   2)

        self.ext = wx.TextCtrl(self,
                               -1,
                               value="wav",
                               style=wx.TE_PROCESS_ENTER)
        usizer.Add(self.ext, 0, wx.ALL | wx.ALIGN_TOP, 4)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnLookup, self.ext)

        # Select how to look it up
        self.useExt = wx.RadioButton(self,
                                     -1,
                                     "By extension",
                                     style=wx.RB_GROUP)
        self.useMime = wx.RadioButton(self, -1, "By MIME type")

        usizer.Add(self.useExt, 0,
                   wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4)
        usizer.Add(self.useMime, 0,
                   wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4)
        self.useExt.SetValue(1)

        # Trigger a lookup (hitting ENTER in the text ctrl will do the same thing)
        self.go = wx.Button(self, -1, "Go get it!")
        usizer.Add(self.go, 0,
                   wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4)
        self.Bind(wx.EVT_BUTTON, self.OnLookup, self.go)

        # StaticBox with larger label than usual
        lbox = wx.StaticBox(self, -1, 'wx.FileType')

        f = self.GetFont()
        f.SetPointSize(f.GetPointSize() * 2)
        f.SetWeight(wx.BOLD)
        lbox.SetFont(f)

        lsizer = wx.StaticBoxSizer(lbox, wx.HORIZONTAL)

        # Contains the wx.FileType info
        llsizer = wx.GridBagSizer(2, 2)

        #------- Icon info

        t = wx.StaticText(self, -1, 'GetIconInfo: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (0, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.icon = wx.StaticBitmap(self, -1, images.NoIcon.GetBitmap())
        llsizer.Add(self.icon, (0, 1), (1, 1), wx.ALL | wx.ALIGN_CENTER, 2)

        self.iconsource = wx.TextCtrl(self,
                                      -1,
                                      value="",
                                      size=(125, -1),
                                      style=wx.TE_READONLY)
        llsizer.Add(self.iconsource, (0, 2), (1, 1),
                    wx.ALL | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL, 2)

        self.iconoffset = wx.TextCtrl(self,
                                      -1,
                                      value="",
                                      size=(25, -1),
                                      style=wx.TE_READONLY)
        llsizer.Add(self.iconoffset, (0, 3), (1, 1),
                    wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2)

        #------- MIME Type

        t = wx.StaticText(self, -1, 'GetMimeType: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (1, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.mimetype = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY)
        llsizer.Add(self.mimetype, (1, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- MIME Types

        t = wx.StaticText(self, -1, 'GetMimeTypes: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (2, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.mimetypes = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY)
        llsizer.Add(self.mimetypes, (2, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- Extensions

        t = wx.StaticText(self, -1, 'GetExtensions: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (3, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.extensions = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY)
        llsizer.Add(self.extensions, (3, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- Description

        t = wx.StaticText(self, -1, 'GetDescription: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (4, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.description = wx.TextCtrl(self,
                                       -1,
                                       value="",
                                       style=wx.TE_READONLY)
        llsizer.Add(self.description, (4, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- Open command

        t = wx.StaticText(self, -1, 'GetOpenCommand: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (5, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.opencommand = wx.TextCtrl(self,
                                       -1,
                                       value="",
                                       style=wx.TE_READONLY)
        llsizer.Add(self.opencommand, (5, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- Print command

        t = wx.StaticText(self, -1, 'GetPrintCommand: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (6, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.printcommand = wx.TextCtrl(self,
                                        -1,
                                        value="",
                                        style=wx.TE_READONLY)
        llsizer.Add(self.printcommand, (6, 1), (1, 3),
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        #------- All commands

        t = wx.StaticText(self, -1, 'GetAllCommands: ', style=wx.ALIGN_RIGHT)
        t.SetFont(bfont)
        llsizer.Add(t, (7, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2)

        self.allcommands = wx.TextCtrl(self,
                                       -1,
                                       value="",
                                       style=wx.TE_READONLY | wx.TE_DONTWRAP
                                       | wx.TE_MULTILINE)

        # Set the default height to be smaller than normal (for
        # multi-line) so the sizer can then expand it to whatever
        # space is available
        self.allcommands.SetSize((-1, 20))

        llsizer.Add(self.allcommands, (7, 1), (1, 3),
                    wx.ALL | wx.GROW | wx.ALIGN_CENTER, 2)

        # Tell the sizer to expand this row as needed
        llsizer.AddGrowableRow(7)
        llsizer.AddGrowableCol(2)

        #----------------------------------------------------------------------------

        lrsizer = wx.BoxSizer(wx.VERTICAL)

        #------- List box with known MIME types

        t = wx.StaticText(self, -1, 'Known MIME types')
        t.SetFont(bfont)
        lrsizer.Add(t, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4)

        self.mimelist = wx.ListBox(self, -1, choices=[],
                                   style=wx.LB_SINGLE)  # | wx.LB_SORT)
        lrsizer.Add(self.mimelist, 1,
                    wx.ALL | wx.EXPAND | wx.ALIGN_CENTER | wx.FIXED_MINSIZE, 4)
        self.Bind(wx.EVT_LISTBOX, self.OnListbox, self.mimelist)

        #----------------------------------------------------------------------------

        lsizer.Add(llsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4)
        lsizer.Add(lrsizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4)

        #----------------------------------------------------------------------------

        tsizer.Add(usizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4)
        tsizer.Add(lsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4)

        #----------------------------------------------------------------------------

        self.SetSizer(tsizer)
        tsizer.Fit(self)

        # Populate the Known MIME types list with what is in the database
        try:
            mtypes = wx.TheMimeTypesManager.EnumAllFileTypes()
        except wx.PyAssertionError:
            mtypes = []

        # TODO: On wxMac, EnumAllFileTypes produces tons of dupes, which
        # causes quirky behavior because the list control doesn't expect
        # dupes, and simply wastes space. So remove the dupes for now,
        # then remove this hack when we fix EnumAllFileTypes on Mac.
        mimes = []
        for mt in mtypes:
            if mt not in mimes:
                #self.mimelist.Append(mt)
                mimes.append(mt)
        if mimes:
            mimes.sort()
            self.mimelist.AppendItems(mimes)

        # Do a lookup of *.wav for a starting position
        self.OnLookup()
Esempio n. 10
0
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)

        # load parameters to set dimension of frames and graphs
        configs = ConfigFunctions.load_config('./config.yaml')
        self.window_width = configs['window_width']
        self.window_height = configs['window_height']
        self.dirname = os.getcwd()
        self.folder1 = ''
        self.folder2 = ''
        self.folder3 = ''

        self.sizer = wx.GridBagSizer(0, 0)

        self.header = wx.StaticText(self,
                                    -1,
                                    "Principal Component Analysis",
                                    size=(500, 100))
        font = wx.Font(20, wx.MODERN, wx.NORMAL, wx.NORMAL)
        self.header.SetFont(font)
        self.sizer.Add(self.header,
                       pos=(0, 0),
                       span=(2, 5),
                       flag=wx.LEFT | wx.TOP,
                       border=25)

        self.instructions = wx.StaticText(
            self,
            -1,
            "Run PCA on animals from different groups using extracted gait kinematic parameters.",
            size=(self.window_width, 50))
        font = wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL)
        self.instructions.SetFont(font)
        self.sizer.Add(self.instructions,
                       pos=(2, 0),
                       span=(1, 6),
                       flag=wx.LEFT,
                       border=25)

        self.data_widgets = []

        #################################
        self.select_group1_button = wx.Button(self,
                                              id=wx.ID_ANY,
                                              label="Group 1")
        self.sizer.Add(self.select_group1_button,
                       pos=(3, 0),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group1_button)
        self.Bind(
            wx.EVT_BUTTON,
            lambda event, group_no=0: self.SelectGroupFolder(event, group_no),
            self.select_group1_button)

        self.select_group1_text = wx.StaticText(
            self,
            label="\nPlease select kinematic data folder of the first group.")
        self.sizer.Add(self.select_group1_text,
                       pos=(3, 1),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group1_text)
        #################################
        self.select_group2_button = wx.Button(self,
                                              id=wx.ID_ANY,
                                              label="Group 2")
        self.sizer.Add(self.select_group2_button,
                       pos=(4, 0),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group2_button)
        self.Bind(
            wx.EVT_BUTTON,
            lambda event, group_no=1: self.SelectGroupFolder(event, group_no),
            self.select_group2_button)

        self.select_group2_text = wx.StaticText(
            self,
            label="\nPlease select kinematic data folder of the second group.")
        self.sizer.Add(self.select_group2_text,
                       pos=(4, 1),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group2_text)
        #################################
        self.select_group3_button = wx.Button(self,
                                              id=wx.ID_ANY,
                                              label="Group 3")
        self.sizer.Add(self.select_group3_button,
                       pos=(5, 0),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group3_button)
        self.Bind(
            wx.EVT_BUTTON,
            lambda event, group_no=2: self.SelectGroupFolder(event, group_no),
            self.select_group3_button)

        self.select_group3_text = wx.StaticText(
            self,
            label=
            "\nPlease select kinematic data folder of the third group (optional)."
        )
        self.sizer.Add(self.select_group3_text,
                       pos=(5, 1),
                       flag=wx.LEFT | wx.TOP,
                       border=25)
        self.data_widgets.append(self.select_group3_text)
        #################################
        self.select_output_folder_button = wx.Button(
            self, id=wx.ID_ANY, label='Select output path')
        self.sizer.Add(self.select_output_folder_button,
                       pos=(7, 1),
                       flag=wx.TOP | wx.LEFT | wx.BOTTOM,
                       border=25)
        self.data_widgets.append(self.select_output_folder_button)
        self.select_output_folder_button.Bind(wx.EVT_BUTTON,
                                              self.SelectOutputFolder)
        self.select_output_folder_button.Show()

        self.SetSizer(self.sizer)
        self.GetParent().Layout()
Esempio n. 11
0
 def __init__(self, endcallback):
     self.endcallback = endcallback
     self.syncabort = threading.Event()
     super().__init__(None,
                      id=wx.ID_ANY,
                      title=u"amigaXfer Setup",
                      pos=wx.DefaultPosition,
                      size=wx.Size(512, 225),
                      style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
     self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
     self.SetBackgroundColour(
         wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DLIGHT))
     bSizer1 = wx.BoxSizer(wx.VERTICAL)
     gbSizer1 = wx.GridBagSizer(0, 0)
     gbSizer1.SetFlexibleDirection(wx.BOTH)
     gbSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
     self.m_portmsg = wx.StaticText(self, wx.ID_ANY, u"Port",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_portmsg.Wrap(-1)
     gbSizer1.Add(self.m_portmsg, wx.GBPosition(0, 0), wx.GBSpan(1, 1),
                  wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
     m_portChoices = [
         port for (port, desc, hwid) in serial.tools.list_ports.comports()
     ]
     m_portChoices.reverse()
     self.m_port = wx.ComboBox(self, wx.ID_ANY, wx.EmptyString,
                               wx.DefaultPosition, wx.DefaultSize,
                               m_portChoices, 0)
     self.m_port.SetSelection(0)
     gbSizer1.Add(self.m_port, wx.GBPosition(0, 1), wx.GBSpan(1, 1),
                  wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_baudratemsg = wx.StaticText(self, wx.ID_ANY, u"Xfer Baudrate",
                                        wx.DefaultPosition, wx.DefaultSize,
                                        0)
     self.m_baudratemsg.Wrap(-1)
     gbSizer1.Add(self.m_baudratemsg, wx.GBPosition(1, 0), wx.GBSpan(1, 1),
                  wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)
     m_baudrateChoices = [
         u"9600", u"19200", u"38400", u"57600", u"115200", u"256k", u"512k"
     ]
     self.m_baudrate = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, m_baudrateChoices, 0)
     self.m_baudrate.SetSelection(4)
     gbSizer1.Add(self.m_baudrate, wx.GBPosition(1, 1), wx.GBSpan(1, 1),
                  wx.ALL, 5)
     bSizer1.Add(gbSizer1, 0, wx.EXPAND, 5)
     m_debuggerChoices = [u"RomWack (exec v37-)", u"SAD (exec v39+)"]
     self.m_debugger = wx.RadioBox(self, wx.ID_ANY, u"Debugger",
                                   wx.DefaultPosition, wx.DefaultSize,
                                   m_debuggerChoices, 1, wx.RA_SPECIFY_ROWS)
     self.m_debugger.SetSelection(0)
     bSizer1.Add(self.m_debugger, 0, wx.ALL | wx.EXPAND, 5)
     wSizer1 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)
     self.m_dangerfast = wx.CheckBox(self, wx.ID_ANY, u"DangerFast",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_dangerfast.Hide()
     self.m_dangerfast.SetForegroundColour(wx.Colour(255, 0, 0))
     self.m_dangerfast.SetToolTip(u"Dev's hardcoded speeds")
     self.m_dangerfast.Bind(wx.EVT_CHECKBOX, self.onCheckBox)
     wSizer1.Add(self.m_dangerfast, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_crashentry = wx.CheckBox(self, wx.ID_ANY, u"CrashEntry",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_crashentry.SetToolTip(u"Refer to bootstrap doc")
     self.m_crashentry.Bind(wx.EVT_CHECKBOX, self.onCheckBox)
     wSizer1.Add(self.m_crashentry, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_resetfirst = wx.CheckBox(self, wx.ID_ANY, u"ResetFirst",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_resetfirst.SetToolTip(u"Reboots for cleaner env")
     self.m_resetfirst.Bind(wx.EVT_CHECKBOX, self.onCheckBox)
     wSizer1.Add(self.m_resetfirst, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_paranoid = wx.CheckBox(self, wx.ID_ANY, u"Paranoid",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_paranoid.SetToolTip(u"AmigaSnippets verifyuse (slow)")
     wSizer1.Add(self.m_paranoid, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_debug = wx.CheckBox(self, wx.ID_ANY, u"Debug",
                                wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_debug.SetToolTip(u"Extra debug text")
     wSizer1.Add(self.m_debug, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     self.m_logwindow = wx.CheckBox(self, wx.ID_ANY, u"LogWindow",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_logwindow.SetToolTip(u"Redirect log to a window")
     self.m_logwindow.SetValue(True)
     wSizer1.Add(self.m_logwindow, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
     bSizer1.Add(wSizer1, 1, wx.EXPAND, 5)
     wSizer14 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)
     self.m_quit = wx.Button(self, wx.ID_ANY, u"Quit", wx.DefaultPosition,
                             wx.DefaultSize, 0)
     self.m_quit.Bind(wx.EVT_BUTTON, self.onQuitPressed)
     wSizer14.Add(
         self.m_quit, 0,
         wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)
     self.m_about = wx.Button(self, wx.ID_ANY, u"About", wx.DefaultPosition,
                              wx.DefaultSize, 0)
     self.m_about.Bind(wx.EVT_BUTTON, self.onAbout)
     wSizer14.Add(
         self.m_about, 0,
         wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)
     self.m_connect = wx.Button(self, wx.ID_ANY, u"Connect",
                                wx.DefaultPosition, wx.DefaultSize, 0)
     self.m_connect.Bind(wx.EVT_BUTTON, self.DebuggerConnect)
     wSizer14.Add(
         self.m_connect, 0,
         wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)
     bSizer1.Add(wSizer14, 0, wx.ALIGN_RIGHT, 5)
     self.SetSizer(bSizer1)
     self.Layout()
     self.Fit()
     self.Centre(wx.BOTH)
     self.Bind(wx.EVT_CLOSE, self.onClose)
     #FIXME: Secret tickboxes.
     self.Bind(wx.EVT_KEY_DOWN, self.onKeyPress)
     return
Esempio n. 12
0
    def Configure(self, x=None, y=None, displayNumber=None, center=False):
        panel = eg.ConfigPanel()
        text = self.text

        cCB = panel.CheckBox(center, text.label_C)
        xCB = panel.CheckBox(x is not None, text.text1)
        yCB = panel.CheckBox(y is not None, text.text3)
        displayCB = panel.CheckBox(displayNumber is not None, text.display)

        #xCtrl = panel.SpinIntCtrl(x or 0, min = -maxint - 1, max = maxint)
        xCtrl = panel.SpinIntCtrl(x or 0, min=0, max=maxint)  # since 1.0.1
        xCtrl.Enable(x is not None)

        #yCtrl = panel.SpinIntCtrl(y or 0, min = -maxint - 1, max = maxint)
        yCtrl = panel.SpinIntCtrl(y or 0, min=0, max=maxint)  # since 1.0.1
        yCtrl.Enable(y is not None)

        display = -1 if displayNumber is None else displayNumber
        displayChoice = eg.DisplayChoice(panel, display)
        displayChoice.Enable(displayNumber is not None)

        xPixels = wx.StaticText(panel, -1, text.text2)
        yPixels = wx.StaticText(panel, -1, text.text2)
        monsCtrl = eg.MonitorsCtrl(panel, background=(224, 238, 238))
        note = wx.StaticText(panel, -1, text.note)
        note.SetForegroundColour(wx.RED)
        sizer = wx.GridBagSizer(vgap=6, hgap=5)
        sizer.Add(cCB, (0, 0), (1, 3), flag=wx.BOTTOM, border=8)
        sizer.Add(xCB, (1, 0), (1, 1))
        sizer.Add(xCtrl, (1, 1), (1, 1))
        sizer.Add(xPixels, (1, 2), (1, 1))
        sizer.Add(yCB, (2, 0), (1, 1))
        sizer.Add(yCtrl, (2, 1), (1, 1))
        sizer.Add(yPixels, (2, 2), (1, 1))
        sizer.Add(note, (3, 0), (1, 3))
        sizer.Add(displayCB, (4, 0), (1, 1), flag=wx.TOP, border=14)
        sizer.Add(displayChoice, (4, 1), (1, 2), flag=wx.TOP, border=13)
        panel.sizer.Add(sizer, 1, wx.EXPAND)
        panel.sizer.Add(monsCtrl, 0, wx.TOP, 8)

        def HandleCenterCheckBox(event=None):
            val = not cCB.GetValue()
            xCB.Enable(val)
            xCtrl.Enable(val)
            xPixels.Enable(val)
            yCB.Enable(val)
            yCtrl.Enable(val)
            yPixels.Enable(val)
            if not val:
                xCB.SetValue(False)
                yCB.SetValue(False)
                xCtrl.SetValue(0)
                yCtrl.SetValue(0)
            if event:
                event.Skip()

        cCB.Bind(wx.EVT_CHECKBOX, HandleCenterCheckBox)
        HandleCenterCheckBox()

        def HandleXCheckBox(event):
            xCtrl.Enable(event.IsChecked())
            event.Skip()

        xCB.Bind(wx.EVT_CHECKBOX, HandleXCheckBox)

        def HandleYCheckBox(event):
            yCtrl.Enable(event.IsChecked())
            event.Skip()

        yCB.Bind(wx.EVT_CHECKBOX, HandleYCheckBox)

        def HandleDisplayCB(event):
            flag = event.IsChecked()
            displayChoice.Enable(flag)
            if flag:
                display = 0 if displayNumber is None else displayNumber
            else:
                display = -1
            displayChoice.SetValue(display)
            event.Skip()

        displayCB.Bind(wx.EVT_CHECKBOX, HandleDisplayCB)

        while panel.Affirmed():
            if xCtrl.IsEnabled():
                x = xCtrl.GetValue()
            else:
                x = None

            if yCtrl.IsEnabled():
                y = yCtrl.GetValue()
            else:
                y = None

            if displayChoice.IsEnabled():
                displayNumber = displayChoice.GetValue()
            else:
                displayNumber = None

            panel.SetResult(x, y, displayNumber, cCB.GetValue())
Esempio n. 13
0
    def __init__(
            self,
            parent,
            data,
            pointNo,
            itemCap="Point No.",
            id=wx.ID_ANY,
            title=_("Edit point"),
            style=wx.DEFAULT_DIALOG_STYLE,
    ):
        """Dialog for editing item cells in list"""

        wx.Dialog.__init__(self, parent, id, title=_(title), style=style)

        self.parent = parent
        panel = Panel(parent=self)
        sizer = wx.BoxSizer(wx.VERTICAL)

        box = StaticBox(parent=panel,
                        id=wx.ID_ANY,
                        label=" %s %s " % (_(itemCap), str(pointNo + 1)))
        boxSizer = wx.StaticBoxSizer(box, wx.VERTICAL)

        # source coordinates
        gridSizer = wx.GridBagSizer(vgap=5, hgap=5)

        self.fields = []
        self.data = deepcopy(data)

        col = 0
        row = 0
        iField = 0
        for cell in self.data:

            # Select
            if type(cell[2]).__name__ == "list":
                self.fields.append(
                    ComboBox(
                        parent=panel,
                        id=wx.ID_ANY,
                        choices=cell[2],
                        style=wx.CB_READONLY,
                        size=(110, -1),
                    ))
            # Text field
            else:
                if cell[2] == float:
                    validator = FloatValidator()
                elif cell[2] == int:
                    validator = IntegerValidator()
                else:
                    validator = None

                if validator:
                    self.fields.append(
                        TextCtrl(
                            parent=panel,
                            id=wx.ID_ANY,
                            validator=validator,
                            size=(150, -1),
                        ))
                else:
                    self.fields.append(
                        TextCtrl(parent=panel, id=wx.ID_ANY, size=(150, -1)))
                    value = cell[1]
                    if not isinstance(cell[1], basestring):
                        value = str(cell[1])
                    self.fields[iField].SetValue(value)

            label = StaticText(
                parent=panel,
                id=wx.ID_ANY,
                label=_(parent.GetColumn(cell[0]).GetText()) + ":",
            )  # name of column)

            gridSizer.Add(label, flag=wx.ALIGN_CENTER_VERTICAL, pos=(row, col))

            col += 1

            gridSizer.Add(self.fields[iField], pos=(row, col))

            if col % 3 == 0:
                col = 0
                row += 1
            else:
                col += 1

            iField += 1

        boxSizer.Add(gridSizer,
                     proportion=1,
                     flag=wx.EXPAND | wx.ALL,
                     border=5)

        sizer.Add(boxSizer, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)

        #
        # buttons
        #
        self.btnCancel = Button(panel, wx.ID_CANCEL)
        self.btnOk = Button(panel, wx.ID_OK)
        self.btnOk.SetDefault()

        btnSizer = wx.StdDialogButtonSizer()
        btnSizer.AddButton(self.btnCancel)
        btnSizer.AddButton(self.btnOk)
        btnSizer.Realize()

        sizer.Add(btnSizer,
                  proportion=0,
                  flag=wx.ALIGN_RIGHT | wx.ALL,
                  border=5)

        panel.SetSizer(sizer)
        sizer.Fit(self)
Esempio n. 14
0
    def _create_layout(self):
        ctrl_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, 'Pipeline Control')
        ctrl_box = ctrl_sizer.GetStaticBox()

        status_lbl = wx.StaticText(ctrl_box, label='Pipeline Status:')
        self.pipeline_status = wx.StaticText(ctrl_box, label='Not Started')

        self.start_btn = wx.Button(ctrl_box, label='Start')
        self.abort_btn = wx.Button(ctrl_box, label='Abort')

        self.start_btn.Bind(wx.EVT_BUTTON, self._on_start)
        self.abort_btn.Bind(wx.EVT_BUTTON, self._on_abort)
        self.abort_btn.Disable()

        btn_sizer = wx.BoxSizer(wx.HORIZONTAL)
        btn_sizer.Add(self.start_btn, flag=wx.RIGHT, border=self._FromDIP(5))
        btn_sizer.Add(self.abort_btn)

        ctrl_grid_sizer = wx.GridBagSizer(vgap=self._FromDIP(5), hgap=self._FromDIP(5))
        ctrl_grid_sizer.Add(status_lbl, (0,0), flag=wx.ALIGN_CENTER_VERTICAL)
        ctrl_grid_sizer.Add(self.pipeline_status, (0,1), span=(0,2),
            flag=wx.ALIGN_CENTER_VERTICAL)
        ctrl_grid_sizer.Add(btn_sizer, (1,0), span=(0,3),
            flag=wx.ALIGN_CENTER_HORIZONTAL)


        # raver_label = wx.StaticText(ctrl_box, label='Radial average processes:')
        # self.raver_ctrl = wx.StaticText(ctrl_box, size=self._FromDIP((40, -1)))
        # raver_add = wx.Button(ctrl_box, label='Add')

        analysis_label = wx.StaticText(ctrl_box, label='Analysis processes:')
        self.analysis_ctrl = wx.StaticText(ctrl_box, size=self._FromDIP((40, -1)))
        analysis_add = wx.Button(ctrl_box, label='Add')

        # raver_add.Bind(wx.EVT_BUTTON, self._add_raver_proc)
        analysis_add.Bind(wx.EVT_BUTTON, self._add_analysis_proc)

        ctrl_grid_sizer_2 = wx.FlexGridSizer(cols=3, vgap=self._FromDIP(5),
            hgap=self._FromDIP(5))
        # ctrl_grid_sizer_2.Add(raver_label, flag=wx.ALIGN_CENTER_VERTICAL)
        # ctrl_grid_sizer_2.Add(self.raver_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        # ctrl_grid_sizer_2.Add(raver_add, flag=wx.ALIGN_CENTER_VERTICAL)
        ctrl_grid_sizer_2.Add(analysis_label, flag=wx.ALIGN_CENTER_VERTICAL)
        ctrl_grid_sizer_2.Add(self.analysis_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        ctrl_grid_sizer_2.Add(analysis_add, flag=wx.ALIGN_CENTER_VERTICAL)


        fprefix_label = wx.StaticText(ctrl_box, label='File prefix:')
        self.fprefix_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY)
        fprefix_btn = wx.Button(ctrl_box, label='Set')
        fprefix_btn.Bind(wx.EVT_BUTTON, self._on_fprefix_set)

        dd_label = wx.StaticText(ctrl_box, label='Data directory:')
        self.data_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY)
        dd_btn = wx.Button(ctrl_box, label='Select')
        dd_btn.Bind(wx.EVT_BUTTON, self._on_dd_select)

        od_label = wx.StaticText(ctrl_box, label='Output directory:')
        self.output_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY)
        od_btn = wx.Button(ctrl_box, label='Select')
        od_btn.Bind(wx.EVT_BUTTON, self._on_od_select)

        pd_label = wx.StaticText(ctrl_box, label='Profiles directory:')
        self.profiles_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY)
        pd_btn = wx.Button(ctrl_box, label='Select')
        pd_btn.Bind(wx.EVT_BUTTON, self._on_pd_select)

        ad_label = wx.StaticText(ctrl_box, label='Analysis directory:')
        self.analysis_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY)
        ad_btn = wx.Button(ctrl_box, label='Select')
        ad_btn.Bind(wx.EVT_BUTTON, self._on_ad_select)

        dir_grid_sizer = wx.FlexGridSizer(cols=3, vgap=self._FromDIP(5),
            hgap=self._FromDIP(5))
        dir_grid_sizer.Add(fprefix_label, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(self.fprefix_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
        dir_grid_sizer.Add(fprefix_btn, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(dd_label, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(self.data_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
        dir_grid_sizer.Add(dd_btn, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(od_label, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(self.output_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
        dir_grid_sizer.Add(od_btn, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(pd_label, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(self.profiles_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
        dir_grid_sizer.Add(pd_btn, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(ad_label, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.Add(self.analysis_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
        dir_grid_sizer.Add(ad_btn, flag=wx.ALIGN_CENTER_VERTICAL)
        dir_grid_sizer.AddGrowableCol(1)

        ctrl_sizer.Add(ctrl_grid_sizer, flag=wx.EXPAND|wx.ALL,
            border=self._FromDIP(5))
        ctrl_sizer.Add(ctrl_grid_sizer_2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,
            border=self._FromDIP(5))
        ctrl_sizer.Add(dir_grid_sizer, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM,
            border=self._FromDIP(5))


        status_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, 'Pipeline Status')
        status_box = status_sizer.GetStaticBox()

        loaded_label = wx.StaticText(status_box, label='Images loaded:')
        self.loaded_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1)))

        averaged_label = wx.StaticText(status_box, label='Images averaged:')
        self.averaged_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1)))

        exp_current_label = wx.StaticText(status_box, label='Ongoing experiments:')
        self.exp_current_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1)))

        exp_in_proc_label = wx.StaticText(status_box, label='Experments processing:')
        self.exp_in_proc_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1)))

        exp_proc_label = wx.StaticText(status_box, label='Finished experiments:')
        self.exp_proc_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1)))

        status_grid_sizer = wx.FlexGridSizer(cols=2, vgap=self._FromDIP(5),
            hgap=self._FromDIP(5))
        status_grid_sizer.Add(loaded_label, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(self.loaded_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(averaged_label, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(self.averaged_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(exp_current_label, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(self.exp_current_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(exp_in_proc_label, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(self.exp_in_proc_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(exp_proc_label, flag=wx.ALIGN_CENTER_VERTICAL)
        status_grid_sizer.Add(self.exp_proc_ctrl, flag=wx.ALIGN_CENTER_VERTICAL)

        status_sizer.Add(status_grid_sizer, flag=wx.EXPAND|wx.ALL)

        top_sizer = wx.BoxSizer(wx.VERTICAL)
        top_sizer.Add(ctrl_sizer, flag=wx.EXPAND)
        top_sizer.Add(status_sizer, flag=wx.EXPAND)

        self.SetSizer(top_sizer)
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title=u"Agregar cliente",
                           pos=wx.DefaultPosition,
                           size=wx.Size(730, 494),
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT))

        gbSizer1 = wx.GridBagSizer(0, 0)
        gbSizer1.SetFlexibleDirection(wx.BOTH)
        gbSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        sbSizer1 = wx.StaticBoxSizer(
            wx.StaticBox(self, wx.ID_ANY, wx.EmptyString), wx.VERTICAL)

        gbSizer2 = wx.GridBagSizer(0, 0)
        gbSizer2.SetFlexibleDirection(wx.BOTH)
        gbSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"Código:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText1.Wrap(-1)
        self.m_staticText1.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText1, wx.GBPosition(0, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_codigo = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                     wx.DefaultPosition, wx.DefaultSize,
                                     wx.TE_CENTRE)
        self.tc_codigo.SetMaxLength(10)
        self.tc_codigo.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_codigo, wx.GBPosition(0, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText4 = wx.StaticText(self, wx.ID_ANY,
                                           u"Apellido y nombres:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText4.Wrap(-1)
        self.m_staticText4.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText4, wx.GBPosition(1, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.tc_apenom = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                     wx.DefaultPosition, wx.Size(250, -1), 0)
        self.tc_apenom.SetMaxLength(50)
        self.tc_apenom.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_apenom, wx.GBPosition(1, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText10 = wx.StaticText(self, wx.ID_ANY, u"Teléfonos:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText10.Wrap(-1)
        self.m_staticText10.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText10, wx.GBPosition(3, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)

        self.tc_telefonos = wx.TextCtrl(self, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.Size(250, -1), 0)
        self.tc_telefonos.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_telefonos, wx.GBPosition(3, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"Sección:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText2.Wrap(-1)
        self.m_staticText2.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText2, wx.GBPosition(1, 2), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_seccion = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.TE_CENTRE)
        self.tc_seccion.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_seccion, wx.GBPosition(1, 3), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText3 = wx.StaticText(self, wx.ID_ANY, u"Zona:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText3.Wrap(-1)
        self.m_staticText3.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText3, wx.GBPosition(2, 2), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_zona = wx.TextCtrl(self, wx.ID_ANY, u"403", wx.DefaultPosition,
                                   wx.DefaultSize, wx.TE_CENTRE)
        self.tc_zona.SetMaxLength(3)
        self.tc_zona.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_zona, wx.GBPosition(2, 3), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText5 = wx.StaticText(self, wx.ID_ANY, u"Domicilio:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText5.Wrap(-1)
        self.m_staticText5.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText5, wx.GBPosition(2, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_domicilio = wx.TextCtrl(self, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.Size(250, -1), 0)
        self.tc_domicilio.SetMaxLength(50)
        self.tc_domicilio.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_domicilio, wx.GBPosition(2, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, u"Barrio:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText6.Wrap(-1)
        self.m_staticText6.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText6, wx.GBPosition(4, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_barrio = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                     wx.DefaultPosition, wx.Size(250, -1), 0)
        self.tc_barrio.SetMaxLength(50)
        self.tc_barrio.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_barrio, wx.GBPosition(4, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"Localidad:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText7.Wrap(-1)
        self.m_staticText7.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText7, wx.GBPosition(5, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

        self.tc_localidad = wx.TextCtrl(self, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.Size(250, -1), 0)
        self.tc_localidad.SetMaxLength(50)
        self.tc_localidad.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_localidad, wx.GBPosition(5, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, u"Fecha de alta:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText9.Wrap(-1)
        self.m_staticText9.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText9, wx.GBPosition(6, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)

        self.tc_alta = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.TE_CENTRE | wx.TE_READONLY)
        self.tc_alta.SetMaxLength(10)
        self.tc_alta.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_alta, wx.GBPosition(6, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText8 = wx.StaticText(self, wx.ID_ANY, u"Comentarios:",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.m_staticText8.Wrap(-1)
        self.m_staticText8.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.m_staticText8, wx.GBPosition(7, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_RIGHT, 5)

        self.tc_descripcion = wx.TextCtrl(self, wx.ID_ANY,
                                          wx.EmptyString, wx.DefaultPosition,
                                          wx.Size(500, 100), wx.TE_MULTILINE)
        self.tc_descripcion.SetMaxLength(700)
        self.tc_descripcion.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer2.Add(self.tc_descripcion, wx.GBPosition(7, 1), wx.GBSpan(1, 4),
                     wx.ALL, 5)

        sbSizer1.Add(gbSizer2, 1, wx.EXPAND, 5)

        gbSizer1.Add(sbSizer1, wx.GBPosition(0, 0), wx.GBSpan(1, 7),
                     wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 20)

        self.btn_aceptar = wx.Button(self, wx.ID_OK, u"Aceptar",
                                     wx.DefaultPosition, wx.Size(100, 30), 0)
        self.btn_aceptar.SetFont(wx.Font(11, 70, 90, 92, False,
                                         wx.EmptyString))

        gbSizer1.Add(self.btn_aceptar, wx.GBPosition(1, 5), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_RIGHT, 5)

        self.btn_cancelar = wx.Button(self, wx.ID_CANCEL, u"Cancelar",
                                      wx.DefaultPosition, wx.Size(100, 30), 0)
        self.btn_cancelar.SetFont(
            wx.Font(11, 70, 90, 90, False, wx.EmptyString))

        gbSizer1.Add(self.btn_cancelar, wx.GBPosition(1, 6), wx.GBSpan(1, 1),
                     wx.ALIGN_RIGHT | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.SetSizer(gbSizer1)
        self.Layout()

        self.Centre(wx.BOTH)
Esempio n. 16
0
    def createControlPanel(self):
        ctrlpanel = wx.Panel(self, name='Ctrl Panel')

        ptable = PeriodicTablePanel(ctrlpanel,
                                    onselect=self.onShowLines,
                                    tooltip_msg='Select Element for KLM Lines')

        self.wids['ptable'] = ptable

        labstyle = wx.ALIGN_LEFT | wx.ALIGN_BOTTOM | wx.EXPAND
        ctrlstyle = wx.ALIGN_LEFT | wx.ALIGN_BOTTOM
        txtstyle = wx.ALIGN_LEFT | wx.ST_NO_AUTORESIZE | wx.TE_PROCESS_ENTER
        Font9 = Font(9)
        Font10 = Font(10)
        Font11 = Font(11)
        #
        arrowpanel = wx.Panel(ctrlpanel)
        ssizer = wx.BoxSizer(wx.HORIZONTAL)
        for wname, dname in (('uparrow', 'up'), ('leftarrow', 'left'),
                             ('rightarrow', 'right'), ('downarrow', 'down')):
            self.wids[wname] = wx.BitmapButton(arrowpanel,
                                               -1,
                                               get_icon(wname),
                                               size=(25, 25),
                                               style=wx.NO_BORDER)
            self.wids[wname].Bind(wx.EVT_BUTTON,
                                  partial(ptable.onKey, name=dname))

            ssizer.Add(self.wids[wname], 0, wx.EXPAND | wx.ALL)

        self.wids['kseries'] = Check(arrowpanel, ' K ', action=self.onKLM)
        self.wids['lseries'] = Check(arrowpanel, ' L ', action=self.onKLM)
        self.wids['mseries'] = Check(arrowpanel, ' M ', action=self.onKLM)
        self.wids['holdbtn'] = wx.ToggleButton(arrowpanel,
                                               -1,
                                               'Hold   ',
                                               size=(65, 25))
        self.wids['holdbtn'].Bind(wx.EVT_TOGGLEBUTTON, self.onToggleHold)

        ssizer.Add(txt(arrowpanel, '  '), 0, wx.EXPAND | wx.ALL, 0)
        ssizer.Add(self.wids['holdbtn'], 0, wx.EXPAND | wx.ALL, 2)
        ssizer.Add(self.wids['kseries'], 0, wx.EXPAND | wx.ALL, 0)
        ssizer.Add(self.wids['lseries'], 0, wx.EXPAND | wx.ALL, 0)
        ssizer.Add(self.wids['mseries'], 0, wx.EXPAND | wx.ALL, 0)
        pack(arrowpanel, ssizer)

        # roi section...
        rsizer = wx.GridBagSizer(4, 6)
        roipanel = wx.Panel(ctrlpanel, name='ROI Panel')
        self.wids['roilist'] = wx.ListBox(roipanel, size=(135, 120))
        self.wids['roilist'].Bind(wx.EVT_LISTBOX, self.onROI)
        self.wids['roilist'].SetMinSize((135, 120))
        self.wids['roiname'] = wx.TextCtrl(roipanel, -1, '', size=(150, -1))

        #
        roibtns = wx.Panel(roipanel, name='ROIButtons')
        zsizer = wx.BoxSizer(wx.HORIZONTAL)
        z1 = Button(roibtns, 'Add', size=(70, 30), action=self.onNewROI)
        z2 = Button(roibtns,
                    'Delete',
                    size=(70, 30),
                    action=self.onConfirmDelROI)
        z3 = Button(roibtns, 'Rename', size=(70, 30), action=self.onRenameROI)

        zsizer.Add(z1, 0, wx.EXPAND | wx.ALL, 0)
        zsizer.Add(z2, 0, wx.EXPAND | wx.ALL, 0)
        zsizer.Add(z3, 0, wx.EXPAND | wx.ALL, 0)
        pack(roibtns, zsizer)

        rt1 = txt(roipanel, ' Channels:', size=75, font=Font9)
        rt2 = txt(roipanel, ' Energy:', size=75, font=Font9)
        rt3 = txt(roipanel, ' Cen/Wid:', size=75, font=Font9)
        m = ''
        self.wids['roi_msg1'] = txt(roipanel, m, size=135, font=Font9)
        self.wids['roi_msg2'] = txt(roipanel, m, size=135, font=Font9)
        self.wids['roi_msg3'] = txt(roipanel, m, size=135, font=Font9)

        rsizer.Add(
            txt(roipanel, ' Regions of Interest:', size=125, font=Font11),
            (0, 0), (1, 3), labstyle)
        rsizer.Add(self.wids['roiname'], (1, 0), (1, 3), labstyle)
        rsizer.Add(roibtns, (2, 0), (1, 3), labstyle)
        rsizer.Add(rt1, (3, 0), (1, 1), LEFT)
        rsizer.Add(rt2, (4, 0), (1, 1), LEFT)
        rsizer.Add(rt3, (5, 0), (1, 1), LEFT)
        rsizer.Add(self.wids['roi_msg1'], (3, 1), (1, 2), labstyle)
        rsizer.Add(self.wids['roi_msg2'], (4, 1), (1, 2), labstyle)
        rsizer.Add(self.wids['roi_msg3'], (5, 1), (1, 2), labstyle)
        rsizer.Add(self.wids['roilist'], (0, 3), (6, 1),
                   wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT)
        rsizer.SetHGap(1)

        pack(roipanel, rsizer)
        # end roi section

        # y scale
        yscalepanel = wx.Panel(ctrlpanel, name='YScalePanel')
        ysizer = wx.BoxSizer(wx.HORIZONTAL)
        ytitle = txt(yscalepanel, ' Y Axis:', font=Font10, size=80)
        yspace = txt(yscalepanel, ' ', font=Font10, size=20)
        ylog = Choice(yscalepanel,
                      size=(80, 30),
                      choices=['log', 'linear'],
                      action=self.onLogLinear)
        yaxis = Check(yscalepanel,
                      ' Show Y Scale ',
                      action=self.onYAxis,
                      default=False)
        self.wids['show_yaxis'] = yaxis
        ysizer.Add(ytitle, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0)
        ysizer.Add(ylog, 0, wx.EXPAND | wx.ALL, 0)
        ysizer.Add(yspace, 0, wx.EXPAND | wx.ALL, 0)
        ysizer.Add(yaxis, 0, wx.EXPAND | wx.ALL, 0)
        pack(yscalepanel, ysizer)

        # zoom buttons
        zoompanel = wx.Panel(ctrlpanel, name='ZoomPanel')
        zsizer = wx.BoxSizer(wx.HORIZONTAL)
        z1 = Button(zoompanel, 'Zoom In', size=(80, 30), action=self.onZoomIn)
        z2 = Button(zoompanel,
                    'Zoom Out',
                    size=(80, 30),
                    action=self.onZoomOut)
        p1 = Button(zoompanel, 'Pan Lo', size=(75, 30), action=self.onPanLo)
        p2 = Button(zoompanel, 'Pan Hi', size=(75, 30), action=self.onPanHi)

        zsizer.Add(p1, 0, wx.EXPAND | wx.ALL, 0)
        zsizer.Add(p2, 0, wx.EXPAND | wx.ALL, 0)
        zsizer.Add(z1, 0, wx.EXPAND | wx.ALL, 0)
        zsizer.Add(z2, 0, wx.EXPAND | wx.ALL, 0)
        pack(zoompanel, zsizer)

        #
        self.wids['xray_lines'] = None
        if HAS_DV:
            dvstyle = dv.DV_SINGLE | dv.DV_VERT_RULES | dv.DV_ROW_LINES
            xlines = dv.DataViewListCtrl(ctrlpanel, style=dvstyle)
            self.wids['xray_lines'] = xlines
            xlines.AppendTextColumn('Line  ', width=55)
            xlines.AppendTextColumn('Energy(keV)  ', width=110)
            xlines.AppendTextColumn('Strength  ', width=85)
            xlines.AppendTextColumn('Levels  ', width=75)
            for col in (0, 1, 2, 3):
                this = xlines.Columns[col]
                this.Sortable = True
                align = RIGHT
                if col in (0, 3): align = wx.ALIGN_LEFT
                this.Alignment = this.Renderer.Alignment = align

            xlines.SetMinSize((300, 240))
            xlines.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED,
                        self.onSelectXrayLine)
        # main layout
        # may have to adjust comparison....
        store = xlines.GetStore()

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(roipanel, 0, labstyle)
        sizer.Add(lin(ctrlpanel, 195), 0, labstyle)
        sizer.Add(yscalepanel, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL)
        sizer.Add(zoompanel, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL)
        sizer.Add(lin(ctrlpanel, 195), 0, labstyle)
        sizer.Add(ptable, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL, 4)
        sizer.Add(arrowpanel, 0, labstyle)
        sizer.Add(lin(ctrlpanel, 195), 0, labstyle)

        if self.wids['xray_lines'] is not None:
            sizer.Add(xlines, 0,
                      wx.ALIGN_CENTER | wx.GROW | wx.ALL | wx.EXPAND)

        pack(ctrlpanel, sizer)
        return ctrlpanel
    def __init__(self, parent, gui_size, cfg):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)

        # variable initilization
        self.config = cfg
        self.bodyparts = []
        # design the panel
        self.sizer = wx.GridBagSizer(5, 5)

        text = wx.StaticText(self,
                             label="DeepLabCut - Step 6. Evaluate Network")
        self.sizer.Add(text,
                       pos=(0, 0),
                       flag=wx.TOP | wx.LEFT | wx.BOTTOM,
                       border=15)
        # Add logo of DLC
        icon = wx.StaticBitmap(self, bitmap=wx.Bitmap(LOGO_PATH))
        self.sizer.Add(icon,
                       pos=(0, 4),
                       flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT,
                       border=5)

        line1 = wx.StaticLine(self)
        self.sizer.Add(line1,
                       pos=(1, 0),
                       span=(1, 5),
                       flag=wx.EXPAND | wx.BOTTOM,
                       border=10)

        self.cfg_text = wx.StaticText(self, label="Select the config file")
        self.sizer.Add(self.cfg_text,
                       pos=(2, 0),
                       flag=wx.TOP | wx.LEFT,
                       border=5)

        if sys.platform == "darwin":
            self.sel_config = wx.FilePickerCtrl(
                self,
                path="",
                style=wx.FLP_USE_TEXTCTRL,
                message="Choose the config.yaml file",
                wildcard="*.yaml",
            )
        else:
            self.sel_config = wx.FilePickerCtrl(
                self,
                path="",
                style=wx.FLP_USE_TEXTCTRL,
                message="Choose the config.yaml file",
                wildcard="config.yaml",
            )
        # self.sel_config = wx.FilePickerCtrl(self, path="",style=wx.FLP_USE_TEXTCTRL,message="Choose the config.yaml file", wildcard="config.yaml")
        self.sizer.Add(self.sel_config,
                       pos=(2, 1),
                       span=(1, 3),
                       flag=wx.TOP | wx.EXPAND,
                       border=5)
        self.sel_config.SetPath(self.config)
        self.sel_config.Bind(wx.EVT_FILEPICKER_CHANGED, self.select_config)

        sb = wx.StaticBox(self, label="Attributes")
        boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)

        self.hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        self.hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        self.hbox3 = wx.BoxSizer(wx.HORIZONTAL)

        config_file = auxiliaryfunctions.read_config(self.config)

        shuffles_text = wx.StaticBox(self, label="Specify the shuffle")
        shuffles_text_boxsizer = wx.StaticBoxSizer(shuffles_text, wx.VERTICAL)
        self.shuffles = wx.SpinCtrl(self, value="1", min=0, max=100)
        shuffles_text_boxsizer.Add(self.shuffles, 1,
                                   wx.EXPAND | wx.TOP | wx.BOTTOM, 10)

        #trainingset = wx.StaticBox(self, label="Specify the trainingset index")
        #trainingset_boxsizer = wx.StaticBoxSizer(trainingset, wx.VERTICAL)
        #self.trainingset = wx.SpinCtrl(self, value="0", min=0, max=100)
        #trainingset_boxsizer.Add(
        #    self.trainingset, 1, wx.EXPAND | wx.TOP | wx.BOTTOM, 10
        #)

        self.plot_choice = wx.RadioBox(
            self,
            label="Want to plot predictions (as in standard DLC projects)?",
            choices=["Yes", "No"],
            majorDimension=1,
            style=wx.RA_SPECIFY_COLS,
        )
        self.plot_choice.SetSelection(0)

        self.plot_scoremaps = wx.RadioBox(
            self,
            label="Want to plot maps (ALL images): scoremaps, PAFs, locrefs?",
            choices=["Yes", "No"],
            majorDimension=1,
            style=wx.RA_SPECIFY_COLS,
        )
        self.plot_scoremaps.SetSelection(1)

        self.bodypart_choice = wx.RadioBox(
            self,
            label="Compare all bodyparts?",
            choices=["Yes", "No"],
            majorDimension=1,
            style=wx.RA_SPECIFY_COLS,
        )
        self.bodypart_choice.Bind(wx.EVT_RADIOBOX, self.chooseOption)

        if config_file.get("multianimalproject", False):
            bodyparts = config_file["multianimalbodyparts"]
        else:
            bodyparts = config_file["bodyparts"]
        self.bodyparts_to_compare = wx.CheckListBox(
            self, choices=bodyparts, style=0, name="Select the bodyparts")
        self.bodyparts_to_compare.Bind(wx.EVT_CHECKLISTBOX, self.getbp)
        self.bodyparts_to_compare.Hide()

        self.hbox1.Add(shuffles_text_boxsizer, 5,
                       wx.EXPAND | wx.TOP | wx.BOTTOM, 5)
        #self.hbox1.Add(trainingset_boxsizer, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)
        self.hbox1.Add(self.plot_scoremaps, 5, wx.EXPAND | wx.TOP | wx.BOTTOM,
                       5)

        self.hbox2.Add(self.plot_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)
        self.hbox2.Add(self.bodypart_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM,
                       5)
        self.hbox2.Add(self.bodyparts_to_compare, 10,
                       wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        boxsizer.Add(self.hbox1, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)
        boxsizer.Add(self.hbox2, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)

        self.sizer.Add(
            boxsizer,
            pos=(3, 0),
            span=(1, 5),
            flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
            border=10,
        )

        self.help_button = wx.Button(self, label="Help")
        self.sizer.Add(self.help_button, pos=(4, 0), flag=wx.LEFT, border=10)
        self.help_button.Bind(wx.EVT_BUTTON, self.help_function)

        self.ok = wx.Button(self, label="RUN: Evaluate Network")
        self.sizer.Add(self.ok, pos=(4, 3))
        self.ok.Bind(wx.EVT_BUTTON, self.evaluate_network)

        self.ok = wx.Button(self, label="Optional: Plot 3 test maps")
        self.sizer.Add(self.ok, pos=(5, 3))
        self.ok.Bind(wx.EVT_BUTTON, self.plot_maps)

        self.cancel = wx.Button(self, label="Reset")
        self.sizer.Add(self.cancel,
                       pos=(4, 1),
                       span=(1, 1),
                       flag=wx.BOTTOM | wx.RIGHT,
                       border=10)
        self.cancel.Bind(wx.EVT_BUTTON, self.cancel_evaluate_network)

        if config_file.get("multianimalproject", False):
            self.inf_cfg_text = wx.Button(
                self, label="Edit the inference_config.yaml")
            self.inf_cfg_text.Bind(wx.EVT_BUTTON, self.edit_inf_config)
            self.sizer.Add(
                self.inf_cfg_text,
                pos=(4, 2),
                span=(1, 1),
                flag=wx.BOTTOM | wx.RIGHT,
                border=10,
            )

        self.sizer.AddGrowableCol(2)

        self.SetSizer(self.sizer)
        self.sizer.Fit(self)
Esempio n. 18
0
 def __init__(self, parent, col_values, misc_values):
     wx.Dialog.__init__(self, parent, -1, 'Data loader settings')
     
     box_sizer = wx.BoxSizer(wx.HORIZONTAL)
     
     # Make the box for putting in the columns
     col_box = wx.StaticBox(self, -1, "Columns" )
     col_box_sizer = wx.StaticBoxSizer(col_box, wx.VERTICAL )
     
     
     #col_values = {'y': 1,'x': 0,'y error': 1}
     col_grid = wx.GridBagSizer(len(col_values), 2)
     self.col_controls = col_values.copy()
     keys = list(col_values.keys())
     keys.sort()
     for i, name in enumerate(keys):
         text = wx.StaticText(self, -1, name+': ')
         control = wx.SpinCtrl(self)
         control.SetRange(0,100)
         control.SetValue(col_values[name])
         col_grid.Add(text, (i,0),\
                 flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\
                 border = 5)
         col_grid.Add(control, (i,1),\
                 flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\
                 border = 5)
         self.col_controls[name] = control
     
     col_box_sizer.Add(col_grid, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     box_sizer.Add(col_box_sizer, 0, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5)
     
     col_box = wx.StaticBox(self, -1, "Misc" )
     col_box_sizer = wx.StaticBoxSizer(col_box, wx.VERTICAL )
     
     # Lets add another box for comments and rows to skip
     #misc_values = {'Comment': '#', 'Skip rows': 0,'Delimiter': 'None'}
     col_grid = wx.GridBagSizer(len(misc_values), 2)
     self.misc_controls = misc_values.copy()
     keys = list(misc_values.keys())
     keys.sort()
     for i, name in enumerate(keys):
         text = wx.StaticText(self, -1, name+': ')
         if type(misc_values[name]) == type(1):
             control = wx.SpinCtrl(self)
             control.SetRange(0,100)
             control.SetValue(misc_values[name])
         else:
             control = wx.TextCtrl(self, value = misc_values[name],\
                     style = wx.EXPAND)
         col_grid.Add(text, (i,0),\
                 flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\
                 border = 5)
         col_grid.Add(control, (i,1),\
                 flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\
                 border = 5)
         self.misc_controls[name] = control
     
     col_box_sizer.Add(col_grid, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
     box_sizer.Add(col_box_sizer, 0, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5)
     
     button_sizer = wx.StdDialogButtonSizer()
     okay_button = wx.Button(self, wx.ID_OK)
     okay_button.SetDefault()
     button_sizer.AddButton(okay_button)
     button_sizer.AddButton(wx.Button(self, wx.ID_CANCEL))
     button_sizer.Realize()
     
     sizer = wx.BoxSizer(wx.VERTICAL)
     sizer.Add(box_sizer, 1, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 20)
     line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
     sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 30)
     
     sizer.Add(button_sizer,0,\
             flag = wx.ALIGN_RIGHT, border = 20)
     self.SetSizer(sizer)
     
     sizer.Fit(self)
     self.Layout()
Esempio n. 19
0
    def buildTestInfo(self, panel):
        test_info = wx.StaticBox(panel, label="测试信息:")
        test_info_sizer = wx.StaticBoxSizer(test_info, wx.VERTICAL)

        # 在 test_info的布局中插入横向间隔为 5 的 GridBagSizer 布局
        grid_bag_sizer = wx.GridBagSizer(5, 0)

        # 在 GridBagSizer 中逐行增加内容,每行的内容放在一个横向的 BoxSizer 中
        line1 = wx.BoxSizer(wx.HORIZONTAL)
        test_app_name = wx.StaticText(panel, label="测试APP: ")
        test_app_input = wx.TextCtrl(panel)
        version_name = wx.StaticText(panel, label="版本: ")
        version_input = wx.TextCtrl(panel)
        line1.Add(test_app_name, flag=wx.RIGHT, border=10)
        line1.Add(test_app_input, flag=wx.RIGHT, border=10)
        line1.Add(version_name)
        line1.Add(version_input)
        grid_bag_sizer.Add(line1, pos=(0, 0), span=(1, 3))

        line2 = wx.BoxSizer(wx.HORIZONTAL)
        account_and_pwd = wx.StaticText(panel, label="测试账号及密码: ")
        area = wx.ComboBox(panel, value='中国', choices=["中国", "美国", "欧洲", "印度"])
        grid_bag_sizer.Add(area, pos=(1, 3), span=(1, 1))
        # 添加事件处理
        self.Bind(wx.EVT_COMBOBOX, self.on_combobox, area)
        account_and_pwd_input = wx.TextCtrl(panel, size=(200, 20))
        line2.Add(account_and_pwd, flag=wx.Top, border=3)
        line2.Add(area, flag=wx.LEFT, border=10)
        line2.Add(account_and_pwd_input, flag=wx.LEFT, border=10)
        grid_bag_sizer.Add(line2, pos=(1, 0), span=(1, 3))

        line3 = wx.BoxSizer(wx.HORIZONTAL)
        test_mobile = wx.StaticText(panel, label="测试手机型号及版本: ")
        test_mobile_input1 = wx.TextCtrl(panel, size=(150, 20))
        test_mobile_input2 = wx.TextCtrl(panel, size=(150, 20))
        line3.Add(test_mobile, flag=wx.RIGHT, border=10)
        line3.Add(test_mobile_input1, flag=wx.RIGHT, border=10)
        line3.Add(test_mobile_input2)
        grid_bag_sizer.Add(line3, pos=(2, 0), span=(1, 3))

        line4 = wx.BoxSizer(wx.HORIZONTAL)
        device_name = wx.StaticText(panel, label="设备名称: ")
        device_name_input = wx.TextCtrl(panel)
        device_id = wx.StaticText(panel, label="设备ID: ")
        device_id_input = wx.TextCtrl(panel)
        line4.Add(device_name, flag=wx.RIGHT, border=10)
        line4.Add(device_name_input, flag=wx.RIGHT, border=10)
        line4.Add(device_id)
        line4.Add(device_id_input)
        grid_bag_sizer.Add(line4, pos=(3, 0), span=(1, 3))

        line5 = wx.BoxSizer(wx.HORIZONTAL)
        pid_name = wx.StaticText(panel, label="PID: ")
        pid_name_input = wx.TextCtrl(panel)
        uiid_name = wx.StaticText(panel, label="UIID: ")
        uiid_name_input = wx.TextCtrl(panel)
        line5.Add(pid_name, flag=wx.RIGHT, border=10)
        line5.Add(pid_name_input, flag=wx.RIGHT, border=30)
        line5.Add(uiid_name)
        line5.Add(uiid_name_input)
        grid_bag_sizer.Add(line5, pos=(4, 0), span=(1, 3))

        line6 = wx.BoxSizer(wx.HORIZONTAL)
        firmware_key = wx.StaticText(panel, label="固件 Key: ")
        firmware_key_input = wx.TextCtrl(panel)
        firmware_version = wx.StaticText(panel, label="固件版本: ")
        firmware_version_input = wx.TextCtrl(panel)
        line6.Add(firmware_key, flag=wx.RIGHT, border=10)
        line6.Add(firmware_key_input, flag=wx.RIGHT, border=30)
        line6.Add(firmware_version)
        line6.Add(firmware_version_input)
        grid_bag_sizer.Add(line6, pos=(5, 0), span=(1, 3))

        test_info_sizer.Add(grid_bag_sizer, flag=wx.ALL, border=5)
        return test_info_sizer
    def __init__(self, parent):

        wx.Panel.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          pos=wx.DefaultPosition,
                          size=wx.Size(931, 545),
                          style=wx.TAB_TRAVERSAL)

        bSizer9 = wx.BoxSizer(wx.VERTICAL)

        gbSizer5 = wx.GridBagSizer(0, 0)
        gbSizer5.SetFlexibleDirection(wx.BOTH)
        gbSizer5.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticText21 = wx.StaticText(self, wx.ID_ANY,
                                            u"Date of invoice: *",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText21.Wrap(-1)
        gbSizer5.Add(self.m_staticText21, wx.GBPosition(0, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_textbill_date = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        gbSizer5.Add(self.m_textbill_date, wx.GBPosition(0, 1),
                     wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5)

        self.m_staticText32 = wx.StaticText(self, wx.ID_ANY, u"Symbol/Order:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            wx.ALIGN_RIGHT)
        self.m_staticText32.Wrap(-1)
        gbSizer5.Add(self.m_staticText32, wx.GBPosition(0, 5), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_textSTT = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                     wx.DefaultPosition, wx.Size(30, -1), 0)
        gbSizer5.Add(self.m_textSTT, wx.GBPosition(0, 7), wx.GBSpan(1, 1),
                     wx.ALL, 5)
        self.m_textSTT.SetFont(wx.Font(9, 74, 90, 92, False, "Arial"))

        self.m_textsymbol = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                        wx.DefaultPosition, wx.Size(60, -1), 0)
        gbSizer5.Add(self.m_textsymbol, wx.GBPosition(0, 6), wx.GBSpan(1, 1),
                     wx.ALL | wx.EXPAND, 5)
        self.m_textsymbol.SetFont(wx.Font(9, 74, 90, 92, False, "Arial"))

        self.m_staticText22 = wx.StaticText(self, wx.ID_ANY,
                                            u"Customer name:* ",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText22.Wrap(-1)
        gbSizer5.Add(self.m_staticText22, wx.GBPosition(1, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText23 = wx.StaticText(self, wx.ID_ANY, u"Address:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText23.Wrap(-1)
        gbSizer5.Add(self.m_staticText23, wx.GBPosition(2, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_textaddress = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                         wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer5.Add(self.m_textaddress, wx.GBPosition(2, 1), wx.GBSpan(1, 5),
                     wx.ALL | wx.EXPAND, 5)

        self.m_staticText24 = wx.StaticText(self, wx.ID_ANY, u"Contact phone:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText24.Wrap(-1)
        gbSizer5.Add(self.m_staticText24, wx.GBPosition(1, 2), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_textphone_number = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        gbSizer5.Add(self.m_textphone_number, wx.GBPosition(1, 3),
                     wx.GBSpan(1, 1), wx.ALL, 5)

        self.m_staticText25 = wx.StaticText(self, wx.ID_ANY,
                                            u"Payment method:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText25.Wrap(-1)
        gbSizer5.Add(self.m_staticText25, wx.GBPosition(3, 2), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_textHTTT = wx.TextCtrl(self, wx.ID_ANY, u"Cash",
                                      wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer5.Add(self.m_textHTTT, wx.GBPosition(3, 3), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText26 = wx.StaticText(self, wx.ID_ANY, u"Staff name:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText26.Wrap(-1)
        gbSizer5.Add(self.m_staticText26, wx.GBPosition(3, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        m_choicestaff_nameChoices = []
        self.m_choicestaff_name = wx.Choice(self, wx.ID_ANY,
                                            wx.DefaultPosition, wx.DefaultSize,
                                            m_choicestaff_nameChoices, 0)
        self.m_choicestaff_name.SetSelection(0)
        gbSizer5.Add(self.m_choicestaff_name, wx.GBPosition(3, 1),
                     wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5)

        self.m_staticText27 = wx.StaticText(self, wx.ID_ANY, u"Status:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText27.Wrap(-1)
        gbSizer5.Add(self.m_staticText27, wx.GBPosition(3, 4), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        m_choicestatusChoices = []
        self.m_choicestatus = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition,
                                        wx.DefaultSize, m_choicestatusChoices,
                                        0)
        self.m_choicestatus.SetSelection(0)
        gbSizer5.Add(self.m_choicestatus, wx.GBPosition(3, 5), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText28 = wx.StaticText(self, wx.ID_ANY, u"Note:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText28.Wrap(-1)
        gbSizer5.Add(self.m_staticText28, wx.GBPosition(4, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_textnote = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                      wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer5.Add(self.m_textnote, wx.GBPosition(4, 1), wx.GBSpan(1, 5),
                     wx.ALL | wx.EXPAND, 5)

        m_choiceHangChoices = []
        self.m_choiceHang = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition,
                                      wx.DefaultSize, m_choiceHangChoices, 0)
        self.m_choiceHang.SetSelection(0)
        gbSizer5.Add(self.m_choiceHang, wx.GBPosition(5, 1), wx.GBSpan(1, 1),
                     wx.ALL | wx.EXPAND, 5)

        self.m_btnXoadong = wx.Button(self, wx.ID_ANY, u"Delete line",
                                      wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer5.Add(self.m_btnXoadong, wx.GBPosition(5, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText35 = wx.StaticText(self, wx.ID_ANY,
                                            u"Select product:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText35.Wrap(-1)
        gbSizer5.Add(self.m_staticText35, wx.GBPosition(5, 0), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        m_cbocustomer_nameChoices = []
        self.m_cbocustomer_name = wx.ComboBox(self, wx.ID_ANY, wx.EmptyString,
                                              wx.DefaultPosition,
                                              wx.Size(150, -1),
                                              m_cbocustomer_nameChoices, 0)
        gbSizer5.Add(self.m_cbocustomer_name, wx.GBPosition(1, 1),
                     wx.GBSpan(1, 1), wx.ALL, 5)

        bSizer9.Add(gbSizer5, 1, wx.EXPAND, 5)

        bSizer11 = wx.BoxSizer(wx.VERTICAL)

        self.m_gridSource = wx.grid.Grid(self, wx.ID_ANY, wx.DefaultPosition,
                                         wx.Size(-1, 250), 0)

        # Grid
        self.m_gridSource.CreateGrid(0, 10)
        self.m_gridSource.EnableEditing(True)
        self.m_gridSource.EnableGridLines(True)
        self.m_gridSource.EnableDragGridSize(False)
        self.m_gridSource.SetMargins(0, 0)

        # Columns
        self.m_gridSource.SetColSize(0, 80)
        self.m_gridSource.SetColSize(1, 200)
        self.m_gridSource.SetColSize(2, 80)
        self.m_gridSource.SetColSize(3, 80)
        self.m_gridSource.SetColSize(4, 80)
        self.m_gridSource.SetColSize(5, 80)
        self.m_gridSource.SetColSize(6, 80)
        self.m_gridSource.SetColSize(7, 80)
        self.m_gridSource.SetColSize(8, 80)
        self.m_gridSource.SetColSize(9, 200)
        self.m_gridSource.EnableDragColMove(False)
        self.m_gridSource.EnableDragColSize(True)
        self.m_gridSource.SetColLabelSize(30)
        self.m_gridSource.SetColLabelAlignment(wx.ALIGN_CENTRE,
                                               wx.ALIGN_CENTRE)

        # Rows
        self.m_gridSource.EnableDragRowSize(True)
        self.m_gridSource.SetRowLabelSize(40)
        self.m_gridSource.SetRowLabelAlignment(wx.ALIGN_CENTRE,
                                               wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.m_gridSource.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        bSizer11.Add(self.m_gridSource, 0, wx.ALL | wx.EXPAND, 5)

        bSizer9.Add(bSizer11, 1, wx.EXPAND, 5)

        gbSizer6 = wx.GridBagSizer(0, 0)
        gbSizer6.SetFlexibleDirection(wx.BOTH)
        gbSizer6.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticText29 = wx.StaticText(self, wx.ID_ANY, u"Sub total:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText29.Wrap(-1)
        gbSizer6.Add(self.m_staticText29, wx.GBPosition(0, 4), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_staticText33 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString,
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText33.Wrap(-1)
        gbSizer6.Add(self.m_staticText33, wx.GBPosition(0, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_textproduct_total_price = wx.TextCtrl(self, wx.ID_ANY,
                                                     wx.EmptyString,
                                                     wx.DefaultPosition,
                                                     wx.DefaultSize, 0)
        gbSizer6.Add(self.m_textproduct_total_price, wx.GBPosition(0, 5),
                     wx.GBSpan(1, 1), wx.ALL, 5)
        self.m_textproduct_total_price.SetFont(
            wx.Font(9, 74, 90, 92, False, "Arial"))

        self.m_staticText30 = wx.StaticText(self, wx.ID_ANY, u"Tax/Fee:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText30.Wrap(-1)
        gbSizer6.Add(self.m_staticText30, wx.GBPosition(0, 6), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_texttax_amount = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        gbSizer6.Add(self.m_texttax_amount, wx.GBPosition(0, 7),
                     wx.GBSpan(1, 1), wx.ALL, 5)
        self.m_texttax_amount.SetFont(wx.Font(9, 74, 90, 92, False, "Arial"))

        self.m_staticText31 = wx.StaticText(self, wx.ID_ANY, u"Total:",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText31.Wrap(-1)
        gbSizer6.Add(self.m_staticText31, wx.GBPosition(0, 8), wx.GBSpan(1, 1),
                     wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

        self.m_texttotal = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                       wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer6.Add(self.m_texttotal, wx.GBPosition(0, 9), wx.GBSpan(1, 1),
                     wx.ALL, 5)
        self.m_texttotal.SetFont(wx.Font(9, 74, 90, 92, False, "Arial"))

        bSizer9.Add(gbSizer6, 1, wx.EXPAND, 5)

        gbSizer7 = wx.GridBagSizer(0, 0)
        gbSizer7.SetFlexibleDirection(wx.BOTH)
        gbSizer7.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticline1 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(915, -1), wx.LI_HORIZONTAL)
        gbSizer7.Add(self.m_staticline1, wx.GBPosition(0, 0), wx.GBSpan(1, 7),
                     wx.ALL, 5)

        self.m_btnDong = wx.Button(self, wx.ID_ANY, u"Close",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer7.Add(self.m_btnDong, wx.GBPosition(1, 4), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_staticText36 = wx.StaticText(
            self, wx.ID_ANY, u"                                           ",
            wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText36.Wrap(-1)
        gbSizer7.Add(self.m_staticText36, wx.GBPosition(1, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_btnIn = wx.Button(self, wx.ID_ANY, u"In", wx.DefaultPosition,
                                 wx.DefaultSize, 0)
        gbSizer7.Add(self.m_btnIn, wx.GBPosition(1, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.m_btnThem = wx.Button(self, wx.ID_ANY, u"Add record",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer7.Add(self.m_btnThem, wx.GBPosition(1, 3), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        bSizer9.Add(gbSizer7, 1, wx.EXPAND, 5)

        self.SetSizer(bSizer9)
        self.Layout()

        # Connect Events
        self.m_btnDong.Bind(wx.EVT_BUTTON, self.m_btnDongOnButtonClick)
        self.m_btnIn.Bind(wx.EVT_BUTTON, self.m_btnInOnButtonClick)
        self.m_btnThem.Bind(wx.EVT_BUTTON, self.m_btnThemOnButtonClick)
        self.m_choiceHang.Bind(wx.EVT_CHOICE, self.m_choiceHangOnChoice)
        self.m_btnXoadong.Bind(wx.EVT_BUTTON, self.m_btnXoadongOnButtonClick)
Esempio n. 21
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        ## Creating Menubar
        menubar = wx.MenuBar()
        filemenu = wx.Menu()
        file1 = filemenu.Append(wx.ID_NEW, 'New', 'New File')
        file2 = filemenu.Append(wx.ID_OPEN, 'Open', 'Open File')
        edit_submenu = wx.Menu()
        edit_submenu.Append(wx.ID_ANY, 'Select')
        edit_submenu.Append(wx.ID_ANY, 'Copy')
        edit_submenu.Append(wx.ID_ANY, 'Paste')
        filemenu.Append(wx.ID_EDIT, '&Edit', edit_submenu)
        file4 = filemenu.Append(wx.ID_SAVE, 'Save', 'Save File')
        file5 = filemenu.Append(wx.ID_SAVEAS, 'Save As', 'Save As File')
        file6 = filemenu.Append(wx.ID_CLOSE, 'Close', 'Close File')
        menubar.Append(filemenu, '&File')
        network_menu = wx.Menu()
        net1 = network_menu.Append(wx.ID_NETWORK, 'net1', 'Network1')
        net2 = network_menu.Append(wx.ID_PREVIEW, 'net2', 'Network2')
        net3 = network_menu.Append(wx.ID_SELECT_COLOR, 'net3', 'Network3')
        menubar.Append(network_menu, '&Network')
        netisch_menu = wx.Menu()
        netisch1 = netisch_menu.Append(wx.ID_VIEW_DETAILS, 'view',
                                       'View NeTisch')
        netisch2 = netisch_menu.Append(wx.ID_VIEW_LIST, 'netisch2',
                                       'List NeTisch')
        menubar.Append(netisch_menu, '&NeTisch')
        help_menu = wx.Menu()
        aboutmenu = help_menu.Append(wx.ID_ABOUT, 'About NeTisch',
                                     'About NeTisch')
        menubar.Append(help_menu, '&Help')
        self.SetMenuBar(menubar)
        self.SetSize(900, 900)
        self.Centre()

        ## Creating Iconbar
        toolbar1 = self.CreateToolBar()
        toolbar1.AddTool(wx.ID_OPEN, 'Open/Load', wx.Bitmap('open.png'))
        toolbar1.AddTool(wx.ID_PREVIEW, 'Run', wx.Bitmap('play.png'))
        toolbar1.AddTool(wx.ID_VIEW_DETAILS, 'ViewCQ', wx.Bitmap('viewcq.png'))
        toolbar1.AddTool(wx.ID_VIEW_LARGEICONS, 'ViewOpt-top',
                         wx.Bitmap('viewopttop.png'))
        toolbar1.AddTool(wx.ID_VIEW_SMALLICONS, 'VisSchedule',
                         wx.Bitmap('visschedule.png'))
        toolbar1.EnableTool(wx.ID_REDO, False)
        toolbar1.AddSeparator()
        toolbar1.Realize()

        self.splitter_window = wx.SplitterWindow(self,
                                                 id=wx.ID_ANY,
                                                 style=wx.SP_3D)
        self.nav_canvas = FloatCanvas.FloatCanvas(self.splitter_window,
                                                  size=(600, 900),
                                                  BackgroundColor="IVORY")
        self.nav_canvas.InitAll()
        self.properties_panel = wx.Panel(self.splitter_window, id=wx.ID_ANY)
        self.splitter_window.SplitVertically(self.nav_canvas,
                                             self.properties_panel)
        self.nav_canvas.Bind(FloatCanvas.EVT_LEFT_DOWN, self.OnLeftDown)

        # Creating StatusBar
        self.CreateStatusBar()
        self.SetStatusText("NeTisch - Graphical User Interface")
        self.nav_canvas.Draw()

        # Creating Panel-Network Design attributes
        sizer = wx.GridBagSizer()

        text1 = wx.StaticText(self.properties_panel,
                              -1,
                              label="Network Design ::")
        sizer.Add(text1, pos=(0, 0), flag=wx.LEFT | wx.TOP, border=10)

        line = wx.StaticLine(self.properties_panel)
        sizer.Add(line,
                  pos=(1, 0),
                  span=(1, 12),
                  flag=wx.EXPAND | wx.BOTTOM,
                  border=10)

        text2 = wx.StaticText(self.properties_panel, -1, "Load:")
        sizer.Add(text2, pos=(2, 0), flag=wx.LEFT | wx.TOP, border=10)

        button1 = wx.Button(self.properties_panel, label="Browse...")
        sizer.Add(button1, pos=(2, 1), flag=wx.TOP | wx.LEFT, border=5)
        self.Bind(wx.EVT_BUTTON, self.OnClickBrowse, button1)

        line1 = wx.StaticLine(self.properties_panel)
        sizer.Add(line1,
                  pos=(4, 0),
                  span=(1, 12),
                  flag=wx.EXPAND | wx.BOTTOM,
                  border=10)

        staticbox = wx.StaticBox(self.properties_panel, label="Gen C.Q:")
        staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL)
        combo1 = wx.ComboBox(self.properties_panel,
                             -1,
                             "Select: ",
                             pos=(7, 0),
                             size=(150, 30),
                             choices=drop1,
                             style=wx.CB_DROPDOWN)
        staticboxsizer.Add(combo1, 0, wx.ALL | wx.LEFT, 10)
        sizer.Add(staticboxsizer,
                  pos=(6, 0),
                  span=(1, 12),
                  flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                  border=10)
        self.Bind(wx.EVT_COMBOBOX, self.OnGenCQ, combo1)

        sbox = wx.StaticBox(self.properties_panel, label="Optimize:")
        sboxsizer = wx.StaticBoxSizer(sbox, wx.VERTICAL)
        combo2 = wx.ComboBox(self.properties_panel,
                             -1,
                             "Select: ",
                             pos=(11, 0),
                             size=(150, 30),
                             choices=drop2,
                             style=wx.CB_DROPDOWN)
        sboxsizer.Add(combo2, 0, wx.ALL | wx.LEFT, 10)
        sizer.Add(sboxsizer,
                  pos=(10, 0),
                  span=(1, 12),
                  flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                  border=10)
        self.Bind(wx.EVT_COMBOBOX, self.OnOptimize, combo2)

        sb = wx.StaticBox(self.properties_panel, label="Schedule:")
        sbsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)
        combo4 = wx.ComboBox(self.properties_panel,
                             -1,
                             "Select: ",
                             pos=(15, 0),
                             size=(150, 30),
                             choices=drop3,
                             style=wx.CB_DROPDOWN)
        sbsizer.Add(combo4, 0, wx.ALL | wx.LEFT, 10)
        sizer.Add(sbsizer,
                  pos=(14, 0),
                  span=(1, 12),
                  flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                  border=10)
        self.Bind(wx.EVT_COMBOBOX, self.OnSchedule, combo4)

        self.properties_panel.SetSizerAndFit(sizer)
        self.Show(True)
Esempio n. 22
0
    def __init__(self, parent):
        super(ButtonsPanel, self).__init__(parent)# , style=wx.SIMPLE_BORDER | wx.ALIGN_CENTER)
        print "init buttonsPanel"

        self.SetBackgroundColour('white')
        buttonGBS = wx.GridBagSizer(5, 5)

        # Start Button
        # startButton = wx.Button(self, id=-1, label="Start")

        # Ensure the services have fully started up
        # rospy.wait_for_service('get_flights')

        # # Get flight script names
        # get_flights_srv = rospy.ServiceProxy('get_flights', GetFlights)
        # flight_names = get_flight_srv(empty=[])

        ###########################################################################################################################

        # Wait for service startup
        rospy.wait_for_service('/redbird/flight_director/get_flights')
        rospy.wait_for_service('/redbird/flight_director/start_flight')

        # Setup services
        self._get_flights_serv = rospy.ServiceProxy('/redbird/flight_director/get_flights', GetFlights)
        self._start_flights_serv = rospy.ServiceProxy('/redbird/flight_director/start_flight', StartFlight)

        ###########################################################################################################################

        self.flight_names = self._get_flights_serv(Empty()).flights

        # print "flight names == " + flight_names
        self.startDropDown = wx.Choice(self, choices=self.flight_names, name="Available flights")
        self.startDropDown.SetSelection(0)

        # buttonGBS.Add(startButton, pos=(0, 0), flag=wx.ALL, border=1)
        buttonGBS.Add(self.startDropDown, pos=(0, 0), span=(1, 5), flag=wx.ALL, border=1)
        self.startDropDown.Bind(wx.EVT_CHOICE, self.chooseFlightScript)
        # startButton.Bind(wx.EVT_BUTTON, self.startClicked)

        # Start Button
        startButton = wx.Button(self, id=-1, label="Start")
        buttonGBS.Add(startButton, pos=(1, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1)
        startButton.Bind(wx.EVT_BUTTON, self.startClicked)

        # Stop/Land Button
        landButton = wx.Button(self, id=-1, label="Stop/Land")
        """
        buttonGBS.Add(landButton, pos=(2, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1)
        landButton.Bind(wx.EVT_BUTTON, self.landClicked)
        """

        # Kill Button
        button = wx.Button(self, id=-1, label="Kill")
        """
        buttonGBS.Add(button, pos=(3, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1)
        button.Bind(wx.EVT_BUTTON, self.killClicked)
        """

        # Refresh Button
        button = wx.Button(self, id=-1, label="Refresh")
        buttonGBS.Add(button, pos=(2, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1)
        button.Bind(wx.EVT_BUTTON, self.refreshClicked)

        buttonGBS.AddGrowableCol(buttonGBS.GetEffectiveColsCount() - 1)
        buttonGBS.AddGrowableRow(buttonGBS.GetEffectiveRowsCount() - 1)
        self.SetSizerAndFit(buttonGBS)

        self.grabData()
Esempio n. 23
0
    def InitUI(self):
        self.mainSizer = wx.GridBagSizer(5, 5)

        self.metadataTemplatesLbl = wx.StaticText(
            self, label="Metadata Template name")
        self.metadataTemplatesLbl.ToolTip = "List of Metadata Templates available."
        self.metadataTemplateName = wx.TextCtrl(self)
        self.metadataTemplateName.ToolTip = "Name of new Metadata Template."

        self.metadataTypesLbl = wx.StaticText(self, label="Metadata Types")
        self.metadataTypesLbl.ToolTip = "List of Metadata Types."
        self.metadataTypesListBox = wx.ListBox(self, style=wx.LB_MULTIPLE)
        self.metadataTypesListBox.ToolTip = "List of Metadata Types."
        self.metadataTypesListBox.Items = dtkglobal.metadataTypes

        self.btnAddMetadataTemplate = wx.Button(self,
                                                label="Add Metadata Template")
        self.btnAddMetadataTemplate.Bind(wx.EVT_BUTTON,
                                         self.AddMetadataTemplate)

        row = 0
        col = 0
        self.mainSizer.Add(self.metadataTemplatesLbl,
                           pos=(row, col),
                           flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                           border=5)
        row = 0
        col = 1
        self.mainSizer.Add(
            self.metadataTemplateName,
            pos=(row, col),
            span=(0, 10),
            flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT,
            border=5,
        )

        row = 1
        col = 0
        self.mainSizer.Add(self.metadataTypesLbl,
                           pos=(row, col),
                           flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                           border=5)
        row = 1
        col = 1
        self.mainSizer.AddGrowableRow(row)
        self.mainSizer.Add(
            self.metadataTypesListBox,
            pos=(row, col),
            span=(0, 10),
            flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
            border=5,
        )
        row = 2
        col = 1
        self.mainSizer.Add(
            self.btnAddMetadataTemplate,
            pos=(row, col),
            span=(0, 10),
            flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT,
            border=5,
        )

        self.mainSizer.AddGrowableCol(col)

        self.mainSizer.SetEmptyCellSize((0, 0))
        self.Layout()
        self.Fit()
        self.SetSizer(self.mainSizer)
Esempio n. 24
0
    def __init__(self, parent):
        super(VehicleStatePanel, self).__init__(parent)#, style=wx.SIMPLE_BORDER)
        print "init VehicleStatePanel"

        # UNCOMMENT THIS TO GET THE VEHICLE STATE DATA====================================================================
        self.velocitySubscriber = rospy.Subscriber("/mavros/local_position/velocity", TwistStamped, self.updateVelocity)
        self.altitudeAndAttitudeSubscriber = rospy.Subscriber("/mavros/local_position/pose", PoseStamped, self.updateAltitudeAndAttitude)

        self.SetBackgroundColour('white')
        self.SetFont(
            wx.Font(pointSize=14, family=wx.ROMAN, style=wx.NORMAL, weight=wx.FONTWEIGHT_NORMAL, underline=False))
        # Gridbag Sizer to store Flight Info in the Flight Info Panel
        box = wx.GridBagSizer(5, 5)

        # Dividing lines to make the Flight Info Panel prettier
        line = wx.StaticLine(self)
        line1 = wx.StaticLine(self)
        line2 = wx.StaticLine(self)
        line3 = wx.StaticLine(self)
        line4 = wx.StaticLine(self)
        line5 = wx.StaticLine(self)
        line6 = wx.StaticLine(self)
        line7 = wx.StaticLine(self)

        # Example ros values for startup
        velocity_ros = 23.1234
        velocityX_ros = 23.1234
        velocityY_ros = 23.1234
        velocityZ_ros = 23.1234
        altitude_ros = 23.1234
        yaw_ros = 23.1234
        pitch_ros = 23.1234
        roll_ros = 23.1234

        # Velocity
        self.velocityLabel = wx.StaticText(self, label="Velocity: ")
        self.velocity = str("%07.3f" % velocity_ros) + " m/s"  # Required for when the text changes
        self.liveVelocity = wx.StaticText(self, label=self.velocity)
        box.Add(self.velocityLabel, pos=(0, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5)
        box.Add(self.liveVelocity, pos=(0, 1), flag=wx.TOP, border=5)

        box.Add(line, pos=(1, 0), span=(1, 2), flag=wx.EXPAND)

        # VelocityX
        self.velocityXLabel = wx.StaticText(self, label="Velocity X: ")
        self.velocityX = str("%07.3f" % velocityX_ros) + " m/s"  # Required for when the text changes
        self.liveVelocityX = wx.StaticText(self, label=self.velocityX)
        box.Add(self.velocityXLabel, pos=(2, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5)
        box.Add(self.liveVelocityX, pos=(2, 1), flag=wx.TOP, border=5)

        box.Add(line1, pos=(3, 0), span=(1, 2), flag=wx.EXPAND)

        # VelocityY
        self.velocityYLabel = wx.StaticText(self, label="Velocity Y: ")
        self.velocityY = str("%07.3f" % velocityY_ros) + " m/s"  # Required for when the text changes
        self.liveVelocityY = wx.StaticText(self, label=self.velocityY)
        box.Add(self.velocityYLabel, pos=(4, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5)
        box.Add(self.liveVelocityY, pos=(4, 1), flag=wx.TOP, border=5)

        box.Add(line2, pos=(5, 0), span=(1, 2), flag=wx.EXPAND)

        # VelocityZ
        self.velocityZLabel = wx.StaticText(self, label="Velocity Z: ")
        self.velocityZ = str("%07.3f" % velocityZ_ros) + " m/s"  # Required for when the text changes
        self.liveVelocityZ = wx.StaticText(self, label=self.velocityZ)
        box.Add(self.velocityZLabel, pos=(6, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5)
        box.Add(self.liveVelocityZ, pos=(6, 1), flag=wx.TOP, border=5)

        box.Add(line3, pos=(7, 0), span=(1, 2), flag=wx.EXPAND)

        # Altitude
        self.altitudeLabel = wx.StaticText(self, label="Altitude: ")
        self.altitude = str("%07.3f" % altitude_ros) + " m"
        self.liveAltitude = wx.StaticText(self, label=self.altitude)
        box.Add(self.altitudeLabel, pos=(8, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveAltitude, pos=(8, 1), flag=wx.ALL)

        box.Add(line4, pos=(9, 0), span=(1, 2), flag=wx.EXPAND)

        # Yaw
        self.yawLabel = wx.StaticText(self, label="Yaw: ")
        self.yaw = str("%07.3f" % yaw_ros) + " " + (u'\N{DEGREE SIGN}')
        self.liveYaw = wx.StaticText(self, label=self.yaw)
        box.Add(self.yawLabel, pos=(10, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveYaw, pos=(10, 1), flag=wx.ALL)

        box.Add(line5, pos=(11, 0), span=(1, 2), flag=wx.EXPAND)

        # Pitch
        self.pitchLabel = wx.StaticText(self, label="Pitch: ")
        self.pitch = str("%07.3f" % pitch_ros) + " " + (u'\N{DEGREE SIGN}')
        self.livePitch = wx.StaticText(self, label=self.pitch)
        box.Add(self.pitchLabel, pos=(12, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.livePitch, pos=(12, 1), flag=wx.ALL)

        box.Add(line6, pos=(13, 0), span=(1, 2), flag=wx.EXPAND)

        # Roll
        self.rollLabel = wx.StaticText(self, label="Roll: ")
        self.roll = str("%07.3f" % roll_ros) + " " + (u'\N{DEGREE SIGN}')
        self.liveRoll = wx.StaticText(self, label=self.roll)
        box.Add(self.rollLabel, pos=(14, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveRoll, pos=(14, 1), flag=wx.ALL)

        box.Add(line7, pos=(15, 0), span=(1, 2), flag=wx.EXPAND)

        # Ensures proper sizing
        box.AddGrowableCol(box.GetEffectiveColsCount() - 1)
        box.AddGrowableRow(box.GetEffectiveRowsCount() - 1)
        self.SetSizerAndFit(box)
Esempio n. 25
0
    def __init__(self, parent, id, title):
        # Set config file
        self.cfg = wx.Config(APP_CONFIG)

        # Initialize frame/panel
        wx.Frame.__init__(self,
                          parent,
                          id,
                          title,
                          size=(self.cfg.ReadInt('appWidth',
                                                 APP_DEFAULT_WIDTH),
                                self.cfg.ReadInt('appHeight',
                                                 APP_DEFAULT_HEIGHT)))
        self.SetIcon(wx.Icon(APP_ICON, wx.BITMAP_TYPE_ANY))
        self.panel = wx.Panel(self)

        # Define file menu
        fileMenu = wx.Menu()
        fileExitMenuItem = fileMenu.Append(wx.ID_ANY, 'E&xit',
                                           'Terminate the program')

        # Define options menu
        optionsMenu = wx.Menu()
        self.saveSettingsMenuItem = optionsMenu.Append(
            wx.ID_ANY, 'S&ave Settings on Exit', 'Save Settings on Exit',
            wx.ITEM_CHECK)
        self.saveSettingsMenuItem.Check()

        # Define help menu
        helpMenu = wx.Menu()
        helpAboutMenuItem = helpMenu.Append(wx.ID_ANY, '&About',
                                            'Information about this program')

        # Assign menus to menu bar
        menuBar = wx.MenuBar()
        menuBar.Append(fileMenu, '&File')
        menuBar.Append(optionsMenu, '&Options')
        menuBar.Append(helpMenu, '&Help')
        self.SetMenuBar(menuBar)

        # Initialize thread variables
        self.jobID = 0
        self.abortEvent = delayedresult.AbortEvent()

        # Define controls
        self.mailFromTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('mailFrom', self.getMyEmailAddress()),
            validator=validators.EmailAddressValidator())
        self.mailToTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('mailTo'),
            validator=validators.EmailAddressValidator())
        self.mailToTextCtrl.SetFocus()
        self.mailMsgTextCtrl = wx.TextCtrl(
            self.panel,
            style=wx.TE_MULTILINE,
            value=
            "X-Mailer: %s %s\nFrom: %s\nTo: %s\nSubject: Test message\n\nThis is a test."
            % (__app_name__, __version__,
               self.cfg.Read('mailFrom', self.getMyEmailAddress()),
               self.cfg.Read('mailTo')))
        self.useNsCheckBox = wx.CheckBox(self.panel,
                                         label='Specify DNS server')
        self.useNsCheckBox.SetValue(self.cfg.ReadBool('useNs'))
        self.useNsHostTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('useNsHost'),
            validator=validators.HostAddressValidator())
        self.useNsPortSpinCtrl = wx.SpinCtrl(self.panel,
                                             value=self.cfg.Read(
                                                 'useNsPort',
                                                 str(DNS_DEFAULT_PORT)),
                                             min=1,
                                             max=65535,
                                             size=(50, -1))
        self.nsQueryTimeoutSpinCtrl = wx.SpinCtrl(
            self.panel,
            value=self.cfg.Read('nsQueryTimeout',
                                str(DNS_DEFAULT_QUERY_TIMEOUT)),
            min=1,
            max=65535,
            size=(50, -1))
        self.useNsTcpCheckBox = wx.CheckBox(self.panel, label='Use TCP')
        self.useNsTcpCheckBox.SetValue(self.cfg.ReadBool('useNsTcp'))
        self.useSmtpCheckBox = wx.CheckBox(self.panel,
                                           label='Specify SMTP server')
        self.useSmtpCheckBox.SetValue(self.cfg.ReadBool('useSmtp'))
        self.useSmtpHostTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('useSmtpHost'),
            validator=validators.HostAddressValidator())
        self.useSmtpPortSpinCtrl = wx.SpinCtrl(self.panel,
                                               value=self.cfg.Read(
                                                   'useSmtpPort',
                                                   str(SMTP_DEFAULT_PORT)),
                                               min=1,
                                               max=65535,
                                               size=(50, -1))
        self.smtpConnectTimeoutSpinCtrl = wx.SpinCtrl(
            self.panel,
            value=self.cfg.Read('smtpConnectTimeout',
                                str(SMTP_DEFAULT_CONNECT_TIMEOUT)),
            min=1,
            max=65535,
            size=(50, -1))
        self.useSmtpHeloTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('useSmtpHelo', socket.getfqdn()),
            validator=validators.HostAddressValidator())
        self.useAuthCheckBox = wx.CheckBox(self.panel,
                                           label='Use Authentication')
        self.useAuthCheckBox.SetValue(self.cfg.ReadBool('useAuth'))
        self.useAuthUserTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('useAuthUser'),
            validator=validators.GenericTextValidator(
                flag=validators.VALIDATE_NOT_NULL))
        self.useAuthPassTextCtrl = wx.TextCtrl(
            self.panel,
            value=self.cfg.Read('useAuthPass'),
            style=wx.TE_PASSWORD)
        self.useTlsCheckBox = wx.CheckBox(self.panel,
                                          label='Use TLS encryption')
        self.useTlsCheckBox.SetValue(self.cfg.ReadBool('useTls'))
        self.okButton = wx.Button(self.panel, wx.ID_OK)
        self.cancelButton = wx.Button(self.panel, wx.ID_CANCEL)
        self.resultsTextCtrl = wx.TextCtrl(self.panel,
                                           style=wx.TE_MULTILINE | wx.TE_RICH2
                                           | wx.TE_READONLY)

        # Put all controls into correct state
        if not self.useNsCheckBox.IsChecked():
            self.toggleNsOptions(False)
        if not self.useSmtpCheckBox.IsChecked():
            self.toggleSmtpOptions(False)
        if not self.useAuthCheckBox.IsChecked():
            self.toggleAuthOptions(False)
        self.toggleWorkingMode(False)

        # Outer sizer (entire window)
        mainSizer = wx.GridBagSizer(vgap=5, hgap=5)

        # Message fields
        messageSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel,
                                                      label='Message'),
                                         orient=wx.VERTICAL)
        messageSizer.Add(wx.StaticText(self.panel, label='From:'))
        messageSizer.Add(self.mailFromTextCtrl, flag=wx.ALL | wx.EXPAND)
        messageSizer.Add(wx.StaticText(self.panel, label='To:'))
        messageSizer.Add(self.mailToTextCtrl, flag=wx.ALL | wx.EXPAND)
        messageSizer.Add(wx.StaticText(self.panel, label='Message:'))
        messageSizer.Add(self.mailMsgTextCtrl,
                         proportion=1,
                         flag=wx.ALL | wx.EXPAND)
        mainSizer.Add(messageSizer,
                      pos=(0, 0),
                      span=(4, 1),
                      flag=wx.ALL | wx.EXPAND)

        # DNS Options
        nsSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='DNS'),
                                    orient=wx.VERTICAL)
        innerSizer = wx.GridBagSizer()
        innerSizer.SetEmptyCellSize(
            (0, 0))  # FIXME http://trac.wxwidgets.org/ticket/3105
        innerSizer.Add(self.useNsCheckBox, pos=(3, 0), span=(1, 2))
        innerSizer.Add(wx.StaticText(self.panel, label='Host:'), pos=(4, 0))
        innerSizer.Add(self.useNsHostTextCtrl,
                       pos=(5, 0),
                       flag=wx.ALL | wx.EXPAND)
        innerSizer.Add(wx.StaticText(self.panel, label='Port:'), pos=(4, 1))
        innerSizer.Add(self.useNsPortSpinCtrl, pos=(5, 1))
        innerSizer.Add(wx.StaticText(self.panel, label='Timeout:'), pos=(4, 2))
        innerSizer.Add(self.nsQueryTimeoutSpinCtrl,
                       pos=(5, 2),
                       flag=wx.ALL | wx.EXPAND)
        innerSizer.Add(self.useNsTcpCheckBox, pos=(6, 0), span=(1, 2))
        nsSizer.Add(innerSizer, flag=wx.ALL | wx.EXPAND)
        mainSizer.Add(nsSizer, pos=(0, 1), flag=wx.ALL | wx.EXPAND)

        # SMTP Server Options
        smtpSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='SMTP'),
                                      orient=wx.VERTICAL)
        innerSizer = wx.GridBagSizer()
        innerSizer.SetEmptyCellSize(
            (0, 0))  # FIXME http://trac.wxwidgets.org/ticket/3105
        innerSizer.Add(self.useSmtpCheckBox, pos=(3, 0), span=(1, 2))
        innerSizer.Add(wx.StaticText(self.panel, label='Host:'), pos=(4, 0))
        innerSizer.Add(self.useSmtpHostTextCtrl,
                       pos=(5, 0),
                       flag=wx.ALL | wx.EXPAND)
        innerSizer.Add(wx.StaticText(self.panel, label='Port:'), pos=(4, 1))
        innerSizer.Add(self.useSmtpPortSpinCtrl, pos=(5, 1))

        innerSizer.Add(wx.StaticText(self.panel, label='Timeout:'), pos=(4, 2))
        innerSizer.Add(self.smtpConnectTimeoutSpinCtrl,
                       pos=(5, 2),
                       flag=wx.ALL | wx.EXPAND)

        innerSizer.Add(wx.StaticText(self.panel, label='HELO/EHLO:'),
                       pos=(6, 0))
        innerSizer.Add(self.useSmtpHeloTextCtrl,
                       pos=(7, 0),
                       span=(1, 3),
                       flag=wx.ALL | wx.EXPAND)
        smtpSizer.Add(innerSizer, flag=wx.ALL | wx.EXPAND)
        mainSizer.Add(smtpSizer, pos=(1, 1), flag=wx.ALL | wx.EXPAND)

        # Security Options
        secSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel,
                                                  label='Security'),
                                     orient=wx.VERTICAL)
        secSizer.Add(self.useAuthCheckBox)
        secSizer.Add(wx.StaticText(self.panel, label='Username:'******'Password:'******'Results'),
                                         orient=wx.VERTICAL)
        resultsSizer.Add(self.resultsTextCtrl,
                         proportion=1,
                         flag=wx.ALL | wx.EXPAND)
        mainSizer.Add(resultsSizer,
                      pos=(4, 0),
                      span=(1, 2),
                      flag=wx.ALL | wx.EXPAND)

        # End outer sizer (entire window)
        mainSizer.AddGrowableCol(0)
        mainSizer.AddGrowableRow(4)
        self.panel.SetSizerAndFit(mainSizer)
        self.panel.SetClientSize(mainSizer.GetSize())
        self.Show()

        # Map events
        self.Bind(wx.EVT_MENU, self.onFileExit, fileExitMenuItem)
        self.Bind(wx.EVT_MENU, self.onHelpAbout, helpAboutMenuItem)
        self.Bind(wx.EVT_CLOSE, self.onCloseWindow)
        self.mailFromTextCtrl.Bind(wx.EVT_TEXT, self.onUpdateMailFromTextCtrl)
        self.mailToTextCtrl.Bind(wx.EVT_TEXT, self.onUpdateMailToTextCtrl)
        self.useNsCheckBox.Bind(wx.EVT_CHECKBOX, self.onUseNsCheckBox)
        self.useSmtpCheckBox.Bind(wx.EVT_CHECKBOX, self.onUseSmtpCheckBox)
        self.useAuthCheckBox.Bind(wx.EVT_CHECKBOX, self.onAuthCheckBox)
        self.cancelButton.Bind(wx.EVT_BUTTON, self.onCancel)
        self.okButton.Bind(wx.EVT_BUTTON, self.onOk)
Esempio n. 26
0
    def __init__(self, parent):
        super(FlightStatePanel, self).__init__(parent)#, style=wx.SIMPLE_BORDER)
        print "init FlightStatePanel"

        # UNCOMMENT THIS AND CORRECT THE MAVROS SUBSCRIBER INFO TO GET FLIGHT STATE DATA
        rospy.init_node("rcp", anonymous=True)
        self.flightStateSubscriber = rospy.Subscriber("/redbird/flight_director/flight_state", FlightState, self.updateFlightState)
        self.batterySubscriber = rospy.Subscriber("/mavros/battery", BatteryState, self.updateBattery)

        self.SetBackgroundColour('white')
        self.SetFont(
            wx.Font(pointSize=14, family=wx.ROMAN, style=wx.NORMAL, weight=wx.FONTWEIGHT_NORMAL, underline=False))
        # Gridbag Sizer to store Flight Info in the Flight Info Panel
        box = wx.GridBagSizer(5, 5)

        # Dividing lines to make the Flight Info Panel prettier
        line = wx.StaticLine(self)
        line2 = wx.StaticLine(self)
        line3 = wx.StaticLine(self)
        line4 = wx.StaticLine(self)
        line5 = wx.StaticLine(self)
        line6 = wx.StaticLine(self)

        # GET THE VARIABLES FROM ROS HERE
        currentFlight_ros = "testflight"
        timeElapsed_ros = 23.1234
        previousTime_ros = 23.1234
        batteryState_ros = 23.1234
        batteryVoltage_ros = 23.1234
        batteryCurrent_ros = 23.1234

        # Current Flight
        self.currentFlightLabel = wx.StaticText(self, label="Current Flight: ")
        self.currentFlight = currentFlight_ros + "\t\t\t"  # Required for when the text changes
        self.liveCurrentFlight = wx.StaticText(self, label=self.currentFlight)
        box.Add(self.currentFlightLabel, pos=(0, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5)
        box.Add(self.liveCurrentFlight, pos=(0, 1), flag=wx.TOP, border=5)

        box.Add(line, pos=(1, 0), span=(1, 2), flag=wx.EXPAND)

        # Time Elapsed
        self.timeElapsedLabel = wx.StaticText(self, label="Time Elapsed: ")
        self.timeElapsed = str("%07.3f" % timeElapsed_ros) + " s"
        self.liveTimeElapsed = wx.StaticText(self, label=self.timeElapsed)
        box.Add(self.timeElapsedLabel, pos=(2, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveTimeElapsed, pos=(2, 1), flag=wx.ALL)

        box.Add(line2, pos=(3, 0), span=(1, 2), flag=wx.EXPAND)

        # Previous Time
        self.previousTimeLabel = wx.StaticText(self, label="Previous Time: ")
        self.previousTime = str("%07.3f" % previousTime_ros) + " s"
        self.livePreviousTime = wx.StaticText(self, label=self.previousTime)
        box.Add(self.previousTimeLabel, pos=(4, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.livePreviousTime, pos=(4, 1), flag=wx.ALL)

        box.Add(line3, pos=(5, 0), span=(1, 2), flag=wx.EXPAND)


        # Battery Percent
        self.batteryStateLabel = wx.StaticText(self, label="Battery Percent: ")
        self.batteryState = str("%07.3f" % batteryState_ros) + " %"
        self.liveBatteryState = wx.StaticText(self, label=self.batteryState)
        box.Add(self.batteryStateLabel, pos=(6, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveBatteryState, pos=(6, 1), flag=wx.ALL)

        box.Add(line4, pos=(7, 0), span=(1, 2), flag=wx.EXPAND)

        # Battery Voltage
        self.batteryVoltageLabel = wx.StaticText(self, label="Battery Voltage: ")
        self.batteryVoltage = str("%07.3f" % batteryVoltage_ros) + " %"
        self.liveBatteryVoltage = wx.StaticText(self, label=self.batteryVoltage)
        box.Add(self.batteryVoltageLabel, pos=(8, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveBatteryVoltage, pos=(8, 1), flag=wx.ALL)

        box.Add(line5, pos=(9, 0), span=(1, 2), flag=wx.EXPAND)

        # Battery Current
        self.batteryCurrentLabel = wx.StaticText(self, label="Battery Current: ")
        self.batteryCurrent = str("%07.3f" % batteryCurrent_ros) + " %"
        self.liveBatteryCurrent = wx.StaticText(self, label=self.batteryCurrent)
        box.Add(self.batteryCurrentLabel, pos=(10, 0), span=(1, 1), flag=wx.LEFT, border=5)
        box.Add(self.liveBatteryCurrent, pos=(10, 1), flag=wx.ALL)

        box.Add(line6, pos=(11, 0), span=(1, 2), flag=wx.EXPAND)

        # Ensures proper sizing
        box.AddGrowableCol(box.GetEffectiveColsCount() - 1)
        box.AddGrowableRow(box.GetEffectiveRowsCount() - 1)
        self.SetSizerAndFit(box)
Esempio n. 27
0
    def ShowArg(self, record):

        self.show_panel = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                   wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.AddPage(self.show_panel, u"显示参数信息", True, wx.NullBitmap)
        show_panel = self.show_panel
        # show_panel 的布局,只有 scrollPanel 一个元素
        show_panel.bSizer = wx.BoxSizer(wx.VERTICAL)
        # 为实现滚动条加入 scrollPanel
        show_panel.scrolledWindow = wx.ScrolledWindow(show_panel, wx.ID_ANY,
                                                      wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL)
        show_panel.scrolledWindow.SetScrollRate(5, 5)
        scrollPanel = show_panel.scrolledWindow
        # scrollPanel 的布局,元素为显示的控件
        show_panel.gbSizer = wx.GridBagSizer(5, 5)
        show_panel.gbSizer.SetFlexibleDirection(wx.BOTH)
        show_panel.gbSizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)



        """"""

        show_panel.m_grid4 = grid.Grid(show_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)

        # Grid
        show_panel.m_grid4.CreateGrid(5, 4)
        show_panel.m_grid4.EnableEditing(True)
        show_panel.m_grid4.EnableGridLines(True)
        show_panel.m_grid4.EnableDragGridSize(False)
        show_panel.m_grid4.SetMargins(0, 0)

        # Columns
        show_panel.m_grid4.EnableDragColMove(False)
        show_panel.m_grid4.EnableDragColSize(True)
        show_panel.m_grid4.SetColLabelSize(30)
        show_panel.m_grid4.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)
        show_panel.m_grid4.SetColLabelValue(0, "模型名称")
        show_panel.m_grid4.SetColLabelValue(1, "参数名称")
        show_panel.m_grid4.SetColLabelValue(2, "分布类型")
        show_panel.m_grid4.SetColLabelValue(3, "分布参数")

        # Rows
        show_panel.m_grid4.EnableDragRowSize(True)
        show_panel.m_grid4.SetRowLabelSize(80)
        show_panel.m_grid4.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        show_panel.m_grid4.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)

        """"设置内容"""
        i = 0
        for row in record:
            show_panel.m_grid4.SetCellValue(i, 0, str(row[0]))
            show_panel.m_grid4.SetCellValue(i, 1, str(row[1]))
            show_panel.m_grid4.SetCellValue(i, 2, str(row[2]))
            show_panel.m_grid4.SetCellValue(i, 3, str(row[3]))
            i = i + 1

        """"""

        show_panel.bSizer.Add(show_panel.m_grid4, 1, wx.ALL | wx.EXPAND, 5)

        scrollPanel.SetSizer(show_panel.gbSizer)
        scrollPanel.Layout()
        show_panel.bSizer.Add(scrollPanel, 1, wx.EXPAND | wx.ALL, 5)
        show_panel.SetSizer(show_panel.bSizer)
        show_panel.Layout()
Esempio n. 28
0
    def __init__(self, parent):
        super(RedbirdPanel, self).__init__(parent, size=(-1,-1))
        print "init RedbirdPanel"

        # Use a GridBagSizer for a dynamic layout of widgets
        # Add widgets here
        gbs = wx.GridBagSizer(5, 5)

        """
        # BEGIN MIDDLE INFO ROW
        # Localization Info
        """
        self.localizationGrid = wx.grid.Grid(self)
        """
        self.localizationGrid.CreateGrid(14, 3)
        self.localizationGrid.SetColLabelValue(0, "Found")
        self.localizationGrid.SetColLabelValue(1, "Color")
        self.localizationGrid.SetColLabelValue(2, "Position")

        # Simulation Info
        """
        self.simulationGrid = wx.grid.Grid(self)
        """
        self.simulationGrid.CreateGrid(14, 2)
        self.simulationGrid.SetColLabelValue(0, "Color")
        self.simulationGrid.SetColLabelValue(1, "Confidence")

        # self.SetFound(2, "True")

        self.localizationGrid.AutoSize()
        self.simulationGrid.AutoSize()


        # Draw Robot Positions Grid Panel
        """
        self.drawGridPanel = DrawGridPanel(self)
        """
        self.drawGridPanel.Bind(wx.EVT_PAINT, self.redrawGrid)

        topInfoRow = wx.BoxSizer(wx.HORIZONTAL)

        topInfoRow.Add(self.localizationGrid, flag = wx.ALL,border= 1)
        topInfoRow.Add(self.simulationGrid, flag = wx.ALL,border= 1)

        topInfoRow.Add(self.drawGridPanel, wx.ALL, 1)

        gbs.Add(topInfoRow, pos=(0, 0), span=(1, 5), flag=wx.ALIGN_CENTER_HORIZONTAL)
        """

        # END TOP INFO ROW

        # BEGIN MIDDLE INFO ROW
        middleInfoRow = wx.BoxSizer(wx.HORIZONTAL)

        self.vehicle_state_panel = VehicleStatePanel(self)
        self.flight_state_panel = FlightStatePanel(self)
        self.buttons_panel = ButtonsPanel(self)
        middleInfoRow.Add(self.vehicle_state_panel, flag=wx.ALL, border=1)
        middleInfoRow.Add(self.flight_state_panel, flag=wx.ALL, border=1)
        middleInfoRow.Add(self.buttons_panel, flag=wx.ALL, border=1)

        gbs.Add(middleInfoRow, pos= (1,0), span=(1,5), flag=wx.ALIGN_CENTER_HORIZONTAL)
        # END MIDDLE INFO ROW

        # Ros Logger takes up all of bottom (third) row
        self.ros_logger_panel = RosLoggerPanel(self)
        gbs.Add(self.ros_logger_panel, pos=(2, 0), span=(1, 5), flag=wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND)


        # This timer refreshes the robot position drawing
        self.drawGridTimer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.refreshWindow, self.drawGridTimer)
        self.drawGridTimer.Start(1000)

        # These lines make the GridBagSizer resize windows properly
        gbs.AddGrowableCol(gbs.GetEffectiveColsCount() - 1)  # This took forever to figure out :/
        gbs.AddGrowableRow(gbs.GetEffectiveRowsCount() - 1)
        self.SetSizerAndFit(gbs)
        self.Layout()

        #####################################################################################################################

        # For the background
        # self.SetBackgroundStyle(wx.BG_STYLE_ERASE)
        # self.bmp = wx.Bitmap("redbirdlogo.png")
        # self.Bind(wx.EVT_ERASE_BACKGROUND, self.onEraseBackground)

        #####################################################################################################################

        # CHANGE THIS TIMER TO ADD THE CORRECT FOUND FUNCTIONALITY========================================================
        # This timer sets changes the found column
        self.found_log_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.SetFound, self.found_log_timer)
        self.found_log_timer.Start(1000)

        # CHANGE THIS TIMER TO ADD THE CORRECT COLOR FUNCTIONALITY========================================================
        # This timer changes the color column
        self.color_log_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.SetColor, self.color_log_timer)
        self.color_log_timer.Start(1000)

        # CHANGE THIS TIMER TO ADD THE CORRECT POSITION FUNCTIONALITY========================================================
        # This timer changes the position column
        self.position_log_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.SetPosition, self.position_log_timer)
        self.position_log_timer.Start(1000)

        # CHANGE THIS TIMER TO ADD THE CORRECT CONFIDENCE FUNCTIONALITY========================================================
        # This timer changes the confidence column
        self.confidence_log_timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.SetConfidence, self.confidence_log_timer)
        self.confidence_log_timer.Start(1000)
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Interprete Matematico",
                          pos=wx.DefaultPosition,
                          size=wx.Size(445, 300),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.Size(445, 276), wx.Size(445, 300))
        self.SetBackgroundColour(wx.Colour(197, 224, 241))

        self.m_menubar1 = wx.MenuBar(0)
        self.archivo = wx.Menu()
        self.salir = wx.MenuItem(self.archivo, ID_SALIR, u"Salir",
                                 wx.EmptyString, wx.ITEM_NORMAL)
        self.archivo.AppendItem(self.salir)

        self.m_menubar1.Append(self.archivo, u"Archivo")

        self.acercaDe = wx.Menu()
        self.calculadoraV01Wxpython = wx.MenuItem(
            self.acercaDe, ID_CALCULADORA_V01_WXPYTHON,
            u"Interprete Matematico v0.1 wxPython", wx.EmptyString,
            wx.ITEM_NORMAL)
        self.acercaDe.AppendItem(self.calculadoraV01Wxpython)

        self.m_menubar1.Append(self.acercaDe, u"Acerca de...")

        self.SetMenuBar(self.m_menubar1)

        fgSizer2 = wx.FlexGridSizer(1, 1, 2, 2)
        fgSizer2.SetFlexibleDirection(wx.BOTH)
        fgSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        gbSizer21 = wx.GridBagSizer(0, 0)
        gbSizer21.SetFlexibleDirection(wx.BOTH)
        gbSizer21.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
        gbSizer21.SetEmptyCellSize(wx.Size(40, 1))

        self.lblTexto = wx.StaticText(self, wx.ID_ANY,
                                      u"Interprete Matematico",
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.ALIGN_CENTRE)
        self.lblTexto.Wrap(-1)
        self.lblTexto.SetFont(wx.Font(11, 74, 90, 92, True,
                                      "DejaVu Sans Mono"))

        gbSizer21.Add(self.lblTexto, wx.GBPosition(0, 0), wx.GBSpan(1, 11),
                      wx.ALIGN_CENTER_HORIZONTAL | wx.ALL | wx.EXPAND, 5)

        self.txtNumero = wx.TextCtrl(self, wx.ID_ANY, u"0", wx.DefaultPosition,
                                     wx.Size(-1, -1),
                                     wx.TE_RICH | wx.TE_RICH2 | wx.TE_RIGHT)
        gbSizer21.Add(
            self.txtNumero, wx.GBPosition(1, 0), wx.GBSpan(1, 9),
            wx.ALIGN_CENTER | wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5)

        self.btnExpresion = wx.Button(self, ID_BTN_EXPRESION, u"Expresion",
                                      wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer21.Add(self.btnExpresion, wx.GBPosition(1, 9), wx.GBSpan(1, 1),
                      wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

        fgSizer2.Add(gbSizer21, 1,
                     wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.TOP, 1)

        gbSizer2 = wx.GridBagSizer(1, 1)
        gbSizer2.SetFlexibleDirection(wx.BOTH)
        gbSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
        gbSizer2.SetEmptyCellSize(wx.Size(10, 10))

        self.btnNumero1 = wx.Button(self, ID_BTN_1, u"1", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero1, wx.GBPosition(0, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero2 = wx.Button(self, ID_BTN_2, u"2", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero2, wx.GBPosition(0, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero3 = wx.Button(self, ID_BTN_3, u"3", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero3, wx.GBPosition(0, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero4 = wx.Button(self, ID_BTN_4, u"4", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero4, wx.GBPosition(1, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero5 = wx.Button(self, ID_BTN_5, u"5", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero5, wx.GBPosition(1, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero6 = wx.Button(self, ID_BTN_6, u"6", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero6, wx.GBPosition(1, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero7 = wx.Button(self, ID_BTN_7, u"7", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero7, wx.GBPosition(2, 0), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero8 = wx.Button(self, ID_BTN_8, u"8", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero8, wx.GBPosition(2, 1), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNumero9 = wx.Button(self, ID_BTN_9, u"9", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNumero9, wx.GBPosition(2, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnNuemero0 = wx.Button(self, ID_BTN_0, u"0", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        gbSizer2.Add(self.btnNuemero0, wx.GBPosition(3, 0), wx.GBSpan(1, 2),
                     wx.ALL | wx.EXPAND, 5)

        self.btnBorrar = wx.Button(self, ID_BTN_BORRAR, u"Borrar",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer2.Add(self.btnBorrar, wx.GBPosition(3, 2), wx.GBSpan(1, 1),
                     wx.ALL, 5)

        self.btnSuma = wx.Button(self, ID_BTN_SUMA, u"+", wx.DefaultPosition,
                                 wx.DefaultSize, 0)
        gbSizer2.Add(self.btnSuma, wx.GBPosition(0, 3), wx.GBSpan(2, 1),
                     wx.ALL | wx.EXPAND, 5)

        self.btnResta = wx.Button(self, ID_BTN_RESTA, u"-", wx.DefaultPosition,
                                  wx.DefaultSize, 0)
        gbSizer2.Add(self.btnResta, wx.GBPosition(2, 3), wx.GBSpan(2, 1),
                     wx.ALL | wx.EXPAND, 5)

        self.btnMultiplicacion = wx.Button(self, ID_BTN_MULT, u"*",
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        gbSizer2.Add(self.btnMultiplicacion, wx.GBPosition(0, 4),
                     wx.GBSpan(2, 1), wx.ALL | wx.EXPAND, 5)

        self.btnDivicion = wx.Button(self, ID_BTN_DIVI, u"/",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        gbSizer2.Add(self.btnDivicion, wx.GBPosition(2, 4), wx.GBSpan(2, 1),
                     wx.ALL | wx.EXPAND, 5)

        self.btnCalcular = wx.Button(self, ID_BTN_CALC, u"Calcular",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        self.btnCalcular.SetFont(
            wx.Font(wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False,
                    wx.EmptyString))

        gbSizer2.Add(self.btnCalcular, wx.GBPosition(4, 0), wx.GBSpan(1, 6),
                     wx.ALL | wx.EXPAND, 5)

        fgSizer2.Add(gbSizer2, 1, wx.BOTTOM | wx.EXPAND, 5)

        self.SetSizer(fgSizer2)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_MENU, self.CerrarVentana, id=self.salir.GetId())
        self.Bind(wx.EVT_MENU,
                  self.VentanaAcercaDe,
                  id=self.calculadoraV01Wxpython.GetId())
        self.btnExpresion.Bind(wx.EVT_BUTTON, self.ingresarFuncion)
        self.btnNumero1.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero2.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero3.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero4.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero5.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero6.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero7.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero8.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNumero9.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnNuemero0.Bind(wx.EVT_BUTTON, self.nuevaCifra)
        self.btnBorrar.Bind(wx.EVT_BUTTON, self.eventoBorrar)
        self.btnSuma.Bind(wx.EVT_BUTTON, self.RealizarOperacion)
        self.btnResta.Bind(wx.EVT_BUTTON, self.RealizarOperacion)
        self.btnMultiplicacion.Bind(wx.EVT_BUTTON, self.RealizarOperacion)
        self.btnDivicion.Bind(wx.EVT_BUTTON, self.RealizarOperacion)
        self.btnCalcular.Bind(wx.EVT_BUTTON, self.CalcularResultado)
Esempio n. 30
0
    def __init__(self, parent, gui_size, cfg):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)

        # variable initilization
        self.method = "automatic"
        self.config = cfg
        # design the panel
        sizer = wx.GridBagSizer(5, 5)

        text = wx.StaticText(self, label="DeepLabCut - Step 2. Extract Frames")
        sizer.Add(text,
                  pos=(0, 0),
                  flag=wx.TOP | wx.LEFT | wx.BOTTOM,
                  border=15)
        # Add logo of DLC
        icon = wx.StaticBitmap(self, bitmap=wx.Bitmap(logo))
        sizer.Add(icon,
                  pos=(0, 4),
                  flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT,
                  border=5)

        line1 = wx.StaticLine(self)
        sizer.Add(line1,
                  pos=(1, 0),
                  span=(1, 5),
                  flag=wx.EXPAND | wx.BOTTOM,
                  border=10)

        self.cfg_text = wx.StaticText(self, label="Select the config file")
        sizer.Add(self.cfg_text, pos=(2, 0), flag=wx.TOP | wx.LEFT, border=5)

        if sys.platform == 'darwin':
            self.sel_config = wx.FilePickerCtrl(
                self,
                path="",
                style=wx.FLP_USE_TEXTCTRL,
                message="Choose the config.yaml file",
                wildcard="*.yaml")
        else:
            self.sel_config = wx.FilePickerCtrl(
                self,
                path="",
                style=wx.FLP_USE_TEXTCTRL,
                message="Choose the config.yaml file",
                wildcard="config.yaml")
        # self.sel_config = wx.FilePickerCtrl(self, path="",style=wx.FLP_USE_TEXTCTRL,message="Choose the config.yaml file", wildcard="config.yaml")
        sizer.Add(self.sel_config,
                  pos=(2, 1),
                  span=(1, 3),
                  flag=wx.TOP | wx.EXPAND,
                  border=5)
        self.sel_config.SetPath(self.config)
        self.sel_config.Bind(wx.EVT_FILEPICKER_CHANGED, self.select_config)

        sb = wx.StaticBox(self, label="Optional Attributes")
        boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL)

        hbox1 = wx.BoxSizer(wx.HORIZONTAL)
        hbox2 = wx.BoxSizer(wx.HORIZONTAL)
        hbox3 = wx.BoxSizer(wx.HORIZONTAL)

        self.method_choice = wx.RadioBox(self,
                                         label='Choose the extraction method',
                                         choices=['automatic', 'manual'],
                                         majorDimension=1,
                                         style=wx.RA_SPECIFY_COLS)
        self.method_choice.Bind(wx.EVT_RADIOBOX, self.select_extract_method)
        hbox1.Add(self.method_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        self.crop_choice = wx.RadioBox(self,
                                       label='Want to crop the frames?',
                                       choices=['False', 'True', 'GUI'],
                                       majorDimension=1,
                                       style=wx.RA_SPECIFY_COLS)
        hbox1.Add(self.crop_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        self.feedback_choice = wx.RadioBox(self,
                                           label='Need user feedback?',
                                           choices=['No', 'Yes'],
                                           majorDimension=1,
                                           style=wx.RA_SPECIFY_COLS)
        hbox1.Add(self.feedback_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        self.opencv_choice = wx.RadioBox(self,
                                         label='Want to use openCV?',
                                         choices=['No', 'Yes'],
                                         majorDimension=1,
                                         style=wx.RA_SPECIFY_COLS)
        self.opencv_choice.SetSelection(1)
        hbox1.Add(self.opencv_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        algo_text = wx.StaticBox(self, label="Select the algorithm")
        algoboxsizer = wx.StaticBoxSizer(algo_text, wx.VERTICAL)
        self.algo_choice = wx.ComboBox(self, style=wx.CB_READONLY)
        options = ['kmeans', 'uniform']
        self.algo_choice.Set(options)
        self.algo_choice.SetValue('kmeans')
        algoboxsizer.Add(self.algo_choice, 20, wx.EXPAND | wx.TOP | wx.BOTTOM,
                         10)

        cluster_step_text = wx.StaticBox(self,
                                         label="Specify the cluster step")
        cluster_stepboxsizer = wx.StaticBoxSizer(cluster_step_text,
                                                 wx.VERTICAL)
        self.cluster_step = wx.SpinCtrl(self, value='1')
        cluster_stepboxsizer.Add(self.cluster_step, 20,
                                 wx.EXPAND | wx.TOP | wx.BOTTOM, 10)

        slider_width_text = wx.StaticBox(self,
                                         label="Specify the slider width")
        slider_widthboxsizer = wx.StaticBoxSizer(slider_width_text,
                                                 wx.VERTICAL)
        self.slider_width = wx.SpinCtrl(self, value='25')
        slider_widthboxsizer.Add(self.slider_width, 20,
                                 wx.EXPAND | wx.TOP | wx.BOTTOM, 10)

        hbox3.Add(algoboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)
        hbox3.Add(cluster_stepboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)
        hbox3.Add(slider_widthboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5)

        boxsizer.Add(hbox1, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)
        boxsizer.Add(hbox2, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)
        boxsizer.Add(hbox3, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10)

        sizer.Add(boxsizer,
                  pos=(3, 0),
                  span=(1, 5),
                  flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                  border=10)

        self.help_button = wx.Button(self, label='Help')
        sizer.Add(self.help_button, pos=(4, 0), flag=wx.LEFT, border=10)
        self.help_button.Bind(wx.EVT_BUTTON, self.help_function)

        self.ok = wx.Button(self, label="Ok")
        sizer.Add(self.ok, pos=(4, 4))
        self.ok.Bind(wx.EVT_BUTTON, self.extract_frames)

        self.reset = wx.Button(self, label="Reset")
        sizer.Add(self.reset,
                  pos=(4, 1),
                  span=(1, 1),
                  flag=wx.BOTTOM | wx.RIGHT,
                  border=10)
        self.reset.Bind(wx.EVT_BUTTON, self.reset_extract_frames)

        sizer.AddGrowableCol(2)

        self.SetSizer(sizer)
        sizer.Fit(self)