diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-10-30 20:20:42 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-10-30 20:20:42 +0000 |
commit | e0345a4aecfd16264d393234cf8fe22250d771fe (patch) | |
tree | 046f8e6c074b8525d6cf71daf4f2039582fb572a /fxjs/cjs_annot.cpp | |
parent | 341ec6256457c53d50f2d0a0667e61041d4d89be (diff) | |
download | pdfium-e0345a4aecfd16264d393234cf8fe22250d771fe.tar.xz |
Move fpdfsdk/javascript to fxjs/
This CL moves all of the CJS files into fxjs. The :javascript build rule
is removed and :fxjs is used instead.
Change-Id: I1701b308f51317d0346c7401b43812c3f43a27bf
Reviewed-on: https://pdfium-review.googlesource.com/17047
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjs_annot.cpp')
-rw-r--r-- | fxjs/cjs_annot.cpp | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/fxjs/cjs_annot.cpp b/fxjs/cjs_annot.cpp new file mode 100644 index 0000000000..f4f9669eff --- /dev/null +++ b/fxjs/cjs_annot.cpp @@ -0,0 +1,112 @@ +// Copyright 2016 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 "fxjs/cjs_annot.h" + +#include "fxjs/JS_Define.h" +#include "fxjs/cjs_event_context.h" +#include "fxjs/cjs_object.h" +#include "fxjs/js_resources.h" + +namespace { + +CPDFSDK_BAAnnot* ToBAAnnot(CPDFSDK_Annot* annot) { + return static_cast<CPDFSDK_BAAnnot*>(annot); +} + +} // namespace + +const JSPropertySpec CJS_Annot::PropertySpecs[] = { + {"hidden", get_hidden_static, set_hidden_static}, + {"name", get_name_static, set_name_static}, + {"type", get_type_static, set_type_static}, + {0, 0, 0}}; + +int CJS_Annot::ObjDefnID = -1; + +// static +int CJS_Annot::GetObjDefnID() { + return ObjDefnID; +} + +// static +void CJS_Annot::DefineJSObjects(CFXJS_Engine* pEngine) { + ObjDefnID = pEngine->DefineObj("Annot", FXJSOBJTYPE_DYNAMIC, + JSConstructor<CJS_Annot, Annot>, + JSDestructor<CJS_Annot>); + DefineProps(pEngine, ObjDefnID, PropertySpecs); +} + +Annot::Annot(CJS_Object* pJSObject) : CJS_EmbedObj(pJSObject) {} + +Annot::~Annot() {} + +CJS_Return Annot::get_hidden(CJS_Runtime* pRuntime) { + if (!m_pAnnot) + return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT)); + + CPDF_Annot* pPDFAnnot = ToBAAnnot(m_pAnnot.Get())->GetPDFAnnot(); + return CJS_Return(pRuntime->NewBoolean( + CPDF_Annot::IsAnnotationHidden(pPDFAnnot->GetAnnotDict()))); +} + +CJS_Return Annot::set_hidden(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { + // May invalidate m_pAnnot. + bool bHidden = pRuntime->ToBoolean(vp); + if (!m_pAnnot) + return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT)); + + uint32_t flags = ToBAAnnot(m_pAnnot.Get())->GetFlags(); + if (bHidden) { + flags |= ANNOTFLAG_HIDDEN; + flags |= ANNOTFLAG_INVISIBLE; + flags |= ANNOTFLAG_NOVIEW; + flags &= ~ANNOTFLAG_PRINT; + } else { + flags &= ~ANNOTFLAG_HIDDEN; + flags &= ~ANNOTFLAG_INVISIBLE; + flags &= ~ANNOTFLAG_NOVIEW; + flags |= ANNOTFLAG_PRINT; + } + ToBAAnnot(m_pAnnot.Get())->SetFlags(flags); + + return CJS_Return(true); +} + +CJS_Return Annot::get_name(CJS_Runtime* pRuntime) { + if (!m_pAnnot) + return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT)); + return CJS_Return( + pRuntime->NewString(ToBAAnnot(m_pAnnot.Get())->GetAnnotName().c_str())); +} + +CJS_Return Annot::set_name(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { + // May invalidate m_pAnnot. + WideString annotName = pRuntime->ToWideString(vp); + if (!m_pAnnot) + return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT)); + + ToBAAnnot(m_pAnnot.Get())->SetAnnotName(annotName); + return CJS_Return(true); +} + +CJS_Return Annot::get_type(CJS_Runtime* pRuntime) { + if (!m_pAnnot) + return CJS_Return(JSGetStringFromID(IDS_STRING_JSBADOBJECT)); + return CJS_Return(pRuntime->NewString( + WideString::FromLocal(CPDF_Annot::AnnotSubtypeToString( + ToBAAnnot(m_pAnnot.Get())->GetAnnotSubtype()) + .c_str()) + .c_str())); +} + +CJS_Return Annot::set_type(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp) { + return CJS_Return(JSGetStringFromID(IDS_STRING_JSREADONLY)); +} + +void Annot::SetSDKAnnot(CPDFSDK_BAAnnot* annot) { + m_pAnnot.Reset(annot); +} |