xref: /aosp_15_r20/external/pdfium/xfa/fxfa/cxfa_ffarc.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1 // Copyright 2017 The PDFium Authors
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/cxfa_ffarc.h"
8 
9 #include "xfa/fxfa/parser/cxfa_arc.h"
10 #include "xfa/fxfa/parser/cxfa_value.h"
11 
CXFA_FFArc(CXFA_Node * pNode)12 CXFA_FFArc::CXFA_FFArc(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
13 
14 CXFA_FFArc::~CXFA_FFArc() = default;
15 
RenderWidget(CFGAS_GEGraphics * pGS,const CFX_Matrix & matrix,HighlightOption highlight)16 void CXFA_FFArc::RenderWidget(CFGAS_GEGraphics* pGS,
17                               const CFX_Matrix& matrix,
18                               HighlightOption highlight) {
19   if (!HasVisibleStatus())
20     return;
21 
22   CXFA_Value* value = m_pNode->GetFormValueIfExists();
23   if (!value)
24     return;
25 
26   CFX_RectF rtArc = GetRectWithoutRotate();
27   CXFA_Margin* margin = m_pNode->GetMarginIfExists();
28   XFA_RectWithoutMargin(&rtArc, margin);
29 
30   CFX_Matrix mtRotate = GetRotateMatrix();
31   mtRotate.Concat(matrix);
32   DrawBorder(pGS, value->GetArcIfExists(), rtArc, mtRotate);
33 }
34