def __init__(self, parent): wx.Panel.__init__(self, parent) try: default_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENUBAR) except AttributeError: default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) self.SetBackgroundColour(default_colour) # Fold panel and its style settings # FIXME: If we dont insert a value in size or if we set wx.DefaultSize, # the fold_panel doesnt show. This means that, for some reason, Sizer # is not working properly in this panel. It might be on some child or # parent panel. Perhaps we need to insert the item into the sizer also... # Study this. fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition, wx.DefaultSize, 0, fpb.FPB_SINGLE_FOLD) # Fold panel style style = fpb.CaptionBarStyle() style.SetCaptionStyle(fpb.CAPTIONBAR_GRADIENT_V) style.SetFirstColour(default_colour) style.SetSecondColour(default_colour) # Fold 1 - Surface properties item = fold_panel.AddFoldPanel(_("Surface properties"), collapsed=True) fold_panel.ApplyCaptionStyle(item, style) fold_panel.AddFoldPanelWindow(item, SurfaceProperties(item), spacing=0, leftSpacing=0, rightSpacing=0) # Fold 2 - Surface tools item = fold_panel.AddFoldPanel(_("Advanced options"), collapsed=True) fold_panel.ApplyCaptionStyle(item, style) fold_panel.AddFoldPanelWindow(item, SurfaceTools(item), spacing=0, leftSpacing=0, rightSpacing=0) #fold_panel.AddFoldPanelWindow(item, QualityAdjustment(item), Spacing= 0, # leftSpacing=0, rightSpacing=0) #fold_panel.Expand(fold_panel.GetFoldPanel(1)) self.fold_panel = fold_panel self.__bind_evt() # Panel sizer to expand fold panel sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(fold_panel, 1, wx.GROW | wx.EXPAND) sizer.Fit(self) self.SetSizer(sizer) self.Update() self.SetAutoLayout(1) fold_panel.Expand(fold_panel.GetFoldPanel(1)) self.ResizeFPB() fold_panel.Expand(fold_panel.GetFoldPanel(0))
def test_lib_agw_foldpanelbarCtor(self): panel_bar = FPB.FoldPanelBar(self.frame, -1, agwStyle=FPB.FPB_VERTICAL) fold_panel = panel_bar.AddFoldPanel("Thing") thing = wx.TextCtrl(fold_panel, -1, size=(400, -1), style=wx.TE_MULTILINE) panel_bar.AddFoldPanelWindow(fold_panel, thing)
def __init__(self, parent): wx.Panel.__init__(self, parent, size=(150, -1)) fold_panel = fpb.FoldPanelBar(self, -1, style=FPB_DEFAULT_STYLE, agwStyle=fpb.FPB_COLLAPSE_TO_BOTTOM) self.fold_panel = fold_panel self.enable_items = [] self.overwrite = False gbs = wx.GridBagSizer(5, 5) gbs.AddGrowableCol(0, 1) self.gbs = gbs sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(gbs, 1, wx.GROW | wx.EXPAND) self.SetSizer(sizer) image_list = wx.ImageList(16, 16) image_list.Add(GetExpandedIconBitmap()) image_list.Add(GetCollapsedIconBitmap()) # Fold 1 - Data item = fold_panel.AddFoldPanel(_("Data"), collapsed=False, foldIcons=image_list) style = fold_panel.GetCaptionStyle(item) col = style.GetFirstColour() self.enable_items.append(item) #npanel = wx.Panel(self, -1) self.npanel = nb.NotebookPanel(item) self.__calc_best_size(self.npanel) fold_panel.AddFoldPanelWindow( item, self.npanel, #fpb.FPB_ALIGN_WIDTH, #Spacing= 0, leftSpacing=0, rightSpacing=0) gbs.AddGrowableRow(0, 1) gbs.Add(fold_panel, (0, 0), flag=wx.EXPAND) gbs.Layout() item.ResizePanel() sizer.Fit(self) self.Fit() self.SetStateProjectClose() self.__bind_events()
def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "FoldPanelBar Demo") text_ctrl = wx.TextCtrl(self, -1, size=(400, 100), style=wx.TE_MULTILINE) panel_bar = fpb.FoldPanelBar(self, -1, agwStyle=fpb.FPB_VERTICAL) fold_panel = panel_bar.AddFoldPanel("Thing") thing = wx.TextCtrl(fold_panel, -1, size=(400, -1), style=wx.TE_MULTILINE) panel_bar.AddFoldPanelWindow(fold_panel, thing) main_sizer = wx.BoxSizer(wx.VERTICAL) main_sizer.Add(text_ctrl, 1, wx.EXPAND) main_sizer.Add(panel_bar, 1, wx.EXPAND) self.SetSizer(main_sizer)
def __init__(self, parent, id=-1, style=wx.EXPAND | wx.TAB_TRAVERSAL): wx.Panel.__init__(self, parent=parent, id=id, style=style) self.bar = fpb.FoldPanelBar(self, -1, style=fpb.FPB_HORIZONTAL) self.fund_fp = self.bar.AddFoldPanel(_('Information')) self.bib_fp = self.bar.AddFoldPanel(_('Bibliographic Info')) self.web_fp = self.bar.AddFoldPanel(_('Web Info')) self.file_fp = self.bar.AddFoldPanel(_('File Info')) self.fund_win = FundInfoPanel(self.fund_fp, -1, bigparent=self) self.web_win = WebInfoPanel(self.web_fp, -1) self.bib_win = BibInfoPanel(self.bib_fp, -1, bigparent=self) self.file_win = FileInfoPanel(self.file_fp, -1) self.bar.AddFoldPanelWindow(self.fund_fp, self.fund_win) self.bar.AddFoldPanelWindow(self.web_fp, self.web_win) self.bar.AddFoldPanelWindow(self.bib_fp, self.bib_win) self.bar.AddFoldPanelWindow(self.file_fp, self.file_win) self._do_layout() self._do_bindings()
def test_lib_agw_foldpanelbarMethods(self): panel_bar = FPB.FoldPanelBar(self.frame, -1, agwStyle=FPB.FPB_VERTICAL) fold_panel = panel_bar.AddFoldPanel("Thing") thing = wx.TextCtrl(fold_panel, -1, size=(400, -1), style=wx.TE_MULTILINE) panel_bar.AddFoldPanelWindow(fold_panel, thing) # Some methods tests... self.assertTrue(panel_bar.IsVertical()) self.assertEqual(panel_bar.GetCount(), 1) # Separators do not count as they are not "real" windows panel_bar.AddFoldPanelSeparator(fold_panel) self.assertEqual(panel_bar.GetCount(), 1) foldpanel = panel_bar.GetFoldPanel(0) self.assertTrue(foldpanel.IsExpanded()) panel_bar.Collapse(foldpanel) self.assertTrue(not foldpanel.IsExpanded())
def UpdatePanelContents(self, selected_node): self.DestroyChildren() if selected_node != None: panel_bar = fpb.FoldPanelBar(self, -1, agwStyle=fpb.FPB_VERTICAL) # fold_panel = panel_bar.AddFoldPanel(selected_node._label) # #thing = wx.TextCtrl(fold_panel, -1, size=(400, -1), style=wx.TE_MULTILINE) # selected_node # Node Properties UI selected_node.NodePanelUI(self, panel_bar) #thing2 = wx.TextCtrl(fold_panel2, -1, size=(400, -1), style=wx.TE_MULTILINE) #main_sizer.Add(st, flag=wx.EXPAND|wx.BOTH, border=20) #main_sizer.Add(panel_bar, 1, wx.EXPAND) self._mainSizer.Add(panel_bar, 1, wx.EXPAND | wx.ALL) style = fpb.CaptionBarStyle() style.SetCaptionFont(self.Parent.GetFont()) style.SetCaptionColour(wx.Colour("#fff")) style.SetFirstColour(wx.Colour('#424242')) style.SetSecondColour(wx.Colour('#424242')) panel_bar.ApplyCaptionStyleAll(style) else: # Delete the window if the node is not selected self._mainSizer.Clear(delete_windows=True) self.AUIManager.Update() self.Parent.Refresh() self.Parent.Update()
def __init__(self, parent): wx.Panel.__init__(self, parent) try: default_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENUBAR) except AttributeError: default_colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENUBAR) self.SetBackgroundColour(default_colour) # Fold panel and its style settings # FIXME: If we dont insert a value in size or if we set wx.DefaultSize, # the fold_panel doesnt show. This means that, for some reason, Sizer # is not working properly in this panel. It might be on some child or # parent panel. Perhaps we need to insert the item into the sizer also... # Study this. #gbs = wx.GridBagSizer() #gbs.AddGrowableRow(0, 1) #gbs.AddGrowableCol(0, 1) #self.gbs = gbs self.last_size = None # Panel sizer to expand fold panel sizer = wx.BoxSizer(wx.VERTICAL) #sizer.Add(gbs, 1, wx.GROW|wx.EXPAND) self.SetSizer(sizer) fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition, wx.DefaultSize, 0, fpb.FPB_SINGLE_FOLD) self.fold_panel = fold_panel # Fold panel style style = fpb.CaptionBarStyle() style.SetCaptionStyle(fpb.CAPTIONBAR_GRADIENT_V) style.SetFirstColour(default_colour) style.SetSecondColour(default_colour) # Fold 1 - Mask properties item = fold_panel.AddFoldPanel(_("Mask properties"), collapsed=True) self.mask_prop_panel = MaskProperties(item) fold_panel.ApplyCaptionStyle(item, style) fold_panel.AddFoldPanelWindow(item, self.mask_prop_panel, spacing=0, leftSpacing=0, rightSpacing=0) # Fold 2 - Advanced edition tools item = fold_panel.AddFoldPanel(_("Manual edition"), collapsed=True) etw = EditionTools(item) fold_panel.ApplyCaptionStyle(item, style) fold_panel.AddFoldPanelWindow(item, etw, spacing=0, leftSpacing=0, rightSpacing=0) self.__id_editor = item.GetId() self.last_panel_opened = None # Fold 3 - Watershed item = fold_panel.AddFoldPanel(_("Watershed"), collapsed=True) wtw = WatershedTool(item) fold_panel.ApplyCaptionStyle(item, style) fold_panel.AddFoldPanelWindow(item, wtw, spacing=0, leftSpacing=0, rightSpacing=0) self.__id_watershed = item.GetId() sizer.Add(fold_panel, 1, wx.EXPAND) fold_panel.Expand(fold_panel.GetFoldPanel(2)) self.ResizeFPB() fold_panel.Expand(fold_panel.GetFoldPanel(0)) sizer.Layout() self.Fit() self.fold_panel = fold_panel self.last_style = None self.__bind_evt() self.__bind_pubsub_evt()
def CreateIncarLeftFoldPanel(self, fpb_flags): # delete earlier panel self._leftWindow1.DestroyChildren() # recreate the foldpanelbar self._pnl = fpb.FoldPanelBar(self._leftWindow1, -1, wx.DefaultPosition, wx.Size(-1, -1), fpb.FPB_DEFAULT_STYLE, fpb_flags) #Create fold panel of Output Writing outputTagFoldPanel = self._pnl.AddFoldPanel("Tags of Output Writing", collapsed=False) #add LCHARG # step 1 : create static text self._pnl.AddFoldPanelWindow( outputTagFoldPanel, wx.StaticText(outputTagFoldPanel, -1, "LCHARG:Write Charge density"), fpb.FPB_ALIGN_WIDTH, 5, 20) #step 2 : create choice self._lchargChoice = wx.Choice(outputTagFoldPanel, -1, (10, 10), choices=LCHARG_LIST, name="LCHARG") self._lchargChoice.SetSelection(0) #step 3 : add choice to Fold Panel self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._lchargChoice, fpb.FPB_ALIGN_WIDTH, 2, 20) # add ELF self._pnl.AddFoldPanelWindow( outputTagFoldPanel, wx.StaticText(outputTagFoldPanel, -1, "LELF:Write Electron Localization Function"), fpb.FPB_ALIGN_WIDTH, 5, 20) self._lelfChoice = wx.Choice(outputTagFoldPanel, -1, (10, 10), choices=LELF_LIST, name="LELF") self._lelfChoice.SetSelection(1) self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._lelfChoice, fpb.FPB_ALIGN_WIDTH, 2, 20) #add LVTOT self._pnl.AddFoldPanelWindow( outputTagFoldPanel, wx.StaticText(outputTagFoldPanel, -1, "LVTOT:Write Electric Potential "), fpb.FPB_ALIGN_WIDTH, 5, 20) self._lvtotChoice = wx.Choice(outputTagFoldPanel, -1, (10, 10), choices=LVTOT_LIST, name="LVTOT") self._lvtotChoice.SetSelection(1) self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._lvtotChoice, fpb.FPB_ALIGN_WIDTH, 2, 20) # add LWAVE self._pnl.AddFoldPanelWindow( outputTagFoldPanel, wx.StaticText(outputTagFoldPanel, -1, "LWAVE:Write WAVECAR"), fpb.FPB_ALIGN_WIDTH, 5, 20) self._lwaveChoice = wx.Choice(outputTagFoldPanel, -1, (10, 10), choices=LWAVE_LIST, name="LWAVE") self._lwaveChoice.SetSelection(0) self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._lwaveChoice, fpb.FPB_ALIGN_WIDTH, 2, 20) #add NWRITE RadioBox self._nwriteRadioBox = wx.RadioBox(outputTagFoldPanel, -1, "NWRITE:OUTCAR verbosity flag", wx.DefaultPosition, wx.DefaultSize, NWRITE_LIST, 4, wx.RA_SPECIFY_COLS, name="NWRITE") self._nwriteRadioBox.SetItemToolTip(0, Tag_Tips["NWRITE"][0]) self._nwriteRadioBox.SetItemToolTip(1, Tag_Tips["NWRITE"][1]) self._nwriteRadioBox.SetItemToolTip(2, Tag_Tips["NWRITE"][2]) self._nwriteRadioBox.SetItemToolTip(3, Tag_Tips["NWRITE"][3]) self._nwriteRadioBox.SetSelection(2) self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._nwriteRadioBox, fpb.FPB_ALIGN_WIDTH, 2, 20) #add LORBIT RadioBox and bind it with EVT_RADIOBOX self._lorbitRadioBox = wx.RadioBox(outputTagFoldPanel, -1, "LORBIT:Projected DOSCAR&PROOUT", wx.DefaultPosition, wx.DefaultSize, LORBIT_LIST, 4, wx.RA_SPECIFY_COLS, name="LORBIT") self._lorbitRadioBox.SetItemToolTip(0, Tag_Tips["LORBIT"][0]) self._lorbitRadioBox.SetItemToolTip(1, Tag_Tips["LORBIT"][1]) self._lorbitRadioBox.SetItemToolTip(2, Tag_Tips["LORBIT"][2]) self._lorbitRadioBox.SetItemToolTip(3, Tag_Tips["LORBIT"][3]) self._lorbitRadioBox.SetItemToolTip(4, Tag_Tips["LORBIT"][4]) self._lorbitRadioBox.SetSelection(0) self._pnl.AddFoldPanelWindow(outputTagFoldPanel, self._lorbitRadioBox, fpb.FPB_ALIGN_WIDTH, 2, 20) #add event listener self._lchargChoice.Bind(wx.EVT_CHOICE, self.EvtChoice) self._lelfChoice.Bind(wx.EVT_CHOICE, self.EvtChoice) self._lvtotChoice.Bind(wx.EVT_CHOICE, self.EvtChoice) self._lwaveChoice.Bind(wx.EVT_CHOICE, self.EvtChoice) self._lorbitRadioBox.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox) self._nwriteRadioBox.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox) #Create fold panel related to Ion movement IonMoveTagFoldPanel = self._pnl.AddFoldPanel("Tags of Ion Movement", collapsed=True) #add IBRION RadioBox self._ibrionRadioBox = wx.RadioBox(IonMoveTagFoldPanel, -1, "IBRION:how ions are moved", wx.DefaultPosition, wx.DefaultSize, IBRION_LIST, 5, wx.RA_SPECIFY_COLS, name="IBRION") self._ibrionRadioBox.SetItemToolTip(0, Tag_Tips["IBRION"][0]) self._ibrionRadioBox.SetItemToolTip(1, Tag_Tips["IBRION"][1]) self._ibrionRadioBox.SetItemToolTip(2, Tag_Tips["IBRION"][2]) self._ibrionRadioBox.SetItemToolTip(3, Tag_Tips["IBRION"][3]) self._ibrionRadioBox.SetItemToolTip(4, Tag_Tips["IBRION"][4]) self._lorbitRadioBox.SetSelection(0) self._pnl.AddFoldPanelWindow(IonMoveTagFoldPanel, self._ibrionRadioBox, fpb.FPB_ALIGN_WIDTH, 2, 20) #add event listener for IonMoveTagFoldPanel self._ibrionRadioBox.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox)
def __init__(self, parent): wx.Panel.__init__(self, parent) fold_panel = fpb.FoldPanelBar(self, -1, wx.DefaultPosition, wx.DefaultSize, FPB_DEFAULT_STYLE, fpb.FPB_SINGLE_FOLD) image_list = wx.ImageList(16, 16) image_list.Add(GetExpandedIconBitmap()) image_list.Add(GetCollapsedIconBitmap()) self.enable_items = [] self.overwrite = False session = ses.Session() print("session mode: ", session.mode) if int(session.mode) == const.MODE_RP: tasks = [(_("Load data"), importer.TaskPanel), (_("Select region of interest"), slice_.TaskPanel), (_("Configure 3D surface"), surface.TaskPanel), (_("Export data"), exporter.TaskPanel)] elif int(session.mode) == const.MODE_NAVIGATOR: tasks = [(_("Load data"), importer.TaskPanel), (_("Select region of interest"), slice_.TaskPanel), (_("Configure 3D surface"), surface.TaskPanel), (_("Export data"), exporter.TaskPanel), (_("Navigation system"), navigator.TaskPanel)] for i in range(len(tasks)): (name, panel) = tasks[i] # Create panel item = fold_panel.AddFoldPanel("%d. %s" % (i + 1, name), collapsed=True, foldIcons=image_list) style = fold_panel.GetCaptionStyle(item) col = style.GetFirstColour() # Add panel to FoldPanel fold_panel.AddFoldPanelWindow( item, panel(item), #Spacing= 0, leftSpacing=0, rightSpacing=0) # All items, except the first one, should be disabled if. # no data has been imported initially. if i != 0: self.enable_items.append(item) # If it is related to mask, this value should be kept # It is used as reference to set mouse cursor related to # slice editor. if name == _("Select region of interest"): self.__id_slice = item.GetId() elif name == _("Configure 3D surface"): self.__id_surface = item.GetId() fold_panel.Expand(fold_panel.GetFoldPanel(0)) self.fold_panel = fold_panel self.image_list = image_list sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(fold_panel, 1, wx.GROW | wx.EXPAND) self.sizer = sizer self.SetSizerAndFit(sizer) self.SetStateProjectClose() self.__bind_events()
def __init__(self, parent): super(RosterWindow, self).__init__(None, -1, 'Roster') self.rosterModel = Roster() self.SetClientSizeWH(300, 700) self.parent = parent self.foldPanelBar = fpb.FoldPanelBar(self, size=(300, 200), style=fpb.FPB_VERTICAL, agwStyle=fpb.FPB_SINGLE_FOLD) for i in range(0, len(self.rosterModel.students)): self.AddRosterItem(self.foldPanelBar, self.rosterModel.students[i]) self.foldPanelBarRemote = fpb.FoldPanelBar( self, size=(300, 200), style=fpb.FPB_VERTICAL, agwStyle=fpb.FPB_SINGLE_FOLD) for i in range(0, len(self.rosterModel.remoteList)): self.AddRosterItem(self.foldPanelBarRemote, self.rosterModel.remoteList[i]) attendance = wx.TextCtrl(self, size=(300, 80), style=wx.TE_CENTRE | wx.TE_READONLY) attendance.SetValue('Attendance \n\n Present: 3\n Absent: 11') attendance.SetForegroundColour(wx.WHITE) attendance.SetBackgroundColour('#0041C2') inClassText = wx.TextCtrl(self, size=(300, 30), style=wx.TE_CENTRE | wx.TE_READONLY) inClassText.SetValue('In Class') inClassText.SetBackgroundColour('#5CB3FF') remoteAccessText = wx.TextCtrl(self, size=(300, 30), style=wx.TE_CENTRE | wx.TE_READONLY) remoteAccessText.SetValue('Remote Access') remoteAccessText.SetBackgroundColour('#5CB3FF') remoteAccessPanel = wx.Panel(self, size=(300, 50), style=wx.TE_CENTRE) remoteAccessPanel.SetBackgroundColour('#FEEECC') addButton = wx.Button(self, label='Add Student', size=(150, 30)) addButton.Bind(wx.EVT_BUTTON, self.AddStudent) removeButton = wx.Button(self, label='Remove Student', size=(150, 30)) removeButton.Bind(wx.EVT_BUTTON, self.Remove) rosterVertSizer = wx.BoxSizer(wx.VERTICAL) rosterVertSizer.AddStretchSpacer(1) rosterVertSizer.Add(attendance, 1, wx.CENTER) rosterVertSizer.Add(inClassText, 1, wx.CENTER) rosterVertSizer.Add(self.foldPanelBar, 1, wx.CENTER) rosterVertSizer.Add(remoteAccessText, 1, wx.CENTER) rosterVertSizer.Add(self.foldPanelBarRemote, 1, wx.CENTER) rosterVertSizer.Add(remoteAccessPanel, 1, wx.CENTER) rosterHoriSizer = wx.BoxSizer(wx.HORIZONTAL) rosterHoriSizer.AddStretchSpacer(1) rosterHoriSizer.Add(addButton, 1, wx.CENTER) rosterHoriSizer.Add(removeButton, 1, wx.CENTER) rosterHoriSizer.AddStretchSpacer(1) rosterVertSizer.Add(rosterHoriSizer, 1, wx.CENTER) rosterVertSizer.AddStretchSpacer(1) self.Bind(wx.EVT_CLOSE, self.onClose) self.SetSizer(rosterVertSizer) self.SendSizeEvent() EClass.GetInstance().rosterModel = self.rosterModel
def ActionPanelSetup(self): #Setup of the FoldPanelBar on the right size of window self.panel_bar = fpb.FoldPanelBar(self.topSplitter, -1, pos=(0,0), size=(150,100),style= wx.BORDER_NONE,agwStyle=fpb.FPB_VERTICAL| fpb.FPB_SINGLE_FOLD) self.panel_bar.SetBackgroundColour("#161713") item = self.panel_bar.AddFoldPanel("Twitch", collapsed=True,cbstyle=self.csStyle) self.Sub = wx.Button(item,label="Sub Mode", name="SubMode",size=(-1,-1),style=wx.BORDER_NONE) self.Emote = wx.Button(item,label="Emote Mode",name="EmoteMode",size=(-1,-1),style=wx.BORDER_NONE) self.Follow = wx.Button(item,label="Follower Mode",name="FollowerMode",size=(-1,-1),style=wx.BORDER_NONE) self.Slow = wx.Button(item,label="Slow Mode",name="SlowMode",size=(-1,-1),style=wx.BORDER_NONE) self.Sellout = wx.Button(item,label="Commercial",name="Commercial",size=(-1,-1),style=wx.BORDER_NONE) self.Custom = wx.Button(item,label="Custom Message",name="CustomMessage",size=(-1,-1),style=wx.BORDER_NONE) self.TwitchButtons = [self.Sub,self.Emote,self.Follow,self.Slow,self.Sellout,self.Custom] for i in range(0,len(self.TwitchButtons)): self.panel_bar.AddFoldPanelWindow(item, self.TwitchButtons[i]) item = self.panel_bar.AddFoldPanel("OBS", collapsed=True,cbstyle=self.csStyle) self.OBSSource = wx.Button(item,label="Toggle Source", name="ToggleSource",size=(-1,-1),style=wx.BORDER_NONE) self.OBSScene = wx.Button(item,label="Switch to Scene",name="ChooseScene",size=(-1,-1),style=wx.BORDER_NONE) self.OBSMic = wx.Button(item,label="Toggle Mic",name="Mic",size=(-1,-1),style=wx.BORDER_NONE) self.OBSRec = wx.Button(item,label="Start/Stop Recording",name="Rec",size=(-1,-1),style=wx.BORDER_NONE) self.OBSStream = wx.Button(item,label="Start/Stop Streaming",name="Stream",size=(-1,-1),style=wx.BORDER_NONE) self.OBSButtons = [self.OBSSource,self.OBSScene,self.OBSMic,self.OBSRec,self.OBSStream] for i in range(0,len(self.OBSButtons)): self.panel_bar.AddFoldPanelWindow(item, self.OBSButtons[i]) item = self.panel_bar.AddFoldPanel("Media Keys", collapsed=True,cbstyle=self.csStyle) self.MediaPrev = wx.Button(item,label="Previous Track", name="PreviousTrack",size=(-1,-1),style=wx.BORDER_NONE) self.MediaNext = wx.Button(item,label="Next Track", name="NextTrack",size=(-1,-1),style=wx.BORDER_NONE) self.MediaPlayPause = wx.Button(item,label="Play/Pause", name="PlayPause",size=(-1,-1),style=wx.BORDER_NONE) self.MediaMute = wx.Button(item,label="Mute", name="Mute",size=(-1,-1),style=wx.BORDER_NONE) self.MediaStop = wx.Button(item,label="Stop", name="Stop",size=(-1,-1),style=wx.BORDER_NONE) self.MediaVolumeUp = wx.Button(item,label="Volume Up", name="VolumeUp",size=(-1,-1),style=wx.BORDER_NONE) self.MediaVolumeDown = wx.Button(item,label="Volume Down", name="VolumeDown",size=(-1,-1),style=wx.BORDER_NONE) self.MediaButtons = [self.MediaPrev,self.MediaNext,self.MediaPlayPause,self.MediaMute,self.MediaStop,self.MediaVolumeUp,self.MediaVolumeDown] for i in range(0,len(self.MediaButtons)): self.panel_bar.AddFoldPanelWindow(item, self.MediaButtons[i]) item = self.panel_bar.AddFoldPanel("Button Image", collapsed=True,cbstyle=self.csStyle) self.Change = wx.Button(item,label="Change Image",name="ChangeImage",size=(-1,-1),style=wx.BORDER_NONE) self.ButtonImage = [self.Change] for i in range(0,len(self.ButtonImage)): self.panel_bar.AddFoldPanelWindow(item, self.ButtonImage[i]) item = self.panel_bar.AddFoldPanel("System Functions", collapsed=True,cbstyle=self.csStyle) self.SystemHotkey = wx.Button(item,label="Set Hotkey",name="Hotkey",size=(-1,-1),style=wx.BORDER_NONE) self.SystemFunctions = [self.SystemHotkey] for i in range(0,len(self.SystemFunctions)): self.panel_bar.AddFoldPanelWindow(item, self.SystemFunctions[i])
def InitUI(self): if self.mode == "DEBUG": print "AQUARIUS Data Extraction Tool Frame" self.layoutSizer = wx.BoxSizer(wx.VERTICAL) basePanel = wx.Panel(self) icon_path = self.iconName if hasattr(sys, '_MEIPASS'): icon_path = os.path.join(sys._MEIPASS, icon_path) #PNG Icon if os.path.exists(icon_path): png = wx.Image(icon_path, wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.icon = wx.Icon(png) self.SetIcon(self.icon) # Path Title pathSizer = wx.BoxSizer(wx.HORIZONTAL) pathTitle = wx.StaticText(basePanel, label=self.pathTitleLbl, style=wx.ALIGN_CENTER_HORIZONTAL) pathTitle.SetFont(self.titleFont) pathSizer.Add(pathTitle, 1, wx.EXPAND | wx.LEFT, 5) # pathSizer.Add((-1, -1), 1, wx.EXPAND) # Stations stationSizer = wx.BoxSizer(wx.HORIZONTAL) stationLabel = wx.StaticText(basePanel, label=self.stationLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.stationCtrl = wx.TextCtrl(basePanel, style=wx.TE_PROCESS_ENTER | wx.TE_BESTWRAP) self.stationCtrl.Bind(wx.EVT_TEXT, self.OnTextTypeStation) self.stationCtrl.SetHint("02KF015, 01CC002, 07EF001, ....") stationSizer.Add(stationLabel, 0, wx.EXPAND | wx.TOP, 5) stationSizer.Add(self.stationCtrl, 1, wx.EXPAND | wx.LEFT, 6) # stationBtnSizer = wx.BoxSizer(wx.HORIZONTAL) self.statoinBtn = wx.Button(basePanel, label="Stations List From File", size=(-1, -1)) self.statoinBtn.Bind(wx.EVT_BUTTON, self.OnStationBrowse) self.stationListHelpBtn = wx.Button(basePanel, size=(15, 15), label="!") self.stationListHelpBtn.SetForegroundColour('red') self.stationListHelpBtn.Bind(wx.EVT_BUTTON, self.OnOpenStationHelp) stationSizer.Add(self.statoinBtn, 0, wx.EXPAND | wx.LEFT, 6) stationSizer.Add(self.stationListHelpBtn, 0) # stationBtnSizer.Add(self.statoinBtn, 0, wx.EXPAND, 5) # Import list importSizer = wx.BoxSizer(wx.HORIZONTAL) importTitle = wx.StaticText(basePanel, label=self.importTitleLbl, style=wx.ALIGN_LEFT) importTitle.SetFont(self.titleFont) importSizer.Add(importTitle, 1, wx.EXPAND | wx.LEFT, 4) importSizer.Add((-1, -1), 1, wx.EXPAND) # Station Information Checkbox stnCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.stnCkbox = wx.CheckBox(basePanel, label=self.stnCkboxLbl, style=wx.ALIGN_LEFT) self.stnCkbox.SetValue(True) stnCkboxSizer.Add(self.stnCkbox, 0, wx.EXPAND) # Levels Information Checkbox lvlCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.lvlCkbox = wx.CheckBox(basePanel, label=self.lvlCkboxLbl, style=wx.ALIGN_LEFT) self.lvlCkbox.SetValue(True) lvlCkboxSizer.Add(self.lvlCkbox, 0, wx.EXPAND) # Rating Curve Checkbox rcCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.rcCkbox = wx.CheckBox(basePanel, label=self.rcCkboxLbl, style=wx.ALIGN_LEFT) self.rcCkbox.SetValue(True) rcCkboxSizer.Add(self.rcCkbox, 0, wx.EXPAND) #Data period From/To dataPeriodSizer = wx.BoxSizer(wx.VERTICAL) dataperiodTextSizer = wx.BoxSizer(wx.HORIZONTAL) self.dataPeriodCkbox = wx.CheckBox(basePanel, label=self.dataPeriodTxtLbl, style=wx.ALIGN_LEFT) self.dataPeriodCkbox.Bind(wx.EVT_CHECKBOX, self.OnDataPeriodCheck) self.dataPeriodCkbox.SetValue(True) dataperiodTextSizer.Add(self.dataPeriodCkbox, 0, wx.EXPAND) dataperiodTextSizer.Add((-1, -1), 1, wx.EXPAND) self.dataPeriodFromTxt = wx.StaticText(basePanel, label=self.dataPeriodFromTxtLbl, size=(30, -1), style=wx.ALIGN_RIGHT) self.dataPeriodFromPicker = adv.DatePickerCtrl( basePanel, style=wx.adv.DP_DROPDOWN, size=(-1, -1)) year = datetime.datetime.now().year - 2 self.dataPeriodFromPicker.SetValue(wx.DateTime.FromDMY(1, 0, year)) self.dataPeriodToTxt = wx.StaticText(basePanel, label=self.dataPeriodToTxtLbl, size=(20, -1), style=wx.ALIGN_RIGHT) self.dataPeriodToPicker = adv.DatePickerCtrl(basePanel, style=wx.adv.DP_DROPDOWN, size=(-1, -1)) dataperiodTextSizer.Add(self.dataPeriodFromTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataperiodTextSizer.Add(self.dataPeriodFromPicker, 0, wx.EXPAND) dataperiodTextSizer.Add(self.dataPeriodToTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataperiodTextSizer.Add(self.dataPeriodToPicker, 0, wx.EXPAND) dataPeriodSizer.Add(dataperiodTextSizer, 0, wx.EXPAND) # dataPeriodSizer.Add(dataPeriodRangeSizer, 0, wx.EXPAND) self.includeMinMaxCkbox = wx.CheckBox(basePanel, label=self.minMaxHistLbl) self.includeMinMaxCkbox.Bind(wx.EVT_CHECKBOX, self.OnMinMaxCkBox) self.includeMinMaxCkbox.SetValue(True) self.minMaxSpinCtrl = wx.SpinCtrl(basePanel, min=0, max=10, initial=3, size=(40, -1)) self.minMaxSpinCtrl.Bind(wx.EVT_KILL_FOCUS, self.OnMinMaxSpinCtrl) self.minMaxHintBtn = wx.Button(basePanel, size=(15, 10), label="!") self.minMaxHintBtn.SetForegroundColour('red') self.minMaxHintBtn.Bind(wx.EVT_BUTTON, self.OnMinMaxHintBtn) minMaxSizer = wx.BoxSizer(wx.HORIZONTAL) minMaxSizer.Add((-1, -1), 1, wx.EXPAND) minMaxSizer.Add(self.includeMinMaxCkbox, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) minMaxSizer.Add(self.minMaxSpinCtrl, 0, wx.EXPAND | wx.TOP, 5) minMaxSizer.Add(self.minMaxHintBtn, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataPeriodSizer.Add(minMaxSizer, 0, wx.EXPAND) # Location Selector locSizer = wx.BoxSizer(wx.VERTICAL) exportSizer = wx.BoxSizer(wx.HORIZONTAL) browseSizer = wx.BoxSizer(wx.HORIZONTAL) locLabel = wx.StaticText(basePanel, label=self.pathLbl, size=(80, -1), style=wx.ALIGN_RIGHT) self.locText = wx.StaticText(basePanel, size=(-1, 40), label=self.path, style=wx.SIMPLE_BORDER) exportSubtext = wx.StaticText(basePanel, size=(-1, 35), label=self.exportSubtxtLbl) self.locButton = wx.Button(basePanel, label=self.browseLbl) self.locButton.Bind(wx.EVT_BUTTON, self.OnBrowse) exportSizer.Add(locLabel, 0, wx.EXPAND | wx.TOP, 0) exportSizer.Add(self.locText, 1, wx.EXPAND | wx.LEFT, 6) browseSizer.Add(exportSubtext, 1, wx.EXPAND) browseSizer.Add(self.locButton, 0, wx.LEFT, 6) locSizer.Add(exportSizer, 0, wx.EXPAND | wx.ALL, 2) locSizer.Add(browseSizer, 0, wx.EXPAND | wx.ALL, 2) #Fold panel Bar self.foldBool = True hintSizer = wx.BoxSizer(wx.VERTICAL) self.panel_bar = fpb.FoldPanelBar(basePanel, -1, agwStyle=fpb.FPB_VERTICAL) self.panel_bar.Bind(fpb.EVT_CAPTIONBAR, self.OnHint) fold_panel = self.panel_bar.AddFoldPanel("Show some hints") # thing = wx.TextCtrl(fold_panel, -1, size=(555, -1), style=wx.TE_MULTILINE) hintText = wx.StaticText(fold_panel, -1, size=(555, -1), label=self.hint) # self.panel_bar.AddFoldPanelWindow(fold_panel, thing) self.panel_bar.AddFoldPanelWindow(fold_panel, hintText) # hintSizer.Add(self.panel_bar, 1, wx.EXPAND|wx.ALL, 5) # #Collapsible Panel # hintSizer = wx.BoxSizer(wx.VERTICAL) # self.hintCollPane = wx.CollapsiblePane(basePanel, wx.ID_ANY, style=wx.CP_NO_TLW_RESIZE, size=(-1,40), label="Show some hints") # self.hintCollPane.Bind(wx.EVT_COLLAPSIBLEPANE_CHANGED, self.OnHint) # hintSizer.Add(self.hintCollPane, 0, wx.EXPAND|wx.ALL, 5) # self.win = self.hintCollPane.GetPane() # hintText = wx.StaticText(self.win, label=self.hint) # hintDetailsSizer = wx.BoxSizer(wx.VERTICAL) # self.win.SetSizer(hintDetailsSizer) # hintDetailsSizer.Add(hintText, 0, wx.EXPAND|wx.ALL, 5) # # hintDetailsSizer.SetSizeHints(self.win) # Login loginSizer = wx.BoxSizer(wx.HORIZONTAL) loginTitle = wx.StaticText(basePanel, label=self.loginTitleLbl, size=(140, -1)) loginTitle.SetFont(self.titleFont) loginSizer.Add(loginTitle, 0, wx.EXPAND | wx.LEFT, 5) loginSizer.Add((-1, -1), 1, wx.EXPAND) # Username usernameSizer = wx.BoxSizer(wx.HORIZONTAL) usernameLabel = wx.StaticText(basePanel, label=self.usernameLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.usernameCtrl = wx.TextCtrl(basePanel) usernameSizer.Add(usernameLabel, 0, wx.EXPAND | wx.TOP, 5) usernameSizer.Add(self.usernameCtrl, 1, wx.EXPAND | wx.LEFT, 6) # Password passwordSizer = wx.BoxSizer(wx.HORIZONTAL) passwordLabel = wx.StaticText(basePanel, label=self.passwordLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.passwordCtrl = wx.TextCtrl(basePanel, style=wx.TE_PASSWORD | wx.TE_PROCESS_ENTER) self.passwordCtrl.Bind(wx.EVT_TEXT_ENTER, self.OnRun) passwordSizer.Add(passwordLabel, 0, wx.EXPAND | wx.TOP, 5) passwordSizer.Add(self.passwordCtrl, 1, wx.EXPAND | wx.LEFT, 6) # Buttons buttonsSizer = wx.BoxSizer(wx.HORIZONTAL) self.ngExportChk = wx.CheckBox(basePanel, label=self.ngExportLabel, style=wx.ALIGN_LEFT) self.ngExportChk.SetValue(True) self.runButton = wx.Button(basePanel, label=self.runButtonLbl) self.runButton.Bind(wx.EVT_BUTTON, self.OnRun) self.canButton = wx.Button(basePanel, label=self.canButtonLbl) self.canButton.Bind(wx.EVT_BUTTON, self.OnCancel) buttonsSizer.Add((-1, -1), 1, wx.EXPAND) buttonsSizer.Add(self.ngExportChk, 0, wx.EXPAND | wx.RIGHT, 4) buttonsSizer.Add(self.runButton, 0, wx.EXPAND | wx.RIGHT, 4) buttonsSizer.Add(self.canButton, 0, wx.EXPAND | wx.LEFT, 4) # Layout Sizer self.layoutSizer.Add(pathSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(stationSizer, 0, wx.EXPAND | wx.ALL, 4) # self.layoutSizer.Add(stationBtnSizer, 0, wx.EXPAND|wx.ALL, 4) self.layoutSizer.Add((-1, 10), 0, wx.EXPAND) self.layoutSizer.Add(importSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(stnCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(lvlCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(rcCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(dataPeriodSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(locSizer, 0, wx.EXPAND | wx.ALL, 4) # self.layoutSizer.Add(dataPeriodTxt, 0, wx.EXPAND) # self.layoutSizer.Add(dataPeriodRangeSizer, 0, wx.EXPAND) self.layoutSizer.Add((-1, 15), 0, wx.EXPAND) self.layoutSizer.Add(loginSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add(usernameSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(passwordSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(buttonsSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add(self.panel_bar, 1, wx.EXPAND | wx.ALL, 4) basePanel.SetSizer(self.layoutSizer) self.Bind(wx.EVT_CLOSE, self.OnCancel)
class main_controls(wx.Panel): def __init__(self, parent, config, pres, panel, iconfile): super(wx.Panel, self).__init__(panel) self.parent = parent self.config = config self.pres = pres self.backgroundchoices = self.config.backgroundchoices # Get a few tool bar icons tsize = (16, 16) try: self.open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize) self.next_bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, tsize) self.report_bmp = wx.ArtProvider.GetBitmap(wx.ART_LIST_VIEW, wx.ART_TOOLBAR, tsize) self.A_bmp = wx.ArtProvider.GetBitmap(wx.ART_HELP_SETTINGS, wx.ART_TOOLBAR, tsize) try: self.ud_bmp = wx.Bitmap( wx.Image(iconfile).Rescale(tsize[0], tsize[1])) except Exception, ex: self.ud_bmp = wx.ArtProvider.GetBitmap(wx.ART_HELP_SETTINGS, wx.ART_TOOLBAR, tsize) print ex except Exception, ex: self.open_bmp = None self.next_bmp = None self.report_bmp = None self.A_bmp = None self.ud_bmp = None print ex # .......................... # # Sizers for Controls # # ............................. sizercontrol = wx.BoxSizer(wx.VERTICAL) # Small Toolbar buttonsizer = wx.BoxSizer(wx.HORIZONTAL) bsize = (50, 25) self.openbutton = wx.BitmapButton(self, -1, self.open_bmp, size=bsize) self.procbutton = wx.BitmapButton(self, -1, self.next_bmp, size=bsize) self.procbutton.SetBackgroundColour(wx.Colour(150, 150, 255)) self.udbutton = wx.BitmapButton(self, -1, self.ud_bmp, size=bsize) self.udbutton.SetBackgroundColour(wx.Colour(255, 255, 150)) self.ppbutton = wx.BitmapButton(self, -1, self.report_bmp, size=bsize) self.ppbutton.SetBackgroundColour(wx.Colour(255, 150, 150)) self.autobutton = wx.Button(self, -1, "All", size=bsize) # self.A_bmp self.parent.Bind(wx.EVT_BUTTON, self.pres.on_open, self.openbutton) self.parent.Bind(wx.EVT_BUTTON, self.pres.on_dataprep_button, self.procbutton) self.parent.Bind(wx.EVT_BUTTON, self.pres.on_unidec_button, self.udbutton) self.parent.Bind(wx.EVT_BUTTON, self.pres.on_pick_peaks, self.ppbutton) self.parent.Bind(wx.EVT_BUTTON, self.pres.on_auto, self.autobutton) buttons = [ self.openbutton, self.procbutton, self.udbutton, self.ppbutton, self.autobutton ] for button in buttons: buttonsizer.Add(button, 0, wx.EXPAND) sizercontrol.Add(buttonsizer, 0, wx.EXPAND) # Setting up main fold controls size1 = (75, -1) self.foldpanels = fpb.FoldPanelBar(self, -1, agwStyle=fpb.FPB_VERTICAL) style1 = fpb.CaptionBarStyle() style1b = fpb.CaptionBarStyle() style1c = fpb.CaptionBarStyle() style2 = fpb.CaptionBarStyle() style2b = fpb.CaptionBarStyle() style3 = fpb.CaptionBarStyle() style3b = fpb.CaptionBarStyle() bright = 150 bright2 = 200 style1.SetFirstColour(wx.Colour(bright, bright, 255)) style1b.SetFirstColour(wx.Colour(bright2, bright2, 255)) style1c.SetFirstColour(wx.Colour(bright2, 255, bright2)) style2.SetFirstColour(wx.Colour(255, 255, bright)) style2b.SetFirstColour(wx.Colour(255, 255, bright2)) style3.SetFirstColour(wx.Colour(255, bright, bright)) style3b.SetFirstColour(wx.Colour(255, bright2, bright2)) bright3 = 255 bright4 = 255 style1.SetSecondColour(wx.Colour(bright3, bright3, 255)) style1b.SetSecondColour(wx.Colour(bright4, bright4, 255)) style1c.SetSecondColour(wx.Colour(bright4, 255, bright4)) style2.SetSecondColour(wx.Colour(255, 255, bright3)) style2b.SetSecondColour(wx.Colour(255, 255, bright4)) style3.SetSecondColour(wx.Colour(255, bright3, bright3)) style3b.SetSecondColour(wx.Colour(255, bright4, bright4)) # Panel to set the data prep controls foldpanel1 = self.foldpanels.AddFoldPanel(caption="Data Processing", collapsed=False, cbstyle=style1) panel1 = wx.Panel(foldpanel1, -1) sizercontrol1 = wx.GridBagSizer(wx.VERTICAL) self.ctlminmz = wx.TextCtrl(panel1, value="", size=(50, -1)) self.ctlmaxmz = wx.TextCtrl(panel1, value="", size=(60, -1)) mzrange = wx.BoxSizer(wx.HORIZONTAL) mzrange.Add(wx.StaticText(panel1, label="m/z Range: "), 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) mzrange.Add(self.ctlminmz) mzrange.Add(wx.StaticText(panel1, label=" to "), 0, wx.ALIGN_CENTER_VERTICAL) mzrange.Add(self.ctlmaxmz) mzrange.Add(wx.StaticText(panel1, label=" Th "), 0, wx.ALIGN_CENTER_VERTICAL) sizercontrol1.Add(mzrange, (0, 0), span=(1, 5)) # self.subtypectl = wx.Choice(panel1, -1, choices=self.backgroundchoices) self.ctlbuff = wx.TextCtrl(panel1, value="", size=size1) # self.ctlsmooth = wx.TextCtrl(panel1, value="", size=size1) self.ctlbinsize = wx.TextCtrl(panel1, value="", size=size1) # sizercontrol1.Add(self.subtypectl, (1 + self.config.imflag, 0)) sizercontrol1.Add(wx.StaticText(panel1, label="Background Subtraction: "), (1, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol1.Add(self.ctlbuff, (1, 1)) # sizercontrol1.Add(self.ctlsmooth, (2 + self.config.imflag * 2, 1)) # sizercontrol1.Add(wx.StaticText(panel1, label="Gaussian Smoothing: "), (2 + self.config.imflag * 2, 0), # flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol1.Add(self.ctlbinsize, (2, 1)) sizercontrol1.Add(wx.StaticText(panel1, label="Bin Every: "), (2, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctldatanorm = wx.CheckBox(panel1, label="Normalize Data") sizercontrol1.Add(self.ctldatanorm, (3, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.dataprepbutton = wx.Button(panel1, -1, "Process Data") self.parent.Bind(wx.EVT_BUTTON, self.pres.on_dataprep_button, self.dataprepbutton) sizercontrol1.Add(self.dataprepbutton, (4, 0), span=(1, 2), flag=wx.EXPAND) panel1.SetSizer(sizercontrol1) sizercontrol1.Fit(panel1) self.foldpanels.AddFoldPanelWindow(foldpanel1, panel1, fpb.FPB_ALIGN_WIDTH) self.foldpanels.AddFoldPanelWindow(foldpanel1, wx.StaticText(foldpanel1, -1, " "), fpb.FPB_ALIGN_WIDTH) # Panel for UniDec Parameters foldpanel2 = self.foldpanels.AddFoldPanel(caption="UniDec Parameters", collapsed=False, cbstyle=style2) panel2 = wx.Panel(foldpanel2, -1) sizercontrol2 = wx.GridBagSizer(wx.VERTICAL) self.ctlstartz = wx.TextCtrl(panel2, value="", size=(60, -1)) self.ctlendz = wx.TextCtrl(panel2, value="", size=(60, -1)) zrange = wx.BoxSizer(wx.HORIZONTAL) zrange.Add(wx.StaticText(panel2, label="Charge Range: "), 0, wx.ALIGN_CENTER_VERTICAL) zrange.Add(self.ctlstartz) zrange.Add(wx.StaticText(panel2, label=" to "), 0, wx.ALIGN_CENTER_VERTICAL) zrange.Add(self.ctlendz) self.ctlmasslb = wx.TextCtrl(panel2, value="", size=(60, -1)) self.ctlmassub = wx.TextCtrl(panel2, value="", size=(70, -1)) massrange = wx.BoxSizer(wx.HORIZONTAL) massrange.Add(wx.StaticText(panel2, label="Mass Range: "), 0, wx.ALIGN_CENTER_VERTICAL) massrange.Add(self.ctlmasslb) massrange.Add(wx.StaticText(panel2, label=" to "), 0, wx.ALIGN_CENTER_VERTICAL) massrange.Add(self.ctlmassub) massrange.Add(wx.StaticText(panel2, label=" Da "), 0, wx.ALIGN_CENTER_VERTICAL) self.ctlmassbins = wx.TextCtrl(panel2, value="", size=size1) self.ctlmzsig = wx.TextCtrl(panel2, value="", size=size1) self.ctlpsfun = wx.RadioBox( panel2, label="Peak Shape Function", choices=["Gaussian", "Lorentzian", "Split G/L"]) self.rununidec = wx.Button(panel2, -1, "Run UniDec") self.parent.Bind(wx.EVT_BUTTON, self.pres.on_unidec_button, self.rununidec) sizercontrol2.Add(zrange, (0, 0), span=(1, 2)) sizercontrol2.Add(massrange, (1, 0), span=(1, 2)) sizercontrol2.Add(self.ctlmassbins, (2 + self.config.imflag, 1), span=(1, 2)) sizercontrol2.Add(self.ctlmzsig, (3 + self.config.imflag * 2, 1), span=(1, 2)) sizercontrol2.Add(wx.StaticText(panel2, label="Sample Mass Every (Da): "), (2 + self.config.imflag, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol2.Add(wx.StaticText(panel2, label="Peak FWHM (Th): "), (3 + self.config.imflag * 2, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol2.Add(self.ctlpsfun, (4 + self.config.imflag * 3, 0), span=(1, 2)) sizercontrol2.Add(self.rununidec, (5 + self.config.imflag * 3, 0), span=(1, 2), flag=wx.EXPAND) panel2.SetSizer(sizercontrol2) sizercontrol2.Fit(panel2) self.foldpanels.AddFoldPanelWindow(foldpanel2, panel2, fpb.FPB_ALIGN_WIDTH) self.foldpanels.AddFoldPanelWindow(foldpanel2, wx.StaticText(foldpanel2, -1, " "), fpb.FPB_ALIGN_WIDTH) # Panel for Additional Restraints foldpanel2b = self.foldpanels.AddFoldPanel( caption="Additional Filters/Restraints", collapsed=True, cbstyle=style2b) panel2b = wx.Panel(foldpanel2b, -1) gbox2b = wx.GridBagSizer(wx.VERTICAL) self.ctlzzsig = wx.TextCtrl(panel2b, value="", size=size1) gbox2b.Add(wx.StaticText(panel2b, label="Charge Smooth Width: "), (0, 0), flag=wx.ALIGN_CENTER_VERTICAL) gbox2b.Add(self.ctlzzsig, (0, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlmolig = wx.TextCtrl(panel2b, value="", size=size1) gbox2b.Add(wx.StaticText(panel2b, label="Mass Difference (Da): "), (1, 0), flag=wx.ALIGN_CENTER_VERTICAL) gbox2b.Add(self.ctlmolig, (1, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlmsig = wx.TextCtrl(panel2b, value="", size=size1) gbox2b.Add(wx.StaticText(panel2b, label="Mass Smooth Width: "), (2, 0), flag=wx.ALIGN_CENTER_VERTICAL) gbox2b.Add(self.ctlmsig, (2, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlnumit = wx.TextCtrl(panel2b, value='', size=size1) gbox2b.Add(wx.StaticText(panel2b, label='Maximum # of Iterations: '), (8, 0), flag=wx.ALIGN_CENTER_VERTICAL) gbox2b.Add(self.ctlnumit, (8, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlpoolflag = wx.RadioBox( panel2b, label="m/z to Mass Transformation", choices=["Integration", "Interpolation"]) gbox2b.Add(self.ctlpoolflag, (7, 0), span=(1, 2), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlorbimode = wx.CheckBox(panel2b, label="Charge Scaling Mode") gbox2b.Add(self.ctlorbimode, (5, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlisotopemode = wx.CheckBox(panel2b, label="Isotope Mode") gbox2b.Add(self.ctlisotopemode, (4, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlmanualassign = wx.CheckBox(panel2b, label="Manual Mode") self.parent.Bind(wx.EVT_CHECKBOX, self.on_check_manual, self.ctlmanualassign) gbox2b.Add(self.ctlmanualassign, (4, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctladductmass = wx.TextCtrl(panel2b, value='', size=size1) gbox2b.Add(self.ctladductmass, (9, 1), span=(1, 1)) gbox2b.Add(wx.StaticText(panel2b, label="Adduct Mass (Da): "), (9, 0), flag=wx.ALIGN_CENTER_VERTICAL) mlsizer = wx.BoxSizer(wx.HORIZONTAL) self.ctlmasslistflag = wx.CheckBox(panel2b, label="Mass List Window:") self.parent.Bind(wx.EVT_CHECKBOX, self.on_mass_list, self.ctlmasslistflag) self.ctlmtabsig = wx.TextCtrl(panel2b, value="", size=(60, -1)) mlsizer.Add(self.ctlmasslistflag, 0, wx.ALIGN_CENTER_VERTICAL) mlsizer.Add(self.ctlmtabsig, 0, wx.ALIGN_CENTER_VERTICAL) mlsizer.Add(wx.StaticText(panel2b, label=" Da "), 0, wx.ALIGN_CENTER_VERTICAL) gbox2b.Add(mlsizer, (6, 0), span=(1, 2)) sb = wx.StaticBox(panel2b, label='Native Charge Offset Range') sbs = wx.StaticBoxSizer(sb, orient=wx.HORIZONTAL) self.ctlminnativez = wx.TextCtrl(panel2b, value='', size=(75, -1)) self.ctlmaxnativez = wx.TextCtrl(panel2b, value='', size=(75, -1)) sbs.Add(self.ctlminnativez, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) sbs.Add(wx.StaticText(panel2b, label=' to '), 0, wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) sbs.Add(self.ctlmaxnativez, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) gbox2b.Add(sbs, (3, 0), span=(1, 2), flag=wx.EXPAND) panel2b.SetSizer(gbox2b) gbox2b.Fit(panel2b) self.foldpanels.AddFoldPanelWindow(foldpanel2b, panel2b, fpb.FPB_ALIGN_WIDTH) self.foldpanels.AddFoldPanelWindow(foldpanel2b, wx.StaticText(foldpanel2b, -1, " "), fpb.FPB_ALIGN_WIDTH) # Panel for Peak Selection and Plotting foldpanel3 = self.foldpanels.AddFoldPanel( caption="Peak Selection, Extraction, and Plotting", collapsed=False, cbstyle=style3) panel3 = wx.Panel(foldpanel3, -1) sizercontrol3 = wx.GridBagSizer(wx.VERTICAL) self.ctlwindow = wx.TextCtrl(panel3, value="", size=size1) self.ctlthresh = wx.TextCtrl(panel3, value="", size=size1) self.ctlnorm = wx.RadioBox(panel3, label="Peak Normalization", choices=["None", "Max", "Total"]) self.ctlnorm2 = wx.RadioBox( panel3, label="Extract Normalization", choices=["None", "Max", "Sum", "Peak Max", "Peak Sum"], majorDimension=3, style=wx.RA_SPECIFY_COLS) self.ctlextractwindow = wx.TextCtrl(panel3, value="", size=size1) self.ctlextract = wx.ComboBox( panel3, value="Height", choices=self.parent.extractchoices.values(), style=wx.CB_READONLY) self.plotbutton = wx.Button(panel3, -1, "Peak Detection/Extraction") self.plotbutton2 = wx.Button(panel3, -1, "Plot 2D Grids") self.parent.Bind(wx.EVT_BUTTON, self.pres.make2dplots, self.plotbutton2) self.parent.Bind(wx.EVT_BUTTON, self.pres.on_pick_peaks, self.plotbutton) sizercontrol3.Add(self.ctlwindow, (0, 1)) sizercontrol3.Add(wx.StaticText(panel3, label="Picking Range (Da): "), (0, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol3.Add(self.ctlthresh, (1, 1)) sizercontrol3.Add(wx.StaticText(panel3, label="Picking Threshold: "), (1, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol3.Add(self.ctlnorm, (2, 0), span=(1, 2), flag=wx.EXPAND) sizercontrol3.Add(wx.StaticText(panel3, label="How to Extract Peaks: "), (3, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol3.Add(self.ctlextract, (3, 1), span=(1, 1), flag=wx.EXPAND) sizercontrol3.Add(self.ctlnorm2, (5, 0), span=(1, 2), flag=wx.EXPAND) sizercontrol3.Add(wx.StaticText(panel3, label="Extraction Window: "), (4, 0), flag=wx.ALIGN_CENTER_VERTICAL) sizercontrol3.Add(self.ctlextractwindow, (4, 1), span=(1, 1)) sizercontrol3.Add(self.plotbutton, (6, 0), span=(1, 2), flag=wx.EXPAND) sizercontrol3.Add(self.plotbutton2, (7, 0), span=(1, 2), flag=wx.EXPAND) panel3.SetSizer(sizercontrol3) sizercontrol3.Fit(panel3) self.foldpanels.AddFoldPanelWindow(foldpanel3, panel3, fpb.FPB_ALIGN_WIDTH) self.foldpanels.AddFoldPanelWindow(foldpanel3, wx.StaticText(foldpanel3, -1, " "), fpb.FPB_ALIGN_WIDTH) # Plotting Parameters foldpanel3b = self.foldpanels.AddFoldPanel( caption="Additional Plotting Parameters", collapsed=True, cbstyle=style3b) panel3b = wx.Panel(foldpanel3b, -1) gbox3b = wx.GridBagSizer(wx.VERTICAL) gbox3b.Add(wx.StaticText(panel3b, label='2D Color Map: '), (0, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctl2dcm = wx.ComboBox(panel3b, wx.ID_ANY, style=wx.CB_READONLY) gbox3b.Add(wx.StaticText(panel3b, label='Peaks Color Map: '), (1, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlpeakcm = wx.ComboBox(panel3b, wx.ID_ANY, style=wx.CB_READONLY) for mp in self.config.cmaps2: self.ctl2dcm.Append(mp) for mp in self.config.cmaps: self.ctlpeakcm.Append(mp) gbox3b.Add(self.ctl2dcm, (0, 1), flag=wx.ALIGN_CENTER_VERTICAL) gbox3b.Add(self.ctlpeakcm, (1, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctldiscrete = wx.CheckBox(panel3b, label="Discrete Plot") gbox3b.Add(self.ctldiscrete, (2, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlpublicationmode = wx.CheckBox(panel3b, label="Publication Mode") gbox3b.Add(self.ctlpublicationmode, (2, 1), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlrawflag = wx.RadioBox(panel3b, label="", choices=["Reconvolved", "Raw Results"]) gbox3b.Add(self.ctlrawflag, (3, 0), span=(1, 2), flag=wx.EXPAND) gbox3b.Add(wx.StaticText(panel3b, label="Marker Threshold: "), (4, 0), flag=wx.ALIGN_CENTER_VERTICAL) gbox3b.Add(wx.StaticText(panel3b, label="Species Separation: "), (5, 0), flag=wx.ALIGN_CENTER_VERTICAL) self.ctlthresh2 = wx.TextCtrl(panel3b, value="", size=size1) self.ctlsep = wx.TextCtrl(panel3b, value="", size=size1) gbox3b.Add(self.ctlthresh2, (4, 1), flag=wx.ALIGN_CENTER_VERTICAL) gbox3b.Add(self.ctlsep, (5, 1), flag=wx.ALIGN_CENTER_VERTICAL) sb2 = wx.StaticBox(panel3b, label='Integration Range') sbs2 = wx.StaticBoxSizer(sb2, orient=wx.HORIZONTAL) self.ctlintlb = wx.TextCtrl(panel3b, value='', size=(75, -1)) self.ctlintub = wx.TextCtrl(panel3b, value='', size=(75, -1)) sbs2.Add(self.ctlintlb, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) sbs2.Add(wx.StaticText(panel3b, label=' to '), 0, flag=wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) sbs2.Add(self.ctlintub, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) sbs2.Add(wx.StaticText(panel3b, label=' Da '), 0, flag=wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) gbox3b.Add(sbs2, (6, 0), span=(1, 2), flag=wx.EXPAND) sb3 = wx.StaticBox(panel3b, label='Limits on # of Spectra') sbs3 = wx.StaticBoxSizer(sb3, orient=wx.HORIZONTAL) self.ctlcrossover = wx.TextCtrl(panel3b, value='', size=(75, -1)) self.ctlnumtot = wx.TextCtrl(panel3b, value='', size=(75, -1)) sbs3.Add(wx.StaticText(panel3b, label='If over'), 0, flag=wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) sbs3.Add(self.ctlcrossover, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) sbs3.Add(wx.StaticText(panel3b, label=' plot only'), 0, flag=wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) sbs3.Add(self.ctlnumtot, flag=wx.LEFT | wx.ALIGN_CENTER_VERTICAL | wx.EXPAND, border=5) gbox3b.Add(sbs3, (7, 0), span=(1, 2), flag=wx.EXPAND) self.replotbutton = wx.Button(panel3b, -1, "Replot") self.parent.Bind(wx.EVT_BUTTON, self.pres.on_replot, self.replotbutton) gbox3b.Add(self.replotbutton, (8, 0), span=(1, 1), flag=wx.EXPAND) self.compositebutton = wx.Button(panel3b, -1, "Plot Composite") self.parent.Bind(wx.EVT_BUTTON, self.pres.on_plot_composite, self.compositebutton) gbox3b.Add(self.compositebutton, (8, 1), span=(1, 1), flag=wx.EXPAND) panel3b.SetSizer(gbox3b) gbox3b.Fit(panel3b) self.foldpanels.AddFoldPanelWindow(foldpanel3b, panel3b, fpb.FPB_ALIGN_WIDTH) self.foldpanels.AddFoldPanelWindow(foldpanel3b, wx.StaticText(foldpanel3b, -1, " "), fpb.FPB_ALIGN_WIDTH) bright = 250 foldpanel1.SetBackgroundColour(wx.Colour(bright, bright, 255)) foldpanel2.SetBackgroundColour(wx.Colour(255, 255, bright)) foldpanel2b.SetBackgroundColour(wx.Colour(255, 255, bright)) foldpanel3.SetBackgroundColour(wx.Colour(255, bright, bright)) foldpanel3b.SetBackgroundColour(wx.Colour(255, bright, bright)) sizercontrol.SetMinSize((250 + self.config.imflag * 10, 0)) # Add to top control sizer sizercontrol.Add(self.foldpanels, 1, wx.EXPAND) self.SetSizer(sizercontrol) sizercontrol.Fit(self) self.setup_tool_tips()