X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/588ca87143ddc9b069cb2312863bcc7cd7dd68ce..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/generic/collpaneg.cpp diff --git a/src/generic/collpaneg.cpp b/src/generic/collpaneg.cpp index b032263be6..b04b142f51 100644 --- a/src/generic/collpaneg.cpp +++ b/src/generic/collpaneg.cpp @@ -50,23 +50,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,22 +81,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 + // on Mac we use the special disclosure triangle button m_pStaticLine = NULL; - m_pButton = new wxDisclosureTriangle(this, wxID_ANY, GetBtnLabel(), - wxDefaultPosition, wxDefaultSize, - style & wxBORDER_MASK); - m_sz = new wxBoxSizer(wxHORIZONTAL); - m_sz->Add(m_pButton, wxSizerFlags(1).Expand()); + 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 @@ -168,7 +162,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; } @@ -196,6 +190,8 @@ void wxGenericCollapsiblePane::Collapse(bool collapse) if ( IsCollapsed() == collapse ) return; + InvalidateBestSize(); + // update our state m_pPane->Show(!collapse);