bool color::convert(CJS_Runtime* pRuntime, const std::vector<CJS_Value>& params, CJS_Value& vRet, CFX_WideString& sError) { int iSize = params.size(); if (iSize < 2) return false; CJS_Array aSource; if (!params[0].ConvertToArray(pRuntime, aSource)) return false; CPWL_Color crSource; ConvertArrayToPWLColor(pRuntime, aSource, &crSource); CFX_ByteString sDestSpace = params[1].ToCFXByteString(pRuntime); int nColorType = COLORTYPE_TRANSPARENT; if (sDestSpace == "T") { nColorType = COLORTYPE_TRANSPARENT; } else if (sDestSpace == "G") { nColorType = COLORTYPE_GRAY; } else if (sDestSpace == "RGB") { nColorType = COLORTYPE_RGB; } else if (sDestSpace == "CMYK") { nColorType = COLORTYPE_CMYK; } CJS_Array aDest; CPWL_Color crDest = crSource.ConvertColorType(nColorType); ConvertPWLColorToArray(pRuntime, crDest, &aDest); vRet = CJS_Value(pRuntime, aDest); return true; }
FX_BOOL color::equal(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { v8::Isolate* isolate = GetIsolate(cc); if (params.size() < 2) return FALSE; CJS_Array array1(isolate), array2(isolate); if (!params[0].ConvertToArray(array1)) return FALSE; if (!params[1].ConvertToArray(array2)) return FALSE; CPWL_Color color1; CPWL_Color color2; ConvertArrayToPWLColor(array1, color1); ConvertArrayToPWLColor(array2, color2); color1.ConvertColorType(color2.nColorType); vRet = color1 == color2; return TRUE; }
bool color::equal(CJS_Runtime* pRuntime, const std::vector<CJS_Value>& params, CJS_Value& vRet, CFX_WideString& sError) { if (params.size() < 2) return false; CJS_Array array1; CJS_Array array2; if (!params[0].ConvertToArray(pRuntime, array1)) return false; if (!params[1].ConvertToArray(pRuntime, array2)) return false; CPWL_Color color1; CPWL_Color color2; ConvertArrayToPWLColor(pRuntime, array1, &color1); ConvertArrayToPWLColor(pRuntime, array2, &color2); color1 = color1.ConvertColorType(color2.nColorType); vRet = CJS_Value(pRuntime, color1 == color2); return true; }
bool color::PropertyHelper(CJS_Runtime* pRuntime, CJS_PropValue& vp, CPWL_Color* var) { CJS_Array array; if (vp.IsGetting()) { ConvertPWLColorToArray(pRuntime, *var, &array); vp << array; return true; } if (!vp.GetJSValue()->ConvertToArray(pRuntime, array)) return false; ConvertArrayToPWLColor(pRuntime, array, var); return true; }
FX_BOOL color::convert(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError) { v8::Isolate* isolate = GetIsolate(cc); int iSize = params.size(); if (iSize < 2) return FALSE; CJS_Array aSource(isolate); if (!params[0].ConvertToArray(aSource)) return FALSE; CPWL_Color crSource; ConvertArrayToPWLColor(aSource, crSource); CFX_ByteString sDestSpace = params[1].ToCFXByteString(); int nColorType = COLORTYPE_TRANSPARENT; if (sDestSpace == "T") { nColorType = COLORTYPE_TRANSPARENT; } else if (sDestSpace == "G") { nColorType = COLORTYPE_GRAY; } else if (sDestSpace == "RGB") { nColorType = COLORTYPE_RGB; } else if (sDestSpace == "CMYK") { nColorType = COLORTYPE_CMYK; } CJS_Array aDest(isolate); CPWL_Color crDest = crSource; crDest.ConvertColorType(nColorType); ConvertPWLColorToArray(crDest, aDest); vRet = aDest; return TRUE; }