def CreateDeviceWidgets(self): """ Create widgets associated with loaded physical devices. Devices are either defined in the device configuration file or detected with the hardware.ScanHardware function. """ # destroy existing widgets, if any if hasattr(self,'split_window'): if self.split_window!=None: sizer = self.split_window.Parent.GetSizer() if sizer!=None: # if the splitter window is in a sizer, replace with plot notebook sizer.Replace(self.split_window,self.notebook) self.notebook.Reparent(self.splitter1) self.split_window.Destroy() # create device widgets self.device_widgets = hardware.get_widgets(self.splitter1) if len(self.device_widgets)>0: # create splitter window and widget notebook self.split_window = Splitter(self.splitter1,-1,style=wx.SP_LIVE_UPDATE,proportion=0.85) self.nb_widgets = aui.AuiNotebook(self.split_window,style=aui.AUI_NB_TAB_SPLIT|aui.AUI_NB_TAB_MOVE|aui.AUI_NB_BOTTOM) ap = aui.AuiSimpleTabArt() self.nb_widgets.SetArtProvider(ap) mgr = self.nb_widgets.GetAuiManager() mgr.SetFlags(aui.AUI_MGR_ALLOW_ACTIVE_PANE|aui.AUI_MGR_DEFAULT) # replace plot notebook with splitter window in containing sizer sizer = self.notebook.Parent.GetSizer() if sizer!=None: sizer.Replace(self.notebook,self.split_window) # place plot notebook in splitter window self.notebook.Reparent(self.split_window) self.split_window.SplitHorizontally(self.notebook,self.nb_widgets) self.split_window.SetMinimumPaneSize(100) # fill widget notebook for x in self.device_widgets: x.Reparent(self.nb_widgets) self.nb_widgets.AddPage(x,x.title) else: self.split_window = None self.nb_widgets = None # refresh interface if self.panel.GetSizer()!=None: self.panel.SetSizerAndFit(self.panel.GetSizer()) if self.IsMaximized(): self.Maximize(False) self.Maximize(True)
def CreateDeviceWidgets(self): """ Create widgets associated with loaded physical devices. Devices are either defined in the device configuration file or detected with the hardware.ScanHardware function. """ # destroy existing widgets, if any if hasattr(self,'split_window'): if self.split_window!=None: sizer = self.split_window.Parent.GetSizer() if sizer!=None: # if the splitter window is in a sizer, replace with plot notebook sizer.Replace(self.split_window,self.notebook) self.notebook.Reparent(self.panel) self.split_window.Destroy() # create device widgets self.device_widgets = hardware.get_widgets(self.panel) if len(self.device_widgets)>0: # create splitter window and widget notebook self.split_window = Splitter(self.panel,-1,style=wx.SP_LIVE_UPDATE,proportion=0.85) self.nb_widgets = wx.Notebook(self.split_window,-1,style=0) # replace plot notebook with splitter window in containing sizer sizer = self.notebook.Parent.GetSizer() if sizer!=None: sizer.Replace(self.notebook,self.split_window) # place plot notebook in splitter window self.notebook.Reparent(self.split_window) self.split_window.SplitHorizontally(self.notebook,self.nb_widgets) self.split_window.SetMinimumPaneSize(100) # fill widget notebook for x in self.device_widgets: x.Reparent(self.nb_widgets) self.nb_widgets.AddPage(x,x.title) else: self.split_window = None self.nb_widgets = None # refresh interface if self.panel.GetSizer()!=None: self.panel.SetSizerAndFit(self.panel.GetSizer())