Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: xfa/fxfa/parser/cxfa_fill.cpp

Issue 1861353002: Split fxfa_objectacc.h into pieces. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/parser/cxfa_fill.h ('k') | xfa/fxfa/parser/cxfa_font.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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 #include "xfa/fxfa/parser/cxfa_fill.h"
8
9 #include "xfa/fxfa/parser/xfa_object.h"
10
11 CXFA_Fill::CXFA_Fill(CXFA_Node* pNode) : CXFA_Data(pNode) {}
12
13 CXFA_Fill::~CXFA_Fill() {}
14
15 int32_t CXFA_Fill::GetPresence() {
16 return m_pNode->GetEnum(XFA_ATTRIBUTE_Presence);
17 }
18
19 void CXFA_Fill::SetColor(FX_ARGB color) {
20 CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Color);
21 CFX_WideString wsColor;
22 int a, r, g, b;
23 ArgbDecode(color, a, r, g, b);
24 wsColor.Format(L"%d,%d,%d", r, g, b);
25 pNode->SetCData(XFA_ATTRIBUTE_Value, wsColor);
26 }
27
28 FX_ARGB CXFA_Fill::GetColor(FX_BOOL bText) {
29 if (CXFA_Node* pNode = m_pNode->GetChild(0, XFA_ELEMENT_Color)) {
30 CFX_WideStringC wsColor;
31 if (pNode->TryCData(XFA_ATTRIBUTE_Value, wsColor, FALSE))
32 return CXFA_Data::ToColor(wsColor);
33 }
34 if (bText)
35 return 0xFF000000;
36 return 0xFFFFFFFF;
37 }
38
39 int32_t CXFA_Fill::GetFillType() {
40 CXFA_Node* pChild = m_pNode->GetNodeItem(XFA_NODEITEM_FirstChild);
41 while (pChild) {
42 int32_t eType = pChild->GetClassID();
43 if (eType != XFA_ELEMENT_Color && eType != XFA_ELEMENT_Extras)
44 return eType;
45
46 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling);
47 }
48 return XFA_ELEMENT_Solid;
49 }
50
51 int32_t CXFA_Fill::GetPattern(FX_ARGB& foreColor) {
52 CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Pattern);
53 if (CXFA_Node* pColor = pNode->GetChild(0, XFA_ELEMENT_Color)) {
54 CFX_WideStringC wsColor;
55 pColor->TryCData(XFA_ATTRIBUTE_Value, wsColor, FALSE);
56 foreColor = CXFA_Data::ToColor(wsColor);
57 } else {
58 foreColor = 0xFF000000;
59 }
60 return pNode->GetEnum(XFA_ATTRIBUTE_Type);
61 }
62
63 int32_t CXFA_Fill::GetStipple(FX_ARGB& stippleColor) {
64 CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Stipple);
65 int32_t eAttr = 50;
66 pNode->TryInteger(XFA_ATTRIBUTE_Rate, eAttr);
67 if (CXFA_Node* pColor = pNode->GetChild(0, XFA_ELEMENT_Color)) {
68 CFX_WideStringC wsColor;
69 pColor->TryCData(XFA_ATTRIBUTE_Value, wsColor, FALSE);
70 stippleColor = CXFA_Data::ToColor(wsColor);
71 } else {
72 stippleColor = 0xFF000000;
73 }
74 return eAttr;
75 }
76
77 int32_t CXFA_Fill::GetLinear(FX_ARGB& endColor) {
78 CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Linear);
79 XFA_ATTRIBUTEENUM eAttr = XFA_ATTRIBUTEENUM_ToRight;
80 pNode->TryEnum(XFA_ATTRIBUTE_Type, eAttr);
81 if (CXFA_Node* pColor = pNode->GetChild(0, XFA_ELEMENT_Color)) {
82 CFX_WideStringC wsColor;
83 pColor->TryCData(XFA_ATTRIBUTE_Value, wsColor, FALSE);
84 endColor = CXFA_Data::ToColor(wsColor);
85 } else {
86 endColor = 0xFF000000;
87 }
88 return eAttr;
89 }
90
91 int32_t CXFA_Fill::GetRadial(FX_ARGB& endColor) {
92 CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Radial);
93 XFA_ATTRIBUTEENUM eAttr = XFA_ATTRIBUTEENUM_ToEdge;
94 pNode->TryEnum(XFA_ATTRIBUTE_Type, eAttr);
95 if (CXFA_Node* pColor = pNode->GetChild(0, XFA_ELEMENT_Color)) {
96 CFX_WideStringC wsColor;
97 pColor->TryCData(XFA_ATTRIBUTE_Value, wsColor, FALSE);
98 endColor = CXFA_Data::ToColor(wsColor);
99 } else {
100 endColor = 0xFF000000;
101 }
102 return eAttr;
103 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/cxfa_fill.h ('k') | xfa/fxfa/parser/cxfa_font.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698