コード例 #1
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Smach Viewer", size=(720, 480))

        # Create graph
        self._containers = {}
        self._top_containers = {}
        self._update_cond = threading.Condition()
        self._needs_refresh = True
        self.dotstr = ''

        vbox = wx.BoxSizer(wx.VERTICAL)

        # Create Splitter
        self.content_splitter = wx.SplitterWindow(self,
                                                  -1,
                                                  style=wx.SP_LIVE_UPDATE)
        self.content_splitter.SetMinimumPaneSize(24)
        self.content_splitter.SetSashGravity(0.85)

        # Create viewer pane
        viewer = wx.Panel(self.content_splitter, -1)

        # Create smach viewer
        nb = wx.Notebook(viewer, -1, style=wx.NB_TOP | wx.WANTS_CHARS)
        viewer_box = wx.BoxSizer()
        viewer_box.Add(nb, 1, wx.EXPAND | wx.ALL, 4)
        viewer.SetSizer(viewer_box)

        # Create graph view
        graph_view = wx.Panel(nb, -1)
        gv_vbox = wx.BoxSizer(wx.VERTICAL)
        graph_view.SetSizer(gv_vbox)

        # Construct toolbar
        toolbar = wx.ToolBar(graph_view, -1)

        toolbar.AddControl(wx.StaticText(toolbar, -1, "Path: "))

        # Path list
        self.path_combo = wx.ComboBox(toolbar, -1, style=wx.CB_DROPDOWN)
        self.path_combo.Bind(wx.EVT_COMBOBOX, self.set_path)
        self.path_combo.Append('/')
        self.path_combo.SetValue('/')
        toolbar.AddControl(self.path_combo)

        # Depth spinner
        self.depth_spinner = wx.SpinCtrl(toolbar,
                                         -1,
                                         size=wx.Size(50, -1),
                                         min=-1,
                                         max=1337,
                                         initial=-1)
        self.depth_spinner.Bind(wx.EVT_SPINCTRL, self.set_depth)
        self._max_depth = -1
        toolbar.AddControl(wx.StaticText(toolbar, -1, "    Depth: "))
        toolbar.AddControl(self.depth_spinner)

        # Label width spinner
        self.width_spinner = wx.SpinCtrl(toolbar,
                                         -1,
                                         size=wx.Size(50, -1),
                                         min=1,
                                         max=1337,
                                         initial=40)
        self.width_spinner.Bind(wx.EVT_SPINCTRL, self.set_label_width)
        self._label_wrapper = textwrap.TextWrapper(40, break_long_words=True)
        toolbar.AddControl(wx.StaticText(toolbar, -1, "    Label Width: "))
        toolbar.AddControl(self.width_spinner)

        # Implicit transition display
        toggle_all = wx.ToggleButton(toolbar, -1, 'Show Implicit')
        toggle_all.Bind(wx.EVT_TOGGLEBUTTON, self.toggle_all_transitions)
        self._show_all_transitions = False

        toolbar.AddControl(wx.StaticText(toolbar, -1, "    "))
        toolbar.AddControl(toggle_all)

        toggle_auto_focus = wx.ToggleButton(toolbar, -1, 'Auto Focus')
        toggle_auto_focus.Bind(wx.EVT_TOGGLEBUTTON, self.toggle_auto_focus)
        self._auto_focus = False

        toolbar.AddControl(wx.StaticText(toolbar, -1, "    "))
        toolbar.AddControl(toggle_auto_focus)

        toolbar.AddControl(wx.StaticText(toolbar, -1, "    "))
        toolbar.AddLabelTool(
            wx.ID_HELP, 'Help',
            wx.ArtProvider.GetBitmap(wx.ART_HELP, wx.ART_OTHER, (16, 16)))
        toolbar.AddLabelTool(
            wx.ID_SAVE, 'Save',
            wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_OTHER, (16, 16)))
        toolbar.Realize()

        self.Bind(wx.EVT_TOOL, self.ShowControlsDialog, id=wx.ID_HELP)
        self.Bind(wx.EVT_TOOL, self.SaveDotGraph, id=wx.ID_SAVE)

        # Create dot graph widget
        self.widget = xdot.wxxdot.WxDotWindow(graph_view, -1)

        gv_vbox.Add(toolbar, 0, wx.EXPAND)
        gv_vbox.Add(self.widget, 1, wx.EXPAND)

        # Create tree view widget
        self.tree = wx.TreeCtrl(nb, -1, style=wx.TR_HAS_BUTTONS)
        nb.AddPage(graph_view, "Graph View")
        nb.AddPage(self.tree, "Tree View")

        # Create userdata widget
        borders = wx.LEFT | wx.RIGHT | wx.TOP
        border = 4
        self.ud_win = wx.ScrolledWindow(self.content_splitter, -1)
        self.ud_gs = wx.BoxSizer(wx.VERTICAL)

        self.ud_gs.Add(wx.StaticText(self.ud_win, -1, "Path:"), 0, borders,
                       border)

        self.path_input = wx.ComboBox(self.ud_win, -1, style=wx.CB_DROPDOWN)
        self.path_input.Bind(wx.EVT_COMBOBOX, self.selection_changed)
        self.ud_gs.Add(self.path_input, 0, wx.EXPAND | borders, border)

        self.ud_gs.Add(wx.StaticText(self.ud_win, -1, "Userdata:"), 0, borders,
                       border)

        self.ud_txt = wx.TextCtrl(self.ud_win,
                                  -1,
                                  style=wx.TE_MULTILINE | wx.TE_READONLY)
        self.ud_gs.Add(self.ud_txt, 1, wx.EXPAND | borders, border)

        # Add initial state button
        self.is_button = wx.Button(self.ud_win, -1, "Set as Initial State")
        self.is_button.Bind(wx.EVT_BUTTON, self.on_set_initial_state)
        self.is_button.Disable()
        self.ud_gs.Add(self.is_button, 0, wx.EXPAND | wx.BOTTOM | borders,
                       border)

        self.ud_win.SetSizer(self.ud_gs)

        # Set content splitter
        self.content_splitter.SplitVertically(viewer, self.ud_win, 512)

        # Add statusbar
        self.statusbar = wx.StatusBar(self, -1)

        # Add elements to sizer
        vbox.Add(self.content_splitter, 1, wx.EXPAND | wx.ALL)
        vbox.Add(self.statusbar, 0, wx.EXPAND)

        self.SetSizer(vbox)
        self.Center()

        # smach introspection client
        self._client = smach_ros.IntrospectionClient()
        self._containers = {}
        self._selected_paths = []

        # Message subscribers
        self._structure_subs = {}
        self._status_subs = {}

        self.Bind(wx.EVT_IDLE, self.OnIdle)
        self.Bind(wx.EVT_CLOSE, self.OnQuit)

        # Register mouse event callback
        self.widget.register_select_callback(self.select_cb)
        self._path = '/'
        self._needs_zoom = True
        self._structure_changed = True

        # Start a thread in the background to update the server list
        self._keep_running = True
        self._server_list_thread = threading.Thread(
            target=self._update_server_list)
        self._server_list_thread.start()

        self._update_graph_thread = threading.Thread(target=self._update_graph)
        self._update_graph_thread.start()
        self._update_tree_thread = threading.Thread(target=self._update_tree)
        self._update_tree_thread.start()
