Exemplo n.º 1
0
    def __init__(self, parent, symbol, *args, **kwds):
        wx.Panel.__init__(self, parent, *args, **kwds)
        self.symbol = symbol
        self.parent = parent
        self.cbmap = {
            _("Backward diagonal"): wx.BDIAGONAL_HATCH,
            _("Cross-diagonal"): wx.CROSSDIAG_HATCH,
            _("Forward diagonal"): wx.FDIAGONAL_HATCH,
            _("Cross"): wx.CROSS_HATCH,
            _("Horizontal"): wx.HORIZONTAL_HATCH,
            _("Vertical"): wx.VERTICAL_HATCH
        }
        cblist = self.cbmap.keys()
        self.colorbut = csel.ColourSelect(self,
                                          -1,
                                          "",
                                          symbol["color"],
                                          size=(30, 20))
        self.cb = wx.ComboBox(self, 500, cblist[0], (90, 50), (95, -1), cblist,
                              wx.CB_DROPDOWN | wx.CB_READONLY)
        self.cb.Bind(wx.EVT_COMBOBOX, self.SelectHatch)
        self.olcolorbut = csel.ColourSelect(self,
                                            -1,
                                            "",
                                            symbol["olcolor"],
                                            size=(30, 20))
        self.sizesc = wx.SpinCtrl(self, -1, "")
        self.sizesc.SetRange(1, 100)
        self.sizesc.SetValue(symbol["size"])
        self.colorbut.Bind(csel.EVT_COLOURSELECT, parent.ChangeColor)
        self.olcolorbut.Bind(csel.EVT_COLOURSELECT, parent.ChangeOLColor)
        self.sizesc.Bind(wx.EVT_SPINCTRL, parent.ChangeSize)

        box = wx.StaticBox(self, -1, _("Option"))
        bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        sizer_2 = wx.FlexGridSizer(cols=2, vgap=4, hgap=4)
        sizer_2.Add(wx.StaticText(self, -1,
                                  _("Style") + ":"), 0,
                    wx.ADJUST_MINSIZE | wx.ALL, 10)
        sizer_2.Add(self.cb)
        sizer_2.Add(wx.StaticText(self, -1,
                                  _("color") + ":"), 0,
                    wx.ADJUST_MINSIZE | wx.ALL, 10)
        sizer_2.Add(self.colorbut, 0, wx.ADJUST_MINSIZE, 10)
        sizer_2.Add(wx.StaticText(self, -1,
                                  _("size") + ":"), 0,
                    wx.ADJUST_MINSIZE | wx.ALL, 10)
        sizer_2.Add(self.sizesc, 0, wx.ADJUST_MINSIZE, 10)
        sizer_2.Add(wx.StaticText(self, -1,
                                  _("outline color") + ":"), 0,
                    wx.ADJUST_MINSIZE | wx.ALL, 10)
        sizer_2.Add(self.olcolorbut, 0, wx.ADJUST_MINSIZE, 10)
        bsizer.Add(sizer_2, 1, wx.ADJUST_MINSIZE, 0)
        sizer_1.Add(bsizer, 1, wx.EXPAND, 0)
        self.SetAutoLayout(True)
        self.SetSizer(sizer_1)
        sizer_1.Fit(self)
        sizer_1.SetSizeHints(self)
        self.Layout()

        #加载初始配置
        self.SelectHatch(None)
        if 'bitmap' in self.parent.symbol:
            self.parent.symbol.pop('bitmap')
