summaryrefslogtreecommitdiff
path: root/xfa/src/fxfa/app/xfa_fwladapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/src/fxfa/app/xfa_fwladapter.cpp')
-rw-r--r--xfa/src/fxfa/app/xfa_fwladapter.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/xfa/src/fxfa/app/xfa_fwladapter.cpp b/xfa/src/fxfa/app/xfa_fwladapter.cpp
new file mode 100644
index 0000000000..a43cd9c084
--- /dev/null
+++ b/xfa/src/fxfa/app/xfa_fwladapter.cpp
@@ -0,0 +1,61 @@
+// Copyright 2014 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/src/fxfa/app/xfa_fwladapter.h"
+
+#include "xfa/src/fxfa/app/xfa_ffdoc.h"
+#include "xfa/src/fxfa/app/xfa_fffield.h"
+#include "xfa/src/fxfa/app/xfa_ffwidget.h"
+
+void FWL_PostMessageToMainRoop(CFWL_Message* pMessage) {}
+FX_BOOL FWL_ShowCaret(IFWL_Widget* pWidget,
+ FX_BOOL bVisible,
+ const CFX_RectF* pRtAnchor) {
+ CXFA_FFWidget* pXFAWidget = (CXFA_FFWidget*)pWidget->GetPrivateData(pWidget);
+ if (!pXFAWidget) {
+ return FALSE;
+ }
+ IXFA_DocProvider* pDocProvider = pXFAWidget->GetDoc()->GetDocProvider();
+ if (!pDocProvider) {
+ return FALSE;
+ }
+ if (bVisible) {
+ CFX_Matrix mt;
+ pXFAWidget->GetRotateMatrix(mt);
+ CFX_RectF rt(*pRtAnchor);
+ mt.TransformRect(rt);
+ pDocProvider->DisplayCaret(pXFAWidget, bVisible, &rt);
+ return TRUE;
+ }
+ pDocProvider->DisplayCaret(pXFAWidget, bVisible, pRtAnchor);
+ return TRUE;
+}
+
+FWL_ERR CXFA_FWLAdapterWidgetMgr::RepaintWidget(IFWL_Widget* pWidget,
+ const CFX_RectF* pRect) {
+ if (!pWidget)
+ return FWL_ERR_Indefinite;
+ CXFA_FFField* pField = (CXFA_FFField*)pWidget->GetPrivateData(pWidget);
+ if (!pField)
+ return FWL_ERR_Indefinite;
+ pField->AddInvalidateRect(nullptr);
+ return FWL_ERR_Succeeded;
+}
+
+FX_BOOL CXFA_FWLAdapterWidgetMgr::GetPopupPos(IFWL_Widget* pWidget,
+ FX_FLOAT fMinHeight,
+ FX_FLOAT fMaxHeight,
+ const CFX_RectF& rtAnchor,
+ CFX_RectF& rtPopup) {
+ CXFA_FFWidget* pFFWidget = (CXFA_FFWidget*)(pWidget->GetPrivateData(pWidget));
+ CFX_Matrix mt;
+ pFFWidget->GetRotateMatrix(mt);
+ CFX_RectF rtRotateAnchor(rtAnchor);
+ mt.TransformRect(rtRotateAnchor);
+ pFFWidget->GetDoc()->GetDocProvider()->GetPopupPos(
+ pFFWidget, fMinHeight, fMaxHeight, rtRotateAnchor, rtPopup);
+ return TRUE;
+}