| Index: xfa/fwl/core/ifwl_edit.h
|
| diff --git a/xfa/fwl/core/ifwl_edit.h b/xfa/fwl/core/ifwl_edit.h
|
| index d436a4f55046a27e7a9231f6d0d47acc89ad510f..65c660332d83d36a676210ebf9eb6b088d1a746b 100644
|
| --- a/xfa/fwl/core/ifwl_edit.h
|
| +++ b/xfa/fwl/core/ifwl_edit.h
|
| @@ -8,11 +8,10 @@
|
| #define XFA_FWL_CORE_IFWL_EDIT_H_
|
|
|
| #include <deque>
|
| -#include <memory>
|
| #include <vector>
|
|
|
| +#include "xfa/fde/cfde_txtedtengine.h"
|
| #include "xfa/fde/ifde_txtedtdorecord.h"
|
| -#include "xfa/fde/ifde_txtedtengine.h"
|
| #include "xfa/fwl/core/cfwl_event.h"
|
| #include "xfa/fwl/core/cfwl_widget.h"
|
| #include "xfa/fwl/core/ifwl_dataprovider.h"
|
| @@ -85,12 +84,6 @@ FWL_EVENT_DEF(CFWL_EvtEdtCheckWord,
|
| CFX_ByteString bsWord;
|
| bool bCheckWord;)
|
|
|
| -FWL_EVENT_DEF(CFWL_EvtEdtGetSuggestWords,
|
| - CFWL_EventType::GetSuggestedWords,
|
| - bool bSuggestWords;
|
| - CFX_ByteString bsWord;
|
| - std::vector<CFX_ByteString> bsArraySuggestWords;)
|
| -
|
| class IFDE_TxtEdtDoRecord;
|
| class IFWL_Edit;
|
| class CFWL_MsgActivate;
|
| @@ -99,8 +92,6 @@ class CFWL_MsgMouse;
|
| class CFWL_WidgetProperties;
|
| class IFWL_Caret;
|
|
|
| -class IFWL_EditDP : public IFWL_DataProvider {};
|
| -
|
| class IFWL_Edit : public IFWL_Widget {
|
| public:
|
| IFWL_Edit(const IFWL_App* app,
|
| @@ -122,45 +113,30 @@ class IFWL_Edit : public IFWL_Widget {
|
| void OnDrawWidget(CFX_Graphics* pGraphics,
|
| const CFX_Matrix* pMatrix) override;
|
|
|
| - virtual FWL_Error SetText(const CFX_WideString& wsText);
|
| - virtual int32_t GetTextLength() const;
|
| - virtual FWL_Error GetText(CFX_WideString& wsText,
|
| - int32_t nStart = 0,
|
| - int32_t nCount = -1) const;
|
| - virtual FWL_Error ClearText();
|
| - virtual int32_t GetCaretPos() const;
|
| - virtual int32_t SetCaretPos(int32_t nIndex, bool bBefore = true);
|
| - virtual FWL_Error AddSelRange(int32_t nStart, int32_t nCount = -1);
|
| - virtual int32_t CountSelRanges();
|
| - virtual int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
|
| - virtual FWL_Error ClearSelections();
|
| - virtual int32_t GetLimit();
|
| - virtual FWL_Error SetLimit(int32_t nLimit);
|
| - virtual FWL_Error SetAliasChar(FX_WCHAR wAlias);
|
| - virtual FWL_Error Insert(int32_t nStart,
|
| - const FX_WCHAR* lpText,
|
| - int32_t nLen);
|
| - virtual FWL_Error DeleteSelections();
|
| - virtual FWL_Error DeleteRange(int32_t nStart, int32_t nCount = -1);
|
| - virtual FWL_Error Replace(int32_t nStart,
|
| - int32_t nLen,
|
| - const CFX_WideStringC& wsReplace);
|
| - virtual FWL_Error DoClipboard(int32_t iCmd);
|
| - virtual bool Copy(CFX_WideString& wsCopy);
|
| - virtual bool Cut(CFX_WideString& wsCut);
|
| - virtual bool Paste(const CFX_WideString& wsPaste);
|
| - virtual bool Delete();
|
| - virtual bool Redo(const IFDE_TxtEdtDoRecord* pRecord);
|
| - virtual bool Undo(const IFDE_TxtEdtDoRecord* pRecord);
|
| - virtual bool Undo();
|
| - virtual bool Redo();
|
| - virtual bool CanUndo();
|
| - virtual bool CanRedo();
|
| - virtual FWL_Error SetTabWidth(FX_FLOAT fTabWidth, bool bEquidistant);
|
| - virtual FWL_Error SetOuter(IFWL_Widget* pOuter);
|
| - virtual FWL_Error SetNumberRange(int32_t iMin, int32_t iMax);
|
| - virtual FWL_Error SetBackgroundColor(uint32_t color);
|
| - virtual FWL_Error SetFont(const CFX_WideString& wsFont, FX_FLOAT fSize);
|
| + virtual void SetText(const CFX_WideString& wsText);
|
| +
|
| + int32_t GetTextLength() const;
|
| + void GetText(CFX_WideString& wsText, int32_t nStart = 0, int32_t nCount = -1);
|
| + void ClearText();
|
| +
|
| + void AddSelRange(int32_t nStart, int32_t nCount = -1);
|
| + int32_t CountSelRanges();
|
| + int32_t GetSelRange(int32_t nIndex, int32_t& nStart);
|
| + void ClearSelections();
|
| + int32_t GetLimit();
|
| + void SetLimit(int32_t nLimit);
|
| + void SetAliasChar(FX_WCHAR wAlias);
|
| + bool Copy(CFX_WideString& wsCopy);
|
| + bool Cut(CFX_WideString& wsCut);
|
| + bool Paste(const CFX_WideString& wsPaste);
|
| + bool Redo(const IFDE_TxtEdtDoRecord* pRecord);
|
| + bool Undo(const IFDE_TxtEdtDoRecord* pRecord);
|
| + bool Undo();
|
| + bool Redo();
|
| + bool CanUndo();
|
| + bool CanRedo();
|
| +
|
| + void SetOuter(IFWL_Widget* pOuter);
|
|
|
| void On_CaretChanged(CFDE_TxtEdtEngine* pEdit,
|
| int32_t nPage,
|
| @@ -177,14 +153,13 @@ class IFWL_Edit : public IFWL_Widget {
|
| void On_AddDoRecord(CFDE_TxtEdtEngine* pEdit, IFDE_TxtEdtDoRecord* pRecord);
|
| bool On_Validate(CFDE_TxtEdtEngine* pEdit, CFX_WideString& wsText);
|
| void SetScrollOffset(FX_FLOAT fScrollOffset);
|
| - bool GetSuggestWords(CFX_PointF pointf,
|
| - std::vector<CFX_ByteString>& sSuggest);
|
| - bool ReplaceSpellCheckWord(CFX_PointF pointf,
|
| - const CFX_ByteStringC& bsReplace);
|
|
|
| protected:
|
| - friend class CFWL_TxtEdtEventSink;
|
| + void ShowCaret(bool bVisible, CFX_RectF* pRect = nullptr);
|
| + const CFX_RectF& GetRTClient() const { return m_rtClient; }
|
| + CFDE_TxtEdtEngine* GetTxtEdtEngine() { return &m_EdtEngine; }
|
|
|
| + private:
|
| void DrawTextBk(CFX_Graphics* pGraphics,
|
| IFWL_ThemeProvider* pTheme,
|
| const CFX_Matrix* pMatrix = nullptr);
|
| @@ -204,7 +179,6 @@ class IFWL_Edit : public IFWL_Widget {
|
| void DeviceToEngine(CFX_PointF& pt);
|
| void InitScrollBar(bool bVert = true);
|
| void InitEngine();
|
| - virtual void ShowCaret(bool bVisible, CFX_RectF* pRect = nullptr);
|
| bool ValidateNumberChar(FX_WCHAR cNum);
|
| void InitCaret();
|
| void ClearRecord();
|
| @@ -220,7 +194,17 @@ class IFWL_Edit : public IFWL_Widget {
|
| int32_t nCount,
|
| FX_FLOAT fOffSetX,
|
| FX_FLOAT fOffSetY);
|
| - int32_t GetWordAtPoint(CFX_PointF pointf, int32_t& nCount);
|
| + void DoActivate(CFWL_MsgActivate* pMsg);
|
| + void DoDeactivate(CFWL_MsgDeactivate* pMsg);
|
| + void DoButtonDown(CFWL_MsgMouse* pMsg);
|
| + void OnFocusChanged(CFWL_Message* pMsg, bool bSet);
|
| + void OnLButtonDown(CFWL_MsgMouse* pMsg);
|
| + void OnLButtonUp(CFWL_MsgMouse* pMsg);
|
| + void OnButtonDblClk(CFWL_MsgMouse* pMsg);
|
| + void OnMouseMove(CFWL_MsgMouse* pMsg);
|
| + void OnKeyDown(CFWL_MsgKey* pMsg);
|
| + void OnChar(CFWL_MsgKey* pMsg);
|
| + bool OnScroll(IFWL_ScrollBar* pScrollBar, FWL_SCBCODE dwCode, FX_FLOAT fPos);
|
|
|
| CFX_RectF m_rtClient;
|
| CFX_RectF m_rtEngine;
|
| @@ -228,40 +212,21 @@ class IFWL_Edit : public IFWL_Widget {
|
| FX_FLOAT m_fVAlignOffset;
|
| FX_FLOAT m_fScrollOffsetX;
|
| FX_FLOAT m_fScrollOffsetY;
|
| - std::unique_ptr<CFDE_TxtEdtEngine> m_pEdtEngine;
|
| + CFDE_TxtEdtEngine m_EdtEngine;
|
| bool m_bLButtonDown;
|
| int32_t m_nSelStart;
|
| int32_t m_nLimit;
|
| - FX_FLOAT m_fSpaceAbove;
|
| - FX_FLOAT m_fSpaceBelow;
|
| FX_FLOAT m_fFontSize;
|
| - FX_ARGB m_argbSel;
|
| bool m_bSetRange;
|
| - int32_t m_iMin;
|
| int32_t m_iMax;
|
| std::unique_ptr<IFWL_ScrollBar> m_pVertScrollBar;
|
| std::unique_ptr<IFWL_ScrollBar> m_pHorzScrollBar;
|
| std::unique_ptr<IFWL_Caret> m_pCaret;
|
| CFX_WideString m_wsCache;
|
| - uint32_t m_backColor;
|
| - bool m_updateBackColor;
|
| CFX_WideString m_wsFont;
|
| std::deque<std::unique_ptr<IFDE_TxtEdtDoRecord>> m_DoRecords;
|
| int32_t m_iCurRecord;
|
| int32_t m_iMaxRecord;
|
| -
|
| - private:
|
| - void DoActivate(CFWL_MsgActivate* pMsg);
|
| - void DoDeactivate(CFWL_MsgDeactivate* pMsg);
|
| - void DoButtonDown(CFWL_MsgMouse* pMsg);
|
| - void OnFocusChanged(CFWL_Message* pMsg, bool bSet);
|
| - void OnLButtonDown(CFWL_MsgMouse* pMsg);
|
| - void OnLButtonUp(CFWL_MsgMouse* pMsg);
|
| - void OnButtonDblClk(CFWL_MsgMouse* pMsg);
|
| - void OnMouseMove(CFWL_MsgMouse* pMsg);
|
| - void OnKeyDown(CFWL_MsgKey* pMsg);
|
| - void OnChar(CFWL_MsgKey* pMsg);
|
| - bool OnScroll(IFWL_ScrollBar* pScrollBar, FWL_SCBCODE dwCode, FX_FLOAT fPos);
|
| };
|
|
|
| #endif // XFA_FWL_CORE_IFWL_EDIT_H_
|
|
|