wx.lib.agw.fourwaysplitter.FourWaySplitter¶
This class is very similar to SplitterWindow
except that it
allows for four windows and two sashes. Many of the same styles,
constants, and methods behave the same as in SplitterWindow
.
However, in addition of the ability to drag the vertical and the
horizontal sash, by dragging at the intersection between the two
sashes, it is possible to resize the four windows at the same time.
Note
These things are not yet supported:
Minimum pane size (minimum of what? Width? Height?);
Using negative sash positions to indicate a position offset from the end;
User controlled unsplitting with double clicks on the sash (but supported via the
FourWaySplitter.SetExpanded()
method);Sash gravity.
Class Hierarchy¶
Control Appearance¶
Known Superclasses¶
Methods Summary¶
Default class constructor. |
|
Adjust layout of |
|
Add a new window to the splitter at the right side or bottom |
|
Removes the window from the stack of windows managed by the splitter. The |
|
Gets the size which best suits the window: for a control, it would be the |
|
Sends a |
|
Actually draws the sashes. |
|
Draws a fake sash in case we don’t have |
|
Trade the positions in the splitter of the two windows. |
|
Returns the |
|
Returns the bottom left window (window index: 2). |
|
Returns the bottom right window (window index: 3). |
|
Determines the split mode for |
|
Returns the top left window (window index: 0). |
|
Returns the top right window (window index: 1). |
|
Returns the window at the index idx. |
|
Insert a new window into the splitter at the position given in idx. |
|
Moves the split accordingly to user action. |
|
Handles the |
|
Handles the |
|
Handles the |
|
Handles the |
|
Handles the |
|
Handles the |
|
Handles the |
|
Replaces oldWindow (which is currently being managed by the |
|
Sets the |
|
This method is used to expand one of the four window to fill the |
|
Change horizontal split fraction. |
|
Change vertical split fraction. |
Class API¶
- class FourWaySplitter(wx.Panel)¶
This class is very similar to
SplitterWindow
except that it allows for four windows and two sashes. Many of the same styles, constants, and methods behave the same as inSplitterWindow
. However, in addition of the ability to drag the vertical and the horizontal sash, by dragging at the intersection between the two sashes, it is possible to resize the four windows at the same time.Note
These things are not yet supported:
Minimum pane size (minimum of what? Width? Height?);
Using negative sash positions to indicate a position offset from the end;
User controlled unsplitting with double clicks on the sash (but supported via the
FourWaySplitter.SetExpanded()
method);Sash gravity.
Methods¶
- __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, agwStyle=0, name='FourWaySplitter')¶
Default class constructor.
- Parameters:
parent – parent window. Must not be
None
;id – window identifier. A value of -1 indicates a default value;
pos – the control position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxPython, depending on platform;
size – the control size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxPython, depending on platform;
style – the underlying
Panel
window style;agwStyle –
the AGW-specific window style. It can be a combination of the following bits:
Window Styles
Hex Value
Description
SP_NOSASH
0x10
No sash will be drawn on
FourWaySplitter
.SP_LIVE_UPDATE
0x80
Don’t draw XOR line but resize the child windows immediately.
SP_3DBORDER
0x200
Draws a 3D effect border.
name – the window name.
- AdjustLayout(self)¶
Adjust layout of
FourWaySplitter
. Mainly used to recalculate the correct values for split fractions.
- AppendWindow(self, window)¶
Add a new window to the splitter at the right side or bottom of the window stack.
- Parameters:
window – an instance of
wx.Window
.
- DetachWindow(self, window)¶
Removes the window from the stack of windows managed by the splitter. The window will still exist so you should
Hide
orDestroy
it as needed.- Parameters:
window – an instance of
wx.Window
.
- DoGetBestSize(self)¶
Gets the size which best suits the window: for a control, it would be the minimal size which doesn’t truncate the control, for a panel - the same size as it would have after a call to Fit().
Note
Overridden from
Panel
.
- DoSendChangingEvent(self, pt)¶
Sends a
EVT_SPLITTER_SASH_POS_CHANGING
event.- Parameters:
pt – the point at which the splitter is being positioned.
- DrawTrackSplitter(self, x, y)¶
Draws a fake sash in case we don’t have
wx.SP_LIVE_UPDATE
style.- Parameters:
x – the x position of the sash;
y – the y position of the sash.
Note
This method relies on
ScreenDC
which is currently unavailable on wxMac.
- ExchangeWindows(self, window1, window2)¶
Trade the positions in the splitter of the two windows.
- GetAGWWindowStyleFlag(self)¶
Returns the
FourWaySplitter
window style.See also
SetAGWWindowStyleFlag
for a list of possible window styles.
- GetBottomLeft(self)¶
Returns the bottom left window (window index: 2).
- GetBottomRight(self)¶
Returns the bottom right window (window index: 3).
- GetMode(self, pt)¶
Determines the split mode for
FourWaySplitter
.- Parameters:
pt – the point at which the mouse has been clicked, an instance of
wx.Point
.- Returns:
One of the following 3 split modes:
Split Mode
Description
wx.HORIZONTAL
the user has clicked on the horizontal sash
wx.VERTICAL
The user has clicked on the vertical sash
wx.BOTH
The user has clicked at the intersection between the 2 sashes
- GetTopLeft(self)¶
Returns the top left window (window index: 0).
- GetTopRight(self)¶
Returns the top right window (window index: 1).
- GetWindow(self, idx)¶
Returns the window at the index idx.
- Parameters:
idx – the index at which the window is located.
- InsertWindow(self, idx, window, sashPos=-1)¶
Insert a new window into the splitter at the position given in idx.
- Parameters:
idx – the index at which the window will be inserted;
window – an instance of
wx.Window
;sashPos – the sash position after the window insertion.
- MoveSplit(self, x, y)¶
Moves the split accordingly to user action.
- Parameters:
x – the new splitter x coordinate;
y – the new splitter y coordinate.
- OnEnterWindow(self, event)¶
Handles the
wx.EVT_ENTER_WINDOW
event forFourWaySplitter
.- Parameters:
event – a
MouseEvent
event to be processed.
- OnLeaveWindow(self, event)¶
Handles the
wx.EVT_LEAVE_WINDOW
event forFourWaySplitter
.- Parameters:
event – a
MouseEvent
event to be processed.
- OnLeftDown(self, event)¶
Handles the
wx.EVT_LEFT_DOWN
event forFourWaySplitter
.- Parameters:
event – a
MouseEvent
event to be processed.
- OnLeftUp(self, event)¶
Handles the
wx.EVT_LEFT_UP
event forFourWaySplitter
.- Parameters:
event – a
MouseEvent
event to be processed.
- OnMotion(self, event)¶
Handles the
wx.EVT_MOTION
event forFourWaySplitter
.- Parameters:
event – a
MouseEvent
event to be processed.
- OnPaint(self, event)¶
Handles the
wx.EVT_PAINT
event forFourWaySplitter
.- Parameters:
event – a
PaintEvent
event to be processed.
- OnSize(self, event)¶
Handles the
wx.EVT_SIZE
event forFourWaySplitter
.- Parameters:
event – a
wx.SizeEvent
event to be processed.
- ReplaceWindow(self, oldWindow, newWindow)¶
Replaces oldWindow (which is currently being managed by the splitter) with newWindow. The oldWindow window will still exist so you should
Hide
orDestroy
it as needed.
- SetAGWWindowStyleFlag(self, agwStyle)¶
Sets the
FourWaySplitter
window style flags.- Parameters:
agwStyle –
the AGW-specific window style. This can be a combination of the following bits:
Window Styles
Hex Value
Description
SP_NOSASH
0x10
No sash will be drawn on
FourWaySplitter
.SP_LIVE_UPDATE
0x80
Don’t draw XOR line but resize the child windows immediately.
SP_3DBORDER
0x200
Draws a 3D effect border.
- SetExpanded(self, expanded)¶
This method is used to expand one of the four window to fill the whole client size (when expanded >= 0) or to return to the four-window view (when expanded < 0).
- Parameters:
expanded – an integer >= 0 to expand a window to fill the whole client size, or an integer < 0 to return to the four-window view.
- SetHSplit(self, s)¶
Change horizontal split fraction.
- Parameters:
s –
the split fraction, which is an integer value between 0 and 10000 (inclusive), indicating how much space to allocate to the leftmost panes. For example, to split the panes at 35 percent, use:
fourSplitter.SetHSplit(3500)
- SetVSplit(self, s)¶
Change vertical split fraction.
- Parameters:
s –
the split fraction, which is an integer value between 0 and 10000 (inclusive), indicating how much space to allocate to the topmost panes. For example, to split the panes at 35 percent, use:
fourSplitter.SetVSplit(3500)