/** This constructor is required for NULL. */
wxPGPropArgCls( int )
{
- m_ptr.property = (wxPGProperty*) NULL;
+ m_ptr.property = NULL;
m_flags = IsProperty;
}
wxPGProperty* GetPtr( wxPropertyGridInterface* iface ) const;
IsWxString = 0x01,
IsCharPtr = 0x02,
IsWCharPtr = 0x04,
- OwnsWxString = 0x10,
+ OwnsWxString = 0x10
};
union
*/
virtual void Clear() = 0;
- /** Deselect current selection, if any. Returns true if success
- (ie. validator did not intercept). */
- bool ClearSelection();
+ /**
+ Clears current selection, if any.
+
+ @param validation
+ If set to @false, deselecting the property will always work,
+ even if its editor had invalid value in it.
+
+ @return Returns @true if successful or if there was no selection. May
+ fail if validation was enabled and active editor had invalid
+ value.
+ */
+ bool ClearSelection( bool validation = false);
/** Resets modified status of all properties.
*/
*/
void DeleteProperty( wxPGPropArg id );
+ /**
+ Removes and returns a property.
+
+ @param id
+ Pointer or name of a property.
+
+ @remarks Removed property cannot have any children.
+ */
+ wxPGProperty* RemoveProperty( wxPGPropArg id );
+
/** Disables property. */
bool DisableProperty( wxPGPropArg id ) { return EnableProperty(id,false); }
}
/**
- Returns id of property with given name (case-sensitive).
+ Returns pointer to a property with given name (case-sensitive).
+ If there is no property with such name, @NULL pointer is returned.
- If there is no property with such name, returned property id is invalid
- ( i.e. it will return false with IsOk method).
- @remarks
- - Sub-properties (i.e. properties which have parent that is not
- category or root) can not be accessed globally by their name.
- Instead, use "<property>.<subproperty>" in place of "<subproperty>".
+ @remarks Properties which have non-category, non-root parent
+ can not be accessed globally by their name. Instead, use
+ "<property>.<subproperty>" instead of "<subproperty>".
*/
wxPGProperty* GetProperty( const wxString& name ) const
{
*/
const wxPGAttributeStorage& GetPropertyAttributes( wxPGPropArg id ) const
{
- wxPG_PROP_ARG_CALL_PROLOG_RETVAL(*((const wxPGAttributeStorage*)NULL));
+ // If 'id' refers to invalid property, then we will return dummy
+ // attributes (ie. root property's attributes, which contents should
+ // should always be empty and of no consequence).
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(m_pState->DoGetRoot()->GetAttributes());
return p->GetAttributes();
}
static void SetBoolChoices( const wxString& trueChoice,
const wxString& falseChoice );
- /** Sets or clears flag(s) of all properties in given array.
- @param flags
- Property flags to set or clear.
- @param inverse
- Set to true if you want to clear flag instead of setting them.
- */
- void SetPropertiesFlag( const wxArrayPGProperty& srcArr,
- wxPGProperty::FlagType flags,
- bool inverse = false );
-
/** Sets an attribute for this property.
@param name
Text identifier of attribute. See @ref propgrid_property_attributes.
*/
void SetPropertyAttributeAll( const wxString& attrName, wxVariant value );
- /** Sets attributes from a wxPGAttributeStorage.
+ /**
+ Sets background colour of a property.
+
+ @param id
+ Property name or pointer.
+
+ @param colour
+ New background colour.
+
+ @param recursively
+ If True, child properties are affected recursively. Property
+ categories are skipped if this flag is used.
+ */
+ void SetPropertyBackgroundColour( wxPGPropArg id,
+ const wxColour& colour,
+ bool recursively = true );
+
+ /** Resets text and background colours of given property.
+ */
+ void SetPropertyColoursToDefault( wxPGPropArg id );
+
+ /**
+ Sets text colour of a property.
+
+ @param id
+ Property name or pointer.
+
+ @param colour
+ New background colour.
+
+ @param recursively
+ If True, child properties are affected recursively. Property
+ categories are skipped if this flag is used.
+ */
+ void SetPropertyTextColour( wxPGPropArg id,
+ const wxColour& col,
+ bool recursively = true );
+
+ /**
+ Returns background colour of first cell of a property.
*/
- void SetPropertyAttributes( wxPGPropArg id,
- const wxPGAttributeStorage& attributes )
+ wxColour GetPropertyBackgroundColour( wxPGPropArg id ) const
{
- wxPG_PROP_ARG_CALL_PROLOG()
- p->SetAttributes(attributes);
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour())
+ return p->GetCell(0).GetBgCol();
+ }
+
+ /**
+ Returns text colour of first cell of a property.
+ */
+ wxColour GetPropertyTextColour( wxPGPropArg id ) const
+ {
+ wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour())
+ return p->GetCell(0).GetFgCol();
}
/** Sets text, bitmap, and colours for given column's cell.
const wxString& text = wxEmptyString,
const wxBitmap& bitmap = wxNullBitmap,
const wxColour& fgCol = wxNullColour,
- const wxColour& bgCol = wxNullColour )
- {
- wxPG_PROP_ARG_CALL_PROLOG()
- p->SetCell( column, new wxPGCell(text, bitmap, fgCol, bgCol) );
- }
+ const wxColour& bgCol = wxNullColour );
#ifndef SWIG
/** Sets client data (void*) of a property.
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 SetValidationFailureBehavior( int vfbFlags );
+ /**
+ Sorts all properties recursively.
+
+ @param flags
+ This can contain any of the following options:
+ wxPG_SORT_TOP_LEVEL_ONLY: Only sort categories and their
+ immediate children. Sorting done by wxPG_AUTO_SORT option
+ uses this.
+
+ @see SortChildren, wxPropertyGrid::SetSortFunction
+ */
+ void Sort( int flags = 0 );
+
+ /**
+ Sorts children of a property.
+
+ @param id
+ Name or pointer to a property.
+
+ @param flags
+ This can contain any of the following options:
+ wxPG_RECURSE: Sorts recursively.
+
+ @see Sort, wxPropertyGrid::SetSortFunction
+ */
+ void SortChildren( wxPGPropArg id, int flags = 0 )
+ {
+ wxPG_PROP_ARG_CALL_PROLOG()
+ m_pState->DoSortChildren(p, flags);
+ }
+
#ifdef SWIG
%pythoncode {
def MapType(class_,factory):