+ event.Enable( m_splitter->IsSplit() );
+}
+
+// ----------------------------------------------------------------------------
+// MySplitterWindow
+// ----------------------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(MySplitterWindow, wxSplitterWindow)
+ EVT_SPLITTER_SASH_POS_CHANGED(-1, MySplitterWindow::OnPositionChanged)
+ EVT_SPLITTER_SASH_POS_CHANGING(-1, MySplitterWindow::OnPositionChanging)
+
+ EVT_SPLITTER_DCLICK(-1, MySplitterWindow::OnDClick)
+
+ EVT_SPLITTER_UNSPLIT(-1, MySplitterWindow::OnUnsplit)
+END_EVENT_TABLE()
+
+MySplitterWindow::MySplitterWindow(wxFrame *parent)
+ : wxSplitterWindow(parent, -1,
+ wxDefaultPosition, wxDefaultSize,
+ wxSP_3D | wxSP_LIVE_UPDATE | wxCLIP_CHILDREN)
+{
+ m_frame = parent;
+}
+
+void MySplitterWindow::OnPositionChanged(wxSplitterEvent& event)
+{
+ wxLogStatus(m_frame, _T("Position has changed, now = %d (or %d)"),
+ event.GetSashPosition(), GetSashPosition());
+
+ event.Skip();
+}
+
+void MySplitterWindow::OnPositionChanging(wxSplitterEvent& event)
+{
+ wxLogStatus(m_frame, _T("Position is changing, now = %d (or %d)"),
+ event.GetSashPosition(), GetSashPosition());
+
+ event.Skip();
+}
+
+void MySplitterWindow::OnDClick(wxSplitterEvent& event)
+{
+ m_frame->SetStatusText(_T("Splitter double clicked"), 1);
+
+ event.Skip();