diff --git a/cocos2dx/support/CCNotificationCenter.cpp b/cocos2dx/support/CCNotificationCenter.cpp index 2fe860a129..0a9e63974e 100644 --- a/cocos2dx/support/CCNotificationCenter.cpp +++ b/cocos2dx/support/CCNotificationCenter.cpp @@ -29,7 +29,7 @@ THE SOFTWARE. using namespace std; -NS_CC_BEGIN; +NS_CC_BEGIN static CCNotificationCenter *s_sharedNotifCenter = NULL; @@ -214,4 +214,4 @@ CCObject *CCNotificationObserver::getObject() return m_object; } -NS_CC_END; +NS_CC_END diff --git a/cocos2dx/support/CCNotificationCenter.h b/cocos2dx/support/CCNotificationCenter.h index 183c5f7020..4d7201fcb9 100644 --- a/cocos2dx/support/CCNotificationCenter.h +++ b/cocos2dx/support/CCNotificationCenter.h @@ -28,38 +28,71 @@ THE SOFTWARE. #include "cocoa/CCObject.h" #include "cocoa/CCArray.h" -NS_CC_BEGIN; +NS_CC_BEGIN class CC_DLL CCNotificationCenter : public CCObject { public: + /** CCNotificationCenter constructor */ CCNotificationCenter(); + + /** CCNotificationCenter destructor */ ~CCNotificationCenter(); + /** Gets the single instance of CCNotificationCenter. */ static CCNotificationCenter *sharedNotificationCenter(void); + + /** Destroys the single instance of CCNotificationCenter. */ static void purgeNotificationCenter(void); + /** @brief Adds an observer for the specified target. + * @param target The target which wants to observe notification events. + * @param selector The callback function which will be invoked when the specified notification event was posted. + * @param name The name of this notification. + * @param obj The extra parameter which will be passed to the callback function. + */ void addObserver(CCObject *target, SEL_CallFuncO selector, const char *name, CCObject *obj); - + + /** @brief Removes the observer by the specified target and name. + * @param target The target of this notification. + * @param name The name of this notification. + */ void removeObserver(CCObject *target,const char *name); + /** @brief Registers one hander for script binding. + * @note Only supports Lua Binding now. + * @param handler The lua handler. + */ void registerScriptObserver(int handler); + + /** Unregisters script observer */ void unregisterScriptObserver(void); + /** @brief Posts one notification event by name. + * @param name The name of this notification. + */ void postNotification(const char *name); + + /** @brief Posts one notification event by name. + * @param name The name of this notification. + * @param object The extra parameter. + */ void postNotification(const char *name, CCObject *object); + /** @brief Gets script handler. + * @note Only supports Lua Binding now. + * @return The script handle. + */ inline int getScriptHandler() { return m_scriptHandler; }; private: - // // internal functions - // + + // Check whether the observer exists by the specified target and name. bool observerExisted(CCObject *target,const char *name); - // // variables // CCArray *m_observers; @@ -69,12 +102,21 @@ private: class CC_DLL CCNotificationObserver : public CCObject { public: + /** @brief CCNotificationObserver constructor + * @param target The target which wants to observer notification events. + * @param selector The callback function which will be invoked when the specified notification event was posted. + * @param name The name of this notification. + * @param obj The extra parameter which will be passed to the callback function. + */ CCNotificationObserver(CCObject *target, SEL_CallFuncO selector, const char *name, CCObject *obj); + + /** CCNotificationObserver destructor function */ ~CCNotificationObserver(); + /** Invokes the callback function of this observer */ void performSelector(CCObject *obj); private: CC_PROPERTY_READONLY(CCObject *, m_target, Target); @@ -83,6 +125,6 @@ private: CC_PROPERTY_READONLY(CCObject *, m_object, Object); }; -NS_CC_END; +NS_CC_END #endif//__CCNOTIFICATIONCENTER_H__ \ No newline at end of file