diff options
Diffstat (limited to 'xfa/fxfa')
-rw-r--r-- | xfa/fxfa/cxfa_ffline.cpp | 14 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_ffpushbutton.cpp | 7 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_ffwidget.cpp | 54 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_boxdata.cpp | 16 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_boxdata.h | 4 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_edgedata.h (renamed from xfa/fxfa/parser/cxfa_edge.h) | 10 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_line.cpp | 4 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_line.h | 4 |
8 files changed, 53 insertions, 60 deletions
diff --git a/xfa/fxfa/cxfa_ffline.cpp b/xfa/fxfa/cxfa_ffline.cpp index 358b8c3714..cc52ce1763 100644 --- a/xfa/fxfa/cxfa_ffline.cpp +++ b/xfa/fxfa/cxfa_ffline.cpp @@ -62,15 +62,15 @@ void CXFA_FFLine::RenderWidget(CXFA_Graphics* pGS, int32_t iStrokeType = 0; float fLineWidth = 1.0f; int32_t iCap = 0; - CXFA_Edge edge = lineObj.GetEdge(); - if (edge) { - if (edge.GetPresence() != XFA_ATTRIBUTEENUM_Visible) + CXFA_EdgeData edgeData = lineObj.GetEdgeData(); + if (edgeData) { + if (edgeData.GetPresence() != XFA_ATTRIBUTEENUM_Visible) return; - lineColor = edge.GetColor(); - iStrokeType = edge.GetStrokeType(); - fLineWidth = edge.GetThickness(); - iCap = edge.GetCapType(); + lineColor = edgeData.GetColor(); + iStrokeType = edgeData.GetStrokeType(); + fLineWidth = edgeData.GetThickness(); + iCap = edgeData.GetCapType(); } CFX_Matrix mtRotate = GetRotateMatrix(); diff --git a/xfa/fxfa/cxfa_ffpushbutton.cpp b/xfa/fxfa/cxfa_ffpushbutton.cpp index 9ec48b865d..54725ad794 100644 --- a/xfa/fxfa/cxfa_ffpushbutton.cpp +++ b/xfa/fxfa/cxfa_ffpushbutton.cpp @@ -114,10 +114,9 @@ bool CXFA_FFPushButton::PerformLayout() { } float CXFA_FFPushButton::GetLineWidth() { CXFA_BorderData borderData = m_pDataAcc->GetBorderData(false); - if (borderData && borderData.GetPresence() == XFA_ATTRIBUTEENUM_Visible) { - CXFA_Edge edge = borderData.GetEdge(0); - return edge.GetThickness(); - } + if (borderData && borderData.GetPresence() == XFA_ATTRIBUTEENUM_Visible) + return borderData.GetEdgeData(0).GetThickness(); + return 0; } diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp index f6949c4853..dcacf5054d 100644 --- a/xfa/fxfa/cxfa_ffwidget.cpp +++ b/xfa/fxfa/cxfa_ffwidget.cpp @@ -7,6 +7,7 @@ #include "xfa/fxfa/cxfa_ffwidget.h" #include <algorithm> +#include <cmath> #include <memory> #include <vector> @@ -85,24 +86,23 @@ void XFA_BOX_GetPath(const std::vector<CXFA_Stroke>& strokes, float halfBefore = 0.0f; CXFA_Stroke stroke = strokes[nIndex]; if (stroke.IsCorner()) { - CXFA_Stroke edgeBefore = strokes[(nIndex + 1 * 8 - 1) % 8]; - CXFA_Stroke edgeAfter = strokes[nIndex + 1]; + CXFA_Stroke strokeBefore = strokes[(nIndex + 1 * 8 - 1) % 8]; + CXFA_Stroke strokeAfter = strokes[nIndex + 1]; if (stroke.IsInverted()) { - if (!stroke.SameStyles(edgeBefore)) { - halfBefore = edgeBefore.GetThickness() / 2; - } - if (!stroke.SameStyles(edgeAfter)) { - halfAfter = edgeAfter.GetThickness() / 2; - } + if (!stroke.SameStyles(strokeBefore)) + halfBefore = strokeBefore.GetThickness() / 2; + if (!stroke.SameStyles(strokeAfter)) + halfAfter = strokeAfter.GetThickness() / 2; } } else { - CXFA_Stroke edgeBefore = strokes[(nIndex + 8 - 2) % 8]; - CXFA_Stroke edgeAfter = strokes[(nIndex + 2) % 8]; + CXFA_Stroke strokeBefore = strokes[(nIndex + 8 - 2) % 8]; + CXFA_Stroke strokeAfter = strokes[(nIndex + 2) % 8]; if (!bRound && !bInverted) { - halfBefore = edgeBefore.GetThickness() / 2; - halfAfter = edgeAfter.GetThickness() / 2; + halfBefore = strokeBefore.GetThickness() / 2; + halfAfter = strokeAfter.GetThickness() / 2; } } + float offsetEX = 0.0f; float offsetEY = 0.0f; float sx = 0.0f; @@ -240,21 +240,18 @@ void XFA_BOX_GetFillPath(CXFA_BoxData boxData, CXFA_Path& fillPath, uint16_t dwFlags) { if (boxData.IsArc() || (dwFlags & XFA_DRAWBOX_ForceRound) != 0) { - CXFA_Edge edge = boxData.GetEdge(0); - float fThickness = edge.GetThickness(); - if (fThickness < 0) { - fThickness = 0; - } + float fThickness = std::fmax(0.0, boxData.GetEdgeData(0).GetThickness()); float fHalf = fThickness / 2; int32_t iHand = boxData.GetHand(); - if (iHand == XFA_ATTRIBUTEENUM_Left) { + if (iHand == XFA_ATTRIBUTEENUM_Left) rtWidget.Inflate(fHalf, fHalf); - } else if (iHand == XFA_ATTRIBUTEENUM_Right) { + else if (iHand == XFA_ATTRIBUTEENUM_Right) rtWidget.Deflate(fHalf, fHalf); - } + XFA_BOX_GetPath_Arc(boxData, rtWidget, fillPath, dwFlags); return; } + bool bSameStyles = true; CXFA_Stroke stroke1 = strokes[0]; for (int32_t i = 1; i < 8; i++) { @@ -556,10 +553,10 @@ void XFA_BOX_StrokeArc(CXFA_BoxData boxData, CFX_RectF rtWidget, const CFX_Matrix& matrix, uint32_t dwFlags) { - CXFA_Edge edge = boxData.GetEdge(0); - if (!edge || !edge.IsVisible()) { + CXFA_EdgeData edgeData = boxData.GetEdgeData(0); + if (!edgeData || !edgeData.IsVisible()) return; - } + bool bVisible = false; float fThickness = 0; int32_t i3DType = boxData.Get3DStyle(bVisible, fThickness); @@ -568,7 +565,7 @@ void XFA_BOX_StrokeArc(CXFA_BoxData boxData, dwFlags |= XFA_DRAWBOX_Lowered3D; } } - float fHalf = edge.GetThickness() / 2; + float fHalf = edgeData.GetThickness() / 2; if (fHalf < 0) { fHalf = 0; } @@ -585,7 +582,7 @@ void XFA_BOX_StrokeArc(CXFA_BoxData boxData, CXFA_Path arcPath; XFA_BOX_GetPath_Arc(boxData, rtWidget, arcPath, dwFlags); - XFA_BOX_StrokePath(edge, &arcPath, pGS, matrix); + XFA_BOX_StrokePath(edgeData, &arcPath, pGS, matrix); return; } pGS->SaveGraphState(); @@ -832,11 +829,8 @@ void XFA_BOX_Stroke(CXFA_BoxData boxData, return; } for (int32_t i = 1; i < 8; i += 2) { - CXFA_Edge edge(strokes[i].GetNode()); - float fThickness = edge.GetThickness(); - if (fThickness < 0) { - fThickness = 0; - } + float fThickness = + std::fmax(0.0, CXFA_EdgeData(strokes[i].GetNode()).GetThickness()); float fHalf = fThickness / 2; int32_t iHand = boxData.GetHand(); switch (i) { diff --git a/xfa/fxfa/parser/cxfa_boxdata.cpp b/xfa/fxfa/parser/cxfa_boxdata.cpp index 51fadffd79..607a1571dc 100644 --- a/xfa/fxfa/parser/cxfa_boxdata.cpp +++ b/xfa/fxfa/parser/cxfa_boxdata.cpp @@ -33,10 +33,10 @@ void GetStrokesInternal(CXFA_Node* pNode, (*strokes)[j] = (*strokes)[2]; } j++; - CXFA_Edge edge = - CXFA_Edge(pNode->JSNode()->GetProperty(i, XFA_Element::Edge, i == 0)); - if (edge || i == 0) { - (*strokes)[j] = edge; + CXFA_EdgeData edgeData = CXFA_EdgeData( + pNode->JSNode()->GetProperty(i, XFA_Element::Edge, i == 0)); + if (edgeData || i == 0) { + (*strokes)[j] = edgeData; } else if (!bNull) { if (i == 1 || i == 2) (*strokes)[j] = (*strokes)[1]; @@ -93,10 +93,10 @@ int32_t CXFA_BoxData::CountEdges() const { return m_pNode->CountChildren(XFA_Element::Edge, false); } -CXFA_Edge CXFA_BoxData::GetEdge(int32_t nIndex) const { - return CXFA_Edge(m_pNode ? m_pNode->JSNode()->GetProperty( - nIndex, XFA_Element::Edge, nIndex == 0) - : nullptr); +CXFA_EdgeData CXFA_BoxData::GetEdgeData(int32_t nIndex) const { + return CXFA_EdgeData(m_pNode ? m_pNode->JSNode()->GetProperty( + nIndex, XFA_Element::Edge, nIndex == 0) + : nullptr); } void CXFA_BoxData::GetStrokes(std::vector<CXFA_Stroke>* strokes) const { diff --git a/xfa/fxfa/parser/cxfa_boxdata.h b/xfa/fxfa/parser/cxfa_boxdata.h index b664479a28..384d4c1e00 100644 --- a/xfa/fxfa/parser/cxfa_boxdata.h +++ b/xfa/fxfa/parser/cxfa_boxdata.h @@ -11,7 +11,7 @@ #include "core/fxcrt/fx_system.h" #include "xfa/fxfa/parser/cxfa_data.h" -#include "xfa/fxfa/parser/cxfa_edge.h" +#include "xfa/fxfa/parser/cxfa_edgedata.h" #include "xfa/fxfa/parser/cxfa_fill.h" #include "xfa/fxfa/parser/cxfa_margin.h" @@ -29,7 +29,7 @@ class CXFA_BoxData : public CXFA_Data { int32_t GetHand() const; int32_t GetPresence() const; int32_t CountEdges() const; - CXFA_Edge GetEdge(int32_t nIndex = 0) const; + CXFA_EdgeData GetEdgeData(int32_t nIndex = 0) const; void GetStrokes(std::vector<CXFA_Stroke>* strokes) const; bool IsCircular() const; bool GetStartAngle(float& fStartAngle) const; diff --git a/xfa/fxfa/parser/cxfa_edge.h b/xfa/fxfa/parser/cxfa_edgedata.h index 96e725f4c6..5e9ebf3db5 100644 --- a/xfa/fxfa/parser/cxfa_edge.h +++ b/xfa/fxfa/parser/cxfa_edgedata.h @@ -4,16 +4,16 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef XFA_FXFA_PARSER_CXFA_EDGE_H_ -#define XFA_FXFA_PARSER_CXFA_EDGE_H_ +#ifndef XFA_FXFA_PARSER_CXFA_EDGEDATA_H_ +#define XFA_FXFA_PARSER_CXFA_EDGEDATA_H_ #include "xfa/fxfa/parser/cxfa_stroke.h" class CXFA_Node; -class CXFA_Edge : public CXFA_Stroke { +class CXFA_EdgeData : public CXFA_Stroke { public: - explicit CXFA_Edge(CXFA_Node* pNode) : CXFA_Stroke(pNode) {} + explicit CXFA_EdgeData(CXFA_Node* pNode) : CXFA_Stroke(pNode) {} }; -#endif // XFA_FXFA_PARSER_CXFA_EDGE_H_ +#endif // XFA_FXFA_PARSER_CXFA_EDGEDATA_H_ diff --git a/xfa/fxfa/parser/cxfa_line.cpp b/xfa/fxfa/parser/cxfa_line.cpp index 85f38a2822..5216bd4622 100644 --- a/xfa/fxfa/parser/cxfa_line.cpp +++ b/xfa/fxfa/parser/cxfa_line.cpp @@ -17,6 +17,6 @@ bool CXFA_Line::GetSlope() { XFA_ATTRIBUTEENUM_Slash; } -CXFA_Edge CXFA_Line::GetEdge() { - return CXFA_Edge(m_pNode->GetChild(0, XFA_Element::Edge, false)); +CXFA_EdgeData CXFA_Line::GetEdgeData() { + return CXFA_EdgeData(m_pNode->GetChild(0, XFA_Element::Edge, false)); } diff --git a/xfa/fxfa/parser/cxfa_line.h b/xfa/fxfa/parser/cxfa_line.h index f014cc0618..b167e39810 100644 --- a/xfa/fxfa/parser/cxfa_line.h +++ b/xfa/fxfa/parser/cxfa_line.h @@ -9,7 +9,7 @@ #include "core/fxcrt/fx_system.h" #include "xfa/fxfa/parser/cxfa_data.h" -#include "xfa/fxfa/parser/cxfa_edge.h" +#include "xfa/fxfa/parser/cxfa_edgedata.h" class CXFA_Node; @@ -19,7 +19,7 @@ class CXFA_Line : public CXFA_Data { int32_t GetHand(); bool GetSlope(); - CXFA_Edge GetEdge(); + CXFA_EdgeData GetEdgeData(); }; #endif // XFA_FXFA_PARSER_CXFA_LINE_H_ |