1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 7ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "Icon.h" 8ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 9ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "JS_Define.h" 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "JS_Object.h" 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "JS_Value.h" 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "fpdfsdk/include/javascript/IJavaScript.h" 13e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 14e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov/* ---------------------- Icon ---------------------- */ 15e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 16e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovBEGIN_JS_STATIC_CONST(CJS_Icon) 17e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovEND_JS_STATIC_CONST() 18e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 19e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovBEGIN_JS_STATIC_PROP(CJS_Icon) 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannJS_STATIC_PROP_ENTRY(name) 21e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovEND_JS_STATIC_PROP() 22e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannBEGIN_JS_STATIC_METHOD(CJS_Icon) 24e6986e1e8d4a57987f47c215490cb080a65ee29aSvet GanovEND_JS_STATIC_METHOD() 25e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannIMPLEMENT_JS_CLASS(CJS_Icon, Icon) 27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannIcon::Icon(CJS_Object* pJSObject) 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : CJS_EmbedObj(pJSObject), m_pIconStream(NULL), m_swIconName(L"") {} 30e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannIcon::~Icon() {} 32e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid Icon::SetStream(CPDF_Stream* pIconStream) { 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (pIconStream) 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pIconStream = pIconStream; 36e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 37e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDF_Stream* Icon::GetStream() { 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_pIconStream; 40e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 41e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannvoid Icon::SetIconName(CFX_WideString name) { 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_swIconName = name; 44e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 45e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_WideString Icon::GetIconName() { 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return m_swIconName; 48e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 49e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL Icon::name(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann if (!vp.IsGetting()) 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FALSE; 53e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann vp << m_swIconName; 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return TRUE; 56e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 57