📄 js_classfactory.h
字号:
/* $Id: js_classfactory.h,v 1.7 2004/01/02 15:42:44 mbn Exp $
**
** ClanLib Game SDK
** Copyright (C) 2003 The ClanLib Team
** For a total list of contributers see the file CREDITS.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
//! clanJavaScript="Framework"
//! header=javascript.h
#ifndef header_js_classfactory
#define header_js_classfactory
#if _MSC_VER > 1000
#pragma once
#endif
#include "js_object.h"
#include "js_value.h"
#include "js_error.h"
//: Javascript class factory.
//- !group=JavaScript/Framework!
//- !header=javascript.h!
template<class Object>
class CL_JSClassFactory : public CL_JSObject
{
public:
CL_JSClassFactory(const char *name, int argc, CL_JSContext &context, CL_JSObject &obj)
: CL_JSObject(name)
{
jsClass.construct = factoryConstruct;
initClass(context, obj.getObject(), 0, 0, argc, 0, 0, 0, 0);
}
virtual CL_JSValue onConstruct(CL_JSContext *context, CL_JSArguments &args)
{
return CL_JSValue(context, new Object(context, args));
}
static JSBool factoryConstruct(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
JScriptContext *context = JScriptContext::tempFromHandle(cx);
JScriptArguments args(context, argc, argv);
try
{
*rval = JScriptValue(context, new Object(context, args));
return JS_TRUE;
}
catch (JScriptError &)
{
// todo: Somehow pipe error message into javascript engine.
return JS_FALSE;
}
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -