#include "fpdfsdk/cpdfsdk_pageview.h"
#include <memory>
#include <utility>
#include <vector>
#include "core/fpdfapi/parser/cpdf_dictionary.h"
#include "core/fpdfapi/parser/cpdf_document.h"
#include "core/fpdfapi/render/cpdf_renderoptions.h"
#include "core/fpdfdoc/cpdf_annotlist.h"
#include "core/fpdfdoc/cpdf_interactiveform.h"
#include "core/fxcrt/autorestorer.h"
#include "core/fxcrt/check.h"
#include "core/fxcrt/containers/contains.h"
#include "core/fxcrt/stl_util.h"
#include "fpdfsdk/cpdfsdk_annot.h"
#include "fpdfsdk/cpdfsdk_annotiteration.h"
#include "fpdfsdk/cpdfsdk_annotiterator.h"
#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
#include "fpdfsdk/cpdfsdk_helpers.h"
#include "fpdfsdk/cpdfsdk_interactiveform.h"
#ifdef PDF_ENABLE_XFA
#include "fpdfsdk/fpdfxfa/cpdfxfa_page.h"
#include "fpdfsdk/fpdfxfa/cpdfxfa_widget.h"
#include "xfa/fxfa/cxfa_ffpageview.h"
#endif
CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_FormFillEnvironment* pFormFillEnv,
IPDF_Page* page)
: … { … }
CPDFSDK_PageView::~CPDFSDK_PageView() { … }
void CPDFSDK_PageView::ClearPage(CPDF_Page* pPage) { … }
void CPDFSDK_PageView::PageView_OnDraw(CFX_RenderDevice* pDevice,
const CFX_Matrix& mtUser2Device,
CPDF_RenderOptions* pOptions,
const FX_RECT& pClip) { … }
std::unique_ptr<CPDFSDK_Annot> CPDFSDK_PageView::NewAnnot(CPDF_Annot* annot) { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetFXAnnotAtPoint(const CFX_PointF& point) { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetFXWidgetAtPoint(const CFX_PointF& point) { … }
#ifdef PDF_ENABLE_XFA
CPDFSDK_Annot* CPDFSDK_PageView::AddAnnotForFFWidget(CXFA_FFWidget* pWidget) { … }
void CPDFSDK_PageView::DeleteAnnotForFFWidget(CXFA_FFWidget* pWidget) { … }
CPDFXFA_Page* CPDFSDK_PageView::XFAPageIfNotBackedByPDFPage() { … }
#endif
CPDF_Document* CPDFSDK_PageView::GetPDFDocument() { … }
CPDF_Page* CPDFSDK_PageView::GetPDFPage() const { … }
CPDFSDK_InteractiveForm* CPDFSDK_PageView::GetInteractiveForm() const { … }
std::vector<CPDFSDK_Annot*> CPDFSDK_PageView::GetAnnotList() const { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotByDict(const CPDF_Dictionary* pDict) { … }
#ifdef PDF_ENABLE_XFA
CPDFSDK_Annot* CPDFSDK_PageView::GetAnnotForFFWidget(CXFA_FFWidget* pWidget) { … }
IPDF_Page* CPDFSDK_PageView::GetXFAPage() { … }
#endif
WideString CPDFSDK_PageView::GetFocusedFormText() { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetNextAnnot(CPDFSDK_Annot* pAnnot) { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetPrevAnnot(CPDFSDK_Annot* pAnnot) { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetFirstFocusableAnnot() { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetLastFocusableAnnot() { … }
WideString CPDFSDK_PageView::GetSelectedText() { … }
void CPDFSDK_PageView::ReplaceAndKeepSelection(const WideString& text) { … }
void CPDFSDK_PageView::ReplaceSelection(const WideString& text) { … }
bool CPDFSDK_PageView::SelectAllText() { … }
bool CPDFSDK_PageView::CanUndo() { … }
bool CPDFSDK_PageView::CanRedo() { … }
bool CPDFSDK_PageView::Undo() { … }
bool CPDFSDK_PageView::Redo() { … }
bool CPDFSDK_PageView::OnFocus(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnLButtonDown(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnLButtonUp(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnLButtonDblClk(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnRButtonDown(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnRButtonUp(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
bool CPDFSDK_PageView::OnMouseMove(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point) { … }
void CPDFSDK_PageView::EnterWidget(ObservedPtr<CPDFSDK_Annot>& pAnnot,
Mask<FWL_EVENTFLAG> nFlags) { … }
void CPDFSDK_PageView::ExitWidget(bool callExitCallback,
Mask<FWL_EVENTFLAG> nFlags) { … }
bool CPDFSDK_PageView::OnMouseWheel(Mask<FWL_EVENTFLAG> nFlags,
const CFX_PointF& point,
const CFX_Vector& delta) { … }
bool CPDFSDK_PageView::SetIndexSelected(int index, bool selected) { … }
bool CPDFSDK_PageView::IsIndexSelected(int index) { … }
bool CPDFSDK_PageView::OnChar(uint32_t nChar, Mask<FWL_EVENTFLAG> nFlags) { … }
bool CPDFSDK_PageView::OnKeyDown(FWL_VKEYCODE nKeyCode,
Mask<FWL_EVENTFLAG> nFlags) { … }
void CPDFSDK_PageView::LoadFXAnnots() { … }
void CPDFSDK_PageView::UpdateRects(const std::vector<CFX_FloatRect>& rects) { … }
void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) { … }
int CPDFSDK_PageView::GetPageIndex() const { … }
bool CPDFSDK_PageView::IsValidAnnot(const CPDF_Annot* p) const { … }
bool CPDFSDK_PageView::IsValidSDKAnnot(const CPDFSDK_Annot* p) const { … }
CPDFSDK_Annot* CPDFSDK_PageView::GetFocusAnnot() { … }
int CPDFSDK_PageView::GetPageIndexForStaticPDF() const { … }