X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b4715d08bf50050ae00df367d0c95666ca22d088..010d821b3138ae39c43403da64eb0bcde9af82ae:/src/generic/collpaneg.cpp diff --git a/src/generic/collpaneg.cpp b/src/generic/collpaneg.cpp index 176a597b85..1dc4e47e6e 100644 --- a/src/generic/collpaneg.cpp +++ b/src/generic/collpaneg.cpp @@ -4,7 +4,6 @@ // Author: Francesco Montorsi // Modified By: // Created: 8/10/2006 -// Id: $Id$ // Copyright: (c) Francesco Montorsi // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -50,23 +49,17 @@ const char wxCollapsiblePaneNameStr[] = "collapsiblePane"; // wxGenericCollapsiblePane //----------------------------------------------------------------------------- -wxDEFINE_EVENT( wxEVT_COMMAND_COLLPANE_CHANGED, wxCollapsiblePaneEvent ); +wxDEFINE_EVENT( wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEvent ); IMPLEMENT_DYNAMIC_CLASS(wxGenericCollapsiblePane, wxControl) 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; @@ -87,24 +80,22 @@ bool wxGenericCollapsiblePane::Create(wxWindow *parent, m_strLabel = label; + // sizer containing the expand button and possibly a static line + m_sz = new wxBoxSizer(wxHORIZONTAL); + #if defined( __WXMAC__ ) && !defined(__WXUNIVERSAL__) - // on Mac we use the disclosure triangle - // we need a light gray line above and below, lets approximate with the frame + // on Mac we use the special disclosure triangle button m_pStaticLine = NULL; - 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, 1); + m_pButton = new wxDisclosureTriangle(this, wxID_ANY, GetBtnLabel()); + m_sz->Add(m_pButton); #else // create children and lay them out using a wxBoxSizer // (so that we automatically get RTL features) m_pButton = new wxButton(this, wxID_ANY, GetBtnLabel(), wxPoint(0, 0), wxDefaultSize, wxBU_EXACTFIT); m_pStaticLine = new wxStaticLine(this, wxID_ANY); + // on other platforms we put the static line and the button horizontally - m_sz = new wxBoxSizer(wxHORIZONTAL); m_sz->Add(m_pButton, 0, wxLEFT|wxTOP|wxBOTTOM, GetBorder()); m_sz->Add(m_pStaticLine, 1, wxALIGN_CENTER|wxLEFT|wxRIGHT, GetBorder()); #endif @@ -170,7 +161,7 @@ void wxGenericCollapsiblePane::OnStateChange(const wxSize& sz) if (this->HasFlag(wxCP_NO_TLW_RESIZE)) { - // the user asked to explicitely handle the resizing itself... + // the user asked to explicitly handle the resizing itself... return; } @@ -198,6 +189,8 @@ void wxGenericCollapsiblePane::Collapse(bool collapse) if ( IsCollapsed() == collapse ) return; + InvalidateBestSize(); + // update our state m_pPane->Show(!collapse);