// Copyright 2014 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #include "fpdfsdk/javascript/Icon.h" #include "fpdfsdk/javascript/JS_Define.h" #include "fpdfsdk/javascript/JS_Object.h" #include "fpdfsdk/javascript/JS_Value.h" JSPropertySpec CJS_Icon::PropertySpecs[] = { {"name", get_name_static, set_name_static}, {0, 0, 0}}; const char* CJS_Icon::g_pClassName = "Icon"; int CJS_Icon::g_nObjDefnID = -1; void CJS_Icon::JSConstructor(CFXJS_Engine* pEngine, v8::Local obj) { CJS_Object* pObj = new CJS_Icon(obj); pObj->SetEmbedObject(new Icon(pObj)); pEngine->SetObjectPrivate(obj, pObj); pObj->InitInstance(static_cast(pEngine)); } void CJS_Icon::JSDestructor(CFXJS_Engine* pEngine, v8::Local obj) { delete static_cast(pEngine->GetObjectPrivate(obj)); } void CJS_Icon::DefineProps(CFXJS_Engine* pEngine) { for (size_t i = 0; i < FX_ArraySize(PropertySpecs) - 1; ++i) { pEngine->DefineObjProperty(g_nObjDefnID, PropertySpecs[i].pName, PropertySpecs[i].pPropGet, PropertySpecs[i].pPropPut); } } void CJS_Icon::DefineJSObjects(CFXJS_Engine* pEngine, FXJSOBJTYPE eObjType) { g_nObjDefnID = pEngine->DefineObj(CJS_Icon::g_pClassName, eObjType, JSConstructor, JSDestructor); DefineProps(pEngine); } Icon::Icon(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject), m_swIconName(L"") {} Icon::~Icon() {} CJS_Return Icon::get_name(CJS_Runtime* pRuntime) { return CJS_Return(pRuntime->NewString(m_swIconName.c_str())); } CJS_Return Icon::set_name(CJS_Runtime* pRuntime, v8::Local vp) { return CJS_Return(false); }