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