- wxDELETE( m_facePen );
- wxDELETE( m_faceBrush );
- wxDELETE( m_mediumShadowPen );
- wxDELETE( m_darkShadowPen );
- wxDELETE( m_lightShadowPen );
- wxDELETE( m_hilightPen );
-
- // Shadow colours
-#if defined(__WIN95__)
- wxColour faceColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
- m_facePen = new wxPen(faceColour, 1, wxSOLID);
- m_faceBrush = new wxBrush(faceColour, wxSOLID);
-
- wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW));
- m_mediumShadowPen = new wxPen(mediumShadowColour, 1, wxSOLID);
-
- wxColour darkShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DDKSHADOW));
- m_darkShadowPen = new wxPen(darkShadowColour, 1, wxSOLID);
-
- wxColour lightShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT));
- m_lightShadowPen = new wxPen(lightShadowColour, 1, wxSOLID);
-
- wxColour hilightColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT));
- m_hilightPen = new wxPen(hilightColour, 1, wxSOLID);
-#else // !Win32
- m_facePen = new wxPen("LIGHT GREY", 1, wxSOLID);
- m_faceBrush = new wxBrush("LIGHT GREY", wxSOLID);
- m_mediumShadowPen = new wxPen("GREY", 1, wxSOLID);
- m_darkShadowPen = new wxPen("BLACK", 1, wxSOLID);
- m_lightShadowPen = new wxPen("LIGHT GREY", 1, wxSOLID);
- m_hilightPen = new wxPen("WHITE", 1, wxSOLID);
-#endif // Win32/!Win32
+ wxCHECK_RET(m_windowTwo, wxT("splitter: no window to remove"));
+
+ // new code should handle events instead of using the virtual functions
+ wxSplitterEvent event(wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, this);
+ event.m_data.pt.x = x;
+ event.m_data.pt.y = y;
+ if ( DoSendEvent(event) )
+ {
+ if ( GetMinimumPaneSize() == 0 || m_permitUnsplitAlways )
+ {
+ wxWindow* win = m_windowTwo;
+ if ( Unsplit(win) )
+ {
+ wxSplitterEvent unsplitEvent(wxEVT_COMMAND_SPLITTER_UNSPLIT, this);
+ unsplitEvent.m_data.win = win;
+ (void)DoSendEvent(unsplitEvent);
+ }
+ }
+ }
+ //else: blocked by user
+}
+
+void wxSplitterWindow::OnUnsplit(wxWindow *winRemoved)
+{
+ // call this before calling the event handler which may delete the window
+ winRemoved->Show(FALSE);