#pragma once #ifndef TPARAMCHANGE_INCLUDED #define TPARAMCHANGE_INCLUDED // TnzCore includes #include "tcommon.h" #undef DVAPI #undef DVVAR #ifdef TPARAM_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif //=========================================================== // Forward declarations class TParam; //=========================================================== //***************************************************************************************** // TParamChange declaration //***************************************************************************************** class DVAPI TParamChange { public: TParam *m_param; //!< (not owned) The parameter being changed double m_firstAffectedFrame, m_lastAffectedFrame; //!< First and last frames affected by the change bool m_keyframeChanged; //!< Whether a keyframe has been altered by the change bool m_dragging; //!< Whether the change is about a mouse being dragged bool m_undoing; //!< Whether the change is happening within an undo operation static double m_minFrame; static double m_maxFrame; public: TParamChange(TParam *param, double firstAffectedFrame, double lastAffectedFrame, bool keyframeChanged, bool dragging, bool undoing); virtual ~TParamChange() {} }; //***************************************************************************************** // TParamObserver definition //***************************************************************************************** class DVAPI TParamObserver { public: virtual ~TParamObserver() {} virtual void onChange(const TParamChange &) = 0; }; #endif // TPARAMCHANGE_INCLUDED