94 lines
3.1 KiB
C++
Executable File
94 lines
3.1 KiB
C++
Executable File
/**********************************************************************
|
|
*<
|
|
FILE: tvutil.h
|
|
|
|
DESCRIPTION: Track view utility plug-in class
|
|
|
|
CREATED BY: Rolf Berteig
|
|
|
|
HISTORY: 12/18/96
|
|
03/11/02 -- Adam Felt. Expanded the interfaces.
|
|
|
|
WARNING: Plugin compatibility is not preserved between R4.x and R5
|
|
for TrackviewUtility plugins. R4.x TrackViewUtility plugins need
|
|
to be recompiled before running on R5.x and later. R5 and later
|
|
plugins will not run properly on previous versions.
|
|
|
|
|
|
*> Copyright (c) 1996-2002, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef __TVUTIL_H__
|
|
#define __TVUTIL_H__
|
|
|
|
class TrackViewUtility;
|
|
#include "ref.h"
|
|
|
|
// The five track view major modes
|
|
#define TVMODE_EDITKEYS 0
|
|
#define TVMODE_EDITTIME 1
|
|
#define TVMODE_EDITRANGES 2
|
|
#define TVMODE_POSRANGES 3
|
|
#define TVMODE_EDITFCURVE 4
|
|
|
|
// This is an interface that is given to track view utilities
|
|
// that allows them to access the track view they were launched from.
|
|
class ITVUtility : public InterfaceServer {
|
|
public:
|
|
virtual int GetNumTracks()=0;
|
|
virtual Animatable *GetAnim(int i)=0;
|
|
virtual Animatable *GetClient(int i)=0;
|
|
virtual int GetSubNum(int i)=0;
|
|
virtual TSTR GetTrackName(int i)=0;
|
|
virtual BOOL IsSelected(int i)=0;
|
|
virtual void SetSelect(int i,BOOL sel)=0;
|
|
virtual HWND GetTrackViewHWnd()=0;
|
|
virtual int GetMajorMode()=0;
|
|
virtual Interval GetTimeSelection()=0;
|
|
virtual BOOL SubTreeMode()=0;
|
|
virtual Animatable *GetTVRoot()=0;
|
|
|
|
// This must be called when a track view utility is closing
|
|
// so that it can be unregistered from notifications
|
|
virtual void TVUtilClosing(TrackViewUtility *util)=0;
|
|
|
|
// Access to the trackview interface. R5 and later only
|
|
virtual ITreeView* GetTVInterface()=0;
|
|
};
|
|
|
|
// Results for TrackViewUtility::FilterAnim
|
|
#define FILTER_SUBTREE 0 // Filter out this anim and it's subtree
|
|
#define FILTER_NONE 1 // Don't filter anything
|
|
#define FILTER_ANIM -1 // Filter out this anim, but include it's subtree
|
|
#define FILTER_NODE -2 // Filter out this node and subAnims, but include it's children
|
|
|
|
|
|
// This is the base class for track view utilities. Plug-ins will
|
|
// derive their classes from this class.
|
|
class TrackViewUtility : public InterfaceServer {
|
|
public:
|
|
|
|
virtual void DeleteThis()=0;
|
|
virtual void BeginEditParams(Interface *ip,ITVUtility *iu) {}
|
|
virtual void EndEditParams(Interface *ip,ITVUtility *iu) {}
|
|
|
|
virtual void TrackSelectionChanged() {}
|
|
virtual void NodeSelectionChanged() {}
|
|
virtual void KeySelectionChanged() {}
|
|
virtual void TimeSelectionChanged() {}
|
|
virtual void MajorModeChanged() {}
|
|
virtual void TrackListChanged() {}
|
|
|
|
// available in R5 and later only
|
|
virtual int FilterAnim(Animatable* anim, Animatable* client, int subNum) {return FILTER_NONE;}
|
|
|
|
// used to identify registered utilities
|
|
virtual void GetClassName(TSTR& s) { s = TSTR(_T("")); }
|
|
virtual Class_ID ClassID() { return Class_ID(0,0); }
|
|
// end of R5 additions
|
|
};
|
|
|
|
|
|
|
|
#endif //__TVUTIL_H__
|