Allow wxPGProperty::IsChildSelected() to work recursively

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2011-05-20 14:26:17 +00:00
parent df5f11feee
commit 1d8340b956
3 changed files with 11 additions and 4 deletions

View File

@@ -2390,7 +2390,7 @@ protected:
/**
Returns true if child property is selected.
*/
bool IsChildSelected() const;
bool IsChildSelected( bool recursive = false ) const;
// Removes child property with given pointer. Does not delete it.
void RemoveChild( wxPGProperty* p );

View File

@@ -2569,12 +2569,19 @@ void wxPGProperty::DeleteChildren()
}
}
bool wxPGProperty::IsChildSelected() const
bool wxPGProperty::IsChildSelected( bool recursive ) const
{
size_t i;
for ( i = 0; i < GetChildCount(); i++ )
{
if ( m_parentState->DoIsPropertySelected( Item(i) ) )
wxPGProperty* child = Item(i);
// Test child
if ( m_parentState->DoIsPropertySelected( child ) )
return true;
// Test sub-childs
if ( recursive && child->IsChildSelected( recursive ) )
return true;
}

View File

@@ -2600,7 +2600,7 @@ void wxPropertyGrid::DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 )
void wxPropertyGrid::RefreshProperty( wxPGProperty* p )
{
if ( m_pState->DoIsPropertySelected(p) || p->IsChildSelected() )
if ( m_pState->DoIsPropertySelected(p) || p->IsChildSelected(true) )
{
// NB: We must copy the selection.
wxArrayPGProperty selection = m_pState->m_selection;