wxSplitterWindow - Functions for wxSplitterWindow class
Please see following description for synopsis
wxSplitterWindow(3) Erlang Module Definition wxSplitterWindow(3)
NAME
wxSplitterWindow - Functions for wxSplitterWindow class
DESCRIPTION
This class manages up to two subwindows. The current view can be split
into two programmatically (perhaps from a menu command), and unsplit
either programmatically or via the wxSplitterWindow user interface.
Styles
This class supports the following styles:
See: wxSplitterEvent, Overview splitterwindow
This class is derived (and can use functions) from: wxWindow
wxEvtHandler
wxWidgets docs: wxSplitterWindow
EVENTS
Event types emitted from this class: command_splitter_sash_pos_chang-
ing, command_splitter_sash_pos_changed, command_splitter_unsplit
DATA TYPES
wxSplitterWindow() = wx:wx_object()
EXPORTS
new() -> wxSplitterWindow()
Default constructor.
new(Parent) -> wxSplitterWindow()
Types:
Parent = wxWindow:wxWindow()
new(Parent, Options :: [Option]) -> wxSplitterWindow()
Types:
Parent = wxWindow:wxWindow()
Option =
{id, integer()} |
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()}
Constructor for creating the window.
Remark: After using this constructor, you must create either one
or two subwindows with the splitter window as parent, and then
call one of initialize/2, splitVertically/4 and splitHorizon-
tally/4 in order to set the pane(s). You can create two windows,
with one hidden when not being shown; or you can create and
delete the second pane on demand.
See: initialize/2, splitVertically/4, splitHorizontally/4, cre-
ate/3
destroy(This :: wxSplitterWindow()) -> ok
Destroys the wxSplitterWindow and its children.
create(This, Parent) -> boolean()
Types:
This = wxSplitterWindow()
Parent = wxWindow:wxWindow()
create(This, Parent, Options :: [Option]) -> boolean()
Types:
This = wxSplitterWindow()
Parent = wxWindow:wxWindow()
Option =
{id, integer()} |
{pos, {X :: integer(), Y :: integer()}} |
{size, {W :: integer(), H :: integer()}} |
{style, integer()}
Creation function, for two-step construction.
See new/2 for details.
getMinimumPaneSize(This) -> integer()
Types:
This = wxSplitterWindow()
Returns the current minimum pane size (defaults to zero).
See: setMinimumPaneSize/2
getSashGravity(This) -> number()
Types:
This = wxSplitterWindow()
Returns the current sash gravity.
See: setSashGravity/2
getSashPosition(This) -> integer()
Types:
This = wxSplitterWindow()
Returns the current sash position.
See: setSashPosition/3
getSplitMode(This) -> wx:wx_enum()
Types:
This = wxSplitterWindow()
Gets the split mode.
See: setSplitMode/2, splitVertically/4, splitHorizontally/4
getWindow1(This) -> wxWindow:wxWindow()
Types:
This = wxSplitterWindow()
Returns the left/top or only pane.
getWindow2(This) -> wxWindow:wxWindow()
Types:
This = wxSplitterWindow()
Returns the right/bottom pane.
initialize(This, Window) -> ok
Types:
This = wxSplitterWindow()
Window = wxWindow:wxWindow()
Initializes the splitter window to have one pane.
The child window is shown if it is currently hidden.
Remark: This should be called if you wish to initially view only
a single pane in the splitter window.
See: splitVertically/4, splitHorizontally/4
isSplit(This) -> boolean()
Types:
This = wxSplitterWindow()
Returns true if the window is split, false otherwise.
replaceWindow(This, WinOld, WinNew) -> boolean()
Types:
This = wxSplitterWindow()
WinOld = WinNew = wxWindow:wxWindow()
This function replaces one of the windows managed by the wxS-
plitterWindow with another one.
It is in general better to use it instead of calling unsplit/2
and then resplitting the window back because it will provoke
much less flicker (if any). It is valid to call this function
whether the splitter has two windows or only one.
Both parameters should be non-NULL and winOld must specify one
of the windows managed by the splitter. If the parameters are
incorrect or the window couldn't be replaced, false is returned.
Otherwise the function will return true, but please notice that
it will not delete the replaced window and you may wish to do it
yourself.
See: getMinimumPaneSize/1
setSashGravity(This, Gravity) -> ok
Types:
This = wxSplitterWindow()
Gravity = number()
Sets the sash gravity.
Remark: Gravity is real factor which controls position of sash
while resizing wxSplitterWindow. Gravity tells wxSplitterWindow
how much will left/top window grow while resizing. Example val-
ues:
Notice that when sash gravity for a newly created splitter win-
dow, it is often necessary to explicitly set the splitter size
using wxWindow:setSize/6 to ensure that is big enough for its
initial sash position. Otherwise, i.e. if the window is created
with the default tiny size and only resized to its correct size
later, the initial sash position will be affected by the gravity
and typically result in sash being at the rightmost position for
the gravity of 1. See the example code creating wxSplitterWindow
in the splitter sample for more details.
See: getSashGravity/1
setSashPosition(This, Position) -> ok
Types:
This = wxSplitterWindow()
Position = integer()
setSashPosition(This, Position, Options :: [Option]) -> ok
Types:
This = wxSplitterWindow()
Position = integer()
Option = {redraw, boolean()}
Sets the sash position.
Remark: Does not currently check for an out-of-range value.
See: getSashPosition/1
setMinimumPaneSize(This, PaneSize) -> ok
Types:
This = wxSplitterWindow()
PaneSize = integer()
Sets the minimum pane size.
Remark: The default minimum pane size is zero, which means that
either pane can be reduced to zero by dragging the sash, thus
removing one of the panes. To prevent this behaviour (and veto
out-of-range sash dragging), set a minimum size, for example 20
pixels. If the wxSP_PERMIT_UNSPLIT style is used when a splitter
window is created, the window may be unsplit even if minimum
size is non-zero.
See: getMinimumPaneSize/1
setSplitMode(This, Mode) -> ok
Types:
This = wxSplitterWindow()
Mode = integer()
Sets the split mode.
Remark: Only sets the internal variable; does not update the
display.
See: getSplitMode/1, splitVertically/4, splitHorizontally/4
splitHorizontally(This, Window1, Window2) -> boolean()
Types:
This = wxSplitterWindow()
Window1 = Window2 = wxWindow:wxWindow()
splitHorizontally(This, Window1, Window2, Options :: [Option]) ->
boolean()
Types:
This = wxSplitterWindow()
Window1 = Window2 = wxWindow:wxWindow()
Option = {sashPosition, integer()}
Initializes the top and bottom panes of the splitter window.
The child windows are shown if they are currently hidden.
Return: true if successful, false otherwise (the window was
already split).
Remark: This should be called if you wish to initially view two
panes. It can also be called at any subsequent time, but the
application should check that the window is not currently split
using isSplit/1.
See: splitVertically/4, isSplit/1, unsplit/2
splitVertically(This, Window1, Window2) -> boolean()
Types:
This = wxSplitterWindow()
Window1 = Window2 = wxWindow:wxWindow()
splitVertically(This, Window1, Window2, Options :: [Option]) ->
boolean()
Types:
This = wxSplitterWindow()
Window1 = Window2 = wxWindow:wxWindow()
Option = {sashPosition, integer()}
Initializes the left and right panes of the splitter window.
The child windows are shown if they are currently hidden.
Return: true if successful, false otherwise (the window was
already split).
Remark: This should be called if you wish to initially view two
panes. It can also be called at any subsequent time, but the
application should check that the window is not currently split
using isSplit/1.
See: splitHorizontally/4, isSplit/1, unsplit/2
unsplit(This) -> boolean()
Types:
This = wxSplitterWindow()
unsplit(This, Options :: [Option]) -> boolean()
Types:
This = wxSplitterWindow()
Option = {toRemove, wxWindow:wxWindow()}
Unsplits the window.
Return: true if successful, false otherwise (the window was not
split).
Remark: This call will not actually delete the pane being
removed; it calls OnUnsplit() (not implemented in wx) which can
be overridden for the desired behaviour. By default, the pane
being removed is hidden.
See: splitHorizontally/4, splitVertically/4, isSplit/1, OnUn-
split() (not implemented in wx)
updateSize(This) -> ok
Types:
This = wxSplitterWindow()
Causes any pending sizing of the sash and child panes to take
place immediately.
Such resizing normally takes place in idle time, in order to
wait for layout to be completed. However, this can cause unac-
ceptable flicker as the panes are resized after the window has
been shown. To work around this, you can perform window layout
(for example by sending a size event to the parent window), and
then call this function, before showing the top-level window.
wxWidgets team. wx 2.1.1 wxSplitterWindow(3)