Index: xfa/src/fee/src/fee/fde_txtedtparag.cpp |
diff --git a/xfa/src/fee/src/fee/fde_txtedtparag.cpp b/xfa/src/fee/src/fee/fde_txtedtparag.cpp |
index 7be3a27e248dd43036540a069a9c02fea969b4be..a2b721c539dea94aae511a7dd5dc37f8010bf23d 100644 |
--- a/xfa/src/fee/src/fee/fde_txtedtparag.cpp |
+++ b/xfa/src/fee/src/fee/fde_txtedtparag.cpp |
@@ -1,148 +1,148 @@ |
-// 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 |
- |
-#include "xfa/src/foxitlib.h" |
-#include "xfa/src/fee/include/ifde_txtedtbuf.h" |
-#include "xfa/src/fee/include/ifde_txtedtengine.h" |
-#include "xfa/src/fee/include/fx_wordbreak.h" |
-#include "fde_txtedtparag.h" |
-#include "fde_txtedtengine.h" |
-#include "fde_txtedtbuf.h" |
-CFDE_TxtEdtParag::CFDE_TxtEdtParag(CFDE_TxtEdtEngine* pEngine) |
- : m_nCharStart(0), |
- m_nCharCount(0), |
- m_nLineCount(0), |
- m_lpData(NULL), |
- m_pEngine(pEngine) { |
- FXSYS_assert(m_pEngine); |
-} |
-CFDE_TxtEdtParag::~CFDE_TxtEdtParag() { |
- if (m_lpData != NULL) { |
- FX_Free(m_lpData); |
- } |
-} |
-void CFDE_TxtEdtParag::LoadParag() { |
- if (m_lpData != NULL) { |
- ((int32_t*)m_lpData)[0]++; |
- return; |
- } |
- IFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); |
- IFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); |
- const FDE_TXTEDTPARAMS* pParam = m_pEngine->GetEditParams(); |
- FX_WCHAR wcAlias = 0; |
- if (pParam->dwMode & FDE_TEXTEDITMODE_Password) { |
- wcAlias = m_pEngine->GetAliasChar(); |
- } |
- IFX_CharIter* pIter = |
- new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf, wcAlias); |
- pIter->SetAt(m_nCharStart); |
- int32_t nEndIndex = m_nCharStart + m_nCharCount; |
- CFX_ArrayTemplate<int32_t> LineBaseArr; |
- FX_BOOL bReload = FALSE; |
- FX_DWORD dwBreakStatus = FX_TXTBREAK_None; |
- do { |
- if (bReload) { |
- dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- } else { |
- FX_WCHAR wAppend = pIter->GetChar(); |
- dwBreakStatus = pTxtBreak->AppendChar(wAppend); |
- } |
- if (pIter->GetAt() + 1 == nEndIndex && |
- dwBreakStatus < FX_TXTBREAK_LineBreak) { |
- dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- } |
- if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { |
- int32_t nCount = pTxtBreak->CountBreakPieces(); |
- int32_t nTotal = 0; |
- for (int32_t j = 0; j < nCount; j++) { |
- const CFX_TxtPiece* Piece = pTxtBreak->GetBreakPiece(j); |
- nTotal += Piece->GetLength(); |
- } |
- LineBaseArr.Add(nTotal); |
- pTxtBreak->ClearBreakPieces(); |
- } |
- if ((pIter->GetAt() + 1 == nEndIndex) && |
- (dwBreakStatus == FX_TXTBREAK_LineBreak)) { |
- bReload = TRUE; |
- pIter->Next(TRUE); |
- } |
- } while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
- pIter->Release(); |
- pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- pTxtBreak->ClearBreakPieces(); |
- int32_t nLineCount = LineBaseArr.GetSize(); |
- m_nLineCount = nLineCount; |
- if (m_lpData == NULL) { |
- m_lpData = FX_Alloc(int32_t, nLineCount + 1); |
- } else { |
- m_lpData = FX_Realloc(int32_t, m_lpData, (nLineCount + 1)); |
- } |
- int32_t* pIntArr = (int32_t*)m_lpData; |
- pIntArr[0] = 1; |
- m_nLineCount = nLineCount; |
- pIntArr++; |
- for (int32_t j = 0; j < nLineCount; j++, pIntArr++) { |
- *pIntArr = LineBaseArr[j]; |
- } |
- LineBaseArr.RemoveAll(); |
-} |
-void CFDE_TxtEdtParag::UnloadParag() { |
- FXSYS_assert(m_lpData != NULL); |
- ((int32_t*)m_lpData)[0]--; |
- FXSYS_assert(((int32_t*)m_lpData)[0] >= 0); |
- if (((int32_t*)m_lpData)[0] == 0) { |
- FX_Free(m_lpData); |
- m_lpData = NULL; |
- } |
-} |
-void CFDE_TxtEdtParag::CalcLines() { |
- IFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); |
- IFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); |
- IFX_CharIter* pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf); |
- int32_t nCount = 0; |
- FX_DWORD dwBreakStatus = FX_TXTBREAK_None; |
- int32_t nEndIndex = m_nCharStart + m_nCharCount; |
- pIter->SetAt(m_nCharStart); |
- FX_BOOL bReload = FALSE; |
- do { |
- if (bReload) { |
- dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- } else { |
- FX_WCHAR wAppend = pIter->GetChar(); |
- dwBreakStatus = pTxtBreak->AppendChar(wAppend); |
- } |
- if (pIter->GetAt() + 1 == nEndIndex && |
- dwBreakStatus < FX_TXTBREAK_LineBreak) { |
- dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- } |
- if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { |
- nCount++; |
- pTxtBreak->ClearBreakPieces(); |
- } |
- if ((pIter->GetAt() + 1 == nEndIndex) && |
- (dwBreakStatus == FX_TXTBREAK_LineBreak)) { |
- bReload = TRUE; |
- pIter->Next(TRUE); |
- } |
- } while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
- pIter->Release(); |
- pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
- pTxtBreak->ClearBreakPieces(); |
- m_nLineCount = nCount; |
-} |
-void CFDE_TxtEdtParag::GetLineRange(int32_t nLineIndex, |
- int32_t& nStart, |
- int32_t& nCount) const { |
- int32_t* pLineBaseArr = (int32_t*)m_lpData; |
- FXSYS_assert(nLineIndex < m_nLineCount); |
- nStart = m_nCharStart; |
- pLineBaseArr++; |
- for (int32_t i = 0; i < nLineIndex; i++) { |
- nStart += *pLineBaseArr; |
- pLineBaseArr++; |
- } |
- nCount = *pLineBaseArr; |
-} |
+// 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 |
+ |
+#include "xfa/src/foxitlib.h" |
+#include "xfa/src/fee/include/ifde_txtedtbuf.h" |
+#include "xfa/src/fee/include/ifde_txtedtengine.h" |
+#include "xfa/src/fee/include/fx_wordbreak.h" |
+#include "fde_txtedtparag.h" |
+#include "fde_txtedtengine.h" |
+#include "fde_txtedtbuf.h" |
+CFDE_TxtEdtParag::CFDE_TxtEdtParag(CFDE_TxtEdtEngine* pEngine) |
+ : m_nCharStart(0), |
+ m_nCharCount(0), |
+ m_nLineCount(0), |
+ m_lpData(NULL), |
+ m_pEngine(pEngine) { |
+ FXSYS_assert(m_pEngine); |
+} |
+CFDE_TxtEdtParag::~CFDE_TxtEdtParag() { |
+ if (m_lpData != NULL) { |
+ FX_Free(m_lpData); |
+ } |
+} |
+void CFDE_TxtEdtParag::LoadParag() { |
+ if (m_lpData != NULL) { |
+ ((int32_t*)m_lpData)[0]++; |
+ return; |
+ } |
+ IFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); |
+ IFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); |
+ const FDE_TXTEDTPARAMS* pParam = m_pEngine->GetEditParams(); |
+ FX_WCHAR wcAlias = 0; |
+ if (pParam->dwMode & FDE_TEXTEDITMODE_Password) { |
+ wcAlias = m_pEngine->GetAliasChar(); |
+ } |
+ IFX_CharIter* pIter = |
+ new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf, wcAlias); |
+ pIter->SetAt(m_nCharStart); |
+ int32_t nEndIndex = m_nCharStart + m_nCharCount; |
+ CFX_ArrayTemplate<int32_t> LineBaseArr; |
+ FX_BOOL bReload = FALSE; |
+ FX_DWORD dwBreakStatus = FX_TXTBREAK_None; |
+ do { |
+ if (bReload) { |
+ dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ } else { |
+ FX_WCHAR wAppend = pIter->GetChar(); |
+ dwBreakStatus = pTxtBreak->AppendChar(wAppend); |
+ } |
+ if (pIter->GetAt() + 1 == nEndIndex && |
+ dwBreakStatus < FX_TXTBREAK_LineBreak) { |
+ dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ } |
+ if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { |
+ int32_t nCount = pTxtBreak->CountBreakPieces(); |
+ int32_t nTotal = 0; |
+ for (int32_t j = 0; j < nCount; j++) { |
+ const CFX_TxtPiece* Piece = pTxtBreak->GetBreakPiece(j); |
+ nTotal += Piece->GetLength(); |
+ } |
+ LineBaseArr.Add(nTotal); |
+ pTxtBreak->ClearBreakPieces(); |
+ } |
+ if ((pIter->GetAt() + 1 == nEndIndex) && |
+ (dwBreakStatus == FX_TXTBREAK_LineBreak)) { |
+ bReload = TRUE; |
+ pIter->Next(TRUE); |
+ } |
+ } while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
+ pIter->Release(); |
+ pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ pTxtBreak->ClearBreakPieces(); |
+ int32_t nLineCount = LineBaseArr.GetSize(); |
+ m_nLineCount = nLineCount; |
+ if (m_lpData == NULL) { |
+ m_lpData = FX_Alloc(int32_t, nLineCount + 1); |
+ } else { |
+ m_lpData = FX_Realloc(int32_t, m_lpData, (nLineCount + 1)); |
+ } |
+ int32_t* pIntArr = (int32_t*)m_lpData; |
+ pIntArr[0] = 1; |
+ m_nLineCount = nLineCount; |
+ pIntArr++; |
+ for (int32_t j = 0; j < nLineCount; j++, pIntArr++) { |
+ *pIntArr = LineBaseArr[j]; |
+ } |
+ LineBaseArr.RemoveAll(); |
+} |
+void CFDE_TxtEdtParag::UnloadParag() { |
+ FXSYS_assert(m_lpData != NULL); |
+ ((int32_t*)m_lpData)[0]--; |
+ FXSYS_assert(((int32_t*)m_lpData)[0] >= 0); |
+ if (((int32_t*)m_lpData)[0] == 0) { |
+ FX_Free(m_lpData); |
+ m_lpData = NULL; |
+ } |
+} |
+void CFDE_TxtEdtParag::CalcLines() { |
+ IFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); |
+ IFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); |
+ IFX_CharIter* pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf); |
+ int32_t nCount = 0; |
+ FX_DWORD dwBreakStatus = FX_TXTBREAK_None; |
+ int32_t nEndIndex = m_nCharStart + m_nCharCount; |
+ pIter->SetAt(m_nCharStart); |
+ FX_BOOL bReload = FALSE; |
+ do { |
+ if (bReload) { |
+ dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ } else { |
+ FX_WCHAR wAppend = pIter->GetChar(); |
+ dwBreakStatus = pTxtBreak->AppendChar(wAppend); |
+ } |
+ if (pIter->GetAt() + 1 == nEndIndex && |
+ dwBreakStatus < FX_TXTBREAK_LineBreak) { |
+ dwBreakStatus = pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ } |
+ if (dwBreakStatus > FX_TXTBREAK_PieceBreak) { |
+ nCount++; |
+ pTxtBreak->ClearBreakPieces(); |
+ } |
+ if ((pIter->GetAt() + 1 == nEndIndex) && |
+ (dwBreakStatus == FX_TXTBREAK_LineBreak)) { |
+ bReload = TRUE; |
+ pIter->Next(TRUE); |
+ } |
+ } while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
+ pIter->Release(); |
+ pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
+ pTxtBreak->ClearBreakPieces(); |
+ m_nLineCount = nCount; |
+} |
+void CFDE_TxtEdtParag::GetLineRange(int32_t nLineIndex, |
+ int32_t& nStart, |
+ int32_t& nCount) const { |
+ int32_t* pLineBaseArr = (int32_t*)m_lpData; |
+ FXSYS_assert(nLineIndex < m_nLineCount); |
+ nStart = m_nCharStart; |
+ pLineBaseArr++; |
+ for (int32_t i = 0; i < nLineIndex; i++) { |
+ nStart += *pLineBaseArr; |
+ pLineBaseArr++; |
+ } |
+ nCount = *pLineBaseArr; |
+} |