Exemplo n.º 2
0
    def createframe(self):

        #绑定窗口的关闭事件
        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

        # 小区ID
        id_cell = wx.StaticText(self.panel, -1, u'小区ID:')
        self.id_cell_t = wx.TextCtrl(self.panel, -1, "0", style=wx.TE_READONLY)

        # 系统带宽
        bandwidth = wx.StaticText(self.panel, -1, u'系统带宽:')
        self.bandwidth_t = wx.TextCtrl(self.panel, -1, "0", style=wx.TE_READONLY)

        #实时载波频率偏差值
        cfo_st = wx.StaticText(self.panel, -1, u"实时载波频率偏差:")
        self.cfo = wx.TextCtrl(self.panel, -1, "0", style=wx.TE_READONLY)

        #实时细定时误差
        fte_st = wx.StaticText(self.panel, -1, u"实时细定时误差:")
        self.fte = wx.TextCtrl(self.panel, -1, "0", style=wx.TE_READONLY)

        #峰值位置
        pss_pos_st = wx.StaticText(self.panel, -1, u"峰值位置:")
        self.pss_pos = wx.TextCtrl(self.panel, -1, "0", style=wx.TE_READONLY)

        #主同步状态是否锁定
        pss_status_st = wx.StaticText(self.panel, -1, u"主同步状态:\t\t\t")
        self.pss_status = PanelOne(self.panel)

        #辅同步状态是否锁定
        sss_status_st = wx.StaticText(self.panel, -1, u"辅同步状态:\t\t\t")
        self.sss_status = PanelOne(self.panel)

        #pbch是否找到
        pbch_status_st = wx.StaticText(self.panel, -1, u"pbch是否找到:\t\t\t")
        self.pbch_status = PanelOne(self.panel)

        #当前处理状态
        process_state_st = wx.StaticText(self.panel, -1, u"处理状态(捕获/跟踪):\t\t\t")
        self.process_state = PanelOne(self.panel)

        #MAC_PDU个数、误帧率、帧号、子帧号
        # status_bar_lable = "MAC_PDU个数:\t\t\t误帧率:\t"
        # self.status_bar = wx.TextCtrl(self.panel, -1, status_bar_lable, style=wx.TE_READONLY)
        mac_pdu = wx.StaticText(self.panel, -1, u"mac_pdu的个数:\t")
        self.mac_pdu_value = wx.StaticText(self.panel, -1, '')

        frame_error_rate = wx.StaticText(self.panel, -1, u"误帧率:\t")
        self.frame_error_rate_value = wx.StaticText(self.panel, -1, '')

        fn_st = wx.StaticText(self.panel, -1, u"帧号:\t")
        self.fn = wx.StaticText(self.panel, -1, '')

        sfn_st = wx.StaticText(self.panel, -1, u"子帧号:\t")
        self.sfn = wx.StaticText(self.panel, -1, '')

        #连接按钮
        self.connect_button = wx.Button(self.panel, -1, u"连接")
        self.connect_button.SetBackgroundColour('black')
        self.connect_button.SetForegroundColour('white')
        self.Bind(wx.EVT_BUTTON, self.OnConnect, self.connect_button)  
        # self.connect_button.SetDefault() 

        #设置连接服务器的IP地址和端口号
        self.terminal_config.read("terminal.conf")
        try: s_ip = self.terminal_config.get("address", "s_ip")
        except: s_ip = '192.168.139.180'

        try: s_port = self.terminal_config.get("address", "s_port")
        except: s_port = '7000'

        ip_st = wx.StaticText(self.panel, -1, u"IP地址 :")  
        self.IPText = wx.TextCtrl(self.panel, -1, s_ip)  
        port_st = wx.StaticText(self.panel, -1, u"端口号 :")  
        self.PortText = wx.TextCtrl(self.panel, -1, s_port)

        #######开始布局############
        sizer1 = wx.FlexGridSizer(cols=2, hgap=10, vgap=10)
        sizer1.AddGrowableCol(1)
        sizer1.Add(id_cell, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer1.Add(self.id_cell_t, 0, wx.EXPAND)
        sizer1.Add(bandwidth, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer1.Add(self.bandwidth_t, 0, wx.EXPAND)
        sizer1.Add(pss_pos_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer1.Add(self.pss_pos, 0, wx.EXPAND)
        sizer1.Add(fte_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer1.Add(self.fte, 0, wx.EXPAND)
        sizer1.Add(cfo_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer1.Add(self.cfo, 0, wx.EXPAND)

        sizer11 = wx.FlexGridSizer(cols=2, hgap=10, vgap=10)
        sizer11.AddGrowableCol(1)
        sizer11.Add(pss_status_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer11.Add(self.pss_status, 0, wx.EXPAND)
        sizer11.Add(sss_status_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer11.Add(self.sss_status, 0, wx.EXPAND)
        sizer11.Add(pbch_status_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer11.Add(self.pbch_status, 0, wx.EXPAND)
        sizer11.Add(process_state_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer11.Add(self.process_state, 0, wx.EXPAND)

        sizer111 = wx.FlexGridSizer(cols=4, hgap=10, vgap=10)
        sizer111.AddGrowableCol(1)
        sizer111.AddGrowableCol(3)
        sizer111.Add(frame_error_rate, 0, wx.ALIGN_CENTER_VERTICAL)
        sizer111.Add(self.frame_error_rate_value, 0, wx.EXPAND)
        sizer111.Add(mac_pdu, 0, wx.ALIGN_CENTER_VERTICAL)
        sizer111.Add(self.mac_pdu_value, 0, wx.EXPAND)
        sizer111.Add(fn_st, 0, wx.ALIGN_CENTER_VERTICAL)
        sizer111.Add(self.fn, 0, wx.EXPAND)
        sizer111.Add(sfn_st, 0, wx.ALIGN_CENTER_VERTICAL)
        sizer111.Add(self.sfn, 0, wx.EXPAND)

        sizer2 = wx.StaticBoxSizer(wx.StaticBox(self.panel, wx.NewId(), u'状态显示'), wx.VERTICAL)
        sizer2.Add(sizer1, 0, wx.EXPAND | wx.ALL, 10)
        sizer2.Add(wx.StaticLine(self.panel), 0,wx.EXPAND|wx.TOP|wx.BOTTOM,10)
        sizer2.Add(sizer11, 0, wx.EXPAND | wx.ALL, 10)
        sizer2.Add(wx.StaticLine(self.panel), 0,wx.EXPAND|wx.TOP|wx.BOTTOM,10)
        sizer2.Add(sizer111, 0, wx.EXPAND | wx.ALL, 10)

        sizer3 = wx.FlexGridSizer(cols=2, hgap=10, vgap=10)
        sizer3.AddGrowableCol(1)
        sizer3.Add(ip_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer3.Add(self.IPText, 3, wx.EXPAND)
        sizer3.Add(port_st, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        sizer3.Add(self.PortText, 1, wx.EXPAND)

        #连接按钮
        sizer4 = wx.BoxSizer(wx.HORIZONTAL)
        sizer4.Add((20,20), 1)
        sizer4.Add(self.connect_button, 0, wx.ALIGN_RIGHT)

        sizer5 = wx.StaticBoxSizer(wx.StaticBox(self.panel, wx.NewId(), u'连接服务器'), wx.VERTICAL)
        sizer5.Add(sizer3, 0, wx.EXPAND | wx.ALL, 10)
        sizer5.Add(sizer4, 0, wx.EXPAND | wx.ALL, 10)

        box1 = wx.BoxSizer(wx.VERTICAL)
        box1.Add(sizer2,0,wx.EXPAND | wx.ALL, 25)
        box1.Add(wx.StaticLine(self.panel), 0,wx.EXPAND|wx.TOP|wx.BOTTOM,0)
        box1.Add(sizer5,0,wx.EXPAND | wx.ALL | wx.BOTTOM, 25)

        #自动调整界面尺寸
        self.panel.SetSizer(box1)
    def __init__(self, parent, controller):
        wx.Dialog.__init__(self, parent, size=wx.Size(500, 300), 
              title=_('Create a new divergence or convergence'))
        
        main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
        main_sizer.AddGrowableCol(0)
        main_sizer.AddGrowableRow(0)
        
        column_sizer = wx.BoxSizer(wx.HORIZONTAL)
        main_sizer.AddSizer(column_sizer, border=20, 
              flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
        
        left_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=7, vgap=5)
        left_gridsizer.AddGrowableCol(0)
        column_sizer.AddSizer(left_gridsizer, 1, border=5, 
              flag=wx.GROW|wx.RIGHT)
        
        type_label = wx.StaticText(self, label=_('Type:'))
        left_gridsizer.AddWindow(type_label, flag=wx.GROW)

        self.SelectionDivergence = wx.RadioButton(self, 
              label=_('Selection Divergence'), style=wx.RB_GROUP)
        self.SelectionDivergence.SetValue(True)
        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, 
                  self.SelectionDivergence)
        left_gridsizer.AddWindow(self.SelectionDivergence, flag=wx.GROW)
        
        self.SelectionConvergence = wx.RadioButton(self,
              label=_('Selection Convergence'))
        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, 
                  self.SelectionConvergence)
        left_gridsizer.AddWindow(self.SelectionConvergence, flag=wx.GROW)
        
        self.SimultaneousDivergence = wx.RadioButton(self,
              label=_('Simultaneous Divergence'))
        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, 
                  self.SimultaneousDivergence)
        left_gridsizer.AddWindow(self.SimultaneousDivergence, flag=wx.GROW)
        
        self.SimultaneousConvergence = wx.RadioButton(self,
              label=_('Simultaneous Convergence'))
        self.Bind(wx.EVT_RADIOBUTTON, self.OnTypeChanged, 
                  self.SimultaneousConvergence)
        left_gridsizer.AddWindow(self.SimultaneousConvergence, flag=wx.GROW)
        
        sequences_label = wx.StaticText(self, 
              label=_('Number of sequences:'))
        left_gridsizer.AddWindow(sequences_label, flag=wx.GROW)
        
        self.Sequences = wx.SpinCtrl(self, min=2, max=20)
        self.Bind(wx.EVT_SPINCTRL, self.OnSequencesChanged, self.Sequences)
        left_gridsizer.AddWindow(self.Sequences, flag=wx.GROW)
        
        right_gridsizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5)
        right_gridsizer.AddGrowableCol(0)
        right_gridsizer.AddGrowableRow(1)
        column_sizer.AddSizer(right_gridsizer, 1, border=5, 
              flag=wx.GROW|wx.LEFT)
        
        preview_label = wx.StaticText(self, label=_('Preview:'))
        right_gridsizer.AddWindow(preview_label, flag=wx.GROW)
        
        self.Preview = wx.Panel(self, style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER)
        self.Preview.SetBackgroundColour(wx.Colour(255,255,255))
        self.Preview.Bind(wx.EVT_PAINT, self.OnPaint)
        setattr(self.Preview, "GetDrawingMode", lambda:FREEDRAWING_MODE)
        setattr(self.Preview, "IsOfType", controller.IsOfType)
        right_gridsizer.AddWindow(self.Preview, flag=wx.GROW)
        
        button_sizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
        main_sizer.AddSizer(button_sizer, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
        
        self.SetSizer(main_sizer)
        
        self.Divergence = None
        self.MinSize = (0, 0)
        
        self.SelectionDivergence.SetFocus()
Exemplo n.º 4
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Scanning TRPL Time Histogram Map",
                          pos=wx.DefaultPosition,
                          size=wx.Size(1024, 640),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizer1 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_panel4 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        fgSizer4 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer4.SetFlexibleDirection(wx.BOTH)
        fgSizer4.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_panel_scanarea = wx.Panel(self.m_panel4, wx.ID_ANY,
                                         wx.DefaultPosition, wx.DefaultSize,
                                         wx.TAB_TRAVERSAL)
        fgSizer_scanarea = wx.FlexGridSizer(0, 4, 0, 0)
        fgSizer_scanarea.SetFlexibleDirection(wx.BOTH)
        fgSizer_scanarea.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText1 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                           u"Scan Area", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText1.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText1, 0, wx.ALL, 5)

        self.m_staticText_maxdim = wx.StaticText(self.m_panel_scanarea,
                                                 wx.ID_ANY,
                                                 u"max: 100 x 100 um",
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize, 0)
        self.m_staticText_maxdim.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText_maxdim, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText2 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                           u"X:", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText2.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText2, 0, wx.ALL, 5)

        self.m_textCtrl_x0 = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"0", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_x0, 0, wx.ALL | wx.EXPAND, 5)

        self.m_textCtrl_x1 = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"75", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_x1, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText3 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                           u"um", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText3.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText3, 0, wx.ALL, 5)

        self.m_staticText4 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                           u"Y:", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText4.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText4, 0, wx.ALL, 5)

        self.m_textCtrl_y0 = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"0", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_y0, 0, wx.ALL | wx.EXPAND, 5)

        self.m_textCtrl_y1 = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"75", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_y1, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText5 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                           u"um", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText5.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText5, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText11 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"Scan Step", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText11.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText11, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText111 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                             u"dX:", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText111.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText111, 0, wx.ALL, 5)

        self.m_textCtrl_dx = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"1000", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_dx, 0, wx.ALL, 5)

        self.m_staticText12 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"nm", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText12.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText12, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText13 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"dY:", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText13.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText13, 0, wx.ALL, 5)

        self.m_textCtrl_dy = wx.TextCtrl(self.m_panel_scanarea, wx.ID_ANY,
                                         u"1000", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_textCtrl_dy, 0, wx.ALL, 5)

        self.m_staticText14 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"nm", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText14.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText14, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText15 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"Current Position",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText15.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText15, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText18 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"x:", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText18.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText18, 0, wx.ALL, 5)

        self.m_textCtrl_current_x = wx.TextCtrl(self.m_panel_scanarea,
                                                wx.ID_ANY, u"0",
                                                wx.DefaultPosition,
                                                wx.DefaultSize, wx.TE_READONLY)
        self.m_textCtrl_current_x.SetBackgroundColour(wx.Colour(255, 128, 0))

        fgSizer_scanarea.Add(self.m_textCtrl_current_x, 0, wx.ALL, 5)

        self.m_textCtrl_set_current_x = wx.TextCtrl(self.m_panel_scanarea,
                                                    wx.ID_ANY, wx.EmptyString,
                                                    wx.DefaultPosition,
                                                    wx.DefaultSize,
                                                    wx.TE_PROCESS_ENTER)
        fgSizer_scanarea.Add(self.m_textCtrl_set_current_x, 0, wx.ALL, 5)

        self.m_staticText19 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"um", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText19.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText19, 0, wx.ALL, 5)

        self.m_staticText20 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"y:", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText20.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText20, 0, wx.ALL, 5)

        self.m_textCtrl_current_y = wx.TextCtrl(self.m_panel_scanarea,
                                                wx.ID_ANY, u"0",
                                                wx.DefaultPosition,
                                                wx.DefaultSize, wx.TE_READONLY)
        self.m_textCtrl_current_y.SetForegroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))
        self.m_textCtrl_current_y.SetBackgroundColour(wx.Colour(255, 128, 0))

        fgSizer_scanarea.Add(self.m_textCtrl_current_y, 0, wx.ALL, 5)

        self.m_textCtrl_set_current_y = wx.TextCtrl(self.m_panel_scanarea,
                                                    wx.ID_ANY, wx.EmptyString,
                                                    wx.DefaultPosition,
                                                    wx.DefaultSize,
                                                    wx.TE_PROCESS_ENTER)
        fgSizer_scanarea.Add(self.m_textCtrl_set_current_y, 0, wx.ALL, 5)

        self.m_staticText21 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"um", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText21.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText21, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText23 = wx.StaticText(self.m_panel_scanarea, wx.ID_ANY,
                                            u"Scan Control",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText23.Wrap(-1)
        fgSizer_scanarea.Add(self.m_staticText23, 0, wx.ALL, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer_scanarea.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_button_start = wx.Button(self.m_panel_scanarea, wx.ID_ANY,
                                        u"Start Scan", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_button_start, 1, wx.ALL | wx.EXPAND, 5)

        self.m_button_stop = wx.Button(self.m_panel_scanarea, wx.ID_ANY,
                                       u"Stop Scan", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        fgSizer_scanarea.Add(self.m_button_stop, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel_scanarea.SetSizer(fgSizer_scanarea)
        self.m_panel_scanarea.Layout()
        fgSizer_scanarea.Fit(self.m_panel_scanarea)
        fgSizer4.Add(self.m_panel_scanarea, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel_measure = wx.Panel(self.m_panel4, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.TAB_TRAVERSAL)
        fgSizer6 = wx.FlexGridSizer(0, 6, 0, 0)
        fgSizer6.SetFlexibleDirection(wx.BOTH)
        fgSizer6.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticText16 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"PicoHarp", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText16.Wrap(-1)
        fgSizer6.Add(self.m_staticText16, 0, wx.ALL, 5)

        self.m_staticText161 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                             u"Measurement",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText161.Wrap(-1)
        fgSizer6.Add(self.m_staticText161, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText17 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"Time Acq", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText17.Wrap(-1)
        fgSizer6.Add(self.m_staticText17, 0, wx.ALL, 5)

        self.m_textCtrl_tacq = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                           u"0.01", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        fgSizer6.Add(self.m_textCtrl_tacq, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText22 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"sec", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText22.Wrap(-1)
        fgSizer6.Add(self.m_staticText22, 0, wx.ALL, 5)

        self.m_staticText27 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"SyncDivider", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText27.Wrap(-1)
        fgSizer6.Add(self.m_staticText27, 0, wx.ALL, 5)

        m_choice_syncdividerChoices = [u"1", u"2", u"4", u"8"]
        self.m_choice_syncdivider = wx.Choice(self.m_panel_measure, wx.ID_ANY,
                                              wx.DefaultPosition,
                                              wx.DefaultSize,
                                              m_choice_syncdividerChoices, 0)
        self.m_choice_syncdivider.SetSelection(3)
        fgSizer6.Add(self.m_choice_syncdivider, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText29 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"Range", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText29.Wrap(-1)
        fgSizer6.Add(self.m_staticText29, 0, wx.ALL, 5)

        self.m_textCtrl_phrange = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                              u"0", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        fgSizer6.Add(self.m_textCtrl_phrange, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_staticText291 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                             u"Offset", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText291.Wrap(-1)
        fgSizer6.Add(self.m_staticText291, 0, wx.ALL, 5)

        self.m_textCtrl_phoffset = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                               u"0", wx.DefaultPosition,
                                               wx.DefaultSize, 0)
        fgSizer6.Add(self.m_textCtrl_phoffset, 0, wx.ALL, 5)

        self.m_staticText34 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"ns", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText34.Wrap(-1)
        fgSizer6.Add(self.m_staticText34, 0, wx.ALL, 5)

        self.m_staticText35 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"ZeroCross0", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText35.Wrap(-1)
        fgSizer6.Add(self.m_staticText35, 0, wx.ALL, 5)

        self.m_spinCtrl_zerocross0 = wx.SpinCtrl(self.m_panel_measure,
                                                 wx.ID_ANY, wx.EmptyString,
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize,
                                                 wx.SP_ARROW_KEYS, 0, 100, 10)
        fgSizer6.Add(self.m_spinCtrl_zerocross0, 0, wx.ALL, 5)

        self.m_staticText36 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"mV", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText36.Wrap(-1)
        fgSizer6.Add(self.m_staticText36, 0, wx.ALL, 5)

        self.m_staticText37 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"ZeroCross1", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText37.Wrap(-1)
        fgSizer6.Add(self.m_staticText37, 0, wx.ALL, 5)

        self.m_spinCtrl_zerocross1 = wx.SpinCtrl(self.m_panel_measure,
                                                 wx.ID_ANY, wx.EmptyString,
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize,
                                                 wx.SP_ARROW_KEYS, 0, 100, 10)
        fgSizer6.Add(self.m_spinCtrl_zerocross1, 0, wx.ALL, 5)

        self.m_staticText38 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"mV", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText38.Wrap(-1)
        fgSizer6.Add(self.m_staticText38, 0, wx.ALL, 5)

        self.m_staticText351 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                             u"Level0", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText351.Wrap(-1)
        fgSizer6.Add(self.m_staticText351, 0, wx.ALL, 5)

        self.m_textCtrl_level0 = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                             u"10", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        fgSizer6.Add(self.m_textCtrl_level0, 0, wx.ALL, 5)

        self.m_staticText42 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"mV", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText42.Wrap(-1)
        fgSizer6.Add(self.m_staticText42, 0, wx.ALL, 5)

        self.m_staticText43 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"Level1", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText43.Wrap(-1)
        fgSizer6.Add(self.m_staticText43, 0, wx.ALL, 5)

        self.m_textCtrl_level1 = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                             u"50", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        fgSizer6.Add(self.m_textCtrl_level1, 0, wx.ALL, 5)

        self.m_staticText44 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                            u"mV", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText44.Wrap(-1)
        fgSizer6.Add(self.m_staticText44, 0, wx.ALL, 5)

        self.m_staticline3 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline3, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticline4 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline4, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticline5 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline5, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticline6 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline6, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticline7 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline7, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticline8 = wx.StaticLine(self.m_panel_measure, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        fgSizer6.Add(self.m_staticline8, 0, wx.EXPAND | wx.ALL, 5)

        self.m_staticText211 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                             u"Counts 0", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText211.Wrap(-1)
        fgSizer6.Add(self.m_staticText211, 0, wx.ALL, 5)

        self.m_textCtrl_count0 = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                             wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TE_READONLY)
        fgSizer6.Add(self.m_textCtrl_count0, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText221 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                             u"Hz", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText221.Wrap(-1)
        fgSizer6.Add(self.m_staticText221, 0, wx.ALL, 5)

        self.m_staticText2111 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                              u"Counts 1", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText2111.Wrap(-1)
        fgSizer6.Add(self.m_staticText2111, 0, wx.ALL, 5)

        self.m_textCtrl_count1 = wx.TextCtrl(self.m_panel_measure, wx.ID_ANY,
                                             wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TE_READONLY)
        self.m_textCtrl_count1.SetFont(
            wx.Font(16, 74, 90, 90, False, "MS Shell Dlg 2"))

        fgSizer6.Add(self.m_textCtrl_count1, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText2211 = wx.StaticText(self.m_panel_measure, wx.ID_ANY,
                                              u"Hz", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText2211.Wrap(-1)
        fgSizer6.Add(self.m_staticText2211, 0, wx.ALL, 5)

        fgSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.m_checkBox_picoharp_fastreadout = wx.CheckBox(
            self.m_panel_measure, wx.ID_ANY, u"Fast Readout",
            wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer6.Add(self.m_checkBox_picoharp_fastreadout, 0, wx.ALL, 5)

        self.m_panel_measure.SetSizer(fgSizer6)
        self.m_panel_measure.Layout()
        fgSizer6.Fit(self.m_panel_measure)
        fgSizer4.Add(self.m_panel_measure, 0, wx.ALL | wx.EXPAND, 5)

        self.m_panel_plot_ctrl = wx.Panel(self.m_panel4, wx.ID_ANY,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          wx.TAB_TRAVERSAL)
        fgSizer3 = wx.FlexGridSizer(0, 2, 0, 0)
        fgSizer3.SetFlexibleDirection(wx.BOTH)
        fgSizer3.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_panel_plot_ctrl.SetSizer(fgSizer3)
        self.m_panel_plot_ctrl.Layout()
        fgSizer3.Fit(self.m_panel_plot_ctrl)
        fgSizer4.Add(self.m_panel_plot_ctrl, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel4.SetSizer(fgSizer4)
        self.m_panel4.Layout()
        fgSizer4.Fit(self.m_panel4)
        bSizer1.Add(self.m_panel4, 0, wx.ALL | wx.EXPAND, 5)

        self.m_panel_plot = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                     wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer11 = wx.BoxSizer(wx.VERTICAL)

        self.m_panel_plot.SetSizer(bSizer11)
        self.m_panel_plot.Layout()
        bSizer11.Fit(self.m_panel_plot)
        bSizer1.Add(self.m_panel_plot, 1, wx.EXPAND | wx.ALL, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)
Exemplo n.º 5
0
    def __init__(self, parent):
        """
        self.appdata: (dict) settings already loaded from main_frame .
        self.confmanager: instance to ConfigManager class
        self.settings: (dict) current user settings from file conf.

        """
        get = wx.GetApp()
        self.appdata = get.appset
        self.confmanager = ConfigManager(self.appdata['fileconfpath'])
        self.settings = self.confmanager.read_options()

        if self.appdata['ostype'] == 'Windows':
            self.ffmpeg = 'ffmpeg.exe'
            self.ffprobe = 'ffprobe.exe'
            self.ffplay = 'ffplay.exe'
        else:
            self.ffmpeg = 'ffmpeg'
            self.ffprobe = 'ffprobe'
            self.ffplay = 'ffplay'

        wx.Dialog.__init__(self, parent, -1, style=wx.DEFAULT_DIALOG_STYLE)

        # ----------------------------set notebook
        sizer_base = wx.BoxSizer(wx.VERTICAL)
        notebook = wx.Notebook(self, wx.ID_ANY, style=0)
        sizer_base.Add(notebook, 1, wx.ALL | wx.EXPAND, 5)

        # -----tab 1
        tabOne = wx.Panel(notebook, wx.ID_ANY)
        sizerGen = wx.BoxSizer(wx.VERTICAL)
        sizerGen.Add((0, 15))
        boxlang = wx.StaticBoxSizer(
            wx.StaticBox(tabOne, wx.ID_ANY, (_("Application Language"))),
            wx.VERTICAL)
        sizerGen.Add(boxlang, 0, wx.ALL | wx.EXPAND, 5)
        self.cmbx_lang = wx.ComboBox(tabOne,
                                     wx.ID_ANY,
                                     choices=list(langnames.values()),
                                     size=(-1, -1),
                                     style=wx.CB_DROPDOWN | wx.CB_READONLY)
        boxlang.Add(self.cmbx_lang, 0, wx.ALL | wx.EXPAND, 5)
        sizerGen.Add((0, 15))
        self.checkbox_cacheclr = wx.CheckBox(
            tabOne, wx.ID_ANY,
            (_("Clear the cache when exiting the application")))
        sizerGen.Add(self.checkbox_cacheclr, 0, wx.ALL, 5)
        sizerGen.Add((0, 15))
        self.checkbox_logclr = wx.CheckBox(
            tabOne, wx.ID_ANY, (_("Delete the contents of the log files "
                                  "when exiting the application")))
        sizerGen.Add(self.checkbox_logclr, 0, wx.ALL, 5)
        sizerGen.Add((0, 15))
        self.checkbox_exit = wx.CheckBox(tabOne, wx.ID_ANY,
                                         (_("Warn on exit")))
        sizerGen.Add(self.checkbox_exit, 0, wx.ALL, 5)

        tabOne.SetSizer(sizerGen)
        notebook.AddPage(tabOne, _("Miscellanea"))

        # -----tab 2
        tabTwo = wx.Panel(notebook, wx.ID_ANY)
        sizerFiles = wx.BoxSizer(wx.VERTICAL)
        sizerFiles.Add((0, 15))
        msg = _("Where do you prefer to save your transcodes?")
        labfile = wx.StaticText(tabTwo, wx.ID_ANY, msg)
        sizerFiles.Add(labfile, 0, wx.ALL | wx.EXPAND, 5)
        sizeFFdirdest = wx.BoxSizer(wx.HORIZONTAL)
        sizerFiles.Add(sizeFFdirdest, 0, wx.EXPAND)
        self.txtctrl_FFpath = wx.TextCtrl(tabTwo,
                                          wx.ID_ANY,
                                          "",
                                          style=wx.TE_READONLY)
        sizeFFdirdest.Add(self.txtctrl_FFpath, 1, wx.ALL, 5)
        self.txtctrl_FFpath.AppendText(self.appdata['outputfile'])

        self.btn_fsave = wx.Button(tabTwo, wx.ID_ANY, "...", size=(35, -1))
        sizeFFdirdest.Add(
            self.btn_fsave, 0,
            wx.RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL,
            5)
        descr = _("Save each file in the same folder as input file")
        self.ckbx_dir = wx.CheckBox(tabTwo, wx.ID_ANY, (descr))
        sizerFiles.Add(self.ckbx_dir, 0, wx.ALL, 5)
        sizeSamedest = wx.BoxSizer(wx.HORIZONTAL)
        sizerFiles.Add(sizeSamedest, 0, wx.EXPAND)
        descr = _("Assign optional suffix to output file names:")
        self.lab_suffix = wx.StaticText(tabTwo, wx.ID_ANY, (descr))
        sizeSamedest.Add(self.lab_suffix, 0,
                         wx.LEFT | wx.ALIGN_CENTER_VERTICAL, 5)
        self.text_suffix = wx.TextCtrl(tabTwo, wx.ID_ANY, "", size=(90, -1))
        sizeSamedest.Add(self.text_suffix, 1, wx.ALL | wx.CENTER, 5)

        descr = _("Move source file to the Videomass trash "
                  "folder after successful encoding")
        self.ckbx_trash = wx.CheckBox(tabTwo, wx.ID_ANY, (descr))
        sizerFiles.Add(self.ckbx_trash, 0, wx.ALL, 5)
        sizetrash = wx.BoxSizer(wx.HORIZONTAL)
        sizerFiles.Add(sizetrash, 0, wx.EXPAND)
        self.txtctrl_trash = wx.TextCtrl(tabTwo,
                                         wx.ID_ANY,
                                         "",
                                         style=wx.TE_READONLY)
        sizetrash.Add(self.txtctrl_trash, 1, wx.ALL, 5)
        self.txtctrl_trash.AppendText(self.appdata['trashfolder'])
        self.btn_trash = wx.Button(tabTwo, wx.ID_ANY, "...", size=(35, -1))
        sizetrash.Add(
            self.btn_trash, 0,
            wx.RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL,
            5)
        sizerFiles.Add((0, 15))
        msg = _("Where do you prefer to save your downloads?")
        labdown = wx.StaticText(tabTwo, wx.ID_ANY, msg)
        sizerFiles.Add(labdown, 0, wx.ALL | wx.EXPAND, 5)
        sizeYDLdirdest = wx.BoxSizer(wx.HORIZONTAL)
        sizerFiles.Add(sizeYDLdirdest, 0, wx.EXPAND)
        self.txtctrl_YDLpath = wx.TextCtrl(tabTwo,
                                           wx.ID_ANY,
                                           "",
                                           style=wx.TE_READONLY)
        sizeYDLdirdest.Add(self.txtctrl_YDLpath, 1, wx.ALL | wx.CENTER, 5)
        self.txtctrl_YDLpath.AppendText(self.appdata['outputdownload'])
        self.btn_YDLpath = wx.Button(tabTwo, wx.ID_ANY, "...", size=(35, -1))
        sizeYDLdirdest.Add(
            self.btn_YDLpath, 0,
            wx.RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL,
            5)
        descr = _("Auto-create subfolders when downloading playlists")
        self.ckbx_playlist = wx.CheckBox(tabTwo, wx.ID_ANY, (descr))
        sizerFiles.Add(self.ckbx_playlist, 0, wx.ALL, 5)

        tabTwo.SetSizer(sizerFiles)
        notebook.AddPage(tabTwo, _("File Preferences"))

        # -----tab 3
        tabThree = wx.Panel(notebook, wx.ID_ANY)
        sizerFFmpeg = wx.BoxSizer(wx.VERTICAL)
        sizerFFmpeg.Add((0, 15))
        labFFexec = wx.StaticText(tabThree, wx.ID_ANY,
                                  _('Path to the executables'))
        sizerFFmpeg.Add(labFFexec, 0, wx.ALL | wx.EXPAND, 5)
        # ----
        self.checkbox_exeFFmpeg = wx.CheckBox(
            tabThree, wx.ID_ANY, (_("Enable another location to run FFmpeg")))
        self.btn_ffmpeg = wx.Button(tabThree, wx.ID_ANY, "...", size=(35, -1))
        self.txtctrl_ffmpeg = wx.TextCtrl(tabThree,
                                          wx.ID_ANY,
                                          "",
                                          style=wx.TE_READONLY)
        sizerFFmpeg.Add(self.checkbox_exeFFmpeg, 0, wx.ALL, 5)
        gridFFmpeg = wx.BoxSizer(wx.HORIZONTAL)
        sizerFFmpeg.Add(gridFFmpeg, 0, wx.EXPAND)
        gridFFmpeg.Add(self.txtctrl_ffmpeg, 1, wx.ALL, 5)
        gridFFmpeg.Add(self.btn_ffmpeg, 0, wx.RIGHT | wx.CENTER, 5)
        # ----
        self.checkbox_exeFFprobe = wx.CheckBox(
            tabThree, wx.ID_ANY, (_("Enable another location to run FFprobe")))
        self.btn_ffprobe = wx.Button(tabThree, wx.ID_ANY, "...", size=(35, -1))
        self.txtctrl_ffprobe = wx.TextCtrl(tabThree,
                                           wx.ID_ANY,
                                           "",
                                           style=wx.TE_READONLY)
        sizerFFmpeg.Add(self.checkbox_exeFFprobe, 0, wx.ALL, 5)
        gridFFprobe = wx.BoxSizer(wx.HORIZONTAL)
        sizerFFmpeg.Add(gridFFprobe, 0, wx.EXPAND)
        gridFFprobe.Add(self.txtctrl_ffprobe, 1, wx.ALL, 5)
        gridFFprobe.Add(self.btn_ffprobe, 0, wx.RIGHT | wx.CENTER, 5)
        # ----
        self.checkbox_exeFFplay = wx.CheckBox(
            tabThree, wx.ID_ANY, (_("Enable another location to run FFplay")))
        self.btn_ffplay = wx.Button(tabThree, wx.ID_ANY, "...", size=(35, -1))
        self.txtctrl_ffplay = wx.TextCtrl(tabThree,
                                          wx.ID_ANY,
                                          "",
                                          style=wx.TE_READONLY)
        sizerFFmpeg.Add(self.checkbox_exeFFplay, 0, wx.ALL, 5)
        gridFFplay = wx.BoxSizer(wx.HORIZONTAL)
        sizerFFmpeg.Add(gridFFplay, 0, wx.EXPAND)
        gridFFplay.Add(self.txtctrl_ffplay, 1, wx.ALL, 5)
        gridFFplay.Add(self.btn_ffplay, 0, wx.RIGHT | wx.CENTER, 5)
        sizerFFmpeg.Add((0, 15))
        labFFopt = wx.StaticText(tabThree, wx.ID_ANY, _('Other options'))
        sizerFFmpeg.Add(labFFopt, 0, wx.ALL | wx.EXPAND, 5)
        gridSizopt = wx.BoxSizer(wx.HORIZONTAL)
        sizerFFmpeg.Add(gridSizopt, 0, wx.EXPAND)

        labFFthreads = wx.StaticText(tabThree, wx.ID_ANY,
                                     (_("Threads used for transcoding "
                                        "(from 0 to 32):")))
        gridSizopt.Add(
            labFFthreads, 0,
            wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)
        self.spinctrl_threads = wx.SpinCtrl(tabThree,
                                            wx.ID_ANY,
                                            f"{self.appdata['ffthreads'][9:]}",
                                            size=(-1, -1),
                                            min=0,
                                            max=32,
                                            style=wx.TE_PROCESS_ENTER)
        gridSizopt.Add(
            self.spinctrl_threads, 1,
            wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)
        # ----
        tabThree.SetSizer(sizerFFmpeg)
        notebook.AddPage(tabThree, _("FFmpeg"))

        # -----tab 4
        self.tabFour = wx.Panel(notebook, wx.ID_ANY)
        sizerYdl = wx.BoxSizer(wx.VERTICAL)
        sizerYdl.Add((0, 15))
        labydl0 = wx.StaticText(self.tabFour, wx.ID_ANY, (''))
        sizerYdl.Add(labydl0, 0, wx.ALL | wx.CENTRE, 5)

        if self.appdata['app'] not in ('pyinstaller', 'appimage', 'embed'):
            url = ('https://packaging.python.org/tutorials/'
                   'installing-packages/#upgrading-packages')
            static0 = _("How to upgrade a Python package")
            instpkg = hpl.HyperLinkCtrl(self.tabFour, -1, static0, URL=url)
            sizerYdl.Add(instpkg, 0, wx.ALL | wx.CENTRE, 2)

        if self.appdata['ostype'] == 'Windows':
            url = ('https://download.microsoft.com/download/1/6/5/165255E7-'
                   '1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe')
            static1 = _("Required: Microsoft Visual C++ 2010 Service Pack 1 "
                        "Redistributable Package (x86)")
            MSVCR = hpl.HyperLinkCtrl(self.tabFour, -1, static1, URL=url)
            sizerYdl.Add(MSVCR, 0, wx.ALL | wx.CENTRE, 2)

        elif (self.appdata['ostype'] == 'Linux'
              and self.appdata['app'] not in ('pyinstaller', 'appimage')):
            url = ('https://packaging.python.org/guides/'
                   'installing-using-linux-tools/')
            static2 = _("How to install pip on your Linux distribution")
            instpip = hpl.HyperLinkCtrl(self.tabFour, -1, static2, URL=url)
            sizerYdl.Add(instpip, 0, wx.ALL | wx.CENTRE, 2)
        sizerYdl.Add((0, 15))

        self.rdbDownloader = wx.RadioBox(self.tabFour,
                                         wx.ID_ANY,
                                         (_("Downloader preferences")),
                                         choices=[('disabled'), ('youtube_dl'),
                                                  ('yt_dlp')],
                                         majorDimension=1,
                                         style=wx.RA_SPECIFY_COLS)
        sizerYdl.Add(self.rdbDownloader, 0, wx.ALL | wx.EXPAND, 5)

        grdydlLoc = wx.BoxSizer(wx.HORIZONTAL)
        sizerYdl.Add(grdydlLoc, 0, wx.ALL | wx.EXPAND, 5)
        labydl2 = wx.StaticText(self.tabFour, wx.ID_ANY, _('Current path:'))
        grdydlLoc.Add(labydl2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 0)

        self.ydlPath = wx.TextCtrl(self.tabFour,
                                   wx.ID_ANY,
                                   "",
                                   style=wx.TE_READONLY)
        grdydlLoc.Add(self.ydlPath, 1, wx.ALL | wx.EXPAND, 5)

        # ---- BEGIN set youtube-dl radiobox
        ydlmsg = _("Make sure you are using the latest available "
                   "version of\n'{}'. This allows you to avoid download "
                   "problems.\n").format(self.appdata['downloader'])

        if self.appdata['app'] == 'pyinstaller':

            if self.appdata['downloader'] == 'disabled':
                self.rdbDownloader.SetSelection(0)
                self.ydlPath.WriteText(_('Disabled'))
            else:
                if self.appdata['downloader'] == 'youtube_dl':
                    self.rdbDownloader.SetSelection(1)

                elif self.appdata['downloader'] == 'yt_dlp':
                    self.rdbDownloader.SetSelection(2)

                if self.appdata['PYLIBYDL'] is None:
                    self.ydlPath.WriteText(str(self.appdata['YDLSITE']))
                else:
                    self.ydlPath.WriteText(_('Not found'))

        elif self.appdata['app'] == 'appimage':

            tip1 = _('Menu bar > Tools > Update {}').format(
                self.appdata['downloader'])

            if self.appdata['downloader'] == 'disabled':
                self.rdbDownloader.SetSelection(0)
                self.ydlPath.WriteText(_('Disabled'))
            else:
                if self.appdata['downloader'] == 'youtube_dl':
                    self.rdbDownloader.SetSelection(1)

                elif self.appdata['downloader'] == 'yt_dlp':
                    self.rdbDownloader.SetSelection(2)

                if self.appdata['PYLIBYDL'] is None:
                    labydl0.SetLabel(f'{ydlmsg}{tip1}')
                    self.ydlPath.WriteText(str(self.appdata['YDLSITE']))
                else:
                    self.ydlPath.WriteText(_('Not Installed'))
        else:
            if self.appdata['downloader'] == 'disabled':
                self.rdbDownloader.SetSelection(0)
                self.ydlPath.WriteText(_('Disabled'))
            else:
                if self.appdata['downloader'] == 'youtube_dl':
                    self.rdbDownloader.SetSelection(1)

                elif self.appdata['downloader'] == 'yt_dlp':
                    self.rdbDownloader.SetSelection(2)

                if self.appdata['PYLIBYDL'] is None:
                    labydl0.SetLabel(f'{ydlmsg}')
                    self.ydlPath.WriteText(str(self.appdata['YDLSITE']))
                else:
                    self.ydlPath.WriteText(_('Not Installed'))
        # ---- END

        # ----
        self.tabFour.SetSizer(sizerYdl)
        notebook.AddPage(self.tabFour, _("Downloader"))

        # -----tab 5
        tabFive = wx.Panel(notebook, wx.ID_ANY)
        sizerAppearance = wx.BoxSizer(wx.VERTICAL)
        sizerAppearance.Add((0, 15))
        labTheme = wx.StaticText(tabFive, wx.ID_ANY, _('Icon themes'))
        sizerAppearance.Add(labTheme, 0, wx.ALL | wx.EXPAND, 5)
        msg = _("The chosen icon theme will only change the icons,\n"
                "background and foreground of some text fields.")
        labIcons = wx.StaticText(tabFive, wx.ID_ANY, (msg))
        sizerAppearance.Add(labIcons, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL,
                            5)
        self.cmbx_icons = wx.ComboBox(tabFive,
                                      wx.ID_ANY,
                                      choices=[
                                          ("Videomass-Light"),
                                          ("Videomass-Dark"),
                                          ("Videomass-Colours"),
                                      ],
                                      size=(200, -1),
                                      style=wx.CB_DROPDOWN | wx.CB_READONLY)
        sizerAppearance.Add(self.cmbx_icons, 0,
                            wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)
        sizerAppearance.Add((0, 15))
        labTB = wx.StaticText(tabFive, wx.ID_ANY, _("Toolbar customization"))
        sizerAppearance.Add(labTB, 0, wx.ALL | wx.EXPAND, 5)
        tbchoice = [
            _('At the top of window (default)'),
            _('At the bottom of window'),
            _('At the right of window'),
            _('At the left of window')
        ]
        self.rdbTBpref = wx.RadioBox(tabFive,
                                     wx.ID_ANY, (_("Place the toolbar")),
                                     choices=tbchoice,
                                     majorDimension=1,
                                     style=wx.RA_SPECIFY_COLS)
        sizerAppearance.Add(self.rdbTBpref, 0, wx.ALL | wx.EXPAND, 5)

        gridTBsize = wx.FlexGridSizer(0, 2, 0, 5)
        sizerAppearance.Add(gridTBsize, 0, wx.ALL, 5)
        lab1_appearance = wx.StaticText(tabFive, wx.ID_ANY, _('Icon size:'))
        gridTBsize.Add(lab1_appearance, 0, wx.ALIGN_CENTER_VERTICAL, 0)

        self.cmbx_iconsSize = wx.ComboBox(tabFive,
                                          wx.ID_ANY,
                                          choices=[("16"), ("24"), ("32"),
                                                   ("64")],
                                          size=(120, -1),
                                          style=wx.CB_DROPDOWN
                                          | wx.CB_READONLY)
        gridTBsize.Add(self.cmbx_iconsSize, 0, wx.ALIGN_CENTER_VERTICAL, 0)

        if 'wx.svg' not in sys.modules:  # only in wx version 4.1 to up
            self.cmbx_iconsSize.Disable()
            lab1_appearance.Disable()

        self.checkbox_tbtext = wx.CheckBox(
            tabFive, wx.ID_ANY, (_("Shows the text in the toolbar buttons")))
        sizerAppearance.Add(self.checkbox_tbtext, 0, wx.ALL, 5)

        tabFive.SetSizer(sizerAppearance)  # aggiungo il sizer su tab 4
        notebook.AddPage(tabFive, _("Appearance"))

        # -----tab 6
        tabSix = wx.Panel(notebook, wx.ID_ANY)
        sizerLog = wx.BoxSizer(wx.VERTICAL)
        sizerLog.Add((0, 15))

        msglog = _("The following settings affect output messages and\n"
                   "the log messages during transcoding processes.\n"
                   "Change only if you know what you are doing.\n")
        labLog = wx.StaticText(tabSix, wx.ID_ANY, (msglog))
        sizerLog.Add(labLog, 0, wx.ALL | wx.CENTRE, 5)
        self.rdbFFmpeg = wx.RadioBox(
            tabSix,
            wx.ID_ANY, ("Set logging level flags used by FFmpeg"),
            choices=SetUp.FFMPEG_LOGLEV,
            majorDimension=1,
            style=wx.RA_SPECIFY_COLS)
        sizerLog.Add(self.rdbFFmpeg, 0, wx.ALL | wx.EXPAND, 5)
        self.rdbFFplay = wx.RadioBox(
            tabSix,
            wx.ID_ANY, ("Set logging level flags used by FFplay"),
            choices=SetUp.FFPLAY_LOGLEV,
            majorDimension=1,
            style=wx.RA_SPECIFY_COLS)
        sizerLog.Add(self.rdbFFplay, 0, wx.ALL | wx.EXPAND, 5)

        tabSix.SetSizer(sizerLog)
        notebook.AddPage(tabSix, _("FFmpeg logging levels"))
        # ------ btns bottom
        grdBtn = wx.GridSizer(1, 2, 0, 0)
        grdhelp = wx.GridSizer(1, 1, 0, 0)
        btn_help = wx.Button(self, wx.ID_HELP, "")
        grdhelp.Add(btn_help, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
        grdBtn.Add(grdhelp)
        grdexit = wx.BoxSizer(wx.HORIZONTAL)
        btn_close = wx.Button(self, wx.ID_CANCEL, "")
        grdexit.Add(btn_close, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
        btn_ok = wx.Button(self, wx.ID_OK, "")
        grdexit.Add(btn_ok, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
        grdBtn.Add(grdexit, flag=wx.ALL | wx.ALIGN_RIGHT | wx.RIGHT, border=0)
        sizer_base.Add(grdBtn, 0, wx.EXPAND)
        # ------ set sizer
        self.SetSizer(sizer_base)
        sizer_base.Fit(self)
        self.Layout()

        # ----------------------Properties----------------------#
        self.SetTitle(_("Settings"))
        # set font
        if self.appdata['ostype'] == 'Darwin':
            labfile.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labdown.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labFFexec.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labFFopt.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labydl0.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.NORMAL))
            labTheme.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labIcons.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.NORMAL))
            labTB.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labLog.SetFont(wx.Font(11, wx.SWISS, wx.NORMAL, wx.NORMAL))
        else:
            labfile.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labdown.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labFFexec.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labFFopt.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labydl0.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL))
            labTheme.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labIcons.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL))
            labTB.SetFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
            labLog.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL))

        #  tooltips
        tip = (_("By assigning an additional suffix you could avoid "
                 "overwriting files"))
        self.text_suffix.SetToolTip(tip)

        # ----------------------Binding (EVT)----------------------#
        self.Bind(wx.EVT_COMBOBOX, self.on_set_lang, self.cmbx_lang)
        self.Bind(wx.EVT_RADIOBOX, self.logging_ffplay, self.rdbFFplay)
        self.Bind(wx.EVT_RADIOBOX, self.logging_ffmpeg, self.rdbFFmpeg)
        self.Bind(wx.EVT_SPINCTRL, self.on_threads, self.spinctrl_threads)
        self.Bind(wx.EVT_BUTTON, self.on_ffmpegPath, self.btn_fsave)
        self.Bind(wx.EVT_CHECKBOX, self.set_Samedest, self.ckbx_dir)
        self.Bind(wx.EVT_TEXT, self.set_Suffix, self.text_suffix)
        self.Bind(wx.EVT_CHECKBOX, self.on_file_to_trash, self.ckbx_trash)
        self.Bind(wx.EVT_BUTTON, self.on_browse_trash, self.btn_trash)
        self.Bind(wx.EVT_BUTTON, self.on_downloadPath, self.btn_YDLpath)
        self.Bind(wx.EVT_CHECKBOX, self.on_playlistFolder, self.ckbx_playlist)
        self.Bind(wx.EVT_CHECKBOX, self.exeFFmpeg, self.checkbox_exeFFmpeg)
        self.Bind(wx.EVT_BUTTON, self.open_path_ffmpeg, self.btn_ffmpeg)
        self.Bind(wx.EVT_CHECKBOX, self.exeFFprobe, self.checkbox_exeFFprobe)
        self.Bind(wx.EVT_BUTTON, self.open_path_ffprobe, self.btn_ffprobe)
        self.Bind(wx.EVT_CHECKBOX, self.exeFFplay, self.checkbox_exeFFplay)
        self.Bind(wx.EVT_BUTTON, self.open_path_ffplay, self.btn_ffplay)
        self.Bind(wx.EVT_COMBOBOX, self.on_Iconthemes, self.cmbx_icons)

        self.Bind(wx.EVT_RADIOBOX, self.on_toolbarPos, self.rdbTBpref)
        self.Bind(wx.EVT_COMBOBOX, self.on_toolbarSize, self.cmbx_iconsSize)
        self.Bind(wx.EVT_CHECKBOX, self.on_toolbarText, self.checkbox_tbtext)
        self.Bind(wx.EVT_CHECKBOX, self.exit_warn, self.checkbox_exit)

        self.Bind(wx.EVT_CHECKBOX, self.clear_Cache, self.checkbox_cacheclr)
        self.Bind(wx.EVT_CHECKBOX, self.clear_logs, self.checkbox_logclr)
        self.Bind(wx.EVT_RADIOBOX, self.on_Ydl_preferences, self.rdbDownloader)
        self.Bind(wx.EVT_BUTTON, self.on_help, btn_help)
        self.Bind(wx.EVT_BUTTON, self.on_cancel, btn_close)
        self.Bind(wx.EVT_BUTTON, self.on_ok, btn_ok)
        # --------------------------------------------#
        self.current_settings()  # call function for initialize setting layout
Exemplo n.º 6
0
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title=u"注册",
                           pos=wx.DefaultPosition,
                           size=wx.Size(300, 400),
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)

        fgSizer6 = wx.FlexGridSizer(4, 1, 0, 0)
        fgSizer6.SetFlexibleDirection(wx.BOTH)
        fgSizer6.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        fgSizer6.Add((0, 40), 1, wx.EXPAND, 5)

        fgSizer9 = wx.FlexGridSizer(1, 3, 0, 0)
        fgSizer9.SetFlexibleDirection(wx.BOTH)
        fgSizer9.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        fgSizer9.Add((50, 0), 1, wx.EXPAND, 5)

        fgSizer8 = wx.FlexGridSizer(6, 2, 5, 0)
        fgSizer8.SetFlexibleDirection(wx.BOTH)
        fgSizer8.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_staticTextUser = wx.StaticText(self, wx.ID_ANY, u"您的昵称",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticTextUser.Wrap(-1)
        fgSizer8.Add(self.m_staticTextUser, 0, wx.ALL, 5)

        self.m_textCtrlUser = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0)
        fgSizer8.Add(self.m_textCtrlUser, 0, wx.ALL, 5)

        self.m_staticTextPass = wx.StaticText(self, wx.ID_ANY, u"您的密码",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticTextPass.Wrap(-1)
        fgSizer8.Add(self.m_staticTextPass, 0, wx.ALL, 5)

        self.m_textCtrlPass = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          wx.TE_PASSWORD)
        fgSizer8.Add(self.m_textCtrlPass, 0, wx.ALL, 5)

        self.m_staticTextSurePass = wx.StaticText(self, wx.ID_ANY, u"确认密码",
                                                  wx.DefaultPosition,
                                                  wx.DefaultSize, 0)
        self.m_staticTextSurePass.Wrap(-1)
        fgSizer8.Add(self.m_staticTextSurePass, 0, wx.ALL, 5)

        self.m_textCtrlSurePass = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                              wx.DefaultPosition,
                                              wx.DefaultSize, wx.TE_PASSWORD)
        fgSizer8.Add(self.m_textCtrlSurePass, 0, wx.ALL, 5)

        self.m_staticTextAge = wx.StaticText(self, wx.ID_ANY, u"年龄",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticTextAge.Wrap(-1)
        fgSizer8.Add(self.m_staticTextAge, 0, wx.ALL, 5)

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

        self.m_textCtrlAge = wx.TextCtrl(self, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.Size(-1, -1), wx.TE_READONLY)
        self.m_textCtrlAge.SetMaxLength(2)
        fgSizer5.Add(self.m_textCtrlAge, 0, wx.ALL, 5)

        self.m_button3 = wx.Button(self, wx.ID_ANY, u".", wx.DefaultPosition,
                                   wx.Size(20, -1), 0)
        fgSizer5.Add(self.m_button3, 0, wx.ALL, 5)

        fgSizer8.Add(fgSizer5, 1, wx.EXPAND, 5)

        self.m_staticTextSex = wx.StaticText(self, wx.ID_ANY, u"性别",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticTextSex.Wrap(-1)
        fgSizer8.Add(self.m_staticTextSex, 0, wx.ALL, 5)

        m_choiceSexChoices = [u"男", u"女"]
        self.m_choiceSex = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition,
                                     wx.DefaultSize, m_choiceSexChoices, 0)
        self.m_choiceSex.SetSelection(0)
        fgSizer8.Add(self.m_choiceSex, 0, wx.ALL, 5)

        self.m_staticTextMotto = wx.StaticText(self, wx.ID_ANY, u"个性签名",
                                               wx.DefaultPosition,
                                               wx.DefaultSize, 0)
        self.m_staticTextMotto.Wrap(-1)
        fgSizer8.Add(self.m_staticTextMotto, 0, wx.ALL, 5)

        self.m_textCtrlMotto = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        fgSizer8.Add(self.m_textCtrlMotto, 0, wx.ALL, 5)

        fgSizer9.Add(fgSizer8, 1, wx.EXPAND, 5)

        fgSizer6.Add(fgSizer9, 1, wx.EXPAND, 5)

        fgSizer6.Add((0, 20), 1, wx.EXPAND, 5)

        fgSizer10 = wx.FlexGridSizer(1, 4, 0, 0)
        fgSizer10.SetFlexibleDirection(wx.BOTH)
        fgSizer10.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        fgSizer10.Add((35, 0), 1, wx.EXPAND, 5)

        self.m_buttonSureReg = wx.Button(self, wx.ID_ANY,
                                         u"注册", wx.DefaultPosition,
                                         wx.Size(100, 30), 0)
        fgSizer10.Add(self.m_buttonSureReg, 0, wx.ALL, 5)

        self.m_buttonCancel = wx.Button(self, wx.ID_ANY,
                                        u"取消", wx.DefaultPosition,
                                        wx.Size(100, 30), 0)
        fgSizer10.Add(self.m_buttonCancel, 0, wx.ALL, 5)

        fgSizer6.Add(fgSizer10, 1, wx.EXPAND, 5)

        self.SetSizer(fgSizer6)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.m_button3.Bind(wx.EVT_BUTTON, self.OnButtonDate)
        self.m_buttonSureReg.Bind(wx.EVT_BUTTON, self.OnButtonSureReg)
        self.m_buttonCancel.Bind(wx.EVT_BUTTON, self.OnButtonCancel)
Exemplo n.º 7
0
  def __init__(self,
               parent,
               pparams,
               info):
    wx.Panel.__init__(self, parent)

    from prime.postrefine.mod_plotter import Plotter

    self.info = info
    self.pparams = pparams
    self.plot = Plotter(self.pparams, self.info)

    self.summary_sizer = wx.BoxSizer(wx.VERTICAL)

    sfont = wx.Font(norm_font_size, wx.DEFAULT, wx.NORMAL, wx.NORMAL)
    bfont = wx.Font(norm_font_size, wx.DEFAULT, wx.NORMAL, wx.BOLD)
    self.SetFont(bfont)

    # Run information
    run_box = wx.StaticBox(self, label='Run Information')
    run_box.SetFont(sfont)
    run_box_sizer = wx.StaticBoxSizer(run_box, wx.VERTICAL)
    run_box_grid = wx.FlexGridSizer(3, 2, 5, 20)
    self.title_txt = wx.StaticText(self, label='')
    self.title_txt.SetFont(sfont)
    self.folder_txt = wx.StaticText(self, label='')
    self.folder_txt.SetFont(sfont)

    run_box_grid.AddMany([(wx.StaticText(self, label='Title')),
                          (self.title_txt, 1, wx.EXPAND),
                          (wx.StaticText(self, label='Directory')),
                          (self.folder_txt, 1, wx.EXPAND)])

    run_box_grid.AddGrowableCol(1, 1)
    run_box_sizer.Add(run_box_grid, flag=wx.EXPAND | wx.ALL, border=10)
    self.summary_sizer.Add(run_box_sizer, flag=wx.EXPAND | wx.ALL, border=10)

    # Table 1
    tb1_box = wx.StaticBox(self, label='Merging Statistics')
    tb1_box.SetFont(sfont)
    tb1_box_sizer = wx.StaticBoxSizer(tb1_box, wx.HORIZONTAL)

    self.tb1_labels, self.tb1_data = self.plot.table_one()
    self.tb1 = ct.TableCtrl(self,
                            rlabels=self.tb1_labels,
                            contents=self.tb1_data,
                            label_style='bold')

    # Buttons (placeholder for now)
    btn_box_sizer = wx.BoxSizer(wx.VERTICAL)
    line_bmp = bitmaps.fetch_custom_icon_bitmap('line_graph24')
    self.btn_stats = ct.GradButton(self,
                                  bmp=line_bmp,
                                  label=' Statistical charts', size=(250, -1))
    txt_bmp = bitmaps.fetch_icon_bitmap('mimetypes', 'txt', scale=(24, 24))
    self.btn_table1 = ct.GradButton(self,
                                  bmp=txt_bmp,
                                  label=' Output Table 1', size=(250, -1))
    btn_box_sizer.Add(self.btn_stats)
    self.Bind(wx.EVT_BUTTON, self.onPlotStats, self.btn_stats)
    btn_box_sizer.Add(self.btn_table1, flag=wx.TOP, border=5)
    self.Bind(wx.EVT_BUTTON, self.onWriteTableOne, self.btn_table1)

    tb1_box_sizer.Add(self.tb1, flag=wx.EXPAND | wx.ALL, border=10)
    tb1_box_sizer.AddStretchSpacer()
    tb1_box_sizer.Add(btn_box_sizer, flag=wx.ALIGN_RIGHT | wx.ALL, border=10)
    self.summary_sizer.Add(tb1_box_sizer, flag=wx.EXPAND | wx.ALL, border=10)

    self.SetSizer(self.summary_sizer)
Exemplo n.º 8
0
def MakeTopasFPASizer(G2frame,FPdlg,SetButtonStatus):
    '''Create a GUI with parameters for the NIST XRD Fundamental Parameters Code. 
    Parameter input is modeled after Topas input parameters.

    :param wx.Frame G2frame: main GSAS-II window
    :param wx.Window FPdlg: Frame or Dialog where GUI will appear
    :param SetButtonStatus: a callback function to call to see what buttons in 
      this windows can be enabled. Called with done=True to trigger closing
      the parent window as well.
    :returns: a sizer with the GUI controls
    '''
    def _onOK(event):
        XferFPAsettings(parmDict)
        SetButtonStatus(done=True) # done=True triggers the simulation
        FPdlg.Destroy()
    def _onClose(event):
        SetButtonStatus()
        FPdlg.Destroy()
    def _onAddWave(event):
        parmDict['numWave'] += 1 
        wx.CallAfter(MakeTopasFPASizer,G2frame,FPdlg,SetButtonStatus)
    def _onRemWave(event):
        parmDict['numWave'] -= 1 
        wx.CallAfter(MakeTopasFPASizer,G2frame,FPdlg,SetButtonStatus)
    def _onSetCu5Wave(event):
        parmDict['wave'] = {i:v for i,v in enumerate((1.534753,1.540596,1.541058,1.54441,1.544721))}
        parmDict['int'] = {i:v for i,v in enumerate((0.0159, 0.5791, 0.0762, 0.2417, 0.0871))}
        parmDict['lwidth'] = {i:v for i,v in enumerate((3.6854, 0.437, 0.6, 0.52, 0.62))}
        parmDict['numWave'] = 5
        wx.CallAfter(MakeTopasFPASizer,G2frame,FPdlg,SetButtonStatus)
    def _onSetCu2Wave(event):
        SetCu2Wave()
        parmDict['numWave'] = 2
        wx.CallAfter(MakeTopasFPASizer,G2frame,FPdlg,SetButtonStatus)
    def _onSetDetBtn(event):
        global DetMode
        if detBtn1.GetValue():
            DetMode = 'BBpoint'
            wx.CallAfter(FillParmSizer)
        else:
            DetMode = 'BBPSD'
            wx.CallAfter(FillParmSizer)
    def _onSetMonoBtn(event):
        global IBmono
        IBmono = not monoBtn1.GetValue()
        wx.CallAfter(FillParmSizer)
    def PlotTopasFPA(event):
        XferFPAsettings(parmDict)
        ttArr = np.arange(max(0.5,
                            simParms['plotpos']-simParms['calcwid']),
                            simParms['plotpos']+simParms['calcwid'],
                            simParms['step'])
        intArr = np.zeros_like(ttArr)
        NISTpk = setupFPAcalc()
        try:
            center_bin_idx,peakObj = doFPAcalc(
                NISTpk,ttArr,simParms['plotpos'],simParms['calcwid'],
                simParms['step'])
        except Exception as err:
            msg = "Error computing convolution, revise input"
            print(msg)
            print(err)
            return
        G2plt.PlotFPAconvolutors(G2frame,NISTpk)
        pkPts = len(peakObj.peak)
        pkMax = peakObj.peak.max()
        startInd = center_bin_idx-(pkPts//2) #this should be the aligned start of the new data
        # scale peak so max I=10,000 and add into intensity array
        if startInd < 0:
            intArr[:startInd+pkPts] += 10000 * peakObj.peak[-startInd:]/pkMax
        elif startInd > len(intArr):
            return
        elif startInd+pkPts >= len(intArr):
            offset = pkPts - len( intArr[startInd:] )
            intArr[startInd:startInd+pkPts-offset] += 10000 * peakObj.peak[:-offset]/pkMax
        else:
            intArr[startInd:startInd+pkPts] += 10000 * peakObj.peak/pkMax
        G2plt.PlotXY(G2frame, [(ttArr, intArr)],
                     labelX=r'$2\theta, deg$',
                     labelY=r'Intensity (arbitrary)',
                     Title='FPA peak', newPlot=True, lines=True)

    if FPdlg.GetSizer(): FPdlg.GetSizer().Clear(True)
    numWave = parmDict['numWave']    
    MainSizer = wx.BoxSizer(wx.VERTICAL)
    MainSizer.Add((-1,5))
    waveSizer = wx.FlexGridSizer(cols=numWave+1,hgap=3,vgap=5)
    for lbl,prm,defVal in zip(
            (u'Wavelength (\u212b)','Rel. Intensity',u'Lorentz Width\n(\u212b/1000)'),
            ('wave','int','lwidth'),
            (0.0,   1.0,   0.1),
            ):
        text = wx.StaticText(FPdlg,wx.ID_ANY,lbl,style=wx.ALIGN_CENTER)
        text.SetBackgroundColour(wx.WHITE)
        waveSizer.Add(text,0,wx.EXPAND)
        if prm not in parmDict: parmDict[prm] = {}
        for i in range(numWave):
            if i not in parmDict[prm]: parmDict[prm][i] = defVal
            ctrl = G2G.ValidatedTxtCtrl(FPdlg,parmDict[prm],i,size=(90,-1))
            waveSizer.Add(ctrl,1,wx.ALIGN_CENTER_VERTICAL,1)
    MainSizer.Add(waveSizer)
    MainSizer.Add((-1,5))
    btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    btn = wx.Button(FPdlg, wx.ID_ANY,'Add wave')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,_onAddWave)
    btn = wx.Button(FPdlg, wx.ID_ANY,'Remove wave')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,_onRemWave)
    btn = wx.Button(FPdlg, wx.ID_ANY,'CuKa1+2')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,_onSetCu2Wave)
    btn = wx.Button(FPdlg, wx.ID_ANY,'CuKa-5wave')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,_onSetCu5Wave)
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)
    MainSizer.Add((-1,5))
    
    btnsizer = wx.GridBagSizer( 2, 5)
    btnsizer.Add( wx.StaticText(FPdlg, wx.ID_ANY, 'Detector type'),
                 (0,0), (2,1), wx.ALIGN_CENTER | wx.ALL, 5)    
    detBtn1 = wx.RadioButton(FPdlg,wx.ID_ANY,'Point',style=wx.RB_GROUP)
    detBtn1.SetValue(DetMode == 'BBpoint')
    btnsizer.Add(detBtn1, (0,1))
    detBtn1.Bind(wx.EVT_RADIOBUTTON,_onSetDetBtn)
    detBtn2 = wx.RadioButton(FPdlg,wx.ID_ANY,'PSD')
    detBtn2.SetValue(not DetMode == 'BBpoint')
    btnsizer.Add(detBtn2, (1,1))
    detBtn2.Bind(wx.EVT_RADIOBUTTON,_onSetDetBtn)
    btnsizer.Add( (40,-1), (0,2), (1,1), wx.ALIGN_CENTER | wx.ALL, 5)    
    btnsizer.Add( wx.StaticText(FPdlg, wx.ID_ANY, 'Incident Beam Mono'),
                 (0,3), (2,1), wx.ALIGN_CENTER | wx.ALL, 5)    
    monoBtn1 = wx.RadioButton(FPdlg,wx.ID_ANY,'No',style=wx.RB_GROUP)
    monoBtn1.SetValue(not IBmono)
    btnsizer.Add(monoBtn1, (0,4))
    monoBtn1.Bind(wx.EVT_RADIOBUTTON,_onSetMonoBtn)
    monoBtn2 = wx.RadioButton(FPdlg,wx.ID_ANY,'Yes')
    monoBtn2.SetValue(IBmono)
    btnsizer.Add(monoBtn2, (1,4))
    monoBtn2.Bind(wx.EVT_RADIOBUTTON,_onSetMonoBtn)
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)

    global prmPnl
    prmPnl = wxscroll.ScrolledPanel(FPdlg, wx.ID_ANY, #size=(200,200),
        style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER)
    prmSizer = wx.FlexGridSizer(cols=3,hgap=3,vgap=5)
    prmPnl.SetSizer(prmSizer)
    FillParmSizer()    
    MainSizer.Add(prmPnl,1,wx.EXPAND,1)
    prmPnl.SetAutoLayout(1)
    prmPnl.SetupScrolling()
    
    MainSizer.Add((-1,4))
    btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    btn = wx.Button(FPdlg, wx.ID_ANY, 'Plot peak')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,PlotTopasFPA)
    btnsizer.Add(wx.StaticText(FPdlg,wx.ID_ANY,' at '))
    if 'plotpos' not in simParms: simParms['plotpos'] =  simParms['minTT']
    ctrl = G2G.ValidatedTxtCtrl(FPdlg,simParms,'plotpos',size=(70,-1))
    btnsizer.Add(ctrl)
    btnsizer.Add(wx.StaticText(FPdlg,wx.ID_ANY,' deg.'))    
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)
    MainSizer.Add((-1,4))
    btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    OKbtn = wx.Button(FPdlg, wx.ID_OK)
    OKbtn.SetDefault()
    btnsizer.Add(OKbtn)
    Cbtn = wx.Button(FPdlg, wx.ID_CLOSE,"Cancel") 
    btnsizer.Add(Cbtn)
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)
    MainSizer.Add((-1,4))
    # bindings for close of window
    OKbtn.Bind(wx.EVT_BUTTON,_onOK)
    Cbtn.Bind(wx.EVT_BUTTON,_onClose)
    FPdlg.SetSizer(MainSizer)
    MainSizer.Layout()
    MainSizer.Fit(FPdlg)
    # control window size
    px,py = prmSizer.GetSize()
    dx,dy = FPdlg.GetSize()
    FPdlg.SetMinSize((dx,dy+200)) # leave a min of 200 points for scroll panel    
    FPdlg.SetSize((max(dx,px+20),min(750,dy+py+30))) # 20 for scroll bar, 30 for a bit of room at bottom
