Difference between revisions of "User-defined properties"
Jump to navigation
Jump to search
Line 26: | Line 26: | ||
The available hooks are: | The available hooks are: | ||
{| class="wikitable" | {| class="wikitable" | ||
+ | |+ User-defined Properties | ||
! Property type!!value type!!info dictionary members | ! Property type!!value type!!info dictionary members | ||
|- | |- | ||
− | |boolean|True or False|ignored | + | |boolean||True or False||ignored |
|- | |- | ||
− | |number|float|<tt>min</tt>, <tt>max</tt> | + | |number||float||<tt>min</tt>, <tt>max</tt> |
|- | |- | ||
|} | |} |
Revision as of 20:33, 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.
The available hooks are:
Property type | value type | info dictionary members |
---|---|---|
boolean | True or False | ignored |
number | float | min, max |