summaryrefslogtreecommitdiff
path: root/fxjs/xfa
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-12-12 20:13:38 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-12-12 20:13:38 +0000
commit2e8cc01dd9e416c17a90a8d484d882d1c257c081 (patch)
treec1a3fc3492c17eef7525374ea48db2d7480bb12e /fxjs/xfa
parentebcbb85ea364605baf8e382ad66793bf1b4db029 (diff)
downloadpdfium-2e8cc01dd9e416c17a90a8d484d882d1c257c081.tar.xz
Move Script_Som_{Fill|Font}Color to CJX_Object
The CJX_Node isn't the root of the CJX hierarchy. This causes issues now that CJX_Object has child objects which don't inherit from CJX_Node. This CL moves Script_Som_{Fill|Font}Color from CJX_Node to CJX_Object. Change-Id: I681d2c09a7560eb96967bbbbcb050246f4b879c0 Reviewed-on: https://pdfium-review.googlesource.com/20991 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fxjs/xfa')
-rw-r--r--fxjs/xfa/cjx_node.cpp95
-rw-r--r--fxjs/xfa/cjx_node.h6
-rw-r--r--fxjs/xfa/cjx_object.cpp61
-rw-r--r--fxjs/xfa/cjx_object.h6
4 files changed, 67 insertions, 101 deletions
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index c0a7f37675..ff65c38850 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -7,7 +7,6 @@
#include "fxjs/xfa/cjx_node.h"
#include <map>
-#include <tuple>
#include <vector>
#include "core/fxcrt/cfx_decimal.h"
@@ -32,37 +31,6 @@
namespace {
-std::tuple<int32_t, int32_t, int32_t> StrToRGB(const WideString& strRGB) {
- int32_t r = 0;
- int32_t g = 0;
- int32_t b = 0;
-
- size_t iIndex = 0;
- for (size_t i = 0; i < strRGB.GetLength(); ++i) {
- wchar_t ch = strRGB[i];
- if (ch == L',')
- ++iIndex;
- if (iIndex > 2)
- break;
-
- int32_t iValue = ch - L'0';
- if (iValue >= 0 && iValue <= 9) {
- switch (iIndex) {
- case 0:
- r = r * 10 + iValue;
- break;
- case 1:
- g = g * 10 + iValue;
- break;
- default:
- b = b * 10 + iValue;
- break;
- }
- }
- }
- return {r, g, b};
-}
-
enum class EventAppliesToo {
kNone = 0,
kAll = 1,
@@ -789,39 +757,6 @@ void CJX_Node::Script_Boolean_Value(CFXJSE_Value* pValue,
SetContent(wsNewValue, wsFormatValue, true, true, true);
}
-void CJX_Node::Script_Som_FillColor(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
- if (!pWidgetData)
- return;
-
- CXFA_BorderData borderData = pWidgetData->GetBorderData(true);
- CXFA_FillData borderfillData = borderData.GetFillData(true);
- CXFA_Node* pNode = borderfillData.GetNode();
- if (!pNode)
- return;
-
- if (bSetting) {
- int32_t r;
- int32_t g;
- int32_t b;
- std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
- FX_ARGB color = ArgbEncode(0xff, r, g, b);
- borderfillData.SetColor(color);
- return;
- }
-
- FX_ARGB color = borderfillData.GetColor(false);
- int32_t a;
- int32_t r;
- int32_t g;
- int32_t b;
- std::tie(a, r, g, b) = ArgbDecode(color);
- pValue->SetString(
- WideString::Format(L"%d,%d,%d", r, g, b).UTF8Encode().AsStringView());
-}
-
void CJX_Node::Script_Som_DataNode(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
@@ -943,36 +878,6 @@ void CJX_Node::Script_Field_EditValue(CFXJSE_Value* pValue,
pWidgetData->GetValue(XFA_VALUEPICTURE_Edit).UTF8Encode().AsStringView());
}
-void CJX_Node::Script_Som_FontColor(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute) {
- CXFA_WidgetData* pWidgetData = GetXFANode()->GetWidgetData();
- if (!pWidgetData)
- return;
-
- CXFA_FontData fontData = pWidgetData->GetFontData(true);
- CXFA_Node* pNode = fontData.GetNode();
- if (!pNode)
- return;
-
- if (bSetting) {
- int32_t r;
- int32_t g;
- int32_t b;
- std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
- FX_ARGB color = ArgbEncode(0xff, r, g, b);
- fontData.SetColor(color);
- return;
- }
-
- int32_t a;
- int32_t r;
- int32_t g;
- int32_t b;
- std::tie(a, r, g, b) = ArgbDecode(fontData.GetColor());
- pValue->SetString(ByteString::Format("%d,%d,%d", r, g, b).AsStringView());
-}
-
void CJX_Node::Script_Field_FormatMessage(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index 8c42b340a8..bfc0fa4d5f 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -122,15 +122,9 @@ class CJX_Node : public CJX_Tree {
void Script_Som_Message(CFXJSE_Value* pValue,
bool bSetting,
XFA_SOM_MESSAGETYPE iMessageType);
- void Script_Som_FillColor(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
void Script_Som_DataNode(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
- void Script_Som_FontColor(CFXJSE_Value* pValue,
- bool bSetting,
- XFA_Attribute eAttribute);
void Script_Som_Mandatory(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index 5b21730df2..1d94b55d98 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -925,6 +925,67 @@ void CJX_Object::Script_Attribute_Integer(CFXJSE_Value* pValue,
pValue->SetInteger(GetInteger(eAttribute));
}
+void CJX_Object::Script_Som_FontColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (!widget_data_)
+ return;
+
+ CXFA_FontData fontData = widget_data_->GetFontData(true);
+ CXFA_Node* pNode = fontData.GetNode();
+ if (!pNode)
+ return;
+
+ if (bSetting) {
+ int32_t r;
+ int32_t g;
+ int32_t b;
+ std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
+ FX_ARGB color = ArgbEncode(0xff, r, g, b);
+ fontData.SetColor(color);
+ return;
+ }
+
+ int32_t a;
+ int32_t r;
+ int32_t g;
+ int32_t b;
+ std::tie(a, r, g, b) = ArgbDecode(fontData.GetColor());
+ pValue->SetString(ByteString::Format("%d,%d,%d", r, g, b).AsStringView());
+}
+
+void CJX_Object::Script_Som_FillColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute) {
+ if (!widget_data_)
+ return;
+
+ CXFA_BorderData borderData = widget_data_->GetBorderData(true);
+ CXFA_FillData borderfillData = borderData.GetFillData(true);
+ CXFA_Node* pNode = borderfillData.GetNode();
+ if (!pNode)
+ return;
+
+ if (bSetting) {
+ int32_t r;
+ int32_t g;
+ int32_t b;
+ std::tie(r, g, b) = StrToRGB(pValue->ToWideString());
+ FX_ARGB color = ArgbEncode(0xff, r, g, b);
+ borderfillData.SetColor(color);
+ return;
+ }
+
+ FX_ARGB color = borderfillData.GetColor(false);
+ int32_t a;
+ int32_t r;
+ int32_t g;
+ int32_t b;
+ std::tie(a, r, g, b) = ArgbDecode(color);
+ pValue->SetString(
+ WideString::Format(L"%d,%d,%d", r, g, b).UTF8Encode().AsStringView());
+}
+
void CJX_Object::Script_Som_BorderColor(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index dfd2bbc929..e29081c07b 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -92,6 +92,12 @@ class CJX_Object {
bool bSetting,
XFA_Attribute eAttribute);
+ void Script_Som_FontColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
+ void Script_Som_FillColor(CFXJSE_Value* pValue,
+ bool bSetting,
+ XFA_Attribute eAttribute);
void Script_Som_BorderColor(CFXJSE_Value* pValue,
bool bSetting,
XFA_Attribute eAttribute);