| Index: fpdfsdk/include/pdfwindow/PWL_Edit.h
|
| diff --git a/fpdfsdk/include/pdfwindow/PWL_Edit.h b/fpdfsdk/include/pdfwindow/PWL_Edit.h
|
| index 5c90ff704b21d031e09fef5d09e70fbabb86ad5f..ea1b3ef63680e01ca3b6f57246bd4c1a0565c307 100644
|
| --- a/fpdfsdk/include/pdfwindow/PWL_Edit.h
|
| +++ b/fpdfsdk/include/pdfwindow/PWL_Edit.h
|
| @@ -15,128 +15,164 @@ class CPWL_Edit;
|
| class IPWL_Filler_Notify;
|
| class IPWL_SpellCheck;
|
|
|
| -class IPWL_Filler_Notify
|
| -{
|
| -public:
|
| - virtual ~IPWL_Filler_Notify() { }
|
| - virtual void QueryWherePopup(void* pPrivateData, FX_FLOAT fPopupMin,FX_FLOAT fPopupMax,
|
| - int32_t & nRet, FX_FLOAT & fPopupRet) = 0; //nRet: (0:bottom 1:top)
|
| - virtual void OnBeforeKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, int32_t nKeyCode,
|
| - CFX_WideString & strChange, const CFX_WideString& strChangeEx,
|
| - int nSelStart, int nSelEnd,
|
| - FX_BOOL bKeyDown, FX_BOOL & bRC, FX_BOOL & bExit, FX_DWORD nFlag) = 0;
|
| - virtual void OnAfterKeyStroke(FX_BOOL bEditOrList, void* pPrivateData, FX_BOOL & bExit, FX_DWORD nFlag) = 0;
|
| +class IPWL_Filler_Notify {
|
| + public:
|
| + virtual ~IPWL_Filler_Notify() {}
|
| + virtual void QueryWherePopup(
|
| + void* pPrivateData,
|
| + FX_FLOAT fPopupMin,
|
| + FX_FLOAT fPopupMax,
|
| + int32_t& nRet,
|
| + FX_FLOAT& fPopupRet) = 0; // nRet: (0:bottom 1:top)
|
| + virtual void OnBeforeKeyStroke(FX_BOOL bEditOrList,
|
| + void* pPrivateData,
|
| + int32_t nKeyCode,
|
| + CFX_WideString& strChange,
|
| + const CFX_WideString& strChangeEx,
|
| + int nSelStart,
|
| + int nSelEnd,
|
| + FX_BOOL bKeyDown,
|
| + FX_BOOL& bRC,
|
| + FX_BOOL& bExit,
|
| + FX_DWORD nFlag) = 0;
|
| + virtual void OnAfterKeyStroke(FX_BOOL bEditOrList,
|
| + void* pPrivateData,
|
| + FX_BOOL& bExit,
|
| + FX_DWORD nFlag) = 0;
|
| };
|
|
|
| -class CPWL_Edit : public CPWL_EditCtrl, public IFX_Edit_OprNotify
|
| -{
|
| -public:
|
| - CPWL_Edit();
|
| - virtual ~CPWL_Edit();
|
| -
|
| -public:
|
| - virtual CFX_ByteString GetClassName() const;
|
| - virtual void OnDestroy();
|
| - virtual void OnCreated();
|
| - virtual void RePosChildWnd();
|
| - virtual CPDF_Rect GetClientRect() const;
|
| -
|
| - virtual void GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream);
|
| - virtual void DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device);
|
| -
|
| - virtual FX_BOOL OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag);
|
| - virtual FX_BOOL OnLButtonDblClk(const CPDF_Point & point, FX_DWORD nFlag);
|
| - virtual FX_BOOL OnRButtonUp(const CPDF_Point & point, FX_DWORD nFlag);
|
| - virtual FX_BOOL OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag);
|
| -
|
| - virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);
|
| - virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag);
|
| -
|
| - virtual CPDF_Rect GetFocusRect() const;
|
| -
|
| -public:
|
| - void SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat = PEAH_LEFT, FX_BOOL bPaint = TRUE); //0:left 1:right 2:middle
|
| - void SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat = PEAV_TOP, FX_BOOL bPaint = TRUE); //0:top 1:bottom 2:center
|
| -
|
| - void SetCharArray(int32_t nCharArray);
|
| - void SetLimitChar(int32_t nLimitChar);
|
| -
|
| - void SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint = TRUE);
|
| - void SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint = TRUE);
|
| -
|
| - void SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE);
|
| -
|
| - void EnableSpellCheck(FX_BOOL bEnabled);
|
| -
|
| - FX_BOOL CanSelectAll() const;
|
| - FX_BOOL CanClear() const;
|
| - FX_BOOL CanCopy() const;
|
| - FX_BOOL CanCut() const;
|
| - FX_BOOL CanPaste() const;
|
| -
|
| - virtual void CopyText();
|
| - virtual void PasteText();
|
| - virtual void CutText();
|
| -
|
| - virtual void SetText(const FX_WCHAR* csText);
|
| - void ReplaceSel(const FX_WCHAR* csText);
|
| -
|
| - CFX_ByteString GetTextAppearanceStream(const CPDF_Point & ptOffset) const;
|
| - CFX_ByteString GetCaretAppearanceStream(const CPDF_Point & ptOffset) const;
|
| - CFX_ByteString GetSelectAppearanceStream(const CPDF_Point & ptOffset) const;
|
| -
|
| - FX_BOOL IsTextFull() const;
|
| -
|
| - static FX_FLOAT GetCharArrayAutoFontSize(CPDF_Font* pFont, const CPDF_Rect& rcPlate, int32_t nCharArray);
|
| -
|
| - void SetFillerNotify(IPWL_Filler_Notify* pNotify) {m_pFillerNotify = pNotify;}
|
| -
|
| - void GeneratePageObjects(CPDF_PageObjects* pPageObjects,
|
| - const CPDF_Point& ptOffset, CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray);
|
| - void GeneratePageObjects(CPDF_PageObjects* pPageObjects,
|
| - const CPDF_Point& ptOffset);
|
| -
|
| -protected:
|
| - virtual void OnSetFocus();
|
| - virtual void OnKillFocus();
|
| -
|
| -protected:
|
| - virtual void OnInsertWord(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnInsertReturn(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnBackSpace(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnDelete(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnClear(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnSetText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnInsertText(const CPVT_WordPlace& place, const CPVT_WordPlace& oldplace);
|
| - virtual void OnAddUndo(IFX_Edit_UndoItem* pUndoItem);
|
| -
|
| -private:
|
| - CPVT_WordRange GetSelectWordRange() const;
|
| - virtual void ShowVScrollBar(FX_BOOL bShow);
|
| - FX_BOOL IsVScrollBarVisible() const;
|
| - void SetParamByFlag();
|
| -
|
| - FX_FLOAT GetCharArrayAutoFontSize(int32_t nCharArray);
|
| - CPDF_Point GetWordRightBottomPoint(const CPVT_WordPlace& wpWord);
|
| -
|
| - CPVT_WordRange CombineWordRange(const CPVT_WordRange& wr1, const CPVT_WordRange& wr2);
|
| - CPVT_WordRange GetLatinWordsRange(const CPDF_Point & point) const;
|
| - CPVT_WordRange GetLatinWordsRange(const CPVT_WordPlace & place) const;
|
| - CPVT_WordRange GetArabicWordsRange(const CPVT_WordPlace & place) const;
|
| - CPVT_WordRange GetSameWordsRange(const CPVT_WordPlace & place, FX_BOOL bLatin, FX_BOOL bArabic) const;
|
| -
|
| - void AjustArabicWords(const CPVT_WordRange& wr);
|
| -public:
|
| - FX_BOOL IsProceedtoOnChar(FX_WORD nKeyCode, FX_DWORD nFlag);
|
| -private:
|
| - IPWL_Filler_Notify* m_pFillerNotify;
|
| - IPWL_SpellCheck* m_pSpellCheck;
|
| - FX_BOOL m_bFocus;
|
| - CPDF_Rect m_rcOldWindow;
|
| -public:
|
| - void AttachFFLData(void* pData) {m_pFormFiller = pData;}
|
| -private:
|
| - void* m_pFormFiller;
|
| +class CPWL_Edit : public CPWL_EditCtrl, public IFX_Edit_OprNotify {
|
| + public:
|
| + CPWL_Edit();
|
| + virtual ~CPWL_Edit();
|
| +
|
| + public:
|
| + virtual CFX_ByteString GetClassName() const;
|
| + virtual void OnDestroy();
|
| + virtual void OnCreated();
|
| + virtual void RePosChildWnd();
|
| + virtual CPDF_Rect GetClientRect() const;
|
| +
|
| + virtual void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream);
|
| + virtual void DrawThisAppearance(CFX_RenderDevice* pDevice,
|
| + CPDF_Matrix* pUser2Device);
|
| +
|
| + virtual FX_BOOL OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag);
|
| + virtual FX_BOOL OnLButtonDblClk(const CPDF_Point& point, FX_DWORD nFlag);
|
| + virtual FX_BOOL OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag);
|
| + virtual FX_BOOL OnMouseWheel(short zDelta,
|
| + const CPDF_Point& point,
|
| + FX_DWORD nFlag);
|
| +
|
| + virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);
|
| + virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag);
|
| +
|
| + virtual CPDF_Rect GetFocusRect() const;
|
| +
|
| + public:
|
| + void SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat = PEAH_LEFT,
|
| + FX_BOOL bPaint = TRUE); // 0:left 1:right 2:middle
|
| + void SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat = PEAV_TOP,
|
| + FX_BOOL bPaint = TRUE); // 0:top 1:bottom 2:center
|
| +
|
| + void SetCharArray(int32_t nCharArray);
|
| + void SetLimitChar(int32_t nLimitChar);
|
| +
|
| + void SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint = TRUE);
|
| + void SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint = TRUE);
|
| +
|
| + void SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint = TRUE);
|
| +
|
| + void EnableSpellCheck(FX_BOOL bEnabled);
|
| +
|
| + FX_BOOL CanSelectAll() const;
|
| + FX_BOOL CanClear() const;
|
| + FX_BOOL CanCopy() const;
|
| + FX_BOOL CanCut() const;
|
| + FX_BOOL CanPaste() const;
|
| +
|
| + virtual void CopyText();
|
| + virtual void PasteText();
|
| + virtual void CutText();
|
| +
|
| + virtual void SetText(const FX_WCHAR* csText);
|
| + void ReplaceSel(const FX_WCHAR* csText);
|
| +
|
| + CFX_ByteString GetTextAppearanceStream(const CPDF_Point& ptOffset) const;
|
| + CFX_ByteString GetCaretAppearanceStream(const CPDF_Point& ptOffset) const;
|
| + CFX_ByteString GetSelectAppearanceStream(const CPDF_Point& ptOffset) const;
|
| +
|
| + FX_BOOL IsTextFull() const;
|
| +
|
| + static FX_FLOAT GetCharArrayAutoFontSize(CPDF_Font* pFont,
|
| + const CPDF_Rect& rcPlate,
|
| + int32_t nCharArray);
|
| +
|
| + void SetFillerNotify(IPWL_Filler_Notify* pNotify) {
|
| + m_pFillerNotify = pNotify;
|
| + }
|
| +
|
| + void GeneratePageObjects(CPDF_PageObjects* pPageObjects,
|
| + const CPDF_Point& ptOffset,
|
| + CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray);
|
| + void GeneratePageObjects(CPDF_PageObjects* pPageObjects,
|
| + const CPDF_Point& ptOffset);
|
| +
|
| + protected:
|
| + virtual void OnSetFocus();
|
| + virtual void OnKillFocus();
|
| +
|
| + protected:
|
| + virtual void OnInsertWord(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnInsertReturn(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnBackSpace(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnDelete(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnClear(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnSetText(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnInsertText(const CPVT_WordPlace& place,
|
| + const CPVT_WordPlace& oldplace);
|
| + virtual void OnAddUndo(IFX_Edit_UndoItem* pUndoItem);
|
| +
|
| + private:
|
| + CPVT_WordRange GetSelectWordRange() const;
|
| + virtual void ShowVScrollBar(FX_BOOL bShow);
|
| + FX_BOOL IsVScrollBarVisible() const;
|
| + void SetParamByFlag();
|
| +
|
| + FX_FLOAT GetCharArrayAutoFontSize(int32_t nCharArray);
|
| + CPDF_Point GetWordRightBottomPoint(const CPVT_WordPlace& wpWord);
|
| +
|
| + CPVT_WordRange CombineWordRange(const CPVT_WordRange& wr1,
|
| + const CPVT_WordRange& wr2);
|
| + CPVT_WordRange GetLatinWordsRange(const CPDF_Point& point) const;
|
| + CPVT_WordRange GetLatinWordsRange(const CPVT_WordPlace& place) const;
|
| + CPVT_WordRange GetArabicWordsRange(const CPVT_WordPlace& place) const;
|
| + CPVT_WordRange GetSameWordsRange(const CPVT_WordPlace& place,
|
| + FX_BOOL bLatin,
|
| + FX_BOOL bArabic) const;
|
| +
|
| + void AjustArabicWords(const CPVT_WordRange& wr);
|
| +
|
| + public:
|
| + FX_BOOL IsProceedtoOnChar(FX_WORD nKeyCode, FX_DWORD nFlag);
|
| +
|
| + private:
|
| + IPWL_Filler_Notify* m_pFillerNotify;
|
| + IPWL_SpellCheck* m_pSpellCheck;
|
| + FX_BOOL m_bFocus;
|
| + CPDF_Rect m_rcOldWindow;
|
| +
|
| + public:
|
| + void AttachFFLData(void* pData) { m_pFormFiller = pData; }
|
| +
|
| + private:
|
| + void* m_pFormFiller;
|
| };
|
|
|
| #endif // FPDFSDK_INCLUDE_PDFWINDOW_PWL_EDIT_H_
|
|
|