X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed6008f49fefb3eaaeba83916950e58e0437dd9b..fe62518e7c989b18653b9d07e19ba8a187f24cf1:/src/generic/collpaneg.cpp diff --git a/src/generic/collpaneg.cpp b/src/generic/collpaneg.cpp index d347294f26..dc9874f98c 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 @@ -39,29 +44,23 @@ // implementation // ============================================================================ -const wxChar wxCollapsiblePaneNameStr[] = wxT("collapsiblePane"); +const char wxCollapsiblePaneNameStr[] = "collapsiblePane"; //----------------------------------------------------------------------------- // wxGenericCollapsiblePane //----------------------------------------------------------------------------- -DEFINE_EVENT_TYPE(wxEVT_COMMAND_COLLPANE_CHANGED) +wxDEFINE_EVENT( wxEVT_COMMAND_COLLPANE_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; -#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(), - wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER ); - m_pButton->SetBackgroundColour( wxColour( 221, 226, 239 ) ); + // sizer containing the expand button and possibly a static line m_sz = new wxBoxSizer(wxHORIZONTAL); - // m_sz->Add(4,4); where shall we put it? - m_sz->Add( m_pButton, 1); + +#if defined( __WXMAC__ ) && !defined(__WXUNIVERSAL__) + // on Mac we use the special disclosure triangle button + m_pStaticLine = NULL; + 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 @@ -112,7 +109,7 @@ bool wxGenericCollapsiblePane::Create(wxWindow *parent, // do not set sz as our sizers since we handle the pane window without using sizers m_pPane = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, - wxTAB_TRAVERSAL|wxNO_BORDER); + wxTAB_TRAVERSAL|wxNO_BORDER, wxT("wxCollapsiblePanePane") ); // start as collapsed: m_pPane->Hide(); @@ -124,10 +121,10 @@ wxGenericCollapsiblePane::~wxGenericCollapsiblePane() { if (m_pButton) m_pButton->SetContainingSizer(NULL); - + if (m_pStaticLine) m_pStaticLine->SetContainingSizer(NULL); - + // our sizer is not deleted automatically since we didn't use SetSizer()! wxDELETE(m_sz); } @@ -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; } @@ -197,7 +194,7 @@ void wxGenericCollapsiblePane::Collapse(bool collapse) m_pPane->Show(!collapse); // update button label -#ifdef __WXMAC__ +#if defined( __WXMAC__ ) && !defined(__WXUNIVERSAL__) m_pButton->SetOpen( !collapse ); #else // NB: this must be done after updating our "state"