Exemplo n.º 9
0
def MakeSimSizer(G2frame, dlg):
    '''Create a GUI to get simulation with parameters for Fundamental 
    Parameters fitting. 

    :param wx.Window dlg: Frame or Dialog where GUI will appear

    :returns: a sizer with the GUI controls 
 
    '''
    def _onOK(event):
        msg = ''
        if simParms['minTT']-simParms['calcwid']/1.5 < 0.1:
            msg += 'First peak minus half the calc width is too low'
        if simParms['maxTT']+simParms['calcwid']/1.5 > 175:
            if msg: msg += '\n'
            msg += 'Last peak plus half the calc width is too high'
        if simParms['npeaks'] < 8:
            if msg: msg += '\n'
            msg += 'At least 8 peaks are needed'
        if msg:
            G2G.G2MessageBox(dlg,msg,'Bad input, try again')
            return
        # compute "obs" pattern
        ttArr = np.arange(max(0.5,
                            simParms['minTT']-simParms['calcwid']/1.5),
                            simParms['maxTT']+simParms['calcwid']/1.5,
                            simParms['step'])
        intArr = np.zeros_like(ttArr)
        peaklist = np.linspace(simParms['minTT'],simParms['maxTT'],
                               simParms['npeaks'],endpoint=True)
        peakSpacing = (peaklist[-1]-peaklist[0])/(len(peaklist)-1)
        NISTpk = setupFPAcalc()
        minPtsHM = len(intArr)  # initialize points above half-max
        maxPtsHM = 0
        for num,twoth_peak in enumerate(peaklist):
            try:
                center_bin_idx,peakObj = doFPAcalc(
                    NISTpk,ttArr,twoth_peak,simParms['calcwid'],
                    simParms['step'])
            except Exception as err:
                if msg: msg += '\n'
                msg = "Error computing convolution, revise input. Error =\n"+str(err)
                continue
            if num == 0: G2plt.PlotFPAconvolutors(G2frame,NISTpk)
            pkMax = peakObj.peak.max()
            pkPts = len(peakObj.peak)
            minPtsHM = min(minPtsHM,sum(peakObj.peak >= 0.5*pkMax)) # points above half-max
            maxPtsHM = max(maxPtsHM,sum(peakObj.peak >= 0.5*pkMax)) # points above half-max
            startInd = center_bin_idx-(pkPts//2) #this should be the aligned start of the new data
            # scale peak so max I=10,000 and add into intensity array
            if startInd < 0:
                intArr[:startInd+pkPts] += 10000 * peakObj.peak[-startInd:]/pkMax
            elif startInd > len(intArr):
                break
            elif startInd+pkPts >= len(intArr):
                offset = pkPts - len( intArr[startInd:] )
                intArr[startInd:startInd+pkPts-offset] += 10000 * peakObj.peak[:-offset]/pkMax
            else:
                intArr[startInd:startInd+pkPts] += 10000 * peakObj.peak/pkMax
        # check if peaks are too closely spaced
        if maxPtsHM*simParms['step'] > peakSpacing/4:
            if msg: msg += '\n'
            msg += 'Maximum FWHM ({}) is too large compared to the peak spacing ({}). Decrease number of peaks or increase data range.'.format(
                maxPtsHM*simParms['step'], peakSpacing)
        # check if too few points across Hmax
        if minPtsHM < 10:
            if msg: msg += '\n'
            msg += 'There are only {} points above the half-max. 10 are needed. Dropping step size.'.format(minPtsHM)
            simParms['step'] *= 0.5
        if msg:
            G2G.G2MessageBox(dlg,msg,'Bad input, try again')
            wx.CallAfter(MakeSimSizer,G2frame, dlg)
            return
        # pattern has been computed successfully
        dlg.Destroy()
        wx.CallAfter(FitFPApeaks,ttArr, intArr, peaklist, maxPtsHM) # do peakfit outside event callback

    def FitFPApeaks(ttArr, intArr, peaklist, maxPtsHM):
        '''Perform a peak fit to the FP simulated pattern
        '''
        pgbar = wx.ProgressDialog('FPA Simulation','Starting FPA simulation',100,
            parent=G2frame,
            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE #|wx.PD_CAN_ABORT
            )
        pgbar.Raise()
        wx.BeginBusyCursor()
        # pick out one or two most intense wavelengths
        ints = list(NISTparms['emission']['emiss_intensities'])
        Lam1 = NISTparms['emission']['emiss_wavelengths'][np.argmax(ints)]*1e10
        if len(ints) > 1: 
            ints[np.argmax(ints)] = -1
            Lam2 = NISTparms['emission']['emiss_wavelengths'][np.argmax(ints)]*1e10
        else:
            Lam2 = None
        histId = G2frame.AddSimulatedPowder(ttArr,intArr,
                                       'NIST Fundamental Parameters simulation',
                                       Lam1,Lam2)
        controls = G2frame.GPXtree.GetItemPyData(
            G2gd.GetGPXtreeItemId(G2frame,G2frame.root,'Controls'))
        controldat = controls.get('data',
                            {'deriv type':'analytic','min dM/M':0.001,})  #fil
        Parms,Parms2 = G2frame.GPXtree.GetItemPyData(
            G2gd.GetGPXtreeItemId(G2frame,histId,'Instrument Parameters'))
        peakData = G2frame.GPXtree.GetItemPyData(
            G2gd.GetGPXtreeItemId(G2frame,histId,'Peak List'))
        # set background to 0 with one term = 0; disable refinement
        bkg1,bkg2 = bkg = G2frame.GPXtree.GetItemPyData(
            G2gd.GetGPXtreeItemId(G2frame,histId,'Background'))
        bkg1[1]=False
        bkg1[2]=0
        bkg1[3]=0.0
        limits = G2frame.GPXtree.GetItemPyData(
            G2gd.GetGPXtreeItemId(G2frame,histId,'Limits'))
        # approximate asym correction
        try:
            Parms['SH/L'][1] = 0.25 * (
                NISTparms['axial']['length_sample']+
                NISTparms['axial']['slit_length_source']
                        ) / NISTparms['']['diffractometer_radius']
        except:
            pass
        pgbar.Update(5,newmsg='Creating peak list')
        pgbar.Raise()
        for pos in peaklist:
            i = ttArr.searchsorted(pos)
            area = sum(intArr[max(0,i-maxPtsHM):min(len(intArr),i+maxPtsHM)])
            peakData['peaks'].append(G2mth.setPeakparms(Parms,Parms2,pos,area))
        pgbar.Update(10,newmsg='Refining peak positions')
        histData = G2frame.GPXtree.GetItemPyData(histId)
        # refine peak positions only
        bxye = np.zeros(len(histData[1][1]))
        peakData['sigDict'] = G2pwd.DoPeakFit('LSQ',peakData['peaks'],
                                            bkg,limits[1],
                                            Parms,Parms2,histData[1],bxye,[],
                                           False,controldat)[0]
        pgbar.Update(20,newmsg='Refining peak positions && areas')
        # refine peak areas as well
        for pk in peakData['peaks']:
            pk[1] = True
        peakData['sigDict'] = G2pwd.DoPeakFit('LSQ',peakData['peaks'],
                                            bkg,limits[1],
                                            Parms,Parms2,histData[1],bxye,[],
                                           False,controldat)[0]
        pgbar.Update(40,newmsg='Refining profile function')
        # refine profile function
        for p in ('U', 'V', 'W', 'X', 'Y'):
            Parms[p][2] = True
        peakData['sigDict'] = G2pwd.DoPeakFit('LSQ',peakData['peaks'],
                                            bkg,limits[1],
                                            Parms,Parms2,histData[1],bxye,[],
                                           False,controldat)[0]
        pgbar.Update(70,newmsg='Refining profile function && asymmetry')
        # add in asymmetry
        Parms['SH/L'][2] = True
        peakData['sigDict'] = G2pwd.DoPeakFit('LSQ',peakData['peaks'],
                                            bkg,limits[1],
                                            Parms,Parms2,histData[1],bxye,[],
                                           False,controldat)[0]
        pgbar.Update(100,newmsg='Done')
        # reset "initial" profile
        for p in Parms:
            if len(Parms[p]) == 3:
                Parms[p][0] = Parms[p][1]
                Parms[p][2] = False
        pgbar.Destroy()
        wx.EndBusyCursor()
        # save Iparms
        pth = G2G.GetExportPath(G2frame)
        fldlg = wx.FileDialog(G2frame, 'Set name to save GSAS-II instrument parameters file', pth, '', 
            'instrument parameter files (*.instprm)|*.instprm',wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT)
        try:
            if fldlg.ShowModal() == wx.ID_OK:
                filename = fldlg.GetPath()
                # make sure extension is .instprm
                filename = os.path.splitext(filename)[0]+'.instprm'
                File = open(filename,'w')
                File.write("#GSAS-II instrument parameter file; do not add/delete items!\n")
                for item in Parms:
                    File.write(item+':'+str(Parms[item][1])+'\n')
                File.close()
                print ('Instrument parameters saved to: '+filename)
        finally:
            fldlg.Destroy()
        #GSASIIpath.IPyBreak()
        
    def _onClose(event):
        dlg.Destroy()
    def SetButtonStatus(done=False):
        OKbtn.Enable(bool(NISTparms))
        saveBtn.Enable(bool(NISTparms))
        if done: _onOK(None)
    def _onSetFPA(event):
        # Create a non-modal dialog for Topas-style FP input.
        FPdlg = wx.Dialog(dlg,wx.ID_ANY,'FPA parameters',
                style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
        MakeTopasFPASizer(G2frame,FPdlg,SetButtonStatus)
        FPdlg.CenterOnParent()
        FPdlg.Raise()
        FPdlg.Show() 
    def _onSaveFPA(event):
        filename = G2G.askSaveFile(G2frame,'','.NISTfpa',
                                       'dict of NIST FPA values',dlg)
        if not filename: return
        fp = open(filename,'w')
        fp.write('# parameters to be used in the NIST XRD Fundamental Parameters program\n')
        fp.write('{\n')
        for key in sorted(NISTparms):
            fp.write("   '"+key+"' : "+str(NISTparms[key])+",")
            if not key: fp.write('  # global parameters')
            fp.write('\n')
        fp.write('}\n')
        fp.close()
    def _onReadFPA(event):
        filename = G2G.GetImportFile(G2frame,
                message='Read file with dict of values for NIST Fundamental Parameters',
                parent=dlg,
                wildcard='dict of NIST FPA values|*.NISTfpa')
        if not filename: return
        if not filename[0]: return
        try:
            txt = open(filename[0],'r').read()
            NISTparms.clear()
            d = eval(txt)
            NISTparms.update(d)
        except Exception as err:
            G2G.G2MessageBox(dlg,
                    u'Error reading file {}:{}\n'.format(filename,err),
                    'Bad dict input')
        #GSASIIpath.IPyBreak()
        SetButtonStatus()

    if dlg.GetSizer(): dlg.GetSizer().Clear(True)
    MainSizer = wx.BoxSizer(wx.VERTICAL)
    MainSizer.Add(wx.StaticText(dlg,wx.ID_ANY,
            'Fit Profile Parameters to Peaks from Fundamental Parameters',
            style=wx.ALIGN_CENTER),0,wx.EXPAND)
    MainSizer.Add((-1,5))
    prmSizer = wx.FlexGridSizer(cols=2,hgap=3,vgap=5)
    text = wx.StaticText(dlg,wx.ID_ANY,'value',style=wx.ALIGN_CENTER)
    text.SetBackgroundColour(wx.WHITE)
    prmSizer.Add(text,0,wx.EXPAND)
    text = wx.StaticText(dlg,wx.ID_ANY,'explanation',style=wx.ALIGN_CENTER)
    text.SetBackgroundColour(wx.WHITE)
    prmSizer.Add(text,0,wx.EXPAND)
    for key,defVal,text in (
            ('minTT',3.,'Location of first peak in 2theta (deg)'),
            ('maxTT',123.,'Location of last peak in 2theta (deg)'),
            ('step',0.01,'Pattern step size (deg 2theta)'),
            ('npeaks',13.,'Number of peaks'),
            ('calcwid',2.,'Range to compute each peak (deg 2theta)'),
            ):
        if key not in simParms: simParms[key] = defVal
        ctrl = G2G.ValidatedTxtCtrl(dlg,simParms,key,size=(70,-1))
        prmSizer.Add(ctrl,1,wx.ALL|wx.ALIGN_CENTER_VERTICAL,1)
        txt = wx.StaticText(dlg,wx.ID_ANY,text,size=(300,-1))
        txt.Wrap(280)
        prmSizer.Add(txt)
    MainSizer.Add(prmSizer)

    btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    btn = wx.Button(dlg, wx.ID_ANY,'Input FP vals')
    btnsizer.Add(btn)
    btn.Bind(wx.EVT_BUTTON,_onSetFPA)
    saveBtn = wx.Button(dlg, wx.ID_ANY,'Save FPA dict')
    btnsizer.Add(saveBtn)
    saveBtn.Bind(wx.EVT_BUTTON,_onSaveFPA)
    readBtn = wx.Button(dlg, wx.ID_ANY,'Read FPA dict')
    btnsizer.Add(readBtn)
    readBtn.Bind(wx.EVT_BUTTON,_onReadFPA)
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)
    MainSizer.Add((-1,4),1,wx.EXPAND,1)
    txt = wx.StaticText(dlg,wx.ID_ANY,
                            'If you use this, please cite: '+Citation,
                            size=(350,-1))
    txt.Wrap(340)
    MainSizer.Add(txt,0,wx.ALIGN_CENTER)
    btnsizer = wx.BoxSizer(wx.HORIZONTAL)
    OKbtn = wx.Button(dlg, wx.ID_OK)
    OKbtn.SetDefault()
    btnsizer.Add(OKbtn)
    Cbtn = wx.Button(dlg, wx.ID_CLOSE,"Cancel") 
    btnsizer.Add(Cbtn)
    MainSizer.Add(btnsizer, 0, wx.ALIGN_CENTER, 0)
    MainSizer.Add((-1,4),1,wx.EXPAND,1)
    # bindings for close of window
    OKbtn.Bind(wx.EVT_BUTTON,_onOK)
    Cbtn.Bind(wx.EVT_BUTTON,_onClose)
    SetButtonStatus()
    dlg.SetSizer(MainSizer)
    MainSizer.Layout()
    MainSizer.Fit(dlg)
    dlg.SetMinSize(dlg.GetSize())
    dlg.SendSizeEvent()
    dlg.Raise()
Exemplo n.º 10
0
    def __init__(self, parent, log):

        wx.Panel.__init__(self,
                          parent,
                          style=wx.TAB_TRAVERSAL
                          | wx.NO_FULL_REPAINT_ON_RESIZE)

        panel = wx.Panel(self, -1)
        sizer = wx.FlexGridSizer(rows=2, cols=3, vgap=2, hgap=5)

        # 6 Panels To Hold The SpeedMeters ;-)

        panel1 = wx.Panel(panel, -1, style=wx.SUNKEN_BORDER)
        panel2 = wx.Panel(panel, -1, style=wx.RAISED_BORDER)
        panel3 = wx.Panel(panel, -1, style=wx.SUNKEN_BORDER)
        panel4 = wx.Panel(panel, -1, style=wx.RAISED_BORDER)
        panel5 = wx.Panel(panel, -1, style=wx.SUNKEN_BORDER)
        panel6 = wx.Panel(panel, -1, style=wx.RAISED_BORDER)

        # First SpeedMeter: We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_SECTORS: Full Sectors Will Be Drawn, To Indicate Different Intervals
        # SM_DRAW_MIDDLE_TEXT: We Draw Some Text In The Center Of SpeedMeter
        # SM_DRAW_SECONDARY_TICKS: We Draw Secondary (Intermediate) Ticks Between
        #                          The Main Ticks (Intervals)

        self.SpeedWindow1 = SM.SpeedMeter(
            panel1,
            agwStyle=SM.SM_DRAW_HAND | SM.SM_DRAW_SECTORS
            | SM.SM_DRAW_MIDDLE_TEXT | SM.SM_DRAW_SECONDARY_TICKS)

        # Set The Region Of Existence Of SpeedMeter (Always In Radians!!!!)
        self.SpeedWindow1.SetAngleRange(-pi / 6, 7 * pi / 6)

        # Create The Intervals That Will Divide Our SpeedMeter In Sectors
        intervals = range(0, 201, 20)
        self.SpeedWindow1.SetIntervals(intervals)

        # Assign The Same Colours To All Sectors (We Simulate A Car Control For Speed)
        # Usually This Is Black
        colours = [wx.BLACK] * 10
        self.SpeedWindow1.SetIntervalColours(colours)

        # Assign The Ticks: Here They Are Simply The String Equivalent Of The Intervals
        ticks = [str(interval) for interval in intervals]
        self.SpeedWindow1.SetTicks(ticks)
        # Set The Ticks/Tick Markers Colour
        self.SpeedWindow1.SetTicksColour(wx.WHITE)
        # We Want To Draw 5 Secondary Ticks Between The Principal Ticks
        self.SpeedWindow1.SetNumberOfSecondaryTicks(5)

        # Set The Font For The Ticks Markers
        self.SpeedWindow1.SetTicksFont(
            wx.Font(7, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_NORMAL))

        # Set The Text In The Center Of SpeedMeter
        self.SpeedWindow1.SetMiddleText("Km/h")
        # Assign The Colour To The Center Text
        self.SpeedWindow1.SetMiddleTextColour(wx.WHITE)
        # Assign A Font To The Center Text
        self.SpeedWindow1.SetMiddleTextFont(
            wx.Font(8, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_BOLD))

        # Set The Colour For The Hand Indicator
        self.SpeedWindow1.SetHandColour(wx.Colour(255, 50, 0))

        # Do Not Draw The External (Container) Arc. Drawing The External Arc May
        # Sometimes Create Uglier Controls. Try To Comment This Line And See It
        # For Yourself!
        self.SpeedWindow1.DrawExternalArc(False)

        # Set The Current Value For The SpeedMeter
        self.SpeedWindow1.SetSpeedValue(44)

        # Second SpeedMeter: We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_SECTORS: Full Sectors Will Be Drawn, To Indicate Different Intervals
        # SM_DRAW_MIDDLE_TEXT: We Draw Some Text In The Center Of SpeedMeter
        # SM_DRAW_SECONDARY_TICKS: We Draw Secondary (Intermediate) Ticks Between
        #                          The Main Ticks (Intervals)
        # SM_DRAW_PARTIAL_FILLER: The Region Passed By The Hand Indicator Is Highlighted
        #                         With A Different Filling Colour
        # SM_DRAW_SHADOW: A Shadow For The Hand Indicator Is Drawn

        self.SpeedWindow2 = SM.SpeedMeter(
            panel2,
            agwStyle=SM.SM_DRAW_HAND | SM.SM_DRAW_SECTORS
            | SM.SM_DRAW_MIDDLE_TEXT | SM.SM_DRAW_SECONDARY_TICKS
            | SM.SM_DRAW_PARTIAL_FILLER | SM.SM_DRAW_SHADOW)

        # We Want To Simulate A Clock. Somewhat Tricky, But Did The Job
        self.SpeedWindow2.SetAngleRange(pi / 2, 5 * pi / 2)

        intervals = range(0, 13)
        self.SpeedWindow2.SetIntervals(intervals)

        colours = [wx.SystemSettings.GetColour(0)] * 12
        self.SpeedWindow2.SetIntervalColours(colours)

        ticks = [str(interval) for interval in intervals]
        ticks[-1] = ""
        ticks[0] = "12"
        self.SpeedWindow2.SetTicks(ticks)
        self.SpeedWindow2.SetTicksColour(wx.BLUE)
        self.SpeedWindow2.SetTicksFont(
            wx.Font(11, wx.FONTFAMILY_SCRIPT, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_BOLD, True))
        self.SpeedWindow2.SetNumberOfSecondaryTicks(4)

        # Set The Colour For The External Arc
        self.SpeedWindow2.SetArcColour(wx.BLUE)

        self.SpeedWindow2.SetHandColour(wx.BLACK)

        self.SpeedWindow2.SetMiddleText("0 s")
        self.SpeedWindow2.SetMiddleTextColour(wx.RED)

        # We Set The Background Colour Of The SpeedMeter OutSide The Control
        self.SpeedWindow2.SetSpeedBackground(wx.WHITE)

        # Set The Colour For The Shadow
        self.SpeedWindow2.SetShadowColour(wx.Colour(128, 128, 128))

        self.SpeedWindow2.SetSpeedValue(0.0)

        # Third SpeedMeter: We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_PARTIAL_SECTORS: Partial Sectors Will Be Drawn, To Indicate Different Intervals
        # SM_DRAW_MIDDLE_ICON: We Draw An Icon In The Center Of SpeedMeter

        self.SpeedWindow3 = SM.SpeedMeter(panel3,
                                          agwStyle=SM.SM_DRAW_HAND
                                          | SM.SM_DRAW_PARTIAL_SECTORS
                                          | SM.SM_DRAW_MIDDLE_ICON)

        # We Want To Simulate A Car Gas-Control
        self.SpeedWindow3.SetAngleRange(-pi / 3, pi / 3)

        intervals = range(0, 5)
        self.SpeedWindow3.SetIntervals(intervals)

        colours = [wx.BLACK] * 3
        colours.append(wx.RED)
        self.SpeedWindow3.SetIntervalColours(colours)

        ticks = ["F", "", "", "", "E"]
        self.SpeedWindow3.SetTicks(ticks)
        self.SpeedWindow3.SetTicksColour(wx.WHITE)

        self.SpeedWindow3.SetHandColour(wx.Colour(255, 255, 0))

        # Define The Icon We Want
        icon = wx.Icon(os.path.normpath(os.path.join(bitmapDir, "smfuel.ico")),
                       wx.BITMAP_TYPE_ICO)
        icon.SetWidth(24)
        icon.SetHeight(24)

        # Draw The Icon In The Center Of SpeedMeter
        self.SpeedWindow3.SetMiddleIcon(icon)

        self.SpeedWindow3.SetSpeedBackground(wx.BLACK)

        self.SpeedWindow3.SetArcColour(wx.WHITE)

        self.SpeedWindow3.SetSpeedValue(0.7)

        # Fourth SpeedMeter: We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_SECTORS: Full Sectors Will Be Drawn, To Indicate Different Intervals
        # SM_DRAW_SHADOW: A Shadow For The Hand Indicator Is Drawn
        # SM_DRAW_MIDDLE_ICON: We Draw An Icon In The Center Of SpeedMeter
        #
        # NOTE: We Use The Mouse Style mousestyle=SM_MOUSE_TRACK. In This Way, Mouse
        # Events Are Catched (Mainly Left Clicks/Drags) And You Can Change The Speed
        # Value Using The Mouse

        self.SpeedWindow4 = SM.SpeedMeter(
            panel4,
            agwStyle=SM.SM_DRAW_HAND | SM.SM_DRAW_SECTORS | SM.SM_DRAW_SHADOW
            | SM.SM_DRAW_MIDDLE_ICON,
            mousestyle=SM.SM_MOUSE_TRACK)

        # We Want To Simulate Some Kind Of Thermometer (In Celsius Degrees!!!)
        self.SpeedWindow4.SetAngleRange(pi, 2 * pi)

        intervals = range(35, 44)
        self.SpeedWindow4.SetIntervals(intervals)

        colours = [wx.BLUE] * 5
        colours.extend([wx.Colour(255, 255, 0)] * 2)
        colours.append(wx.RED)
        self.SpeedWindow4.SetIntervalColours(colours)

        ticks = [str(interval) + "C" for interval in intervals]
        self.SpeedWindow4.SetTicks(ticks)
        self.SpeedWindow4.SetTicksColour(wx.BLACK)
        self.SpeedWindow4.SetTicksFont(
            wx.Font(7, wx.FONTFAMILY_TELETYPE, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_BOLD))

        self.SpeedWindow4.SetHandColour(wx.Colour(0, 0, 255))

        self.SpeedWindow4.SetSpeedBackground(wx.SystemSettings.GetColour(0))

        self.SpeedWindow4.DrawExternalArc(False)

        self.SpeedWindow4.SetHandColour(wx.GREEN)
        self.SpeedWindow4.SetShadowColour(wx.Colour(50, 50, 50))

        # We Want A Simple Arrow As Indicator, Not The More Scenic Hand ;-)
        self.SpeedWindow4.SetHandStyle("Arrow")

        # Define The Icon We Want
        icon = wx.Icon(os.path.normpath(os.path.join(bitmapDir, "smtemp.ico")),
                       wx.BITMAP_TYPE_ICO)
        icon.SetWidth(16)
        icon.SetHeight(16)

        # Draw The Icon In The Center Of SpeedMeter
        self.SpeedWindow4.SetMiddleIcon(icon)

        # Quite An High Fever!!!
        self.SpeedWindow4.SetSpeedValue(41.4)

        # Fifth SpeedMeter: We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_PARTIAL_SECTORS: Partial Sectors Will Be Drawn, To Indicate Different Intervals
        # SM_DRAW_SECONDARY_TICKS: We Draw Secondary (Intermediate) Ticks Between
        #                          The Main Ticks (Intervals)
        # SM_DRAW_MIDDLE_TEXT: We Draw Some Text In The Center Of SpeedMeter
        # SM_ROTATE_TEXT: The Ticks Texts Are Rotated Accordingly To Their Angle

        self.SpeedWindow5 = SM.SpeedMeter(
            panel5,
            agwStyle=SM.SM_DRAW_HAND | SM.SM_DRAW_PARTIAL_SECTORS
            | SM.SM_DRAW_SECONDARY_TICKS | SM.SM_DRAW_MIDDLE_TEXT
            | SM.SM_ROTATE_TEXT)

        # We Want To Simulate The Round Per Meter Control In A Car
        self.SpeedWindow5.SetAngleRange(-pi / 6, 7 * pi / 6)

        intervals = range(0, 9)
        self.SpeedWindow5.SetIntervals(intervals)

        colours = [wx.BLACK] * 6
        colours.append(wx.Colour(255, 255, 0))
        colours.append(wx.RED)
        self.SpeedWindow5.SetIntervalColours(colours)

        ticks = [str(interval) for interval in intervals]
        self.SpeedWindow5.SetTicks(ticks)
        self.SpeedWindow5.SetTicksColour(wx.WHITE)
        self.SpeedWindow5.SetTicksFont(
            wx.Font(7, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_NORMAL))

        self.SpeedWindow5.SetHandColour(wx.Colour(255, 50, 0))

        self.SpeedWindow5.SetSpeedBackground(wx.SystemSettings.GetColour(0))

        self.SpeedWindow5.DrawExternalArc(False)

        self.SpeedWindow5.SetShadowColour(wx.Colour(50, 50, 50))

        self.SpeedWindow5.SetMiddleText("rpm")
        self.SpeedWindow5.SetMiddleTextColour(wx.WHITE)
        self.SpeedWindow5.SetMiddleTextFont(
            wx.Font(8, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_BOLD))
        self.SpeedWindow5.SetSpeedBackground(wx.Colour(160, 160, 160))

        self.SpeedWindow5.SetSpeedValue(5.6)

        # Sixth SpeedMeter: That Is Complete And Complex Example.
        #                   We Use The Following Styles:
        #
        # SM_DRAW_HAND: We Want To Draw The Hand (Arrow) Indicator
        # SM_DRAW_PARTIAL_FILLER: The Region Passed By The Hand Indicator Is Highlighted
        #                         With A Different Filling Colour
        # SM_DRAW_MIDDLE_ICON: We Draw An Icon In The Center Of SpeedMeter
        # SM_DRAW_GRADIENT: A Circular Colour Gradient Is Drawn Inside The SpeedMeter, To
        #                   Give Some Kind Of Scenic Effect
        # SM_DRAW_FANCY_TICKS: We Use wx.lib.
        # SM_DRAW_SHADOW: A Shadow For The Hand Indicator Is Drawn

        self.SpeedWindow6 = SM.SpeedMeter(
            panel6,
            agwStyle=SM.SM_DRAW_HAND | SM.SM_DRAW_PARTIAL_FILLER
            | SM.SM_DRAW_MIDDLE_ICON | SM.SM_DRAW_GRADIENT
            | SM.SM_DRAW_FANCY_TICKS | SM.SM_DRAW_SHADOW)

        self.SpeedWindow6.SetAngleRange(0, 4 * pi / 3)

        intervals = [
            0, pi / 6,
            sqrt(pi), 2. / 3. * pi, pi**2 / 4, pi, 7. / 6. * pi, 4 * pi / 3
        ]
        self.SpeedWindow6.SetIntervals(intervals)

        # If You Use The Style SM_DRAW_FANCY_TICKS, Refer To wx.lib.fancytext To Create
        # Correct XML Strings To Put Here
        ticks = [
            "0", "<pi/>/6", "sq(<pi/>)", "2<pi/>/3", "<pi/><sup>2</sup>/4",
            "<pi/>", "7<pi/>/6", "4<pi/>/3"
        ]
        self.SpeedWindow6.SetTicks(ticks)
        self.SpeedWindow6.SetTicksColour(wx.Colour(0, 90, 0))
        self.SpeedWindow6.SetTicksFont(
            wx.Font(6, wx.FONTFAMILY_ROMAN, wx.FONTSTYLE_NORMAL,
                    wx.FONTWEIGHT_BOLD))

        self.SpeedWindow6.SetHandColour(wx.Colour(60, 60, 60))

        self.SpeedWindow6.DrawExternalArc(False)

        self.SpeedWindow6.SetFillerColour(wx.Colour(145, 220, 200))

        self.SpeedWindow6.SetShadowColour(wx.BLACK)

        self.SpeedWindow6.SetDirection("Reverse")

        self.SpeedWindow6.SetSpeedBackground(wx.SystemSettings.GetColour(0))

        # Set The First Gradient Colour, Which Is The Colour Near The External Arc
        self.SpeedWindow6.SetFirstGradientColour(wx.RED)
        # Set The Second Gradient Colour, Which Is The Colour Near The Center Of The SpeedMeter
        self.SpeedWindow6.SetSecondGradientColour(wx.WHITE)

        icon = wx.Icon(os.path.normpath(os.path.join(bitmapDir, "smpi.ico")),
                       wx.BITMAP_TYPE_ICO)
        icon.SetHeight(12)
        icon.SetWidth(12)
        self.SpeedWindow6.SetMiddleIcon(icon)

        self.SpeedWindow6.SetSpeedValue(pi / 3)

        # End Of SpeedMeter Controls Construction. Add Some Functionality

        self.isalive = 0

        # These Are Cosmetics For The First SpeedMeter Control
        bsizer1 = wx.BoxSizer(wx.VERTICAL)

        hsizer1 = wx.BoxSizer(wx.HORIZONTAL)
        slider = wx.Slider(panel1,
                           -1,
                           44,
                           0,
                           200,
                           size=(-1, 40),
                           style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS
                           | wx.SL_LABELS)
        slider.SetTickFreq(5)
        slider.Bind(wx.EVT_SCROLL, self.OnSliderScroll)
        slider.SetToolTip(wx.ToolTip("Drag The Slider To Change The Speed!"))

        hsizer1.Add(slider, 1, wx.EXPAND)

        bsizer1.Add(self.SpeedWindow1, 1, wx.EXPAND)
        bsizer1.Add(hsizer1, 0, wx.EXPAND)
        panel1.SetSizer(bsizer1)

        # These Are Cosmetics For The Second SpeedMeter Control

        # Create The Timer For The Clock
        self.timer = wx.PyTimer(self.ClockTimer)
        self.currvalue = 0

        bsizer2 = wx.BoxSizer(wx.VERTICAL)

        hsizer2 = wx.BoxSizer(wx.HORIZONTAL)
        stattext2 = wx.StaticText(panel2,
                                  -1,
                                  "A Simple Clock",
                                  style=wx.ALIGN_CENTER)

        button2 = wx.Button(panel2, -1, "Stop")
        self.stopped = 0
        button2.Bind(wx.EVT_BUTTON, self.OnStopClock)
        button2.SetToolTip(wx.ToolTip("Click To Stop/Resume The Clock"))

        hsizer2.Add(button2, 0, wx.LEFT, 5)
        hsizer2.Add(stattext2, 1, wx.EXPAND)

        bsizer2.Add(self.SpeedWindow2, 1, wx.EXPAND)
        bsizer2.Add(hsizer2, 0, wx.EXPAND)
        panel2.SetSizer(bsizer2)

        # These Are Cosmetics For The Third SpeedMeter Control
        self.timer3 = wx.PyTimer(self.OilTimer)

        bsizer3 = wx.BoxSizer(wx.VERTICAL)

        hsizer3 = wx.BoxSizer(wx.HORIZONTAL)
        sc = wx.SpinCtrl(panel3, -1, size=(60, 20))
        sc.SetRange(1, 250)
        sc.SetValue(50)

        self.spinctrl = sc

        strs = "Change The Speed And See How Much Fuel You Loose"
        self.spinctrl.SetToolTip(wx.ToolTip(strs))

        button3 = wx.Button(panel3, -1, "Refill!", size=(60, 20))
        button3.SetToolTip(wx.ToolTip("Click Here To Refill!"))
        button3.Bind(wx.EVT_BUTTON, self.OnRefill)

        hsizer3.Add(self.spinctrl, 0, wx.EXPAND | wx.LEFT, 5)
        hsizer3.Add(button3, 0, wx.EXPAND | wx.LEFT, 5)
        hsizer3.Add((1, 0), 2, wx.EXPAND)

        bsizer3.Add(self.SpeedWindow3, 1, wx.EXPAND)
        bsizer3.Add(hsizer3, 0, wx.EXPAND)
        panel3.SetSizer(bsizer3)

        # These Are Cosmetics For The Fourth SpeedMeter Control
        bsizer4 = wx.BoxSizer(wx.VERTICAL)

        hsizer4 = wx.BoxSizer(wx.HORIZONTAL)
        stattext4 = wx.StaticText(panel4, -1, "Use The Mouse ;-)")

        hsizer4.Add(stattext4, 1, wx.EXPAND | wx.LEFT, 5)

        bsizer4.Add(self.SpeedWindow4, 1, wx.EXPAND)
        bsizer4.Add(hsizer4, 0, wx.EXPAND)
        panel4.SetSizer(bsizer4)

        # These Are Cosmetics For The Fifth SpeedMeter Control
        bsizer5 = wx.BoxSizer(wx.VERTICAL)

        hsizer5 = wx.BoxSizer(wx.HORIZONTAL)

        button5 = wx.Button(panel5, -1, "Simulate")
        button5.SetToolTip(wx.ToolTip("Start A Car Acceleration Simulation"))
        button5.Bind(wx.EVT_BUTTON, self.OnSimulate)

        hsizer5.Add(button5, 0, wx.EXPAND | wx.LEFT, 5)
        hsizer5.Add((1, 0), 1, wx.EXPAND)

        bsizer5.Add(self.SpeedWindow5, 1, wx.EXPAND)
        bsizer5.Add(hsizer5, 0, wx.EXPAND)
        panel5.SetSizer(bsizer5)

        # These Are Cosmetics For The Sixth SpeedMeter Control
        bsizer6 = wx.BoxSizer(wx.VERTICAL)
        hsizer6 = wx.BoxSizer(wx.HORIZONTAL)

        txtctrl6 = wx.TextCtrl(panel6, -1, "60", size=(60, 20))
        txtctrl6.SetToolTip(wx.ToolTip("Insert An Angle In DEGREES"))

        self.txtctrl = txtctrl6

        button6 = wx.Button(panel6, -1, "Go!")
        button6.SetToolTip(
            wx.ToolTip("Calculate The Equivalent In Radians And Display It"))

        hsizer6.Add(txtctrl6, 0, wx.EXPAND | wx.LEFT, 5)
        hsizer6.Add(button6, 0, wx.EXPAND | wx.LEFT, 5)
        hsizer6.Add((1, 0), 1, wx.EXPAND)

        button6.Bind(wx.EVT_BUTTON, self.OnCalculate)
        bsizer6.Add(self.SpeedWindow6, 1, wx.EXPAND)
        bsizer6.Add(hsizer6, 0, wx.EXPAND)
        panel6.SetSizer(bsizer6)

        bsizer1.Layout()
        bsizer2.Layout()
        bsizer3.Layout()
        bsizer4.Layout()
        bsizer5.Layout()
        bsizer6.Layout()

        sizer.Add(panel1, 1, wx.EXPAND)
        sizer.Add(panel2, 1, wx.EXPAND)
        sizer.Add(panel3, 1, wx.EXPAND)

        sizer.Add(panel4, 1, wx.EXPAND)
        sizer.Add(panel5, 1, wx.EXPAND)
        sizer.Add(panel6, 1, wx.EXPAND)

        sizer.AddGrowableRow(0)
        sizer.AddGrowableRow(1)

        sizer.AddGrowableCol(0)
        sizer.AddGrowableCol(1)
        sizer.AddGrowableCol(2)

        panel.SetSizer(sizer)

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        mainSizer.Add(panel, 1, wx.EXPAND)
        self.SetSizer(mainSizer)
        mainSizer.Layout()

        self.SendSizeEvent()

        self.timer.Start(1000)
        self.timer3.Start(500)
Exemplo n.º 11
0
    def __init__(self, parent, headers, cfg, cfgGl, applyFunc):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Headers",
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.headers = headers
        self.cfg = cfg
        self.cfgGl = cfgGl
        self.applyFunc = applyFunc

        # whether some events are blocked
        self.block = False

        self.hdrIndex = -1
        if len(self.headers.hdrs) > 0:
            self.hdrIndex = 0

        vsizer = wx.BoxSizer(wx.VERTICAL)

        hsizer = wx.BoxSizer(wx.HORIZONTAL)

        hsizer.Add(wx.StaticText(self, -1, "Empty lines after headers:"), 0,
                   wx.ALIGN_CENTER_VERTICAL)

        self.elinesEntry = wx.SpinCtrl(self, -1)
        self.elinesEntry.SetRange(0, 5)
        wx.EVT_SPINCTRL(self, self.elinesEntry.GetId(), self.OnMisc)
        wx.EVT_KILL_FOCUS(self.elinesEntry, self.OnKillFocus)
        hsizer.Add(self.elinesEntry, 0, wx.LEFT, 10)

        vsizer.Add(hsizer)

        vsizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND | wx.TOP | wx.BOTTOM,
                   10)

        tmp = wx.StaticText(self, -1, "Strings:")
        vsizer.Add(tmp)

        self.stringsLb = wx.ListBox(self, -1, size=(200, 100))
        vsizer.Add(self.stringsLb, 0, wx.EXPAND)

        hsizer = wx.BoxSizer(wx.HORIZONTAL)

        self.addBtn = gutil.createStockButton(self, "Add")
        hsizer.Add(self.addBtn)
        wx.EVT_BUTTON(self, self.addBtn.GetId(), self.OnAddString)
        gutil.btnDblClick(self.addBtn, self.OnAddString)

        self.delBtn = gutil.createStockButton(self, "Delete")
        hsizer.Add(self.delBtn, 0, wx.LEFT, 10)
        wx.EVT_BUTTON(self, self.delBtn.GetId(), self.OnDeleteString)
        gutil.btnDblClick(self.delBtn, self.OnDeleteString)

        vsizer.Add(hsizer, 0, wx.TOP, 5)

        hsizer = wx.BoxSizer(wx.HORIZONTAL)

        hsizer.Add(wx.StaticText(self, -1, "Text:"), 0,
                   wx.ALIGN_CENTER_VERTICAL)

        self.textEntry = wx.TextCtrl(self, -1)
        hsizer.Add(self.textEntry, 1, wx.LEFT, 10)
        wx.EVT_TEXT(self, self.textEntry.GetId(), self.OnMisc)

        vsizer.Add(hsizer, 0, wx.EXPAND | wx.TOP, 20)

        vsizer.Add(
            wx.StaticText(self, -1,
                          "'${PAGE}' will be replaced by the page number."), 0,
            wx.ALIGN_CENTER | wx.TOP, 5)

        hsizerTop = wx.BoxSizer(wx.HORIZONTAL)

        gsizer = wx.FlexGridSizer(3, 2, 5, 0)

        gsizer.Add(wx.StaticText(self, -1, "Header line:"), 0,
                   wx.ALIGN_CENTER_VERTICAL)

        self.lineEntry = wx.SpinCtrl(self, -1)
        self.lineEntry.SetRange(1, 5)
        wx.EVT_SPINCTRL(self, self.lineEntry.GetId(), self.OnMisc)
        wx.EVT_KILL_FOCUS(self.lineEntry, self.OnKillFocus)
        gsizer.Add(self.lineEntry)

        gsizer.Add(wx.StaticText(self, -1, "X offset (characters):"), 0,
                   wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10)

        self.xoffEntry = wx.SpinCtrl(self, -1)
        self.xoffEntry.SetRange(-100, 100)
        wx.EVT_SPINCTRL(self, self.xoffEntry.GetId(), self.OnMisc)
        wx.EVT_KILL_FOCUS(self.xoffEntry, self.OnKillFocus)
        gsizer.Add(self.xoffEntry)

        gsizer.Add(wx.StaticText(self, -1, "Alignment:"), 0,
                   wx.ALIGN_CENTER_VERTICAL)
        self.alignCombo = wx.ComboBox(self, -1, style=wx.CB_READONLY)

        for it in [("Left", util.ALIGN_LEFT), ("Center", util.ALIGN_CENTER),
                   ("Right", util.ALIGN_RIGHT)]:
            self.alignCombo.Append(it[0], it[1])

        gsizer.Add(self.alignCombo)
        wx.EVT_COMBOBOX(self, self.alignCombo.GetId(), self.OnMisc)

        hsizerTop.Add(gsizer)

        bsizer = wx.StaticBoxSizer(wx.StaticBox(self, -1, "Style"),
                                   wx.HORIZONTAL)

        vsizer2 = wx.BoxSizer(wx.VERTICAL)

        # wxGTK adds way more space by default than wxMSW between the
        # items, have to adjust for that
        pad = 0
        if misc.isWindows:
            pad = 5

        self.addCheckBox("Bold", self, vsizer2, pad)
        self.addCheckBox("Italic", self, vsizer2, pad)
        self.addCheckBox("Underlined", self, vsizer2, pad)

        bsizer.Add(vsizer2)

        hsizerTop.Add(bsizer, 0, wx.LEFT, 40)

        vsizer.Add(hsizerTop, 0, wx.TOP, 20)

        hsizer = wx.BoxSizer(wx.HORIZONTAL)

        hsizer.Add((1, 1), 1)

        previewBtn = gutil.createStockButton(self, "Preview")
        hsizer.Add(previewBtn)

        applyBtn = gutil.createStockButton(self, "Apply")
        hsizer.Add(applyBtn, 0, wx.LEFT, 10)

        cancelBtn = gutil.createStockButton(self, "Cancel")
        hsizer.Add(cancelBtn, 0, wx.LEFT, 10)

        okBtn = gutil.createStockButton(self, "OK")
        hsizer.Add(okBtn, 0, wx.LEFT, 10)

        vsizer.Add(hsizer, 0, wx.EXPAND | wx.TOP, 20)

        util.finishWindow(self, vsizer)

        wx.EVT_BUTTON(self, previewBtn.GetId(), self.OnPreview)
        wx.EVT_BUTTON(self, applyBtn.GetId(), self.OnApply)
        wx.EVT_BUTTON(self, cancelBtn.GetId(), self.OnCancel)
        wx.EVT_BUTTON(self, okBtn.GetId(), self.OnOK)

        wx.EVT_LISTBOX(self, self.stringsLb.GetId(), self.OnStringsLb)

        # list of widgets that are specific to editing the selected string
        self.widList = [
            self.textEntry, self.xoffEntry, self.alignCombo, self.lineEntry,
            self.boldCb, self.italicCb, self.underlinedCb
        ]

        self.updateGui()

        self.textEntry.SetFocus()
