\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
+\wxheading{Include files}
+
+<wx/splitter.h>
+
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxSplitterWindow::wxSplitterWindow}\label{wxsplitterwindowconstr}
Default constructor.
-\func{}{wxSplitterWindow}{\param{wxWindow*}{ parent}, \param{const wxWindowID}{ id}, \param{int }{x},\rtfsp
+\func{}{wxSplitterWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{int }{x},\rtfsp
\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}}
+\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}}
Constructor for creating the window.
\membersection{wxSplitterWindow::Create}\label{wxsplitterwindowcreate}
-\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{const wxWindowID}{ id}, \param{int }{x},\rtfsp
+\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{int }{x},\rtfsp
\param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}}
+\param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}}
Creation function, for two-step construction. See \helpref{wxSplitterWindow::wxSplitterWindow}{wxsplitterwindowconstr} for
details.
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp
-\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}.
+\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}
\membersection{wxSplitterWindow::IsSplit}\label{wxsplitterwindowissplit}
The default implementation of this function simply hides {\it removed}. You
may wish to delete the window.
+\membersection{wxSplitterWindow::OnSashPositionChange}\label{wxsplitterwindowonsashpositionchange}
+
+\func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}}
+
+Application-overridable function called when the sash position is changed by
+user. It may return FALSE to prevent the change or TRUE to allow it.
+
+\wxheading{Parameters}
+
+\docparam{newSashPosition}{The new sash position (always positive or zero)}
+
+\wxheading{Remarks}
+
+The default implementation of this function verifies that the sizes of both
+panes of the splitter are greater than minimum pane size.
+
+\membersection{wxSplitterWindow::ReplaceWindow}\label{wxsplitterwindowreplacewindow}
+
+\func{bool}{ReplaceWindow}{\param{wxWindow * }{winOld}, \param{wxWindow * }{winNew}}
+
+This function replaces one of the windows managed by the wxSplitterWindow with
+another one. It is in general better to use it instead of calling Unsplit()
+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 {\it 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.
+
\wxheading{See also}
-\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
+\helpref{wxSplitterWindow::GetMinimumPaneSize}{wxsplitterwindowgetminimumpanesize}
+
+\wxheading{See also}
+
+\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}\\
+\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}\\
+\helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}
\membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition}
-\func{void}{SetSashPosition}{\param{const int }{position}, \param{const bool}{ redraw = TRUE}}
+\func{void}{SetSashPosition}{\param{int }{position}, \param{const bool}{ redraw = TRUE}}
Sets the sash position.
\membersection{wxSplitterWindow::SetMinimumPaneSize}\label{wxsplitterwindowsetminimumpanesize}
-\func{void}{SetMinimumPaneSize}{\param{const int }{paneSize}}
+\func{void}{SetMinimumPaneSize}{\param{int }{paneSize}}
Sets the minimum pane size.
\membersection{wxSplitterWindow::SetSplitMode}\label{wxsplitterwindowsetsplitmode}
-\func{void}{SetSplitMode}{\param{const int }{mode}}
+\func{void}{SetSplitMode}{\param{int }{mode}}
Sets the split mode.
\membersection{wxSplitterWindow::SplitHorizontally}\label{wxsplitterwindowsplithorizontally}
\func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
- \param{const int}{ sashPosition = -1}}
+ \param{int}{ sashPosition = 0}}
Initializes the top and bottom panes of the splitter window.
\docparam{window2}{The bottom pane.}
-\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
-is chosen.}
+\docparam{sashPosition}{The initial position of the sash. If this value is
+positive, it specifies the size of the upper pane. If it's negative, it's
+absolute value gives the size of the lower pane. Finally, specify 0 (default)
+to choose the default position (half of the total window height).}
\wxheading{Return value}
\wxheading{Remarks}
-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 \helpref{IsSplit}{wxsplitterwindowissplit}.
+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 \helpref{IsSplit}{wxsplitterwindowissplit}.
\wxheading{See also}
\helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}, \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit},\rtfsp
-\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}.
+\helpref{wxSplitterWindow::Unsplit}{wxsplitterwindowunsplit}
\membersection{wxSplitterWindow::SplitVertically}\label{wxsplitterwindowsplitvertically}
\func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2},
- \param{const int}{ sashPosition = -1}}
+ \param{int}{ sashPosition = 0}}
Initializes the left and right panes of the splitter window.
\docparam{window2}{The right pane.}
-\docparam{sashPosition}{The initial position of the sash. If the value is -1, a default position
-is chosen.}
+\docparam{sashPosition}{The initial position of the sash. If this value is
+positive, it specifies the size of the left pane. If it's negative, it's
+absolute value gives the size of the right pane. Finally, specify 0 (default)
+to choose the default position (half of the total window width).}
\wxheading{Return value}