1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef FPDFSDK_SRC_JAVASCRIPT_COLOR_H_ 8 #define FPDFSDK_SRC_JAVASCRIPT_COLOR_H_ 9 10 #include "JS_Define.h" 11 #include "fpdfsdk/include/pdfwindow/PWL_Wnd.h" // For CPWL_Color. 12 13 class color : public CJS_EmbedObj { 14 public: 15 color(CJS_Object* pJSObject); 16 ~color() override; 17 18 FX_BOOL black(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 19 FX_BOOL blue(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 20 FX_BOOL cyan(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 21 FX_BOOL dkGray(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 22 FX_BOOL gray(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 23 FX_BOOL green(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 24 FX_BOOL ltGray(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 25 FX_BOOL magenta(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 26 FX_BOOL red(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 27 FX_BOOL transparent(IJS_Context* cc, 28 CJS_PropValue& vp, 29 CFX_WideString& sError); 30 FX_BOOL white(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 31 FX_BOOL yellow(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError); 32 33 FX_BOOL convert(IJS_Context* cc, 34 const std::vector<CJS_Value>& params, 35 CJS_Value& vRet, 36 CFX_WideString& sError); 37 FX_BOOL equal(IJS_Context* cc, 38 const std::vector<CJS_Value>& params, 39 CJS_Value& vRet, 40 CFX_WideString& sError); 41 42 public: 43 static void ConvertPWLColorToArray(const CPWL_Color& color, CJS_Array& array); 44 static void ConvertArrayToPWLColor(CJS_Array& array, CPWL_Color& color); 45 46 private: 47 CPWL_Color m_crTransparent; 48 CPWL_Color m_crBlack; 49 CPWL_Color m_crWhite; 50 CPWL_Color m_crRed; 51 CPWL_Color m_crGreen; 52 CPWL_Color m_crBlue; 53 CPWL_Color m_crCyan; 54 CPWL_Color m_crMagenta; 55 CPWL_Color m_crYellow; 56 CPWL_Color m_crDKGray; 57 CPWL_Color m_crGray; 58 CPWL_Color m_crLTGray; 59 }; 60 61 class CJS_Color : public CJS_Object { 62 public: CJS_Color(v8::Local<v8::Object> pObject)63 CJS_Color(v8::Local<v8::Object> pObject) : CJS_Object(pObject) {} ~CJS_Color()64 ~CJS_Color() override {} 65 66 DECLARE_JS_CLASS(); 67 68 JS_STATIC_PROP(black, color); 69 JS_STATIC_PROP(blue, color); 70 JS_STATIC_PROP(cyan, color); 71 JS_STATIC_PROP(dkGray, color); 72 JS_STATIC_PROP(gray, color); 73 JS_STATIC_PROP(green, color); 74 JS_STATIC_PROP(ltGray, color); 75 JS_STATIC_PROP(magenta, color); 76 JS_STATIC_PROP(red, color); 77 JS_STATIC_PROP(transparent, color); 78 JS_STATIC_PROP(white, color); 79 JS_STATIC_PROP(yellow, color); 80 81 JS_STATIC_METHOD(convert, color); 82 JS_STATIC_METHOD(equal, color); 83 }; 84 85 #endif // FPDFSDK_SRC_JAVASCRIPT_COLOR_H_ 86