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:
@@ -2390,7 +2390,7 @@ protected:
|
|||||||
/**
|
/**
|
||||||
Returns true if child property is selected.
|
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.
|
// Removes child property with given pointer. Does not delete it.
|
||||||
void RemoveChild( wxPGProperty* p );
|
void RemoveChild( wxPGProperty* p );
|
||||||
|
@@ -2569,12 +2569,19 @@ void wxPGProperty::DeleteChildren()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxPGProperty::IsChildSelected() const
|
bool wxPGProperty::IsChildSelected( bool recursive ) const
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
for ( i = 0; i < GetChildCount(); 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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2600,7 +2600,7 @@ void wxPropertyGrid::DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 )
|
|||||||
|
|
||||||
void wxPropertyGrid::RefreshProperty( wxPGProperty* p )
|
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.
|
// NB: We must copy the selection.
|
||||||
wxArrayPGProperty selection = m_pState->m_selection;
|
wxArrayPGProperty selection = m_pState->m_selection;
|
||||||
|
Reference in New Issue
Block a user