Exemplo n.º 12
0
    def __init__(self, parent, port, aui_notebook, manager, app):

        # dictionary for plots
        self._dict = {}

        # parent is the main frame
        self.panel = wx.Panel(app.main_frame)

        self.datarequest = wx.CheckBox(self.panel, label="Show data points")
        self.linerequest = wx.CheckBox(self.panel, label="Show line")
        self.legendrequest = wx.CheckBox(self.panel, label="Show Legend")
        self.guidelinesrequest = wx.CheckBox(self.panel,
                                             label="Show Guidelines")

        # ititial conditions
        self.linerequest.SetValue(True)
        self.legendrequest.SetValue(True)
        self.guidelinesrequest.SetValue(True)

        cbxsizer = wx.BoxSizer(wx.HORIZONTAL)

        cbxsizer.AddMany([
            (self.guidelinesrequest, 1, wx.EXPAND),
            (self.datarequest, 1, wx.EXPAND),
            (self.linerequest, 1, wx.EXPAND),
            (self.legendrequest, 1, wx.EXPAND),
        ])

        hbox = wx.BoxSizer(wx.HORIZONTAL)
        fgs = wx.FlexGridSizer(4, 1, 10, 10)

        self.panel.fig = Figure((5, 3), 75)
        self.panel.canvas = FigureCanvas(self.panel, 1, self.panel.fig)
        self.panel.toolbar = NavigationToolbar(
            self.panel.canvas)  # matplotlib toolbar
        self.panel.toolbar.Realize()

        self.items_in_plot = wx.CheckListBox(self.panel,
                                             name="Ports Displayed",
                                             choices=[])

        canvas_sizer = wx.BoxSizer(wx.HORIZONTAL)
        canvas_sizer.AddMany([(self.panel.canvas, 5, wx.EXPAND),
                              (self.items_in_plot, 1, wx.EXPAND)])

        dt = MyDropTarget(self, self.panel.canvas, app)
        self.panel.canvas.SetDropTarget(dt)

        fgs.AddMany([
            (canvas_sizer, 1, wx.EXPAND),
            (self.panel.toolbar, 1, wx.EXPAND),
            (cbxsizer, 1, wx.EXPAND),
        ])

        fgs.AddGrowableRow(0, 7)
        fgs.AddGrowableCol(0, 1)

        hbox.Add(fgs, proportion=1, flag=wx.ALL | wx.EXPAND, border=15)
        self.panel.SetSizer(hbox)

        self.panel.Bind(wx.EVT_CHECKBOX, self.on_data_point_request,
                        self.datarequest)
        self.panel.Bind(wx.EVT_CHECKBOX, self.on_line_request,
                        self.linerequest)
        self.panel.Bind(wx.EVT_CHECKBOX, self.on_legend_request,
                        self.legendrequest)
        self.panel.Bind(wx.EVT_CHECKBOX, self.on_guideline_request,
                        self.guidelinesrequest)
        self.panel.Bind(wx.EVT_CHECKLISTBOX, self.on_port_select,
                        self.items_in_plot)

        self.ports = []
        self.evaluate()

        self.datapoints = False
        self.drawline = True
        self.legend = True
        self.guidelines = True

        self.selected_ports = []
