\section{wxSplitterWindow overview}\label{wxsplitterwindowoverview}

Classes: \helpref{wxSplitterWindow}{wxsplitterwindow}

The following screenshot shows the appearance of a splitter window with a vertical split.

$$\image{8cm;0cm}{splitter.eps}$$

The style wxSP\_3D has been used to show a 3D border and 3D sash.

\subsection{Example}

The following fragment shows how to create a splitter window, creating two
subwindows and hiding one of them.

{\small
\begin{verbatim}
  splitter = new wxSplitterWindow(this, 0, 0, 400, 400, wxSP_3D);

  leftCanvas = new MyCanvas(splitter);
  leftCanvas->SetBackground(wxRED_BRUSH);
  leftCanvas->SetScrollbars(20, 20, 50, 50, 4, 4);

  rightCanvas = new MyCanvas(splitter);
  rightCanvas->SetBackground(wxCYAN_BRUSH);
  rightCanvas->SetScrollbars(20, 20, 50, 50, 4, 4);
  rightCanvas->Show(FALSE);

  splitter->Initialize(leftCanvas);

  // Set this to prevent unsplitting
//    splitter->SetMinimumPaneSize(20);
\end{verbatim}
}

The next fragment shows how the splitter window can be manipulated after creation.

{\small
\begin{verbatim}
  void MyFrame::OnSplitVertical(wxCommandEvent& event)
  {
        if ( splitter->IsSplit() )
            splitter->Unsplit();
        leftCanvas->Show(TRUE);
        rightCanvas->Show(TRUE);
        splitter->SplitVertically( leftCanvas, rightCanvas );
  }

  void MyFrame::OnSplitHorizontal(wxCommandEvent& event)
  {
        if ( splitter->IsSplit() )
            splitter->Unsplit();
        leftCanvas->Show(TRUE);
        rightCanvas->Show(TRUE);
        splitter->SplitHorizontally( leftCanvas, rightCanvas );
  }

  void MyFrame::OnUnsplit(wxCommandEvent& event)
  {
        if ( splitter->IsSplit() )
            splitter->Unsplit();
  }
\end{verbatim}
}

