Esempio n. 1
0
 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)
Esempio n. 2
0
 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())