OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "xfa/src/foxitlib.h" | 9 #include "xfa/src/foxitlib.h" |
10 #include "xfa/src/fee/include/ifde_txtedtengine.h" | 10 #include "xfa/src/fee/include/ifde_txtedtengine.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 int32_t nRealBgn = GetRealIndex(nStart); | 203 int32_t nRealBgn = GetRealIndex(nStart); |
204 int32_t nRealEnd = GetRealIndex(nStart + nCount - 1); | 204 int32_t nRealEnd = GetRealIndex(nStart + nCount - 1); |
205 int32_t nRealCount = nRealEnd - nRealBgn; | 205 int32_t nRealCount = nRealEnd - nRealBgn; |
206 FX_WCHAR* lpDestBuf = wsText.GetBuffer(nRealCount); | 206 FX_WCHAR* lpDestBuf = wsText.GetBuffer(nRealCount); |
207 FXSYS_memcpy(lpDestBuf, const FX_WCHAR*(wsTemp) + nRealBgn, | 207 FXSYS_memcpy(lpDestBuf, const FX_WCHAR*(wsTemp) + nRealBgn, |
208 nRealCount * sizeof(FX_WCHAR)); | 208 nRealCount * sizeof(FX_WCHAR)); |
209 wsText.ReleaseBuffer(); | 209 wsText.ReleaseBuffer(); |
210 #else | 210 #else |
211 m_pTxtBuf->GetRange(wsText, nStart, nCount); | 211 m_pTxtBuf->GetRange(wsText, nStart, nCount); |
212 RecoverParagEnd(wsText); | 212 RecoverParagEnd(wsText); |
213 return; | |
214 #endif | 213 #endif |
215 } | 214 } |
| 215 |
216 void CFDE_TxtEdtEngine::ClearText() { | 216 void CFDE_TxtEdtEngine::ClearText() { |
217 DeleteRange(0, -1); | 217 DeleteRange(0, -1); |
218 } | 218 } |
219 int32_t CFDE_TxtEdtEngine::GetCaretRect(CFX_RectF& rtCaret) const { | 219 int32_t CFDE_TxtEdtEngine::GetCaretRect(CFX_RectF& rtCaret) const { |
220 rtCaret = m_rtCaret; | 220 rtCaret = m_rtCaret; |
221 return m_nCaret; | 221 return m_nCaret; |
222 } | 222 } |
223 int32_t CFDE_TxtEdtEngine::GetCaretPos() const { | 223 int32_t CFDE_TxtEdtEngine::GetCaretPos() const { |
224 if (IsLocked()) { | 224 if (IsLocked()) { |
225 return 0; | 225 return 0; |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 int32_t nRangeCount = m_SelRangePtrArr.GetSize(); | 927 int32_t nRangeCount = m_SelRangePtrArr.GetSize(); |
928 int32_t i = 0; | 928 int32_t i = 0; |
929 for (i = 0; i < nRangeCount; i++) { | 929 for (i = 0; i < nRangeCount; i++) { |
930 lpTemp = m_SelRangePtrArr[i]; | 930 lpTemp = m_SelRangePtrArr[i]; |
931 if (lpTemp->nStart == nStart && lpTemp->nCount == nCount) { | 931 if (lpTemp->nStart == nStart && lpTemp->nCount == nCount) { |
932 delete lpTemp; | 932 delete lpTemp; |
933 m_SelRangePtrArr.RemoveAt(i); | 933 m_SelRangePtrArr.RemoveAt(i); |
934 return; | 934 return; |
935 } | 935 } |
936 } | 936 } |
937 return; | |
938 } | 937 } |
| 938 |
939 void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { | 939 void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { |
940 if (nCount == -1) { | 940 if (nCount == -1) { |
941 nCount = GetTextLength() - nStart; | 941 nCount = GetTextLength() - nStart; |
942 } | 942 } |
943 int32_t nSize = m_SelRangePtrArr.GetSize(); | 943 int32_t nSize = m_SelRangePtrArr.GetSize(); |
944 if (nSize <= 0) { | 944 if (nSize <= 0) { |
945 FDE_LPTXTEDTSELRANGE lpSelRange = new FDE_TXTEDTSELRANGE; | 945 FDE_LPTXTEDTSELRANGE lpSelRange = new FDE_TXTEDTSELRANGE; |
946 lpSelRange->nStart = nStart; | 946 lpSelRange->nStart = nStart; |
947 lpSelRange->nCount = nCount; | 947 lpSelRange->nCount = nCount; |
948 m_SelRangePtrArr.Add(lpSelRange); | 948 m_SelRangePtrArr.Add(lpSelRange); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
996 lpTemp->nStart = nStart; | 996 lpTemp->nStart = nStart; |
997 lpTemp->nCount = nCount; | 997 lpTemp->nCount = nCount; |
998 nRangeCnt--; | 998 nRangeCnt--; |
999 nRangeBgn++; | 999 nRangeBgn++; |
1000 while (nRangeCnt--) { | 1000 while (nRangeCnt--) { |
1001 delete m_SelRangePtrArr[nRangeBgn]; | 1001 delete m_SelRangePtrArr[nRangeBgn]; |
1002 m_SelRangePtrArr.RemoveAt(nRangeBgn); | 1002 m_SelRangePtrArr.RemoveAt(nRangeBgn); |
1003 } | 1003 } |
1004 } | 1004 } |
1005 m_Param.pEventSink->On_SelChanged(this); | 1005 m_Param.pEventSink->On_SelChanged(this); |
1006 return; | |
1007 } | 1006 } |
| 1007 |
1008 int32_t CFDE_TxtEdtEngine::CountSelRanges() { | 1008 int32_t CFDE_TxtEdtEngine::CountSelRanges() { |
1009 return m_SelRangePtrArr.GetSize(); | 1009 return m_SelRangePtrArr.GetSize(); |
1010 } | 1010 } |
1011 int32_t CFDE_TxtEdtEngine::GetSelRange(int32_t nIndex, int32_t& nStart) { | 1011 int32_t CFDE_TxtEdtEngine::GetSelRange(int32_t nIndex, int32_t& nStart) { |
1012 nStart = m_SelRangePtrArr[nIndex]->nStart; | 1012 nStart = m_SelRangePtrArr[nIndex]->nStart; |
1013 return m_SelRangePtrArr[nIndex]->nCount; | 1013 return m_SelRangePtrArr[nIndex]->nCount; |
1014 } | 1014 } |
1015 void CFDE_TxtEdtEngine::ClearSelection() { | 1015 void CFDE_TxtEdtEngine::ClearSelection() { |
1016 int32_t nCount = m_SelRangePtrArr.GetSize(); | 1016 int32_t nCount = m_SelRangePtrArr.GetSize(); |
1017 FDE_LPTXTEDTSELRANGE lpRange = NULL; | 1017 FDE_LPTXTEDTSELRANGE lpRange = NULL; |
(...skipping 1839 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2857 ArchiveLoader >> nField; | 2857 ArchiveLoader >> nField; |
2858 m_pField = (CFDE_TxtEdtField*)nField; | 2858 m_pField = (CFDE_TxtEdtField*)nField; |
2859 ArchiveLoader >> m_nIndexInField; | 2859 ArchiveLoader >> m_nIndexInField; |
2860 ArchiveLoader >> m_nFieldBgn; | 2860 ArchiveLoader >> m_nFieldBgn; |
2861 ArchiveLoader >> m_nFieldNewLength; | 2861 ArchiveLoader >> m_nFieldNewLength; |
2862 ArchiveLoader >> m_wsDel; | 2862 ArchiveLoader >> m_wsDel; |
2863 ArchiveLoader >> m_wsIns; | 2863 ArchiveLoader >> m_wsIns; |
2864 ArchiveLoader >> m_bSel; | 2864 ArchiveLoader >> m_bSel; |
2865 } | 2865 } |
2866 #endif | 2866 #endif |
OLD | NEW |