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

Unified Diff: xfa/fxfa/parser/cxfa_stroke.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « xfa/fxfa/parser/cxfa_stroke.h ('k') | xfa/fxfa/parser/cxfa_submit.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: xfa/fxfa/parser/cxfa_stroke.cpp
diff --git a/xfa/fxfa/parser/cxfa_stroke.cpp b/xfa/fxfa/parser/cxfa_stroke.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ac175bed584cbcd4a02936df29eb6e3ab801746e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_stroke.cpp
@@ -0,0 +1,105 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fxfa/parser/cxfa_stroke.h"
+
+#include "xfa/fxfa/parser/xfa_object.h"
+
+int32_t CXFA_Stroke::GetPresence() const {
+ return m_pNode ? m_pNode->GetEnum(XFA_ATTRIBUTE_Presence)
+ : XFA_ATTRIBUTEENUM_Invisible;
+}
+
+int32_t CXFA_Stroke::GetCapType() const {
+ if (!m_pNode)
+ return XFA_ATTRIBUTEENUM_Square;
+ return m_pNode->GetEnum(XFA_ATTRIBUTE_Cap);
+}
+
+int32_t CXFA_Stroke::GetStrokeType() const {
+ return m_pNode ? m_pNode->GetEnum(XFA_ATTRIBUTE_Stroke)
+ : XFA_ATTRIBUTEENUM_Solid;
+}
+
+FX_FLOAT CXFA_Stroke::GetThickness() const {
+ return GetMSThickness().ToUnit(XFA_UNIT_Pt);
+}
+
+CXFA_Measurement CXFA_Stroke::GetMSThickness() const {
+ return m_pNode ? m_pNode->GetMeasure(XFA_ATTRIBUTE_Thickness)
+ : XFA_GetAttributeDefaultValue_Measure(XFA_ELEMENT_Edge,
+ XFA_ATTRIBUTE_Thickness,
+ XFA_XDPPACKET_Form);
+}
+
+void CXFA_Stroke::SetMSThickness(CXFA_Measurement msThinkness) {
+ if (!m_pNode)
+ return;
+
+ m_pNode->SetMeasure(XFA_ATTRIBUTE_Thickness, msThinkness);
+}
+
+FX_ARGB CXFA_Stroke::GetColor() const {
+ if (!m_pNode)
+ return 0xFF000000;
+
+ CXFA_Node* pNode = m_pNode->GetChild(0, XFA_ELEMENT_Color);
+ if (!pNode)
+ return 0xFF000000;
+
+ CFX_WideStringC wsColor;
+ pNode->TryCData(XFA_ATTRIBUTE_Value, wsColor);
+ return CXFA_Data::ToColor(wsColor);
+}
+
+void CXFA_Stroke::SetColor(FX_ARGB argb) {
+ if (!m_pNode)
+ return;
+
+ CXFA_Node* pNode = m_pNode->GetProperty(0, XFA_ELEMENT_Color);
+ CFX_WideString wsColor;
+ int a;
+ int r;
+ int g;
+ int b;
+ ArgbDecode(argb, a, r, g, b);
+ wsColor.Format(L"%d,%d,%d", r, g, b);
+ pNode->SetCData(XFA_ATTRIBUTE_Value, wsColor);
+}
+
+int32_t CXFA_Stroke::GetJoinType() const {
+ return m_pNode ? m_pNode->GetEnum(XFA_ATTRIBUTE_Join)
+ : XFA_ATTRIBUTEENUM_Square;
+}
+
+FX_BOOL CXFA_Stroke::IsInverted() const {
+ return m_pNode ? m_pNode->GetBoolean(XFA_ATTRIBUTE_Inverted) : FALSE;
+}
+
+FX_FLOAT CXFA_Stroke::GetRadius() const {
+ return m_pNode ? m_pNode->GetMeasure(XFA_ATTRIBUTE_Radius).ToUnit(XFA_UNIT_Pt)
+ : 0;
+}
+
+FX_BOOL CXFA_Stroke::SameStyles(CXFA_Stroke stroke, uint32_t dwFlags) const {
+ if (m_pNode == stroke.GetNode())
+ return TRUE;
+ if (FXSYS_fabs(GetThickness() - stroke.GetThickness()) >= 0.01f)
+ return FALSE;
+ if ((dwFlags & XFA_STROKE_SAMESTYLE_NoPresence) == 0 &&
+ IsVisible() != stroke.IsVisible()) {
+ return FALSE;
+ }
+ if (GetStrokeType() != stroke.GetStrokeType())
+ return FALSE;
+ if (GetColor() != stroke.GetColor())
+ return FALSE;
+ if ((dwFlags & XFA_STROKE_SAMESTYLE_Corner) != 0 &&
+ FXSYS_fabs(GetRadius() - stroke.GetRadius()) >= 0.01f) {
+ return FALSE;
+ }
+ return TRUE;
+}
« no previous file with comments | « xfa/fxfa/parser/cxfa_stroke.h ('k') | xfa/fxfa/parser/cxfa_submit.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698