]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/collpaneg.cpp
Don't force the child's m_isShown state to match that of the parent in CocoaAddChild.
[wxWidgets.git] / src / generic / collpaneg.cpp
index ad017b317f283d69f5644b501ad2dc29f966b648..ae5f0cde3c20ac7a50e541ce5ed98ff2802c0d6c 100644 (file)
@@ -26,6 +26,7 @@
     #include "wx/toplevel.h"
     #include "wx/button.h"
     #include "wx/sizer.h"
+    #include "wx/panel.h"
 #endif // !WX_PRECOMP
 
 #include "wx/statline.h"
@@ -38,7 +39,7 @@
 // implementation
 // ============================================================================
 
-const wxChar wxGenericCollapsiblePaneNameStr[] = wxT("genericCollapsiblePane");
+const wxChar wxCollapsiblePaneNameStr[] = wxT("collapsiblePane");
 
 //-----------------------------------------------------------------------------
 // wxGenericCollapsiblePane
@@ -85,9 +86,15 @@ bool wxGenericCollapsiblePane::Create(wxWindow *parent,
     m_sz->Add(m_pStaticLine, 1, wxALIGN_CENTER|wxLEFT|wxRIGHT, GetBorder());
 #endif
 
+    // FIXME: at least under wxCE and wxGTK1 the background is black if we don't do
+    //        this, no idea why...
+#if defined(__WXWINCE__) || (defined(__WXGTK__) && !defined(__WXGTK20__))
+    SetBackgroundColour(parent->GetBackgroundColour());
+#endif
+
     // do not set sz as our sizers since we handle the pane window without using sizers
-    m_pPane = new wxWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
-                           wxNO_BORDER);
+    m_pPane = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
+                          wxTAB_TRAVERSAL|wxNO_BORDER);
 
     // start as collapsed:
     m_pPane->Hide();
@@ -177,11 +184,11 @@ void wxGenericCollapsiblePane::OnStateChange(const wxSize& sz)
                 if (top->GetSizer())
                 {
                     // we have just set the size hints...
-                    wxSize sz = top->GetSizer()->CalcMin();
+                    wxSize szClient = top->GetSizer()->CalcMin();
 
                     // use SetClientSize() and not SetSize() otherwise the size for
                     // e.g. a wxFrame with a menubar wouldn't be correctly set
-                    top->SetClientSize(sz);
+                    top->SetClientSize(szClient);
                 }
                 else
                     top->Layout();