2018-01-29 16:25:32 +08:00
|
|
|
/****************************************************************************
|
|
|
|
Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
|
|
|
|
|
|
|
|
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.
|
|
|
|
****************************************************************************/
|
|
|
|
|
2014-03-10 14:04:58 +08:00
|
|
|
#ifndef __CCBPROXY_H_
|
|
|
|
#define __CCBPROXY_H_
|
|
|
|
|
2016-04-18 15:09:21 +08:00
|
|
|
|
2016-03-20 21:53:44 +08:00
|
|
|
#include "scripting/lua-bindings/manual/CCLuaEngine.h"
|
2014-05-01 10:09:13 +08:00
|
|
|
#include "audio/include/SimpleAudioEngine.h"
|
2014-03-10 14:04:58 +08:00
|
|
|
#include "extensions/cocos-ext.h"
|
2016-03-20 21:53:44 +08:00
|
|
|
#include "editor-support/cocosbuilder/CocosBuilder.h"
|
2014-03-10 14:04:58 +08:00
|
|
|
|
|
|
|
USING_NS_CC;
|
|
|
|
USING_NS_CC_EXT;
|
|
|
|
using namespace cocosbuilder;
|
|
|
|
|
2015-03-26 22:07:44 +08:00
|
|
|
/**
|
|
|
|
* @addtogroup lua
|
|
|
|
* @{
|
|
|
|
*/
|
|
|
|
|
2015-03-20 14:39:33 +08:00
|
|
|
/**
|
|
|
|
* CCBProxy is a proxy for cocosbuilder.
|
|
|
|
* By using CCBProxy we could create a CCBReader object conveniently and set the Lua callback function when some events triggered should be passed onto Lua.
|
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
class CCBProxy : public Layer{
|
|
|
|
public:
|
2015-03-20 14:39:33 +08:00
|
|
|
/**
|
|
|
|
* Default constructor,do nothing.
|
2015-03-26 22:07:44 +08:00
|
|
|
*
|
|
|
|
* @lua NA
|
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
CCBProxy() { }
|
2015-03-20 14:39:33 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Destructor.
|
2015-03-26 22:07:44 +08:00
|
|
|
*
|
|
|
|
* @lua NA
|
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
virtual ~ CCBProxy(){ }
|
2015-03-20 14:39:33 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a CCBProxy object.
|
|
|
|
*
|
|
|
|
* @return a CCBProxy object.
|
2015-03-26 22:07:44 +08:00
|
|
|
*
|
|
|
|
* @lua NA
|
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(CCBProxy, create);
|
2015-03-20 14:39:33 +08:00
|
|
|
|
|
|
|
/**
|
2015-11-03 03:31:17 +08:00
|
|
|
* Create a CCBReader object.
|
2015-03-20 14:39:33 +08:00
|
|
|
*
|
|
|
|
* @return a CCBReader object.
|
2015-03-26 22:07:44 +08:00
|
|
|
*
|
|
|
|
* @lua NA
|
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
CCBReader* createCCBReader();
|
2015-03-26 22:07:44 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Read a ccb file.
|
|
|
|
*
|
|
|
|
* @param pszFileName the string pointer point to the file name.
|
|
|
|
* @param pCCBReader the CCBreader object pointer.
|
|
|
|
* @param bSetOwner whether to set the owner or not.
|
|
|
|
* @return a Node object pointer.
|
|
|
|
* @js NA
|
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
Node* readCCBFromFile(const char *pszFileName,CCBReader* pCCBReader,bool bSetOwner = false);
|
2015-03-20 14:39:33 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the true type name of pNode.
|
2015-11-03 03:31:17 +08:00
|
|
|
* By using the dynamic_cast function, we could get the true type name of pNode.
|
2015-03-20 14:39:33 +08:00
|
|
|
*
|
2015-03-27 15:27:08 +08:00
|
|
|
* @param pNode the Node object used to query.
|
2015-03-20 14:39:33 +08:00
|
|
|
* @return a string pointer point to the true type name otherwise return "No Support".
|
2015-03-26 22:07:44 +08:00
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
const char* getNodeTypeName(Node* pNode);
|
2015-03-20 14:39:33 +08:00
|
|
|
|
|
|
|
/**
|
2015-10-14 11:42:51 +08:00
|
|
|
* Set relationship between the Lua callback function reference index handle and the node.
|
2015-03-20 14:39:33 +08:00
|
|
|
* According to the different controlEvents values,we would choose different ScriptHandlerMgr::HandlerTyp.
|
2015-10-14 11:42:51 +08:00
|
|
|
* When node receive the events information should be passed on to Lua, it would find the Lua callback function by the Lua callback function reference index.
|
2015-03-20 14:39:33 +08:00
|
|
|
*
|
|
|
|
* @param node the node object should pass on the events information to Lua,when the events are triggered.
|
2015-10-14 11:42:51 +08:00
|
|
|
* @param handle the Lua callback function reference index.
|
2015-03-20 14:39:33 +08:00
|
|
|
* @param controlEvents the combination value of Control::EventType, default 0.
|
2015-03-26 22:07:44 +08:00
|
|
|
* @js NA
|
2015-03-20 14:39:33 +08:00
|
|
|
*/
|
2014-03-10 14:04:58 +08:00
|
|
|
void setCallback(Node* node,int handle, int controlEvents = 0);
|
|
|
|
};
|
|
|
|
|
2015-03-26 22:07:44 +08:00
|
|
|
// end group
|
|
|
|
/// @}
|
|
|
|
|
|
|
|
/// @cond
|
2014-03-10 14:04:58 +08:00
|
|
|
class CCBLayerLoader:public LayerLoader{
|
|
|
|
public:
|
|
|
|
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(CCBLayerLoader, loader);
|
|
|
|
};
|
2015-03-26 22:07:44 +08:00
|
|
|
/// @endcond
|
2014-03-10 14:04:58 +08:00
|
|
|
|
|
|
|
#endif // __CCBPROXY_H_
|