Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
ipwl_fillernotify.h
Go to the documentation of this file.
1// Copyright 2020 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef FPDFSDK_PWL_IPWL_FILLERNOTIFY_H_
8#define FPDFSDK_PWL_IPWL_FILLERNOTIFY_H_
9
10#include <memory>
11#include <utility>
12
13#include "core/fxcrt/mask.h"
14#include "core/fxcrt/widestring.h"
15#include "public/fpdf_fwlevent.h"
16
17class CFX_FloatRect;
18
20 public:
21 // These must match the values in public/fpdf_formfill.h
23 kArrow = 0,
24 kNESW = 1,
25 kNWSE = 2,
26 kVBeam = 3,
27 kHBeam = 4,
28 kHand = 5,
29 };
30
32 public:
33 virtual ~PerWindowData() = default;
34 virtual std::unique_ptr<PerWindowData> Clone() const = 0;
35 };
36
38 bool rc;
39 bool exit;
40 };
41
42 virtual ~IPWL_FillerNotify() = default;
43
44 virtual void InvalidateRect(PerWindowData* pWidgetData,
45 const CFX_FloatRect& rect) = 0;
46 virtual void OutputSelectedRect(PerWindowData* pWidgetData,
47 const CFX_FloatRect& rect) = 0;
48 virtual bool IsSelectionImplemented() const = 0;
49 virtual void SetCursor(CursorStyle nCursorStyle) = 0;
50
51 // Must write to |bBottom| and |fPopupRet|.
52 virtual void QueryWherePopup(const PerWindowData* pAttached,
53 float fPopupMin,
54 float fPopupMax,
55 bool* bBottom,
56 float* fPopupRet) = 0;
57
59 const PerWindowData* pAttached,
60 WideString& strChange,
61 const WideString& strChangeEx,
62 int nSelStart,
63 int nSelEnd,
64 bool bKeyDown,
65 Mask<FWL_EVENTFLAG> nFlag) = 0;
66
67 virtual bool OnPopupPreOpen(const PerWindowData* pAttached,
68 Mask<FWL_EVENTFLAG> nFlag) = 0;
69
70 virtual bool OnPopupPostOpen(const PerWindowData* pAttached,
71 Mask<FWL_EVENTFLAG> nFlag) = 0;
72};
73
74#endif // FPDFSDK_PWL_IPWL_FILLERNOTIFY_H_
virtual void OutputSelectedRect(CFFL_FormField *pFormField, const CFX_FloatRect &rect)=0
virtual CPDFSDK_PageView * GetPageView(IPDF_Page *pPage)=0
virtual bool HasPermissions(uint32_t flags) const =0
virtual void OnCalculate(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void OnSetFieldInputFocus(const WideString &text)=0
virtual bool IsSelectionImplemented() const =0
virtual void Invalidate(IPDF_Page *pPage, const FX_RECT &rect)=0
virtual bool SetFocusAnnot(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void SetCursor(CursorStyle nCursorStyle)=0
virtual CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pPage)=0
virtual CPDFSDK_Annot * GetFocusAnnot() const =0
virtual void OnFormat(ObservedPtr< CPDFSDK_Annot > &pAnnot)=0
virtual void InvalidateRect(CPDFSDK_Widget *pWidget, const CFX_FloatRect &rect)=0
virtual CFX_Timer::HandlerIface * GetTimerHandler()=0
bool OnChar(CPDFSDK_Widget *pWidget, uint32_t nChar, Mask< FWL_EVENTFLAG > nFlags)
void OnSetFieldInputFocus(const WideString &text)
bool OnRButtonDown(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
CFX_Timer::HandlerIface * GetTimerHandler()
bool OnMouseMove(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool OnRButtonUp(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool Annot_HitTest(const CPDFSDK_Widget *pWidget, const CFX_PointF &point)
CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pPage)
bool IsIndexSelected(ObservedPtr< CPDFSDK_Widget > &pWidget, int index)
bool OnMouseWheel(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point, const CFX_Vector &delta)
WideString GetText(CPDFSDK_Widget *pWidget)
WideString GetSelectedText(CPDFSDK_Widget *pWidget)
void SetCursor(CursorStyle nCursorStyle) override
CFFL_InteractiveFormFiller(CallbackIface *pCallbackIface)
bool OnValidate(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
static bool IsReadOnly(CPDFSDK_Widget *pWidget)
bool OnLButtonDown(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool OnKillFocus(ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
bool OnKeyDown(CPDFSDK_Widget *pWidget, FWL_VKEYCODE nKeyCode, Mask< FWL_EVENTFLAG > nFlags)
bool OnSetFocus(ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
void OnMouseEnter(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
bool CanUndo(CPDFSDK_Widget *pWidget)
void OnMouseExit(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlag)
FX_RECT GetViewBBox(const CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget)
bool OnLButtonUp(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
bool SetIndexSelected(ObservedPtr< CPDFSDK_Widget > &pWidget, int index, bool selected)
void Invalidate(IPDF_Page *pPage, const FX_RECT &rect)
BeforeKeystrokeResult OnBeforeKeyStroke(const PerWindowData *pAttached, WideString &strChange, const WideString &strChangeEx, int nSelStart, int nSelEnd, bool bKeyDown, Mask< FWL_EVENTFLAG > nFlag) override
bool OnPopupPostOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag) override
bool OnButtonUp(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
static bool IsVisible(CPDFSDK_Widget *pWidget)
bool Redo(CPDFSDK_Widget *pWidget)
void OnDraw(CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget, CFX_RenderDevice *pDevice, const CFX_Matrix &mtUser2Device)
void OnFormat(ObservedPtr< CPDFSDK_Widget > &pWidget)
CFFL_FormField * GetFormFieldForTesting(CPDFSDK_Widget *pAnnot)
void OnCalculate(ObservedPtr< CPDFSDK_Widget > &pWidget)
void QueryWherePopup(const PerWindowData *pAttached, float fPopupMin, float fPopupMax, bool *bBottom, float *fPopupRet) override
void OnDelete(CPDFSDK_Widget *pWidget)
void OutputSelectedRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect) override
bool Undo(CPDFSDK_Widget *pWidget)
void ReplaceSelection(CPDFSDK_Widget *pWidget, const WideString &text)
void ReplaceAndKeepSelection(CPDFSDK_Widget *pWidget, const WideString &text)
bool OnKeyStrokeCommit(ObservedPtr< CPDFSDK_Widget > &pWidget, const CPDFSDK_PageView *pPageView, Mask< FWL_EVENTFLAG > nFlag)
bool OnLButtonDblClk(CPDFSDK_PageView *pPageView, ObservedPtr< CPDFSDK_Widget > &pWidget, Mask< FWL_EVENTFLAG > nFlags, const CFX_PointF &point)
static bool IsValidAnnot(const CPDFSDK_PageView *pPageView, CPDFSDK_Widget *pWidget)
~CFFL_InteractiveFormFiller() override
void InvalidateRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect) override
bool CanRedo(CPDFSDK_Widget *pWidget)
bool SelectAllText(CPDFSDK_Widget *pWidget)
CPDFSDK_PageView * GetPageView(IPDF_Page *pPage)
bool OnPopupPreOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag) override
constexpr CFX_FloatRect(float l, float b, float r, float t)
CPDFSDK_Annot * GetNextAnnot(CPDFSDK_Annot *pAnnot)
CPDFSDK_Annot * GetPrevAnnot(CPDFSDK_Annot *pAnnot)
virtual CFX_FloatRect GetRect() const =0
void KillTimer(int32_t nTimerID) override
void SubmitForm(pdfium::span< const uint8_t > form_data, const WideString &URL)
CFX_Timer::HandlerIface * GetTimerHandler() override
CPDFSDK_PageView * GetPageViewAtIndex(int nIndex)
void Invalidate(IPDF_Page *page, const FX_RECT &rect) override
IPDF_JSPLATFORM * GetJSPlatform() const
void DoActionLaunch(const CPDF_Action &action)
void DoActionResetForm(const CPDF_Action &action)
void OnCalculate(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
CPDFSDK_PageView * GetPageView(IPDF_Page *pUnderlyingPage) override
void DoActionNamed(const CPDF_Action &action)
CPDFSDK_FormFillEnvironment(CPDF_Document *pDoc, FPDF_FORMFILLINFO *pFFinfo)
bool DoActionSubmitForm(const CPDF_Action &action)
CPDFSDK_InteractiveForm * GetInteractiveForm()
void OutputSelectedRect(CFFL_FormField *pFormField, const CFX_FloatRect &rect) override
CPDFSDK_Annot * GetFocusAnnot() const override
bool DoActionField(const CPDF_Action &action, CPDF_AAction::AActionType type, CPDF_FormField *pFormField, CFFL_FieldAction *data)
void DoGoToAction(int nPageIndex, int zoomMode, pdfium::span< float > fPosArray)
bool DoActionJavaScript(const CPDF_Action &JsAction, WideString csJSName)
const std::vector< CPDF_Annot::Subtype > & GetFocusableAnnotSubtypes() const
void InvalidateRect(CPDFSDK_Widget *widget, const CFX_FloatRect &rect) override
bool DoActionHide(const CPDF_Action &action)
void ExecuteNamedAction(const ByteString &namedAction)
bool DoActionDestination(const CPDF_Dest &dest)
CPDF_Document::Extension * GetDocExtension() const
CFFL_InteractiveFormFiller * GetInteractiveFormFiller()
void DoActionURI(const CPDF_Action &action, Mask< FWL_EVENTFLAG > modifiers)
void SetCursor(IPWL_FillerNotify::CursorStyle nCursorType) override
bool DoActionLink(const CPDF_Action &action, CPDF_AAction::AActionType type, Mask< FWL_EVENTFLAG > modifiers)
bool DoActionDocument(const CPDF_Action &action, CPDF_AAction::AActionType eType)
CPDFSDK_PageView * GetOrCreatePageView(IPDF_Page *pUnderlyingPage) override
void OnSetFieldInputFocus(const WideString &text) override
void DoActionGoTo(const CPDF_Action &action)
bool KillFocusAnnot(Mask< FWL_EVENTFLAG > nFlags)
void UpdateAllViews(CPDFSDK_Annot *pAnnot)
bool DoActionPage(const CPDF_Action &action, CPDF_AAction::AActionType eType)
int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc) override
void OnFormat(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
void DoActionNoJs(const CPDF_Action &action, CPDF_AAction::AActionType type)
void DoURIAction(const ByteString &bsURI, Mask< FWL_EVENTFLAG > modifiers)
void RemovePageView(IPDF_Page *pUnderlyingPage)
bool SetFocusAnnot(ObservedPtr< CPDFSDK_Annot > &pAnnot) override
bool DoActionFieldJavaScript(const CPDF_Action &JsAction, CPDF_AAction::AActionType type, CPDF_FormField *pFormField, CFFL_FieldAction *data)
FPDF_FORMFILLINFO * GetFormFillInfo() const
bool HasPermissions(uint32_t flags) const override
bool DoActionDocOpen(const CPDF_Action &action)
void SetFocusableAnnotSubtypes(const std::vector< CPDF_Annot::Subtype > &focusableAnnotTypes)
virtual ~PerWindowData()=default
virtual std::unique_ptr< PerWindowData > Clone() const =0
virtual void SetCursor(CursorStyle nCursorStyle)=0
virtual BeforeKeystrokeResult OnBeforeKeyStroke(const PerWindowData *pAttached, WideString &strChange, const WideString &strChangeEx, int nSelStart, int nSelEnd, bool bKeyDown, Mask< FWL_EVENTFLAG > nFlag)=0
virtual ~IPWL_FillerNotify()=default
virtual void QueryWherePopup(const PerWindowData *pAttached, float fPopupMin, float fPopupMax, bool *bBottom, float *fPopupRet)=0
virtual bool OnPopupPostOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag)=0
virtual bool OnPopupPreOpen(const PerWindowData *pAttached, Mask< FWL_EVENTFLAG > nFlag)=0
virtual bool IsSelectionImplemented() const =0
virtual void OutputSelectedRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect)=0
virtual void InvalidateRect(PerWindowData *pWidgetData, const CFX_FloatRect &rect)=0
TEST_F(CPDFSDK_AnnotIteratorTest, CPDFSDK_AnnotIterator)
FPDF_WIDESTRING AsFPDFWideString(ByteString *bsUTF16LE)