2012-04-19 14:35:52 +08:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* Helper class to store targets and selectors (and eventually, params?) in the same CCMutableArray. Basically a very crude form of a NSInvocation
|
|
|
|
*/
|
|
|
|
#ifndef __CCINVOCATION_H__
|
|
|
|
#define __CCINVOCATION_H__
|
|
|
|
|
|
|
|
#include "CCObject.h"
|
|
|
|
|
2012-04-27 18:47:49 +08:00
|
|
|
NS_CC_EXT_BEGIN
|
2012-04-19 14:35:52 +08:00
|
|
|
|
|
|
|
typedef unsigned int CCControlEvent;
|
|
|
|
|
2012-06-07 05:31:14 +08:00
|
|
|
typedef void (CCObject::*SEL_CCControlHandler)(CCObject*, CCControlEvent);
|
|
|
|
|
|
|
|
#define cccontrol_selector(_SELECTOR) (SEL_CCControlHandler)(&_SELECTOR)
|
|
|
|
|
2012-04-19 14:35:52 +08:00
|
|
|
class CC_DLL CCInvocation : public CCObject
|
|
|
|
{
|
2012-06-07 05:31:14 +08:00
|
|
|
CC_SYNTHESIZE_READONLY(SEL_CCControlHandler, m_action, Action);
|
2012-04-19 14:35:52 +08:00
|
|
|
CC_SYNTHESIZE_READONLY(CCObject*, m_target, Target);
|
|
|
|
CC_SYNTHESIZE_READONLY(CCControlEvent, m_controlEvent, ControlEvent);
|
|
|
|
|
|
|
|
public:
|
2012-06-07 05:31:14 +08:00
|
|
|
CCInvocation(CCObject* target, SEL_CCControlHandler action, CCControlEvent controlEvent);
|
2012-04-19 14:35:52 +08:00
|
|
|
|
|
|
|
void invoke(CCObject* sender);
|
|
|
|
};
|
|
|
|
|
2012-04-27 18:47:49 +08:00
|
|
|
NS_CC_EXT_END
|
2012-04-19 14:35:52 +08:00
|
|
|
|
2012-04-16 18:58:43 +08:00
|
|
|
#endif
|