Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

wxSplitterWindow (3erl)

Name

wxSplitterWindow - Functions for wxSplitterWindow class

Synopsis

Please see following description for synopsis

Description

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)