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)
Exemple #3
0
    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()
Exemple #4
0
    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)
Exemple #5
0
    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()
Exemple #8
0
    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()
Exemple #9
0
    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)
Exemple #10
0
    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()
Exemple #11
0
    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
Exemple #12
0
	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])
Exemple #13
0
    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)
Exemple #14
0
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()