Exemplo n.º 13
0
	def __init__(self, parent):
		wx.Frame.__init__ (self, parent, id=wx.ID_ANY, title=u"Cari Pekerjaan", pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

		self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)

		bSizer1 = wx.BoxSizer(wx.VERTICAL)

		self.m_panel1 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
		self.m_panel1.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Tw Cen MT"))

		bSizer5 = wx.BoxSizer(wx.VERTICAL)

		bSizer2 = wx.BoxSizer(wx.HORIZONTAL)

		bSizer2.Add((0, 0), 1, wx.EXPAND, 5)

		self.m_staticText1 = wx.StaticText(self.m_panel1, wx.ID_ANY, u"Nama Pekerjaan", wx.DefaultPosition, wx.DefaultSize, 0)
		self.m_staticText1.Wrap(-1)

		bSizer2.Add(self.m_staticText1, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

		self.m_textCtrl1 = wx.TextCtrl(self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
		self.m_textCtrl1.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Tw Cen MT"))

		bSizer2.Add(self.m_textCtrl1, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

		self.m_button3 = wx.TextCtrl(self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
		self.m_button3.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Tw Cen MT"))

		self.m_staticTextKode = wx.StaticText(self.m_panel1, wx.ID_ANY, label="Cari Dalam Bahasa Inggris")
		self.m_staticTextKode.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Tw Cen MT"))
		self.m_staticTextKode.Wrap(-1)

		# self.m_button3 = wx.Button( self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		# self.m_button3.SetBitmap( wx.NullBitmap )

		bSizer2.Add(self.m_staticTextKode, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

		bSizer2.Add(self.m_button3, 1, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5)

		bSizer5.Add(bSizer2, 0, wx.EXPAND, 5)

		from AppsSDS.db import db
		self.listprofesiona = db.QueryList()
		print (self.listprofesiona.query2())
		# print (list(self.listprofesiona.query().keys()))
		# m_listBox1Choices = list(self.listprofesiona.query().keys())
		m_listBox1Choices = list(self.listprofesiona.query2())

		print(type(m_listBox1Choices))
		# self.m_listBox1 = wx.ListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_listBox1Choices, wx.LB_NEEDED_SB|wx.LB_SORT )
		# bSizer5.Add( self.m_listBox1, 1, wx.ALL|wx.EXPAND, 5 )
		# self.m_listBox1.Hide()

		self.m_listCtrl1 = wx.ListCtrl(self.m_panel1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_EDIT_LABELS | wx.LC_REPORT)
		bSizer5.Add(self.m_listCtrl1, 1, wx.ALL | wx.EXPAND, 5)

		self.m_listCtrl1.InsertColumn(0, "Nama Pekerjaan", width=450, format=wx.LIST_FORMAT_LEFT)
		self.m_listCtrl1.InsertColumn(1, "Kode", width=75, format=wx.LIST_FORMAT_LEFT)
		self.m_listCtrl1.InsertColumn(2, "Pekerjaan Bahasa Indonesia", width=450, format=wx.LIST_FORMAT_LEFT)
		
		# print (m_listBox1Choices)
		for listdatabaseimport in range(len(m_listBox1Choices)) :
			print (listdatabaseimport)
			self.m_listCtrl1.InsertItem(listdatabaseimport, m_listBox1Choices[listdatabaseimport][0])
			self.m_listCtrl1.SetItem(listdatabaseimport, 1, m_listBox1Choices[listdatabaseimport][1])
			self.m_listCtrl1.SetItem(listdatabaseimport, 2, m_listBox1Choices[listdatabaseimport][2])

		fgSizer1 = wx.FlexGridSizer(0, 2, 0, 0)
		fgSizer1.AddGrowableCol(0)
		fgSizer1.AddGrowableCol(1)
		fgSizer1.AddGrowableRow(0)
		fgSizer1.SetFlexibleDirection(wx.BOTH)
		fgSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

		self.cancel = wx.Button(self.m_panel1, wx.ID_ANY, u"Cancel", wx.DefaultPosition, wx.DefaultSize, 0)
		fgSizer1.Add(self.cancel, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5)

		self.ok = wx.Button(self.m_panel1, wx.ID_ANY, u"Ok", wx.DefaultPosition, wx.DefaultSize, 0)
		fgSizer1.Add(self.ok, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)

		bSizer5.Add(fgSizer1, 0, wx.EXPAND | wx.ALIGN_RIGHT, 5)

		self.m_panel1.SetSizer(bSizer5)
		self.m_panel1.Layout()
		bSizer5.Fit(self.m_panel1)
		bSizer1.Add(self.m_panel1, 1, wx.EXPAND | wx.ALL, 5)

		self.SetSizer(bSizer1)
		self.Layout()

		self.Centre(wx.BOTH)

		# Connect Events
		self.m_textCtrl1.Bind(wx.EVT_TEXT, self.m_textCtrl_listOnText)
		# self.m_button3.Bind( wx.EVT_BUTTON, self.m_button3_cariOnButtonClick )
		self.m_staticTextKode.Bind(wx.EVT_TEXT, self.m_textCtrlKode_listOnText)

		import os
		import pathlib
		pathf = pathlib.Path.cwd() / "images/symbol/search.jpg"
		self.image = wx.Image(str(pathf))
		self.re_image = self.image.Rescale(40, 20)
		# self.m_button3.SetBitmap( wx.Bitmap( self.re_image ) )

		self.m_button3.Refresh()
		self.m_button3.Layout()
		self.SetSizer(bSizer1)
		self.Refresh()
		self.Layout()
		self.SetSize(800, 600)
		self.Centre(wx.BOTH)

		# Connect Events
		self.m_textCtrl1.Bind(wx.EVT_TEXT, self.m_textCtrl_listOnText)
		self.m_button3.Bind(wx.EVT_TEXT, self.m_button3_cariOnButtonClick)

		# Connect Events
		self.cancel.Bind(wx.EVT_BUTTON, self.m_tombolcancel_lb)
		self.ok.Bind(wx.EVT_BUTTON, self.tombolok_lb)
		# self.m_listBox1.Bind( wx.EVT_LISTBOX_DCLICK, self.m_listboxselect )
		self.m_textCtrl1.Bind(wx.EVT_TEXT, self.m_textCtrl_listOnText)
		# self.m_button3.Bind( wx.EVT_BUTTON, self.m_button3_cariOnButtonClick )
		self.m_listCtrl1.Bind(wx.EVT_LEFT_DCLICK, self.m_listCtrl1OnLeftDClick)
Exemplo n.º 14
0
def AdjustSettingsDialog(parent, localsettings):

    if miscmethods.ConfirmMessage(
            GetLabel("launchnodatabaseservermessage", localsettings), parent):

        dialog = wx.Dialog(parent, -1,
                           GetLabel("launchdbiplabel", localsettings))

        dialogsizer = wx.BoxSizer(wx.VERTICAL)

        panel = wx.Panel(dialog)

        topsizer = wx.BoxSizer(wx.VERTICAL)

        gridsizer = wx.FlexGridSizer(cols=2)
        gridsizer.AddGrowableCol(1)

        dbiplabel = wx.StaticText(
            panel, -1,
            miscmethods.NoWrap(GetLabel("launchdbiplabel", localsettings)))
        gridsizer.Add(dbiplabel, 0, wx.EXPAND)
        dbipentry = wx.TextCtrl(panel, -1, localsettings.dbip, size=(200, -1))
        gridsizer.Add(dbipentry, 1, wx.EXPAND)

        dbuserlabel = wx.StaticText(
            panel, -1,
            miscmethods.NoWrap(GetLabel("launchdbuserlabel", localsettings)))
        gridsizer.Add(dbuserlabel, 0, wx.EXPAND)
        dbuserentry = wx.TextCtrl(panel, -1, localsettings.dbuser)
        gridsizer.Add(dbuserentry, 1, wx.EXPAND)

        dbpasslabel = wx.StaticText(
            panel, -1,
            miscmethods.NoWrap(GetLabel("launchdbpasslabel", localsettings)))
        gridsizer.Add(dbpasslabel, 0, wx.EXPAND)
        dbpassentry = wx.TextCtrl(panel, -1, localsettings.dbpass)
        gridsizer.Add(dbpassentry, 1, wx.EXPAND)

        topsizer.Add(gridsizer, 0, wx.EXPAND)

        submitbitmap = wx.Bitmap("icons/submit.png")
        submitbutton = wx.BitmapButton(panel, -1, submitbitmap)
        submitbutton.SetToolTipString(GetLabel("submitlabel", localsettings))
        submitbutton.Bind(wx.EVT_BUTTON, SubmitSettings)
        topsizer.Add(submitbutton, 0, wx.ALIGN_CENTER)

        panel.SetSizer(topsizer)

        panel.dbuserentry = dbuserentry
        panel.dbpassentry = dbpassentry
        panel.dbipentry = dbipentry

        panel.localsettings = localsettings

        dialogsizer.Add(panel, 1, wx.EXPAND)

        dialog.SetSizer(dialogsizer)

        dialog.Fit()

        dialog.ShowModal()

    else:

        sys.exit()
Exemplo n.º 15
0
    def __init__(self, parent):
        wx.Panel.__init__(self, parent)
        default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR)
        self.SetBackgroundColour(default_colour)

        #self.SetBackgroundColour(wx.Colour(255,255,255))
        self.SetAutoLayout(1)


        # Fixed hyperlink items
        tooltip = wx.ToolTip(_("Automatically select largest disconnected region and create new surface"))
        link_largest = hl.HyperLinkCtrl(self, -1, _("Select largest surface"))
        link_largest.SetUnderlines(False, False, False)
        link_largest.SetColours("BLACK", "BLACK", "BLACK")
        link_largest.SetToolTip(tooltip)
        link_largest.AutoBrowse(False)
        link_largest.UpdateLink()
        link_largest.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkLargest)

        tooltip = wx.ToolTip(_("Automatically select disconnected regions and create a new surface per region"))
        link_split_all = hl.HyperLinkCtrl(self, -1,_("Split all disconnected surfaces"))
        link_split_all.SetUnderlines(False, False, False)
        link_split_all.SetColours("BLACK", "BLACK", "BLACK")
        link_split_all.SetToolTip(tooltip)
        link_split_all.AutoBrowse(False)
        link_split_all.UpdateLink()
        link_split_all.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkSplit)

        tooltip = wx.ToolTip(_("Manually insert seeds of regions of interest and create a new surface"))
        link_seeds = hl.HyperLinkCtrl(self,-1,_("Select regions of interest..."))
        link_seeds.SetUnderlines(False, False, False)
        link_seeds.SetColours("BLACK", "BLACK", "BLACK")
        link_seeds.SetToolTip(tooltip)
        link_seeds.AutoBrowse(False)
        link_seeds.UpdateLink()
        link_seeds.Bind(hl.EVT_HYPERLINK_LEFT, self.OnLinkSeed)

        # Image(s) for buttons
        img_largest = wx.Image(os.path.join(const.ICON_DIR, "connectivity_largest.png"),
                               wx.BITMAP_TYPE_PNG)
        img_largest.Rescale(25, 25)
        bmp_largest = img_largest.ConvertToBitmap()

        img_split_all = wx.Image(os.path.join(const.ICON_DIR, "connectivity_split_all.png"),
                                 wx.BITMAP_TYPE_PNG)
        img_split_all.Rescale(25, 25)
        bmp_split_all = img_split_all.ConvertToBitmap()

        img_seeds = wx.Image(os.path.join(const.ICON_DIR, "connectivity_manual.png"),
                             wx.BITMAP_TYPE_PNG)
        img_seeds.Rescale(25, 25)
        bmp_seeds = img_seeds.ConvertToBitmap()

        # Buttons related to hyperlinks
        button_style = pbtn.PB_STYLE_SQUARE | pbtn.PB_STYLE_DEFAULT
        button_style_plus = button_style|pbtn.PB_STYLE_TOGGLE

        button_split = pbtn.PlateButton(self, BTN_SPLIT, "", bmp_split_all,
                                        style=button_style)
        button_largest = pbtn.PlateButton(self, BTN_LARGEST, "", bmp_largest,
                                          style=button_style)
        button_seeds = pbtn.PlateButton(self, BTN_SEEDS, "", bmp_seeds,
                                        style=button_style_plus)

        self.button_seeds = button_seeds

        # When using PlaneButton, it is necessary to bind events from parent win
        self.Bind(wx.EVT_BUTTON, self.OnButton)
        self.Bind(wx.EVT_TOGGLEBUTTON, self.OnToggleButton)

        # Tags and grid sizer for fixed items
        flag_link = wx.EXPAND|wx.GROW|wx.LEFT|wx.TOP
        flag_button = wx.EXPAND | wx.GROW

        #fixed_sizer = wx.FlexGridSizer(rows=3, cols=2, hgap=2, vgap=0)
        fixed_sizer = wx.FlexGridSizer(rows=3, cols=2, hgap=2, vgap=0)
        fixed_sizer.AddGrowableCol(0, 1)
        fixed_sizer.AddMany([(link_largest, 1, flag_link, 3),
                             (button_largest, 0, flag_button),
                             (link_seeds, 1, flag_link, 3),
                             (button_seeds, 0, flag_button),
                             (link_split_all, 1, flag_link, 3),
                             (button_split, 0, flag_button)])

        # Add line sizers into main sizer
        main_sizer = wx.BoxSizer(wx.VERTICAL)
        main_sizer.Add(fixed_sizer, 0, wx.GROW|wx.EXPAND|wx.TOP, 5)

        # Update main sizer and panel layout
        self.SetSizerAndFit(main_sizer)
        self.Update()
        self.sizer = main_sizer
Exemplo n.º 16
0
    def __init__(self, parent, db_filename, address):
        wx.Dialog.__init__(self, parent,
                           title='Fetching %s' % address,
                           style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)

        self.db_filename = db_filename
        self.address = address
        self.data = None
        self.vectors_downloaded = 0
        self.chunks_decoded = 0
        self.cover_received = 0
        self.data_decoded = 0

        self.logger = logging.getLogger('collage_proxy')
        self.logger.info('Building fetch window')

        self.sizer = wx.FlexGridSizer(wx.VERTICAL)
        self.sizer.AddGrowableRow(1)
        self.sizer.AddGrowableCol(0)

        status_str = 'Currently fetching %s\n' % address + \
                     'This program will open new Firefox windows. ' + \
                     'Do not interfere with these windows.'
        label = wx.StaticText(self, label=status_str, style=wx.ALIGN_CENTER)
        self.sizer.Add(label, flag=wx.ALIGN_CENTER)
        self.sizer.Add(wx.StaticLine(self, style=wx.LI_HORIZONTAL), flag=wx.EXPAND)

        status_sizer = wx.BoxSizer(wx.VERTICAL)

        self.status_label = wx.StaticText(self, label='Opening Firefox', style=wx.ALIGN_LEFT)
        defFont = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
        self.status_label.SetFont(wx.Font(defFont.GetPointSize()+2, wx.DEFAULT, wx.NORMAL, wx.NORMAL))
        status_sizer.Add(self.status_label, flag=wx.ALIGN_LEFT)
        self.vectors_label = wx.StaticText(self, label='0 vectors downloaded', style=wx.ALIGN_LEFT)
        status_sizer.Add(self.vectors_label, flag=wx.ALIGN_LEFT)
        self.chunks_label = wx.StaticText(self, label='0 chunks decoded', style=wx.ALIGN_LEFT)
        status_sizer.Add(self.chunks_label, flag=wx.ALIGN_LEFT)
        self.efficiency_label = wx.StaticText(self, label=' ', style=wx.ALIGN_LEFT)
        status_sizer.Add(self.efficiency_label, flag=wx.ALIGN_LEFT)

        self.sizer.Add(status_sizer, flag=wx.ALL, border=4)

        cancel_button = wx.Button(self, id=wx.ID_CANCEL)
        self.sizer.Add(cancel_button, flag=wx.ALIGN_RIGHT)
        self.Bind(wx.EVT_BUTTON, self.on_cancel, cancel_button)
        self.Bind(wx.EVT_CLOSE, self.on_close, self)

        self.SetAutoLayout(True)
        self.SetSizer(self.sizer)
        self.sizer.Fit(self)
        self.Layout()

        self.log_queue = Queue.Queue(100)

        self.thread = DownloadThread(self.log_queue, db_filename, address)
        self.thread.daemon = True
        self.thread.start()

        Publisher().subscribe(self.update_status, 'status')
        Publisher().subscribe(self.update_vector, 'vector')
        Publisher().subscribe(self.update_chunk, 'chunk')
        Publisher().subscribe(self.log_message, 'message')
        Publisher().subscribe(self.log_error, 'error')

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.on_tick, self.timer)
        self.timer.Start(milliseconds=1000, oneShot=False)
Exemplo n.º 17
0
    def __init__(self, parent, IDindividu=None, dictFamillesRattachees={}):
        wx.Panel.__init__(self,
                          parent,
                          id=-1,
                          name="DLG_Individu_pieces",
                          style=wx.TAB_TRAVERSAL)
        self.parent = parent
        self.IDindividu = IDindividu
        self.dictFamillesRattachees = dictFamillesRattachees

        # Pièces à fournir
        self.staticbox_pieces_obligatoires = wx.StaticBox(
            self, -1, _(u"Pièces à fournir"))
        self.ctrl_pieces_obligatoires = CTRL_Pieces_obligatoires.CTRL(
            self,
            IDindividu=IDindividu,
            dictFamillesRattachees=dictFamillesRattachees,
            largeurColonne=140)
        couleur_fond = UTILS_Interface.GetValeur("couleur_tres_claire",
                                                 wx.Colour(240, 251, 237))
        self.ctrl_pieces_obligatoires.SetBackgroundColour(couleur_fond)
        self.ctrl_pieces_obligatoires.SetMinSize((150, 50))

        # Pièces fournies
        self.staticbox_pieces = wx.StaticBox(self, -1, _(u"Pièces fournies"))
        self.ctrl_pieces = OL_Pieces.ListView(
            self,
            IDindividu=IDindividu,
            dictFamillesRattachees=self.dictFamillesRattachees,
            id=-1,
            name="OL_pieces",
            style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL)
        self.ctrl_pieces.SetMinSize((150, 50))

        self.bouton_ajouter = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Ajouter.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_modifier = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Modifier.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_supprimer = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Supprimer.png"),
                      wx.BITMAP_TYPE_ANY))

        # Cotisations individuelles
        self.staticbox_cotisations = wx.StaticBox(
            self, -1, _(u"Cotisations familiales et individuelles"))
        codesColonnes = [
            "IDcotisation", "date_debut", "date_fin", "beneficiaires", "nom",
            "numero", "date_creation_carte", "depot_nom", "activites",
            "observations"
        ]
        checkColonne = True
        triColonne = "date_debut"
        self.ctrl_cotisations = OL_Liste_cotisations.ListView(
            self,
            IDindividu=IDindividu,
            dictFamillesRattachees=self.dictFamillesRattachees,
            mode="individu",
            codesColonnes=codesColonnes,
            checkColonne=checkColonne,
            triColonne=triColonne,
            id=-1,
            style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL)

        self.bouton_ajouter_cotisation = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Ajouter.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_modifier_cotisation = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Modifier.png"),
                      wx.BITMAP_TYPE_ANY))
        self.bouton_supprimer_cotisation = wx.BitmapButton(
            self, -1,
            wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Supprimer.png"),
                      wx.BITMAP_TYPE_ANY))

        # Binds
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAjouter, self.bouton_ajouter)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonModifier, self.bouton_modifier)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonSupprimer, self.bouton_supprimer)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAjouter_Cotisation,
                  self.bouton_ajouter_cotisation)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonModifier_Cotisation,
                  self.bouton_modifier_cotisation)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonSupprimer_Cotisation,
                  self.bouton_supprimer_cotisation)

        # Propriétés
        self.bouton_ajouter.SetToolTipString(
            _(u"Cliquez ici pour saisir une pièce"))
        self.bouton_modifier.SetToolTipString(
            _(u"Cliquez ici pour modifier la pièce sélectionnée"))
        self.bouton_supprimer.SetToolTipString(
            _(u"Cliquez ici pour supprimer la pièce sélectionnée"))
        self.bouton_ajouter_cotisation.SetToolTipString(
            _(u"Cliquez ici pour saisir une cotisation individuelle"))
        self.bouton_modifier_cotisation.SetToolTipString(
            _(u"Cliquez ici pour modifier la cotisation individuelle sélectionnée"
              ))
        self.bouton_supprimer_cotisation.SetToolTipString(
            _(u"Cliquez ici pour supprimer la cotisation individuelle sélectionnée"
              ))

        # --- Layout ---
        grid_sizer_base = wx.FlexGridSizer(rows=2, cols=1, vgap=0, hgap=0)

        grid_sizer_haut = wx.FlexGridSizer(rows=1, cols=2, vgap=10, hgap=10)

        # Pièces à fournir
        staticbox_pieces_obligatoires = wx.StaticBoxSizer(
            self.staticbox_pieces_obligatoires, wx.VERTICAL)
        grid_sizer_pieces_obligatoires = wx.FlexGridSizer(rows=1,
                                                          cols=2,
                                                          vgap=5,
                                                          hgap=5)
        grid_sizer_pieces_obligatoires.Add(self.ctrl_pieces_obligatoires, 1,
                                           wx.EXPAND, 0)
        grid_sizer_pieces_obligatoires.AddGrowableCol(0)
        grid_sizer_pieces_obligatoires.AddGrowableRow(0)
        staticbox_pieces_obligatoires.Add(grid_sizer_pieces_obligatoires, 1,
                                          wx.EXPAND | wx.ALL, 5)
        grid_sizer_haut.Add(staticbox_pieces_obligatoires, 0, wx.EXPAND, 0)

        # Pièces à fournir
        staticbox_pieces = wx.StaticBoxSizer(self.staticbox_pieces,
                                             wx.VERTICAL)
        grid_sizer_pieces = wx.FlexGridSizer(rows=1, cols=2, vgap=5, hgap=5)
        grid_sizer_pieces.Add(self.ctrl_pieces, 1, wx.EXPAND, 0)
        grid_sizer_boutons = wx.FlexGridSizer(rows=3, cols=1, vgap=5, hgap=5)
        grid_sizer_boutons.Add(self.bouton_ajouter, 0, wx.ALL, 0)
        grid_sizer_boutons.Add(self.bouton_modifier, 0, wx.ALL, 0)
        grid_sizer_boutons.Add(self.bouton_supprimer, 0, wx.ALL, 0)
        grid_sizer_pieces.Add(grid_sizer_boutons, 1, wx.ALL, 0)
        grid_sizer_pieces.AddGrowableCol(0)
        grid_sizer_pieces.AddGrowableRow(0)
        staticbox_pieces.Add(grid_sizer_pieces, 1, wx.EXPAND | wx.ALL, 5)
        grid_sizer_haut.Add(staticbox_pieces, 1, wx.EXPAND, 0)

        grid_sizer_base.Add(grid_sizer_haut, 1, wx.EXPAND | wx.ALL, 5)
        grid_sizer_haut.AddGrowableCol(1)
        grid_sizer_haut.AddGrowableRow(0)

        # Cotisations
        staticbox_cotisations = wx.StaticBoxSizer(self.staticbox_cotisations,
                                                  wx.VERTICAL)
        grid_sizer_cotisations = wx.FlexGridSizer(rows=1,
                                                  cols=2,
                                                  vgap=5,
                                                  hgap=5)

        grid_sizer_cotisations.Add(self.ctrl_cotisations, 1, wx.EXPAND, 0)

        grid_sizer_boutons = wx.FlexGridSizer(rows=3, cols=1, vgap=5, hgap=5)
        grid_sizer_boutons.Add(self.bouton_ajouter_cotisation, 0, wx.ALL, 0)
        grid_sizer_boutons.Add(self.bouton_modifier_cotisation, 0, wx.ALL, 0)
        grid_sizer_boutons.Add(self.bouton_supprimer_cotisation, 0, wx.ALL, 0)
        grid_sizer_cotisations.Add(grid_sizer_boutons, 1, wx.ALL, 0)

        grid_sizer_cotisations.AddGrowableCol(0)
        grid_sizer_cotisations.AddGrowableRow(0)
        staticbox_cotisations.Add(grid_sizer_cotisations, 1,
                                  wx.EXPAND | wx.ALL, 5)
        grid_sizer_base.Add(staticbox_cotisations, 1,
                            wx.EXPAND | wx.LEFT | wx.RIGHT | wx.BOTTOM, 5)

        self.SetSizer(grid_sizer_base)
        grid_sizer_base.Fit(self)
        grid_sizer_base.AddGrowableCol(0)
        grid_sizer_base.AddGrowableRow(0)
        self.Layout()
