Index: xfa/fde/cfde_txtedtengine.cpp |
diff --git a/xfa/fde/cfde_txtedtengine.cpp b/xfa/fde/cfde_txtedtengine.cpp |
index 1250043fc7d1437ba1124a23bcb95ea955f7f358..8104ec7aab6ae2768e0d579cd671bbad3d8ae150 100644 |
--- a/xfa/fde/cfde_txtedtengine.cpp |
+++ b/xfa/fde/cfde_txtedtengine.cpp |
@@ -206,7 +206,7 @@ int32_t CFDE_TxtEdtEngine::SetCaretPos(int32_t nIndex, bool bBefore) { |
m_fCaretPosReserve = (m_Param.dwLayoutStyles & FDE_TEXTEDITLAYOUT_DocVertical) |
? m_rtCaret.top |
: m_rtCaret.left; |
- m_Param.pEventSink->On_CaretChanged(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_CaretChanged(); |
m_nAnchorPos = -1; |
return m_nCaret; |
} |
@@ -322,11 +322,11 @@ int32_t CFDE_TxtEdtEngine::MoveCaretPos(FDE_TXTEDTMOVECARET eMoveCaret, |
if (bShift && m_nAnchorPos != -1 && (m_nAnchorPos != m_nCaret)) { |
AddSelRange(std::min(m_nAnchorPos, m_nCaret), |
FXSYS_abs(m_nAnchorPos - m_nCaret)); |
- m_Param.pEventSink->On_SelChanged(this); |
- } |
- if (bSelChange) { |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_SelChanged(); |
} |
+ if (bSelChange) |
+ m_Param.pEventSink->On_SelChanged(); |
+ |
return m_nCaret; |
} |
@@ -405,19 +405,17 @@ int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart, |
} |
if (m_Param.dwMode & FDE_TEXTEDITMODE_Validate) { |
CFX_WideString wsText = GetPreInsertText(m_nCaret, lpBuffer, nLength); |
- if (!m_Param.pEventSink->On_Validate(this, wsText)) { |
+ if (!m_Param.pEventSink->On_Validate(wsText)) |
return FDE_TXTEDT_MODIFY_RET_F_Invalidate; |
- } |
} |
if (IsSelect()) { |
DeleteSelect(); |
} |
if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) |
m_Param.pEventSink->On_AddDoRecord( |
- this, |
new CFDE_TxtEdtDoRecord_Insert(this, m_nCaret, lpBuffer, nLength)); |
- m_ChangeInfo.wsPrevText = GetText(0); |
+ m_ChangeInfo.wsPrevText = GetText(0, -1); |
Inner_Insert(m_nCaret, lpBuffer, nLength); |
m_ChangeInfo.nChangeType = FDE_TXTEDT_TEXTCHANGE_TYPE_Insert; |
m_ChangeInfo.wsInsert = CFX_WideString(lpBuffer, nLength); |
@@ -430,7 +428,7 @@ int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart, |
bBefore = false; |
} |
SetCaretPos(nStart, bBefore); |
- m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
+ m_Param.pEventSink->On_TextChanged(m_ChangeInfo); |
return bPart ? FDE_TXTEDT_MODIFY_RET_S_Part : FDE_TXTEDT_MODIFY_RET_S_Normal; |
} |
@@ -466,14 +464,12 @@ int32_t CFDE_TxtEdtEngine::Delete(int32_t nStart, bool bBackspace) { |
} |
if (m_Param.dwMode & FDE_TEXTEDITMODE_Validate) { |
CFX_WideString wsText = GetPreDeleteText(nStart, nCount); |
- if (!m_Param.pEventSink->On_Validate(this, wsText)) { |
+ if (!m_Param.pEventSink->On_Validate(wsText)) |
return FDE_TXTEDT_MODIFY_RET_F_Invalidate; |
- } |
} |
if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { |
CFX_WideString wsRange = m_pTxtBuf->GetRange(nStart, nCount); |
m_Param.pEventSink->On_AddDoRecord( |
- this, |
new CFDE_TxtEdtDoRecord_DeleteRange(this, nStart, m_nCaret, wsRange)); |
} |
m_ChangeInfo.nChangeType = FDE_TXTEDT_TEXTCHANGE_TYPE_Delete; |
@@ -481,28 +477,24 @@ int32_t CFDE_TxtEdtEngine::Delete(int32_t nStart, bool bBackspace) { |
Inner_DeleteRange(nStart, nCount); |
SetCaretPos(nStart + ((!bBackspace && nStart > 0) ? -1 : 0), |
(bBackspace || nStart == 0)); |
- m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
+ m_Param.pEventSink->On_TextChanged(m_ChangeInfo); |
return FDE_TXTEDT_MODIFY_RET_S_Normal; |
} |
int32_t CFDE_TxtEdtEngine::DeleteRange(int32_t nStart, int32_t nCount) { |
- if (IsLocked()) { |
+ if (IsLocked()) |
return FDE_TXTEDT_MODIFY_RET_F_Locked; |
- } |
- if (nCount == -1) { |
+ if (nCount == -1) |
nCount = GetTextBufLength(); |
- } |
- if (nCount == 0) { |
+ if (nCount == 0) |
return FDE_TXTEDT_MODIFY_RET_S_Normal; |
- } |
if (m_Param.dwMode & FDE_TEXTEDITMODE_Validate) { |
CFX_WideString wsText = GetPreDeleteText(nStart, nCount); |
- if (!m_Param.pEventSink->On_Validate(this, wsText)) { |
+ if (!m_Param.pEventSink->On_Validate(wsText)) |
return FDE_TXTEDT_MODIFY_RET_F_Invalidate; |
- } |
} |
DeleteRange_DoRecord(nStart, nCount); |
- m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
+ m_Param.pEventSink->On_TextChanged(m_ChangeInfo); |
SetCaretPos(nStart, true); |
return FDE_TXTEDT_MODIFY_RET_S_Normal; |
} |
@@ -510,31 +502,28 @@ int32_t CFDE_TxtEdtEngine::DeleteRange(int32_t nStart, int32_t nCount) { |
int32_t CFDE_TxtEdtEngine::Replace(int32_t nStart, |
int32_t nLength, |
const CFX_WideString& wsReplace) { |
- if (IsLocked()) { |
+ if (IsLocked()) |
return FDE_TXTEDT_MODIFY_RET_F_Locked; |
- } |
- if (nStart < 0 || (nStart + nLength > GetTextBufLength())) { |
+ if (nStart < 0 || (nStart + nLength > GetTextBufLength())) |
return FDE_TXTEDT_MODIFY_RET_F_Boundary; |
- } |
if (m_Param.dwMode & FDE_TEXTEDITMODE_Validate) { |
CFX_WideString wsText = GetPreReplaceText( |
nStart, nLength, wsReplace.c_str(), wsReplace.GetLength()); |
- if (!m_Param.pEventSink->On_Validate(this, wsText)) { |
+ if (!m_Param.pEventSink->On_Validate(wsText)) |
return FDE_TXTEDT_MODIFY_RET_F_Invalidate; |
- } |
} |
- if (IsSelect()) { |
+ if (IsSelect()) |
ClearSelection(); |
- } |
+ |
m_ChangeInfo.nChangeType = FDE_TXTEDT_TEXTCHANGE_TYPE_Replace; |
m_ChangeInfo.wsDelete = GetText(nStart, nLength); |
- if (nLength > 0) { |
+ if (nLength > 0) |
Inner_DeleteRange(nStart, nLength); |
- } |
+ |
int32_t nTextLength = wsReplace.GetLength(); |
- if (nTextLength > 0) { |
+ if (nTextLength > 0) |
Inner_Insert(nStart, wsReplace.c_str(), nTextLength); |
- } |
+ |
m_ChangeInfo.wsInsert = CFX_WideString(wsReplace.c_str(), nTextLength); |
nStart += nTextLength; |
FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nStart - 1); |
@@ -544,9 +533,9 @@ int32_t CFDE_TxtEdtEngine::Replace(int32_t nStart, |
bBefore = false; |
} |
SetCaretPos(nStart, bBefore); |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
- m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
+ m_Param.pEventSink->On_TextChanged(m_ChangeInfo); |
return FDE_TXTEDT_MODIFY_RET_S_Normal; |
} |
@@ -582,7 +571,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { |
lpSelRange->nStart = nStart; |
lpSelRange->nCount = nCount; |
m_SelRangePtrArr.Add(lpSelRange); |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_SelChanged(); |
return; |
} |
FDE_TXTEDTSELRANGE* lpTemp = nullptr; |
@@ -592,7 +581,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { |
lpSelRange->nStart = nStart; |
lpSelRange->nCount = nCount; |
m_SelRangePtrArr.Add(lpSelRange); |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_SelChanged(); |
return; |
} |
int32_t nEnd = nStart + nCount - 1; |
@@ -638,7 +627,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { |
m_SelRangePtrArr.RemoveAt(nRangeBgn); |
} |
} |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_SelChanged(); |
} |
int32_t CFDE_TxtEdtEngine::CountSelRanges() const { |
@@ -656,7 +645,7 @@ void CFDE_TxtEdtEngine::ClearSelection() { |
delete m_SelRangePtrArr[i]; |
m_SelRangePtrArr.RemoveAll(); |
if (nCount && m_Param.pEventSink) |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_SelChanged(); |
} |
bool CFDE_TxtEdtEngine::Redo(const IFDE_TxtEdtDoRecord* pDoRecord) { |
@@ -829,7 +818,7 @@ void CFDE_TxtEdtEngine::Inner_Insert(int32_t nStart, |
ASSERT(nLength > 0); |
FDE_TXTEDTPARAGPOS ParagPos; |
TextPos2ParagPos(nStart, ParagPos); |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
int32_t nParagCount = m_ParagPtrArray.GetSize(); |
int32_t i = 0; |
for (i = ParagPos.nParagIndex + 1; i < nParagCount; i++) |
@@ -883,7 +872,7 @@ void CFDE_TxtEdtEngine::Inner_Insert(int32_t nStart, |
nTotalLineCount += pParag->GetLineCount(); |
} |
m_nLineCount += nTotalLineCount - nReserveLineCount; |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
UpdatePages(); |
} |
@@ -893,7 +882,7 @@ void CFDE_TxtEdtEngine::Inner_DeleteRange(int32_t nStart, int32_t nCount) { |
} |
int32_t nEnd = nStart + nCount - 1; |
ASSERT(nStart >= 0 && nEnd < m_pTxtBuf->GetTextLength()); |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
FDE_TXTEDTPARAGPOS ParagPosBgn, ParagPosEnd; |
TextPos2ParagPos(nStart, ParagPosBgn); |
TextPos2ParagPos(nEnd, ParagPosEnd); |
@@ -939,7 +928,7 @@ void CFDE_TxtEdtEngine::Inner_DeleteRange(int32_t nStart, int32_t nCount) { |
if (m_nCaretPage >= nPageCount) { |
m_nCaretPage = nPageCount - 1; |
} |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
} |
void CFDE_TxtEdtEngine::DeleteRange_DoRecord(int32_t nStart, |
@@ -953,9 +942,8 @@ void CFDE_TxtEdtEngine::DeleteRange_DoRecord(int32_t nStart, |
if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { |
CFX_WideString wsRange = m_pTxtBuf->GetRange(nStart, nCount); |
- m_Param.pEventSink->On_AddDoRecord( |
- this, new CFDE_TxtEdtDoRecord_DeleteRange(this, nStart, m_nCaret, |
- wsRange, bSel)); |
+ m_Param.pEventSink->On_AddDoRecord(new CFDE_TxtEdtDoRecord_DeleteRange( |
+ this, nStart, m_nCaret, wsRange, bSel)); |
} |
m_ChangeInfo.nChangeType = FDE_TXTEDT_TEXTCHANGE_TYPE_Delete; |
m_ChangeInfo.wsDelete = GetText(nStart, nCount); |
@@ -1234,14 +1222,14 @@ int32_t CFDE_TxtEdtEngine::MovePage2Char(int32_t nIndex) { |
ASSERT(nIndex <= m_pTxtBuf->GetTextLength()); |
if (m_nCaretPage >= 0) { |
IFDE_TxtEdtPage* pPage = m_PagePtrArray[m_nCaretPage]; |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
int32_t nPageCharStart = pPage->GetCharStart(); |
int32_t nPageCharCount = pPage->GetCharCount(); |
if (nIndex >= nPageCharStart && nIndex < nPageCharStart + nPageCharCount) { |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
return m_nCaretPage; |
} |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
} |
CFDE_TxtEdtParag* pParag = nullptr; |
int32_t nLineCount = 0; |
@@ -1551,7 +1539,7 @@ void CFDE_TxtEdtEngine::UpdateCaretRect(int32_t nIndex, bool bBefore) { |
m_fCaretPosReserve = (m_Param.dwLayoutStyles & FDE_TEXTEDITLAYOUT_DocVertical) |
? m_rtCaret.top |
: m_rtCaret.left; |
- m_Param.pEventSink->On_CaretChanged(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_CaretChanged(); |
} |
void CFDE_TxtEdtEngine::GetCaretRect(CFX_RectF& rtCaret, |
@@ -1559,7 +1547,7 @@ void CFDE_TxtEdtEngine::GetCaretRect(CFX_RectF& rtCaret, |
int32_t nCaret, |
bool bBefore) { |
IFDE_TxtEdtPage* pPage = m_PagePtrArray[m_nCaretPage]; |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
bool bCombText = !!(m_Param.dwLayoutStyles & FDE_TEXTEDITLAYOUT_CombText); |
int32_t nIndexInpage = nCaret - pPage->GetCharStart(); |
if (bBefore && bCombText && nIndexInpage > 0) { |
@@ -1586,20 +1574,20 @@ void CFDE_TxtEdtEngine::GetCaretRect(CFX_RectF& rtCaret, |
rtCaret.width = 1.0f; |
} |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
} |
void CFDE_TxtEdtEngine::UpdateCaretIndex(const CFX_PointF& ptCaret) { |
IFDE_TxtEdtPage* pPage = m_PagePtrArray[m_nCaretPage]; |
- m_Param.pEventSink->On_PageLoad(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_PageLoad(m_nCaretPage); |
m_nCaret = pPage->GetCharIndex(ptCaret, m_bBefore); |
GetCaretRect(m_rtCaret, m_nCaretPage, m_nCaret, m_bBefore); |
if (!m_bBefore) { |
m_nCaret++; |
m_bBefore = true; |
} |
- m_Param.pEventSink->On_CaretChanged(this, m_nCaretPage); |
- m_Param.pEventSink->On_PageUnload(this, m_nCaretPage, 0); |
+ m_Param.pEventSink->On_CaretChanged(); |
+ m_Param.pEventSink->On_PageUnload(m_nCaretPage); |
} |
bool CFDE_TxtEdtEngine::IsSelect() { |
@@ -1617,8 +1605,8 @@ void CFDE_TxtEdtEngine::DeleteSelect() { |
DeleteRange_DoRecord(nSelStart, nSelCount, true); |
} |
ClearSelection(); |
- m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
- m_Param.pEventSink->On_SelChanged(this); |
+ m_Param.pEventSink->On_TextChanged(m_ChangeInfo); |
+ m_Param.pEventSink->On_SelChanged(); |
SetCaretPos(nSelStart, true); |
return; |
} |