GarageGames/Torque3D — pull request #550 by LuisAntonRebollo (2013-12-06 16:40:28+00:00)
Title: SimEvent

Add SimEvent declarations similar to script callbacks. …
'''
/// Declare a global signal and a script callback
/// When SIMDELEGATE are called with NAME##_callback, c++ signal are triggered first, then torque-script callback.
/// Torque::ISignal< void ARGS >> getISignal_##NAME()
/// @see IMPLEMENT_SIMSIGNAL
#define DECLARE_GLOBAL_SIMSIGNAL( NAME, ARGS )

/// Declare a global delegate and a script callback
/// When SIMDELEGATE are called with NAME##_callback, if a c++ delegate is set, torque-script callback are not executed.
/// void setDelegate_##NAME(const Delegate< returnType ARGS > &dlg);
/// Delegate< returnType ARGS > getDelegateCopy_##NAME() const;
//! @see IMPLEMENT_GLOBAL_SIMDELEGATE
#define DECLARE_GLOBAL_SIMDELEGATE( NAME, RET, ARGS ) \

/// Declare a member signal and a script callback
/// When SIMDELEGATE are called with NAME##_callback, c++ signal are triggered first, then torque-script callback.
/// This macro change the actual scope of class members to SCOPE
/// Torque::ISignal< void(ownerPtr + ARGS) >> getISignal_##NAME()
/// @see IMPLEMENT_SIMSIGNAL
#define DECLARE_SIMSIGNAL( SCOPE, NAME, ARGS ) \

/// Declare a member delegate and a script callback
/// When SIMDELEGATE are called with NAME##_callback, if a c++ delegate is set, torque-script callback are not executed.
/// This macro change the actual scope of class members to SCOPE
/// void setDelegate_##NAME(const Delegate< returnType (ownerPtr + ARGS) > &dlg);
/// Delegate< returnType (ownerPtr + ARGS) > getDelegateCopy_##NAME() const;
//! @see IMPLEMENT_SIMDELEGATE
#define DECLARE_SIMDELEGATE( SCOPE, returnType, NAME, ARGS )
'''