const wxRect* clip_rect,
bool isBuffered ) const;
- void DoSetPropertyValueUnspecified( wxPGProperty* p );
-
/** Draws an expand/collapse (ie. +/-) button.
*/
virtual void DrawExpanderButton( wxDC& dc, const wxRect& rect,
If it has children (it may be category), then the same thing is done to
them.
*/
- void SetPropertyValueUnspecified( wxPGPropArg id );
+ void SetPropertyValueUnspecified( wxPGPropArg id )
+ {
+ wxPG_PROP_ARG_CALL_PROLOG()
+ wxVariant nullVariant;
+ SetPropVal(p, nullVariant);
+ }
#ifndef SWIG
/** Sets various property values from a list of wxVariants. If property with
void DoSetPropertyValues( const wxVariantList& list,
wxPGProperty* default_category );
- void DoSetPropertyValueUnspecified( wxPGProperty* p );
-
void SetSplitterLeft( bool subProps = false );
/** Set virtual width for this particular page. */
{
m_value = value;
OnSetValue();
-
- if ( !(flags & wxPG_SETVAL_FROM_PARENT) )
- UpdateParentValues();
}
if ( flags & wxPG_SETVAL_BY_USER )
}
}
+ if ( !(flags & wxPG_SETVAL_FROM_PARENT) )
+ UpdateParentValues();
+
//
// Update editor control
//
RecalculateVirtualSize();
}
-// -----------------------------------------------------------------------
-// wxPropertyGrid property value setting and getting
-// -----------------------------------------------------------------------
-
-void wxPropertyGrid::DoSetPropertyValueUnspecified( wxPGProperty* p )
-{
- m_pState->DoSetPropertyValueUnspecified(p);
- DrawItemAndChildren(p);
-
- wxPGProperty* parent = p->GetParent();
- while ( parent &&
- (parent->GetFlags() & wxPG_PROP_PARENTAL_FLAGS) == wxPG_PROP_MISC_PARENT )
- {
- DrawItem(parent);
- parent = parent->GetParent();
- }
-}
-
// -----------------------------------------------------------------------
// wxPropertyGrid property operations
// -----------------------------------------------------------------------
wnd->SetFont(GetFont());
}
- p->GetEditorClass()->UpdateControl(p, wnd);
+ const wxPGEditor* editorClass = p->GetEditorClass();
+
+ editorClass->UpdateControl(p, wnd);
+
+ if ( p->IsValueUnspecified() )
+ editorClass ->SetValueToUnspecified(p, wnd);
}
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
-void wxPropertyGridInterface::SetPropertyValueUnspecified( wxPGPropArg id )
-{
- wxPG_PROP_ARG_CALL_PROLOG()
- wxPropertyGrid* propGrid = p->GetGridIfDisplayed();
- if ( propGrid )
- propGrid->DoSetPropertyValueUnspecified(p);
- else
- p->GetParentState()->DoSetPropertyValueUnspecified(p);
-}
-
-// -----------------------------------------------------------------------
-
void wxPropertyGridInterface::ClearModifiedStatus()
{
unsigned int pageIndex = 0;
return false;
}
-// -----------------------------------------------------------------------
-
-void wxPropertyGridPageState::DoSetPropertyValueUnspecified( wxPGProperty* p )
-{
- wxCHECK_RET( p, wxT("invalid property id") );
-
- if ( !p->IsValueUnspecified() )
- {
- // Value should be set first - editor class methods may need it
- p->m_value.MakeNull();
-
- wxASSERT( m_pPropGrid );
-
- if ( m_pPropGrid->GetState() == this )
- {
- if ( m_pPropGrid->m_selected == p && m_pPropGrid->m_wndEditor )
- {
- p->GetEditorClass()->SetValueToUnspecified(p, m_pPropGrid->GetEditorControl());
- }
- }
-
- unsigned int i;
- for ( i = 0; i < p->GetChildCount(); i++ )
- DoSetPropertyValueUnspecified( p->Item(i) );
- }
-}
-
// -----------------------------------------------------------------------
// wxPropertyGridPageState property operations
// -----------------------------------------------------------------------