Difference between revisions of "User-defined properties"
Jump to navigation
Jump to search
Line 24: | Line 24: | ||
The property type will be inferred from <tt>value</tt>. Currently supported types are boolean, number, list, and string. Depending on the type, <tt>info</tt> should also point to a dictionary containing additional information. | The property type will be inferred from <tt>value</tt>. Currently supported types are boolean, number, list, and string. Depending on the type, <tt>info</tt> should also point to a dictionary containing additional information. | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ User-defined Properties | |+ User-defined Properties |
Latest revision as of 20:38, 22 November 2016
User-defined Properties
Properties can be created and added to objects dynamically at runtime, either from within a custom Action or in response to a hook. For instance, a custom text field could be added to all Shapes when they are created in response to the object_created hook:
def add_character_name_prop(shape):
if shape.isType("Shape"):
if not shape.property("character_name"):
prop = Property("character_name", "Character Name", "", {})
shape.addProperty(prop)
import hook
hook.add("object_created", add_character_name_prop)
User-defined properties can be removed using object.removeProperty.
The Property() constructor has the following signature:
Property(id, label, value, info=None, tooltip=None)
The property type will be inferred from value. Currently supported types are boolean, number, list, and string. Depending on the type, info should also point to a dictionary containing additional information.
Property type | value type | info dictionary members |
---|---|---|
boolean | True, False | ignored |
number | float | min=0.0, max=100.0 |
list | integer (index) | items=["Item 1", "Item 2"] |
string | string | type=string (default),dir,path,label |