X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04443021bcfd4a86b6bb660feeca0928139448ce..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/generic/collpaneg.cpp?ds=inline diff --git a/src/generic/collpaneg.cpp b/src/generic/collpaneg.cpp index 85874c573f..b04b142f51 100644 --- a/src/generic/collpaneg.cpp +++ b/src/generic/collpaneg.cpp @@ -16,6 +16,11 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + #include "wx/defs.h" #if wxUSE_COLLPANE && wxUSE_BUTTON && wxUSE_STATLINE @@ -45,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; @@ -82,24 +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 - // 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 @@ -160,12 +157,12 @@ wxString wxGenericCollapsiblePane::GetBtnLabel() const void wxGenericCollapsiblePane::OnStateChange(const wxSize& sz) { // minimal size has priority over the best size so set here our min size - SetMinSize(sz); +// SetMinSize(sz); SetSize(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; } @@ -193,6 +190,8 @@ void wxGenericCollapsiblePane::Collapse(bool collapse) if ( IsCollapsed() == collapse ) return; + InvalidateBestSize(); + // update our state m_pPane->Show(!collapse);