blob: 955d0c61f33dcb2b222d2f7048ec361bfb5f8ad8 [file] [log] [blame]
// 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;
}