CCTouchHandler

来源:互联网 发布:销售提成算法 编辑:程序博客网 时间:2024/05/29 19:15


#ifndef __TOUCH_DISPATCHER_CCTOUCH_HANDLER_H__

#define __TOUCH_DISPATCHER_CCTOUCH_HANDLER_H__


#include "CCTouchDelegateProtocol.h"

#include "CCTouchDispatcher.h"

#include "cocoa/CCObject.h"

#include "cocoa/CCSet.h"


NS_CC_BEGIN


/**

 * @addtogroup input

 * @{

 */


/**

 CCTouchHandler

 Object than contains the delegate and priority of the event handler.

*/

class CC_DLL  CCTouchHandler : public CCObject

{

public:

    virtual ~CCTouchHandler(void);


    /** delegate */

    CCTouchDelegate* getDelegate();

    void setDelegate(CCTouchDelegate *pDelegate);


    /** priority */

    int getPriority(void);

    void setPriority(int nPriority);


    /** enabled selectors */

    int getEnabledSelectors(void);

    void setEnalbedSelectors(int nValue);


    /** initializes a TouchHandler with a delegate and a priority */

    virtual bool initWithDelegate(CCTouchDelegate *pDelegate, int nPriority);


public:

    /** allocates a TouchHandler with a delegate and a priority */

    static CCTouchHandler* handlerWithDelegate(CCTouchDelegate *pDelegate, int nPriority);


protected:

    CCTouchDelegate *m_pDelegate;

    int m_nPriority;

    int m_nEnabledSelectors;

};


/** CCStandardTouchHandler

 It forwards each event to the delegate.

 */

class CC_DLL  CCStandardTouchHandler : public CCTouchHandler

{

public:

    /** initializes a TouchHandler with a delegate and a priority */

    virtual bool initWithDelegate(CCTouchDelegate *pDelegate, int nPriority);


public:

    /** allocates a TouchHandler with a delegate and a priority */

    static CCStandardTouchHandler* handlerWithDelegate(CCTouchDelegate *pDelegate, int nPriority);

};


/**

 CCTargetedTouchHandler

 Object than contains the claimed touches and if it swallows touches.

 Used internally by TouchDispatcher

 */

class CC_DLL  CCTargetedTouchHandler : public CCTouchHandler

{

public:

    ~CCTargetedTouchHandler(void);


    /** whether or not the touches are swallowed */

    bool isSwallowsTouches(void);

    void setSwallowsTouches(bool bSwallowsTouches);


    /** MutableSet that contains the claimed touches */

    CCSet* getClaimedTouches(void);


    /** initializes a TargetedTouchHandler with a delegate, a priority and whether or not it swallows touches or not */

    bool initWithDelegate(CCTouchDelegate *pDelegate, int nPriority, bool bSwallow);


public:

    /** allocates a TargetedTouchHandler with a delegate, a priority and whether or not it swallows touches or not */

    static CCTargetedTouchHandler* handlerWithDelegate(CCTouchDelegate *pDelegate, int nPriority, bool bSwallow);


protected:

    bool m_bSwallowsTouches;

    CCSet *m_pClaimedTouches;

};


// end of input group

/// @}


NS_CC_END


#endif // __TOUCH_DISPATCHER_CCTOUCH_HANDLER_H__


0 0
原创粉丝点击