diff options
author | dsinclair <dsinclair@chromium.org> | 2016-09-21 12:07:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-21 12:07:00 -0700 |
commit | b94d7c9216160269d43a722b8e216790ba4b5d3b (patch) | |
tree | ea626b19bbb8b58be82691c4a69c10715edfe6f4 /fpdfsdk/formfiller/cffl_interactiveformfiller.h | |
parent | 0b2a9874bddf44b4226fcbafa9ce159a9b3735a8 (diff) | |
download | pdfium-b94d7c9216160269d43a722b8e216790ba4b5d3b.tar.xz |
Make the I in IFormFiller explicit
Typically the I prefix means Interface, except for CFFL_IFormFiller where it
means Interactive. Rename CFFL_IFormFiller to CFFL_InteractiveFormFiller to
make the meaning explicit.
Review-Url: https://codereview.chromium.org/2357203003
Diffstat (limited to 'fpdfsdk/formfiller/cffl_interactiveformfiller.h')
-rw-r--r-- | fpdfsdk/formfiller/cffl_interactiveformfiller.h | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.h b/fpdfsdk/formfiller/cffl_interactiveformfiller.h new file mode 100644 index 0000000000..1594cfda17 --- /dev/null +++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.h @@ -0,0 +1,189 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// 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 + +#ifndef FPDFSDK_FORMFILLER_CFFL_INTERACTIVEFORMFILLER_H_ +#define FPDFSDK_FORMFILLER_CFFL_INTERACTIVEFORMFILLER_H_ + +#include <map> +#include <memory> + +#include "fpdfsdk/include/fsdk_define.h" +#include "fpdfsdk/pdfwindow/PWL_Edit.h" + +class CFFL_FormFiller; +class CPDFSDK_Environment; +class CPDFSDK_Annot; +class CPDFSDK_PageView; +class CPDFSDK_Widget; + +class CFFL_InteractiveFormFiller : public IPWL_Filler_Notify { + public: + explicit CFFL_InteractiveFormFiller(CPDFSDK_Environment* pEnv); + ~CFFL_InteractiveFormFiller() override; + + virtual FX_BOOL Annot_HitTest(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + CFX_FloatPoint point); + virtual FX_RECT GetViewBBox(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot); + virtual void OnDraw(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + CFX_RenderDevice* pDevice, + CFX_Matrix* pUser2Device); + + virtual void OnCreate(CPDFSDK_Annot* pAnnot); + virtual void OnLoad(CPDFSDK_Annot* pAnnot); + virtual void OnDelete(CPDFSDK_Annot* pAnnot); + + virtual void OnMouseEnter(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlag); + virtual void OnMouseExit(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlag); + + virtual FX_BOOL OnLButtonDown(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + virtual FX_BOOL OnLButtonUp(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + virtual FX_BOOL OnLButtonDblClk(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + virtual FX_BOOL OnMouseMove(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + virtual FX_BOOL OnMouseWheel(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + short zDelta, + const CFX_FloatPoint& point); + virtual FX_BOOL OnRButtonDown(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + virtual FX_BOOL OnRButtonUp(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot, + uint32_t nFlags, + const CFX_FloatPoint& point); + + virtual FX_BOOL OnKeyDown(CPDFSDK_Annot* pAnnot, + uint32_t nKeyCode, + uint32_t nFlags); + virtual FX_BOOL OnChar(CPDFSDK_Annot* pAnnot, + uint32_t nChar, + uint32_t nFlags); + + virtual FX_BOOL OnSetFocus(CPDFSDK_Annot* pAnnot, uint32_t nFlag); + virtual FX_BOOL OnKillFocus(CPDFSDK_Annot* pAnnot, uint32_t nFlag); + + CFFL_FormFiller* GetFormFiller(CPDFSDK_Annot* pAnnot, FX_BOOL bRegister); + void RemoveFormFiller(CPDFSDK_Annot* pAnnot); + + static FX_BOOL IsVisible(CPDFSDK_Widget* pWidget); + static FX_BOOL IsReadOnly(CPDFSDK_Widget* pWidget); + static FX_BOOL IsFillingAllowed(CPDFSDK_Widget* pWidget); + static FX_BOOL IsValidAnnot(CPDFSDK_PageView* pPageView, + CPDFSDK_Annot* pAnnot); + + void OnKeyStrokeCommit(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bRC, + FX_BOOL& bExit, + uint32_t nFlag); + void OnValidate(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bRC, + FX_BOOL& bExit, + uint32_t nFlag); + + void OnCalculate(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bExit, + uint32_t nFlag); + void OnFormat(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bExit, + uint32_t nFlag); + void OnButtonUp(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bReset, + FX_BOOL& bExit, + uint32_t nFlag); +#ifdef PDF_ENABLE_XFA + void OnClick(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bReset, + FX_BOOL& bExit, + uint32_t nFlag); + void OnFull(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bReset, + FX_BOOL& bExit, + uint32_t nFlag); + void OnPreOpen(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bReset, + FX_BOOL& bExit, + uint32_t nFlag); + void OnPostOpen(CPDFSDK_Widget* pWidget, + CPDFSDK_PageView* pPageView, + FX_BOOL& bReset, + FX_BOOL& bExit, + uint32_t nFlag); +#endif // PDF_ENABLE_XFA + + private: + using CFFL_Widget2Filler = + std::map<CPDFSDK_Annot*, std::unique_ptr<CFFL_FormFiller>>; + + // IPWL_Filler_Notify: + void QueryWherePopup(void* pPrivateData, + FX_FLOAT fPopupMin, + FX_FLOAT fPopupMax, + int32_t& nRet, + FX_FLOAT& fPopupRet) override; + void OnBeforeKeyStroke(void* pPrivateData, + CFX_WideString& strChange, + const CFX_WideString& strChangeEx, + int nSelStart, + int nSelEnd, + FX_BOOL bKeyDown, + FX_BOOL& bRC, + FX_BOOL& bExit, + uint32_t nFlag) override; +#ifdef PDF_ENABLE_XFA + void OnPopupPreOpen(void* pPrivateData, + FX_BOOL& bExit, + uint32_t nFlag) override; + void OnPopupPostOpen(void* pPrivateData, + FX_BOOL& bExit, + uint32_t nFlag) override; + void SetFocusAnnotTab(CPDFSDK_Annot* pWidget, + FX_BOOL bSameField, + FX_BOOL bNext); +#endif // PDF_ENABLE_XFA + void UnRegisterFormFiller(CPDFSDK_Annot* pAnnot); + + CPDFSDK_Environment* const m_pEnv; + CFFL_Widget2Filler m_Maps; + FX_BOOL m_bNotifying; +}; + +class CFFL_PrivateData { + public: + CPDFSDK_Widget* pWidget; + CPDFSDK_PageView* pPageView; + int nWidgetAge; + int nValueAge; +}; + +#endif // FPDFSDK_FORMFILLER_CFFL_INTERACTIVEFORMFILLER_H_ |