// 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/fxfa/app/xfa_fwladapter.h" #include "xfa/fxfa/app/xfa_ffdoc.h" #include "xfa/fxfa/app/xfa_fffield.h" #include "xfa/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; }