Scripted TrackViewUtility plug-ins are declared by specifying the <superclass>
as TrackViewUtility
. They can be used to implement new Utilities to manipulate tracks and keys in TrackView. Their UI can be registered as child of the respective TrackView.
EXAMPLE:
plugin TrackViewUtility KeyValueUtility name:"Current Value Editor" category:"Scripted TV Utilities" classID:#(0x57088e0e, 0x50b6e750) ( -- Body of Plug-in here... )
Event Handlers:
The following Event Handlers can be implemented by a Scripted TrackViewUtility plug-in:
on trackSelectionChanged do
This handler will be called whenever the track selection has changed.
on nodeSelectionChanged do
This handler will be called whenever the node selection has changed.
on keySelectionChanged do
This handler will be called whenever the keys selection has changed.
on timeSelectionChanged do
This handler will be called whenever the time selection has changed.
on MajorModeChanged do
This handler will be called whenever the Track View mode has changed.
on TrackListChanged do
This handler will be called whenever the track list has changed.
on TrackViewClosed do
This handler will be called whenever the Track View has been closed. It can be used to do clean-up work before closing the plug-in.
on Init <value> do
This handler will be called whenever the TrackViewUtility plug-in has been initialized. It can be used to do initialization work before opening the plug-in. The value returned contains the parent Track View (the TrackViewUtility plug-in called from). You can use the value to get the handle of the TrackView and register the dialog of the utility as child of the Track View.
EXAMPLE:
on Init val do ( --Create a dialog from the Rollout, make it child of the Track View createDialog valueRollout parent:(val.ui.hwnd) --Register the dialog as Dialog Bar, make it child of the Track View cui.registerDialogBar valueRollout parent:val.ui.hwnd )
on filterAnim <anim>subAnim <anim>client <index>index do
This handler will be called for every object to be displayed in the TrackView. It has three arguments: the subAnim object to be displayed, its client (parent object), and the index inside the client.
The return value of this handler can be:
#skip - The TrackView track must be filtered out and not displayed
#add - The TrackView track must be displayed