Property attributes are values associated with a property that affect the way the property is displayed in the iTool property sheet interface. Attributes could be considered properties-of-properties; as with actual properties, special methods are used to get and set attribute values.
Property attributes can be set in the call to the IDLitComponent::RegisterProperty method; simply include the attribute name and its value as a keyword-value pair.
If a property has already been registered, you can change the registered attribute values using the SetPropertyAttribute method of the IDLitComponent class:
self->SetPropertyAttribute, PropertyIdentifier, ATTRIBUTE = value
where PropertyIdentifier is a string that uniquely identifies the property, ATTRIBUTE is one of the property attributes described in Available Property Attributes, and value is the attribute value. See Property Identifiers for a discussion of property identifier strings.
A typical property attribute modification call looks like the following:
self->SetPropertyAttribute, 'COLOR', NAME = 'Surface color'
Here, we change the Name attribute of the COLOR property; when this property is displayed in a property sheet, the label will be
See IDLitComponent::SetPropertyAttribute for additional details.
Every registered iTool property has the following attributes. Property attributes can be specified as keywords to the RegisterProperty method of the IDLitComponent class. Attributes whose names are followed by the word "Get" can be retrieved using the GetPropertyAttribute method of the IDLitComponent class; attributes whose names are followed by the word "Set" can be set using the SetPropertyAttribute method.
A string value containing a text description of the property. This string is displayed in the property sheet interface.
An array of string values to be displayed in the property sheet interface as an enumerated list. This property type allows the user to select a string value from a dropdown list in the user interface, but returns the integer index of the selected item as the value of the property. This attribute is only used by properties of TYPE = 9 (enumerated list).
A Boolean flag that specifies whether the property should be displayed in the property sheet interface.
A string value that is displayed as the property name in the property sheet interface. If the NAME attribute is not specified in the call to the RegisterProperty method, this attribute will be set to the property identifier string.
A string value containing the property identifier. See Property Identifiers for details.
A Boolean flag that specifies whether the property should be editable by the user when displayed in the property sheet interface. Properties with the SENSITIVE attribute set to 0 are displayed, but are dimmed and are not editable.
The property data type code for the property. See Property Data Types for details.
A Boolean flag that indicates that the property should appear as a blank cell when displayed in the property sheet interface. This is useful in situations where properties of multiple objects are displayed in the property sheet (either because multiple objects are selected, or because the objects have been grouped).
A string that represents the value of a user-defined property. See User Defined Property Types for details.
For integer or float types (TYPE = 2 or TYPE = 3), set this keyword to a two- or three-element vector specifying the [minimum, maximum] or [minimum, maximum, increment] for valid values of the property.
What is displayed for the property sheet number cell depends upon the following: