14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef FPDFSDK_JAVASCRIPT_COLOR_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define FPDFSDK_JAVASCRIPT_COLOR_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector> 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/javascript/JS_Define.h" 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/pdfwindow/PWL_Wnd.h" 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass color : public CJS_EmbedObj { 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann explicit color(CJS_Object* pJSObject); 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ~color() override; 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 2033357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool black(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2133357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool blue(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2233357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool cyan(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2333357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool dkGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2433357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool gray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2533357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool green(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2633357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool ltGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 2733357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool magenta(CJS_Runtime* pRuntime, 2833357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CJS_PropValue& vp, 2933357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CFX_WideString& sError); 3033357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool red(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 3133357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool transparent(CJS_Runtime* pRuntime, 3233357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CJS_PropValue& vp, 3333357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CFX_WideString& sError); 3433357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool white(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 3533357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool yellow(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError); 364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 3733357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool convert(CJS_Runtime* pRuntime, 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const std::vector<CJS_Value>& params, 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CJS_Value& vRet, 404d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString& sError); 4133357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool equal(CJS_Runtime* pRuntime, 424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const std::vector<CJS_Value>& params, 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CJS_Value& vRet, 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_WideString& sError); 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann static void ConvertPWLColorToArray(CJS_Runtime* pRuntime, 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CPWL_Color& color, 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CJS_Array* array); 494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann static void ConvertArrayToPWLColor(CJS_Runtime* pRuntime, 504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CJS_Array& array, 514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color* color); 524d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann private: 5433357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann bool PropertyHelper(CJS_Runtime* pRuntime, 5533357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CJS_PropValue& vp, 5633357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann CPWL_Color* val); 5733357cad1fd1321a2b38d2963e2585f27ce980a2Philip P. Moltmann 584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crTransparent; 594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crBlack; 604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crWhite; 614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crRed; 624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crGreen; 634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crBlue; 644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crCyan; 654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crMagenta; 664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crYellow; 674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crDKGray; 684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crGray; 694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Color m_crLTGray; 704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CJS_Color : public CJS_Object { 734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann explicit CJS_Color(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {} 754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ~CJS_Color() override {} 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann DECLARE_JS_CLASS(); 784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(black, color); 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(blue, color); 814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(cyan, color); 824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(dkGray, color); 834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(gray, color); 844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(green, color); 854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(ltGray, color); 864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(magenta, color); 874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(red, color); 884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(transparent, color); 894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(white, color); 904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_PROP(yellow, color); 914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_METHOD(convert, color); 934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann JS_STATIC_METHOD(equal, color); 944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // FPDFSDK_JAVASCRIPT_COLOR_H_ 97