FoldPanelBar
is a control that contains multiple panels, which can be expanded
or collapsed.
The FoldPanelBar
is a control that contains multiple panels (of type
FoldPanelItem
) that can be expanded or collapsed. The captionbar of
the FoldPanelBar
can be customized by setting it to a horizontal gradient
style, vertical gradient style, a single colour, a rectangle or filled
rectangle. The FoldPanel items can be collapsed in place or to the
bottom of the control. wx.Window
derived controls can be added
dynamically, and separated by separator lines.
The internals of the FoldPanelBar
is a list of FoldPanelItem
objects. Through
the reference of FoldPanel these panels can be controlled by adding new controls
to a FoldPanel or adding new FoldPanels to the FoldPanelBar
.
The CaptionBar
fires events to the parent (container of all panel items) when a
sub-panel needs resizing (either folding or expanding). The fold or expand process
is simply a resize of the panel so it looks like all controls on it are gone. All
controls are still child of the FoldPanel they are located on. If they don’t
handle the event (and they won’t) then the owner of the FoldPanelBar
gets the
events.
This is what you need to handle the controls. There isn’t much to it just a lot of calculations to see what panel belongs where. There are no sizers involved in the panels, everything is purely x-y positioning.
Usage example:
import wx
import wx.lib.agw.foldpanelbar as fpb
class MyFrame(wx.Frame):
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)
# our normal wxApp-derived class, as usual
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
FoldPanelBar
is supported on the following platforms:CaptionBar
size patch)This class supports the following window styles:
Window Styles | Hex Value | Description |
---|---|---|
FPB_SINGLE_FOLD |
0x1 | Single fold forces other panels to close when they are open, and only opens the current panel. This will allow the open panel to gain the full size left in the client area. |
FPB_COLLAPSE_TO_BOTTOM |
0x2 | All panels are stacked to the bottom. When they are expanded again they show up at the top. |
FPB_EXCLUSIVE_FOLD |
0x4 | FPB_SINGLE_FOLD style plus the panels will be stacked at the bottom. |
FPB_HORIZONTAL |
0x8 | FoldPanelBar will be horizontal. |
FPB_VERTICAL |
0x10 | FoldPanelBar will be vertical. |
This class processes the following events:
Event Name | Description |
---|---|
EVT_CAPTIONBAR |
The user has pressed the caption bar: FoldPanelBar will either expand or collapse the underlying panel. |
FoldPanelBar
is distributed under the wxPython license.
Latest Revision: Andrea Gavana @ 16 Jul 2012, 15.00 GMT
Version 0.6
CaptionBar |
This class is a graphical caption component that consists of a |
CaptionBarEvent |
This event will be sent when a EVT_CAPTIONBAR is mapped in the parent. |
CaptionBarStyle |
This class encapsulates the styles you wish to set for the |
FoldPanelBar |
The FoldPanelBar is a class which can maintain a list of |
FoldPanelItem |
This class is a child sibling of the FoldPanelBar class. It will |
FoldWindowItem |
This class is a child sibling of the FoldPanelItem class. It |