コード例 #2
0
    def setup_main_panel(self):
        """
        Lays Out Main Panel. Binds some functions to presenter.
        :return: None
        """
        # Create Status Bar
        self.CreateStatusBar(7)
        self.SetStatusWidths([-1, 300, 200, 200, 250, 150, 130])
        # Sizers to develop layout
        # s1 = (min(self.displaysize[0], 1851), self.displaysize[1])
        # s2 = (550, self.displaysize[1])
        splitterwindow = wx.SplitterWindow(self, -1, style=wx.SP_3D | wx.SP_BORDER)
        splitterwindow2 = wx.SplitterWindow(splitterwindow, -1, style=wx.SP_3D | wx.SP_BORDER)
        panelp = wx.Panel(splitterwindow2, -1)
        panel = scrolled.ScrolledPanel(splitterwindow2, -1)  # wx.Panel(splitterwindow2, -1)
        splitterwindow2.SplitVertically(panelp, panel, sashPosition=-250 - self.config.imflag * 20)
        splitterwindow2.SetMinimumPaneSize(175)
        splitterwindow.SetMinimumPaneSize(175)
        # splitterwindow.SetMinSize((0,0))
        # splitterwindow2.SetMinSize((0,0))
        file_drop_target = MyFileDropTarget(self)
        splitterwindow.SetDropTarget(file_drop_target)
        # .................................
        #
        #    Layout the Plots
        #
        # ...................................

        # Tabbed view of plots
        if self.tabbed == 1:
            figsize = (6, 5)
            plotwindow = wx.Notebook(splitterwindow)
            splitterwindow.SplitVertically(plotwindow, splitterwindow2, sashPosition=-550)
            tab1 = wx.Panel(plotwindow)
            tab2 = wx.Panel(plotwindow)
            tab3 = wx.Panel(plotwindow)
            tab4 = wx.Panel(plotwindow)
            tab5 = wx.Panel(plotwindow)
            tab6 = wx.Panel(plotwindow)

            self.plot1 = plot1d.Plot1d(tab1, smash=1, figsize=figsize)
            self.plot2 = plot1d.Plot1d(tab2, integrate=1, figsize=figsize)
            self.plot3 = plot2d.Plot2d(tab3, figsize=figsize)
            self.plot4 = plot1d.Plot1d(tab4, figsize=figsize)
            self.plot5 = plot2d.Plot2d(tab5, figsize=figsize)
            self.plot6 = plot1d.Plot1d(tab6, figsize=figsize)

            miscwindows.setup_tab_box(tab1, self.plot1)
            miscwindows.setup_tab_box(tab2, self.plot2)
            miscwindows.setup_tab_box(tab3, self.plot3)
            miscwindows.setup_tab_box(tab4, self.plot4)
            miscwindows.setup_tab_box(tab5, self.plot5)
            miscwindows.setup_tab_box(tab6, self.plot6)

            if self.config.imflag == 1:
                tab1im = wx.Panel(plotwindow)
                tab1fit = wx.Panel(plotwindow)
                tab2ccs = wx.Panel(plotwindow)
                tab3color = wx.Panel(plotwindow)
                tab5mccs = wx.Panel(plotwindow)
                tab5ccsz = wx.Panel(plotwindow)
                tab9 = wx.Panel(plotwindow)
                tab10 = wx.Panel(plotwindow)

                self.plot1im = plot2d.Plot2d(tab1im, figsize=figsize)
                self.plot1fit = plot2d.Plot2d(tab1fit, figsize=figsize)
                self.plot2ccs = plot1d.Plot1d(tab2ccs, figsize=figsize)
                self.plot5mccs = plot2d.Plot2d(tab5mccs, figsize=figsize)
                self.plot5ccsz = plot2d.Plot2d(tab5ccsz, figsize=figsize)
                self.plot3color = ColorPlot.ColorPlot2D(tab3color, figsize=figsize)
                self.plot9 = plot3d.CubePlot(tab9, figsize=figsize)
                self.plot10 = plot3d.CubePlot(tab10, figsize=figsize)

                miscwindows.setup_tab_box(tab1im, self.plot1im)
                miscwindows.setup_tab_box(tab1fit, self.plot1fit)
                miscwindows.setup_tab_box(tab2ccs, self.plot2ccs)
                miscwindows.setup_tab_box(tab3color, self.plot3color)
                miscwindows.setup_tab_box(tab5mccs, self.plot5mccs)
                miscwindows.setup_tab_box(tab5ccsz, self.plot5ccsz)
                miscwindows.setup_tab_box(tab9, self.plot9)
                miscwindows.setup_tab_box(tab10, self.plot10)

            plotwindow.AddPage(tab1, "MS Data v. Fit")
            if self.config.imflag == 1:
                plotwindow.AddPage(tab1im, "IM-MS Data")
                plotwindow.AddPage(tab1fit, "IM-MS Fit")
                plotwindow.AddPage(tab3color, "IM-MS Charges")
                plotwindow.AddPage(tab9, "m/z Cube")
            plotwindow.AddPage(tab3, "m/z Grid")
            plotwindow.AddPage(tab2, "Mass Distribution")
            if self.config.imflag == 1:
                plotwindow.AddPage(tab2ccs, "CCS Distribution")

            plotwindow.AddPage(tab4, "Individual Peaks")
            plotwindow.AddPage(tab5, "Mass vs. Charge")
            if self.config.imflag == 1:
                plotwindow.AddPage(tab5mccs, "Mass vs. CCS ")
                plotwindow.AddPage(tab5ccsz, "CCS vs. Charge")
                plotwindow.AddPage(tab10, "Mass Cube")
            plotwindow.AddPage(tab6, "Bar Chart")
        # Scrolled panel view of plots
        else:
            # TODO: Line up plots on left hand side so that they share an m/z axis
            plotwindow = scrolled.ScrolledPanel(splitterwindow)
            splitterwindow.SplitVertically(plotwindow, splitterwindow2, sashPosition=-550)
            sizerplot = wx.GridBagSizer()
            figsize = self.config.figsize
            self.plot1 = plot1d.Plot1d(plotwindow, smash=1, figsize=figsize)
            self.plot2 = plot1d.Plot1d(plotwindow, integrate=1, figsize=figsize)
            self.plot3 = plot2d.Plot2d(plotwindow, figsize=figsize)
            self.plot4 = plot1d.Plot1d(plotwindow, figsize=figsize)
            self.plot5 = plot2d.Plot2d(plotwindow, figsize=figsize)
            self.plot6 = plot1d.Plot1d(plotwindow, figsize=figsize)

            if self.config.imflag == 1:
                self.plot1im = plot2d.Plot2d(plotwindow, figsize=figsize)
                self.plot1fit = plot2d.Plot2d(plotwindow, figsize=figsize)
                self.plot2ccs = plot1d.Plot1d(plotwindow, figsize=figsize)
                self.plot5mccs = plot2d.Plot2d(plotwindow, figsize=figsize)
                self.plot5ccsz = plot2d.Plot2d(plotwindow, figsize=figsize)
                self.plot3color = ColorPlot.ColorPlot2D(plotwindow, figsize=figsize)
                self.plot9 = plot3d.CubePlot(plotwindow, figsize=figsize)
                self.plot10 = plot3d.CubePlot(plotwindow, figsize=figsize)

            if self.config.imflag == 0:
                sizerplot.Add(self.plot1, (0, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot2, (0, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot3, (1, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot4, (1, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot5, (2, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot6, (2, 1), span=(1, 1), flag=wx.EXPAND)
            else:
                sizerplot.Add(self.plot1, (0, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot1im, (0, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot1fit, (1, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot3color, (1, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot2, (2, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot2ccs, (3, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot3, (2, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot4, (4, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot5, (3, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot5mccs, (4, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot5ccsz, (5, 1), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot6, (5, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot9, (6, 0), span=(1, 1), flag=wx.EXPAND)
                sizerplot.Add(self.plot10, (6, 1), span=(1, 1), flag=wx.EXPAND)

            # plotwindow.SetScrollbars(1, 1,1,1)
            if self.system == "Linux":
                plotwindow.SetSizer(sizerplot)
                sizerplot.Fit(self)
            else:
                plotwindow.SetSizerAndFit(sizerplot)
            plotwindow.SetupScrolling()
            self.plotpanel = plotwindow
            plotwindow.SetFocus()
            plotwindow.Bind(wx.EVT_SET_FOCUS, self.onFocus)



        self.plots = [self.plot1, self.plot2, self.plot3, self.plot4, self.plot5, self.plot6]
        if self.config.imflag == 1:
            self.plots = self.plots + [self.plot1im, self.plot1fit, self.plot2ccs, self.plot5mccs, self.plot5ccsz,
                                       self.plot3color, self.plot9, self.plot10]
        self.plotnames = ["Figure1", "Figure2", "Figure3", "Figure4", "Figure5", "Figure6"]
        if self.config.imflag == 1:
            self.plotname = self.plotnames + ["Figure1im", "Figure1fit", "Figure2ccs", "Figure3color", "Figure5ccsz",
                                              "Figure5massccs", "mzCube", "massCube"]

        # ...........................
        #
        #   Sizer for Peaks
        #
        # ...........................
        sizerpeaks = wx.BoxSizer(wx.VERTICAL)
        self.peakpanel = peaklistsort.PeakListCtrlPanel(panelp)
        self.Bind(self.peakpanel.EVT_DELETE_SELECTION_2, self.pres.on_delete, self.peakpanel)
        self.Bind(self.peakpanel.EVT_CHARGE_STATE, self.pres.on_charge_states, self.peakpanel)
        self.Bind(self.peakpanel.EVT_DIFFERENCES, self.pres.on_differences, self.peakpanel)
        self.Bind(self.peakpanel.EVT_MASSES, self.pres.on_label_masses, self.peakpanel)
        sizerpeaks.Add(self.peakpanel, 0, wx.EXPAND)
        panelp.SetSizer(sizerpeaks)
        sizerpeaks.Fit(self)

        # ..........................
        #
        # Setup Control Panel
        #
        # .............................
        sizercontrols = wx.BoxSizer(wx.VERTICAL)
        self.controls = ud_controls.main_controls(self, self.config, self.pres, panel, self.icon_path)
        sizercontrols.Add(self.controls, 1, wx.EXPAND)
        panel.SetSizer(sizercontrols)
        sizercontrols.Fit(self)
        # panel.SetAutoLayout(1)
        # panel.SetupScrolling(scroll_x=False, scroll_y=True)

        if self.system == "Linux" and self.tabbed != 1:
            sizerplot.Fit(splitterwindow)

        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(splitterwindow, 1, wx.EXPAND)

        # Set everything up
        self.SetSizer(sizer)
        sizer.Fit(self)
        pass
コード例 #3
0
	def __init__( self, parent ):
		wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"WebLab-Deusto Experiment Server Tester", pos = wx.DefaultPosition, size = wx.Size( 611,507 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )
		
		self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
		self.SetBackgroundColour( wx.Colour( 221, 232, 249 ) )
		
		mainBoxSizer = wx.BoxSizer( wx.VERTICAL )
		
		serverSizer = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"Server" ), wx.HORIZONTAL )
		
		self.mHostLabel = wx.StaticText( self, wx.ID_ANY, u"Host:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.mHostLabel.Wrap( -1 )
		serverSizer.Add( self.mHostLabel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mHostText = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		serverSizer.Add( self.mHostText, 3, wx.ALL, 5 )
		
		self.mPortLabel = wx.StaticText( self, wx.ID_ANY, u"Port:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.mPortLabel.Wrap( -1 )
		serverSizer.Add( self.mPortLabel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mPortText = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		serverSizer.Add( self.mPortText, 1, wx.ALL, 5 )
		
		self.m_staticText10 = wx.StaticText( self, wx.ID_ANY, u"URI:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText10.Wrap( -1 )
		serverSizer.Add( self.m_staticText10, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mUriText = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		serverSizer.Add( self.mUriText, 0, wx.ALL, 5 )
		
		self.mConnectButton = wx.Button( self, wx.ID_ANY, u"Connect", wx.DefaultPosition, wx.DefaultSize, 0 )
		serverSizer.Add( self.mConnectButton, 0, wx.ALL, 5 )
		
		mainBoxSizer.Add( serverSizer, 0, wx.EXPAND, 5 )
		
		tabsSizer = wx.BoxSizer( wx.VERTICAL )
		
		self.mNotebook = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
		self.mCommandsTab = wx.Panel( self.mNotebook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		self.mCommandsTab.SetBackgroundColour( wx.Colour( 221, 254, 216 ) )
		
		commandsSizer = wx.BoxSizer( wx.HORIZONTAL )
		
		mCmdOtherCtrlsSizer = wx.BoxSizer( wx.VERTICAL )
		
		bSizer15 = wx.BoxSizer( wx.VERTICAL )
		
		mCmdOtherCtrlsSizer.Add( bSizer15, 1, wx.EXPAND, 5 )
		
		mCmdsTabFileSizer = wx.BoxSizer( wx.HORIZONTAL )
		
		self.m_staticText6 = wx.StaticText( self.mCommandsTab, wx.ID_ANY, u"Content:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText6.Wrap( -1 )
		mCmdsTabFileSizer.Add( self.m_staticText6, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		bSizer18 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.mFilePickerPath = wx.TextCtrl( self.mCommandsTab, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer18.Add( self.mFilePickerPath, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND, 5 )
		
		self.mFilePickerButton = wx.Button( self.mCommandsTab, wx.ID_ANY, u"...", wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer18.Add( self.mFilePickerButton, 1, wx.ALIGN_CENTER_VERTICAL, 5 )
		
		mCmdsTabFileSizer.Add( bSizer18, 0, wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.m_staticText7 = wx.StaticText( self.mCommandsTab, wx.ID_ANY, u"FileInfo:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.m_staticText7.Wrap( -1 )
		mCmdsTabFileSizer.Add( self.m_staticText7, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mFileInfoText = wx.TextCtrl( self.mCommandsTab, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdsTabFileSizer.Add( self.mFileInfoText, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		mCmdOtherCtrlsSizer.Add( mCmdsTabFileSizer, 1, wx.EXPAND|wx.ALL, 5 )
		
		mCmdsTabCommandSizer = wx.BoxSizer( wx.HORIZONTAL )
		
		self.mCommandLabel = wx.StaticText( self.mCommandsTab, wx.ID_ANY, u"Command:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.mCommandLabel.Wrap( -1 )
		mCmdsTabCommandSizer.Add( self.mCommandLabel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mCommandText = wx.TextCtrl( self.mCommandsTab, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdsTabCommandSizer.Add( self.mCommandText, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		mCmdOtherCtrlsSizer.Add( mCmdsTabCommandSizer, 1, wx.EXPAND|wx.ALL, 5 )
		
		bSizer16 = wx.BoxSizer( wx.VERTICAL )
		
		mCmdOtherCtrlsSizer.Add( bSizer16, 1, wx.EXPAND, 5 )
		
		commandsSizer.Add( mCmdOtherCtrlsSizer, 1, wx.EXPAND, 5 )
		
		mCmdButtonsSizer = wx.BoxSizer( wx.VERTICAL )
		
		self.mStartExperimentButton = wx.Button( self.mCommandsTab, wx.ID_ANY, u"> start_experiment()", wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdButtonsSizer.Add( self.mStartExperimentButton, 1, wx.ALL|wx.ALIGN_RIGHT|wx.EXPAND, 5 )
		
		self.mSendFileButton = wx.Button( self.mCommandsTab, wx.ID_ANY, u"> send_file()", wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdButtonsSizer.Add( self.mSendFileButton, 1, wx.ALL|wx.ALIGN_RIGHT|wx.EXPAND, 5 )
		
		self.mSendCommand = wx.Button( self.mCommandsTab, wx.ID_ANY, u"> send_command()", wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdButtonsSizer.Add( self.mSendCommand, 1, wx.ALL|wx.ALIGN_RIGHT|wx.EXPAND, 5 )
		
		self.mDisposeButton = wx.Button( self.mCommandsTab, wx.ID_ANY, u"> dispose()", wx.DefaultPosition, wx.DefaultSize, 0 )
		mCmdButtonsSizer.Add( self.mDisposeButton, 1, wx.ALL|wx.ALIGN_RIGHT|wx.EXPAND, 5 )
		
		commandsSizer.Add( mCmdButtonsSizer, 0, wx.EXPAND, 5 )
		
		self.mCommandsTab.SetSizer( commandsSizer )
		self.mCommandsTab.Layout()
		commandsSizer.Fit( self.mCommandsTab )
		self.mNotebook.AddPage( self.mCommandsTab, u"Commands", False )
		self.mScriptsTab = wx.Panel( self.mNotebook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
		self.mScriptsTab.SetBackgroundColour( wx.Colour( 221, 254, 216 ) )
		
		scriptsSizer = wx.BoxSizer( wx.HORIZONTAL )
		
		self.mScriptLabel = wx.StaticText( self.mScriptsTab, wx.ID_ANY, u"Script:", wx.DefaultPosition, wx.DefaultSize, 0 )
		self.mScriptLabel.Wrap( -1 )
		scriptsSizer.Add( self.mScriptLabel, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		bSizer181 = wx.BoxSizer( wx.HORIZONTAL )
		
		self.mScriptPickerPath = wx.TextCtrl( self.mScriptsTab, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer181.Add( self.mScriptPickerPath, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND, 5 )
		
		self.mScriptPickerButton = wx.Button( self.mScriptsTab, wx.ID_ANY, u"...", wx.DefaultPosition, wx.DefaultSize, 0 )
		bSizer181.Add( self.mScriptPickerButton, 1, wx.ALIGN_CENTER_VERTICAL, 5 )
		
		scriptsSizer.Add( bSizer181, 1, wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mRunScriptButton = wx.Button( self.mScriptsTab, wx.ID_ANY, u"Run Script", wx.DefaultPosition, wx.DefaultSize, 0 )
		scriptsSizer.Add( self.mRunScriptButton, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 )
		
		self.mScriptsTab.SetSizer( scriptsSizer )
		self.mScriptsTab.Layout()
		scriptsSizer.Fit( self.mScriptsTab )
		self.mNotebook.AddPage( self.mScriptsTab, u"Scripts", True )
		
		tabsSizer.Add( self.mNotebook, 1, wx.EXPAND |wx.ALL, 5 )
		
		mainBoxSizer.Add( tabsSizer, 1, wx.EXPAND, 5 )
		
		logSizer = wx.BoxSizer( wx.VERTICAL )
		
		self.mLogGrid = wx.grid.Grid( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 )
		
		# Grid
		self.mLogGrid.CreateGrid( 0, 2 )
		self.mLogGrid.EnableEditing( False )
		self.mLogGrid.EnableGridLines( True )
		self.mLogGrid.EnableDragGridSize( False )
		self.mLogGrid.SetMargins( 0, 0 )
		
		# Columns
		self.mLogGrid.SetColSize( 0, 80 )
		self.mLogGrid.SetColSize( 1, 80 )
		self.mLogGrid.EnableDragColMove( False )
		self.mLogGrid.EnableDragColSize( False )
		self.mLogGrid.SetColLabelSize( 30 )
		self.mLogGrid.SetColLabelValue( 0, u"Sent" )
		self.mLogGrid.SetColLabelValue( 1, u"Received" )
		self.mLogGrid.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE )
		
		# Rows
		self.mLogGrid.EnableDragRowSize( False )
		self.mLogGrid.SetRowLabelSize( 80 )
		self.mLogGrid.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE )
		
		# Label Appearance
		
		# Cell Defaults
		self.mLogGrid.SetDefaultCellBackgroundColour( wx.Colour( 255, 255, 221 ) )
		self.mLogGrid.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP )
		logSizer.Add( self.mLogGrid, 1, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )
		
		mainBoxSizer.Add( logSizer, 1, wx.EXPAND, 5 )
		
		buttonsSizer = wx.BoxSizer( wx.HORIZONTAL )
		
		self.mCleanLogButton = wx.Button( self, wx.ID_ANY, u"Clean Log", wx.DefaultPosition, wx.DefaultSize, 0 )
		buttonsSizer.Add( self.mCleanLogButton, 0, wx.ALIGN_RIGHT|wx.ALL, 5 )
		
		mainBoxSizer.Add( buttonsSizer, 0, wx.TOP|wx.BOTTOM|wx.RIGHT|wx.ALIGN_RIGHT, 5 )
		
		self.SetSizer( mainBoxSizer )
		self.Layout()
		self.mStatusBar = self.CreateStatusBar( 1, wx.ST_SIZEGRIP, wx.ID_ANY )
		
		# Connect Events
		self.Bind( wx.EVT_ACTIVATE, self.OnActivate )
		self.Bind( wx.EVT_ACTIVATE_APP, self.OnActivateApp )
		self.Bind( wx.EVT_CLOSE, self.OnClose )
		self.Bind( wx.EVT_ENTER_WINDOW, self.OnEnterWindow )
		self.Bind( wx.EVT_ICONIZE, self.OnIconize )
		self.Bind( wx.EVT_IDLE, self.OnIdle )
		self.Bind( wx.EVT_PAINT, self.OnPaint )
		self.mHostText.Bind( wx.EVT_TEXT, self.OnHostText )
		self.mHostText.Bind( wx.EVT_TEXT_ENTER, self.OnHostTextEnter )
		self.mPortText.Bind( wx.EVT_CHAR, self.OnPortChar )
		self.mPortText.Bind( wx.EVT_TEXT, self.OnPortText )
		self.mPortText.Bind( wx.EVT_TEXT_ENTER, self.OnPortTextEnter )
		self.mConnectButton.Bind( wx.EVT_BUTTON, self.OnConnect )
		self.mFilePickerButton.Bind( wx.EVT_BUTTON, self.OnFilePickerButtonClicked )
		self.mFileInfoText.Bind( wx.EVT_TEXT, self.OnFileInfoText )
		self.mFileInfoText.Bind( wx.EVT_TEXT_ENTER, self.OnFileInfoTextEnter )
		self.mCommandText.Bind( wx.EVT_TEXT, self.OnCommandText )
		self.mCommandText.Bind( wx.EVT_TEXT_ENTER, self.OnCommandTextEnter )
		self.mStartExperimentButton.Bind( wx.EVT_BUTTON, self.OnStartExperiment )
		self.mSendFileButton.Bind( wx.EVT_BUTTON, self.OnSendFile )
		self.mSendCommand.Bind( wx.EVT_BUTTON, self.OnSendCommand )
		self.mDisposeButton.Bind( wx.EVT_BUTTON, self.OnDispose )
		self.mScriptPickerButton.Bind( wx.EVT_BUTTON, self.OnScriptPickerButtonClicked )
		self.mRunScriptButton.Bind( wx.EVT_BUTTON, self.OnRunScript )
		self.mLogGrid.Bind( wx.grid.EVT_GRID_CELL_CHANGE, self.OnLogCellChange )
		self.mLogGrid.Bind( wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.OnLogCellLeftClick )
		self.mLogGrid.Bind( wx.grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnLogCellRightClick )
		self.mLogGrid.Bind( wx.grid.EVT_GRID_SELECT_CELL, self.OnLogSelectCell )
		self.mLogGrid.Bind( wx.EVT_KILL_FOCUS, self.OnLogKillFocus )
		self.mLogGrid.Bind( wx.EVT_PAINT, self.OnLogPaint )
		self.mLogGrid.Bind( wx.EVT_SET_FOCUS, self.OnLogSetFocus )
		self.mLogGrid.Bind( wx.EVT_SIZE, self.OnLogSize )
		self.mLogGrid.Bind( wx.EVT_UPDATE_UI, self.OnLogUpdateUI )
		self.mCleanLogButton.Bind( wx.EVT_BUTTON, self.OnCleanLog )
コード例 #4
0
ファイル: pyNsourceGui.py プロジェクト: neo-nie/pynsource
    def OnInit(self):
        self.Init()  # initialize the inspection tool
        self.log = Log()
        self.working = False
        wx.InitAllImageHandlers()
        self.andyapptitle = 'PyNsource GUI - Python Code into UML'

        self.frame = wx.Frame(None,
                              -1,
                              self.andyapptitle,
                              pos=(50, 50),
                              size=(0, 0),
                              style=wx.NO_FULL_REPAINT_ON_RESIZE
                              | wx.DEFAULT_FRAME_STYLE)
        self.frame.CreateStatusBar()

        if MULTI_TAB_GUI:
            self.notebook = wx.Notebook(self.frame, -1)

            if USE_SIZER:
                # create the chain of real objects
                panel = wx.Panel(self.notebook, -1)
                self.umlwin = UmlCanvas(panel, Log(), self.frame)
                # add children to sizers and set the sizer to the parent
                sizer = wx.BoxSizer(wx.VERTICAL)
                sizer.Add(self.umlwin, 1, wx.GROW)
                panel.SetSizer(sizer)
            else:
                self.umlwin = UmlCanvas(self.notebook, Log(), self.frame)

            #self.yuml = ImageViewer(self.notebook) # wx.Panel(self.notebook, -1)

            self.asciiart = wx.Panel(self.notebook, -1)

            if USE_SIZER:
                self.notebook.AddPage(panel, "UML")
            else:
                self.notebook.AddPage(self.umlwin, "UML")
            #self.notebook.AddPage(self.yuml, "yUml")
            self.notebook.AddPage(self.asciiart, "Ascii Art")

            # Modify my own page http://www.andypatterns.com/index.php/products/pynsource/asciiart/
            # Some other ideas here http://c2.com/cgi/wiki?UmlAsciiArt
            self.multiText = wx.TextCtrl(self.asciiart,
                                         -1,
                                         ASCII_UML_HELP_MSG,
                                         style=wx.TE_MULTILINE | wx.HSCROLL)
            bsizer = wx.BoxSizer()
            bsizer.Add(self.multiText, 1, wx.EXPAND)
            self.asciiart.SetSizerAndFit(bsizer)
            self.multiText.SetFont(
                wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, False)
            )  # see http://www.wxpython.org/docs/api/wx.Font-class.html for more fonts
            self.multiText.Bind(wx.EVT_CHAR, self.onKeyChar_Ascii_Text_window)
            self.multiText.Bind(wx.EVT_MOUSEWHEEL, self.OnWheelZoom_ascii)

            self.notebook.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
                               self.OnTabPageChanged)

        else:
            self.notebook = None

            self.panel_one = wx.Panel(self.frame, -1)
            self.umlwin = UmlCanvas(self.panel_one, Log(), self.frame)
            #
            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.umlwin, 1, wx.EXPAND)
            self.panel_one.SetSizer(sizer)

            self.panel_two = self.asciiart = wx.Panel(self.frame, -1)
            self.multiText = wx.TextCtrl(self.panel_two,
                                         -1,
                                         ASCII_UML_HELP_MSG,
                                         style=wx.TE_MULTILINE | wx.HSCROLL)
            self.multiText.SetFont(
                wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, False)
            )  # see http://www.wxpython.org/docs/api/wx.Font-class.html for more fonts
            self.multiText.Bind(wx.EVT_CHAR, self.onKeyChar_Ascii_Text_window)
            self.multiText.Bind(wx.EVT_MOUSEWHEEL, self.OnWheelZoom_ascii)
            #
            sizer = wx.BoxSizer(wx.VERTICAL)
            sizer.Add(self.multiText, 1, wx.EXPAND)
            self.panel_two.SetSizer(sizer)

            self.panel_two.Hide()

            self.sizer = wx.BoxSizer(wx.VERTICAL)
            self.sizer.Add(self.panel_one, 1, wx.EXPAND)
            self.sizer.Add(self.panel_two, 1, wx.EXPAND)
            self.frame.SetSizer(self.sizer)

        ogl.OGLInitialize(
        )  # creates some pens and brushes that the OGL library uses.

        # Set the frame to a good size for showing stuff
        self.frame.SetSize(WINDOW_SIZE)
        self.umlwin.SetFocus()
        self.SetTopWindow(self.frame)

        self.frame.Show(True)
        wx.EVT_CLOSE(self.frame, self.OnCloseFrame)

        self.popupmenu = None
        self.umlwin.Bind(
            wx.EVT_RIGHT_DOWN, self.OnRightButtonMenu
        )  # WARNING: takes over all righclick events - need to event.skip() to let through things to UmlShapeHandler
        self.Bind(wx.EVT_SIZE, self.OnResizeFrame)

        #self.umlwin.Bind(wx.EVT_SET_FOCUS, self.onFocus)  # attempt at making mousewheel auto scroll the workspace
        #self.frame.Bind(wx.EVT_SET_FOCUS, self.onFocus)   # attempt at making mousewheel auto scroll the workspace

        self.umlwin.InitSizeAndObjs(
        )  # Now that frame is visible and calculated, there should be sensible world coords to use

        self.InitConfig()

        class Context(object):
            """ Everything everybody needs to know """
            pass

        context = Context()
        # init the context
        context.wxapp = self
        context.config = self.config
        context.umlwin = self.umlwin
        context.model = self.umlwin.umlworkspace
        context.snapshot_mgr = self.umlwin.snapshot_mgr
        context.coordmapper = self.umlwin.coordmapper
        context.layouter = self.umlwin.layouter
        context.overlap_remover = self.umlwin.overlap_remover
        context.frame = self.frame
        if MULTI_TAB_GUI:
            context.multiText = self.multiText
            context.asciiart = self.asciiart
        else:
            context.multiText = None
            context.asciiart = None

        # App knows about everyone.
        # Everyone (ring classes) should be an adapter
        # but not strictly necessary unless you want an extra level
        # of indirection and separation or don't want to constantly
        # edit the ring classes to match what the app (and other ring
        # objects) expect - edit an adapter instead.
        self.app = App(context)
        self.app.Boot()

        self.InitMenus()
        self.PostOglViewSwitch()  # ensure key bindings kick in under linux

        wx.CallAfter(self.app.run.CmdBootStrap
                     )  # doesn't make a difference calling this via CallAfter
        return True
コード例 #5
0
ファイル: leviathan_out.py プロジェクト: Tektronica/leviathan
    def __init__(self, *args, **kwds):
        # begin wxGlade: TestFrame.__init__
        kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.SetSize((1234, 669))
        self.panel_frame = wx.Panel(self, wx.ID_ANY)

        self.thread = threading.Thread(target=self.run, args=())
        self.thread.daemon = True
        self.row = 0
        self.prevLine = ''
        self.line = ''
        self.table = {}
        self.overlay = {}
        self.ax = None
        self.x, self.y = [0.], [[0.]]
        self.flag_complete = False

        self.panel_main = wx.Panel(self.panel_frame, wx.ID_ANY)
        self.notebook = wx.Notebook(self.panel_main, wx.ID_ANY)
        self.notebook_program = wx.Panel(self.notebook, wx.ID_ANY)
        self.panel_3 = wx.Panel(self.notebook_program, wx.ID_ANY)
        self.text_ctrl_log = wx.TextCtrl(self.panel_3,
                                         wx.ID_ANY,
                                         "",
                                         style=wx.TE_MULTILINE
                                         | wx.TE_READONLY)
        self.text_ctrl_log_entry = wx.TextCtrl(self.panel_3,
                                               wx.ID_ANY,
                                               "",
                                               style=wx.TE_PROCESS_ENTER)
        sys.stdout = self.text_ctrl_log
        self.button_1 = wx.Button(self.panel_3, wx.ID_ANY, "Enter")
        self.notebook_1 = wx.Notebook(self.notebook_program, wx.ID_ANY)
        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, wx.ID_ANY)

        self.figure = plt.figure(figsize=(2,
                                          2))  # look into Figure((5, 4), 75)
        self.canvas = FigureCanvas(self.notebook_1_pane_2, -1, self.figure)
        self.toolbar = NavigationToolbar(self.canvas)
        self.toolbar.Realize()
        self.notebook_1_Settings = wx.Panel(self.notebook_1, wx.ID_ANY)
        # Use PropertyGridManger instead, if pages are desired
        self.property_grid_1 = wx.propgrid.PropertyGrid(
            self.notebook_1_Settings, wx.ID_ANY)

        self.notebook_Spreadsheet = wx.Panel(self.notebook, wx.ID_ANY)
        self.grid_1 = MyGrid(self.notebook_Spreadsheet)
        self.btn_run = wx.Button(self.panel_main, wx.ID_ANY, "Run Test")
        # TODO - Pause: https://stackoverflow.com/a/34313474/3382269
        self.btn_pause = wx.Button(self.panel_main, wx.ID_ANY, "Pause")
        self.btn_stop = wx.Button(self.panel_main, wx.ID_ANY, "Stop")
        self.btn_save = wx.Button(self.panel_main, wx.ID_ANY, "Save")

        # Run Measurement (start subprocess)
        on_run_event = lambda event: self.on_run(event)
        self.Bind(wx.EVT_BUTTON, on_run_event, self.btn_run)

        self.Bind(wxpg.EVT_PG_CHANGED, self.OnGridChangeEvent)

        self.__set_properties()
        self.__do_layout()
コード例 #6
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Mote PC Controller",
                          pos=wx.DefaultPosition,
                          size=wx.Size(300, 400),
                          style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE
                          | wx.MINIMIZE_BOX | wx.SYSTEM_MENU
                          | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DLIGHT))

        self.menu = wx.MenuBar(0)
        self.filemenu = wx.Menu()
        self.menuAbout = wx.MenuItem(self.filemenu, wx.ID_ABOUT, u"About",
                                     wx.EmptyString, wx.ITEM_NORMAL)
        self.filemenu.Append(self.menuAbout)

        self.menuExit = wx.MenuItem(self.filemenu, wx.ID_EXIT, u"Exit",
                                    wx.EmptyString, wx.ITEM_NORMAL)
        self.filemenu.Append(self.menuExit)

        self.menu.Append(self.filemenu, u"File")

        self.SetMenuBar(self.menu)

        sizerMain = wx.BoxSizer(wx.VERTICAL)

        self.notebookMain = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.panelSystem = wx.Panel(self.notebookMain, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        self.panelSystem.SetBackgroundColour(wx.Colour(255, 255, 255))

        sizerSystem = wx.BoxSizer(wx.VERTICAL)

        self.labelColour = wx.StaticText(self.panelSystem, wx.ID_ANY,
                                         u"Colour", wx.Point(-1, -1),
                                         wx.DefaultSize, 0)
        self.labelColour.Wrap(-1)
        sizerSystem.Add(self.labelColour, 0, wx.ALL, 5)

        self.pickerBaseColour = wx.ColourPickerCtrl(self.panelSystem,
                                                    wx.ID_ANY,
                                                    wx.Colour(0, 0, 0),
                                                    wx.DefaultPosition,
                                                    wx.DefaultSize,
                                                    wx.CLRP_DEFAULT_STYLE)
        self.pickerBaseColour.SetMinSize(wx.Size(100, -1))

        sizerSystem.Add(self.pickerBaseColour, 0, wx.ALL | wx.EXPAND, 5)

        self.checkMonitorTemp = wx.CheckBox(
            self.panelSystem, wx.ID_ANY,
            u"Set colour based on CPU temperature", wx.DefaultPosition,
            wx.DefaultSize, 0)
        self.checkMonitorTemp.SetToolTip(
            u"Requires 'Open Hardware Monitor' to be running")

        sizerSystem.Add(self.checkMonitorTemp, 0, wx.ALL, 5)

        menuGradChoiceChoices = []
        self.menuGradChoice = wx.Choice(self.panelSystem, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        menuGradChoiceChoices, 0)
        self.menuGradChoice.SetSelection(0)
        sizerSystem.Add(self.menuGradChoice, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticline1 = wx.StaticLine(self.panelSystem, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.LI_HORIZONTAL)
        sizerSystem.Add(self.m_staticline1, 0, wx.ALL | wx.EXPAND, 5)

        self.labelDynamicst3 = wx.StaticText(self.panelSystem, wx.ID_ANY,
                                             u"Dynamics", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.labelDynamicst3.Wrap(-1)
        sizerSystem.Add(self.labelDynamicst3, 0, wx.ALL, 5)

        self.checkMonitorLoad = wx.CheckBox(self.panelSystem, wx.ID_ANY,
                                            u"Pulse based on CPU load",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        sizerSystem.Add(self.checkMonitorLoad, 0, wx.ALL, 5)

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

        sizerTemperature = wx.BoxSizer(wx.HORIZONTAL)

        sizerTmin = wx.BoxSizer(wx.VERTICAL)

        self.label_Tmin = wx.StaticText(self.panelSystem, wx.ID_ANY,
                                        u"Minimum T", wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.label_Tmin.Wrap(-1)
        sizerTmin.Add(self.label_Tmin, 0, wx.ALL, 5)

        self.spinTmin = wx.SpinCtrl(self.panelSystem, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.DefaultSize,
                                    wx.SP_ARROW_KEYS | wx.TE_PROCESS_ENTER, 0,
                                    100, 0)
        sizerTmin.Add(self.spinTmin, 0, wx.ALL, 5)

        sizerTemperature.Add(sizerTmin, 1, wx.EXPAND, 5)

        sizerTmax = wx.BoxSizer(wx.VERTICAL)

        self.labelTmax = wx.StaticText(self.panelSystem, wx.ID_ANY,
                                       u"Maximum T", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.labelTmax.Wrap(-1)
        sizerTmax.Add(self.labelTmax, 0, wx.ALL, 5)

        self.spinTmax = wx.SpinCtrl(self.panelSystem, wx.ID_ANY,
                                    wx.EmptyString, wx.DefaultPosition,
                                    wx.DefaultSize,
                                    wx.SP_ARROW_KEYS | wx.TE_PROCESS_ENTER, 0,
                                    100, 0)
        sizerTmax.Add(self.spinTmax, 0, wx.ALL, 5)

        sizerTemperature.Add(sizerTmax, 1, wx.EXPAND, 5)

        sizerSystem.Add(sizerTemperature, 1, wx.SHAPED, 5)

        self.panelSystem.SetSizer(sizerSystem)
        self.panelSystem.Layout()
        sizerSystem.Fit(self.panelSystem)
        self.notebookMain.AddPage(self.panelSystem, u"System", False)
        self.panelRainbow = wx.Panel(self.notebookMain, wx.ID_ANY,
                                     wx.DefaultPosition, wx.DefaultSize,
                                     wx.TAB_TRAVERSAL)
        self.panelRainbow.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        sizerRainbow = wx.BoxSizer(wx.VERTICAL)

        self.labelExtras = wx.StaticText(self.panelRainbow, wx.ID_ANY,
                                         u"Rainbow mode activated",
                                         wx.DefaultPosition, wx.DefaultSize, 0)
        self.labelExtras.Wrap(-1)
        sizerRainbow.Add(self.labelExtras, 0, wx.ALL, 5)

        self.panelRainbow.SetSizer(sizerRainbow)
        self.panelRainbow.Layout()
        sizerRainbow.Fit(self.panelRainbow)
        self.notebookMain.AddPage(self.panelRainbow, u"Rainbow", False)
        self.panelCinema = wx.Panel(self.notebookMain, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        self.panelCinema.SetBackgroundColour(wx.Colour(255, 255, 255))

        sizerCinema = wx.BoxSizer(wx.VERTICAL)

        self.labelContrast = wx.StaticText(self.panelCinema, wx.ID_ANY,
                                           u"Contrast", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.labelContrast.Wrap(-1)
        sizerCinema.Add(self.labelContrast, 0, wx.ALL, 5)

        self.sliderContrast = wx.Slider(self.panelCinema, wx.ID_ANY, 25, 1, 50,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.SL_HORIZONTAL)
        sizerCinema.Add(self.sliderContrast, 0, wx.ALL | wx.EXPAND, 5)

        self.labelBrightness = wx.StaticText(self.panelCinema, wx.ID_ANY,
                                             u"Brightness", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.labelBrightness.Wrap(-1)
        sizerCinema.Add(self.labelBrightness, 0, wx.ALL, 5)

        self.sliderBrightness = wx.Slider(self.panelCinema, wx.ID_ANY, 100, 0,
                                          100, wx.DefaultPosition,
                                          wx.DefaultSize, wx.SL_HORIZONTAL)
        sizerCinema.Add(self.sliderBrightness, 0, wx.ALL | wx.EXPAND, 5)

        self.panelCinema.SetSizer(sizerCinema)
        self.panelCinema.Layout()
        sizerCinema.Fit(self.panelCinema)
        self.notebookMain.AddPage(self.panelCinema, u"Cinema", True)

        sizerMain.Add(self.notebookMain, 1, wx.ALL | wx.EXPAND, 5)

        self.SetSizer(sizerMain)
        self.Layout()
        self.statusbarMain = self.CreateStatusBar(1, wx.DEFAULT_FRAME_STYLE,
                                                  wx.ID_ANY)

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_MENU, self.OnAbout, id=self.menuAbout.GetId())
        self.Bind(wx.EVT_MENU, self.OnExit, id=self.menuExit.GetId())
        self.notebookMain.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
                               self.onNotebookChange)
        self.pickerBaseColour.Bind(wx.EVT_COLOURPICKER_CHANGED,
                                   self.OnColourChange)
        self.checkMonitorTemp.Bind(wx.EVT_CHECKBOX, self.OnMonitorTempChange)
        self.menuGradChoice.Bind(wx.EVT_CHOICE, self.onGradChoice)
        self.checkMonitorLoad.Bind(wx.EVT_CHECKBOX, self.OnMonitorLoadChange)
        self.spinTmin.Bind(wx.EVT_SPINCTRL, self.onTchange)
        self.spinTmin.Bind(wx.EVT_TEXT_ENTER, self.onTchange)
        self.spinTmax.Bind(wx.EVT_SPINCTRL, self.onTchange)
        self.spinTmax.Bind(wx.EVT_TEXT_ENTER, self.onTchange)
        self.sliderContrast.Bind(wx.EVT_SCROLL, self.onContrastChange)
        self.sliderBrightness.Bind(wx.EVT_SCROLL, self.onBrightnessChange)
コード例 #7
0
ファイル: frame.py プロジェクト: wilsoc5/hdf-compass
    def __init__(self, parent):
        # make that the plugin info is displayed in the middle of the screen
        frame_w = 320
        frame_h = 250
        x = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_X) // 2 - frame_w // 2
        y = wx.SystemSettings.GetMetric(wx.SYS_SCREEN_Y) // 2 - frame_h // 2
        wx.Frame.__init__(self,
                          parent,
                          title="Plugin Info",
                          pos=(x, y),
                          size=(frame_w, frame_h))

        # Frame icon
        ib = wx.IconBundle()
        icon_32 = wx.EmptyIcon()
        icon_32.CopyFromBitmap(
            wx.Bitmap(os.path.join(self.icon_folder, "favicon_32.png"),
                      wx.BITMAP_TYPE_ANY))
        ib.AddIcon(icon_32)
        icon_48 = wx.EmptyIcon()
        icon_48.CopyFromBitmap(
            wx.Bitmap(os.path.join(self.icon_folder, "favicon_48.png"),
                      wx.BITMAP_TYPE_ANY))
        ib.AddIcon(icon_48)
        self.SetIcons(ib)

        p = wx.Panel(self)
        nb = wx.Notebook(p)

        for store in compass_model.get_stores():
            try:
                # log.debug(store.plugin_name())
                # log.debug(store.plugin_description())

                pnl = wx.Panel(nb)
                t = rtc.RichTextCtrl(pnl, -1, style=wx.TE_READONLY)
                t.BeginFontSize(9)
                t.BeginAlignment(wx.TEXT_ALIGNMENT_CENTRE)
                t.BeginBold()
                t.WriteText("Name: ")
                t.EndBold()
                t.BeginItalic()
                t.WriteText(store.plugin_name())
                t.EndItalic()
                t.Newline()
                t.Newline()
                t.BeginBold()
                t.WriteText("Description")
                t.EndBold()
                t.Newline()
                t.BeginItalic()
                t.WriteText(store.plugin_description())
                t.EndItalic()
                t.Newline()

                #store.plugin_description(), style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_CENTER)
                szr = wx.BoxSizer()
                szr.Add(t, 1, wx.ALL | wx.EXPAND, 5)
                pnl.SetSizer(szr)
                nb.AddPage(pnl, store.plugin_name())

            except NotImplementedError:
                # skip not implemented plugin name/description
                log.debug("Not implemented name/description for %s" % store)

        sizer = wx.BoxSizer()
        sizer.Add(nb, 1, wx.ALL | wx.EXPAND, 3)
        p.SetSizer(sizer)
コード例 #8
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Python Utility - PDF&DOCX",
                          pos=wx.DefaultPosition,
                          size=wx.Size(928, 563),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

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

        bSizer5 = wx.BoxSizer(wx.VERTICAL)

        self.m_panel4 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer7 = wx.BoxSizer(wx.HORIZONTAL)

        bSizer8 = wx.BoxSizer(wx.VERTICAL)

        sbSizer2 = wx.StaticBoxSizer(
            wx.StaticBox(self.m_panel4, wx.ID_ANY, u"File workspace"),
            wx.VERTICAL)

        self.m_notebook21 = wx.Notebook(sbSizer2.GetStaticBox(), wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_panel5 = wx.Panel(self.m_notebook21, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer101 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl1 = wx.dataview.DataViewListCtrl(
            self.m_panel5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer101.Add(self.m_dataViewListCtrl1, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel5.SetSizer(bSizer101)
        self.m_panel5.Layout()
        bSizer101.Fit(self.m_panel5)
        self.m_notebook21.AddPage(self.m_panel5, u"PDFs", True)
        self.m_panel6 = wx.Panel(self.m_notebook21, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer111 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl5 = wx.dataview.DataViewListCtrl(
            self.m_panel6, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer111.Add(self.m_dataViewListCtrl5, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel6.SetSizer(bSizer111)
        self.m_panel6.Layout()
        bSizer111.Fit(self.m_panel6)
        self.m_notebook21.AddPage(self.m_panel6, u"DOCXs", False)

        sbSizer2.Add(self.m_notebook21, 1, wx.EXPAND | wx.ALL, 5)

        self.m_checkBox1 = wx.CheckBox(sbSizer2.GetStaticBox(), wx.ID_ANY,
                                       u"Allow loading duplicate files",
                                       wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_checkBox1.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_APPWORKSPACE))

        sbSizer2.Add(self.m_checkBox1, 0, wx.ALL, 5)

        bSizer8.Add(sbSizer2, 1, wx.EXPAND, 5)

        bSizer11 = wx.BoxSizer(wx.HORIZONTAL)

        bSizer11.AddStretchSpacer(1)

        self.m_button5 = wx.Button(self.m_panel4, wx.ID_ANY, u"Add Folder",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer11.Add(self.m_button5, 3, wx.ALIGN_LEFT | wx.ALL, 5)

        bSizer11.AddStretchSpacer(1)

        self.m_button6 = wx.Button(self.m_panel4, wx.ID_ANY, u"Add File(s)",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer11.Add(self.m_button6, 3, wx.ALL, 5)

        bSizer11.AddStretchSpacer(1)

        bSizer8.Add(bSizer11, 0, wx.EXPAND, 5)

        sbSizer21 = wx.StaticBoxSizer(
            wx.StaticBox(self.m_panel4, wx.ID_ANY, u"Unload:"), wx.HORIZONTAL)

        self.m_button10 = wx.Button(sbSizer21.GetStaticBox(), wx.ID_ANY,
                                    u"PDFs", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button10.SetMaxSize(wx.Size(60, -1))

        sbSizer21.Add(self.m_button10, 3, wx.ALL, 5)

        sbSizer21.AddStretchSpacer(1)

        self.m_button11 = wx.Button(sbSizer21.GetStaticBox(), wx.ID_ANY,
                                    u"DOCXs", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button11.SetMaxSize(wx.Size(60, -1))

        sbSizer21.Add(self.m_button11, 3, wx.ALL, 5)

        sbSizer21.AddStretchSpacer(1)

        self.m_button12 = wx.Button(sbSizer21.GetStaticBox(), wx.ID_ANY,
                                    u"All", wx.DefaultPosition, wx.DefaultSize,
                                    0)
        self.m_button12.SetMaxSize(wx.Size(60, -1))

        sbSizer21.Add(self.m_button12, 3, wx.ALL, 5)

        sbSizer21.AddStretchSpacer(1)

        self.m_button13 = wx.Button(sbSizer21.GetStaticBox(), wx.ID_ANY,
                                    u"Selected", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button13.SetMaxSize(wx.Size(60, -1))

        sbSizer21.Add(self.m_button13, 3, wx.ALL, 5)

        bSizer8.Add(sbSizer21, 0, wx.EXPAND, 5)

        bSizer7.Add(bSizer8, 5, wx.EXPAND, 5)

        bSizer9 = wx.BoxSizer(wx.VERTICAL)

        bSizer9.AddStretchSpacer(1)

        self.m_button1 = wx.Button(self.m_panel4, wx.ID_ANY, u">",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_button1.SetMaxSize(wx.Size(40, 30))

        bSizer9.Add(self.m_button1, 1, wx.ALIGN_CENTER | wx.ALL, 5)

        self.m_button2 = wx.Button(self.m_panel4, wx.ID_ANY, u">>",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_button2.SetMaxSize(wx.Size(40, 30))

        bSizer9.Add(self.m_button2, 1, wx.ALIGN_CENTER | wx.ALL, 5)

        bSizer9.AddStretchSpacer(1)

        self.m_button3 = wx.Button(self.m_panel4, wx.ID_ANY, u"<<",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_button3.SetMaxSize(wx.Size(40, 30))

        bSizer9.Add(self.m_button3, 1, wx.ALIGN_CENTER | wx.ALL, 5)

        self.m_button4 = wx.Button(self.m_panel4, wx.ID_ANY, u"<",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_button4.SetMaxSize(wx.Size(40, 30))

        bSizer9.Add(self.m_button4, 1, wx.ALIGN_CENTER | wx.ALL, 5)

        bSizer9.AddStretchSpacer(1)

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

        bSizer10 = wx.BoxSizer(wx.VERTICAL)

        self.m_notebook2 = wx.Notebook(self.m_panel4, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_panel7 = wx.Panel(self.m_notebook2, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer15 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl2 = wx.dataview.DataViewListCtrl(
            self.m_panel7, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer15.Add(self.m_dataViewListCtrl2, 1, wx.ALL | wx.EXPAND, 5)

        self.m_button7 = wx.Button(self.m_panel7, wx.ID_ANY, u"Convert All",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer15.Add(self.m_button7, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.m_panel7.SetSizer(bSizer15)
        self.m_panel7.Layout()
        bSizer15.Fit(self.m_panel7)
        self.m_notebook2.AddPage(self.m_panel7, u"PDF to DOCX", True)
        self.m_panel8 = wx.Panel(self.m_notebook2, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer14 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl21 = wx.dataview.DataViewListCtrl(
            self.m_panel8, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer14.Add(self.m_dataViewListCtrl21, 1, wx.ALL | wx.EXPAND, 5)

        self.m_button8 = wx.Button(self.m_panel8, wx.ID_ANY, u"Convert All",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer14.Add(self.m_button8, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.m_panel8.SetSizer(bSizer14)
        self.m_panel8.Layout()
        bSizer14.Fit(self.m_panel8)
        self.m_notebook2.AddPage(self.m_panel8, u"DOCX to PDF", False)
        self.m_panel9 = wx.Panel(self.m_notebook2, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        bSizer13 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl6 = wx.dataview.DataViewListCtrl(
            self.m_panel9, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer13.Add(self.m_dataViewListCtrl6, 1, wx.ALL | wx.EXPAND, 5)

        self.m_button9 = wx.Button(self.m_panel9, wx.ID_ANY, u"Merge All",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer13.Add(self.m_button9, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.m_panel9.SetSizer(bSizer13)
        self.m_panel9.Layout()
        bSizer13.Fit(self.m_panel9)
        self.m_notebook2.AddPage(self.m_panel9, u"PDF Merger", False)

        bSizer10.Add(self.m_notebook2, 1, wx.EXPAND | wx.ALL, 5)

        self.m_gauge1 = wx.Gauge(self.m_panel4, wx.ID_ANY, 100,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.GA_HORIZONTAL)
        self.m_gauge1.SetValue(0)
        bSizer10.Add(self.m_gauge1, 0, wx.ALL | wx.EXPAND, 5)

        bSizer7.Add(bSizer10, 5, wx.EXPAND, 5)

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

        self.SetSizer(bSizer5)
        self.Layout()

        self.Centre(wx.BOTH)

        ### data list column appending

        self.m_dataViewListCtrl1.AppendTextColumn("Name")
        self.m_dataViewListCtrl1.AppendTextColumn("Path")
        self.m_dataViewListCtrl1.AppendToggleColumn("")

        self.m_dataViewListCtrl5.AppendTextColumn("Name")
        self.m_dataViewListCtrl5.AppendTextColumn("Path")
        self.m_dataViewListCtrl5.AppendToggleColumn("")

        self.m_dataViewListCtrl2.AppendTextColumn("Name")
        self.m_dataViewListCtrl2.AppendTextColumn("Path")
        self.m_dataViewListCtrl2.AppendToggleColumn("")

        self.m_dataViewListCtrl21.AppendTextColumn("Name")
        self.m_dataViewListCtrl21.AppendTextColumn("Path")
        self.m_dataViewListCtrl21.AppendToggleColumn("")

        self.m_dataViewListCtrl6.AppendTextColumn("#")
        self.m_dataViewListCtrl6.AppendTextColumn("Name")
        self.m_dataViewListCtrl6.AppendTextColumn("Path")
        self.m_dataViewListCtrl6.AppendToggleColumn("")

        ### event binding

        self.m_button5.Bind(wx.EVT_BUTTON, self.add_folder)
        self.m_button6.Bind(wx.EVT_BUTTON, self.add_files)

        self.m_button10.Bind(wx.EVT_BUTTON, self.unload_PDFs)
        self.m_button11.Bind(wx.EVT_BUTTON, self.unload_DOCXs)
        self.m_button12.Bind(wx.EVT_BUTTON, self.unload_all)
        self.m_button13.Bind(wx.EVT_BUTTON, self.unload_selected)

        self.m_button1.Bind(wx.EVT_BUTTON, self.item_add)
        self.m_button2.Bind(wx.EVT_BUTTON, self.item_add_all)
        self.m_button3.Bind(wx.EVT_BUTTON, self.item_remove_all)
        self.m_button4.Bind(wx.EVT_BUTTON, self.item_remove)

        self.m_button7.Bind(wx.EVT_BUTTON, self.convert_pdf2doc)
        self.m_button8.Bind(wx.EVT_BUTTON, self.convert_doc2pdf)
        self.m_button9.Bind(wx.EVT_BUTTON, self.merge)

        self.m_notebook21.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.pageflip_src)
        self.m_notebook2.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.pageflip_dest)

        self.m_checkBox1.Bind(wx.EVT_CHECKBOX, self.allow_duplicates)

        self.m_dataViewListCtrl1.Bind(
            wx.dataview.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.select_src1)
        self.m_dataViewListCtrl5.Bind(
            wx.dataview.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.select_src2)

        self.m_dataViewListCtrl2.Bind(
            wx.dataview.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.select_dest1)
        self.m_dataViewListCtrl21.Bind(
            wx.dataview.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.select_dest2)
        self.m_dataViewListCtrl6.Bind(
            wx.dataview.EVT_DATAVIEW_ITEM_VALUE_CHANGED, self.select_dest3)
コード例 #9
0
    def __init__(self, *args, **kwds):
        # begin wxGlade: PyOgg2_MyFrame.__init__
        kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        self.SetSize((600, 500))
        self.SetTitle(_("mp3 2 ogg"))

        # Menu Bar
        self.Mp3_To_Ogg_menubar = wx.MenuBar()
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.ID_OPEN, _("&Open"), "")
        self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN)
        wxglade_tmp_menu.Append(wx.ID_EXIT, _("&Quit"), "")
        self.Bind(wx.EVT_MENU, self.OnClose, id=wx.ID_EXIT)
        self.Mp3_To_Ogg_menubar.Append(wxglade_tmp_menu, _("&File"))
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(wx.ID_ABOUT, _("&About"), _("About dialog"))
        self.Bind(wx.EVT_MENU, self.OnAboutDialog, id=wx.ID_ABOUT)
        self.Mp3_To_Ogg_menubar.Append(wxglade_tmp_menu, _("&Help"))
        self.SetMenuBar(self.Mp3_To_Ogg_menubar)
        # Menu Bar end

        self.Mp3_To_Ogg_statusbar = self.CreateStatusBar(2)
        self.Mp3_To_Ogg_statusbar.SetStatusWidths([-2, -1])
        # statusbar fields
        Mp3_To_Ogg_statusbar_fields = [_("Mp3_To_Ogg_statusbar"), ""]
        for i in range(len(Mp3_To_Ogg_statusbar_fields)):
            self.Mp3_To_Ogg_statusbar.SetStatusText(
                Mp3_To_Ogg_statusbar_fields[i], i)

        # Tool Bar
        self.Mp3_To_Ogg_toolbar = wx.ToolBar(self,
                                             -1,
                                             style=wx.TB_HORIZONTAL
                                             | wx.TB_TEXT)
        self.Mp3_To_Ogg_toolbar.AddTool(
            wx.ID_OPEN, _("&Open"), wx.NullBitmap, wx.NullBitmap,
            wx.ITEM_NORMAL, _("Open a file"),
            _("Open a MP3 file to convert into OGG format"))
        self.Bind(wx.EVT_TOOL, self.OnOpen, id=wx.ID_OPEN)
        self.SetToolBar(self.Mp3_To_Ogg_toolbar)
        self.Mp3_To_Ogg_toolbar.Realize()
        # Tool Bar end

        sizer_1 = wx.FlexGridSizer(3, 1, 0, 0)

        self.notebook_1 = wx.Notebook(self, wx.ID_ANY, style=wx.NB_BOTTOM)
        sizer_1.Add(self.notebook_1, 1, wx.EXPAND, 0)

        self.notebook_1_pane_1 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1.AddPage(self.notebook_1_pane_1, _("Input File"))

        _gszr_pane1 = wx.FlexGridSizer(1, 3, 0, 0)

        _lbl_input_filename = wx.StaticText(self.notebook_1_pane_1, wx.ID_ANY,
                                            _("File name:"))
        _gszr_pane1.Add(_lbl_input_filename, 0,
                        wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.text_ctrl_1 = wx.TextCtrl(self.notebook_1_pane_1, wx.ID_ANY, "")
        _gszr_pane1.Add(self.text_ctrl_1, 1,
                        wx.ALIGN_CENTER_VERTICAL | wx.ALL | wx.EXPAND, 5)

        self.button_3 = wx.Button(self.notebook_1_pane_1, wx.ID_OPEN, "")
        _gszr_pane1.Add(self.button_3, 0, wx.ALL, 5)

        self.notebook_1_pane_2 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1.AddPage(self.notebook_1_pane_2,
                                _("Converting Options"))

        sizer_4 = wx.BoxSizer(wx.HORIZONTAL)

        self.rbx_sampling_rate = wx.RadioBox(
            self.notebook_1_pane_2,
            wx.ID_ANY,
            _("Sampling Rate"),
            choices=[_("44 kbit"), _("128 kbit")],
            majorDimension=0,
            style=wx.RA_SPECIFY_ROWS)
        self.rbx_sampling_rate.SetSelection(0)
        sizer_4.Add(self.rbx_sampling_rate, 1, wx.ALL | wx.EXPAND, 5)

        sizer_3 = wx.StaticBoxSizer(
            wx.StaticBox(self.notebook_1_pane_2, wx.ID_ANY, _("Misc")),
            wx.HORIZONTAL)
        sizer_4.Add(sizer_3, 1, wx.ALL | wx.EXPAND, 5)

        self.cbx_love = wx.CheckBox(self.notebook_1_pane_2, wx.ID_ANY,
                                    _(u"♥ Love this song"))
        self.cbx_love.SetToolTip(_(u"Yes!\nWe ♥ it!"))
        self.cbx_love.SetValue(1)
        sizer_3.Add(self.cbx_love, 0, wx.ALL | wx.SHAPED, 5)

        self.notebook_1_pane_3 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1.AddPage(self.notebook_1_pane_3,
                                _("Converting Progress"))

        _szr_pane3 = wx.BoxSizer(wx.HORIZONTAL)

        self.text_ctrl_2 = wx.TextCtrl(self.notebook_1_pane_3,
                                       wx.ID_ANY,
                                       "",
                                       style=wx.TE_MULTILINE)
        _szr_pane3.Add(self.text_ctrl_2, 1, wx.ALL | wx.EXPAND, 5)

        self.notebook_1_pane_4 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1.AddPage(self.notebook_1_pane_4, _("Output File"))

        _gszr_pane4 = wx.FlexGridSizer(2, 3, 0, 0)

        self._lbl_output_filename = wx.StaticText(self.notebook_1_pane_4,
                                                  wx.ID_ANY, _("File name:"))
        _gszr_pane4.Add(self._lbl_output_filename, 0,
                        wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.text_ctrl_3 = wx.TextCtrl(self.notebook_1_pane_4, wx.ID_ANY, "")
        self.text_ctrl_3.SetToolTip(
            _("File name of the output file\nAn existing file will be overwritten without futher information!"
              ))
        _gszr_pane4.Add(self.text_ctrl_3, 0, wx.ALL | wx.EXPAND, 5)

        self.button_4 = wx.Button(self.notebook_1_pane_4, wx.ID_OPEN, "")
        _gszr_pane4.Add(self.button_4, 0, wx.ALL, 5)

        _gszr_pane4.Add((20, 20), 0, 0, 0)

        self.checkbox_1 = wx.CheckBox(self.notebook_1_pane_4, wx.ID_ANY,
                                      _("Overwrite existing file"))
        self.checkbox_1.SetToolTip(_("Overwrite an existing file"))
        self.checkbox_1.SetValue(1)
        _gszr_pane4.Add(self.checkbox_1, 0, wx.ALL | wx.EXPAND, 5)

        _gszr_pane4.Add((20, 20), 0, 0, 0)

        self.notebook_1_pane_5 = wx.Panel(self.notebook_1, wx.ID_ANY)
        self.notebook_1.AddPage(self.notebook_1_pane_5, _("Some Text"))

        sizer_5 = wx.BoxSizer(wx.HORIZONTAL)

        self.label_1 = wx.StaticText(
            self.notebook_1_pane_5, wx.ID_ANY,
            _("Please check the format of those lines manually:\n\nSingle line without any special characters.\n\na line break between new and line: new\nline\na tab character between new and line: new\tline\na backslash and a t \\t\ntwo backslash characters: \\\\ \nthree backslash characters: \\\\\\ \na double quote: \"\nan escaped new line sequence: \\n"
              ))
        sizer_5.Add(self.label_1, 1, wx.ALL | wx.EXPAND, 5)

        self.static_line_1 = wx.StaticLine(self, wx.ID_ANY)
        sizer_1.Add(self.static_line_1, 0, wx.ALL | wx.EXPAND, 5)

        sizer_2 = wx.FlexGridSizer(1, 3, 0, 0)
        sizer_1.Add(sizer_2, 0, wx.ALIGN_RIGHT, 0)

        self.button_5 = wx.Button(self, wx.ID_CLOSE, "")
        sizer_2.Add(self.button_5, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.button_2 = wx.Button(self, wx.ID_CANCEL, "", style=wx.BU_TOP)
        sizer_2.Add(self.button_2, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.button_1 = wx.Button(self, wx.ID_OK, "", style=wx.BU_TOP)
        sizer_2.Add(self.button_1, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.notebook_1_pane_5.SetSizer(sizer_5)

        _gszr_pane4.AddGrowableCol(1)
        self.notebook_1_pane_4.SetSizer(_gszr_pane4)

        self.notebook_1_pane_3.SetSizer(_szr_pane3)

        self.notebook_1_pane_2.SetSizer(sizer_4)

        _gszr_pane1.AddGrowableCol(1)
        self.notebook_1_pane_1.SetSizer(_gszr_pane1)

        sizer_1.AddGrowableRow(0)
        sizer_1.AddGrowableCol(0)
        self.SetSizer(sizer_1)
        sizer_1.SetSizeHints(self)

        self.Layout()
        self.Centre()

        self.Bind(wx.EVT_BUTTON, self.startConverting, self.button_1)
コード例 #10
0
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           id=wx.ID_ANY,
                           title=u"Calibration",
                           pos=wx.DefaultPosition,
                           size=wx.Size(640, 850),
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)

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

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

        self.m_notebook = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition,
                                      wx.DefaultSize, 0)
        self.m_panel3 = wx.Panel(self.m_notebook, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer12 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer12.AddGrowableCol(0)
        fgSizer12.AddGrowableRow(0)
        fgSizer12.SetFlexibleDirection(wx.BOTH)
        fgSizer12.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_splitter1 = wx.SplitterWindow(self.m_panel3, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize,
                                             wx.SP_3D | wx.SP_LIVE_UPDATE)
        self.m_splitter1.SetSashGravity(1)
        self.m_splitter1.SetMinimumPaneSize(220)

        self.m_panel4 = wx.Panel(self.m_splitter1, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer22 = wx.FlexGridSizer(0, 2, 0, 0)
        fgSizer22.AddGrowableCol(0)
        fgSizer22.AddGrowableRow(0)
        fgSizer22.SetFlexibleDirection(wx.BOTH)
        fgSizer22.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.BoatPlot = wx.glcanvas.GLCanvas(
            self.m_panel3,
            attribList=[
                wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_DOUBLEBUFFER,
                wx.glcanvas.WX_GL_DEPTH_SIZE, 16,
                wx.glcanvas.WX_GL_STENCIL_SIZE, 8, 0
            ])
        fgSizer22.Add(self.BoatPlot, 0, wx.ALL | wx.EXPAND, 5)

        self.m_panel4.SetSizer(fgSizer22)
        self.m_panel4.Layout()
        fgSizer22.Fit(self.m_panel4)
        self.m_panel5 = wx.Panel(self.m_splitter1, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer31 = wx.FlexGridSizer(0, 2, 0, 0)
        fgSizer31.AddGrowableCol(0)
        fgSizer31.AddGrowableRow(0)
        fgSizer31.SetFlexibleDirection(wx.BOTH)
        fgSizer31.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        fgSizer29 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer29.AddGrowableCol(0)
        fgSizer29.SetFlexibleDirection(wx.BOTH)
        fgSizer29.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

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

        self.m_staticText16 = wx.StaticText(self.m_panel5, wx.ID_ANY,
                                            u"Alignment", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText16.Wrap(-1)
        fgSizer18.Add(self.m_staticText16, 0, wx.ALL, 5)

        self.bReset = wx.Button(self.m_panel5, wx.ID_ANY, u"Reset",
                                wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer18.Add(self.bReset, 0, wx.ALL, 5)

        self.stAlignment = wx.StaticText(self.m_panel5, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        self.stAlignment.Wrap(-1)
        fgSizer18.Add(self.stAlignment, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer29.Add(fgSizer18, 1, wx.EXPAND, 5)

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

        self.m_staticText19 = wx.StaticText(self.m_panel5, wx.ID_ANY, u"Pitch",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText19.Wrap(-1)
        fgSizer19.Add(self.m_staticText19, 0, wx.ALL, 5)

        self.stPitch = wx.StaticText(self.m_panel5, wx.ID_ANY, u"N/A",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        self.stPitch.Wrap(-1)
        fgSizer19.Add(self.stPitch, 0, wx.ALL, 5)

        self.gAlignment = wx.Gauge(self.m_panel5, wx.ID_ANY, 100,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.GA_HORIZONTAL)
        self.gAlignment.SetValue(0)
        fgSizer19.Add(self.gAlignment, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        fgSizer29.Add(fgSizer19, 1, wx.EXPAND, 5)

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

        self.m_staticText34 = wx.StaticText(self.m_panel5, wx.ID_ANY, u"Roll",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText34.Wrap(-1)
        fgSizer13.Add(self.m_staticText34, 0, wx.ALL, 5)

        self.stRoll = wx.StaticText(self.m_panel5, wx.ID_ANY, u"     N/A     ",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        self.stRoll.Wrap(-1)
        fgSizer13.Add(self.stRoll, 0, wx.ALL, 5)

        self.m_staticText18 = wx.StaticText(self.m_panel5, wx.ID_ANY, u"Heel",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText18.Wrap(-1)
        fgSizer13.Add(self.m_staticText18, 0, wx.ALL, 5)

        self.stHeel = wx.StaticText(self.m_panel5, wx.ID_ANY, u"     N/A     ",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        self.stHeel.Wrap(-1)
        fgSizer13.Add(self.stHeel, 0, wx.ALL, 5)

        self.bLevel = wx.Button(self.m_panel5, wx.ID_ANY, u"Boat is level",
                                wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer13.Add(self.bLevel, 0, wx.ALL, 5)

        fgSizer29.Add(fgSizer13, 1, wx.EXPAND, 5)

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

        self.m_staticText22 = wx.StaticText(self.m_panel5, wx.ID_ANY,
                                            u"Heading", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText22.Wrap(-1)
        fgSizer14.Add(self.m_staticText22, 0, wx.ALL, 5)

        self.stHeading = wx.StaticText(self.m_panel5, wx.ID_ANY,
                                       u"     N/A     ", wx.DefaultPosition,
                                       wx.DefaultSize, 0)
        self.stHeading.Wrap(-1)
        fgSizer14.Add(self.stHeading, 0, wx.ALL, 5)

        self.m_staticText25 = wx.StaticText(self.m_panel5, wx.ID_ANY,
                                            u"Offset", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText25.Wrap(-1)
        fgSizer14.Add(self.m_staticText25, 0, wx.ALL, 5)

        self.sHeadingOffset = wx.SpinCtrl(self.m_panel5, wx.ID_ANY,
                                          wx.EmptyString, wx.DefaultPosition,
                                          wx.DefaultSize, wx.SP_ARROW_KEYS,
                                          -180, 180, -3)
        fgSizer14.Add(self.sHeadingOffset, 0, wx.ALL, 5)

        fgSizer29.Add(fgSizer14, 1, wx.EXPAND, 5)

        fgSizer31.Add(fgSizer29, 1, wx.EXPAND, 5)

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

        sbSizer4 = wx.StaticBoxSizer(
            wx.StaticBox(self.m_panel5, wx.ID_ANY, u"Coords"), wx.VERTICAL)

        cCoordsChoices = [u"Sea", u"Boat", u"Compass"]
        self.cCoords = wx.Choice(sbSizer4.GetStaticBox(), wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 cCoordsChoices, 0)
        self.cCoords.SetSelection(2)
        sbSizer4.Add(self.cCoords, 0, wx.ALL, 5)

        fgSizer23.Add(sbSizer4, 1, wx.EXPAND, 5)

        self.cbTextureCompass = wx.CheckBox(self.m_panel5, wx.ID_ANY,
                                            u"tex compass", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.cbTextureCompass.SetValue(True)
        fgSizer23.Add(self.cbTextureCompass, 0, wx.ALL, 5)

        fgSizer31.Add(fgSizer23, 1, wx.EXPAND, 5)

        self.m_panel5.SetSizer(fgSizer31)
        self.m_panel5.Layout()
        fgSizer31.Fit(self.m_panel5)
        self.m_splitter1.SplitHorizontally(self.m_panel4, self.m_panel5, -1)
        fgSizer12.Add(self.m_splitter1, 1, wx.EXPAND, 5)

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

        self.bIMUScope = wx.Button(self.m_panel3, wx.ID_ANY, u"Scope",
                                   wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer181.Add(self.bIMUScope, 0, wx.ALL, 5)

        m_sdbSizer2 = wx.StdDialogButtonSizer()
        self.m_sdbSizer2OK = wx.Button(self.m_panel3, wx.ID_OK)
        m_sdbSizer2.AddButton(self.m_sdbSizer2OK)
        m_sdbSizer2.Realize()

        fgSizer181.Add(m_sdbSizer2, 1, wx.ALIGN_RIGHT | wx.EXPAND, 5)

        fgSizer12.Add(fgSizer181, 1, wx.EXPAND, 5)

        self.m_panel3.SetSizer(fgSizer12)
        self.m_panel3.Layout()
        fgSizer12.Fit(self.m_panel3)
        self.m_notebook.AddPage(self.m_panel3, u"imu", False)
        self.m_panel7 = wx.Panel(self.m_notebook, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer81 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer81.AddGrowableCol(0)
        fgSizer81.AddGrowableRow(0)
        fgSizer81.SetFlexibleDirection(wx.BOTH)
        fgSizer81.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.AccelCalibration = wx.glcanvas.GLCanvas(
            self.m_panel7,
            attribList=[
                wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_DOUBLEBUFFER,
                wx.glcanvas.WX_GL_DEPTH_SIZE, 16,
                wx.glcanvas.WX_GL_STENCIL_SIZE, 8, 0
            ])
        fgSizer81.Add(self.AccelCalibration, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer1911 = wx.FlexGridSizer(0, 3, 0, 0)
        fgSizer1911.AddGrowableCol(0)
        fgSizer1911.SetFlexibleDirection(wx.BOTH)
        fgSizer1911.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

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

        self.m_staticText101 = wx.StaticText(self.m_panel7, wx.ID_ANY,
                                             u"Calibration",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText101.Wrap(-1)
        fgSizer101.Add(self.m_staticText101, 0, wx.ALL, 5)

        self.stAccelCal = wx.StaticText(self.m_panel7, wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, 0)
        self.stAccelCal.Wrap(-1)
        fgSizer101.Add(self.stAccelCal, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText141 = wx.StaticText(self.m_panel7, wx.ID_ANY,
                                             u"Calibration Age",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText141.Wrap(-1)
        fgSizer101.Add(self.m_staticText141, 0, wx.ALL, 5)

        self.stAccelCalAge = wx.StaticText(self.m_panel7, wx.ID_ANY,
                                           wx.EmptyString, wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.stAccelCalAge.Wrap(-1)
        fgSizer101.Add(self.stAccelCalAge, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer1911.Add(fgSizer101, 1, wx.EXPAND, 5)

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

        self.m_button101 = wx.Button(self.m_panel7, wx.ID_ANY, u"Clear",
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer271.Add(self.m_button101, 0, wx.ALL, 5)

        self.cbAccelCalibrationLocked = wx.CheckBox(self.m_panel7, wx.ID_ANY,
                                                    u"calibratiion locked",
                                                    wx.DefaultPosition,
                                                    wx.DefaultSize, 0)
        fgSizer271.Add(self.cbAccelCalibrationLocked, 0, wx.ALL, 5)

        fgSizer1911.Add(fgSizer271, 1, wx.EXPAND, 5)

        m_sdbSizer11 = wx.StdDialogButtonSizer()
        self.m_sdbSizer11OK = wx.Button(self.m_panel7, wx.ID_OK)
        m_sdbSizer11.AddButton(self.m_sdbSizer11OK)
        m_sdbSizer11.Realize()

        fgSizer1911.Add(m_sdbSizer11, 1, wx.EXPAND, 5)

        fgSizer81.Add(fgSizer1911, 1, wx.EXPAND, 5)

        self.m_panel7.SetSizer(fgSizer81)
        self.m_panel7.Layout()
        fgSizer81.Fit(self.m_panel7)
        self.m_notebook.AddPage(self.m_panel7, u"accel", False)
        self.m_panel1 = wx.Panel(self.m_notebook, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer8 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer8.AddGrowableCol(0)
        fgSizer8.AddGrowableRow(0)
        fgSizer8.SetFlexibleDirection(wx.BOTH)
        fgSizer8.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.CompassCalibration = wx.glcanvas.GLCanvas(
            self.m_panel1,
            attribList=[
                wx.glcanvas.WX_GL_RGBA, wx.glcanvas.WX_GL_DOUBLEBUFFER,
                wx.glcanvas.WX_GL_DEPTH_SIZE, 16,
                wx.glcanvas.WX_GL_STENCIL_SIZE, 8, 0
            ])
        fgSizer8.Add(self.CompassCalibration, 0, wx.ALL | wx.EXPAND, 5)

        fgSizer191 = wx.FlexGridSizer(0, 3, 0, 0)
        fgSizer191.AddGrowableCol(0)
        fgSizer191.SetFlexibleDirection(wx.BOTH)
        fgSizer191.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

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

        self.m_staticText10 = wx.StaticText(self.m_panel1, wx.ID_ANY,
                                            u"Calibration", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText10.Wrap(-1)
        fgSizer10.Add(self.m_staticText10, 0, wx.ALL, 5)

        self.stCompassCal = wx.StaticText(self.m_panel1, wx.ID_ANY,
                                          wx.EmptyString, wx.DefaultPosition,
                                          wx.DefaultSize, 0)
        self.stCompassCal.Wrap(-1)
        fgSizer10.Add(self.stCompassCal, 0, wx.ALL | wx.EXPAND, 5)

        self.m_staticText14 = wx.StaticText(self.m_panel1, wx.ID_ANY,
                                            u"Calibration Age",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText14.Wrap(-1)
        fgSizer10.Add(self.m_staticText14, 0, wx.ALL, 5)

        self.stCompassCalAge = wx.StaticText(self.m_panel1, wx.ID_ANY,
                                             wx.EmptyString,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.stCompassCalAge.Wrap(-1)
        fgSizer10.Add(self.stCompassCalAge, 0, wx.ALL | wx.EXPAND, 5)

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

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

        self.m_button10 = wx.Button(self.m_panel1, wx.ID_ANY, u"Clear",
                                    wx.DefaultPosition, wx.DefaultSize, 0)
        fgSizer27.Add(self.m_button10, 0, wx.ALL, 5)

        self.cbCompassCalibrationLocked = wx.CheckBox(self.m_panel1, wx.ID_ANY,
                                                      u"calibratiion locked",
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        fgSizer27.Add(self.cbCompassCalibrationLocked, 0, wx.ALL, 5)

        fgSizer191.Add(fgSizer27, 1, wx.EXPAND, 5)

        m_sdbSizer1 = wx.StdDialogButtonSizer()
        self.m_sdbSizer1OK = wx.Button(self.m_panel1, wx.ID_OK)
        m_sdbSizer1.AddButton(self.m_sdbSizer1OK)
        m_sdbSizer1.Realize()

        fgSizer191.Add(m_sdbSizer1, 1, wx.EXPAND, 5)

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

        self.m_panel1.SetSizer(fgSizer8)
        self.m_panel1.Layout()
        fgSizer8.Fit(self.m_panel1)
        self.m_notebook.AddPage(self.m_panel1, u"compass", False)
        self.m_panel2 = wx.Panel(self.m_notebook, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.TAB_TRAVERSAL)
        fgSizer9 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer9.AddGrowableCol(0)
        fgSizer9.AddGrowableRow(0)
        fgSizer9.SetFlexibleDirection(wx.BOTH)
        fgSizer9.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.m_swservo = wx.ScrolledWindow(self.m_panel2, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.HSCROLL | wx.VSCROLL)
        self.m_swservo.SetScrollRate(5, 5)
        fgSizer351 = wx.FlexGridSizer(0, 1, 0, 0)
        fgSizer351.AddGrowableCol(0)
        fgSizer351.AddGrowableRow(0)
        fgSizer351.AddGrowableRow(1)
        fgSizer351.AddGrowableRow(2)
        fgSizer351.SetFlexibleDirection(wx.BOTH)
        fgSizer351.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        sbSizer1 = wx.StaticBoxSizer(
            wx.StaticBox(self.m_swservo, wx.ID_ANY, u"Calibration"),
            wx.VERTICAL)

        self.stServoCalibration = wx.StaticText(sbSizer1.GetStaticBox(),
                                                wx.ID_ANY, wx.EmptyString,
                                                wx.DefaultPosition,
                                                wx.DefaultSize, 0)
        self.stServoCalibration.Wrap(400)
        sbSizer1.Add(self.stServoCalibration, 0, wx.ALL | wx.EXPAND, 5)

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

        sbSizer3 = wx.StaticBoxSizer(
            wx.StaticBox(self.m_swservo, wx.ID_ANY, u"Rudder Feedback"),
            wx.VERTICAL)

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

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

        self.m_staticText41 = wx.StaticText(
            sbSizer3.GetStaticBox(), wx.ID_ANY,
            u"To calibrate the rudder, first center, and then you must press both buttons with the rudder in position each time.",
            wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_staticText41.Wrap(550)
        fgSizer36.Add(self.m_staticText41, 0, wx.ALL, 5)

        fgSizer35.Add(fgSizer36, 1, wx.EXPAND, 5)

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

        self.m_staticText38 = wx.StaticText(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                            u"Rudder", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText38.Wrap(-1)
        fgSizer32.Add(self.m_staticText38, 0, wx.ALL, 5)

        self.stRudderAngle = wx.StaticText(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                           u"N/A", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.stRudderAngle.Wrap(-1)
        fgSizer32.Add(self.stRudderAngle, 0, wx.ALL, 5)

        fgSizer35.Add(fgSizer32, 1, wx.EXPAND, 5)

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

        self.m_button11 = wx.Button(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                    u"Rudder Is Centered", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        fgSizer33.Add(self.m_button11, 0, wx.ALL, 5)

        self.m_staticText341 = wx.StaticText(sbSizer3.GetStaticBox(),
                                             wx.ID_ANY, u"Offset",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText341.Wrap(-1)
        fgSizer33.Add(self.m_staticText341, 0, wx.ALL, 5)

        self.m_staticText35 = wx.StaticText(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                            u"-----", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText35.Wrap(-1)
        fgSizer33.Add(self.m_staticText35, 0, wx.ALL, 5)

        fgSizer35.Add(fgSizer33, 1, wx.EXPAND, 5)

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

        self.m_button12 = wx.Button(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                    u"Rudder At Range", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        fgSizer34.Add(self.m_button12, 0, wx.ALL, 5)

        self.m_staticText42 = wx.StaticText(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                            u"range", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText42.Wrap(-1)
        fgSizer34.Add(self.m_staticText42, 0, wx.ALL, 5)

        self.sRudderRange = wx.SpinCtrl(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                        wx.EmptyString, wx.DefaultPosition,
                                        wx.DefaultSize, wx.SP_ARROW_KEYS, 10,
                                        90, 30)
        fgSizer34.Add(self.sRudderRange, 0, wx.ALL, 5)

        self.m_staticText40 = wx.StaticText(sbSizer3.GetStaticBox(), wx.ID_ANY,
                                            u"degrees", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText40.Wrap(-1)
        fgSizer34.Add(self.m_staticText40, 0, wx.ALL, 5)

        fgSizer35.Add(fgSizer34, 1, wx.EXPAND, 5)

        sbSizer3.Add(fgSizer35, 1, wx.EXPAND, 5)

        fgSizer351.Add(sbSizer3, 1, wx.EXPAND, 5)

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

        self.m_staticText30 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                            u"Max Current", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText30.Wrap(-1)
        fgSizer15.Add(self.m_staticText30, 0, wx.ALL, 5)

        self.dsServoMaxCurrent = wx.SpinCtrlDouble(self.m_swservo)
        self.dsServoMaxCurrent.SetMinSize(wx.Size(60, 30))

        fgSizer15.Add(self.dsServoMaxCurrent, 0, wx.ALL, 5)

        self.m_staticText32 = wx.StaticText(self.m_swservo, wx.ID_ANY, u"Amps",
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.m_staticText32.Wrap(-1)
        fgSizer15.Add(self.m_staticText32, 0, wx.ALL, 5)

        self.m_staticText305 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"Max Controller Temperature",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText305.Wrap(-1)
        fgSizer15.Add(self.m_staticText305, 0, wx.ALL, 5)

        self.dsServoMaxControllerTemp = wx.SpinCtrl(self.m_swservo)
        self.dsServoMaxControllerTemp.SetMinSize(wx.Size(60, 30))

        fgSizer15.Add(self.dsServoMaxControllerTemp, 0, wx.ALL, 5)

        self.m_staticText325 = wx.StaticText(self.m_swservo, wx.ID_ANY, u"°C",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText325.Wrap(-1)
        fgSizer15.Add(self.m_staticText325, 0, wx.ALL, 5)

        self.m_staticText3051 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                              u"Max Motor Temperature",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText3051.Wrap(-1)
        fgSizer15.Add(self.m_staticText3051, 0, wx.ALL, 5)

        self.dsServoMaxMotorTemp = wx.SpinCtrl(self.m_swservo)
        self.dsServoMaxMotorTemp.SetMinSize(wx.Size(60, 30))

        fgSizer15.Add(self.dsServoMaxMotorTemp, 0, wx.ALL, 5)

        self.m_staticText3251 = wx.StaticText(self.m_swservo, wx.ID_ANY, u"°C",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText3251.Wrap(-1)
        fgSizer15.Add(self.m_staticText3251, 0, wx.ALL, 5)

        self.m_staticText304 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"Max Slew Speed",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText304.Wrap(-1)
        fgSizer15.Add(self.m_staticText304, 0, wx.ALL, 5)

        self.dsServoMaxSlewSpeed = wx.SpinCtrl(self.m_swservo)
        self.dsServoMaxSlewSpeed.SetMinSize(wx.Size(100, 30))

        fgSizer15.Add(self.dsServoMaxSlewSpeed, 0, wx.ALL, 5)

        self.m_staticText324 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"steps", wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText324.Wrap(-1)
        fgSizer15.Add(self.m_staticText324, 0, wx.ALL, 5)

        self.m_staticText3041 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                              u"Max Slew Slow",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText3041.Wrap(-1)
        fgSizer15.Add(self.m_staticText3041, 0, wx.ALL, 5)

        self.dsServoMaxSlewSlow = wx.SpinCtrl(self.m_swservo)
        self.dsServoMaxSlewSlow.SetMinSize(wx.Size(100, 30))

        fgSizer15.Add(self.dsServoMaxSlewSlow, 0, wx.ALL, 5)

        self.m_staticText3241 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                              u"steps", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_staticText3241.Wrap(-1)
        fgSizer15.Add(self.m_staticText3241, 0, wx.ALL, 5)

        fgSizer351.Add(fgSizer15, 1, wx.EXPAND, 5)

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

        self.m_staticText52 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                            u"Voltage", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText52.Wrap(-1)
        fgSizer361.Add(self.m_staticText52, 0, wx.ALL, 5)

        self.m_stServoVoltage = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                              u"---", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_stServoVoltage.Wrap(-1)
        fgSizer361.Add(self.m_stServoVoltage, 0, wx.ALL, 5)

        self.m_staticText30411 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                               u"Voltage Correction Offset",
                                               wx.DefaultPosition,
                                               wx.DefaultSize, 0)
        self.m_staticText30411.Wrap(-1)
        fgSizer361.Add(self.m_staticText30411, 0, wx.ALL, 5)

        self.dsServoVoltageOffset = wx.SpinCtrlDouble(self.m_swservo)
        self.dsServoVoltageOffset.SetMinSize(wx.Size(100, 30))

        fgSizer361.Add(self.dsServoVoltageOffset, 0, wx.ALL, 5)

        self.m_staticText303 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"Voltage Correction Factor",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText303.Wrap(-1)
        fgSizer361.Add(self.m_staticText303, 0, wx.ALL, 5)

        self.dsServoVoltageFactor = wx.SpinCtrlDouble(self.m_swservo)
        self.dsServoVoltageFactor.SetMinSize(wx.Size(100, 30))

        fgSizer361.Add(self.dsServoVoltageFactor, 0, wx.ALL, 5)

        fgSizer351.Add(fgSizer361, 1, wx.EXPAND, 5)

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

        self.m_staticText55 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                            u"Current", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText55.Wrap(-1)
        fgSizer37.Add(self.m_staticText55, 0, wx.ALL, 5)

        self.m_stServoCurrent = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                              u"---", wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.m_stServoCurrent.Wrap(-1)
        fgSizer37.Add(self.m_stServoCurrent, 0, wx.ALL, 5)

        self.m_staticText302 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"Current Correction Offset",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText302.Wrap(-1)
        fgSizer37.Add(self.m_staticText302, 0, wx.ALL, 5)

        self.dsServoCurrentOffset = wx.SpinCtrlDouble(self.m_swservo)
        self.dsServoCurrentOffset.SetMinSize(wx.Size(100, 30))

        fgSizer37.Add(self.dsServoCurrentOffset, 0, wx.ALL, 5)

        self.m_staticText301 = wx.StaticText(self.m_swservo, wx.ID_ANY,
                                             u"Current Correction Factor",
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_staticText301.Wrap(-1)
        fgSizer37.Add(self.m_staticText301, 0, wx.ALL, 5)

        self.dsServoCurrentFactor = wx.SpinCtrlDouble(self.m_swservo)
        self.dsServoCurrentFactor.SetMinSize(wx.Size(100, 30))

        fgSizer37.Add(self.dsServoCurrentFactor, 0, wx.ALL, 5)

        fgSizer351.Add(fgSizer37, 1, wx.EXPAND, 5)

        self.m_swservo.SetSizer(fgSizer351)
        self.m_swservo.Layout()
        fgSizer351.Fit(self.m_swservo)
        fgSizer9.Add(self.m_swservo, 1, wx.EXPAND | wx.ALL, 5)

        m_sdbSizer3 = wx.StdDialogButtonSizer()
        self.m_sdbSizer3OK = wx.Button(self.m_panel2, wx.ID_OK)
        m_sdbSizer3.AddButton(self.m_sdbSizer3OK)
        m_sdbSizer3.Realize()

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

        self.m_panel2.SetSizer(fgSizer9)
        self.m_panel2.Layout()
        fgSizer9.Fit(self.m_panel2)
        self.m_notebook.AddPage(self.m_panel2, u"servo", True)

        fgSizer7.Add(self.m_notebook, 1, wx.EXPAND | wx.ALL, 5)

        self.SetSizer(fgSizer7)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.BoatPlot.Bind(wx.EVT_KEY_DOWN, self.onKeyPressBoatPlot)
        self.BoatPlot.Bind(wx.EVT_LEFT_DOWN, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_LEFT_UP, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_MIDDLE_DOWN, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_MIDDLE_UP, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_RIGHT_DOWN, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_RIGHT_UP, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_MOTION, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_LEFT_DCLICK, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_MIDDLE_DCLICK, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_RIGHT_DCLICK, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_LEAVE_WINDOW, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_ENTER_WINDOW, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_MOUSEWHEEL, self.onMouseEventsBoatPlot)
        self.BoatPlot.Bind(wx.EVT_PAINT, self.onPaintGLBoatPlot)
        self.BoatPlot.Bind(wx.EVT_SIZE, self.onSizeGLBoatPlot)
        self.bReset.Bind(wx.EVT_BUTTON, self.onResetAlignment)
        self.bLevel.Bind(wx.EVT_BUTTON, self.onLevel)
        self.sHeadingOffset.Bind(wx.EVT_SPINCTRL, self.onIMUHeadingOffset)
        self.cbTextureCompass.Bind(wx.EVT_CHECKBOX, self.onTextureCompass)
        self.bIMUScope.Bind(wx.EVT_BUTTON, self.onIMUScope)
        self.AccelCalibration.Bind(wx.EVT_KEY_DOWN, self.onKeyPressAccel)
        self.AccelCalibration.Bind(wx.EVT_LEFT_DOWN, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_LEFT_UP, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_MIDDLE_DOWN, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_MIDDLE_UP, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_RIGHT_DOWN, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_RIGHT_UP, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_MOTION, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_LEFT_DCLICK, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_MIDDLE_DCLICK,
                                   self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_RIGHT_DCLICK,
                                   self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_LEAVE_WINDOW,
                                   self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_ENTER_WINDOW,
                                   self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_MOUSEWHEEL, self.onMouseEventsAccel)
        self.AccelCalibration.Bind(wx.EVT_PAINT, self.onPaintGLAccel)
        self.AccelCalibration.Bind(wx.EVT_SIZE, self.onSizeGLAccel)
        self.m_button101.Bind(wx.EVT_BUTTON, self.onClearAccel)
        self.cbAccelCalibrationLocked.Bind(wx.EVT_CHECKBOX,
                                           self.onAccelCalibrationLocked)
        self.CompassCalibration.Bind(wx.EVT_KEY_DOWN, self.onKeyPressCompass)
        self.CompassCalibration.Bind(wx.EVT_LEFT_DOWN,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_LEFT_UP, self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_MIDDLE_DOWN,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_MIDDLE_UP,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_RIGHT_DOWN,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_RIGHT_UP,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_MOTION, self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_LEFT_DCLICK,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_MIDDLE_DCLICK,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_RIGHT_DCLICK,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_LEAVE_WINDOW,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_ENTER_WINDOW,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_MOUSEWHEEL,
                                     self.onMouseEventsCompass)
        self.CompassCalibration.Bind(wx.EVT_PAINT, self.onPaintGLCompass)
        self.CompassCalibration.Bind(wx.EVT_SIZE, self.onSizeGLCompass)
        self.m_button10.Bind(wx.EVT_BUTTON, self.onClearCompass)
        self.cbCompassCalibrationLocked.Bind(wx.EVT_CHECKBOX,
                                             self.onCompassCalibrationLocked)
        self.m_button11.Bind(wx.EVT_BUTTON, self.OnRudderCentered)
        self.m_button12.Bind(wx.EVT_BUTTON, self.OnRudderAtRange)
        self.sRudderRange.Bind(wx.EVT_SPINCTRL, self.OnRudderRange)
コード例 #11
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Analyzer",
                          pos=wx.DefaultPosition,
                          size=wx.Size(1000, 700),
                          style=wx.DEFAULT_FRAME_STYLE)

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

        sizer_frame = wx.BoxSizer(wx.HORIZONTAL)

        self.notebook = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.window_page = wx.Panel(self.notebook, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        bSizer12 = wx.BoxSizer(wx.HORIZONTAL)

        self.window_page_splitter = wx.SplitterWindow(self.window_page,
                                                      wx.ID_ANY,
                                                      wx.DefaultPosition,
                                                      wx.Size(100, -1),
                                                      wx.SP_3D | wx.SP_BORDER)
        self.window_page_splitter.SetSashGravity(1)
        self.window_page_splitter.Bind(wx.EVT_IDLE,
                                       self.window_page_splitterOnIdle)

        self.window_plotter = wx.Panel(self.window_page_splitter, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TAB_TRAVERSAL)
        bSizer13 = wx.BoxSizer(wx.HORIZONTAL)

        self.window_3 = wx.SplitterWindow(self.window_plotter, wx.ID_ANY,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          wx.SP_3D | wx.SP_BORDER)
        self.window_3.SetSashGravity(1)
        self.window_3.Bind(wx.EVT_IDLE, self.window_3OnIdle)

        self.window_notrow = wx.Panel(self.window_3, wx.ID_ANY,
                                      wx.DefaultPosition, wx.DefaultSize,
                                      wx.TAB_TRAVERSAL)
        bSizer14 = wx.BoxSizer(wx.HORIZONTAL)

        self.window_row_plot_splitter = wx.SplitterWindow(
            self.window_notrow, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
            wx.SP_3D | wx.SP_BORDER)
        self.window_row_plot_splitter.Bind(wx.EVT_IDLE,
                                           self.window_row_plot_splitterOnIdle)

        self.window_plot = wx.Panel(self.window_row_plot_splitter, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        bSizer131 = wx.BoxSizer(wx.HORIZONTAL)

        self.window_canvas = MatplotPanel(self.window_plot,
                                          wx.ID_ANY, wx.DefaultPosition,
                                          wx.Size(500, -1), wx.TAB_TRAVERSAL)
        bSizer131.Add(self.window_canvas, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel12 = wx.Panel(self.window_plot, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        self.m_panel12.SetMaxSize(wx.Size(150, -1))

        bSizer121 = wx.BoxSizer(wx.VERTICAL)

        plot_typeChoices = [u"bar", u"line", u"bean"]
        self.plot_type = wx.RadioBox(self.m_panel12, wx.ID_ANY, u"plot type",
                                     wx.DefaultPosition, wx.DefaultSize,
                                     plot_typeChoices, 1, wx.RA_SPECIFY_COLS)
        self.plot_type.SetSelection(0)
        bSizer121.Add(self.plot_type, 0, wx.EXPAND | wx.ALL, 5)

        self.m_panel151 = wx.Panel(self.m_panel12, wx.ID_ANY,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.TAB_TRAVERSAL)
        bSizer19 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText1 = wx.StaticText(self.m_panel151, wx.ID_ANY,
                                           u"values", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.m_staticText1.Wrap(-1)
        bSizer19.Add(self.m_staticText1, 0, wx.ALL, 5)

        self.list_values = DragList(self.m_panel151,
                                    wx.ID_ANY, wx.DefaultPosition,
                                    wx.Size(-1, 20), wx.LC_LIST)
        bSizer19.Add(self.list_values, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        value_typeChoices = [u"metric", u"accuracy"]
        self.value_type = RadioBoxValueType(self.m_panel151, wx.ID_ANY,
                                            u"type", wx.DefaultPosition,
                                            wx.DefaultSize, value_typeChoices,
                                            1, wx.RA_SPECIFY_COLS)
        self.value_type.SetSelection(0)
        bSizer19.Add(self.value_type, 0, wx.ALL, 5)

        self.panel_corr = ValueAcc(self.m_panel151,
                                   wx.ID_ANY, wx.DefaultPosition,
                                   wx.Size(-1, -1), wx.TAB_TRAVERSAL)
        bSizer19.Add(self.panel_corr, 0, wx.ALL, 5)

        self.m_panel151.SetSizer(bSizer19)
        self.m_panel151.Layout()
        bSizer19.Fit(self.m_panel151)
        bSizer121.Add(self.m_panel151, 1, wx.ALL | wx.ALIGN_RIGHT | wx.EXPAND,
                      5)

        self.m_panel12.SetSizer(bSizer121)
        self.m_panel12.Layout()
        bSizer121.Fit(self.m_panel12)
        bSizer131.Add(self.m_panel12, 0, wx.ALIGN_RIGHT | wx.ALL | wx.EXPAND,
                      5)

        self.m_panel18 = wx.Panel(self.window_plot, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        self.m_panel18.SetMaxSize(wx.Size(150, -1))

        bSizer181 = wx.BoxSizer(wx.VERTICAL)

        self.m_panel14 = wx.Panel(self.m_panel18, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer26 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText11 = wx.StaticText(self.m_panel14, wx.ID_ANY,
                                            u"subplots", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText11.Wrap(-1)
        bSizer26.Add(self.m_staticText11, 0, wx.ALL, 5)

        self.list_subplots = DragList(self.m_panel14,
                                      wx.ID_ANY, wx.DefaultPosition,
                                      wx.Size(-1, 20), wx.LC_LIST)
        bSizer26.Add(self.list_subplots, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.m_panel14.SetSizer(bSizer26)
        self.m_panel14.Layout()
        bSizer26.Fit(self.m_panel14)
        bSizer181.Add(self.m_panel14, 0, wx.ALL | wx.ALIGN_RIGHT, 5)

        self.m_panel15 = wx.Panel(self.m_panel18, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer22 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText13 = wx.StaticText(self.m_panel15, wx.ID_ANY,
                                            u"legend", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText13.Wrap(-1)
        bSizer22.Add(self.m_staticText13, 0, wx.ALL, 5)

        self.list_cols = DragList(self.m_panel15, wx.ID_ANY,
                                  wx.DefaultPosition, wx.Size(-1,
                                                              -1), wx.LC_LIST)
        bSizer22.Add(self.list_cols, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.m_panel15.SetSizer(bSizer22)
        self.m_panel15.Layout()
        bSizer22.Fit(self.m_panel15)
        bSizer181.Add(self.m_panel15, 0, wx.ALL | wx.ALIGN_RIGHT, 5)

        self.m_panel152 = wx.Panel(self.m_panel18, wx.ID_ANY,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.TAB_TRAVERSAL)
        bSizer24 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText12 = wx.StaticText(self.m_panel152, wx.ID_ANY,
                                            u"x axis", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText12.Wrap(-1)
        bSizer24.Add(self.m_staticText12, 0, wx.ALL, 5)

        self.list_rows = DragList(self.m_panel152, wx.ID_ANY,
                                  wx.DefaultPosition, wx.Size(-1,
                                                              -1), wx.LC_LIST)
        bSizer24.Add(self.list_rows, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        self.m_panel152.SetSizer(bSizer24)
        self.m_panel152.Layout()
        bSizer24.Fit(self.m_panel152)
        bSizer181.Add(self.m_panel152, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel13 = wx.Panel(self.m_panel18, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer201 = wx.BoxSizer(wx.VERTICAL)

        self.m_staticText14 = wx.StaticText(self.m_panel13, wx.ID_ANY,
                                            u"error bars", wx.DefaultPosition,
                                            wx.DefaultSize, 0)
        self.m_staticText14.Wrap(-1)
        bSizer201.Add(self.m_staticText14, 0, wx.ALL, 5)

        self.list_yerr = DragList(self.m_panel13, wx.ID_ANY,
                                  wx.DefaultPosition, wx.Size(-1,
                                                              20), wx.LC_LIST)
        bSizer201.Add(self.list_yerr, 0, wx.ALIGN_RIGHT | wx.ALL, 5)

        err_typeChoices = [u"CI", u"SEM"]
        self.err_type = wx.RadioBox(self.m_panel13, wx.ID_ANY, u"type",
                                    wx.DefaultPosition, wx.DefaultSize,
                                    err_typeChoices, 1, wx.RA_SPECIFY_COLS)
        self.err_type.SetSelection(0)
        bSizer201.Add(self.err_type, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel13.SetSizer(bSizer201)
        self.m_panel13.Layout()
        bSizer201.Fit(self.m_panel13)
        bSizer181.Add(self.m_panel13, 0, wx.ALL | wx.ALIGN_RIGHT, 5)

        self.m_panel18.SetSizer(bSizer181)
        self.m_panel18.Layout()
        bSizer181.Fit(self.m_panel18)
        bSizer131.Add(self.m_panel18, 0, wx.ALL, 5)

        self.window_plot.SetSizer(bSizer131)
        self.window_plot.Layout()
        bSizer131.Fit(self.window_plot)
        self.window_row_plot_splitter.Initialize(self.window_plot)
        bSizer14.Add(self.window_row_plot_splitter, 1, wx.EXPAND, 0)

        self.window_notrow.SetSizer(bSizer14)
        self.window_notrow.Layout()
        bSizer14.Fit(self.window_notrow)
        self.window_shell = Shell(self.window_3, wx.ID_ANY, wx.DefaultPosition,
                                  wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.window_3.SplitHorizontally(self.window_notrow, self.window_shell,
                                        547)
        bSizer13.Add(self.window_3, 1, wx.EXPAND, 0)

        self.window_plotter.SetSizer(bSizer13)
        self.window_plotter.Layout()
        bSizer13.Fit(self.window_plotter)
        self.window_list = wx.Panel(self.window_page_splitter, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        bSizer20 = wx.BoxSizer(wx.HORIZONTAL)

        self.list_data_headers = DragList(self.window_list,
                                          wx.ID_ANY, wx.DefaultPosition,
                                          wx.Size(100, -1), wx.LC_REPORT)
        self.list_data_headers.SetMinSize(wx.Size(100, -1))

        bSizer20.Add(self.list_data_headers, 1, wx.ALL | wx.EXPAND, 5)

        self.window_list.SetSizer(bSizer20)
        self.window_list.Layout()
        bSizer20.Fit(self.window_list)
        self.window_page_splitter.SplitVertically(self.window_plotter,
                                                  self.window_list, 860)
        bSizer12.Add(self.window_page_splitter, 1, wx.EXPAND, 0)

        self.window_page.SetSizer(bSizer12)
        self.window_page.Layout()
        bSizer12.Fit(self.window_page)
        self.notebook.AddPage(self.window_page, u"plots", True)
        self.window_data = wx.Panel(self.notebook, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        bSizer21 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_splitter5 = wx.SplitterWindow(self.window_data, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.SP_3D)
        self.m_splitter5.SetSashGravity(1)
        self.m_splitter5.Bind(wx.EVT_IDLE, self.m_splitter5OnIdle)

        self.m_panel34 = wx.Panel(self.m_splitter5, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer18 = wx.BoxSizer(wx.VERTICAL)

        self.list_data = DataList(self.m_panel34, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.LC_REPORT)
        bSizer18.Add(self.list_data, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel34.SetSizer(bSizer18)
        self.m_panel34.Layout()
        bSizer18.Fit(self.m_panel34)
        self.m_panel32 = wx.Panel(self.m_splitter5, wx.ID_ANY,
                                  wx.DefaultPosition, wx.Size(-1, -1),
                                  wx.TAB_TRAVERSAL)
        bSizer17 = wx.BoxSizer(wx.VERTICAL)

        self.list_datafiles = DataFileList(self.m_panel32,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(100, -1),
                                           wx.LC_LIST | wx.LC_NO_HEADER)
        self.list_datafiles.SetMinSize(wx.Size(100, -1))

        bSizer17.Add(self.list_datafiles, 1, wx.ALL | wx.EXPAND, 5)

        self.button_addfiles = wx.Button(self.m_panel32, wx.ID_ANY,
                                         u"Choose data files",
                                         wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer17.Add(self.button_addfiles, 0, wx.ALL, 5)

        self.m_panel32.SetSizer(bSizer17)
        self.m_panel32.Layout()
        bSizer17.Fit(self.m_panel32)
        self.m_splitter5.SplitVertically(self.m_panel34, self.m_panel32, 860)
        bSizer21.Add(self.m_splitter5, 1, wx.EXPAND, 5)

        self.window_data.SetSizer(bSizer21)
        self.window_data.Layout()
        bSizer21.Fit(self.window_data)
        self.notebook.AddPage(self.window_data, u"data", False)
        self.window_agg = wx.Panel(self.notebook, wx.ID_ANY,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.TAB_TRAVERSAL)
        bSizer211 = wx.BoxSizer(wx.VERTICAL)

        self.list_agg = DataList(self.window_agg, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.LC_REPORT)
        bSizer211.Add(self.list_agg, 1, wx.ALL | wx.EXPAND, 5)

        self.window_agg.SetSizer(bSizer211)
        self.window_agg.Layout()
        bSizer211.Fit(self.window_agg)
        self.notebook.AddPage(self.window_agg, u"aggr", False)

        sizer_frame.Add(self.notebook, 1, wx.EXPAND, 0)

        self.SetSizer(sizer_frame)
        self.Layout()
コード例 #12
0
 def __init__(self):
     super(fuelDialog, self).__init__(None, -1)
     self.panel = wx.Panel(self)
     self.SetTitle("A2A Bonanza Fuel manager")
     self.sizer = wx.BoxSizer(wx.VERTICAL)
     self.notebook = wx.Notebook(self.panel)
コード例 #13
0
        self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, rb)

    def EvtRadioBox(self, event):
        self.logger.AppendText('EvtRadioBox: %d\n' % event.GetInt())

    def EvtComboBox(self, event):
        self.logger.AppendText('EvtComboBox: %s\n' % event.GetString())

    def OnClick(self, event):
        self.logger.AppendText(" Click on object with Id %d\n" % event.GetId())

    def EvtText(self, event):
        self.logger.AppendText('EvtText: %s\n' % event.GetString())

    def EvtChar(self, event):
        self.logger.AppendText('EvtChar: %d\n' % event.GetKeyCode())
        event.Skip()

    def EvtCheckBox(self, event):
        self.logger.AppendText('EvtCheckBox: %d\n' % event.Checked())  #?


app = wx.App(False)
frame = wx.Frame(None, title="Monitor")
nb = wx.Notebook(frame)

nb.AddPage(ExamplePanel(nb), "Node 05")
nb.AddPage(ExamplePanel(nb), "...")
nb.AddPage(ExamplePanel(nb), "...")
frame.Show()
app.MainLoop()
コード例 #14
0
    def __init__(self,
                 parent,
                 data,
                 title=_("List of duplicates"),
                 style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER,
                 pos=wx.DefaultPosition):
        """Show duplicated feature ids
        """
        wx.Dialog.__init__(self,
                           parent=parent,
                           id=wx.ID_ANY,
                           title=title,
                           style=style,
                           pos=pos)

        self.parent = parent  # map window instance
        self.data = data
        self.winList = []

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

        # notebook
        self.notebook = wx.Notebook(parent=self,
                                    id=wx.ID_ANY,
                                    style=wx.BK_DEFAULT)

        id = 1
        for key in self.data.keys():
            panel = wx.Panel(parent=self.notebook, id=wx.ID_ANY)
            self.notebook.AddPage(page=panel, text=" %d " % (id))

            # notebook body
            border = wx.BoxSizer(wx.VERTICAL)

            win = CheckListFeature(parent=panel, data=list(self.data[key]))
            self.winList.append(win.GetId())

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

            panel.SetSizer(border)

            id += 1

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

        # sizers
        btnSizer = wx.StdDialogButtonSizer()
        btnSizer.AddButton(btnCancel)
        btnSizer.AddButton(btnOk)
        btnSizer.Realize()

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        mainSizer.Add(self.notebook,
                      proportion=1,
                      flag=wx.EXPAND | wx.ALL,
                      border=5)
        mainSizer.Add(btnSizer,
                      proportion=0,
                      flag=wx.EXPAND | wx.ALL | wx.ALIGN_CENTER,
                      border=5)

        self.SetSizer(mainSizer)
        mainSizer.Fit(self)
        self.SetAutoLayout(True)

        # set min size for dialog
        self.SetMinSize((250, 180))
コード例 #15
0
    def build_ui(self):
        """
        Called during __init__ to set up all the GUI components.
        """
        self.tabs = wx.Notebook(self, style=wx.BK_DEFAULT)
        # Tab 1: "Summary" pane ------------------------------------------------
        main_panel = wx.Panel(self.tabs)
        self.tabs.AddPage(main_panel, "Summary")

        self.acct_info_area = wx.StaticBox(main_panel, label="Account Info")

        lbl_address = wx.StaticText(self.acct_info_area,
                                    label="Classic Address:")
        self.st_classic_address = wx.StaticText(self.acct_info_area,
                                                label="TBD")
        lbl_xaddress = wx.StaticText(self.acct_info_area, label="X-Address:")
        self.st_x_address = wx.StaticText(self.acct_info_area, label="TBD")
        lbl_xrp_bal = wx.StaticText(self.acct_info_area, label="XRP Balance:")
        self.st_xrp_balance = wx.StaticText(self.acct_info_area, label="TBD")
        lbl_reserve = wx.StaticText(self.acct_info_area, label="XRP Reserved:")
        self.st_reserve = wx.StaticText(self.acct_info_area, label="TBD")

        aia_sizer = AutoGridBagSizer(self.acct_info_area)
        aia_sizer.BulkAdd(
            ((lbl_address, self.st_classic_address), (lbl_xaddress,
                                                      self.st_x_address),
             (lbl_xrp_bal, self.st_xrp_balance), (lbl_reserve,
                                                  self.st_reserve)))

        # Send XRP button. Disabled until we have a secret key & network connection
        self.sxb = wx.Button(main_panel, label="Send XRP")
        self.sxb.SetToolTip("Disabled in read-only mode.")
        self.sxb.Disable()
        self.Bind(wx.EVT_BUTTON, self.click_send_xrp, source=self.sxb)

        self.ledger_info = wx.StaticText(main_panel, label="Not connected")

        main_sizer = wx.BoxSizer(wx.VERTICAL)
        main_sizer.Add(self.acct_info_area,
                       1,
                       flag=wx.EXPAND | wx.ALL,
                       border=5)
        main_sizer.Add(self.sxb, 0, flag=wx.ALL, border=5)
        main_sizer.Add(self.ledger_info, 1, flag=wx.EXPAND | wx.ALL, border=5)
        main_panel.SetSizer(main_sizer)

        # Tab 2: "Transaction History" pane ------------------------------------
        objs_panel = wx.Panel(self.tabs)
        self.tabs.AddPage(objs_panel, "Transaction History")
        objs_sizer = wx.BoxSizer(wx.VERTICAL)

        self.tx_list = wx.dataview.DataViewListCtrl(objs_panel)
        self.tx_list.AppendTextColumn("Confirmed")
        self.tx_list.AppendTextColumn("Type")
        self.tx_list.AppendTextColumn("From")
        self.tx_list.AppendTextColumn("To")
        self.tx_list.AppendTextColumn("Value Delivered")
        self.tx_list.AppendTextColumn("Identifying Hash")
        self.tx_list.AppendTextColumn("Raw JSON")
        objs_sizer.Add(self.tx_list, 1, wx.EXPAND | wx.ALL)
        self.pending_tx_rows = {
        }  # Map pending tx hashes to rows in the history UI

        objs_panel.SetSizer(objs_sizer)
コード例 #16
0
ファイル: dlgsCode.py プロジェクト: sappelhoff/psychopy
    def __init__(self,
                 frame,
                 element,
                 experiment,
                 helpUrl=None,
                 suppressTitles=True,
                 size=(1000, 600),
                 style=_style,
                 editing=False,
                 depends=[],
                 timeout=None,
                 type="Code"):

        # translate title
        if "name" in element.params:
            title = element.params['name'].val + _translate(' Properties')
        elif "expName" in element.params:
            title = element.params['expName'].val + _translate(' Properties')
        else:
            title = "Properties"
        # get help url
        if hasattr(element, 'url'):
            helpUrl = element.url
        else:
            helpUrl = None

        wx.Dialog.__init__(self, None, -1, title, size=size, style=style)
        self.SetTitle(title)  # use localized title
        # self.panel = wx.Panel(self)
        self.frame = frame
        self.app = frame.app
        self.helpUrl = helpUrl
        self.params = element.params  # dict
        self.order = element.order
        self.title = title
        self.timeout = timeout
        self.codeBoxes = {}
        self.tabs = OrderedDict()

        if not editing and 'name' in self.params:
            # then we're adding a new component so ensure a valid name:
            makeValid = self.frame.exp.namespace.makeValid
            self.params['name'].val = makeValid(self.params['name'].val)

        self.codeNotebook = wx.Notebook(self)
        # in AUI notebook the labels are blurry on retina mac
        #   and the close-tab buttons are hard to kill
        #   self.codeNotebook = aui.AuiNotebook(self)
        # in FlatNoteBook the tab controls (left,right,close) are ugly on mac
        #   and also can't be killed

        openToPage = None
        tabN = -1
        for paramN, paramName in enumerate(self.order):
            param = self.params.get(paramName)
            if paramName == 'name':
                self.nameLabel = wx.StaticText(self, wx.ID_ANY,
                                               _translate(param.label))
                _style = wx.TE_PROCESS_ENTER | wx.TE_PROCESS_TAB
                self.componentName = wx.TextCtrl(self,
                                                 wx.ID_ANY,
                                                 str(param.val),
                                                 style=_style)
                self.componentName.SetToolTip(
                    wx.ToolTip(_translate(param.hint)))
                self.componentName.SetValidator(validators.NameValidator())
                self.nameOKlabel = wx.StaticText(self,
                                                 -1,
                                                 '',
                                                 style=wx.ALIGN_RIGHT)
                self.nameOKlabel.SetForegroundColour(wx.RED)
            elif paramName == 'Code Type':
                # Create code type choice menu
                _codeTypes = self.params['Code Type'].allowedVals
                _selectedCodeType = self.params['Code Type'].val
                _selectedCodeTypeIndex = _codeTypes.index(_selectedCodeType)
                self.codeTypeMenu = wx.Choice(self, choices=_codeTypes)
                # If user does not have metapensiero but codetype is auto-js, revert to (Py?)
                if not hasMetapensiero and _selectedCodeType.lower(
                ) == 'auto->js':
                    _selectedCodeTypeIndex -= 1
                # Set selection to value stored in self params
                self.codeTypeMenu.SetSelection(_selectedCodeTypeIndex)
                self.codeTypeMenu.Bind(wx.EVT_CHOICE, self.onCodeChoice)
                self.codeTypeName = wx.StaticText(self, wx.ID_ANY,
                                                  _translate(param.label))
            elif paramName == 'disabled':
                # Create bool control to disable/enable component
                self.disableCtrl = wx.CheckBox(self,
                                               wx.ID_ANY,
                                               label=_translate('disabled'))
                self.disableCtrl.SetValue(bool(param.val))
            else:
                codeType = ["Py",
                            "JS"]["JS"
                                  in paramName]  # Give CodeBox a code type
                tabName = paramName.replace("JS ", "")
                if tabName in self.tabs:
                    _panel = self.tabs[tabName]
                else:
                    _panel = wx.Panel(self.codeNotebook, wx.ID_ANY)
                    _panel.app = self.app
                    self.tabs[tabName] = _panel
                    tabN += 1

                self.codeBoxes[paramName] = CodeBox(_panel,
                                                    wx.ID_ANY,
                                                    pos=wx.DefaultPosition,
                                                    style=0,
                                                    prefs=self.app.prefs,
                                                    params=self.params,
                                                    codeType=codeType)
                self.codeBoxes[paramName].AddText(param.val)
                self.codeBoxes[paramName].Bind(
                    wx.EVT_KEY_UP, self.onKeyUp)  # For real time translation

                if len(param.val.strip()) and openToPage is None:
                    # index of first non-blank page
                    openToPage = tabN

        if self.helpUrl is not None:
            self.helpButton = wx.Button(self, wx.ID_HELP, _translate(" Help "))
            tip = _translate("Go to online help about this component")
            self.helpButton.SetToolTip(wx.ToolTip(tip))
        self.okButton = wx.Button(self, wx.ID_OK, _translate(" OK "))
        self.okButton.SetDefault()
        self.cancelButton = wx.Button(self, wx.ID_CANCEL,
                                      _translate(" Cancel "))
        self.warnings = WarningManager(
            self)  # to store warnings for all fields
        self.__do_layout()
        if openToPage is None:
            openToPage = 1
        self.codeNotebook.SetSelection(openToPage)
        self.Update()
        self.Bind(wx.EVT_BUTTON, self.helpButtonHandler, self.helpButton)

        if self.timeout:
            timeout = wx.CallLater(self.timeout, self.onEnter)
            timeout.Start()
        # do show and process return
        ret = self.ShowModal()

        if ret == wx.ID_OK:
            self.checkName()
            self.OK = True
            self.params = self.getParams()  # get new vals from dlg
            self.Validate()
        else:
            self.OK = False
コード例 #17
0
ファイル: orbisgui.py プロジェクト: maurergroup/Orbis
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"Orbis",
                          pos=wx.DefaultPosition,
                          size=wx.Size(1164, 689),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

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

        self.main_menu_bar = wx.MenuBar(0)
        self.file_menu = wx.Menu()
        self.new = wx.MenuItem(self.file_menu, wx.ID_ANY,
                               u"&New" + u"\t" + u"Ctrl+N", u"New simulation",
                               wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.new)

        self.open = wx.MenuItem(self.file_menu, wx.ID_ANY,
                                u"&Open..." + u"\t" + u"Ctrl+O",
                                u"Open a previously save simulation",
                                wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.open)

        self.save = wx.MenuItem(self.file_menu, wx.ID_ANY,
                                u"&Save" + u"\t" + u"Ctrl+S",
                                u"Save the current simulation", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.save)

        self.save_as = wx.MenuItem(self.file_menu, wx.ID_ANY,
                                   u"Save &As..." + u"\t" + u"Ctrl+Shift+S",
                                   wx.EmptyString, wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.save_as)

        self.file_menu.AppendSeparator()

        self.import_geometry = wx.MenuItem(
            self.file_menu, wx.ID_ANY,
            u"Import &Geometry Data..." + u"\t" + u"Ctrl+G", wx.EmptyString,
            wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.import_geometry)

        self.import_huckel = wx.MenuItem(
            self.file_menu, wx.ID_ANY,
            u"Import Hückel Matrix Data..." + u"\t" + u"Ctrl+I",
            u"Import a Hückel matrix from a csv file", wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.import_huckel)

        self.export = wx.MenuItem(self.file_menu, wx.ID_ANY,
                                  u"&Export Results" + u"\t" + u"Ctrl+E",
                                  u"Export simulation results as a csv file ",
                                  wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.export)

        self.file_menu.AppendSeparator()

        self.quit = wx.MenuItem(self.file_menu, wx.ID_ANY,
                                u"&Quit" + u"\t" + u"Ctrl+Q", u"Quit Orbis",
                                wx.ITEM_NORMAL)
        self.file_menu.AppendItem(self.quit)

        self.main_menu_bar.Append(self.file_menu, u"&File")

        self.edit_menu = wx.Menu()
        self.main_menu_bar.Append(self.edit_menu, u"&Edit")

        self.tools_menu = wx.Menu()
        self.atoms_menu = wx.MenuItem(
            self.tools_menu, wx.ID_ANY,
            u"Edit &Atoms..." + u"\t" + u"Ctrl+Shift+A",
            u"Manage available atom types", wx.ITEM_NORMAL)
        self.tools_menu.AppendItem(self.atoms_menu)

        self.bonds_menu = wx.MenuItem(
            self.tools_menu, wx.ID_ANY,
            u"Edit &Bonds..." + u"\t" + u"Ctrl+Shift+B",
            u"Manage available bond types", wx.ITEM_NORMAL)
        self.tools_menu.AppendItem(self.bonds_menu)

        self.main_menu_bar.Append(self.tools_menu, u"&Tools")

        self.help_menu = wx.Menu()
        self.about = wx.MenuItem(self.help_menu, wx.ID_ANY, u"&About...",
                                 u"Information about Orbis", wx.ITEM_NORMAL)
        self.help_menu.AppendItem(self.about)

        self.documentation = wx.MenuItem(
            self.help_menu, wx.ID_ANY,
            u"&Documentation..." + u"\t" + u"Ctrl+Shift+D",
            u"Read the Orbis documentation", wx.ITEM_NORMAL)
        self.help_menu.AppendItem(self.documentation)

        self.main_menu_bar.Append(self.help_menu, u"&Help")

        self.SetMenuBar(self.main_menu_bar)

        self.toolbar = self.CreateToolBar(wx.TB_HORIZONTAL, wx.ID_ANY)
        self.toolbar.AddLabelTool(
            wx.ID_ANY, u"tool",
            wx.Bitmap(u"images/new16.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, u"Clear the current simulation",
            u"Clear the current simulation", None)

        self.toolbar.AddLabelTool(
            wx.ID_ANY, u"tool",
            wx.Bitmap(u"images/open16.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, wx.EmptyString, wx.EmptyString, None)

        self.toolbar.AddLabelTool(
            wx.ID_ANY, u"tool",
            wx.Bitmap(u"images/save16.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap,
            wx.ITEM_NORMAL, u"Save the current simularion",
            u"Save the current simularion", None)

        self.toolbar.Realize()

        main_sizer = wx.BoxSizer(wx.HORIZONTAL)

        self.controls = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        controls_sizer = wx.BoxSizer(wx.VERTICAL)

        huckel_control_sizer = wx.StaticBoxSizer(
            wx.StaticBox(self.controls, wx.ID_ANY, u"Hückel Controls"),
            wx.VERTICAL)

        basis_sizer = wx.FlexGridSizer(0, 2, 0, 0)
        basis_sizer.AddGrowableCol(1)
        basis_sizer.SetFlexibleDirection(wx.HORIZONTAL)
        basis_sizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)

        self.num_electrons_label = wx.StaticText(self.controls, wx.ID_ANY,
                                                 u"Num Electrons:",
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize, 0)
        self.num_electrons_label.Wrap(-1)
        basis_sizer.Add(self.num_electrons_label, 0,
                        wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.num_electrons = wx.SpinCtrl(self.controls, wx.ID_ANY,
                                         wx.EmptyString, wx.DefaultPosition,
                                         wx.Size(48, -1), wx.SP_ARROW_KEYS, 0,
                                         100, 0)
        self.num_electrons.SetToolTipString(u"Set the number of electrons")

        basis_sizer.Add(self.num_electrons, 0, wx.TOP | wx.BOTTOM | wx.RIGHT,
                        5)

        self.basis_size_label = wx.StaticText(self.controls, wx.ID_ANY,
                                              u"Basis Size:",
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        self.basis_size_label.Wrap(-1)
        basis_sizer.Add(self.basis_size_label, 0, wx.ALL, 5)

        self.basis_size = wx.SpinCtrl(self.controls, wx.ID_ANY,
                                      wx.EmptyString, wx.DefaultPosition,
                                      wx.Size(48,
                                              -1), wx.SP_ARROW_KEYS, 0, 100, 0)
        self.basis_size.SetToolTipString(
            u"Set the basis size of the Huckel matrix")

        basis_sizer.Add(self.basis_size, 0, wx.TOP | wx.BOTTOM | wx.RIGHT, 5)

        huckel_control_sizer.Add(basis_sizer, 1, wx.EXPAND, 5)

        atom_typeChoices = []
        self.atom_type = wx.Choice(self.controls, wx.ID_ANY,
                                   wx.DefaultPosition, wx.DefaultSize,
                                   atom_typeChoices, 0)
        self.atom_type.SetSelection(0)
        self.atom_type.SetToolTipString(u"Choose an atom type")

        huckel_control_sizer.Add(self.atom_type, 0, wx.ALL | wx.EXPAND, 5)

        controls_sizer.Add(huckel_control_sizer, 0, wx.EXPAND | wx.ALL, 5)

        sketch_pad_control_sizer = wx.StaticBoxSizer(
            wx.StaticBox(self.controls, wx.ID_ANY, u"Sketch Pad Controls"),
            wx.VERTICAL)

        sketch_pad_control_sub_sizer = wx.GridSizer(0, 3, 0, 0)

        self.zoom_label = wx.StaticText(self.controls, wx.ID_ANY, u"Zoom:",
                                        wx.DefaultPosition, wx.DefaultSize, 0)
        self.zoom_label.Wrap(-1)
        sketch_pad_control_sub_sizer.Add(
            self.zoom_label, 0,
            wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.zoom_in = wx.Button(self.controls, wx.ID_ANY, u"+",
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.BU_EXACTFIT)
        sketch_pad_control_sub_sizer.Add(
            self.zoom_in, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.TOP
            | wx.BOTTOM | wx.LEFT, 5)

        self.zoom_out = wx.Button(self.controls, wx.ID_ANY, u"-",
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.BU_EXACTFIT)
        sketch_pad_control_sub_sizer.Add(
            self.zoom_out, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.ALL,
            5)

        self.rotate_label = wx.StaticText(self.controls, wx.ID_ANY, u"Rotate:",
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0)
        self.rotate_label.Wrap(-1)
        sketch_pad_control_sub_sizer.Add(self.rotate_label, 0,
                                         wx.TOP | wx.BOTTOM | wx.LEFT, 5)

        self.rotate_cw = wx.Button(self.controls, wx.ID_ANY, u"+",
                                   wx.DefaultPosition, wx.DefaultSize,
                                   wx.BU_EXACTFIT)
        sketch_pad_control_sub_sizer.Add(
            self.rotate_cw, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.TOP
            | wx.BOTTOM | wx.LEFT, 5)

        self.rotate_ccw = wx.Button(self.controls, wx.ID_ANY, u"-",
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.BU_EXACTFIT)
        sketch_pad_control_sub_sizer.Add(
            self.rotate_ccw, 0,
            wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.ALL, 5)

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

        self.redraw = wx.Button(self.controls, wx.ID_ANY, u"Redraw",
                                wx.DefaultPosition, wx.DefaultSize,
                                wx.BU_EXACTFIT)
        self.redraw.SetToolTipString(u"Normalize the molecules shape")

        sketch_pad_control_sub_sizer.Add(
            self.redraw, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.TOP
            | wx.BOTTOM | wx.LEFT, 5)

        self.clear = wx.Button(self.controls, wx.ID_ANY, u"Clear",
                               wx.DefaultPosition, wx.DefaultSize,
                               wx.BU_EXACTFIT)
        sketch_pad_control_sub_sizer.Add(
            self.clear, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.ALL, 5)

        sketch_pad_control_sizer.Add(sketch_pad_control_sub_sizer, 1,
                                     wx.EXPAND, 5)

        controls_sizer.Add(sketch_pad_control_sizer, 0, wx.EXPAND | wx.ALL, 5)

        self.controls.SetSizer(controls_sizer)
        self.controls.Layout()
        controls_sizer.Fit(self.controls)
        main_sizer.Add(self.controls, 0, wx.EXPAND, 5)

        self.main_splitter = wx.SplitterWindow(self, wx.ID_ANY,
                                               wx.DefaultPosition,
                                               wx.DefaultSize, wx.SP_3D)
        self.main_splitter.SetSashGravity(0.5)
        self.main_splitter.Bind(wx.EVT_IDLE, self.main_splitterOnIdle)

        self.plots_container = wx.Panel(self.main_splitter, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.TAB_TRAVERSAL)
        plot_container_sizer = wx.BoxSizer(wx.VERTICAL)

        self.sketch_pad = sketchpad.SketchPad(self.plots_container)
        plot_container_sizer.Add(self.sketch_pad, 1, wx.ALL | wx.EXPAND, 5)

        self.results_plot_splitter = wx.SplitterWindow(self.plots_container,
                                                       wx.ID_ANY,
                                                       wx.DefaultPosition,
                                                       wx.DefaultSize,
                                                       wx.SP_3D)
        self.results_plot_splitter.Bind(wx.EVT_IDLE,
                                        self.results_plot_splitterOnIdle)

        self.eld_plot_container = wx.Panel(self.results_plot_splitter,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.DefaultSize, wx.TAB_TRAVERSAL)
        eld_plot_sizer = wx.BoxSizer(wx.VERTICAL)

        self.eld_plot = plots.EnergyLevelDiagram(self.eld_plot_container)
        eld_plot_sizer.Add(self.eld_plot, 1, wx.ALL | wx.EXPAND, 5)

        self.eld_plot_container.SetSizer(eld_plot_sizer)
        self.eld_plot_container.Layout()
        eld_plot_sizer.Fit(self.eld_plot_container)
        self.orbital_plot_container = wx.Panel(self.results_plot_splitter,
                                               wx.ID_ANY, wx.DefaultPosition,
                                               wx.DefaultSize,
                                               wx.TAB_TRAVERSAL)
        orbital_plot_sizer = wx.BoxSizer(wx.VERTICAL)

        self.orbital_plot = plots.OrbitalDiagram(self.orbital_plot_container)
        orbital_plot_sizer.Add(self.orbital_plot, 1, wx.ALL | wx.EXPAND, 5)

        self.orbital_plot_container.SetSizer(orbital_plot_sizer)
        self.orbital_plot_container.Layout()
        orbital_plot_sizer.Fit(self.orbital_plot_container)
        self.results_plot_splitter.SplitVertically(self.eld_plot_container,
                                                   self.orbital_plot_container,
                                                   0)
        plot_container_sizer.Add(self.results_plot_splitter, 1, wx.EXPAND, 5)

        self.plots_container.SetSizer(plot_container_sizer)
        self.plots_container.Layout()
        plot_container_sizer.Fit(self.plots_container)
        self.grids_container = wx.Panel(self.main_splitter, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.TAB_TRAVERSAL)
        grids_sizer = wx.BoxSizer(wx.VERTICAL)

        self.huckel_notebook = wx.Notebook(self.grids_container, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        self.huckel_container = wx.Panel(self.huckel_notebook, wx.ID_ANY,
                                         wx.DefaultPosition, wx.DefaultSize,
                                         wx.TAB_TRAVERSAL)
        huckel_sizer = wx.BoxSizer(wx.VERTICAL)

        self.huckel_grid = wx.grid.Grid(self.huckel_container, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize, 0)

        # Grid
        self.huckel_grid.CreateGrid(5, 5)
        self.huckel_grid.EnableEditing(True)
        self.huckel_grid.EnableGridLines(True)
        self.huckel_grid.EnableDragGridSize(False)
        self.huckel_grid.SetMargins(0, 0)

        # Columns
        self.huckel_grid.EnableDragColMove(False)
        self.huckel_grid.EnableDragColSize(True)
        self.huckel_grid.SetColLabelSize(30)
        self.huckel_grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Rows
        self.huckel_grid.EnableDragRowSize(True)
        self.huckel_grid.SetRowLabelSize(80)
        self.huckel_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.huckel_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        huckel_sizer.Add(self.huckel_grid, 1, wx.EXPAND, 5)

        self.huckel_container.SetSizer(huckel_sizer)
        self.huckel_container.Layout()
        huckel_sizer.Fit(self.huckel_container)
        self.huckel_notebook.AddPage(self.huckel_container, u"Hückel Matrix",
                                     False)

        grids_sizer.Add(self.huckel_notebook, 1, wx.EXPAND, 5)

        self.results_notebook = wx.Notebook(self.grids_container, wx.ID_ANY,
                                            wx.DefaultPosition, wx.DefaultSize,
                                            0)
        self.eigen_container = wx.Panel(self.results_notebook, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize,
                                        wx.TAB_TRAVERSAL)
        eigen_sizer = wx.BoxSizer(wx.VERTICAL)

        self.eigen_grid = wx.grid.Grid(self.eigen_container, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize, 0)

        # Grid
        self.eigen_grid.CreateGrid(5, 5)
        self.eigen_grid.EnableEditing(False)
        self.eigen_grid.EnableGridLines(True)
        self.eigen_grid.EnableDragGridSize(False)
        self.eigen_grid.SetMargins(0, 0)

        # Columns
        self.eigen_grid.EnableDragColMove(False)
        self.eigen_grid.EnableDragColSize(True)
        self.eigen_grid.SetColLabelSize(30)
        self.eigen_grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Rows
        self.eigen_grid.EnableDragRowSize(True)
        self.eigen_grid.SetRowLabelSize(80)
        self.eigen_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.eigen_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        eigen_sizer.Add(self.eigen_grid, 1, wx.EXPAND, 5)

        self.eigen_container.SetSizer(eigen_sizer)
        self.eigen_container.Layout()
        eigen_sizer.Fit(self.eigen_container)
        self.results_notebook.AddPage(self.eigen_container, u"Eigenvectors",
                                      True)
        self.bond_order_containers = wx.Panel(self.results_notebook, wx.ID_ANY,
                                              wx.DefaultPosition,
                                              wx.DefaultSize, wx.TAB_TRAVERSAL)
        bond_order_sizer = wx.BoxSizer(wx.VERTICAL)

        self.bond_order_grid = wx.grid.Grid(self.bond_order_containers,
                                            wx.ID_ANY, wx.DefaultPosition,
                                            wx.DefaultSize, 0)

        # Grid
        self.bond_order_grid.CreateGrid(5, 5)
        self.bond_order_grid.EnableEditing(False)
        self.bond_order_grid.EnableGridLines(True)
        self.bond_order_grid.EnableDragGridSize(False)
        self.bond_order_grid.SetMargins(0, 0)

        # Columns
        self.bond_order_grid.EnableDragColMove(False)
        self.bond_order_grid.EnableDragColSize(True)
        self.bond_order_grid.SetColLabelSize(30)
        self.bond_order_grid.SetColLabelAlignment(wx.ALIGN_CENTRE,
                                                  wx.ALIGN_CENTRE)

        # Rows
        self.bond_order_grid.EnableDragRowSize(True)
        self.bond_order_grid.SetRowLabelSize(80)
        self.bond_order_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE,
                                                  wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.bond_order_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT,
                                                     wx.ALIGN_TOP)
        bond_order_sizer.Add(self.bond_order_grid, 1, wx.EXPAND, 5)

        self.bond_order_containers.SetSizer(bond_order_sizer)
        self.bond_order_containers.Layout()
        bond_order_sizer.Fit(self.bond_order_containers)
        self.results_notebook.AddPage(self.bond_order_containers,
                                      u"Π Bond Orders", False)
        self.charge_container = wx.Panel(self.results_notebook, wx.ID_ANY,
                                         wx.DefaultPosition, wx.DefaultSize,
                                         wx.TAB_TRAVERSAL)
        charge_sizer = wx.BoxSizer(wx.VERTICAL)

        self.charge_grid = wx.grid.Grid(self.charge_container, wx.ID_ANY,
                                        wx.DefaultPosition, wx.DefaultSize, 0)

        # Grid
        self.charge_grid.CreateGrid(5, 5)
        self.charge_grid.EnableEditing(False)
        self.charge_grid.EnableGridLines(True)
        self.charge_grid.EnableDragGridSize(False)
        self.charge_grid.SetMargins(0, 0)

        # Columns
        self.charge_grid.EnableDragColMove(False)
        self.charge_grid.EnableDragColSize(True)
        self.charge_grid.SetColLabelSize(30)
        self.charge_grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Rows
        self.charge_grid.EnableDragRowSize(True)
        self.charge_grid.SetRowLabelSize(80)
        self.charge_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.charge_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        charge_sizer.Add(self.charge_grid, 0, wx.ALL, 5)

        self.charge_container.SetSizer(charge_sizer)
        self.charge_container.Layout()
        charge_sizer.Fit(self.charge_container)
        self.results_notebook.AddPage(self.charge_container,
                                      u"Charge Densities", False)
        self.aa_polar_container = wx.Panel(self.results_notebook, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.TAB_TRAVERSAL)
        aa_polar_sizer = wx.BoxSizer(wx.VERTICAL)

        self.aa_polar_grid = wx.grid.Grid(self.aa_polar_container, wx.ID_ANY,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0)

        # Grid
        self.aa_polar_grid.CreateGrid(5, 5)
        self.aa_polar_grid.EnableEditing(False)
        self.aa_polar_grid.EnableGridLines(True)
        self.aa_polar_grid.EnableDragGridSize(False)
        self.aa_polar_grid.SetMargins(0, 0)

        # Columns
        self.aa_polar_grid.EnableDragColMove(False)
        self.aa_polar_grid.EnableDragColSize(True)
        self.aa_polar_grid.SetColLabelSize(30)
        self.aa_polar_grid.SetColLabelAlignment(wx.ALIGN_CENTRE,
                                                wx.ALIGN_CENTRE)

        # Rows
        self.aa_polar_grid.EnableDragRowSize(True)
        self.aa_polar_grid.SetRowLabelSize(80)
        self.aa_polar_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE,
                                                wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.aa_polar_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        aa_polar_sizer.Add(self.aa_polar_grid, 0, wx.ALL, 5)

        self.aa_polar_container.SetSizer(aa_polar_sizer)
        self.aa_polar_container.Layout()
        aa_polar_sizer.Fit(self.aa_polar_container)
        self.results_notebook.AddPage(self.aa_polar_container,
                                      u"A-A Polarizabilities", False)
        self.ab_polar_container = wx.Panel(self.results_notebook, wx.ID_ANY,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           wx.TAB_TRAVERSAL)
        ab_polar_sizer = wx.BoxSizer(wx.VERTICAL)

        self.ab_polar_grid = wx.grid.Grid(self.ab_polar_container, wx.ID_ANY,
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0)

        # Grid
        self.ab_polar_grid.CreateGrid(5, 5)
        self.ab_polar_grid.EnableEditing(False)
        self.ab_polar_grid.EnableGridLines(True)
        self.ab_polar_grid.EnableDragGridSize(False)
        self.ab_polar_grid.SetMargins(0, 0)

        # Columns
        self.ab_polar_grid.EnableDragColMove(False)
        self.ab_polar_grid.EnableDragColSize(True)
        self.ab_polar_grid.SetColLabelSize(30)
        self.ab_polar_grid.SetColLabelAlignment(wx.ALIGN_CENTRE,
                                                wx.ALIGN_CENTRE)

        # Rows
        self.ab_polar_grid.EnableDragRowSize(True)
        self.ab_polar_grid.SetRowLabelSize(80)
        self.ab_polar_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE,
                                                wx.ALIGN_CENTRE)

        # Label Appearance

        # Cell Defaults
        self.ab_polar_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        ab_polar_sizer.Add(self.ab_polar_grid, 0, wx.ALL, 5)

        self.ab_polar_container.SetSizer(ab_polar_sizer)
        self.ab_polar_container.Layout()
        ab_polar_sizer.Fit(self.ab_polar_container)
        self.results_notebook.AddPage(self.ab_polar_container,
                                      u"A-B Polarizabilities", False)

        grids_sizer.Add(self.results_notebook, 1, wx.EXPAND, 5)

        self.grids_container.SetSizer(grids_sizer)
        self.grids_container.Layout()
        grids_sizer.Fit(self.grids_container)
        self.main_splitter.SplitVertically(self.plots_container,
                                           self.grids_container, 0)
        main_sizer.Add(self.main_splitter, 1, wx.EXPAND, 5)

        self.SetSizer(main_sizer)
        self.Layout()
        self.status_bar = self.CreateStatusBar(1, wx.ST_SIZEGRIP, wx.ID_ANY)

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_MENU, self.on_new, id=self.new.GetId())
        self.Bind(wx.EVT_MENU, self.on_open, id=self.open.GetId())
        self.Bind(wx.EVT_MENU, self.on_save, id=self.save.GetId())
        self.Bind(wx.EVT_MENU, self.on_save_as, id=self.save_as.GetId())
        self.Bind(wx.EVT_MENU,
                  self.on_import_geom,
                  id=self.import_geometry.GetId())
        self.Bind(wx.EVT_MENU, self.on_quit, id=self.quit.GetId())
        self.Bind(wx.EVT_MENU, self.on_atoms, id=self.atoms_menu.GetId())
        self.Bind(wx.EVT_MENU, self.on_bonds, id=self.bonds_menu.GetId())
        self.Bind(wx.EVT_MENU, self.on_about, id=self.about.GetId())
        self.Bind(wx.EVT_MENU,
                  self.on_documentation,
                  id=self.documentation.GetId())
        self.Bind(wx.EVT_TOOL, self.on_new, id=wx.ID_ANY)
        self.Bind(wx.EVT_TOOL_ENTER, self.on_new, id=wx.ID_ANY)
        self.Bind(wx.EVT_TOOL, self.on_open, id=wx.ID_ANY)
        self.Bind(wx.EVT_TOOL_ENTER, self.on_open, id=wx.ID_ANY)
        self.Bind(wx.EVT_TOOL, self.on_save, id=wx.ID_ANY)
        self.Bind(wx.EVT_TOOL_ENTER, self.on_save, id=wx.ID_ANY)
        self.num_electrons.Bind(wx.EVT_SPINCTRL, self.on_huckel_change)
        self.basis_size.Bind(wx.EVT_SPINCTRL, self.on_huckel_change)
        self.basis_size.Bind(wx.EVT_TEXT, self.on_huckel_change)
        self.atom_type.Bind(wx.EVT_CHOICE, self.on_atom_change)
        self.zoom_in.Bind(wx.EVT_BUTTON, self.on_zoom)
        self.zoom_out.Bind(wx.EVT_BUTTON, self.on_zoom)
        self.redraw.Bind(wx.EVT_BUTTON, self.on_redraw)
        self.clear.Bind(wx.EVT_BUTTON, self.on_clear)
コード例 #18
0
    def __init__(self,
                 satellite='NOAA-XX',
                 gain=35,
                 freq=1698e6,
                 sync_check=False,
                 side="A:0",
                 rate=2e6,
                 frames_file=os.environ['HOME'] +
                 '/data/noaa/frames/NOAA-XX.hrpt',
                 baseband_file=os.environ['HOME'] +
                 '/data/noaa/baseband/NOAA-XX.dat'):
        grc_wxgui.top_block_gui.__init__(self,
                                         title="Enhanced NOAA HRPT Receiver")
        _icon_path = "/usr/share/icons/hicolor/32x32/apps/gnuradio-grc.png"
        self.SetIcon(wx.Icon(_icon_path, wx.BITMAP_TYPE_ANY))

        ##################################################
        # Parameters
        ##################################################
        self.satellite = satellite
        self.gain = gain
        self.freq = freq
        self.sync_check = sync_check
        self.side = side
        self.rate = rate
        self.frames_file = frames_file
        self.baseband_file = baseband_file

        ##################################################
        # Variables
        ##################################################
        self.sym_rate = sym_rate = 600 * 1109
        self.samp_rate = samp_rate = rate
        self.config_filename = config_filename = os.environ[
            'HOME'] + '/.gnuradio/noaa_hrpt.conf'
        self.sps = sps = samp_rate / sym_rate
        self._saved_pll_alpha_config = ConfigParser.ConfigParser()
        self._saved_pll_alpha_config.read(config_filename)
        try:
            saved_pll_alpha = self._saved_pll_alpha_config.getfloat(
                satellite, 'pll_alpha')
        except:
            saved_pll_alpha = 0.005
        self.saved_pll_alpha = saved_pll_alpha
        self._saved_clock_alpha_config = ConfigParser.ConfigParser()
        self._saved_clock_alpha_config.read(config_filename)
        try:
            saved_clock_alpha = self._saved_clock_alpha_config.getfloat(
                satellite, 'clock_alpha')
        except:
            saved_clock_alpha = 0.001
        self.saved_clock_alpha = saved_clock_alpha
        self.sync_check_txt = sync_check_txt = sync_check
        self.side_text = side_text = side
        self._saved_gain_config = ConfigParser.ConfigParser()
        self._saved_gain_config.read(config_filename)
        try:
            saved_gain = self._saved_gain_config.getfloat(satellite, 'gain')
        except:
            saved_gain = gain
        self.saved_gain = saved_gain
        self.satellite_text = satellite_text = satellite
        self.sample_rate_text = sample_rate_text = samp_rate
        self.rate_tb = rate_tb = rate
        self.pll_alpha = pll_alpha = saved_pll_alpha
        self.max_clock_offset = max_clock_offset = 0.1
        self.max_carrier_offset = max_carrier_offset = 2 * math.pi * 100e3 / samp_rate
        self.hs = hs = int(sps / 2.0)
        self.gain_slider = gain_slider = gain
        self.freq_tb = freq_tb = freq
        self.frames_outfile_text = frames_outfile_text = frames_file
        self.datetime_text = datetime_text = strftime("%A, %B %d %Y %H:%M:%S",
                                                      localtime())
        self.clock_alpha = clock_alpha = saved_clock_alpha

        ##################################################
        # Blocks
        ##################################################
        _gain_slider_sizer = wx.BoxSizer(wx.VERTICAL)
        self._gain_slider_text_box = forms.text_box(
            parent=self.GetWin(),
            sizer=_gain_slider_sizer,
            value=self.gain_slider,
            callback=self.set_gain_slider,
            label="Gain",
            converter=forms.int_converter(),
            proportion=0,
        )
        self._gain_slider_slider = forms.slider(
            parent=self.GetWin(),
            sizer=_gain_slider_sizer,
            value=self.gain_slider,
            callback=self.set_gain_slider,
            minimum=0,
            maximum=100,
            num_steps=100,
            style=wx.SL_HORIZONTAL,
            cast=int,
            proportion=1,
        )
        self.GridAdd(_gain_slider_sizer, 2, 0, 1, 1)
        self.displays = self.displays = wx.Notebook(self.GetWin(),
                                                    style=wx.NB_TOP)
        self.displays.AddPage(grc_wxgui.Panel(self.displays), "RX NOAA HRPT")
        self.displays.AddPage(grc_wxgui.Panel(self.displays), "Information")
        self.Add(self.displays)
        _clock_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
        self._clock_alpha_text_box = forms.text_box(
            parent=self.GetWin(),
            sizer=_clock_alpha_sizer,
            value=self.clock_alpha,
            callback=self.set_clock_alpha,
            label="Clock alpha",
            converter=forms.float_converter(),
            proportion=0,
        )
        self._clock_alpha_slider = forms.slider(
            parent=self.GetWin(),
            sizer=_clock_alpha_sizer,
            value=self.clock_alpha,
            callback=self.set_clock_alpha,
            minimum=0.001,
            maximum=0.1,
            num_steps=100,
            style=wx.SL_HORIZONTAL,
            cast=float,
            proportion=1,
        )
        self.GridAdd(_clock_alpha_sizer, 2, 2, 1, 1)
        self.wxgui_fftsink2_0 = fftsink2.fft_sink_c(
            self.displays.GetPage(0).GetWin(),
            baseband_freq=0,
            y_per_div=5,
            y_divs=10,
            ref_level=-70,
            ref_scale=2.0,
            sample_rate=samp_rate,
            fft_size=1024,
            fft_rate=15,
            average=True,
            avg_alpha=0.4,
            title="NOAA HRPT FFT Spectrum",
            peak_hold=False,
        )
        self.displays.GetPage(0).Add(self.wxgui_fftsink2_0.win)
        self.uhd_usrp_source_0 = uhd.usrp_source(
            device_addr="",
            stream_args=uhd.stream_args(
                cpu_format="fc32",
                channels=range(1),
            ),
        )
        self.uhd_usrp_source_0.set_subdev_spec(side, 0)
        self.uhd_usrp_source_0.set_samp_rate(samp_rate)
        self.uhd_usrp_source_0.set_center_freq(freq, 0)
        self.uhd_usrp_source_0.set_gain(gain_slider, 0)
        self._sync_check_txt_static_text = forms.static_text(
            parent=self.GetWin(),
            value=self.sync_check_txt,
            callback=self.set_sync_check_txt,
            label="Continuous sync check",
            converter=forms.str_converter(),
        )
        self.GridAdd(self._sync_check_txt_static_text, 0, 2, 1, 1)
        self._side_text_static_text = forms.static_text(
            parent=self.GetWin(),
            value=self.side_text,
            callback=self.set_side_text,
            label="USRP Side",
            converter=forms.str_converter(),
        )
        self.GridAdd(self._side_text_static_text, 0, 0, 1, 1)
        self._satellite_text_static_text = forms.static_text(
            parent=self.GetWin(),
            value=self.satellite_text,
            callback=self.set_satellite_text,
            label="Satellite",
            converter=forms.str_converter(),
        )
        self.GridAdd(self._satellite_text_static_text, 0, 1, 1, 1)
        self._sample_rate_text_static_text = forms.static_text(
            parent=self.displays.GetPage(1).GetWin(),
            value=self.sample_rate_text,
            callback=self.set_sample_rate_text,
            label="Sample rate",
            converter=forms.float_converter(),
        )
        self.displays.GetPage(1).GridAdd(self._sample_rate_text_static_text, 3,
                                         0, 1, 1)
        self._rate_tb_text_box = forms.text_box(
            parent=self.GetWin(),
            value=self.rate_tb,
            callback=self.set_rate_tb,
            label="Sample rate",
            converter=forms.float_converter(),
        )
        self.GridAdd(self._rate_tb_text_box, 1, 0, 1, 1)
        self.poesweather_noaa_hrpt_deframer_0 = poesweather.noaa_hrpt_deframer(
            False)
        _pll_alpha_sizer = wx.BoxSizer(wx.VERTICAL)
        self._pll_alpha_text_box = forms.text_box(
            parent=self.GetWin(),
            sizer=_pll_alpha_sizer,
            value=self.pll_alpha,
            callback=self.set_pll_alpha,
            label="PLL Alpha",
            converter=forms.float_converter(),
            proportion=0,
        )
        self._pll_alpha_slider = forms.slider(
            parent=self.GetWin(),
            sizer=_pll_alpha_sizer,
            value=self.pll_alpha,
            callback=self.set_pll_alpha,
            minimum=0.005,
            maximum=0.5,
            num_steps=100,
            style=wx.SL_HORIZONTAL,
            cast=float,
            proportion=1,
        )
        self.GridAdd(_pll_alpha_sizer, 2, 1, 1, 1)
        self.pll = noaa.hrpt_pll_cf(pll_alpha, pll_alpha**2 / 4.0,
                                    max_carrier_offset)
        self._freq_tb_text_box = forms.text_box(
            parent=self.GetWin(),
            value=self.freq_tb,
            callback=self.set_freq_tb,
            label="Frequency",
            converter=forms.float_converter(),
        )
        self.GridAdd(self._freq_tb_text_box, 1, 1, 1, 1)
        self._frames_outfile_text_static_text = forms.static_text(
            parent=self.displays.GetPage(1).GetWin(),
            value=self.frames_outfile_text,
            callback=self.set_frames_outfile_text,
            label="Frames filename",
            converter=forms.str_converter(),
        )
        self.displays.GetPage(1).GridAdd(self._frames_outfile_text_static_text,
                                         4, 0, 1, 1)
        self.digital_clock_recovery_mm_xx_0 = digital.clock_recovery_mm_ff(
            sps / 2.0, clock_alpha**2 / 4.0, 0.5, clock_alpha,
            max_clock_offset)
        self.digital_binary_slicer_fb_0 = digital.binary_slicer_fb()
        self._datetime_text_static_text = forms.static_text(
            parent=self.displays.GetPage(1).GetWin(),
            value=self.datetime_text,
            callback=self.set_datetime_text,
            label="Acquisition start",
            converter=forms.str_converter(),
        )
        self.displays.GetPage(1).GridAdd(self._datetime_text_static_text, 2, 0,
                                         1, 1)
        self.blocks_moving_average_xx_0 = blocks.moving_average_ff(
            hs, 1.0 / hs, 4000)
        self.blocks_file_sink_1 = blocks.file_sink(gr.sizeof_short * 1,
                                                   baseband_file)
        self.blocks_file_sink_1.set_unbuffered(False)
        self.blocks_file_sink_0 = blocks.file_sink(gr.sizeof_short * 1,
                                                   frames_file)
        self.blocks_file_sink_0.set_unbuffered(False)
        self.blocks_complex_to_interleaved_short_0 = blocks.complex_to_interleaved_short(
        )
        self.analog_agc_xx_0 = analog.agc_cc(1e-5, 1.0, 1.0 / 32768.0, 1.0)

        ##################################################
        # Connections
        ##################################################
        self.connect((self.analog_agc_xx_0, 0), (self.pll, 0))
        self.connect((self.pll, 0), (self.blocks_moving_average_xx_0, 0))
        self.connect((self.uhd_usrp_source_0, 0), (self.wxgui_fftsink2_0, 0))
        self.connect((self.uhd_usrp_source_0, 0), (self.analog_agc_xx_0, 0))
        self.connect((self.blocks_moving_average_xx_0, 0),
                     (self.digital_clock_recovery_mm_xx_0, 0))
        self.connect((self.digital_clock_recovery_mm_xx_0, 0),
                     (self.digital_binary_slicer_fb_0, 0))
        self.connect((self.poesweather_noaa_hrpt_deframer_0, 0),
                     (self.blocks_file_sink_0, 0))
        self.connect((self.digital_binary_slicer_fb_0, 0),
                     (self.poesweather_noaa_hrpt_deframer_0, 0))
        self.connect((self.uhd_usrp_source_0, 0),
                     (self.blocks_complex_to_interleaved_short_0, 0))
        self.connect((self.blocks_complex_to_interleaved_short_0, 0),
                     (self.blocks_file_sink_1, 0))
コード例 #19
0
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, "OpenSTV", size=(900, 600))

        warnings.showwarning = self.catchWarnings

        # Get method plugins and create dict for easy access
        plugins = getMethodPlugins("classes")
        self.methodClasses1 = {}  # Methods enabled by default
        self.methodClasses2 = {}  # All methods
        self.lastMethod = "Scottish STV"
        for p in plugins:
            if p.status == 1:
                self.methodClasses1[p.longMethodName] = p
            self.methodClasses2[p.longMethodName] = p
        self.methodClasses = self.methodClasses1  # Methods currently viewable to user

        self.breakTiesRandomly = False

        fn = os.path.join(getHome(), "Icons", "pie.ico")
        self.icon = wx.Icon(fn, wx.BITMAP_TYPE_ICO)
        self.SetIcon(self.icon)

        self.lastBallotFile = ""
        self.electionList = []
        self.menuBar = wx.MenuBar()
        self.MakeMenu()
        self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)

        # create a notebook
        self.notebook = wx.Notebook(self, -1)

        # create a console window
        self.console = wx.TextCtrl(self.notebook, -1,
                                   style=wx.TE_MULTILINE|wx.TE_READONLY|\
                                   wx.TE_WORDWRAP|wx.FIXED|wx.TE_RICH2)
        self.console.SetMaxLength(0)
        ps = self.console.GetFont().GetPointSize()
        font = wx.Font(ps, wx.MODERN, wx.NORMAL, wx.NORMAL)
        self.console.SetFont(font)

        # add the console as the first page
        self.notebook.AddPage(self.console, "Console")
        self.output = Output(self.notebook)
        sys.stdout = self.output
        sys.stderr = self.output

        self.introText = """\
OpenSTV Copyright 2003-2010 Jeffrey O'Neill
GNU General Public License
See Help->License for more details.

To run an election with an existing ballot file, select "New Election" from
the File menu.

To create a new ballot file, select "Create New Ballot File" from the File
menu.  To edit an existing ballot file, select "Edit Ballot File" from the
File menu.

For more information about the operation of OpenSTV, see the Help menu, go
to www.OpenSTV.org, or send an email to [email protected].    
"""
        self.console.AppendText(self.introText)
コード例 #20
0
    def __init__(self, parent, access, uid):
        self.makeInventoryValEntry()

        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"POS, ERP and Accounting",
                          pos=wx.DefaultPosition,
                          size=wx.Size(676, 460),
                          style=wx.DEFAULT_FRAME_STYLE | wx.MAXIMIZE
                          | wx.TAB_TRAVERSAL)

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

        bSizer1 = wx.BoxSizer(wx.VERTICAL)

        self.m_notebook1 = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition,
                                       wx.DefaultSize, 0)

        x = 0
        if access[x:x + 1] == '1':
            self.m_salesPanel = cashSalePanel(self.m_notebook1, "Cash Sale",
                                              uid)
            self.m_notebook1.AddPage(self.m_salesPanel, u"Sales", True)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_invoicePanel = invoiceSalePanel(self.m_notebook1,
                                                   "Print Invoice", uid)
            self.m_notebook1.AddPage(self.m_invoicePanel, u"Invoice", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_quotePanel = quotationPanel(self.m_notebook1,
                                               "Print Quotation", uid)
            self.m_notebook1.AddPage(self.m_quotePanel, u"Quotation", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_purchasePanel = purchasePanel(self.m_notebook1, "Purchase",
                                                 uid)
            self.m_notebook1.AddPage(self.m_purchasePanel, u"GPN", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_stockLevelsPanel = stockLevelsPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_stockLevelsPanel, u"Stock Levels",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_salesInfoPanel = saleInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_salesInfoPanel, u"Sale Info",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_invoiceInfoPanel = invoiceInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_invoiceInfoPanel, u"Invoice Info",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_purchaseInfoPanel = purchaseInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_purchaseInfoPanel, u"GPN Info",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_quoteInfoPanel = quoteInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_quoteInfoPanel, u"Quotation Info",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_customerInfoPanel = customerInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_customerInfoPanel,
                                     u"Customer Info", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_supplierInfoPanel = supplierInfoPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_supplierInfoPanel,
                                     u"Supplier Info", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_journalPanel = journalPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_journalPanel, u"Journal", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_folioAccountsPanel = folioAccountsPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_folioAccountsPanel, u"Accounts",
                                     False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_controlAccountPanel = controlAccountPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_controlAccountPanel,
                                     u"Control Account", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_incomeStatementPanel = incomeStatementPanel(
                self.m_notebook1)
            self.m_notebook1.AddPage(self.m_incomeStatementPanel,
                                     u"Income Statement", False)
        x = x + 1

        if access[x:x + 1] == '1':
            self.m_usersPanel = usersPanel(self.m_notebook1)
            self.m_notebook1.AddPage(self.m_usersPanel, u"Users", False)
        x = x + 1

        bSizer1.Add(self.m_notebook1, 1, wx.EXPAND | wx.ALL, 5)

        self.SetSizer(bSizer1)
        self.Layout()

        self.Centre(wx.BOTH)

        self.m_notebook1.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
                              self.refreshStockLevels)

        self.Bind(wx.EVT_CLOSE, self.OnQuit)
コード例 #21
0
ファイル: TabbedView.py プロジェクト: borneywpf/pythonstudy
 def OnCreate(self, doc, flags):
     frame = wx.GetApp().CreateDocumentFrame(self, doc, flags)
     sizer = wx.BoxSizer()
     self._notebook = wx.Notebook(frame, -1, style=wx.NB_BOTTOM)
     self.Activate()
     return True
コード例 #22
0
ファイル: __main__.py プロジェクト: tiefpunkt/pyobdlib
    def OnInit(self):
        self.ThreadControl = 0  #say thread what to do
        self.COMPORT = 0
        self.senprod = None
        self.DEBUGLEVEL = 0  #debug everthing

        tID = wx.NewId()

        #read settings from file
        self.config = ConfigParser.RawConfigParser()

        #print platform.system()
        #print platform.mac_ver()[]

        if "OS" in os.environ.keys():  #runnig under windows
            self.configfilepath = "pyobd.ini"
        else:
            self.configfilepath = os.environ['HOME'] + '/.pyobdrc'
        if self.config.read(self.configfilepath) == []:
            self.COMPORT = "/dev/ttyACM0"
            self.RECONNATTEMPTS = 5
            self.SERTIMEOUT = 2
        else:
            self.COMPORT = self.config.get("pyOBD", "COMPORT")
            self.RECONNATTEMPTS = self.config.getint("pyOBD", "RECONNATTEMPTS")
            self.SERTIMEOUT = self.config.getint("pyOBD", "SERTIMEOUT")

        frame = wx.Frame(None, -1, "pyOBD-II")
        self.frame = frame

        EVT_RESULT(self, self.OnResult, EVT_RESULT_ID)
        EVT_RESULT(self, self.OnDebug, EVT_DEBUG_ID)
        EVT_RESULT(self, self.OnDtc, EVT_DTC_ID)
        EVT_RESULT(self, self.OnStatus, EVT_STATUS_ID)
        EVT_RESULT(self, self.OnTests, EVT_TESTS_ID)

        # Main notebook frames
        self.nb = wx.Notebook(frame, -1, style=wx.NB_TOP)

        self.status = self.MyListCtrl(self.nb,
                                      tID,
                                      style=wx.LC_REPORT | wx.SUNKEN_BORDER)
        self.status.InsertColumn(0, "Description", width=200)
        self.status.InsertColumn(1, "Value")
        self.status.Append(["Link State", "Disconnnected"])
        self.status.Append(["Protocol", "---"])
        self.status.Append(["Cable version", "---"])
        self.status.Append(["COM port", self.COMPORT])

        self.nb.AddPage(self.status, "Status")

        self.OBDTests = self.MyListCtrl(self.nb,
                                        tID,
                                        style=wx.LC_REPORT | wx.SUNKEN_BORDER)
        self.OBDTests.InsertColumn(0, "Description", width=200)
        self.OBDTests.InsertColumn(1, "Value")
        self.nb.AddPage(self.OBDTests, "Tests")

        for i in range(0, len(ptest)):  #fill MODE 1 PID 1 test description
            self.OBDTests.Append([ptest[i], "---"])

        self.build_sensor_page()

        self.build_DTC_page()

        self.trace = self.MyListCtrl(self.nb,
                                     tID,
                                     style=wx.LC_REPORT | wx.SUNKEN_BORDER)
        self.trace.InsertColumn(0, "Level", width=40)
        self.trace.InsertColumn(1, "Message")
        self.nb.AddPage(self.trace, "Trace")
        self.TraceDebug(1, "Application started")

        # Setting up the menu.
        self.filemenu = wx.Menu()
        self.filemenu.Append(ID_EXIT, "E&xit", " Terminate the program")

        self.settingmenu = wx.Menu()
        self.settingmenu.Append(ID_CONFIG, "Configure", " Configure pyOBD")
        self.settingmenu.Append(ID_RESET, "Connect",
                                " Reopen and connect to device")
        self.settingmenu.Append(ID_DISCONNECT, "Disconnect",
                                "Close connection to device")

        self.dtcmenu = wx.Menu()
        # tady toto nastavi automaticky tab DTC a provede akci
        self.dtcmenu.Append(ID_GETC, "Get DTCs", " Get DTC Codes")
        self.dtcmenu.Append(ID_CLEAR, "Clear DTC", " Clear DTC Codes")
        self.dtcmenu.Append(ID_LOOK, "Code Lookup", " Lookup DTC Codes")

        self.helpmenu = wx.Menu()

        self.helpmenu.Append(ID_HELP_ABOUT, "About this program",
                             " Get DTC Codes")
        self.helpmenu.Append(ID_HELP_VISIT, "Visit program homepage",
                             " Lookup DTC Codes")
        self.helpmenu.Append(ID_HELP_ORDER, "Order OBD-II cables",
                             " Clear DTC Codes")

        # Creating the menubar.
        self.menuBar = wx.MenuBar()
        self.menuBar.Append(self.filemenu,
                            "&File")  # Adding the "filemenu" to the MenuBar
        self.menuBar.Append(self.settingmenu, "&OBD-II")
        self.menuBar.Append(self.dtcmenu, "&Trouble codes")
        self.menuBar.Append(self.helpmenu, "&Help")

        frame.SetMenuBar(
            self.menuBar)  # Adding the MenuBar to the Frame content.

        frame.Bind(wx.EVT_MENU, self.OnExit,
                   id=ID_EXIT)  # attach the menu-event ID_EXIT to the
        frame.Bind(wx.EVT_MENU, self.QueryClear, id=ID_CLEAR)
        frame.Bind(wx.EVT_MENU, self.Configure, id=ID_CONFIG)
        frame.Bind(wx.EVT_MENU, self.OpenPort, id=ID_RESET)
        frame.Bind(wx.EVT_MENU, self.OnDisconnect, id=ID_DISCONNECT)
        frame.Bind(wx.EVT_MENU, self.GetDTC, id=ID_GETC)
        frame.Bind(wx.EVT_MENU, self.CodeLookup, id=ID_LOOK)
        frame.Bind(wx.EVT_MENU, self.OnHelpAbout, id=ID_HELP_ABOUT)
        frame.Bind(wx.EVT_MENU, self.OnHelpVisit, id=ID_HELP_VISIT)
        frame.Bind(wx.EVT_MENU, self.OnHelpOrder, id=ID_HELP_ORDER)

        self.SetTopWindow(frame)

        frame.Show(True)
        frame.SetSize((520, 400))
        self.sensor_control_off()

        return True
コード例 #23
0
    def __init__(self, *args, **kw):
        wx.Panel.__init__(self, *args, **kw)

        # Set common sizes
        params.InitParams(self)

        topSizer = wx.BoxSizer(wx.VERTICAL)
        pinSizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer = wx.FlexGridSizer(2, 2, 1, 5)
        self.labelRef = wx.StaticText(self, -1, 'ref:')
        self.textRef = params.ParamText(self, 'ref', textWidth=200)
        sizer.AddMany([(self.labelRef, 0, wx.ALIGN_CENTER_VERTICAL),
                       (self.textRef, 0, wx.LEFT, 5)])
        self.labelClass = wx.StaticText(self, -1, 'class:')
        self.textClass = params.ParamText(self, 'class', textWidth=200)
        sizer.AddMany([(self.labelClass, 0, wx.ALIGN_CENTER_VERTICAL),
                       (self.textClass, 0, wx.LEFT, 5)])
        self.labelName = wx.StaticText(self, -1, 'name:')
        self.textName = params.ParamText(self, 'name', textWidth=200)
        sizer.AddMany([(self.labelName, 0, wx.ALIGN_CENTER_VERTICAL),
                       (self.textName, 0, wx.LEFT, 5)])
        pinSizer.Add(sizer, 0, wx.ALL, 5)
        pinSizer.Add((0, 0), 1)
        self.pinButton = buttons.GenBitmapToggleButton(
            self, bitmap=images.ToolPin.GetBitmap(), style=wx.BORDER_NONE)
        self.pinButton.SetBitmapSelected(images.ToolPinDown.GetBitmap())
        self.pinButton.SetToggle(g.conf.panelPinState)
        self.pinButton.SetToolTipString('Sticky page selection')
        # No highlighting please
        self.pinButton.GetBackgroundBrush = lambda dc: None
        pinSizer.Add(self.pinButton)
        topSizer.Add(pinSizer, 0, wx.EXPAND)
        self.sizer = sizer

        self.nb = wx.Notebook(self, -1)
        if wx.Platform == '__WXGTK__':
            # Redefine AddPage on GTK to fix when page added is not shown
            _oldAddPage = wx.Notebook.AddPage

            def _newAddPage(self, page, label):
                _oldAddPage(self, page, label)
                page.Show(True)

            wx.Notebook.AddPage = _newAddPage

        # Create scrolled windows for panels
        self.pageA = ScrolledPage(self.nb)
        self.nb.AddPage(self.pageA, 'Attributes')
        # Style page
        self.pageStyle = ScrolledPage(self.nb)
        self.pageStyle.Hide()
        # Extra style page
        self.pageExStyle = ScrolledPage(self.nb)
        self.pageExStyle.Hide()
        # Window attributes page
        self.pageWA = ScrolledPage(self.nb)
        self.pageWA.Hide()
        # Implicit attributes page
        self.pageIA = ScrolledPage(self.nb)
        self.pageIA.Hide()
        # Code page
        self.pageCode = ScrolledPage(self.nb)
        self.pageCode.Hide()

        topSizer.Add(self.nb, 1, wx.EXPAND)
        self.SetSizer(topSizer)

        self.undo = None  # pending undo object
コード例 #24
0
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=wx.EmptyString,
                          pos=wx.DefaultPosition,
                          size=wx.Size(552, 256),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        wSizer_win = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.m_notebook_memOpt = wx.Notebook(self, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_panel_memOpt = wx.Panel(self.m_notebook_memOpt, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TAB_TRAVERSAL)
        gSizer_memOpt = wx.GridSizer(0, 2, 0, 0)

        self.m_staticText_deviceType = wx.StaticText(self.m_panel_memOpt,
                                                     wx.ID_ANY,
                                                     u"Device Type:",
                                                     wx.DefaultPosition,
                                                     wx.DefaultSize, 0)
        self.m_staticText_deviceType.Wrap(-1)

        gSizer_memOpt.Add(self.m_staticText_deviceType, 0, wx.ALL, 5)

        m_choice_deviceTypeChoices = [u"1bit NOR Flash", u"EEPROM"]
        self.m_choice_deviceType = wx.Choice(self.m_panel_memOpt, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.Size(110, -1),
                                             m_choice_deviceTypeChoices, 0)
        self.m_choice_deviceType.SetSelection(0)
        gSizer_memOpt.Add(self.m_choice_deviceType, 0, wx.ALL, 5)

        self.m_staticText_pageSize = wx.StaticText(self.m_panel_memOpt,
                                                   wx.ID_ANY,
                                                   u"Page Size (Bytes):",
                                                   wx.DefaultPosition,
                                                   wx.DefaultSize, 0)
        self.m_staticText_pageSize.Wrap(-1)

        gSizer_memOpt.Add(self.m_staticText_pageSize, 0, wx.ALL, 5)

        m_choice_pageSizeChoices = [
            u"32", u"64", u"128", u"256", u"512", u"1024"
        ]
        self.m_choice_pageSize = wx.Choice(self.m_panel_memOpt,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(110, -1),
                                           m_choice_pageSizeChoices, 0)
        self.m_choice_pageSize.SetSelection(3)
        gSizer_memOpt.Add(self.m_choice_pageSize, 0, wx.ALL, 5)

        self.m_staticText_sectorSize = wx.StaticText(self.m_panel_memOpt,
                                                     wx.ID_ANY,
                                                     u"Sector Size (KBytes):",
                                                     wx.DefaultPosition,
                                                     wx.DefaultSize, 0)
        self.m_staticText_sectorSize.Wrap(-1)

        gSizer_memOpt.Add(self.m_staticText_sectorSize, 0, wx.ALL, 5)

        m_choice_sectorSizeChoices = [u"4", u"8", u"32", u"64", u"128", u"256"]
        self.m_choice_sectorSize = wx.Choice(self.m_panel_memOpt, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.Size(110, -1),
                                             m_choice_sectorSizeChoices, 0)
        self.m_choice_sectorSize.SetSelection(0)
        gSizer_memOpt.Add(self.m_choice_sectorSize, 0, wx.ALL, 5)

        self.m_staticText_totalSize = wx.StaticText(self.m_panel_memOpt,
                                                    wx.ID_ANY,
                                                    u"Total Size (KBytes):",
                                                    wx.DefaultPosition,
                                                    wx.DefaultSize, 0)
        self.m_staticText_totalSize.Wrap(-1)

        gSizer_memOpt.Add(self.m_staticText_totalSize, 0, wx.ALL, 5)

        m_choice_totalSizeChoices = [
            u"32", u"64", u"128", u"256", u"512", u"1024", u"2048", u"4096",
            u"8192", u"16384", u"32768", u"65536", u"131072", u"262144",
            u"524288", u"1048576"
        ]
        self.m_choice_totalSize = wx.Choice(self.m_panel_memOpt,
                                            wx.ID_ANY, wx.DefaultPosition,
                                            wx.Size(110, -1),
                                            m_choice_totalSizeChoices, 0)
        self.m_choice_totalSize.SetSelection(4)
        gSizer_memOpt.Add(self.m_choice_totalSize, 0, wx.ALL, 5)

        self.m_panel_memOpt.SetSizer(gSizer_memOpt)
        self.m_panel_memOpt.Layout()
        gSizer_memOpt.Fit(self.m_panel_memOpt)
        self.m_notebook_memOpt.AddPage(self.m_panel_memOpt, u"Memory Option",
                                       False)

        wSizer_win.Add(self.m_notebook_memOpt, 1, wx.EXPAND | wx.ALL, 5)

        self.m_notebook_spiOpt = wx.Notebook(self, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, 0)
        self.m_panel_spiOpt = wx.Panel(self.m_notebook_spiOpt, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TAB_TRAVERSAL)
        gSizer_spiOpt = wx.GridSizer(0, 2, 0, 0)

        self.m_staticText_spiIndex = wx.StaticText(self.m_panel_spiOpt,
                                                   wx.ID_ANY, u"Spi Index:",
                                                   wx.DefaultPosition,
                                                   wx.DefaultSize, 0)
        self.m_staticText_spiIndex.Wrap(-1)

        gSizer_spiOpt.Add(self.m_staticText_spiIndex, 0, wx.ALL, 5)

        m_choice_spiIndexChoices = [u"1", u"2", u"3", u"4"]
        self.m_choice_spiIndex = wx.Choice(self.m_panel_spiOpt,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(110, -1),
                                           m_choice_spiIndexChoices, 0)
        self.m_choice_spiIndex.SetSelection(0)
        gSizer_spiOpt.Add(self.m_choice_spiIndex, 0, wx.ALL, 5)

        self.m_staticText_spiPcs = wx.StaticText(self.m_panel_spiOpt,
                                                 wx.ID_ANY, u"Spi Pcs:",
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize, 0)
        self.m_staticText_spiPcs.Wrap(-1)

        gSizer_spiOpt.Add(self.m_staticText_spiPcs, 0, wx.ALL, 5)

        m_choice_spiPcsChoices = [u"0"]
        self.m_choice_spiPcs = wx.Choice(self.m_panel_spiOpt, wx.ID_ANY,
                                         wx.DefaultPosition, wx.Size(110, -1),
                                         m_choice_spiPcsChoices, 0)
        self.m_choice_spiPcs.SetSelection(0)
        gSizer_spiOpt.Add(self.m_choice_spiPcs, 0, wx.ALL, 5)

        self.m_staticText_spiSpeed = wx.StaticText(self.m_panel_spiOpt,
                                                   wx.ID_ANY, u"Spi Speed:",
                                                   wx.DefaultPosition,
                                                   wx.Size(-1, -1), 0)
        self.m_staticText_spiSpeed.Wrap(-1)

        gSizer_spiOpt.Add(self.m_staticText_spiSpeed, 0, wx.ALL, 5)

        m_choice_spiSpeedChoices = [u"20MHz", u"10MHz", u"5MHz", u"2MHz"]
        self.m_choice_spiSpeed = wx.Choice(self.m_panel_spiOpt,
                                           wx.ID_ANY, wx.DefaultPosition,
                                           wx.Size(110, -1),
                                           m_choice_spiSpeedChoices, 0)
        self.m_choice_spiSpeed.SetSelection(0)
        gSizer_spiOpt.Add(self.m_choice_spiSpeed, 0, wx.ALL, 5)

        self.m_staticText_spiOptNull0 = wx.StaticText(self.m_panel_spiOpt,
                                                      wx.ID_ANY,
                                                      wx.EmptyString,
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.m_staticText_spiOptNull0.Wrap(-1)

        gSizer_spiOpt.Add(self.m_staticText_spiOptNull0, 0, wx.ALL, 5)

        self.m_staticText_spiOptNull1 = wx.StaticText(self.m_panel_spiOpt,
                                                      wx.ID_ANY,
                                                      wx.EmptyString,
                                                      wx.DefaultPosition,
                                                      wx.DefaultSize, 0)
        self.m_staticText_spiOptNull1.Wrap(-1)

        gSizer_spiOpt.Add(self.m_staticText_spiOptNull1, 0, wx.ALL, 5)

        self.m_panel_spiOpt.SetSizer(gSizer_spiOpt)
        self.m_panel_spiOpt.Layout()
        gSizer_spiOpt.Fit(self.m_panel_spiOpt)
        self.m_notebook_spiOpt.AddPage(self.m_panel_spiOpt, u"Spi Option",
                                       False)

        wSizer_win.Add(self.m_notebook_spiOpt, 1, wx.EXPAND | wx.ALL, 5)

        self.m_staticText_winNull0 = wx.StaticText(self, wx.ID_ANY,
                                                   wx.EmptyString,
                                                   wx.DefaultPosition,
                                                   wx.Size(265, -1), 0)
        self.m_staticText_winNull0.Wrap(-1)

        wSizer_win.Add(self.m_staticText_winNull0, 0, wx.ALL, 5)

        self.m_button_ok = wx.Button(self, wx.ID_ANY, u"Ok",
                                     wx.DefaultPosition, wx.Size(100, -1), 0)
        wSizer_win.Add(self.m_button_ok, 0, wx.ALL, 5)

        self.m_button_cancel = wx.Button(self, wx.ID_ANY,
                                         u"Cancel", wx.DefaultPosition,
                                         wx.Size(100, -1), 0)
        wSizer_win.Add(self.m_button_cancel, 0, wx.ALL, 5)

        self.SetSizer(wSizer_win)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.m_button_ok.Bind(wx.EVT_BUTTON, self.callbackOk)
        self.m_button_cancel.Bind(wx.EVT_BUTTON, self.callbackCancel)
コード例 #25
0
    def __init__(self, main_window):
        wx.Dialog.__init__(self, main_window, wx.ID_ANY, lang.DSET_TITLE)
        self.mw = main_window

        # 1 outer panel and vertical sizer

        self.outer_panel = wx.Panel(self)
        outer_sizer = wx.BoxSizer(wx.VERTICAL)
        self.outer_panel.SetSizer(outer_sizer)

        # 1.1 the notebook on the top

        self.notebook = wx.Notebook(self.outer_panel)
        outer_sizer.Add(self.notebook,
                        1,
                        wx.EXPAND | wx.LEFT | wx.TOP
                        | wx.RIGHT,
                        border=5)

        # 1.2 the button_sizer at the bottom

        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
        outer_sizer.Add(button_sizer, 0, wx.ALIGN_RIGHT | wx.ALL, border=5)

        # 1.2.1 cancel button

        btn_cancel = wx.Button(self.outer_panel, wx.ID_CANCEL, lang.BTN_CANCEL)
        button_sizer.Add(btn_cancel)

        # 1.2.2 ok button

        btn_ok = wx.Button(self.outer_panel, wx.ID_OK, lang.BTN_OK)
        button_sizer.Add(btn_ok, 0, wx.LEFT, 5)

        # 2 the button bindings

        btn_ok.Bind(wx.EVT_BUTTON, self.onOk)
        btn_cancel.Bind(wx.EVT_BUTTON, self.onCancel)

        # 3 now we create the notebook tabs
        # 3.1 network

        self.p1 = dlg.Panel(self.notebook)
        self.notebook.AddPage(self.p1, lang.DSET_NET_TITLE)

        self.s_tor_portable = dlg.Separator(self.p1, 'Tor portable')
        dlg.Text(self.p1, lang.DSET_NET_TOR_ADDRESS,
                 ('tor_portable', 'tor_server'), True)
        dlg.Text(self.p1, lang.DSET_NET_TOR_SOCKS,
                 ('tor_portable', 'tor_server_socks_port'))
        dlg.Text(self.p1, lang.DSET_NET_TOR_CONTROL,
                 ('tor_portable', 'tor_server_control_port'))
        self.s_tor = dlg.Separator(self.p1, 'Tor')
        dlg.Text(self.p1, lang.DSET_NET_TOR_ADDRESS, ('tor', 'tor_server'),
                 True)
        dlg.Text(self.p1, lang.DSET_NET_TOR_SOCKS,
                 ('tor', 'tor_server_socks_port'))
        dlg.Text(self.p1, lang.DSET_NET_TOR_CONTROL,
                 ('tor', 'tor_server_control_port'))
        dlg.Text(self.p1, lang.DSET_NET_OWN_HOSTNAME,
                 ('client', 'own_hostname'), True)
        dlg.Separator(self.p1, 'Client')
        dlg.Text(self.p1, lang.DSET_NET_LISTEN_INTERFACE,
                 ('client', 'listen_interface'), True)
        dlg.Text(self.p1, lang.DSET_NET_LISTEN_PORT, ('client', 'listen_port'))
        self.p1.fit()

        portable = tc_client.TOR_CONFIG == 'tor_portable'
        if portable:
            self.s_tor.setEnabled(False)
        else:
            self.s_tor_portable.setEnabled(False)

        # 3.2 user interface

        self.p2 = dlg.Panel(self.notebook)
        self.notebook.AddPage(self.p2, lang.DSET_GUI_TITLE)

        self.lang = dlg.Text(self.p2, lang.DSET_GUI_LANGUAGE,
                             ('gui', 'language'))
        self.lang_old = self.lang.getValue()
        dlg.Check(self.p2, lang.DSET_GUI_OPEN_MAIN_HIDDEN,
                  ('gui', 'open_main_window_hidden'))
        dlg.Check(self.p2, lang.DSET_GUI_OPEN_CHAT_HIDDEN,
                  ('gui', 'open_chat_window_hidden'))
        dlg.Check(self.p2, lang.DSET_GUI_NOTIFICATION_POPUP,
                  ('gui', 'notification_popup'))
        dlg.Check(self.p2, lang.DSET_GUI_FLASH_WINDOW,
                  ('gui', 'notification_flash_window'))

        # 3.3 misc options

        self.p3 = dlg.Panel(self.notebook)
        self.notebook.AddPage(self.p3, lang.DSET_MISC_TITLE)
        self.chk_tmp = dlg.Check(self.p3, lang.DSET_MISC_TEMP_IN_DATA,
                                 ('files', 'temp_files_in_data_dir'))
        self.dir_tmp = dlg.Dir(self.p3, lang.DSET_MISC_TEMP_CUSTOM_DIR,
                               ('files', 'temp_files_custom_dir'))
        self.dir_tmp.setEnabled(not self.chk_tmp.getValue())
        self.chk_tmp.wx_ctrl.Bind(wx.EVT_CHECKBOX, self.onChkTmp)

        # 4 fit the sizers

        outer_sizer.Fit(self)
コード例 #26
0
ファイル: characterEditor.py プロジェクト: bsmr/pyfa-org-Pyfa
    def __init__(self, parent):
        super().__init__(
            parent, id=wx.ID_ANY, title="Character Editor", resizeable=True, pos=wx.DefaultPosition,
            size=wx.Size(950, 650) if "wxGTK" in wx.PlatformInfo else wx.Size(850, 600))

        i = wx.Icon(BitmapLoader.getBitmap("character_small", "gui"))
        self.SetIcon(i)

        self.mainFrame = parent
        # self.disableWin = wx.WindowDisabler(self)
        sFit = Fit.getInstance()

        mainSizer = wx.BoxSizer(wx.VERTICAL)

        self.entityEditor = CharacterEntityEditor(self)
        mainSizer.Add(self.entityEditor, 0, wx.ALL | wx.EXPAND, 2)
        # Default drop down to current fit's character
        self.entityEditor.setActiveEntity(sFit.character)

        self.viewsNBContainer = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)

        self.sview = SkillTreeView(self.viewsNBContainer)
        self.iview = ImplantEditorView(self.viewsNBContainer, self)
        self.aview = APIView(self.viewsNBContainer)

        self.viewsNBContainer.AddPage(self.sview, "Skills")
        self.viewsNBContainer.AddPage(self.iview, "Implants")
        self.viewsNBContainer.AddPage(self.aview, "EVE SSO")

        mainSizer.Add(self.viewsNBContainer, 1, wx.EXPAND | wx.ALL, 5)

        bSizerButtons = wx.BoxSizer(wx.HORIZONTAL)

        self.btnSaveChar = wx.Button(self, wx.ID_ANY, "Save")
        self.btnSaveAs = wx.Button(self, wx.ID_ANY, "Save As...")
        self.btnRevert = wx.Button(self, wx.ID_ANY, "Revert")
        self.btnOK = wx.Button(self, wx.ID_OK)

        bSizerButtons.Add(self.btnSaveChar, 0, wx.ALL, 5)
        bSizerButtons.Add(self.btnSaveAs, 0, wx.ALL, 5)
        bSizerButtons.Add(self.btnRevert, 0, wx.ALL, 5)
        bSizerButtons.AddStretchSpacer()
        bSizerButtons.Add(self.btnOK, 0, wx.ALL, 5)

        self.btnSaveChar.Bind(wx.EVT_BUTTON, self.saveChar)
        self.btnSaveAs.Bind(wx.EVT_BUTTON, self.saveCharAs)
        self.btnRevert.Bind(wx.EVT_BUTTON, self.revertChar)
        self.btnOK.Bind(wx.EVT_BUTTON, self.editingFinished)

        mainSizer.Add(bSizerButtons, 0, wx.EXPAND, 5)

        self.btnRestrict()

        self.SetSizer(mainSizer)
        self.Layout()

        self.SetMinSize(self.GetSize())
        self.Centre(wx.BOTH)

        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent)
        self.Bind(GE.CHAR_LIST_UPDATED, self.refreshCharacterList)
        self.entityEditor.Bind(wx.EVT_CHOICE, self.charChanged)

        self.charChanged(None)
コード例 #27
0
    def __init__(self, parent, IDbudget=None):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER
                           | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
        self.parent = parent
        self.IDbudget = IDbudget

        # Généralités
        self.box_generalites_staticbox = wx.StaticBox(self, wx.ID_ANY,
                                                      _(u"Généralités"))
        self.label_nom = wx.StaticText(self, wx.ID_ANY, _(u"Nom :"))
        self.ctrl_nom = wx.TextCtrl(self, wx.ID_ANY, u"")
        self.label_periode = wx.StaticText(self, wx.ID_ANY, _(u"Période :"))
        self.ctrl_date_debut = CTRL_Saisie_date.Date2(self)
        self.label_au = wx.StaticText(self, wx.ID_ANY, _(u"au"))
        self.ctrl_date_fin = CTRL_Saisie_date.Date2(self)
        self.label_observations = wx.StaticText(self, wx.ID_ANY, _(u"Notes :"))
        self.ctrl_observations = wx.TextCtrl(self,
                                             wx.ID_ANY,
                                             u"",
                                             style=wx.TE_MULTILINE)
        self.ctrl_observations.SetMinSize((270, -1))

        # Postes analytiques
        self.box_analytiques_staticbox = wx.StaticBox(self, wx.ID_ANY,
                                                      _(u"Postes analytiques"))
        self.ctrl_analytiques = CTRL_Analytiques(self)

        # Catégories
        self.box_categories_staticbox = wx.StaticBox(
            self, wx.ID_ANY, _(u"Catégories budgétaires"))
        self.notebook = wx.Notebook(self, -1, style=wx.BK_BOTTOM)

        self.ctrl_categories_debit = Panel_OL(self.notebook, "debit")
        self.ctrl_categories_credit = Panel_OL(self.notebook, "credit")

        ##        self.ctrl_categories_debit = OL_Categories_budgetaires.ListView(self.notebook, id=-1, typeCategorie="debit", style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES)
        ##        self.ctrl_categories_credit = OL_Categories_budgetaires.ListView(self.notebook, id=-1, typeCategorie="credit", style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_HRULES|wx.LC_VRULES)
        self.notebook.AddPage(self.ctrl_categories_debit, _(u"Débit"))
        self.notebook.AddPage(self.ctrl_categories_credit, _(u"Crédit"))

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

        # Boutons
        self.bouton_aide = CTRL_Bouton_image.CTRL(
            self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png")
        self.bouton_ok = CTRL_Bouton_image.CTRL(
            self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png")
        self.bouton_annuler = CTRL_Bouton_image.CTRL(
            self, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png")

        self.__set_properties()
        self.__do_layout()

        # Binds
        self.Bind(wx.EVT_BUTTON, self.OnAjouter,
                  self.bouton_ajouter_categories)
        self.Bind(wx.EVT_BUTTON, self.OnModifier,
                  self.bouton_modifier_categories)
        self.Bind(wx.EVT_BUTTON, self.OnSupprimer,
                  self.bouton_supprimer_categories)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok)
        self.Bind(wx.EVT_BUTTON, self.OnBoutonAnnuler, self.bouton_annuler)

        # Importation de l'opération
        if self.IDbudget != None:
            self.Importation()
            titre = _(u"Modification d'un budget")
        else:
            titre = _(u"Saisie d'un budget")
        self.SetTitle(titre)

        # Importation des catégories
        self.tracksDebitInitial = []
        self.tracksCreditInitial = []
        self.tracksInitial = []
        if self.IDbudget != None:
            self.tracksDebitInitial = OL_Categories_budgetaires.Importation(
                self.IDbudget, "debit")
            self.ctrl_categories_debit.ctrl.SetTracks(self.tracksDebitInitial)
            self.tracksCreditInitial = OL_Categories_budgetaires.Importation(
                self.IDbudget, "credit")
            self.ctrl_categories_credit.ctrl.SetTracks(
                self.tracksCreditInitial)
            for listeTracks in (self.tracksDebitInitial,
                                self.tracksCreditInitial):
                for track in listeTracks:
                    self.tracksInitial.append(track)
        self.ctrl_categories_debit.ctrl.MAJ()
        self.ctrl_categories_credit.ctrl.MAJ()
コード例 #28
0
ファイル: MainUI.py プロジェクト: WeaponZhang/uncertainty
    def __init__(self, parent):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          title=u"不确定性智能仿真模型校准平台",
                          pos=wx.DefaultPosition,
                          size=wx.Size(1280, 720),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.icon = wx.Icon('img/timg (3).jpg', wx.BITMAP_TYPE_JPEG)
        self.SetIcon(self.icon)

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

        bSizerforwholeframe = wx.BoxSizer(wx.VERTICAL)

        self.m_panelfor = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                   wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforwholepanel = wx.BoxSizer(wx.VERTICAL)

        self.statusBar = wx.Notebook(self.m_panelfor, wx.ID_ANY,
                                     wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_panel1forStatusbar = wx.Panel(self.statusBar, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforpanel1 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_button3 = wx.Button(self.m_panel1forStatusbar, wx.ID_ANY,
                                   u"模型设置", wx.DefaultPosition, wx.DefaultSize,
                                   0)
        self.m_button3.SetBitmap(wx.Bitmap('img/timg (3).jpg'))
        self.m_button3.Bind(wx.EVT_LEFT_DOWN, self.ClickModelManage)

        bSizerforpanel1.Add(self.m_button3, 0, wx.ALL, 5)

        self.m_button7 = wx.Button(self.m_panel1forStatusbar, wx.ID_ANY,
                                   u"参数设置", wx.DefaultPosition, wx.DefaultSize,
                                   0)
        bSizerforpanel1.Add(self.m_button7, 0, wx.ALL, 5)

        self.m_button8 = wx.Button(self.m_panel1forStatusbar, wx.ID_ANY,
                                   u"数据导入", wx.DefaultPosition, wx.DefaultSize,
                                   0)
        bSizerforpanel1.Add(self.m_button8, 0, wx.ALL, 5)

        self.m_button9 = wx.Button(self.m_panel1forStatusbar, wx.ID_ANY,
                                   u"MyButton", wx.DefaultPosition,
                                   wx.DefaultSize, 0)
        bSizerforpanel1.Add(self.m_button9, 0, wx.ALL, 5)

        self.m_panel1forStatusbar.SetSizer(bSizerforpanel1)
        self.m_panel1forStatusbar.Layout()
        bSizerforpanel1.Fit(self.m_panel1forStatusbar)
        self.statusBar.AddPage(self.m_panel1forStatusbar, u"模型管理", True)
        self.m_panel2forStatusbar = wx.Panel(self.statusBar, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforpanel2 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_button10 = wx.Button(self.m_panel2forStatusbar, wx.ID_ANY,
                                    u"数据预处理", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button10.Bind(wx.EVT_LEFT_DOWN, self.ClickDataInit)
        bSizerforpanel2.Add(self.m_button10, 0, wx.ALL, 5)

        self.m_button15 = wx.Button(self.m_panel2forStatusbar, wx.ID_ANY,
                                    u"不确定性定义", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel2.Add(self.m_button15, 0, wx.ALL, 5)

        self.m_button16 = wx.Button(self.m_panel2forStatusbar, wx.ID_ANY,
                                    u"不确定性描述", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel2.Add(self.m_button16, 0, wx.ALL, 5)

        self.m_button17 = wx.Button(self.m_panel2forStatusbar, wx.ID_ANY,
                                    u"MyButton", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel2.Add(self.m_button17, 0, wx.ALL, 5)

        self.m_panel2forStatusbar.SetSizer(bSizerforpanel2)
        self.m_panel2forStatusbar.Layout()
        bSizerforpanel2.Fit(self.m_panel2forStatusbar)
        self.statusBar.AddPage(self.m_panel2forStatusbar, u"不确定性建模", False)
        self.m_panel3forStatusbar = wx.Panel(self.statusBar, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforpanel3 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_button18 = wx.Button(self.m_panel3forStatusbar, wx.ID_ANY,
                                    u"试验设计", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button18.Bind(wx.EVT_LEFT_DOWN, self.ClickTestDesign)
        bSizerforpanel3.Add(self.m_button18, 0, wx.ALL, 5)

        self.m_button19 = wx.Button(self.m_panel3forStatusbar, wx.ID_ANY,
                                    u"抽样设置", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button19.Bind(wx.EVT_LEFT_DOWN, self.SamplingSettings)
        bSizerforpanel3.Add(self.m_button19, 0, wx.ALL, 5)

        self.m_button20 = wx.Button(self.m_panel3forStatusbar, wx.ID_ANY,
                                    u"试验方案", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel3.Add(self.m_button20, 0, wx.ALL, 5)

        self.m_button21 = wx.Button(self.m_panel3forStatusbar, wx.ID_ANY,
                                    u"传播分析", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel3.Add(self.m_button21, 0, wx.ALL, 5)

        self.m_panel3forStatusbar.SetSizer(bSizerforpanel3)
        self.m_panel3forStatusbar.Layout()
        bSizerforpanel3.Fit(self.m_panel3forStatusbar)
        self.statusBar.AddPage(self.m_panel3forStatusbar, u"不确定性传播分析", False)
        self.m_panel4forStatusbar = wx.Panel(self.statusBar, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforpanel4 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_button22 = wx.Button(self.m_panel4forStatusbar, wx.ID_ANY,
                                    u"验证数据配置", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        self.m_button22.Bind(wx.EVT_LEFT_DOWN, self.ClickDataConfiguration)
        bSizerforpanel4.Add(self.m_button22, 0, wx.ALL, 5)

        self.m_button23 = wx.Button(self.m_panel4forStatusbar, wx.ID_ANY,
                                    u"特征提取", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel4.Add(self.m_button23, 0, wx.ALL, 5)

        self.m_button24 = wx.Button(self.m_panel4forStatusbar, wx.ID_ANY,
                                    u"验证准则", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel4.Add(self.m_button24, 0, wx.ALL, 5)

        self.m_button25 = wx.Button(self.m_panel4forStatusbar, wx.ID_ANY,
                                    u"验证分析", wx.DefaultPosition,
                                    wx.DefaultSize, 0)
        bSizerforpanel4.Add(self.m_button25, 0, wx.ALL, 5)

        self.m_panel4forStatusbar.SetSizer(bSizerforpanel4)
        self.m_panel4forStatusbar.Layout()
        bSizerforpanel4.Fit(self.m_panel4forStatusbar)
        self.statusBar.AddPage(self.m_panel4forStatusbar, u"仿真验证分析", False)

        self.m_panel5forStatusbar = wx.Panel(self.statusBar, wx.ID_ANY,
                                             wx.DefaultPosition,
                                             wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizerforpanel5 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_button171 = wx.Button(self.m_panel5forStatusbar, wx.ID_ANY,
                                     u"元模型管理", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        self.m_button171.Bind(wx.EVT_LEFT_DOWN, self.ClickMetamodelManage)
        bSizerforpanel5.Add(self.m_button171, 0, wx.ALL, 5)

        self.m_button181 = wx.Button(self.m_panel5forStatusbar, wx.ID_ANY,
                                     u"智能模型管理", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        bSizerforpanel5.Add(self.m_button181, 0, wx.ALL, 5)

        self.m_button191 = wx.Button(self.m_panel5forStatusbar, wx.ID_ANY,
                                     u"校准准则", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        bSizerforpanel5.Add(self.m_button191, 0, wx.ALL, 5)

        self.m_button201 = wx.Button(self.m_panel5forStatusbar, wx.ID_ANY,
                                     u"智能优化校准", wx.DefaultPosition,
                                     wx.DefaultSize, 0)
        bSizerforpanel5.Add(self.m_button201, 0, wx.ALL, 5)

        self.m_panel5forStatusbar.SetSizer(bSizerforpanel5)
        self.m_panel5forStatusbar.Layout()
        bSizerforpanel5.Fit(self.m_panel5forStatusbar)
        self.statusBar.AddPage(self.m_panel5forStatusbar, u"智能校准分析", False)

        bSizerforwholepanel.Add(self.statusBar, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel10 = wx.Panel(self.m_panelfor, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer5 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_treeCtrl4 = wx.TreeCtrl(self.m_panel10, wx.ID_ANY,
                                       wx.DefaultPosition, wx.DefaultSize,
                                       wx.TR_DEFAULT_STYLE)
        """左侧树状图"""
        root = self.m_treeCtrl4.AddRoot('程序员')
        os = self.m_treeCtrl4.AppendItem(root, '操作系统')
        pl = self.m_treeCtrl4.AppendItem(root, '编程语言')
        tk = self.m_treeCtrl4.AppendItem(root, '工具套件')
        self.m_treeCtrl4.AppendItem(os, 'Linux')
        self.m_treeCtrl4.AppendItem(os, 'FreeBSD')
        self.m_treeCtrl4.AppendItem(os, 'OpenBSD')
        self.m_treeCtrl4.AppendItem(os, 'NetBSD')
        self.m_treeCtrl4.AppendItem(os, 'Solaris')
        cl = self.m_treeCtrl4.AppendItem(pl, '编译语言')
        sl = self.m_treeCtrl4.AppendItem(pl, '脚本语言')
        self.m_treeCtrl4.AppendItem(cl, 'Java')
        self.m_treeCtrl4.AppendItem(cl, 'C++')
        self.m_treeCtrl4.AppendItem(cl, 'C')
        self.m_treeCtrl4.AppendItem(cl, 'Pascal')
        self.m_treeCtrl4.AppendItem(sl, 'Ruby')
        self.m_treeCtrl4.AppendItem(sl, 'Tcl')
        self.m_treeCtrl4.AppendItem(sl, 'PHP')
        self.m_treeCtrl4.AppendItem(sl, 'Python')
        self.m_treeCtrl4.AppendItem(tk, 'Qt')
        self.m_treeCtrl4.AppendItem(tk, 'MFC')
        self.m_treeCtrl4.AppendItem(tk, 'wxPython')
        self.m_treeCtrl4.AppendItem(tk, 'GTK+')
        self.m_treeCtrl4.AppendItem(tk, 'Swing')
        self.m_treeCtrl4.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnSelChanged, id=1)

        bSizer5.Add(self.m_treeCtrl4, 1, wx.ALL | wx.EXPAND, 5)

        self.m_auinotebook1 = wx.aui.AuiNotebook(self.m_panel10, wx.ID_ANY,
                                                 wx.DefaultPosition,
                                                 wx.DefaultSize,
                                                 wx.aui.AUI_NB_DEFAULT_STYLE)
        self.m_panel19 = wx.Panel(self.m_auinotebook1, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer17 = wx.BoxSizer(wx.VERTICAL)

        self.m_auinotebook1.AddPage(self.m_panel19, u"模型管理", False,
                                    wx.NullBitmap)
        self.m_auinotebook1.DeletePage(
            self.m_auinotebook1.GetPageIndex(self.m_panel19))

        self.m_panel20 = wx.Panel(self.m_auinotebook1, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer18 = wx.BoxSizer(wx.VERTICAL)

        self.m_auinotebook1.AddPage(self.m_panel20, u"不确定性建模", False,
                                    wx.NullBitmap)
        self.m_auinotebook1.DeletePage(
            self.m_auinotebook1.GetPageIndex(self.m_panel20))

        self.m_panel21 = wx.Panel(self.m_auinotebook1, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer19 = wx.BoxSizer(wx.VERTICAL)

        self.m_auinotebook1.AddPage(self.m_panel21, u"不确定性传播分析", False,
                                    wx.NullBitmap)
        self.m_auinotebook1.DeletePage(
            self.m_auinotebook1.GetPageIndex(self.m_panel21))

        self.m_panel22 = wx.Panel(self.m_auinotebook1, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer20 = wx.BoxSizer(wx.VERTICAL)

        self.m_auinotebook1.AddPage(self.m_panel22, u"仿真验证分析", True,
                                    wx.NullBitmap)
        self.m_auinotebook1.DeletePage(
            self.m_auinotebook1.GetPageIndex(self.m_panel22))

        self.m_panel23 = wx.Panel(self.m_auinotebook1, wx.ID_ANY,
                                  wx.DefaultPosition, wx.DefaultSize,
                                  wx.TAB_TRAVERSAL)
        bSizer13 = wx.BoxSizer(wx.VERTICAL)
        self.m_auinotebook1.AddPage(self.m_panel23, u"智能校准分析", False,
                                    wx.NullBitmap)
        self.m_auinotebook1.DeletePage(
            self.m_auinotebook1.GetPageIndex(self.m_panel23))

        bSizer5.Add(self.m_auinotebook1, 4, wx.EXPAND | wx.ALL, 5)

        self.m_panel10.SetSizer(bSizer5)
        self.m_panel10.Layout()
        bSizer5.Fit(self.m_panel10)
        bSizerforwholepanel.Add(self.m_panel10, 4, wx.EXPAND | wx.ALL, 5)

        self.m_panelfor.SetSizer(bSizerforwholepanel)
        self.m_panelfor.Layout()
        bSizerforwholepanel.Fit(self.m_panelfor)
        bSizerforwholeframe.Add(self.m_panelfor, 1, wx.EXPAND | wx.ALL, 5)

        self.SetSizer(bSizerforwholeframe)
        self.Layout()
        self.m_statusBar3 = self.CreateStatusBar(1, 0, wx.ID_ANY)

        self.Centre(wx.BOTH)

        # Connect Events
        self.m_panel1forStatusbar.Bind(wx.EVT_LEFT_DCLICK,
                                       self.m_panel1forStatusbarOnLeftDClick)
        self.m_panel2forStatusbar.Bind(wx.EVT_LEFT_DCLICK,
                                       self.m_panel2forStatusbarOnLeftDClick)
コード例 #29
0
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_BASICINTERFACEFRAME,
              name=u'BasicInterfaceFrame', parent=prnt, pos=wx.Point(1745, 92),
              size=wx.Size(1448, 874), style=wx.DEFAULT_FRAME_STYLE,
              title=u'Basic Interface')
        self._init_utils()
        self.SetClientSize(wx.Size(1440, 840))
        self.SetMenuBar(self.InterfaceMenuBar)
        self.Bind(wx.EVT_CLOSE, self.OnBasicInterfaceFrameClose)

        self.InterfaceStatusBar = wx.StatusBar(id=wxID_BASICINTERFACEFRAMEINTERFACESTATUSBAR,
              name=u'InterfaceStatusBar', parent=self, style=0)
        self.InterfaceStatusBar.SetHelpText(u'Status')
        self.InterfaceStatusBar.SetLabel(u'')
        self._init_coll_InterfaceStatusBar_Fields(self.InterfaceStatusBar)
        self.SetStatusBar(self.InterfaceStatusBar)

        self.InterfaceToolBar = wx.ToolBar(id=wxID_BASICINTERFACEFRAMEINTERFACETOOLBAR,
              name=u'InterfaceToolBar', parent=self, pos=wx.Point(0, 0),
              size=wx.Size(1440, 40),
              style=wx.TAB_TRAVERSAL | wx.TB_3DBUTTONS | wx.TB_HORIZONTAL | wx.MAXIMIZE_BOX | wx.NO_BORDER)
        self.InterfaceToolBar.SetHelpText(u'Launch Boa Contstructor')
        self.InterfaceToolBar.SetToolTipString(u'InterfaceToolBar')
        self.InterfaceToolBar.SetToolBitmapSize(wx.Size(30, 30))
        self.InterfaceToolBar.SetToolPacking(0)
        self.InterfaceToolBar.SetToolSeparation(1)
        self.SetToolBar(self.InterfaceToolBar)

        self.MainPanel = wx.Panel(id=wxID_BASICINTERFACEFRAMEMAINPANEL,
              name=u'MainPanel', parent=self, pos=wx.Point(1, 1),
              size=wx.Size(1438, 838), style=wx.TAB_TRAVERSAL)

        self.LeftInterfacePanel = wx.Panel(id=wxID_BASICINTERFACEFRAMELEFTINTERFACEPANEL,
              name=u'LeftInterfacePanel', parent=self.MainPanel, pos=wx.Point(2,
              2), size=wx.Size(1355, 834), style=wx.TAB_TRAVERSAL)

        self.RightControlPanel = wx.Panel(id=wxID_BASICINTERFACEFRAMERIGHTCONTROLPANEL,
              name=u'RightControlPanel', parent=self.MainPanel,
              pos=wx.Point(1361, 2), size=wx.Size(75, 834),
              style=wx.TAB_TRAVERSAL)
        self.RightControlPanel.SetBackgroundColour(wx.Colour(192, 192, 192))

        self.LowerControlPanel = wx.Panel(id=wxID_BASICINTERFACEFRAMELOWERCONTROLPANEL,
              name=u'LowerControlPanel', parent=self.LeftInterfacePanel,
              pos=wx.Point(2, 808), size=wx.Size(1351, 24),
              style=wx.TAB_TRAVERSAL)
        self.LowerControlPanel.SetBackgroundColour(wx.Colour(0, 255, 128))

        self.UpperInterfacePanel = wx.Panel(id=wxID_BASICINTERFACEFRAMEUPPERINTERFACEPANEL,
              name=u'UpperInterfacePanel', parent=self.LeftInterfacePanel,
              pos=wx.Point(2, 2), size=wx.Size(1351, 640),
              style=wx.TAB_TRAVERSAL)
        self.UpperInterfacePanel.SetBackgroundColour(wx.Colour(128, 128, 128))
        self.UpperInterfacePanel.SetHelpText(u'UpperInterfacePanel')

        self.LowerInterfacePanel = wx.Panel(id=wxID_BASICINTERFACEFRAMELOWERINTERFACEPANEL,
              name=u'LowerInterfacePanel', parent=self.LeftInterfacePanel,
              pos=wx.Point(2, 646), size=wx.Size(1351, 158),
              style=wx.TAB_TRAVERSAL)
        self.LowerInterfacePanel.SetBackgroundColour(wx.Colour(192, 192, 192))

        self.UpperInterface = wx.Notebook(id=wxID_BASICINTERFACEFRAMEUPPERINTERFACE,
              name=u'UpperInterface', parent=self.UpperInterfacePanel,
              pos=wx.Point(2, 2), size=wx.Size(1347, 636), style=0)

        self.LowerInterface = wx.Treebook(id=wxID_BASICINTERFACEFRAMELOWERINTERFACE,
              name=u'LowerInterface', parent=self.LowerInterfacePanel,
              pos=wx.Point(2, 2), size=wx.Size(1347, 154), style=0)
        self.LowerInterface.Bind(wx.EVT_TREEBOOK_PAGE_CHANGED,
              self.OnLowerInterfaceTreebookPageChanged,
              id=wxID_BASICINTERFACEFRAMELOWERINTERFACE)

        self.Display = IEPanel(id=wxID_BASICINTERFACEFRAMEDISPLAY,
              name=u'Display', parent=self.UpperInterface, pos=wx.Point(0, 0),
              size=wx.Size(1339, 610), style=wx.TAB_TRAVERSAL)

        self.Shell = ShellPanel(id=wxID_BASICINTERFACEFRAMESHELL, name=u'Shell',
              parent=self.LowerInterface, pos=wx.Point(0, 0), size=wx.Size(1281,
              154), style=wx.TAB_TRAVERSAL)

        self.button1 = wx.Button(id=wxID_BASICINTERFACEFRAMEBUTTON1,
              label=u'Java Script Example', name='button1',
              parent=self.LowerControlPanel, pos=wx.Point(0, 0),
              size=wx.Size(136, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_BASICINTERFACEFRAMEBUTTON1)

        self.button2 = wx.Button(id=wxID_BASICINTERFACEFRAMEBUTTON2,
              label='button2', name='button2', parent=self.LowerControlPanel,
              pos=wx.Point(136, 0), size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnButton2Button,
              id=wxID_BASICINTERFACEFRAMEBUTTON2)

        self.button3 = wx.Button(id=wxID_BASICINTERFACEFRAMEBUTTON3,
              label='button3', name='button3', parent=self.LowerControlPanel,
              pos=wx.Point(211, 0), size=wx.Size(75, 23), style=0)

        self.ExecuteButton = wx.Button(id=wxID_BASICINTERFACEFRAMEEXECUTEBUTTON,
              label=u'Execute IEPanel.py', name=u'ExecuteButton',
              parent=self.LowerControlPanel, pos=wx.Point(286, 0),
              size=wx.Size(111, 23), style=0)
        self.ExecuteButton.Bind(wx.EVT_BUTTON, self.OnExecuteButtonButton,
              id=wxID_BASICINTERFACEFRAMEEXECUTEBUTTON)

        self.ReplaceRightControlButtton = wx.Button(id=wxID_BASICINTERFACEFRAMEREPLACERIGHTCONTROLBUTTTON,
              label=u'Replace Right Control Panel',
              name=u'ReplaceRightControlButtton', parent=self.LowerControlPanel,
              pos=wx.Point(397, 0), size=wx.Size(180, 24), style=0)
        self.ReplaceRightControlButtton.Bind(wx.EVT_BUTTON,
              self.OnReplaceRightControlButttonButton,
              id=wxID_BASICINTERFACEFRAMEREPLACERIGHTCONTROLBUTTTON)

        self.StatesButton = wx.Button(id=wxID_BASICINTERFACEFRAMESTATESBUTTON,
              label=u'States', name=u'StatesButton',
              parent=self.RightControlPanel, pos=wx.Point(0, 0),
              size=wx.Size(75, 23), style=0)
        self.StatesButton.Bind(wx.EVT_BUTTON, self.OnStatesButtonButton,
              id=wxID_BASICINTERFACEFRAMESTATESBUTTON)

        self.InstrumentsButton = wx.Button(id=wxID_BASICINTERFACEFRAMEINSTRUMENTSBUTTON,
              label=u'Instruments', name=u'InstrumentsButton',
              parent=self.RightControlPanel, pos=wx.Point(0, 23),
              size=wx.Size(75, 23), style=0)
        self.InstrumentsButton.Bind(wx.EVT_BUTTON,
              self.OnInstrumentsButtonButton,
              id=wxID_BASICINTERFACEFRAMEINSTRUMENTSBUTTON)

        self.LogsPanel = SimpleLogLowerInterfacePanel(id=wxID_BASICINTERFACEFRAMELOGSPANEL,
              name=u'LogsPanel', parent=self.LowerInterface, pos=wx.Point(0, 0),
              size=wx.Size(1281, 154), style=wx.TAB_TRAVERSAL)

        self.ArbDBPanel = SimpleArbDBLowerInterfacePanel(id=wxID_BASICINTERFACEFRAMEARBDBPANEL,
              name=u'ArbDBPanel', parent=self.LowerInterface, pos=wx.Point(0,
              0), size=wx.Size(1281, 154), style=wx.TAB_TRAVERSAL)

        self.EndOfTheDayButton = wx.Button(id=wxID_BASICINTERFACEFRAMEENDOFTHEDAYBUTTON,
              label=u'End of The Day Log', name=u'EndOfTheDayButton',
              parent=self.LowerControlPanel, pos=wx.Point(577, 0),
              size=wx.Size(103, 23), style=0)
        self.EndOfTheDayButton.Bind(wx.EVT_BUTTON,
              self.OnEndOfTheDayButtonButton,
              id=wxID_BASICINTERFACEFRAMEENDOFTHEDAYBUTTON)

        self.VisaDialogButton = wx.Button(id=wxID_BASICINTERFACEFRAMEVISADIALOGBUTTON,
              label=u'VISA Communicator', name=u'VisaDialogButton',
              parent=self.LowerControlPanel, pos=wx.Point(680, 0),
              size=wx.Size(184, 23), style=0)
        self.VisaDialogButton.Bind(wx.EVT_BUTTON, self.OnVisaDialogButtonButton,
              id=wxID_BASICINTERFACEFRAMEVISADIALOGBUTTON)

        self._init_coll_InterfaceToolBar_Tools(self.InterfaceToolBar)
        self._init_coll_UpperInterface_Pages(self.UpperInterface)
        self._init_coll_LowerInterface_Pages(self.LowerInterface)

        self._init_sizers()
コード例 #30
0
    def __init__(self, resizable=True, showLine=True):
        self.result = None
        self.showLine = showLine
        self.resizable = resizable
        addTestButton = False
        treeItem = self.treeItem
        name = treeItem.GetTypeName()
        firstParagraph, self.description = SplitFirstParagraph(
            treeItem.GetDescription())
        size = (450, 300)
        if isinstance(treeItem, eg.PluginItem):
            title = eg.text.General.settingsPluginCaption
        elif isinstance(treeItem, eg.EventItem):
            title = eg.text.General.settingsEventCaption
            size = (450, 150)
        else:
            title = eg.text.General.settingsActionCaption
            addTestButton = True

        dialogStyle = wx.CAPTION | wx.CLOSE_BOX | wx.SYSTEM_MENU
        if resizable:
            dialogStyle |= wx.RESIZE_BORDER | wx.MAXIMIZE_BOX
        eg.TaskletDialog.__init__(self,
                                  eg.document.frame,
                                  -1,
                                  title,
                                  style=dialogStyle)

        self.notebook = wx.Notebook(self)

        self.buttonRow = eg.ButtonRow(self,
                                      (wx.ID_OK, wx.ID_CANCEL, wx.ID_APPLY),
                                      resizable)
        testButton = None
        if addTestButton:
            testButton = wx.Button(self, -1, eg.text.General.test)
            self.buttonRow.Add(testButton)
            testButton.Bind(wx.EVT_BUTTON, self.OnTestButton)

        self.buttonRow.testButton = testButton

        self.Bind(wx.EVT_CLOSE, self.OnCancel)
        self.Bind(wx.EVT_MAXIMIZE, self.OnMaximize)

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.headerBox = eg.HeaderBox(
            self, name, firstParagraph, treeItem.icon,
            treeItem.url if hasattr(treeItem, "url") else None)
        mainSizer.SetMinSize(size)
        mainSizer.AddMany((
            (self.headerBox, 0, wx.EXPAND, 0),
            (wx.StaticLine(self), 0, wx.EXPAND | wx.ALIGN_CENTER, 0),
            (self.notebook, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER, 5),
        ))
        self.mainSizer = mainSizer

        def ShowHelp(dummyEvent):
            self.treeItem.ShowHelp(self)

        wx.EVT_MENU(self, wx.ID_HELP, ShowHelp)

        self.SetAcceleratorTable(
            wx.AcceleratorTable([
                (wx.ACCEL_NORMAL, wx.WXK_F1, wx.ID_HELP),
            ]))