]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/collpaneg.cpp
When Cocoa sends [tabView:didSelectTabViewItem:] create a page changed event
[wxWidgets.git] / src / generic / collpaneg.cpp
index 8eb359e81b4f43caf74a66d7fd1433e2df53c285..ac01c8942c0b6bd0c7d6657e7d8c51151c556568 100644 (file)
@@ -52,8 +52,21 @@ IMPLEMENT_DYNAMIC_CLASS(wxCollapsiblePaneEvent, wxCommandEvent)
 BEGIN_EVENT_TABLE(wxGenericCollapsiblePane, wxControl)
     EVT_BUTTON(wxID_ANY, wxGenericCollapsiblePane::OnButton)
     EVT_SIZE(wxGenericCollapsiblePane::OnSize)
+
+    WX_EVENT_TABLE_CONTROL_CONTAINER(wxGenericCollapsiblePane)
 END_EVENT_TABLE()
 
+WX_DELEGATE_TO_CONTROL_CONTAINER(wxGenericCollapsiblePane, wxControl)
+
+void wxGenericCollapsiblePane::Init()
+{
+    WX_INIT_CONTROL_CONTAINER();
+
+    m_pButton = NULL;
+    m_pPane = NULL;
+    m_pStaticLine = NULL;
+    m_sz = NULL;
+}
 
 bool wxGenericCollapsiblePane::Create(wxWindow *parent,
                                       wxWindowID id,
@@ -71,11 +84,14 @@ bool wxGenericCollapsiblePane::Create(wxWindow *parent,
 
 #ifdef __WXMAC__
     // on Mac we use the disclosure triangle
+    // we need a light gray line above and below, lets approximate with the frame
     m_pStaticLine = NULL;
-    m_pButton = new wxDisclosureTriangle( this, wxID_ANY, GetBtnLabel() );
+    m_pButton = new wxDisclosureTriangle( this, wxID_ANY, GetBtnLabel(), 
+                                         wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER );
+    m_pButton->SetBackgroundColour( wxColour( 221, 226, 239 ) );
     m_sz = new wxBoxSizer(wxHORIZONTAL);
     // m_sz->Add(4,4); where shall we put it?
-    m_sz->Add( m_pButton );
+    m_sz->Add( m_pButton, 1);
 #else
     // create children and lay them out using a wxBoxSizer
     // (so that we automatically get RTL features)
@@ -133,7 +149,12 @@ wxSize wxGenericCollapsiblePane::DoGetBestSize() const
 
 wxString wxGenericCollapsiblePane::GetBtnLabel() const
 {
+    // on mac the triangle indicates the state, no string change
+#ifdef __WXMAC__
+    return m_strLabel;
+#else
     return m_strLabel + (IsCollapsed() ? wxT(" >>") : wxT(" <<"));
+#endif
 }
 
 void wxGenericCollapsiblePane::OnStateChange(const wxSize& sz)
@@ -218,7 +239,7 @@ void wxGenericCollapsiblePane::Collapse(bool collapse)
 
     // update button label
 #ifdef __WXMAC__
-    m_pButton->SetLabel(GetBtnLabel());
+    m_pButton->SetOpen( !collapse );
 #else
     // NB: this must be done after updating our "state"
     m_pButton->SetLabel(GetBtnLabel());