OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "fpdfsdk/javascript/color.h" | 7 #include "fpdfsdk/javascript/color.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 } else if (sSpace == "RGB") { | 127 } else if (sSpace == "RGB") { |
128 *color = | 128 *color = |
129 CPWL_Color(COLORTYPE_RGB, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3); | 129 CPWL_Color(COLORTYPE_RGB, (FX_FLOAT)d1, (FX_FLOAT)d2, (FX_FLOAT)d3); |
130 } else if (sSpace == "CMYK") { | 130 } else if (sSpace == "CMYK") { |
131 *color = CPWL_Color(COLORTYPE_CMYK, (FX_FLOAT)d1, (FX_FLOAT)d2, | 131 *color = CPWL_Color(COLORTYPE_CMYK, (FX_FLOAT)d1, (FX_FLOAT)d2, |
132 (FX_FLOAT)d3, (FX_FLOAT)d4); | 132 (FX_FLOAT)d3, (FX_FLOAT)d4); |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
136 #define JS_IMPLEMENT_COLORPROP(prop, var) \ | 136 #define JS_IMPLEMENT_COLORPROP(prop, var) \ |
137 FX_BOOL color::prop(IJS_Context* cc, CJS_PropValue& vp, \ | 137 bool color::prop(IJS_Context* cc, CJS_PropValue& vp, \ |
138 CFX_WideString& sError) { \ | 138 CFX_WideString& sError) { \ |
139 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); \ | 139 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); \ |
140 CJS_Array array; \ | 140 CJS_Array array; \ |
141 if (vp.IsGetting()) { \ | 141 if (vp.IsGetting()) { \ |
142 ConvertPWLColorToArray(pRuntime, var, &array); \ | 142 ConvertPWLColorToArray(pRuntime, var, &array); \ |
143 vp << array; \ | 143 vp << array; \ |
144 } else { \ | 144 } else { \ |
145 if (!vp.GetJSValue()->ConvertToArray(pRuntime, array)) \ | 145 if (!vp.GetJSValue()->ConvertToArray(pRuntime, array)) \ |
146 return FALSE; \ | 146 return false; \ |
147 ConvertArrayToPWLColor(pRuntime, array, &var); \ | 147 ConvertArrayToPWLColor(pRuntime, array, &var); \ |
148 } \ | 148 } \ |
149 return TRUE; \ | 149 return true; \ |
150 } | 150 } |
151 | 151 |
152 JS_IMPLEMENT_COLORPROP(transparent, m_crTransparent) | 152 JS_IMPLEMENT_COLORPROP(transparent, m_crTransparent) |
153 JS_IMPLEMENT_COLORPROP(black, m_crBlack) | 153 JS_IMPLEMENT_COLORPROP(black, m_crBlack) |
154 JS_IMPLEMENT_COLORPROP(white, m_crWhite) | 154 JS_IMPLEMENT_COLORPROP(white, m_crWhite) |
155 JS_IMPLEMENT_COLORPROP(red, m_crRed) | 155 JS_IMPLEMENT_COLORPROP(red, m_crRed) |
156 JS_IMPLEMENT_COLORPROP(green, m_crGreen) | 156 JS_IMPLEMENT_COLORPROP(green, m_crGreen) |
157 JS_IMPLEMENT_COLORPROP(blue, m_crBlue) | 157 JS_IMPLEMENT_COLORPROP(blue, m_crBlue) |
158 JS_IMPLEMENT_COLORPROP(cyan, m_crCyan) | 158 JS_IMPLEMENT_COLORPROP(cyan, m_crCyan) |
159 JS_IMPLEMENT_COLORPROP(magenta, m_crMagenta) | 159 JS_IMPLEMENT_COLORPROP(magenta, m_crMagenta) |
160 JS_IMPLEMENT_COLORPROP(yellow, m_crYellow) | 160 JS_IMPLEMENT_COLORPROP(yellow, m_crYellow) |
161 JS_IMPLEMENT_COLORPROP(dkGray, m_crDKGray) | 161 JS_IMPLEMENT_COLORPROP(dkGray, m_crDKGray) |
162 JS_IMPLEMENT_COLORPROP(gray, m_crGray) | 162 JS_IMPLEMENT_COLORPROP(gray, m_crGray) |
163 JS_IMPLEMENT_COLORPROP(ltGray, m_crLTGray) | 163 JS_IMPLEMENT_COLORPROP(ltGray, m_crLTGray) |
164 | 164 |
165 FX_BOOL color::convert(IJS_Context* cc, | 165 bool color::convert(IJS_Context* cc, |
166 const std::vector<CJS_Value>& params, | 166 const std::vector<CJS_Value>& params, |
167 CJS_Value& vRet, | 167 CJS_Value& vRet, |
168 CFX_WideString& sError) { | 168 CFX_WideString& sError) { |
169 int iSize = params.size(); | 169 int iSize = params.size(); |
170 if (iSize < 2) | 170 if (iSize < 2) |
171 return FALSE; | 171 return false; |
172 | 172 |
173 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); | 173 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
174 CJS_Array aSource; | 174 CJS_Array aSource; |
175 if (!params[0].ConvertToArray(pRuntime, aSource)) | 175 if (!params[0].ConvertToArray(pRuntime, aSource)) |
176 return FALSE; | 176 return false; |
177 | 177 |
178 CPWL_Color crSource; | 178 CPWL_Color crSource; |
179 ConvertArrayToPWLColor(pRuntime, aSource, &crSource); | 179 ConvertArrayToPWLColor(pRuntime, aSource, &crSource); |
180 | 180 |
181 CFX_ByteString sDestSpace = params[1].ToCFXByteString(pRuntime); | 181 CFX_ByteString sDestSpace = params[1].ToCFXByteString(pRuntime); |
182 int nColorType = COLORTYPE_TRANSPARENT; | 182 int nColorType = COLORTYPE_TRANSPARENT; |
183 | 183 |
184 if (sDestSpace == "T") { | 184 if (sDestSpace == "T") { |
185 nColorType = COLORTYPE_TRANSPARENT; | 185 nColorType = COLORTYPE_TRANSPARENT; |
186 } else if (sDestSpace == "G") { | 186 } else if (sDestSpace == "G") { |
187 nColorType = COLORTYPE_GRAY; | 187 nColorType = COLORTYPE_GRAY; |
188 } else if (sDestSpace == "RGB") { | 188 } else if (sDestSpace == "RGB") { |
189 nColorType = COLORTYPE_RGB; | 189 nColorType = COLORTYPE_RGB; |
190 } else if (sDestSpace == "CMYK") { | 190 } else if (sDestSpace == "CMYK") { |
191 nColorType = COLORTYPE_CMYK; | 191 nColorType = COLORTYPE_CMYK; |
192 } | 192 } |
193 | 193 |
194 CJS_Array aDest; | 194 CJS_Array aDest; |
195 CPWL_Color crDest = crSource; | 195 CPWL_Color crDest = crSource; |
196 crDest.ConvertColorType(nColorType); | 196 crDest.ConvertColorType(nColorType); |
197 ConvertPWLColorToArray(pRuntime, crDest, &aDest); | 197 ConvertPWLColorToArray(pRuntime, crDest, &aDest); |
198 vRet = CJS_Value(pRuntime, aDest); | 198 vRet = CJS_Value(pRuntime, aDest); |
199 | 199 |
200 return TRUE; | 200 return true; |
201 } | 201 } |
202 | 202 |
203 FX_BOOL color::equal(IJS_Context* cc, | 203 bool color::equal(IJS_Context* cc, |
204 const std::vector<CJS_Value>& params, | 204 const std::vector<CJS_Value>& params, |
205 CJS_Value& vRet, | 205 CJS_Value& vRet, |
206 CFX_WideString& sError) { | 206 CFX_WideString& sError) { |
207 if (params.size() < 2) | 207 if (params.size() < 2) |
208 return FALSE; | 208 return false; |
209 | 209 |
210 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); | 210 CJS_Runtime* pRuntime = CJS_Runtime::FromContext(cc); |
211 CJS_Array array1; | 211 CJS_Array array1; |
212 CJS_Array array2; | 212 CJS_Array array2; |
213 if (!params[0].ConvertToArray(pRuntime, array1)) | 213 if (!params[0].ConvertToArray(pRuntime, array1)) |
214 return FALSE; | 214 return false; |
215 if (!params[1].ConvertToArray(pRuntime, array2)) | 215 if (!params[1].ConvertToArray(pRuntime, array2)) |
216 return FALSE; | 216 return false; |
217 | 217 |
218 CPWL_Color color1; | 218 CPWL_Color color1; |
219 CPWL_Color color2; | 219 CPWL_Color color2; |
220 ConvertArrayToPWLColor(pRuntime, array1, &color1); | 220 ConvertArrayToPWLColor(pRuntime, array1, &color1); |
221 ConvertArrayToPWLColor(pRuntime, array2, &color2); | 221 ConvertArrayToPWLColor(pRuntime, array2, &color2); |
222 color1.ConvertColorType(color2.nColorType); | 222 color1.ConvertColorType(color2.nColorType); |
223 vRet = CJS_Value(pRuntime, color1 == color2); | 223 vRet = CJS_Value(pRuntime, color1 == color2); |
224 return TRUE; | 224 return true; |
225 } | 225 } |
OLD | NEW |