Exemplo n.º 18
0
    def __do_layout(self):
        grid_sizer_base = wx.FlexGridSizer(rows=1, cols=2, vgap=10, hgap=10)
        box_donnees = wx.StaticBoxSizer(self.box_donnees_staticbox,
                                        wx.VERTICAL)

        grid_sizer_gauche = wx.FlexGridSizer(rows=3, cols=1, vgap=10, hgap=10)

        # Nom
        box_nom = wx.StaticBoxSizer(self.box_nom_staticbox, wx.VERTICAL)
        grid_sizer_nom = wx.FlexGridSizer(rows=1, cols=2, vgap=5, hgap=5)
        grid_sizer_nom.Add(self.label_nom, 0,
                           wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_nom.Add(self.ctrl_nom, 0, wx.EXPAND, 0)
        grid_sizer_nom.AddGrowableCol(1)
        box_nom.Add(grid_sizer_nom, 1, wx.ALL | wx.EXPAND, 10)
        grid_sizer_gauche.Add(box_nom, 1, wx.EXPAND, 0)

        # mdp
        box_mdp = wx.StaticBoxSizer(self.box_mdp_staticbox, wx.VERTICAL)
        grid_sizer_mdp = wx.FlexGridSizer(rows=3, cols=2, vgap=5, hgap=5)
        grid_sizer_mdp.Add(self.label_cryptage, 0,
                           wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_mdp.Add(self.check_cryptage, 0, wx.EXPAND, 0)
        grid_sizer_mdp.Add(self.label_mdp, 0,
                           wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_mdp.Add(self.ctrl_mdp, 0, wx.EXPAND, 0)
        grid_sizer_mdp.Add(self.label_confirmation, 0,
                           wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_mdp.Add(self.ctrl_confirmation, 0, wx.EXPAND, 0)
        grid_sizer_mdp.AddGrowableCol(1)
        box_mdp.Add(grid_sizer_mdp, 1, wx.ALL | wx.EXPAND, 10)
        grid_sizer_gauche.Add(box_mdp, 1, wx.EXPAND, 0)

        # Destination
        box_destination = wx.StaticBoxSizer(self.box_destination_staticbox,
                                            wx.VERTICAL)
        grid_sizer_destination = wx.FlexGridSizer(rows=2,
                                                  cols=1,
                                                  vgap=5,
                                                  hgap=5)

        # Email
        grid_sizer_email = wx.FlexGridSizer(rows=1, cols=2, vgap=5, hgap=5)
        grid_sizer_email.Add(self.check_email, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_email.Add(self.ctrl_email, 0, wx.EXPAND, 0)
        grid_sizer_email.AddGrowableCol(1)
        grid_sizer_destination.Add(grid_sizer_email, 1, wx.EXPAND, 0)

        # Répertoire
        grid_sizer_repertoire = wx.FlexGridSizer(rows=1,
                                                 cols=3,
                                                 vgap=5,
                                                 hgap=5)
        grid_sizer_repertoire.Add(self.check_repertoire, 0,
                                  wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_repertoire.Add(self.ctrl_repertoire, 0, wx.EXPAND, 0)
        grid_sizer_repertoire.Add(self.bouton_repertoire, 0, 0, 0)
        grid_sizer_repertoire.AddGrowableCol(1)
        grid_sizer_destination.Add(grid_sizer_repertoire, 1, wx.EXPAND, 0)

        box_destination.Add(grid_sizer_destination, 1, wx.ALL | wx.EXPAND, 10)
        grid_sizer_gauche.Add(box_destination, 1, wx.EXPAND, 0)

        grid_sizer_base.Add(grid_sizer_gauche, 1,
                            wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 10)

        box_donnees.Add(self.ctrl_donnees, 1,
                        wx.LEFT | wx.RIGHT | wx.TOP | wx.EXPAND, 10)

        # Checkbox filtres
        grid_sizer_filtres = wx.FlexGridSizer(rows=1, cols=2, vgap=10, hgap=10)
        grid_sizer_filtres.Add(self.check_locaux, 0, 0, 0)
        grid_sizer_filtres.Add(self.check_reseau, 0, 0, 0)
        box_donnees.Add(grid_sizer_filtres, 0, wx.ALL, 10)

        grid_sizer_base.Add(box_donnees, 1,
                            wx.EXPAND | wx.TOP | wx.BOTTOM | wx.RIGHT, 10)

        self.SetSizer(grid_sizer_base)
        grid_sizer_base.Fit(self)
        grid_sizer_base.AddGrowableRow(0)
        grid_sizer_base.AddGrowableCol(1)
        self.Layout()
Exemplo n.º 19
0
                                  style=wx.ALIGN_CENTER,
                                  size=(300, 25))
testdata_neg_text = wx.StaticText(bkg,
                                  label="负样本",
                                  style=wx.ALIGN_CENTER,
                                  size=(300, 25))
testdata_pos_acc = wx.StaticText(bkg,
                                 label="测试准确率:0.5",
                                 style=wx.ALIGN_CENTER,
                                 size=(300, 25))
testdata_neg_acc = wx.StaticText(bkg,
                                 label="测试准确率:0.5",
                                 style=wx.ALIGN_CENTER,
                                 size=(300, 25))

test_pos_picbox = wx.FlexGridSizer(cols=9, vgap=2, hgap=2)
for b_i in img_boxs_instances[:45]:
    test_pos_picbox.Add(b_i[0], 0, wx.LEFT, border=1)
# for box in testimg_pos_boxs:
#     test_pos_picbox.Add(box, 0, wx.LEFT, border=1)
test_neg_picbox = wx.FlexGridSizer(cols=9, vgap=2, hgap=2)
for b_i in img_boxs_instances[45:]:
    test_neg_picbox.Add(b_i[0], 0, wx.LEFT, border=1)
# for box in testimg_neg_boxs:
#     test_neg_picbox.Add(box, 0, wx.LEFT, border=1)

train_data_text = wx.StaticText(bkg,
                                label="训练集:10",
                                style=wx.ALIGN_CENTER,
                                size=(300, 25))
traindata_number = 10
Exemplo n.º 20
0
    def __init__(self, parent, log):
        wx.Panel.__init__(self, parent, -1)
        self.log = log

        btn = wx.Button(self, -1, "Select Font")
        self.Bind(wx.EVT_BUTTON, self.OnSelectFont, btn)

        self.sampleText = stattext.GenStaticText(self, -1, "Sample Text")
        self.sampleText.SetBackgroundColour(wx.WHITE)

        self.curFont = self.sampleText.GetFont()
        self.curClr = wx.BLACK

        fgs = wx.FlexGridSizer(cols=2, vgap=5, hgap=5)
        fgs.AddGrowableCol(1)
        fgs.AddGrowableRow(0)

        fgs.Add(btn)
        fgs.Add(self.sampleText, 0, wx.ADJUST_MINSIZE | wx.GROW)

        fgs.Add((15, 15))
        fgs.Add((15, 15))  # an empty row

        fgs.Add(wx.StaticText(self, -1, "PointSize:"))
        self.ps = wx.StaticText(self, -1, "")
        font = self.ps.GetFont()
        font.SetWeight(wx.BOLD)
        self.ps.SetFont(font)
        fgs.Add(self.ps, 0, wx.ADJUST_MINSIZE)

        fgs.Add(wx.StaticText(self, -1, "Family:"))
        self.family = wx.StaticText(self, -1, "")
        self.family.SetFont(font)
        fgs.Add(self.family, 0, wx.ADJUST_MINSIZE)

        fgs.Add(wx.StaticText(self, -1, "Style:"))
        self.style = wx.StaticText(self, -1, "")
        self.style.SetFont(font)
        fgs.Add(self.style, 0, wx.ADJUST_MINSIZE)

        fgs.Add(wx.StaticText(self, -1, "Weight:"))
        self.weight = wx.StaticText(self, -1, "")
        self.weight.SetFont(font)
        fgs.Add(self.weight, 0, wx.ADJUST_MINSIZE)

        fgs.Add(wx.StaticText(self, -1, "Face:"))
        self.face = wx.StaticText(self, -1, "")
        self.face.SetFont(font)
        fgs.Add(self.face, 0, wx.ADJUST_MINSIZE)

        fgs.Add((15, 15))
        fgs.Add((15, 15))  # an empty row

        fgs.Add(wx.StaticText(self, -1, "wx.NativeFontInfo:"))
        self.nfi = wx.StaticText(self, -1, "")
        self.nfi.SetFont(font)
        fgs.Add(self.nfi, 0, wx.ADJUST_MINSIZE)

        # give it some border space
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(fgs, 0, wx.GROW | wx.ADJUST_MINSIZE | wx.ALL, 25)

        self.SetSizer(sizer)
        self.UpdateUI()
Exemplo n.º 21
0
    def __do_layout(self):
        grid_sizer_base = wx.FlexGridSizer(rows=2, cols=1, vgap=0, hgap=0)
        grid_sizer_contenu = wx.FlexGridSizer(rows=1, cols=2, vgap=10, hgap=10)
        box_periode = wx.StaticBoxSizer(self.box_periode_staticbox,
                                        wx.VERTICAL)
        grid_sizer_periode = wx.FlexGridSizer(rows=9, cols=1, vgap=10, hgap=10)
        sizer_vacances = wx.BoxSizer(wx.HORIZONTAL)
        sizer_annee = wx.BoxSizer(wx.HORIZONTAL)
        sizer_mois = wx.BoxSizer(wx.HORIZONTAL)
        sizer_jusquau = wx.BoxSizer(wx.HORIZONTAL)
        sizer_apartirde = wx.BoxSizer(wx.HORIZONTAL)
        sizer_dates = wx.BoxSizer(wx.HORIZONTAL)
        grid_sizer_droit = wx.FlexGridSizer(rows=2, cols=1, vgap=10, hgap=10)
        box_options = wx.StaticBoxSizer(self.box_options_staticbox,
                                        wx.VERTICAL)
        sizer_regroupement = wx.BoxSizer(wx.HORIZONTAL)

        # Type
        box_type = wx.StaticBoxSizer(self.box_type_staticbox, wx.VERTICAL)
        box_type.Add(self.radio_type_prestations, 0, wx.ALL | wx.EXPAND, 10)
        box_type.Add(self.radio_type_factures, 0,
                     wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 10)
        grid_sizer_droit.Add(box_type, 1, wx.EXPAND, 0)

        # Options
        grid_sizer_options = wx.FlexGridSizer(rows=5, cols=1, vgap=10, hgap=10)
        grid_sizer_options.Add(self.check_impayes, 0, 0, 0)
        grid_sizer_options.Add(self.check_conso, 0, 0, 0)
        sizer_regroupement.Add(self.check_regroupement, 0,
                               wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_regroupement.Add(self.ctrl_regroupement_date, 0, wx.LEFT, 5)
        grid_sizer_options.Add(sizer_regroupement, 1, wx.EXPAND, 0)
        grid_sizer_options.AddGrowableCol(0)
        box_options.Add(grid_sizer_options, 1, wx.ALL | wx.EXPAND, 10)
        grid_sizer_droit.Add(box_options, 1, wx.EXPAND, 0)
        grid_sizer_droit.AddGrowableRow(1)
        grid_sizer_droit.AddGrowableCol(0)
        grid_sizer_contenu.Add(grid_sizer_droit, 1, wx.EXPAND, 0)
        grid_sizer_periode.Add(self.radio_tout, 1, wx.EXPAND, 0)
        sizer_dates.Add(self.radio_dates, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_dates.Add(self.ctrl_date_debut, 0, wx.LEFT | wx.RIGHT, 5)
        sizer_dates.Add(self.label_au, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_dates.Add(self.ctrl_date_fin, 0, wx.LEFT | wx.RIGHT, 5)
        grid_sizer_periode.Add(sizer_dates, 1, wx.EXPAND, 0)
        sizer_apartirde.Add(self.radio_apartirde, 0, wx.ALIGN_CENTER_VERTICAL,
                            0)
        sizer_apartirde.Add(self.ctrl_date_apartirde, 0, wx.LEFT, 5)
        grid_sizer_periode.Add(sizer_apartirde, 1, wx.EXPAND, 0)
        sizer_jusquau.Add(self.radio_jusquau, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_jusquau.Add(self.ctrl_date_jusquau, 0, wx.LEFT, 5)
        grid_sizer_periode.Add(sizer_jusquau, 1, wx.EXPAND, 0)
        sizer_mois.Add(self.radio_mois, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_mois.Add(self.ctrl_mois, 0, wx.LEFT | wx.RIGHT, 5)
        sizer_mois.Add(self.ctrl_mois_annee, 0, 0, 0)
        grid_sizer_periode.Add(sizer_mois, 1, wx.EXPAND, 0)
        sizer_annee.Add(self.radio_annee, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_annee.Add(self.ctrl_annee, 0, wx.LEFT, 5)
        grid_sizer_periode.Add(sizer_annee, 1, wx.EXPAND, 0)
        sizer_vacances.Add(self.radio_vacances, 0, wx.ALIGN_CENTER_VERTICAL, 0)
        sizer_vacances.Add(self.ctrl_vacances, 0, wx.LEFT | wx.RIGHT, 5)
        sizer_vacances.Add(self.ctrl_vacances_annee, 0, 0, 0)
        grid_sizer_periode.Add(sizer_vacances, 1, wx.EXPAND, 0)
        grid_sizer_periode.AddGrowableCol(0)
        box_periode.Add(grid_sizer_periode, 1, wx.ALL | wx.EXPAND, 10)
        grid_sizer_contenu.Add(box_periode, 1, wx.EXPAND, 0)
        grid_sizer_contenu.AddGrowableRow(0)
        grid_sizer_contenu.AddGrowableCol(0)
        grid_sizer_contenu.AddGrowableCol(1)
        grid_sizer_base.Add(grid_sizer_contenu, 1, wx.ALL | wx.EXPAND, 10)

        # Boutons
        grid_sizer_boutons = wx.FlexGridSizer(rows=1, cols=4, vgap=10, hgap=10)
        grid_sizer_boutons.Add(self.bouton_aide, 0, 0, 0)
        grid_sizer_boutons.Add((20, 20), 0, wx.EXPAND, 0)
        grid_sizer_boutons.Add(self.bouton_ok, 0, 0, 0)
        grid_sizer_boutons.Add(self.bouton_annuler, 0, 0, 0)
        grid_sizer_boutons.AddGrowableCol(1)
        grid_sizer_base.Add(grid_sizer_boutons, 1,
                            wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND, 10)
        self.SetSizer(grid_sizer_base)
        grid_sizer_base.Fit(self)
        self.Layout()
        self.CenterOnScreen()
Exemplo n.º 22
0
 def __init__(self, parent, rows=2, cols=2, vgap=0, hgap=0, border=False):
     Panel.__init__(self, parent, border)
     self.grid = wx.FlexGridSizer(rows, cols, vgap, hgap)
     self.SetSizer(self.grid)
Exemplo n.º 23
0
    def __init__(self, parent, stage):
        self.__savedPositionFile__ = os.path.dirname(
            __file__) + "/.savedPositions.txt"
        self.stage = stage
        self.savedPositions = []
        self.__parsedSavedPositions__()
        FrameBase.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title=u"NewFocus 8081 Stage Aligning App",
                           pos=wx.DefaultPosition,
                           size=wx.Size(600, 750),
                           style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizerFrameMain = wx.BoxSizer(wx.VERTICAL)

        self.panelMain = ScrolledPanelBase(self, wx.ID_ANY, wx.DefaultPosition,
                                           wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerPanelMain = wx.BoxSizer(wx.VERTICAL)

        self.staticTextTitle = wx.StaticText(self.panelMain, wx.ID_ANY,
                                             u"NewFocus 8081 Stage Aligning",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.staticTextTitle.Wrap(-1)
        self.staticTextTitle.SetFont(
            wx.Font(14, 70, 90, 92, False, wx.EmptyString))

        bSizerPanelMain.Add(self.staticTextTitle, 0, wx.ALIGN_CENTER | wx.ALL,
                            5)

        sbSizerDispaly = wx.StaticBoxSizer(
            wx.StaticBox(self.panelMain, wx.ID_ANY, u"Displays"),
            wx.HORIZONTAL)

        fgSizerDisplayDisplacements = wx.FlexGridSizer(5, 3, 0, 0)
        fgSizerDisplayDisplacements.SetFlexibleDirection(wx.BOTH)
        fgSizerDisplayDisplacements.SetNonFlexibleGrowMode(
            wx.FLEX_GROWMODE_SPECIFIED)

        self.staticTextDisplayXtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Xtrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXtransTitle.Wrap(-1)
        self.staticTextDisplayXtransTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXtransTitle, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayXtransValue = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"0.000000", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXtransValue.Wrap(-1)
        self.staticTextDisplayXtransValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXtransValue, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayXtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXtransUnits.Wrap(-1)
        self.staticTextDisplayXtransUnits.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXtransUnits, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayYtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Ytrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayYtransTitle.Wrap(-1)
        self.staticTextDisplayYtransTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayYtransTitle, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayYtransValue = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"0.000000", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayYtransValue.Wrap(-1)
        self.staticTextDisplayYtransValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayYtransValue, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayYtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayYtransUnits.Wrap(-1)
        self.staticTextDisplayYtransUnits.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayYtransUnits, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Ztrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZtransTitle.Wrap(-1)
        self.staticTextDisplayZtransTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZtransTitle, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZtransValue = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"0.000000", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZtransValue.Wrap(-1)
        self.staticTextDisplayZtransValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZtransValue, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZtransUnits.Wrap(-1)
        self.staticTextDisplayZtransUnits.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZtransUnits, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayXrotTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Xrot:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXrotTitle.Wrap(-1)
        self.staticTextDisplayXrotTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXrotTitle, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayXrotValue = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"0.000000", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXrotValue.Wrap(-1)
        self.staticTextDisplayXrotValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXrotValue, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayXrotUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"rad", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayXrotUnits.Wrap(-1)
        self.staticTextDisplayXrotUnits.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayXrotUnits, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZrotTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Zrot:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZrotTitle.Wrap(-1)
        self.staticTextDisplayZrotTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZrotTitle, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZrotValue = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"0.000000", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZrotValue.Wrap(-1)
        self.staticTextDisplayZrotValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZrotValue, 0,
                                        wx.ALL, 5)

        self.staticTextDisplayZrotUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"rad", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextDisplayZrotUnits.Wrap(-1)
        self.staticTextDisplayZrotUnits.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayDisplacements.Add(self.staticTextDisplayZrotUnits, 0,
                                        wx.ALL, 5)

        sbSizerDispaly.Add(fgSizerDisplayDisplacements, 1, wx.EXPAND, 5)

        self.staticlineDisplaySep = wx.StaticLine(self.panelMain, wx.ID_ANY,
                                                  wx.DefaultPosition,
                                                  wx.DefaultSize,
                                                  wx.LI_VERTICAL)
        sbSizerDispaly.Add(self.staticlineDisplaySep, 0, wx.EXPAND | wx.ALL, 5)

        fgSizerDisplayMotorSteps = wx.FlexGridSizer(5, 2, 0, 0)
        fgSizerDisplayMotorSteps.SetFlexibleDirection(wx.BOTH)
        fgSizerDisplayMotorSteps.SetNonFlexibleGrowMode(
            wx.FLEX_GROWMODE_SPECIFIED)

        self.staticTextDisplayPx1Title = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"px1:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPx1Title.Wrap(-1)
        self.staticTextDisplayPx1Title.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPx1Title, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPx1Value = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"0",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPx1Value.Wrap(-1)
        self.staticTextDisplayPx1Value.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPx1Value, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPx2Title = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"px2:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPx2Title.Wrap(-1)
        self.staticTextDisplayPx2Title.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPx2Title, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPx2Value = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"0",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPx2Value.Wrap(-1)
        self.staticTextDisplayPx2Value.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPx2Value, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPyTitle = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"py:",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextDisplayPyTitle.Wrap(-1)
        self.staticTextDisplayPyTitle.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPyTitle, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPyValue = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"0",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextDisplayPyValue.Wrap(-1)
        self.staticTextDisplayPyValue.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPyValue, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPz1Title = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"pz1:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPz1Title.Wrap(-1)
        self.staticTextDisplayPz1Title.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPz1Title, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPz1Value = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"0",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPz1Value.Wrap(-1)
        self.staticTextDisplayPz1Value.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPz1Value, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPz2Title = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"pz2:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPz2Title.Wrap(-1)
        self.staticTextDisplayPz2Title.SetFont(
            wx.Font(12, 70, 90, 90, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPz2Title, 0, wx.ALL,
                                     5)

        self.staticTextDisplayPz2Value = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"0",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextDisplayPz2Value.Wrap(-1)
        self.staticTextDisplayPz2Value.SetFont(
            wx.Font(12, 70, 90, 92, False, wx.EmptyString))

        fgSizerDisplayMotorSteps.Add(self.staticTextDisplayPz2Value, 0, wx.ALL,
                                     5)

        sbSizerDispaly.Add(fgSizerDisplayMotorSteps, 1, wx.ALL | wx.EXPAND, 5)

        bSizerPanelMain.Add(sbSizerDispaly, 1, wx.ALL | wx.EXPAND, 5)

        radioBoxChangeByChoices = [u"SI units", u"motor steps"]
        self.radioBoxChangeBy = wx.RadioBox(self.panelMain, wx.ID_ANY,
                                            u"Change By", wx.DefaultPosition,
                                            wx.DefaultSize,
                                            radioBoxChangeByChoices, 1,
                                            wx.RA_SPECIFY_ROWS)
        self.radioBoxChangeBy.SetSelection(0)
        bSizerPanelMain.Add(self.radioBoxChangeBy, 0, wx.ALL, 5)

        sbSizerChange = wx.StaticBoxSizer(
            wx.StaticBox(self.panelMain, wx.ID_ANY, u"Change Values"),
            wx.HORIZONTAL)

        fgSizerChangeDisplacements = wx.FlexGridSizer(5, 3, 0, 0)
        fgSizerChangeDisplacements.SetFlexibleDirection(wx.BOTH)
        fgSizerChangeDisplacements.SetNonFlexibleGrowMode(
            wx.FLEX_GROWMODE_SPECIFIED)

        self.staticTextChangeXtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Xtrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeXtransTitle.Wrap(-1)
        self.staticTextChangeXtransTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeXtransTitle, 0,
                                       wx.ALL, 5)

        self.textCtrlChangeXtrans = wx.TextCtrl(self.panelMain, wx.ID_ANY,
                                                u"0.000000",
                                                wx.DefaultPosition,
                                                wx.DefaultSize, 0)
        self.textCtrlChangeXtrans.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.textCtrlChangeXtrans, 0, wx.ALL, 5)

        self.staticTextChangeXtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeXtransUnits.Wrap(-1)
        self.staticTextChangeXtransUnits.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeXtransUnits, 0,
                                       wx.ALL, 5)

        self.staticTextChangeYtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Ytrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeYtransTitle.Wrap(-1)
        self.staticTextChangeYtransTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeYtransTitle, 0,
                                       wx.ALL, 5)

        self.textCtrlChangeYtrans = wx.TextCtrl(self.panelMain, wx.ID_ANY,
                                                u"0.000000",
                                                wx.DefaultPosition,
                                                wx.DefaultSize, 0)
        self.textCtrlChangeYtrans.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.textCtrlChangeYtrans, 0, wx.ALL, 5)

        self.staticTextChangeYtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeYtransUnits.Wrap(-1)
        self.staticTextChangeYtransUnits.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeYtransUnits, 0,
                                       wx.ALL, 5)

        self.staticTextChangeZtransTitle = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"Ztrans:", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeZtransTitle.Wrap(-1)
        self.staticTextChangeZtransTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeZtransTitle, 0,
                                       wx.ALL, 5)

        self.textCtrlChangeZtrans = wx.TextCtrl(self.panelMain, wx.ID_ANY,
                                                u"0.000000",
                                                wx.DefaultPosition,
                                                wx.DefaultSize, 0)
        self.textCtrlChangeZtrans.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.textCtrlChangeZtrans, 0, wx.ALL, 5)

        self.staticTextChangeZtransUnits = wx.StaticText(
            self.panelMain, wx.ID_ANY, u"mm", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.staticTextChangeZtransUnits.Wrap(-1)
        self.staticTextChangeZtransUnits.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeZtransUnits, 0,
                                       wx.ALL, 5)

        self.staticTextChangeXrotTitle = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"Xrot:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextChangeXrotTitle.Wrap(-1)
        self.staticTextChangeXrotTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeXrotTitle, 0,
                                       wx.ALL, 5)

        self.textCtrlChangeXrot = wx.TextCtrl(self.panelMain, wx.ID_ANY,
                                              u"0.000000", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.textCtrlChangeXrot.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.textCtrlChangeXrot, 0, wx.ALL, 5)

        self.staticTextChangeXrotUnits = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"rad",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextChangeXrotUnits.Wrap(-1)
        self.staticTextChangeXrotUnits.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeXrotUnits, 0,
                                       wx.ALL, 5)

        self.staticTextChangeZrotTitle = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"Zrot:",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextChangeZrotTitle.Wrap(-1)
        self.staticTextChangeZrotTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeZrotTitle, 0,
                                       wx.ALL, 5)

        self.textCtrlChangeZrot = wx.TextCtrl(self.panelMain, wx.ID_ANY,
                                              u"0.000000", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.textCtrlChangeZrot.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.textCtrlChangeZrot, 0, wx.ALL, 5)

        self.staticTextChangeZrotUnits = wx.StaticText(self.panelMain,
                                                       wx.ID_ANY, u"rad",
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize, 0)
        self.staticTextChangeZrotUnits.Wrap(-1)
        self.staticTextChangeZrotUnits.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeDisplacements.Add(self.staticTextChangeZrotUnits, 0,
                                       wx.ALL, 5)

        sbSizerChange.Add(fgSizerChangeDisplacements, 1, wx.EXPAND, 5)

        self.staticlineChangeValuesSep = wx.StaticLine(self.panelMain,
                                                       wx.ID_ANY,
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize,
                                                       wx.LI_VERTICAL)
        sbSizerChange.Add(self.staticlineChangeValuesSep, 0,
                          wx.EXPAND | wx.ALL, 5)

        fgSizerChangeMotorSteps = wx.FlexGridSizer(5, 2, 0, 0)
        fgSizerChangeMotorSteps.SetFlexibleDirection(wx.BOTH)
        fgSizerChangeMotorSteps.SetNonFlexibleGrowMode(
            wx.FLEX_GROWMODE_SPECIFIED)

        self.staticTextChangePx1Title = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"px1:",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextChangePx1Title.Wrap(-1)
        self.staticTextChangePx1Title.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeMotorSteps.Add(self.staticTextChangePx1Title, 0, wx.ALL,
                                    5)

        self.textCtrlChangePx1 = wx.TextCtrl(self.panelMain, wx.ID_ANY, u"0",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.textCtrlChangePx1.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))
        self.textCtrlChangePx1.Enable(False)

        fgSizerChangeMotorSteps.Add(self.textCtrlChangePx1, 0, wx.ALL, 5)

        self.staticTextChangePx2Title = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"px2:",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextChangePx2Title.Wrap(-1)
        self.staticTextChangePx2Title.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeMotorSteps.Add(self.staticTextChangePx2Title, 0, wx.ALL,
                                    5)

        self.textCtrlChangePx2 = wx.TextCtrl(self.panelMain, wx.ID_ANY, u"0",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.textCtrlChangePx2.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))
        self.textCtrlChangePx2.Enable(False)

        fgSizerChangeMotorSteps.Add(self.textCtrlChangePx2, 0, wx.ALL, 5)

        self.staticTextChangePyTitle = wx.StaticText(self.panelMain, wx.ID_ANY,
                                                     u"py:",
                                                     wx.DefaultPosition,
                                                     wx.DefaultSize, 0)
        self.staticTextChangePyTitle.Wrap(-1)
        self.staticTextChangePyTitle.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeMotorSteps.Add(self.staticTextChangePyTitle, 0, wx.ALL, 5)

        self.textCtrlChangePy = wx.TextCtrl(self.panelMain, wx.ID_ANY, u"0",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.textCtrlChangePy.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))
        self.textCtrlChangePy.Enable(False)

        fgSizerChangeMotorSteps.Add(self.textCtrlChangePy, 0, wx.ALL, 5)

        self.staticTextChangePz1Title = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"pz1:",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextChangePz1Title.Wrap(-1)
        self.staticTextChangePz1Title.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeMotorSteps.Add(self.staticTextChangePz1Title, 0, wx.ALL,
                                    5)

        self.textCtrlChangePz1 = wx.TextCtrl(self.panelMain, wx.ID_ANY, u"0",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.textCtrlChangePz1.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))
        self.textCtrlChangePz1.Enable(False)

        fgSizerChangeMotorSteps.Add(self.textCtrlChangePz1, 0, wx.ALL, 5)

        self.staticTextChangePz2Title = wx.StaticText(self.panelMain,
                                                      wx.ID_ANY, u"pz2:",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.staticTextChangePz2Title.Wrap(-1)
        self.staticTextChangePz2Title.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        fgSizerChangeMotorSteps.Add(self.staticTextChangePz2Title, 0, wx.ALL,
                                    5)

        self.textCtrlChangePz2 = wx.TextCtrl(self.panelMain, wx.ID_ANY, u"0",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.textCtrlChangePz2.SetFont(
            wx.Font(10, 70, 90, 92, False, wx.EmptyString))
        self.textCtrlChangePz2.Enable(False)

        fgSizerChangeMotorSteps.Add(self.textCtrlChangePz2, 0, wx.ALL, 5)

        sbSizerChange.Add(fgSizerChangeMotorSteps, 1, wx.EXPAND, 5)

        bSizerPanelMain.Add(sbSizerChange, 0, wx.ALL | wx.EXPAND, 5)

        gSizerControls = wx.GridSizer(3, 2, 0, 0)

        self.buttonMove = wx.Button(self.panelMain, wx.ID_ANY, u"MOVE",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        self.buttonMove.SetFont(wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        gSizerControls.Add(self.buttonMove, 0, wx.ALL | wx.EXPAND, 5)

        self.buttonStop = wx.Button(self.panelMain, wx.ID_ANY, u"STOP",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        self.buttonStop.SetFont(wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        gSizerControls.Add(self.buttonStop, 0, wx.ALL | wx.EXPAND, 5)

        self.buttonSavePosition = wx.Button(self.panelMain, wx.ID_ANY,
                                            u"Save Position",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.buttonSavePosition.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        gSizerControls.Add(self.buttonSavePosition, 0, wx.ALL | wx.EXPAND, 5)

        self.buttonSelectPositions = wx.Button(self.panelMain, wx.ID_ANY,
                                               u"Select Positions (0)",
                                               wx.DefaultPosition,
                                               wx.DefaultSize, 0)
        self.buttonSelectPositions.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        gSizerControls.Add(self.buttonSelectPositions, 0, wx.ALL | wx.EXPAND,
                           5)

        self.buttonZeroAllChanges = wx.Button(self.panelMain, wx.ID_ANY,
                                              u"Zero All Changes",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.buttonZeroAllChanges.SetFont(
            wx.Font(10, 70, 90, 90, False, wx.EmptyString))

        gSizerControls.Add(self.buttonZeroAllChanges, 0, wx.ALL | wx.EXPAND, 5)
        """
		self.buttonSetZeroMotorSteps = wx.Button( self.panelMain, wx.ID_ANY, u"Set ZERO Motor Steps", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.buttonSetZeroMotorSteps.SetFont( wx.Font( 10, 70, 90, 90, False, wx.EmptyString ) )
		self.buttonSetZeroMotorSteps.SetToolTipString( u"Sets current positions as ZERO motor steps" )
		
		gSizerControls.Add( self.buttonSetZeroMotorSteps, 0, wx.ALL|wx.EXPAND, 5 )
		"""

        bSizerPanelMain.Add(gSizerControls, 0, wx.EXPAND, 5)

        self.panelMain.SetSizer(bSizerPanelMain)
        self.panelMain.Layout()
        self.panelMain.SetupScrolling()
        bSizerPanelMain.Fit(self.panelMain)
        bSizerFrameMain.Add(self.panelMain, 1, wx.EXPAND | wx.ALL, 0)

        self.SetSizer(bSizerFrameMain)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.onClose)
        self.radioBoxChangeBy.Bind(wx.EVT_RADIOBOX, self.onSelectChangeBy)
        self.textCtrlChangeXtrans.Bind(wx.EVT_TEXT_ENTER,
                                       self.onChangePositionValuesEnter)
        self.textCtrlChangeYtrans.Bind(wx.EVT_TEXT_ENTER,
                                       self.onChangePositionValuesEnter)
        self.textCtrlChangeZtrans.Bind(wx.EVT_TEXT_ENTER,
                                       self.onChangePositionValuesEnter)
        self.textCtrlChangeXrot.Bind(wx.EVT_TEXT_ENTER,
                                     self.onChangePositionValuesEnter)
        self.textCtrlChangeZrot.Bind(wx.EVT_TEXT_ENTER,
                                     self.onChangePositionValuesEnter)
        self.textCtrlChangePx1.Bind(wx.EVT_TEXT_ENTER,
                                    self.onChangePositionValuesEnter)
        self.textCtrlChangePx2.Bind(wx.EVT_TEXT_ENTER,
                                    self.onChangePositionValuesEnter)
        self.textCtrlChangePy.Bind(wx.EVT_TEXT_ENTER,
                                   self.onChangePositionValuesEnter)
        self.textCtrlChangePz1.Bind(wx.EVT_TEXT_ENTER,
                                    self.onChangePositionValuesEnter)
        self.textCtrlChangePz2.Bind(wx.EVT_TEXT_ENTER,
                                    self.onChangePositionValuesEnter)
        self.buttonMove.Bind(wx.EVT_BUTTON, self.onMove)
        self.buttonStop.Bind(wx.EVT_BUTTON, self.onStop)
        self.buttonSavePosition.Bind(wx.EVT_BUTTON, self.onSavePosition)
        self.buttonSelectPositions.Bind(wx.EVT_BUTTON,
                                        self.onSelectionPositions)
        self.buttonZeroAllChanges.Bind(wx.EVT_BUTTON, self.onZeroAllChanges)
Exemplo n.º 24
0
    def _doLayout(self):

        dialogSizer = wx.BoxSizer(wx.VERTICAL)

        dialogSizer.Add(self.settsManager,
                        proportion=0,
                        flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                        border=5)

        # connectin settings
        settingsSizer = wx.StaticBoxSizer(self.settingsBox, wx.VERTICAL)

        serverSizer = wx.FlexGridSizer(cols=3, vgap=5, hgap=5)

        serverSizer.Add(self.serverText, flag=wx.ALIGN_CENTER_VERTICAL)
        serverSizer.AddGrowableCol(1)
        serverSizer.Add(self.server, flag=wx.EXPAND | wx.ALL)

        serverSizer.Add(self.btn_connect)

        settingsSizer.Add(serverSizer,
                          proportion=0,
                          flag=wx.EXPAND | wx.LEFT | wx.RIGHT,
                          border=5)

        settingsSizer.Add(self.adv_conn, flag=wx.ALL | wx.EXPAND, border=5)

        dialogSizer.Add(settingsSizer,
                        proportion=0,
                        flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT,
                        border=5)

        # layer name, parsed capabilities

        reqDataSizer = wx.BoxSizer(wx.VERTICAL)

        layerNameSizer = wx.StaticBoxSizer(self.layerNameBox, wx.HORIZONTAL)

        layerNameSizer.Add(self.layerNameText,
                           flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL,
                           border=5)

        layerNameSizer.Add(self.layerName, flag=wx.EXPAND, proportion=1)

        reqDataSizer.Add(layerNameSizer,
                         flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND,
                         border=5)

        self.ch_ws_sizer = wx.BoxSizer(wx.VERTICAL)

        reqDataSizer.Add(self.ch_ws_sizer,
                         proportion=0,
                         flag=wx.TOP | wx.EXPAND,
                         border=5)

        for ws in six.iterkeys(self.ws_panels):
            reqDataSizer.Add(self.ws_panels[ws]['panel'],
                             proportion=1,
                             flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.EXPAND,
                             border=5)
            self.ws_panels[ws]['panel'].Hide()

        dialogSizer.Add(self.reqDataPanel, proportion=1, flag=wx.EXPAND)

        self.reqDataPanel.SetSizer(reqDataSizer)
        self.reqDataPanel.Hide()

        # buttons
        self.btnsizer = wx.BoxSizer(orient=wx.HORIZONTAL)

        self.btnsizer.Add(self.btn_close,
                          proportion=0,
                          flag=wx.ALL | wx.ALIGN_CENTER,
                          border=10)

        dialogSizer.Add(self.btnsizer, proportion=0, flag=wx.ALIGN_CENTER)

        # expand wxWidget wx.StatusBar
        statusbarSizer = wx.BoxSizer(wx.HORIZONTAL)
        statusbarSizer.Add(self.statusbar, proportion=1, flag=wx.EXPAND)
        dialogSizer.Add(statusbarSizer, proportion=0, flag=wx.EXPAND)

        self.SetSizer(dialogSizer)
        self.Layout()

        self.SetMinSize((550, -1))
        self.SetMaxSize((-1, self.GetBestSize()[1]))
        self.Fit()
Exemplo n.º 25
0
    def __init__(self, parent):
        wx.Frame.__init__(
            self,
            parent,
            id=wx.ID_ANY,
            title=u"Deposito",
            pos=wx.DefaultPosition,
            size=wx.Size(385, 150),
            style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL,
        )

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        fgSizer1 = wx.FlexGridSizer(2, 2, 5, 5)
        fgSizer1.AddGrowableCol(1)
        fgSizer1.SetFlexibleDirection(wx.BOTH)
        fgSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.txtCode = wx.StaticText(self, wx.ID_ANY, u"Codigo:",
                                     wx.Point(-1, -1), wx.Size(80, 15),
                                     wx.ALIGN_LEFT)
        self.txtCode.Wrap(-1)
        fgSizer1.Add(self.txtCode, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.code = wx.TextCtrl(
            self,
            wx.ID_ANY,
            wx.EmptyString,
            wx.DefaultPosition,
            wx.Size(100, 20),
            wx.TE_RIGHT,
        )
        self.code.SetMaxLength(0)
        self.code.Enable(False)

        fgSizer1.Add(self.code, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.txtName = wx.StaticText(
            self,
            wx.ID_ANY,
            u"Descripcion:",
            wx.DefaultPosition,
            wx.Size(80, 15),
            wx.ALIGN_LEFT,
        )
        self.txtName.Wrap(-1)
        fgSizer1.Add(self.txtName, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.name = wx.TextCtrl(
            self,
            wx.ID_ANY,
            wx.EmptyString,
            wx.DefaultPosition,
            wx.Size(180, 20),
            wx.TE_LEFT,
        )
        self.name.SetMaxLength(0)
        fgSizer1.Add(self.name, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        bSizer1.Add(fgSizer1, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

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

        self.btnOk = wx.Button(self, wx.ID_ANY, u"Aceptar", wx.DefaultPosition,
                               wx.Size(80, 25), wx.NO_BORDER)
        self.btnOk.Enable(False)

        fgSizer2.Add(self.btnOk, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.btnModify = wx.Button(
            self,
            wx.ID_ANY,
            u"Modificar",
            wx.DefaultPosition,
            wx.Size(80, 25),
            wx.NO_BORDER,
        )
        self.btnModify.Enable(False)

        fgSizer2.Add(self.btnModify, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.btnCancel = wx.Button(
            self,
            wx.ID_ANY,
            u"Cancelar",
            wx.DefaultPosition,
            wx.Size(80, 25),
            wx.NO_BORDER,
        )
        self.btnCancel.SetDefault()
        fgSizer2.Add(self.btnCancel, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.btnExit = wx.Button(self, wx.ID_ANY, u"Salir", wx.DefaultPosition,
                                 wx.Size(80, 25), wx.NO_BORDER)
        fgSizer2.Add(self.btnExit, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        bSizer1.Add(fgSizer2, 0, wx.ALL, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)
Exemplo n.º 26
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'VLM2UDP', size=(455, 310),
                          style = wx.CAPTION | wx.SYSTEM_MENU | wx.MINIMIZE_BOX | wx.CLOSE_BOX)
        panel = wx.Panel(self, -1)

        # Choix de VLM_URL
        VlmUrlList = [VLM_URL_01, VLM_URL_02]
        self.VlmUrlLabel = wx.StaticText(panel, -1, "VLM URL:", size = (100, -1))
        self.VlmUrlChoice = wx.ComboBox(panel, -1, VlmUrlList[0],
                                        size = (200, -1),
                                        choices = VlmUrlList,
                                        style = wx.CB_DROPDOWN | wx.CB_READONLY)
        self.Bind(wx.EVT_COMBOBOX, self.OnVlmUrlChoice, self.VlmUrlChoice)

        # Affichage du mail
        self.MailLabel = wx.StaticText(panel, -1, "Mail:", size = (100, -1))
        self.MailText = wx.TextCtrl(panel, -1, VLM_EMAIL,
                                    size = (200, -1),
                                    style = wx.TE_PROCESS_ENTER)
        self.MailText.SetInsertionPoint(0)
        self.MailText.Bind(wx.EVT_TEXT_ENTER, self.EvtMailTextEnter)
        self.MailText.Bind(wx.EVT_TEXT, self.EvtMailText)

        # Affichage du password
        self.PwdLabel = wx.StaticText(panel, -1, "Password:"******"Boats:", size = (100, -1))
        self.BoatsChoice = wx.ComboBox(panel, -1, self.BoatsList[0],
                                       size = (200, -1),
                                       choices = self.BoatsList,
                                       style = wx.CB_DROPDOWN | wx.CB_READONLY)
        self.Bind(wx.EVT_COMBOBOX, self.OnBoatsChoice, self.BoatsChoice)
        
        # Les buttons de commande
        self.ButtonGPS = wx.Button(panel, -1, "Start GPS", size = (100, -1))
        self.Bind(wx.EVT_BUTTON, self.OnClickButtonGPS, self.ButtonGPS)
        self.ButtonGPS.SetDefault()
        self.ButtonAction=0

        self.ButtonForce = wx.Button(panel, -1, "Force GPS", size = (100, -1))
        self.Bind(wx.EVT_BUTTON, self.OnClickButtonForce, self.ButtonForce)

        self.ButtonConfig = wx.Button(panel, -1, "Sauvegarde", size = (100, -1))
        self.Bind(wx.EVT_BUTTON, self.OnClickButtonConfig, self.ButtonConfig)

        # Les timers
        self.timer1 = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.OnTimer1, self.timer1)
        self.timer2 = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.OnTimer2, self.timer2)

        # La zone Alpha
        self.MultiText = wx.TextCtrl(panel, -1, size = (430, 130), style = wx.TE_MULTILINE | wx.CB_READONLY)

        # Mise en page et affichage
        self.MainSizer = wx.FlexGridSizer(cols = 1, hgap = 6, vgap = 6)
        
        self.UrlSizer = wx.FlexGridSizer(cols = 3, hgap = 6, vgap = 6)
        self.UrlSizer.AddMany([(20, -1), self.VlmUrlLabel, self.VlmUrlChoice])

        self.MailSizer = wx.FlexGridSizer(cols = 3, hgap = 6, vgap = 6)
        self.MailSizer.AddMany([(20, -1), self.MailLabel, self.MailText])

        self.PwdSizer = wx.FlexGridSizer(cols = 3, hgap = 6, vgap = 6)
        self.PwdSizer.AddMany([(20, -1), self.PwdLabel, self.PwdText])
        
        self.BoatSizer = wx.FlexGridSizer(cols = 3, hgap = 6, vgap = 6)
        self.BoatSizer.AddMany([(20, -1), self.BoatsLabel, self.BoatsChoice])

        self.GPSSizer = wx.FlexGridSizer(cols = 4, hgap = 6, vgap = 6)
        self.GPSSizer.AddMany([(20, -1), self.ButtonGPS, self.ButtonForce, self.ButtonConfig])

        self.MultiSizer = wx.FlexGridSizer(cols = 2, hgap = 6, vgap = 6)
        self.MultiSizer.AddMany([(3, -1), self.MultiText])
        
        self.MainSizer.AddMany([(10, -1),
                                self.UrlSizer,
                                self.MailSizer,
                                self.PwdSizer,
                                self.BoatSizer,
                                self.GPSSizer,
                                self.MultiSizer])
        
        panel.SetSizer(self.MainSizer)

        # Message de bienvenue dans la zone Alpha
        self.MultiText.Clear()
        self.MultiText.SetValue("Bienvenue"+"\r\n"+
                                "vlm2udp Ver. 0.2"+"\r\n"+
                                "30/10/2010"+"\r\n"+
                                "By Paparazzia & Stephpen"+"\r\n"+
                                "\r\n"+
                                "Interface GPS entre le site"+"\r\n"+
                                "Virtual Loup de Mer et Maxou"+"\r\n")
        
        # Tentative de recuperation de la liste des bateaux 
        # appartenant au compte (VLM_EMAIL, VLM_PASSWD)
        try:
            self.MultiText.Clear()
            self.BoatFleet = fleet(VLM_EMAIL, VLM_PASSWD)
            self.MyBoats = self.BoatFleet['fleet']
            self.BsBoats = self.BoatFleet['fleet_boatsit']
            self.MyBoatsList = self.MyBoats.keys()
            self.BsBoatsList = self.BsBoats.keys()
            # Recuperation de la liste des boats en course
            self.BoatsList = ExtractBoatsList(self.MyBoats, self.MyBoatsList, self.BsBoats, self.BsBoatsList)
            if self.BoatsList == none:
                self.BoatsList = ['0 none']
  
        except:
            # Sinon, message d'erreur et liste vide
            self.ErrorMailPwd()
            self.BoatsList = ['0 none']

        self.BoatsChoice.Clear()
        self.BoatsChoice.AppendItems(self.BoatsList)
        self.BoatsChoice.SetValue(self.BoatsList[0])

        self.Bind(wx.EVT_CLOSE, self.OnClose)
Exemplo n.º 27
0
    def __init__(self, parent, window, controler, additional_columns=None):
        wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL)

        main_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=4)
        main_sizer.AddGrowableCol(1)
        main_sizer.AddGrowableRow(0)

        controls_sizer = wx.BoxSizer(wx.VERTICAL)
        main_sizer.AddSizer(controls_sizer, border=5, flag=wx.ALL)

        for name, bitmap, help in [
            ("AddVariableButton", "add_element", _("Add variable")),
            ("DeleteVariableButton", "remove_element", _("Remove variable")),
            ("UpVariableButton", "up", _("Move variable up")),
            ("DownVariableButton", "down", _("Move variable down"))
        ]:
            button = wx.lib.buttons.GenBitmapButton(self,
                                                    bitmap=GetBitmap(bitmap),
                                                    size=wx.Size(28, 28),
                                                    style=wx.NO_BORDER)
            button.SetToolTipString(help)
            setattr(self, name, button)
            controls_sizer.AddWindow(button, border=5, flag=wx.BOTTOM)

        self.VariablesGrid = CustomGrid(self, style=wx.VSCROLL)
        self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE,
                                self.OnVariablesGridCellChange)
        self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_LEFT_CLICK,
                                self.OnVariablesGridCellLeftClick)
        self.VariablesGrid.Bind(wx.grid.EVT_GRID_EDITOR_SHOWN,
                                self.OnVariablesGridEditorShown)
        main_sizer.AddWindow(self.VariablesGrid, flag=wx.GROW)

        self.SetSizer(main_sizer)

        self.ParentWindow = window
        self.Controler = controler

        self.VariablesDefaultValue = {
            "Name": "LocalVar0",
            "Type": DefaultType,
            "Initial": "",
            "Description": "",
            "OnChange": "",
            "Options": ""
        }

        self.Table = VariablesTable(self, [],
                                    self.GetVariableTableColnames(),
                                    additional_columns=additional_columns)
        self.ColAlignements = [wx.ALIGN_RIGHT] +  \
                              [wx.ALIGN_LEFT]*(len(self.VariablesDefaultValue))
        self.ColSizes = [20, 150
                         ] + [130] * (len(self.VariablesDefaultValue) - 1)
        self.VariablesGrid.SetTable(self.Table)
        self.VariablesGrid.SetButtons({
            "Add": self.AddVariableButton,
            "Delete": self.DeleteVariableButton,
            "Up": self.UpVariableButton,
            "Down": self.DownVariableButton
        })

        def _AddVariable(new_row):
            if new_row > 0:
                row_content = self.Table.data[new_row - 1].copy()
                old_name = row_content['Name']
                row_content['Name'] =\
                    self.Controler.GenerateNewName(old_name, old_name+'%d')
            else:
                row_content = self.VariablesDefaultValue.copy()
            self.Table.InsertRow(new_row, row_content)
            self.RefreshModel()
            self.RefreshView()
            return new_row

        setattr(self.VariablesGrid, "_AddRow", _AddVariable)

        def _DeleteVariable(row):
            self.Table.RemoveRow(row)
            self.RefreshModel()
            self.RefreshView()

        setattr(self.VariablesGrid, "_DeleteRow", _DeleteVariable)

        def _MoveVariable(row, move):
            new_row = self.Table.MoveRow(row, move)
            if new_row != row:
                self.RefreshModel()
                self.RefreshView()
            return new_row

        setattr(self.VariablesGrid, "_MoveRow", _MoveVariable)

        self.VariablesGrid.SetRowLabelSize(0)
        for col in range(self.Table.GetNumberCols()):
            attr = wx.grid.GridCellAttr()
            attr.SetAlignment(self.ColAlignements[col], wx.ALIGN_CENTRE)
            self.VariablesGrid.SetColAttr(col, attr)
            self.VariablesGrid.SetColSize(col, self.ColSizes[col])
        self.Table.ResetView(self.VariablesGrid)
Exemplo n.º 28
0
 def __init__(self, dbsal, *args, **kwargs):
     
     parent = args[0]
     size = parent.GetClientSizeTuple()
     
     self.dbsal = dbsal
     sal = self.dbsal
     reg = sal.reg
     cau = reg.caus
     
     cn = lambda db, col: db._GetFieldIndex(col, inline=True)
     
     _STR = gl.GRID_VALUE_STRING
     _IMP = bt.GetValIntMaskInfo()
     
     ncdat = cn(sal, 'giorno')
     nctod = cn(sal, 'total_dare')
     nctoa = cn(sal, 'total_avere')
     nctsd = cn(sal, 'total_saldo_dare')
     nctsa = cn(sal, 'total_saldo_avere')
     nctpd = cn(sal, 'total_progr_dare')
     nctpa = cn(sal, 'total_progr_avere')
     nctxd = cn(sal, 'total_saldoprogr_dare')
     nctxa = cn(sal, 'total_saldoprogr_avere')
     
     cols = (\
         ( 90, (ncdat, "Data reg.",     _STR, True)),
         (110, (nctsd, "Saldo Dare",    _IMP, True)),
         (110, (nctsa, "Saldo Avere",   _IMP, True)),
         (110, (nctxd, "Saldo P.Dare",  _IMP, True)),
         (110, (nctxa, "Saldo P.Avere", _IMP, True)),
     )
     colmap  = [c[1] for c in cols]
     colsize = [c[0] for c in cols]
     
     canedit = False
     canins = False
     
     class Registrazioni(dbglib.DbGridTable):
         def GetValue(self, row, col):
             if col == 0 and row<len(self.data):
                 d = self.data[row][self.rsColumns[col]]
                 if d is None:
                     if row == 0:
                         out = 'Riporto'
                     else:
                         out = ''
                 elif type(d) is Env.DateTime.Date:
                     #mysql 5.1 => mi arriva Date OK
                     out = dbc.adb.DbTable.dita(d)
                 elif type(d) in (str, unicode):
                     #mysql 5.0 => mi arriva stringa ?!?
                     out = '%s/%s/%s' % (d[8:10], d[5:7], d[:4])
                 else:
                     out = '???'
             else:
                 out = dbglib.DbGridTable.GetValue(self, row, col)
             return out
     
     dbglib.DbGrid.__init__(self, parent, -1, size=size,
                            tableClass=Registrazioni)
     
     self.SetData([], colmap, canedit, canins)
     
     def GridAttr(row, col, rscol, attr):
         if col in (0,4) and row<self.dbsal.RowsCount():
             if row != self.dbsal.RowNumber():
                 self.dbsal.MoveRow(row)
             if self.dbsal.total_progr_avere>self.dbsal.total_progr_dare:
                 fgcol = stdcolor.GetColour("red")
             else:
                 fgcol = stdcolor.NORMAL_FOREGROUND
             attr.SetTextColour(fgcol)
         return attr
     self.SetCellDynAttr(GridAttr)
     
     map(lambda c:\
         self.SetColumnDefaultSize(c[0], c[1]), enumerate(colsize))
     
     self.SetFitColumn(0)
     self.AutoSizeColumns()
     sz = wx.FlexGridSizer(1,0,0,0)
     sz.AddGrowableCol( 0 )
     sz.AddGrowableRow( 0 )
     sz.Add(self, 0, wx.GROW|wx.ALL, 0)
     parent.SetSizer(sz)
     sz.SetSizeHints(parent)
Exemplo n.º 29
0
    def populateObjectSizer(self, attribute=None):
        if attribute is None or attribute == 'neuronClass':
            # Choose the appropriate item in the pop-up menu.
            if self.objects.haveEqualAttr('neuronClass'):
                if self.objects[0].neuronClass is None:
                    self._neuronClassChoice.SetSelection(
                        self._unknownNeuronClassId)
                else:
                    for index in range(0, self._neuronClassChoice.GetCount()):
                        if self._neuronClassChoice.GetClientData(
                                index) == self.objects[0].neuronClass:
                            self._neuronClassChoice.SetSelection(index)
            else:
                self._multipleNeuronClassesId = self._neuronClassChoice.Append(
                    gettext('Multiple values'), None)
                self._neuronClassChoice.SetSelection(
                    self._multipleNeuronClassesId)

        if attribute is None or attribute == 'functions':
            for function, checkBox in [
                (Neuron.Function.SENSORY, self._sensoryCheckBox),
                (Neuron.Function.INTERNEURON, self._interneuronCheckBox),
                (Neuron.Function.MOTOR, self._motorCheckBox)
            ]:
                mixedFunction = False
                hasFunction = self.objects[0].hasFunction(function)
                for object in self.objects[1:]:
                    if hasFunction != object.hasFunction(function):
                        mixedFunction = True
                if mixedFunction:
                    checkBox.Set3StateValue(wx.CHK_UNDETERMINED)
                elif hasFunction:
                    checkBox.Set3StateValue(wx.CHK_CHECKED)
                else:
                    checkBox.Set3StateValue(wx.CHK_UNCHECKED)

        if attribute is None or attribute == 'polarity':
            # Choose the appropriate item in the pop-up menu.
            if self.objects.haveEqualAttr('polarity'):
                if self.objects[0].polarity is None:
                    self._polarityChoice.SetSelection(self._unknownPolarityId)
                else:
                    for index in range(0, self._polarityChoice.GetCount()):
                        if self._polarityChoice.GetClientData(
                                index) == self.objects[0].polarity:
                            self._polarityChoice.SetSelection(index)
            else:
                self._multiplePolaritiesId = self._polarityChoice.Append(
                    gettext('Multiple values'), None)
                self._polarityChoice.SetSelection(self._multiplePolaritiesId)

        if attribute is None or attribute == 'neurotransmitters':
            if self.objects.haveEqualAttr('neurotransmitters'):
                self._neurotransmittersSizer.Clear(True)
                self._neurotransmitterChoice.Clear()
                self._neurotransmitterChoice.Append(gettext('Add...'))
                self._neurotransmitterChoice.SetSelection(0)
                for neurotransmitter in neuroptikon.library.neurotransmitters(
                ):
                    if neurotransmitter in self.objects[0].neurotransmitters:
                        self._neurotransmittersSizer.Add(
                            wx.StaticText(self._parentWindow, wx.ID_ANY,
                                          neurotransmitter.name))
                        removeButton = wx.Button(self._parentWindow,
                                                 wx.ID_ANY,
                                                 gettext('Remove'),
                                                 style=wx.BU_EXACTFIT)
                        removeButton.SetWindowVariant(wx.WINDOW_VARIANT_SMALL)
                        removeButton.SetSize(
                            wx.Size(60,
                                    removeButton.GetSize().GetHeight()))
                        removeButton.SetMinSize(removeButton.GetSize())
                        self._parentWindow.Bind(wx.EVT_BUTTON,
                                                self.onRemoveNeurotransmitter,
                                                removeButton)
                        self._neurotransmittersSizer.Add(
                            removeButton, 0, 0, 0, neurotransmitter)
                    else:
                        self._neurotransmitterChoice.Append(
                            neurotransmitter.name, neurotransmitter)
                if len(self.objects[0].neurotransmitters) == 0:
                    self._neurotransmittersSizer.Add(
                        wx.StaticText(self._parentWindow, wx.ID_ANY,
                                      gettext('Unknown')))
                self._neurotransmitterChoice.Enable(
                    self._neurotransmitterChoice.GetCount() > 1)
            else:
                self._neurotransmittersSizer.Add(
                    wx.StaticText(self._parentWindow, wx.ID_ANY,
                                  gettext('Multiple values')))
                self._neurotransmitterChoice.Disable()

        if attribute is None or attribute == 'neuronImage':
            if self.objects.haveEqualAttr('neuronImage'):
                image = self.objects[0].neuronImage
                self._imageSizer.Clear(True)
                self._imageSizer.Clear()
                if image == None or image == []:
                    pass
                else:
                    imagesGridSizer = wx.FlexGridSizer(2 * len(image), 0, 2, 5)
                    imagesGridSizer.SetFlexibleDirection(wx.VERTICAL)
                    self._imageSizer.Add(imagesGridSizer)
                    for idx, img in enumerate(image):
                        labelForNeuron = wx.StaticText(self._window, wx.ID_ANY,
                                                       gettext(img.label))
                        imagesGridSizer.Add(labelForNeuron)
                        if img.bmp:
                            scaledImage = img.bmp.Copy().Rescale(
                                100, 100, wx.IMAGE_QUALITY_HIGH)
                            imageOfNeuron = wx.StaticBitmap(self._window,
                                                            wx.ID_ANY,
                                                            name=str(idx))
                            imageOfNeuron.SetBitmap(
                                wx.BitmapFromImage(scaledImage))
                            imageOfNeuron.SetMinSize(wx.Size(100, 100))
                            imageOfNeuron.SetMaxSize(wx.Size(100, 100))
                            imageOfNeuron.Bind(wx.EVT_LEFT_DOWN,
                                               self.onSelectImage)
                            imagesGridSizer.Add(imageOfNeuron)
            else:
                pass
                #option if not all neurons have the same image

        if attribute is None or attribute == 'links':
            if self.objects.haveEqualAttr('links'):
                self._linkSizer.Clear(True)
                self._linkSizer.Clear()
                if self.objects[0].links:
                    for url in self.objects[0].links:
                        if (url):
                            self._linkOut = wx.HyperlinkCtrl(
                                self._parentWindow, wx.ID_ANY, gettext(url),
                                gettext(url))
                            self._linkSizer.Add(self._linkOut)

        self._sizer.Layout()
Exemplo n.º 30
0
    def __init__(self,
                 parent,
                 id,
                 title,
                 pos=wx.DefaultPosition,
                 size=wx.DefaultSize,
                 style=wx.DEFAULT_FRAME_STYLE):

        wx.Frame.__init__(self, parent, id, title, pos, size, style)

        self._connection_manager = None
        self._services = []

        self._init_logging()

        self._default_width = 400

        panel = wx.Panel(parent=self, id=wx.ID_ANY)

        # hgap is amount of space between columns, vgap between rows
        column1_sizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=5)
        column1_sizer.AddGrowableCol(1)

        column2_sizer = wx.FlexGridSizer(cols=2, hgap=10, vgap=5)
        column2_sizer.AddGrowableCol(1)

        self._init_domain_controls(panel, column1_sizer)
        self._init_hostname_controls(panel, column1_sizer)
        self._init_cname_controls(panel, column1_sizer)
        self._init_services_controls(panel, column1_sizer)
        self._init_connect_controls(panel, column1_sizer)
        self._init_log_controls(panel, column1_sizer)
        self._init_messages_controls(panel, column1_sizer)
        self._init_image_url_controls(panel, column1_sizer)
        self._init_link_url_controls(panel, column1_sizer)

        self._init_image_controls(panel, column2_sizer)
        self._init_text_controls(panel, column2_sizer)

        self._init_close_button(panel)

        content_sizer = wx.BoxSizer(wx.HORIZONTAL)
        content_sizer.Add(column1_sizer,
                          proportion=1,
                          flag=wx.ALL | wx.EXPAND,
                          border=10)
        content_sizer.Add(column2_sizer,
                          proportion=1,
                          flag=wx.ALL | wx.EXPAND,
                          border=10)

        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        button_sizer.AddStretchSpacer(1)
        button_sizer.Add(self._close_button,
                         proportion=0,
                         flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.EXPAND,
                         border=10)

        # Use a BoxSizer to add a border/gap around sizer.
        border = wx.BoxSizer(wx.VERTICAL)
        border.Add(content_sizer, proportion=1, flag=wx.EXPAND)
        border.Add(button_sizer, proportion=0, flag=wx.EXPAND)
        panel.SetSizerAndFit(border)
        self.Fit()

        self._init_message_handlers()