| Index: xfa/fwl/basewidget/fwl_editimp.h
|
| diff --git a/xfa/fwl/basewidget/fwl_editimp.h b/xfa/fwl/basewidget/fwl_editimp.h
|
| index 9c0853b4fdde1d1b9cc032522bb1b0f2fa20353c..484c1f8841ff8f02d60099f795f38e603d7e5049 100644
|
| --- a/xfa/fwl/basewidget/fwl_editimp.h
|
| +++ b/xfa/fwl/basewidget/fwl_editimp.h
|
| @@ -7,6 +7,7 @@
|
| #ifndef XFA_FWL_BASEWIDGET_FWL_EDITIMP_H_
|
| #define XFA_FWL_BASEWIDGET_FWL_EDITIMP_H_
|
|
|
| +#include <deque>
|
| #include <memory>
|
| #include <vector>
|
|
|
| @@ -15,14 +16,15 @@
|
| #include "xfa/fwl/core/fwl_widgetimp.h"
|
| #include "xfa/fxgraphics/cfx_path.h"
|
|
|
| +class CFWL_EditImp;
|
| +class CFWL_EditImpDelegate;
|
| class CFWL_MsgActivate;
|
| class CFWL_MsgDeactivate;
|
| class CFWL_MsgMouse;
|
| -class CFWL_WidgetImpProperties;
|
| class CFWL_WidgetImpDelegate;
|
| +class CFWL_WidgetImpProperties;
|
| +class IFDE_TxtEdtDoRecord;
|
| class IFWL_Caret;
|
| -class CFWL_EditImp;
|
| -class CFWL_EditImpDelegate;
|
|
|
| class CFWL_EditImp : public CFWL_WidgetImp {
|
| public:
|
| @@ -71,8 +73,8 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| virtual FX_BOOL Cut(CFX_WideString& wsCut);
|
| virtual FX_BOOL Paste(const CFX_WideString& wsPaste);
|
| virtual FX_BOOL Delete();
|
| - virtual FX_BOOL Redo(const CFX_ByteStringC& bsRecord);
|
| - virtual FX_BOOL Undo(const CFX_ByteStringC& bsRecord);
|
| + virtual FX_BOOL Redo(const IFDE_TxtEdtDoRecord* pRecord);
|
| + virtual FX_BOOL Undo(const IFDE_TxtEdtDoRecord* pRecord);
|
| virtual FX_BOOL Undo();
|
| virtual FX_BOOL Redo();
|
| virtual FX_BOOL CanUndo();
|
| @@ -95,8 +97,7 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| FX_BOOL On_PageUnload(CFDE_TxtEdtEngine* pEdit,
|
| int32_t nPageIndex,
|
| int32_t nPurpose);
|
| - void On_AddDoRecord(CFDE_TxtEdtEngine* pEdit,
|
| - const CFX_ByteStringC& bsDoRecord);
|
| + void On_AddDoRecord(CFDE_TxtEdtEngine* pEdit, IFDE_TxtEdtDoRecord* pRecord);
|
| FX_BOOL On_Validate(CFDE_TxtEdtEngine* pEdit, CFX_WideString& wsText);
|
| void SetScrollOffset(FX_FLOAT fScrollOffset);
|
| FX_BOOL GetSuggestWords(CFX_PointF pointf,
|
| @@ -105,6 +106,9 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| const CFX_ByteStringC& bsReplace);
|
|
|
| protected:
|
| + friend class CFWL_TxtEdtEventSink;
|
| + friend class CFWL_EditImpDelegate;
|
| +
|
| void DrawTextBk(CFX_Graphics* pGraphics,
|
| IFWL_ThemeProvider* pTheme,
|
| const CFX_Matrix* pMatrix = NULL);
|
| @@ -130,7 +134,7 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| void ClearRecord();
|
| FX_BOOL IsShowScrollBar(FX_BOOL bVert);
|
| FX_BOOL IsContentHeightOverflow();
|
| - int32_t AddDoRecord(const CFX_ByteStringC& bsDoRecord);
|
| + int32_t AddDoRecord(IFDE_TxtEdtDoRecord* pRecord);
|
| void ProcessInsertError(int32_t iError);
|
|
|
| void DrawSpellCheck(CFX_Graphics* pGraphics,
|
| @@ -141,6 +145,7 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| FX_FLOAT fOffSetX,
|
| FX_FLOAT fOffSetY);
|
| int32_t GetWordAtPoint(CFX_PointF pointf, int32_t& nCount);
|
| +
|
| CFX_RectF m_rtClient;
|
| CFX_RectF m_rtEngine;
|
| CFX_RectF m_rtStatic;
|
| @@ -162,12 +167,10 @@ class CFWL_EditImp : public CFWL_WidgetImp {
|
| std::unique_ptr<IFWL_ScrollBar> m_pHorzScrollBar;
|
| std::unique_ptr<IFWL_Caret> m_pCaret;
|
| CFX_WideString m_wsCache;
|
| - friend class CFWL_TxtEdtEventSink;
|
| - friend class CFWL_EditImpDelegate;
|
| uint32_t m_backColor;
|
| FX_BOOL m_updateBackColor;
|
| CFX_WideString m_wsFont;
|
| - CFX_ByteStringArray m_RecordArr;
|
| + std::deque<std::unique_ptr<IFDE_TxtEdtDoRecord>> m_DoRecords;
|
| int32_t m_iCurRecord;
|
| int32_t m_iMaxRecord;
|
| };
|
|
|