X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ceed261f809dacf8f64c2287c5de9e45d22e5cb..424da8bdb9f05243d8888d78a56ab0cc3f615a6c:/src/propgrid/property.cpp diff --git a/src/propgrid/property.cpp b/src/propgrid/property.cpp index e759aa5d72..37edd533d9 100644 --- a/src/propgrid/property.cpp +++ b/src/propgrid/property.cpp @@ -499,6 +499,23 @@ void wxPGProperty::InitAfterAdded( wxPropertyGridPageState* pageState, wxPGProperty* parent = m_parent; bool parentIsRoot = parent->IsKindOf(CLASSINFO(wxPGRootProperty)); + // + // Convert invalid cells to default ones in this grid + for ( unsigned int i=0; iGetPropertyDefaultCell(); + const wxPGCell& catDefCell = propgrid->GetCategoryDefaultCell(); + + if ( !HasFlag(wxPG_PROP_CATEGORY) ) + cell = propDefCell; + else + cell = catDefCell; + } + } + m_parentState = pageState; #if wxPG_COMPATIBILITY_1_4 @@ -621,6 +638,27 @@ void wxPGProperty::InitAfterAdded( wxPropertyGridPageState* pageState, } } +void wxPGProperty::OnDetached(wxPropertyGridPageState* WXUNUSED(state), + wxPropertyGrid* propgrid) +{ + if ( propgrid ) + { + const wxPGCell& propDefCell = propgrid->GetPropertyDefaultCell(); + const wxPGCell& catDefCell = propgrid->GetCategoryDefaultCell(); + + // Make default cells invalid + for ( unsigned int i=0; iGetPropertyDefaultCell(); - const wxPGCell& catDefCell = pg->GetCategoryDefaultCell(); + if ( pg ) + { + // Work around possible VC6 bug by using intermediate variables + const wxPGCell& propDefCell = pg->GetPropertyDefaultCell(); + const wxPGCell& catDefCell = pg->GetCategoryDefaultCell(); - if ( !HasFlag(wxPG_PROP_CATEGORY) ) - defaultCell = propDefCell; - else - defaultCell = catDefCell; + if ( !HasFlag(wxPG_PROP_CATEGORY) ) + defaultCell = propDefCell; + else + defaultCell = catDefCell; + } // TODO: Replace with resize() call unsigned int cellCountMax = column+1;