Allow wxPGProperty::Hide() to be called on unattached property (see #11987)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2010-04-24 10:13:22 +00:00
parent cc98c78510
commit 3ded4b22fe
4 changed files with 30 additions and 18 deletions

View File

@@ -1858,7 +1858,7 @@ public:
By default changes are applied recursively. Set this paramter By default changes are applied recursively. Set this paramter
wxPG_DONT_RECURSE to prevent this. wxPG_DONT_RECURSE to prevent this.
*/ */
inline bool Hide( bool hide, int flags = wxPG_RECURSE ); bool Hide( bool hide, int flags = wxPG_RECURSE );
bool IsExpanded() const bool IsExpanded() const
{ return (!(m_flags & wxPG_PROP_COLLAPSED) && GetChildCount()); } { return (!(m_flags & wxPG_PROP_COLLAPSED) && GetChildCount()); }
@@ -2328,6 +2328,8 @@ protected:
const wxVariantList* valueOverrides = NULL, const wxVariantList* valueOverrides = NULL,
wxPGHashMapS2S* childResults = NULL ) const; wxPGHashMapS2S* childResults = NULL ) const;
bool DoHide( bool hide, int flags );
void DoSetName(const wxString& str) { m_name = str; } void DoSetName(const wxString& str) { m_name = str; }
/** Deletes all sub-properties. */ /** Deletes all sub-properties. */

View File

@@ -2200,11 +2200,6 @@ inline void wxPGProperty::SetEditor( const wxString& editorName )
m_customEditor = wxPropertyGridInterface::GetEditorByName(editorName); m_customEditor = wxPropertyGridInterface::GetEditorByName(editorName);
} }
inline bool wxPGProperty::Hide( bool hide, int flags )
{
return GetGrid()->HideProperty(this, hide, flags);
}
inline bool wxPGProperty::SetMaxLength( int maxLen ) inline bool wxPGProperty::SetMaxLength( int maxLen )
{ {
return GetGrid()->SetPropertyMaxLength(this,maxLen); return GetGrid()->SetPropertyMaxLength(this,maxLen);

View File

@@ -1962,6 +1962,32 @@ const wxPGEditor* wxPGProperty::GetEditorClass() const
return editor; return editor;
} }
bool wxPGProperty::Hide( bool hide, int flags )
{
wxPropertyGrid* pg = GetGrid();
if ( pg )
return pg->HideProperty(this, hide, flags);
return DoHide( hide, flags );
}
bool wxPGProperty::DoHide( bool hide, int flags )
{
if ( !hide )
ClearFlag( wxPG_PROP_HIDDEN );
else
SetFlag( wxPG_PROP_HIDDEN );
if ( flags & wxPG_RECURSE )
{
unsigned int i;
for ( i = 0; i < GetChildCount(); i++ )
Item(i)->DoHide(hide, flags | wxPG_RECURSE_STARTS);
}
return true;
}
bool wxPGProperty::HasVisibleChildren() const bool wxPGProperty::HasVisibleChildren() const
{ {
unsigned int i; unsigned int i;

View File

@@ -1397,18 +1397,7 @@ bool wxPropertyGridPageState::DoSelectProperty( wxPGProperty* p, unsigned int fl
bool wxPropertyGridPageState::DoHideProperty( wxPGProperty* p, bool hide, int flags ) bool wxPropertyGridPageState::DoHideProperty( wxPGProperty* p, bool hide, int flags )
{ {
if ( !hide ) p->DoHide(hide, flags);
p->ClearFlag( wxPG_PROP_HIDDEN );
else
p->SetFlag( wxPG_PROP_HIDDEN );
if ( flags & wxPG_RECURSE )
{
unsigned int i;
for ( i = 0; i < p->GetChildCount(); i++ )
DoHideProperty(p->Item(i), hide, flags | wxPG_RECURSE_STARTS);
}
VirtualHeightChanged(); VirtualHeightChanged();
return true; return true;