Timeline Interfaces - kaisu1986/ATF GitHub Wiki
There are timeline interfaces for timelines themselves and for various kinds of objects in a timeline. These interfaces are UI-platform-agnostic (such as Windows® Forms or WPF) and reside in the Sce.Atf.Controls.Timelines namespace and Atf.Gui assembly.
This group of interfaces apply to timelines generally, including the timeline itself.
| Interface | Derives from/Implements | Properties, Methods | Description |
|---|---|---|---|
ITimeline
|
Groups, Markers, CreateGroup(), CreateMarker()
|
For timelines, which contain groups, markers, and timeline references. | |
IHierarchicalTimeline
|
ITimeline
|
References
|
For ITimeline objects that can contain sub-timelines.
|
IHierarchicalTimelineList
|
References
|
For ITimeline objects that can contain sub-timelines, and support inserting, removing, and counting those sub-timelines via an IList interface.
|
|
ITimelineDocument
|
IDocument, IObservableContext, IAdaptable
|
Timeline
|
For editable timeline documents. |
These interfaces are for objects in timelines. All of these objects are based on ITimelineObject, directly or indirectly.
| Interface | Derives from/Implements | Properties, Methods | Description |
|---|---|---|---|
ITimelineObject
|
None | For any object in a timeline. | |
ITimelineReference
|
IEvent
|
Target, Parent, Options
|
For objects that hold a reference to a timeline document. |
ITimelineObjectCreator
|
ITimelineObject
|
Create()
|
For timeline objects that can create new instances of the same kind of object that they are. Before using the Create() method on an object, test that it implements ITimelineObjectCreator. Create() does not allow client code to determine the correct object to create in the case where there are multiple implementers of these interfaces: IGroup, IMarker, ITrack, IInterval, and IKey.
|
IGroup
|
ITimelineObject
|
Name, Expanded, Timeline, Tracks, CreateTrack()
|
For groups, which contain zero or more tracks, and can be expanded or collapsed in a timeline viewing control. |
ITrack
|
ITimelineObject
|
Name, Group, Intervals, Keys, CreateInterval(), CreateKey()
|
For tracks, which contain zero or more events. |
IEvent
|
ITimelineObject
|
Start, Length, Color, Name
|
For Events. This is the base interface for IInterval, IKey and IMarker.
|
IInterval
|
IEvent
|
Track
|
For intervals, which are zero or greater length events on a track. |
IKey
|
IEvent
|
Track
|
For keys, which are zero length events on a track. |
IMarker
|
IEvent
|
Timeline
|
For markers, which are zero length events on all tracks in a timeline. |