1 // Copyright 2014 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_ffsignature.h"
8
9 #include "third_party/base/check.h"
10 #include "xfa/fxfa/cxfa_ffdoc.h"
11 #include "xfa/fxfa/cxfa_fffield.h"
12 #include "xfa/fxfa/cxfa_ffpageview.h"
13 #include "xfa/fxfa/cxfa_ffwidget.h"
14 #include "xfa/fxfa/parser/cxfa_border.h"
15
CXFA_FFSignature(CXFA_Node * pNode)16 CXFA_FFSignature::CXFA_FFSignature(CXFA_Node* pNode) : CXFA_FFField(pNode) {}
17
18 CXFA_FFSignature::~CXFA_FFSignature() = default;
19
LoadWidget()20 bool CXFA_FFSignature::LoadWidget() {
21 DCHECK(!IsLoaded());
22 return CXFA_FFField::LoadWidget();
23 }
24
RenderWidget(CFGAS_GEGraphics * pGS,const CFX_Matrix & matrix,HighlightOption highlight)25 void CXFA_FFSignature::RenderWidget(CFGAS_GEGraphics* pGS,
26 const CFX_Matrix& matrix,
27 HighlightOption highlight) {
28 if (!HasVisibleStatus())
29 return;
30
31 CFX_Matrix mtRotate = GetRotateMatrix();
32 mtRotate.Concat(matrix);
33
34 CXFA_FFWidget::RenderWidget(pGS, mtRotate, highlight);
35
36 DrawBorder(pGS, m_pNode->GetUIBorder(), m_UIRect, mtRotate);
37 RenderCaption(pGS, mtRotate);
38 DrawHighlight(pGS, mtRotate, highlight, kSquareShape);
39 }
40
OnMouseEnter()41 bool CXFA_FFSignature::OnMouseEnter() {
42 return false;
43 }
44
OnMouseExit()45 bool CXFA_FFSignature::OnMouseExit() {
46 return false;
47 }
48
AcceptsFocusOnButtonDown(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point,CFWL_MessageMouse::MouseCommand command)49 bool CXFA_FFSignature::AcceptsFocusOnButtonDown(
50 Mask<XFA_FWL_KeyFlag> dwFlags,
51 const CFX_PointF& point,
52 CFWL_MessageMouse::MouseCommand command) {
53 return false;
54 }
55
OnLButtonDown(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)56 bool CXFA_FFSignature::OnLButtonDown(Mask<XFA_FWL_KeyFlag> dwFlags,
57 const CFX_PointF& point) {
58 return false;
59 }
60
OnLButtonUp(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)61 bool CXFA_FFSignature::OnLButtonUp(Mask<XFA_FWL_KeyFlag> dwFlags,
62 const CFX_PointF& point) {
63 return false;
64 }
65
OnLButtonDblClk(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)66 bool CXFA_FFSignature::OnLButtonDblClk(Mask<XFA_FWL_KeyFlag> dwFlags,
67 const CFX_PointF& point) {
68 return false;
69 }
70
OnMouseMove(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)71 bool CXFA_FFSignature::OnMouseMove(Mask<XFA_FWL_KeyFlag> dwFlags,
72 const CFX_PointF& point) {
73 return false;
74 }
75
OnMouseWheel(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point,const CFX_Vector & delta)76 bool CXFA_FFSignature::OnMouseWheel(Mask<XFA_FWL_KeyFlag> dwFlags,
77 const CFX_PointF& point,
78 const CFX_Vector& delta) {
79 return false;
80 }
81
OnRButtonDown(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)82 bool CXFA_FFSignature::OnRButtonDown(Mask<XFA_FWL_KeyFlag> dwFlags,
83 const CFX_PointF& point) {
84 return false;
85 }
86
OnRButtonUp(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)87 bool CXFA_FFSignature::OnRButtonUp(Mask<XFA_FWL_KeyFlag> dwFlags,
88 const CFX_PointF& point) {
89 return false;
90 }
91
OnRButtonDblClk(Mask<XFA_FWL_KeyFlag> dwFlags,const CFX_PointF & point)92 bool CXFA_FFSignature::OnRButtonDblClk(Mask<XFA_FWL_KeyFlag> dwFlags,
93 const CFX_PointF& point) {
94 return false;
95 }
96
OnKeyDown(XFA_FWL_VKEYCODE dwKeyCode,Mask<XFA_FWL_KeyFlag> dwFlags)97 bool CXFA_FFSignature::OnKeyDown(XFA_FWL_VKEYCODE dwKeyCode,
98 Mask<XFA_FWL_KeyFlag> dwFlags) {
99 return false;
100 }
101
OnChar(uint32_t nChar,Mask<XFA_FWL_KeyFlag> dwFlags)102 bool CXFA_FFSignature::OnChar(uint32_t nChar, Mask<XFA_FWL_KeyFlag> dwFlags) {
103 return false;
104 }
105
HitTest(const CFX_PointF & point)106 FWL_WidgetHit CXFA_FFSignature::HitTest(const CFX_PointF& point) {
107 auto* pNorm = GetNormalWidget();
108 if (pNorm && pNorm->HitTest(FWLToClient(point)) != FWL_WidgetHit::Unknown)
109 return FWL_WidgetHit::Client;
110 if (!GetRectWithoutRotate().Contains(point))
111 return FWL_WidgetHit::Unknown;
112 if (m_CaptionRect.Contains(point))
113 return FWL_WidgetHit::Titlebar;
114 return FWL_WidgetHit::Client;
115 }
116
GetFormFieldType()117 FormFieldType CXFA_FFSignature::GetFormFieldType() {
118 return FormFieldType::kXFA_Signature;
119 }
120