#include "fpdfsdk/fpdfxfa/cpdfxfa_page.h"
#include <memory>
#include <utility>
#include "core/fpdfapi/page/cpdf_page.h"
#include "core/fpdfapi/page/cpdf_pageimagecache.h"
#include "core/fpdfapi/parser/cpdf_document.h"
#include "core/fxcrt/check.h"
#include "fpdfsdk/cpdfsdk_pageview.h"
#include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
#include "fpdfsdk/fpdfxfa/cpdfxfa_widget.h"
#include "xfa/fgas/graphics/cfgas_gegraphics.h"
#include "xfa/fxfa/cxfa_ffdocview.h"
#include "xfa/fxfa/cxfa_ffpageview.h"
#include "xfa/fxfa/cxfa_ffwidget.h"
#include "xfa/fxfa/cxfa_ffwidgethandler.h"
namespace {
constexpr Mask<XFA_WidgetStatus> kIteratorFilter = …;
CXFA_FFWidget::IteratorIface* GCedWidgetIteratorForPage(
CXFA_FFPageView* pFFPageView,
CPDFSDK_PageView* pPageView) { … }
CXFA_FFWidget::IteratorIface* GCedWidgetIteratorForAnnot(
CXFA_FFPageView* pFFPageView,
CPDFSDK_Annot* pSDKAnnot) { … }
}
CPDFXFA_Page::CPDFXFA_Page(CPDF_Document* pDocument, int page_index)
: … { … }
CPDFXFA_Page::~CPDFXFA_Page() = default;
CPDF_Page* CPDFXFA_Page::AsPDFPage() { … }
CPDFXFA_Page* CPDFXFA_Page::AsXFAPage() { … }
CPDF_Document* CPDFXFA_Page::GetDocument() const { … }
bool CPDFXFA_Page::LoadPDFPage() { … }
CXFA_FFPageView* CPDFXFA_Page::GetXFAPageView() const { … }
bool CPDFXFA_Page::LoadPage() { … }
void CPDFXFA_Page::LoadPDFPageFromDict(RetainPtr<CPDF_Dictionary> pPageDict) { … }
float CPDFXFA_Page::GetPageWidth() const { … }
float CPDFXFA_Page::GetPageHeight() const { … }
std::optional<CFX_PointF> CPDFXFA_Page::DeviceToPage(
const FX_RECT& rect,
int rotate,
const CFX_PointF& device_point) const { … }
std::optional<CFX_PointF> CPDFXFA_Page::PageToDevice(
const FX_RECT& rect,
int rotate,
const CFX_PointF& page_point) const { … }
CFX_Matrix CPDFXFA_Page::GetDisplayMatrix(const FX_RECT& rect,
int iRotate) const { … }
CPDFSDK_Annot* CPDFXFA_Page::GetNextXFAAnnot(CPDFSDK_Annot* pSDKAnnot) const { … }
CPDFSDK_Annot* CPDFXFA_Page::GetPrevXFAAnnot(CPDFSDK_Annot* pSDKAnnot) const { … }
CPDFSDK_Annot* CPDFXFA_Page::GetFirstXFAAnnot(
CPDFSDK_PageView* page_view) const { … }
CPDFSDK_Annot* CPDFXFA_Page::GetLastXFAAnnot(
CPDFSDK_PageView* page_view) const { … }
int CPDFXFA_Page::HasFormFieldAtPoint(const CFX_PointF& point) const { … }
void CPDFXFA_Page::DrawFocusAnnot(CFX_RenderDevice* pDevice,
CPDFSDK_Annot* pAnnot,
const CFX_Matrix& mtUser2Device,
const FX_RECT& rtClip) { … }