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