|  | // Copyright 2014 The PDFium Authors | 
|  | // 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/cxfa_fwladapterwidgetmgr.h" | 
|  |  | 
|  | #include "core/fxcrt/fx_coordinates.h" | 
|  | #include "xfa/fxfa/cxfa_ffdoc.h" | 
|  | #include "xfa/fxfa/cxfa_fffield.h" | 
|  |  | 
|  | CXFA_FWLAdapterWidgetMgr::CXFA_FWLAdapterWidgetMgr() = default; | 
|  |  | 
|  | CXFA_FWLAdapterWidgetMgr::~CXFA_FWLAdapterWidgetMgr() = default; | 
|  |  | 
|  | void CXFA_FWLAdapterWidgetMgr::Trace(cppgc::Visitor* visitor) const {} | 
|  |  | 
|  | void CXFA_FWLAdapterWidgetMgr::RepaintWidget(CFWL_Widget* pWidget) { | 
|  | if (!pWidget) { | 
|  | return; | 
|  | } | 
|  |  | 
|  | auto* pFFWidget = static_cast<CXFA_FFWidget*>(pWidget->GetAdapterIface()); | 
|  | if (!pFFWidget) { | 
|  | return; | 
|  | } | 
|  |  | 
|  | pFFWidget->InvalidateRect(); | 
|  | } | 
|  |  | 
|  | bool CXFA_FWLAdapterWidgetMgr::GetPopupPos(CFWL_Widget* pWidget, | 
|  | float fMinHeight, | 
|  | float fMaxHeight, | 
|  | const CFX_RectF& rtAnchor, | 
|  | CFX_RectF* pPopupRect) { | 
|  | auto* pFFWidget = static_cast<CXFA_FFWidget*>(pWidget->GetAdapterIface()); | 
|  | CFX_RectF rtRotateAnchor = | 
|  | pFFWidget->GetRotateMatrix().TransformRect(rtAnchor); | 
|  | pFFWidget->GetDoc()->GetPopupPos(pFFWidget, fMinHeight, fMaxHeight, | 
|  | rtRotateAnchor, pPopupRect); | 
|  | return true; | 
|  | } |