| // 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; |
| } |