1 // Copyright 2014 PDFium Authors. All rights reserved.
\r
2 // Use of this source code is governed by a BSD-style license that can be
\r
3 // found in the LICENSE file.
\r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
\r
7 #include "../../../foxitlib.h"
\r
8 #include "../common/xfa_common.h"
\r
9 #include "xfa_ffwidget.h"
\r
10 #include "xfa_fffield.h"
\r
11 #include "xfa_ffpageview.h"
\r
12 #include "xfa_ffsignature.h"
\r
13 #include "xfa_ffdoc.h"
\r
14 CXFA_FFSignature::CXFA_FFSignature(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc)
\r
15 : CXFA_FFField(pPageView, pDataAcc)
\r
18 CXFA_FFSignature::~CXFA_FFSignature()
\r
21 FX_BOOL CXFA_FFSignature::LoadWidget()
\r
23 return CXFA_FFField::LoadWidget();
\r
25 void CXFA_FFSignature::RenderWidget(CFX_Graphics* pGS, CFX_Matrix* pMatrix , FX_DWORD dwStatus , FX_INT32 iRotate )
\r
27 if (!IsMatchVisibleStatus(dwStatus)) {
\r
30 CFX_Matrix mtRotate;
\r
31 GetRotateMatrix(mtRotate);
\r
33 mtRotate.Concat(*pMatrix);
\r
35 CXFA_FFWidget::RenderWidget(pGS, &mtRotate, dwStatus);
\r
36 CXFA_Border borderUI = m_pDataAcc->GetUIBorder();
\r
37 DrawBorder(pGS, borderUI, m_rtUI, &mtRotate);
\r
38 RenderCaption(pGS, &mtRotate);
\r
39 DrawHighlight(pGS, &mtRotate, dwStatus, FALSE);
\r
40 CFX_RectF rtWidget = m_rtUI;
\r
41 IXFA_DocProvider* pDocProvider = m_pDataAcc->GetDoc()->GetDocProvider();
\r
42 FXSYS_assert(pDocProvider);
\r
43 pDocProvider->RenderCustomWidget((XFA_HWIDGET)this, pGS, &mtRotate, rtWidget);
\r
45 FX_BOOL CXFA_FFSignature::OnMouseEnter()
\r
49 FX_BOOL CXFA_FFSignature::OnMouseExit()
\r
53 FX_BOOL CXFA_FFSignature::OnLButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
57 FX_BOOL CXFA_FFSignature::OnLButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
61 FX_BOOL CXFA_FFSignature::OnLButtonDblClk(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
65 FX_BOOL CXFA_FFSignature::OnMouseMove(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
69 FX_BOOL CXFA_FFSignature::OnMouseWheel(FX_DWORD dwFlags, FX_SHORT zDelta, FX_FLOAT fx, FX_FLOAT fy)
\r
73 FX_BOOL CXFA_FFSignature::OnRButtonDown(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
77 FX_BOOL CXFA_FFSignature::OnRButtonUp(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
81 FX_BOOL CXFA_FFSignature::OnRButtonDblClk(FX_DWORD dwFlags, FX_FLOAT fx, FX_FLOAT fy)
\r
86 FX_BOOL CXFA_FFSignature::OnSetFocus()
\r
90 FX_BOOL CXFA_FFSignature::OnKillFocus()
\r
94 FX_BOOL CXFA_FFSignature::OnKeyDown(FX_DWORD dwKeyCode, FX_DWORD dwFlags)
\r
98 FX_BOOL CXFA_FFSignature::OnKeyUp(FX_DWORD dwKeyCode, FX_DWORD dwFlags)
\r
102 FX_BOOL CXFA_FFSignature::OnChar(FX_DWORD dwChar, FX_DWORD dwFlags)
\r
106 FX_DWORD CXFA_FFSignature::OnHitTest(FX_FLOAT fx, FX_FLOAT fy)
\r
108 if (m_pNormalWidget) {
\r
109 FX_FLOAT ffx = fx, ffy = fy;
\r
110 FWLToClient(ffx, ffy);
\r
111 FX_DWORD dwWidgetHit = m_pNormalWidget->HitTest(ffx, ffy);
\r
112 if (dwWidgetHit != FWL_WGTHITTEST_Unknown) {
\r
113 return FWL_WGTHITTEST_Client;
\r
117 GetRectWithoutRotate(rtBox);
\r
118 if (!rtBox.Contains(fx, fy)) {
\r
119 return FWL_WGTHITTEST_Unknown;
\r
121 if (m_rtCaption.Contains(fx, fy)) {
\r
122 return FWL_WGTHITTEST_Titlebar;
\r
124 return FWL_WGTHITTEST_Client;
\r
126 FX_BOOL CXFA_FFSignature::OnSetCursor(FX_FLOAT fx, FX_FLOAT fy)
\r