John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 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. |
Lei Zhang | a6d9f0e | 2015-06-13 00:48:38 -0700 | [diff] [blame] | 4 | |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 5 | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | |
Dan Sinclair | e0345a4 | 2017-10-30 20:20:42 +0000 | [diff] [blame] | 7 | #ifndef FXJS_CJS_COLOR_H_ |
| 8 | #define FXJS_CJS_COLOR_H_ |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 9 | |
Dan Sinclair | 3ebd121 | 2016-03-09 09:59:23 -0500 | [diff] [blame] | 10 | #include <vector> |
| 11 | |
Lei Zhang | 31beedc | 2018-10-18 21:09:55 +0000 | [diff] [blame] | 12 | #include "fxjs/cjs_object.h" |
Tom Sepez | 221f0b3 | 2018-06-04 22:11:27 +0000 | [diff] [blame] | 13 | #include "fxjs/js_define.h" |
Tom Sepez | 9a3f812 | 2015-04-07 15:35:48 -0700 | [diff] [blame] | 14 | |
Tom Sepez | 5586545 | 2018-08-27 20:18:04 +0000 | [diff] [blame] | 15 | class CJS_Color final : public CJS_Object { |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 16 | public: |
Lei Zhang | ad1f7b4 | 2018-07-11 13:04:43 +0000 | [diff] [blame] | 17 | static int GetObjDefnID(); |
Dan Sinclair | f743552 | 2018-02-05 22:27:22 +0000 | [diff] [blame] | 18 | static void DefineJSObjects(CFXJS_Engine* pEngine); |
Dan Sinclair | 3a1ba8e | 2017-10-26 09:28:59 -0400 | [diff] [blame] | 19 | static v8::Local<v8::Array> ConvertPWLColorToArray(CJS_Runtime* pRuntime, |
| 20 | const CFX_Color& color); |
Dan Sinclair | 0e187d8 | 2017-10-23 12:08:34 -0400 | [diff] [blame] | 21 | static CFX_Color ConvertArrayToPWLColor(CJS_Runtime* pRuntime, |
Dan Sinclair | 3a1ba8e | 2017-10-26 09:28:59 -0400 | [diff] [blame] | 22 | v8::Local<v8::Array> array); |
Dan Sinclair | 0e187d8 | 2017-10-23 12:08:34 -0400 | [diff] [blame] | 23 | |
Tom Sepez | 36aae4f | 2018-06-04 19:44:37 +0000 | [diff] [blame] | 24 | CJS_Color(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime); |
Dan Sinclair | f743552 | 2018-02-05 22:27:22 +0000 | [diff] [blame] | 25 | ~CJS_Color() override; |
| 26 | |
Nico Weber | 563f62a | 2019-02-12 18:47:12 +0000 | [diff] [blame] | 27 | JS_STATIC_PROP(black, black, CJS_Color) |
| 28 | JS_STATIC_PROP(blue, blue, CJS_Color) |
| 29 | JS_STATIC_PROP(cyan, cyan, CJS_Color) |
| 30 | JS_STATIC_PROP(dkGray, dark_gray, CJS_Color) |
| 31 | JS_STATIC_PROP(gray, gray, CJS_Color) |
| 32 | JS_STATIC_PROP(green, green, CJS_Color) |
| 33 | JS_STATIC_PROP(ltGray, light_gray, CJS_Color) |
| 34 | JS_STATIC_PROP(magenta, magenta, CJS_Color) |
| 35 | JS_STATIC_PROP(red, red, CJS_Color) |
| 36 | JS_STATIC_PROP(transparent, transparent, CJS_Color) |
| 37 | JS_STATIC_PROP(white, white, CJS_Color) |
| 38 | JS_STATIC_PROP(yellow, yellow, CJS_Color) |
Dan Sinclair | f743552 | 2018-02-05 22:27:22 +0000 | [diff] [blame] | 39 | |
Nico Weber | 563f62a | 2019-02-12 18:47:12 +0000 | [diff] [blame] | 40 | JS_STATIC_METHOD(convert, CJS_Color) |
| 41 | JS_STATIC_METHOD(equal, CJS_Color) |
Dan Sinclair | f743552 | 2018-02-05 22:27:22 +0000 | [diff] [blame] | 42 | |
| 43 | private: |
| 44 | static int ObjDefnID; |
| 45 | static const char kName[]; |
| 46 | static const JSPropertySpec PropertySpecs[]; |
| 47 | static const JSMethodSpec MethodSpecs[]; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 48 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 49 | CJS_Result get_black(CJS_Runtime* pRuntime); |
| 50 | CJS_Result set_black(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 51 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 52 | CJS_Result get_blue(CJS_Runtime* pRuntime); |
| 53 | CJS_Result set_blue(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 54 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 55 | CJS_Result get_cyan(CJS_Runtime* pRuntime); |
| 56 | CJS_Result set_cyan(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 57 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 58 | CJS_Result get_dark_gray(CJS_Runtime* pRuntime); |
| 59 | CJS_Result set_dark_gray(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 60 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 61 | CJS_Result get_gray(CJS_Runtime* pRuntime); |
| 62 | CJS_Result set_gray(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 63 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 64 | CJS_Result get_green(CJS_Runtime* pRuntime); |
| 65 | CJS_Result set_green(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 66 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 67 | CJS_Result get_light_gray(CJS_Runtime* pRuntime); |
| 68 | CJS_Result set_light_gray(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 69 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 70 | CJS_Result get_magenta(CJS_Runtime* pRuntime); |
| 71 | CJS_Result set_magenta(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 72 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 73 | CJS_Result get_red(CJS_Runtime* pRuntime); |
| 74 | CJS_Result set_red(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 75 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 76 | CJS_Result get_transparent(CJS_Runtime* pRuntime); |
| 77 | CJS_Result set_transparent(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 78 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 79 | CJS_Result get_white(CJS_Runtime* pRuntime); |
| 80 | CJS_Result set_white(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
dan sinclair | cbe23db | 2017-10-19 14:29:33 -0400 | [diff] [blame] | 81 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 82 | CJS_Result get_yellow(CJS_Runtime* pRuntime); |
| 83 | CJS_Result set_yellow(CJS_Runtime* pRuntime, v8::Local<v8::Value> vp); |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 84 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 85 | CJS_Result convert(CJS_Runtime* pRuntime, |
Dan Sinclair | 8f524d6 | 2017-10-25 13:30:31 -0400 | [diff] [blame] | 86 | const std::vector<v8::Local<v8::Value>>& params); |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 87 | CJS_Result equal(CJS_Runtime* pRuntime, |
Dan Sinclair | 8f524d6 | 2017-10-25 13:30:31 -0400 | [diff] [blame] | 88 | const std::vector<v8::Local<v8::Value>>& params); |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 89 | |
Tom Sepez | 3a6d058 | 2018-08-17 19:28:52 +0000 | [diff] [blame] | 90 | CJS_Result GetPropertyHelper(CJS_Runtime* pRuntime, CFX_Color* val); |
| 91 | CJS_Result SetPropertyHelper(CJS_Runtime* pRuntime, |
Dan Sinclair | 8f524d6 | 2017-10-25 13:30:31 -0400 | [diff] [blame] | 92 | v8::Local<v8::Value> vp, |
| 93 | CFX_Color* val); |
Tom Sepez | 37a35df | 2017-02-21 11:43:14 -0800 | [diff] [blame] | 94 | |
Dan Sinclair | 7f55a54 | 2017-07-13 14:17:10 -0400 | [diff] [blame] | 95 | CFX_Color m_crTransparent; |
| 96 | CFX_Color m_crBlack; |
| 97 | CFX_Color m_crWhite; |
| 98 | CFX_Color m_crRed; |
| 99 | CFX_Color m_crGreen; |
| 100 | CFX_Color m_crBlue; |
| 101 | CFX_Color m_crCyan; |
| 102 | CFX_Color m_crMagenta; |
| 103 | CFX_Color m_crYellow; |
| 104 | CFX_Color m_crDKGray; |
| 105 | CFX_Color m_crGray; |
| 106 | CFX_Color m_crLTGray; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 107 | }; |
| 108 | |
Dan Sinclair | e0345a4 | 2017-10-30 20:20:42 +0000 | [diff] [blame] | 109 | #endif // FXJS_CJS_COLOR_H_ |