if ( column == 1 )
{
+ editor = property->GetColumnEditor(column);
+
if ( !isUnspecified )
{
- editor = property->GetColumnEditor(column);
-
// Regular property value
wxSize imageSize = propertyGrid->GetImageSize(property, item);
{
text = vInlineHelp.GetString();
dc.SetTextForeground(propertyGrid->GetCellDisabledTextColour());
+
+ // Must make the editor NULL to override it's own rendering
+ // code.
+ editor = NULL;
}
}
}
}
#endif
+ wxPropertyGrid* pg = GetGrid();
+
if ( IsValueUnspecified() )
- return wxEmptyString;
+ return pg->GetUnspecifiedValueText(argFlags);
if ( m_commonValue == -1 )
{
//
// Return common value's string representation
- wxPropertyGrid* pg = GetGrid();
const wxPGCommonValue* cv = pg->GetCommonValue(m_commonValue);
if ( argFlags & wxPG_FULL_VALUE )
UpdateParentValues();
//
- // Update editor control
- //
-
- // We need to check for these, otherwise GetGrid() may fail.
+ // Update editor control.
if ( flags & wxPG_SETVAL_REFRESH_EDITOR )
{
- RefreshEditor();
wxPropertyGrid* pg = GetGridIfDisplayed();
if ( pg )
+ {
+ wxPGProperty* selected = pg->GetSelectedProperty();
+
+ // Only refresh the control if this was selected, or
+ // this was some parent of selected, or vice versa)
+ if ( selected && (selected == this ||
+ selected->IsSomeParent(this) ||
+ this->IsSomeParent(selected)) )
+ RefreshEditor();
+
pg->DrawItemAndValueRelated(this);
+ }
}
}