diff --git a/cocos2dx/keyboard_dispatcher/CCKeyboardDispatcher.h b/cocos2dx/keyboard_dispatcher/CCKeyboardDispatcher.h deleted file mode 100644 index 86a006d933..0000000000 --- a/cocos2dx/keyboard_dispatcher/CCKeyboardDispatcher.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010 cocos2d-x.org - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#ifndef __CCKEYBOARD_DISPATCHER_H__ -#define __CCKEYBOARD_DISPATCHER_H__ - -#include -#include -#include "cocoa/CCArray.h" - -NS_CC_BEGIN - -/** - * @addtogroup input - * @{ - */ - -typedef std::function KeyboardDelegate; - -/** -@class KeyboardDispatcher -@brief Dispatch the keypad message from the phone -*/ -class CC_DLL KeyboardDispatcher : public Object -{ -public: - /** - * @js ctor - */ - KeyboardDispatcher(); - /** - * @js NA - * @lua NA - */ - ~KeyboardDispatcher(); - - /** - @brief set delagate to key press event - */ - void setKeyPressDelegate(KeyboardDelegate delegate); - /** - @brief set delagate to key release event - */ - void setKeyReleaseDelegate(KeyboardDelegate delegate); - - /** - @brief dispatch the key stroke event - */ - bool dispatchKeyboardEvent(int keyCode, bool pressed); - -protected: - - KeyboardDelegate _keyPressDelegate; - KeyboardDelegate _keyReleaseDelegate; -}; - -// end of input group -/// @} - -NS_CC_END - -#endif //__CCKEYBOARD_DISPATCHER_H__ diff --git a/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h b/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h deleted file mode 100644 index 60c582326a..0000000000 --- a/cocos2dx/keypad_dispatcher/CCKeypadDelegate.h +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010 cocos2d-x.org - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#ifndef __CCKEYPAD_DELEGATE_H__ -#define __CCKEYPAD_DELEGATE_H__ - - -#include "cocoa/CCObject.h" - -NS_CC_BEGIN - -/** - * @addtogroup input - * @{ - */ - -class CC_DLL KeypadDelegate -{ -public: - /** The back key clicked - * @js NA - * @lua NA - */ - - virtual void keyBackClicked() {} - - /** The menu key clicked. only available on wophone & android - * @js NA - * @lua NA - */ - virtual void keyMenuClicked() {}; -}; - -/** -@brief -KeypadHandler -Object than contains the KeypadDelegate. -*/ -class CC_DLL KeypadHandler : public Object -{ -public: - /** - * @js NA - * @lua NA - */ - virtual ~KeypadHandler(void); - - /** delegate - * @js NA - * @lua NA - */ - KeypadDelegate* getDelegate(); - /** - * @js NA - * @lua NA - */ - void setDelegate(KeypadDelegate *pDelegate); - - /** initializes a KeypadHandler with a delegate - * @js NA - * @lua NA - */ - virtual bool initWithDelegate(KeypadDelegate *pDelegate); - -public: - /** allocates a KeypadHandler with a delegate - * @js NA - * @lua NA - */ - static KeypadHandler* handlerWithDelegate(KeypadDelegate *pDelegate); - -protected: - KeypadDelegate* _delegate; -}; - -// end of input group -/// @} - -NS_CC_END - -#endif // __CCKEYPAD_DELEGATE_H__ diff --git a/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h b/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h deleted file mode 100644 index 4dcb3f2f3d..0000000000 --- a/cocos2dx/keypad_dispatcher/CCKeypadDispatcher.h +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010 cocos2d-x.org - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#ifndef __CCKEYPAD_DISPATCHER_H__ -#define __CCKEYPAD_DISPATCHER_H__ - -#include "CCKeypadDelegate.h" -#include "cocoa/CCArray.h" - -NS_CC_BEGIN - -/** - * @addtogroup input - * @{ - */ - -typedef enum { - // the back key clicked msg - kTypeBackClicked = 1, - kTypeMenuClicked, -} ccKeypadMSGType; - -struct _ccCArray; -/** -@class KeypadDispatcher -@brief Dispatch the keypad message from the phone -*/ -class CC_DLL KeypadDispatcher : public Object -{ -public: - /** - * @js ctor - */ - KeypadDispatcher(); - /** - * @js NA - * @lua NA - */ - ~KeypadDispatcher(); - - /** - @brief add delegate to concern keypad msg - */ - void addDelegate(KeypadDelegate* pDelegate); - - /** - @brief remove the delegate from the delegates who concern keypad msg - */ - void removeDelegate(KeypadDelegate* pDelegate); - - /** - @brief force add the delegate - */ - void forceAddDelegate(KeypadDelegate* pDelegate); - - /** - @brief force remove the delegate - */ - void forceRemoveDelegate(KeypadDelegate* pDelegate); - - /** - @brief dispatch the key pad msg - */ - bool dispatchKeypadMSG(ccKeypadMSGType nMsgType); - -protected: - - Array* _delegates; - bool _locked; - bool _toAdd; - bool _toRemove; - - struct _ccCArray *_handlersToAdd; - struct _ccCArray *_handlersToRemove; -}; - -// end of input group -/// @} - -NS_CC_END - -#endif //__CCKEYPAD_DISPATCHER_H__ diff --git a/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h b/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h deleted file mode 100644 index 1474289c97..0000000000 --- a/cocos2dx/touch_dispatcher/CCTouchDelegateProtocol.h +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010-2012 cocos2d-x.org -Copyright (c) 2009 Valentin Milea - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#ifndef __TOUCH_DISPATHCHER_CCTOUCH_DELEGATE_PROTOCOL_H__ -#define __TOUCH_DISPATHCHER_CCTOUCH_DELEGATE_PROTOCOL_H__ - -#include "cocoa/CCObject.h" -#include "ccConfig.h" - -NS_CC_BEGIN - -class Touch; -class Event; -class Set; -class TouchDispatcher; - -/** - * @addtogroup input - * @{ - */ - -class CC_DLL TouchDelegate -{ -public: - /** - * @js NA - * @lua NA - */ - TouchDelegate() {} - /** - * @js NA - * @lua NA - */ - virtual ~TouchDelegate() - { - } - /** - * @js NA - * @lua NA - */ - virtual bool ccTouchBegan(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent); return false;}; - // optional - /** - * @js NA - * @lua NA - */ - virtual void ccTouchMoved(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchEnded(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchCancelled(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - - // optional - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesBegan(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesMoved(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesEnded(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesCancelled(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - -}; -/** - @brief - Using this type of delegate results in two benefits: - - 1. You don't need to deal with Sets, the dispatcher does the job of splitting - them. You get exactly one UITouch per call. - - 2. You can *claim* a UITouch by returning true in ccTouchBegan. Updates of claimed - touches are sent only to the delegate(s) that claimed them. So if you get a move/ - ended/canceled update you're sure it's your touch. This frees you from doing a - lot of checks when doing multi-touch. - - (The name TargetedTouchDelegate relates to updates "targeting" their specific - handler, without bothering the other handlers.) - @since v0.8 - */ - class CC_DLL TargetedTouchDelegate : public TouchDelegate - { - public: - /** Return true to claim the touch. - @since v0 - */ - virtual bool ccTouchBegan(Touch *pTouch, Event *pEvent) { CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);return false;}; - - // optional - /** - * @js NA - * @lua NA - */ - virtual void ccTouchMoved(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchEnded(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchCancelled(Touch *pTouch, Event *pEvent) {CC_UNUSED_PARAM(pTouch); CC_UNUSED_PARAM(pEvent);} - }; - -/** @brief - This type of delegate is the same one used by CocoaTouch. You will receive all the events (Began,Moved,Ended,Canceled). - @since v0.8 - */ - class CC_DLL StandardTouchDelegate : public TouchDelegate - { - public: - // optional - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesBegan(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesMoved(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesEnded(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - /** - * @js NA - * @lua NA - */ - virtual void ccTouchesCancelled(Set *pTouches, Event *pEvent) {CC_UNUSED_PARAM(pTouches); CC_UNUSED_PARAM(pEvent);} - }; - -// end of input group -/// @} - -NS_CC_END - -#endif // __TOUCH_DISPATHCHER_CCTOUCH_DELEGATE_PROTOCOL_H__ diff --git a/cocos2dx/touch_dispatcher/CCTouchDispatcher.h b/cocos2dx/touch_dispatcher/CCTouchDispatcher.h deleted file mode 100644 index 0c1a187c4c..0000000000 --- a/cocos2dx/touch_dispatcher/CCTouchDispatcher.h +++ /dev/null @@ -1,237 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010-2012 cocos2d-x.org -Copyright (c) 2009 Valentin Milea - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#ifndef __TOUCH_DISPATCHER_CCTOUCH_DISPATCHER_H__ -#define __TOUCH_DISPATCHER_CCTOUCH_DISPATCHER_H__ - -#include "CCTouchDelegateProtocol.h" -#include "cocoa/CCObject.h" -#include "cocoa/CCArray.h" - -NS_CC_BEGIN - -/** - * @addtogroup input - * @{ - */ - - -enum { - CCTOUCHBEGAN, - CCTOUCHMOVED, - CCTOUCHENDED, - CCTOUCHCANCELLED, - - ccTouchMax, -}; - -class Set; -class Event; - -struct ccTouchHandlerHelperData { - // we only use the type -// void (StandardTouchDelegate::*touchesSel)(Set*, Event*); -// void (TargetedTouchDelegate::*touchSel)(NSTouch*, Event*); - int _type; -}; - - -class CC_DLL EGLTouchDelegate -{ -public: - /** - * @js NA - * @lua NA - */ - virtual void touchesBegan(Set* touches, Event* pEvent) = 0; - /** - * @js NA - * @lua NA - */ - virtual void touchesMoved(Set* touches, Event* pEvent) = 0; - /** - * @js NA - * @lua NA - */ - virtual void touchesEnded(Set* touches, Event* pEvent) = 0; - /** - * @js NA - * @lua NA - */ - virtual void touchesCancelled(Set* touches, Event* pEvent) = 0; - /** - * @js NA - * @lua NA - */ - virtual ~EGLTouchDelegate() {} -}; - -class TouchHandler; -struct _ccCArray; -/** @brief TouchDispatcher. - Singleton that handles all the touch events. - The dispatcher dispatches events to the registered TouchHandlers. - There are 2 different type of touch handlers: - - Standard Touch Handlers - - Targeted Touch Handlers - - The Standard Touch Handlers work like the CocoaTouch touch handler: a set of touches is passed to the delegate. - On the other hand, the Targeted Touch Handlers only receive 1 touch at the time, and they can "swallow" touches (avoid the propagation of the event). - - Firstly, the dispatcher sends the received touches to the targeted touches. - These touches can be swallowed by the Targeted Touch Handlers. If there are still remaining touches, then the remaining touches will be sent - to the Standard Touch Handlers. - - @since v0.8.0 - */ -class CC_DLL TouchDispatcher : public Object, public EGLTouchDelegate -{ -public: - /** - * @js NA - * @lua NA - */ - ~TouchDispatcher(); - /** - * @js NA - * @lua NA - */ - bool init(void); - /** - * @js NA - * @lua NA - */ - TouchDispatcher() - : _targetedHandlers(NULL) - , _standardHandlers(NULL) - , _handlersToAdd(NULL) - , _handlersToRemove(NULL) - - {} - -public: - /** Whether or not the events are going to be dispatched. Default: true - * @js NA - * @lua NA - */ - bool isDispatchEvents(void); - void setDispatchEvents(bool bDispatchEvents); - - /** Adds a standard touch delegate to the dispatcher's list. - See StandardTouchDelegate description. - IMPORTANT: The delegate will be retained. - * @js NA - * @lua NA - */ - void addStandardDelegate(TouchDelegate *pDelegate, int nPriority); - - /** Adds a targeted touch delegate to the dispatcher's list. - See TargetedTouchDelegate description. - IMPORTANT: The delegate will be retained. - * @js NA - * @lua NA - */ - void addTargetedDelegate(TouchDelegate *pDelegate, int nPriority, bool bSwallowsTouches); - - /** Removes a touch delegate. - The delegate will be released - * @js NA - * @lua NA - */ - void removeDelegate(TouchDelegate *pDelegate); - - /** Removes all touch delegates, releasing all the delegates - * @js NA - * @lua NA - */ - void removeAllDelegates(void); - - /** Changes the priority of a previously added delegate. The lower the number, - the higher the priority - * @js NA - * @lua NA - */ - void setPriority(int nPriority, TouchDelegate *pDelegate); - /** - * @js NA - * @lua NA - */ - void touches(Set *pTouches, Event *pEvent, unsigned int uIndex); - /** - * @js NA - * @lua NA - */ - virtual void touchesBegan(Set* touches, Event* pEvent); - /** - * @js NA - * @lua NA - */ - virtual void touchesMoved(Set* touches, Event* pEvent); - /** - * @js NA - * @lua NA - */ - virtual void touchesEnded(Set* touches, Event* pEvent); - /** - * @js NA - * @lua NA - */ - virtual void touchesCancelled(Set* touches, Event* pEvent); - -public: - /** - * @js NA - * @lua NA - */ - TouchHandler* findHandler(TouchDelegate *pDelegate); -protected: - void forceRemoveDelegate(TouchDelegate *pDelegate); - void forceAddHandler(TouchHandler *pHandler, Array* pArray); - void forceRemoveAllDelegates(void); - void rearrangeHandlers(Array* pArray); - TouchHandler* findHandler(Array* pArray, TouchDelegate *pDelegate); - -protected: - Array* _targetedHandlers; - Array* _standardHandlers; - - bool _locked; - bool _toAdd; - bool _toRemove; - Array* _handlersToAdd; - struct _ccCArray *_handlersToRemove; - bool _toQuit; - bool _dispatchEvents; - - // 4, 1 for each type of event - struct ccTouchHandlerHelperData _handlerHelperData[ccTouchMax]; -}; - -// end of input group -/// @} - -NS_CC_END - -#endif // __TOUCH_DISPATCHER_CCTOUCH_DISPATCHER_H__ diff --git a/cocos2dx/touch_dispatcher/CCTouchHandler.h b/cocos2dx/touch_dispatcher/CCTouchHandler.h deleted file mode 100644 index ff0c55fea7..0000000000 --- a/cocos2dx/touch_dispatcher/CCTouchHandler.h +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** -Copyright (c) 2010-2012 cocos2d-x.org -Copyright (c) 2009 Valentin Milea - -http://www.cocos2d-x.org - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -****************************************************************************/ - -#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 - * @{ - */ - -/** - TouchHandler - Object than contains the delegate and priority of the event handler. -*/ -class CC_DLL TouchHandler : public Object -{ -public: - /** - * @js NA - * @lua NA - */ - virtual ~TouchHandler(void); - - /** delegate - * @js NA - * @lua NA - */ - TouchDelegate* getDelegate(); - /** - * @js NA - * @lua NA - */ - void setDelegate(TouchDelegate *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 */ - bool initWithDelegate(TouchDelegate *pDelegate, int nPriority); - -public: - /** allocates a TouchHandler with a delegate and a priority */ - static TouchHandler* handlerWithDelegate(TouchDelegate *pDelegate, int nPriority); - -protected: - TouchDelegate *_delegate; - int _priority; - int _enabledSelectors; -}; - -/** StandardTouchHandler - It forwards each event to the delegate. - */ -class CC_DLL StandardTouchHandler : public TouchHandler -{ -public: - /** initializes a TouchHandler with a delegate and a priority */ - bool initWithDelegate(TouchDelegate *pDelegate, int nPriority); - -public: - /** allocates a TouchHandler with a delegate and a priority */ - static StandardTouchHandler* handlerWithDelegate(TouchDelegate *pDelegate, int nPriority); -}; - -/** - TargetedTouchHandler - Object than contains the claimed touches and if it swallows touches. - Used internally by TouchDispatcher - */ -class CC_DLL TargetedTouchHandler : public TouchHandler -{ -public: - /** - * @js NA - * @lua NA - */ - ~TargetedTouchHandler(void); - - /** whether or not the touches are swallowed */ - bool isSwallowsTouches(void); - void setSwallowsTouches(bool bSwallowsTouches); - - /** MutableSet that contains the claimed touches */ - Set* getClaimedTouches(void); - - /** initializes a TargetedTouchHandler with a delegate, a priority and whether or not it swallows touches or not */ - bool initWithDelegate(TouchDelegate *pDelegate, int nPriority, bool bSwallow); - -public: - /** allocates a TargetedTouchHandler with a delegate, a priority and whether or not it swallows touches or not */ - static TargetedTouchHandler* handlerWithDelegate(TouchDelegate *pDelegate, int nPriority, bool bSwallow); - -protected: - bool _swallowsTouches; - Set *_claimedTouches; -}; - -// end of input group -/// @} - -NS_CC_END - -#endif // __TOUCH_DISPATCHER_CCTOUCH_HANDLER_H__