mirror of https://github.com/axmolengine/axmol.git
62 lines
2.0 KiB
C++
62 lines
2.0 KiB
C++
//
|
|
// js_bindings_ccbreader.h
|
|
// watermelon
|
|
//
|
|
// Created by Rohan Kuruvilla on 14/08/2012.
|
|
//
|
|
//
|
|
#ifndef __JS_BINDINGS_CCBREADER_H__
|
|
#define __JS_BINDINGS_CCBREADER_H__
|
|
|
|
#include "jsapi.h"
|
|
#include "cocos-ext.h"
|
|
#include "cocos2d_specifics.hpp"
|
|
|
|
|
|
class CCBScriptCallbackProxy: public cocos2d::Layer
|
|
, public cocos2d::extension::CCBSelectorResolver
|
|
, public cocos2d::extension::CCBMemberVariableAssigner {
|
|
|
|
std::string callBackProp;
|
|
jsval owner;
|
|
|
|
public:
|
|
|
|
|
|
CCBScriptCallbackProxy () {}
|
|
virtual ~CCBScriptCallbackProxy() {}
|
|
|
|
CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(CCBScriptCallbackProxy, create);
|
|
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::Object * pTarget,
|
|
const char * pSelectorName);
|
|
|
|
virtual cocos2d::extension::Control::Handler onResolveCCBCCControlSelector(cocos2d::Object * pTarget,
|
|
const char * pSelectorName);
|
|
virtual bool onAssignCCBMemberVariable(cocos2d::Object * pTarget, const char * pMemberVariableName,
|
|
cocos2d::Node * pNode);
|
|
virtual void onNodeLoaded(cocos2d::Node * pNode,
|
|
cocos2d::extension::NodeLoader * pNodeLoader);
|
|
|
|
virtual CCBSelectorResolver * createNew();
|
|
void menuItemCallback(Object *pSender);
|
|
void controlCallback(Object *pSender, cocos2d::extension::Control::EventType event);
|
|
void setCallbackProperty(const char *prop);
|
|
void setJSOwner(jsval ownr);
|
|
jsval getJSOwner();
|
|
};
|
|
|
|
|
|
class JSLayerLoader : public cocos2d::extension::LayerLoader {
|
|
public:
|
|
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(JSLayerLoader, loader);
|
|
|
|
protected:
|
|
CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(CCBScriptCallbackProxy);
|
|
};
|
|
|
|
void register_CCBuilderReader(JSContext *cx, JSObject *global);
|
|
JSBool js_CocosBuilder_Run(JSContext *cx, uint32_t argc, jsval *vp);
|
|
|
|
#endif /* __JS_BINDINGS_CCBREADER_H__ */
|
|
|