| 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 "xfa/fee/fde_txtedtengine.h" | 7 #include "xfa/fee/fde_txtedtengine.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 1585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1596 ClearSelection(); | 1596 ClearSelection(); |
| 1597 m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); | 1597 m_Param.pEventSink->On_TextChanged(this, m_ChangeInfo); |
| 1598 m_Param.pEventSink->On_SelChanged(this); | 1598 m_Param.pEventSink->On_SelChanged(this); |
| 1599 SetCaretPos(nSelStart, TRUE); | 1599 SetCaretPos(nSelStart, TRUE); |
| 1600 return; | 1600 return; |
| 1601 } | 1601 } |
| 1602 } | 1602 } |
| 1603 | 1603 |
| 1604 IFDE_TxtEdtDoRecord* IFDE_TxtEdtDoRecord::Create( | 1604 IFDE_TxtEdtDoRecord* IFDE_TxtEdtDoRecord::Create( |
| 1605 const CFX_ByteStringC& bsDoRecord) { | 1605 const CFX_ByteStringC& bsDoRecord) { |
| 1606 const FX_CHAR* lpBuf = bsDoRecord.c_str(); | 1606 const uint32_t* lpBuf = |
| 1607 int32_t nType = *((int32_t*)lpBuf); | 1607 reinterpret_cast<const uint32_t*>(bsDoRecord.raw_str()); |
| 1608 switch (nType) { | 1608 switch (*lpBuf) { |
| 1609 case FDE_TXTEDT_DORECORD_INS: | 1609 case FDE_TXTEDT_DORECORD_INS: |
| 1610 return new CFDE_TxtEdtDoRecord_Insert(bsDoRecord); | 1610 return new CFDE_TxtEdtDoRecord_Insert(bsDoRecord); |
| 1611 case FDE_TXTEDT_DORECORD_DEL: | 1611 case FDE_TXTEDT_DORECORD_DEL: |
| 1612 return new CFDE_TxtEdtDoRecord_DeleteRange(bsDoRecord); | 1612 return new CFDE_TxtEdtDoRecord_DeleteRange(bsDoRecord); |
| 1613 default: | 1613 default: |
| 1614 return nullptr; | 1614 return nullptr; |
| 1615 } | 1615 } |
| 1616 } | 1616 } |
| 1617 | 1617 |
| 1618 CFDE_TxtEdtDoRecord_Insert::CFDE_TxtEdtDoRecord_Insert( | 1618 CFDE_TxtEdtDoRecord_Insert::CFDE_TxtEdtDoRecord_Insert( |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1662 ArchiveSaver << m_nCaret; | 1662 ArchiveSaver << m_nCaret; |
| 1663 ArchiveSaver << m_wsInsert; | 1663 ArchiveSaver << m_wsInsert; |
| 1664 int32_t nLength = ArchiveSaver.GetLength(); | 1664 int32_t nLength = ArchiveSaver.GetLength(); |
| 1665 const uint8_t* lpSrcBuf = ArchiveSaver.GetBuffer(); | 1665 const uint8_t* lpSrcBuf = ArchiveSaver.GetBuffer(); |
| 1666 FX_CHAR* lpDstBuf = bsDoRecord.GetBuffer(nLength); | 1666 FX_CHAR* lpDstBuf = bsDoRecord.GetBuffer(nLength); |
| 1667 FXSYS_memcpy(lpDstBuf, lpSrcBuf, nLength); | 1667 FXSYS_memcpy(lpDstBuf, lpSrcBuf, nLength); |
| 1668 bsDoRecord.ReleaseBuffer(nLength); | 1668 bsDoRecord.ReleaseBuffer(nLength); |
| 1669 } | 1669 } |
| 1670 void CFDE_TxtEdtDoRecord_Insert::Deserialize( | 1670 void CFDE_TxtEdtDoRecord_Insert::Deserialize( |
| 1671 const CFX_ByteStringC& bsDoRecord) { | 1671 const CFX_ByteStringC& bsDoRecord) { |
| 1672 CFX_ArchiveLoader ArchiveLoader( | 1672 CFX_ArchiveLoader ArchiveLoader(bsDoRecord.raw_str(), bsDoRecord.GetLength()); |
| 1673 reinterpret_cast<const uint8_t*>(bsDoRecord.c_str()), | |
| 1674 bsDoRecord.GetLength()); | |
| 1675 int32_t nType = 0; | 1673 int32_t nType = 0; |
| 1676 ArchiveLoader >> nType; | 1674 ArchiveLoader >> nType; |
| 1677 ASSERT(nType == FDE_TXTEDT_DORECORD_INS); | 1675 ASSERT(nType == FDE_TXTEDT_DORECORD_INS); |
| 1678 int32_t nEngine = 0; | 1676 int32_t nEngine = 0; |
| 1679 ArchiveLoader >> nEngine; | 1677 ArchiveLoader >> nEngine; |
| 1680 m_pEngine = (CFDE_TxtEdtEngine*)(uintptr_t)nEngine; | 1678 m_pEngine = (CFDE_TxtEdtEngine*)(uintptr_t)nEngine; |
| 1681 ArchiveLoader >> m_nCaret; | 1679 ArchiveLoader >> m_nCaret; |
| 1682 ArchiveLoader >> m_wsInsert; | 1680 ArchiveLoader >> m_wsInsert; |
| 1683 } | 1681 } |
| 1684 CFDE_TxtEdtDoRecord_DeleteRange::CFDE_TxtEdtDoRecord_DeleteRange( | 1682 CFDE_TxtEdtDoRecord_DeleteRange::CFDE_TxtEdtDoRecord_DeleteRange( |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1739 ArchiveSaver << m_nCaret; | 1737 ArchiveSaver << m_nCaret; |
| 1740 ArchiveSaver << m_wsRange; | 1738 ArchiveSaver << m_wsRange; |
| 1741 int32_t nLength = ArchiveSaver.GetLength(); | 1739 int32_t nLength = ArchiveSaver.GetLength(); |
| 1742 const uint8_t* lpSrcBuf = ArchiveSaver.GetBuffer(); | 1740 const uint8_t* lpSrcBuf = ArchiveSaver.GetBuffer(); |
| 1743 FX_CHAR* lpDstBuf = bsDoRecord.GetBuffer(nLength); | 1741 FX_CHAR* lpDstBuf = bsDoRecord.GetBuffer(nLength); |
| 1744 FXSYS_memcpy(lpDstBuf, lpSrcBuf, nLength); | 1742 FXSYS_memcpy(lpDstBuf, lpSrcBuf, nLength); |
| 1745 bsDoRecord.ReleaseBuffer(nLength); | 1743 bsDoRecord.ReleaseBuffer(nLength); |
| 1746 } | 1744 } |
| 1747 void CFDE_TxtEdtDoRecord_DeleteRange::Deserialize( | 1745 void CFDE_TxtEdtDoRecord_DeleteRange::Deserialize( |
| 1748 const CFX_ByteStringC& bsDoRecord) { | 1746 const CFX_ByteStringC& bsDoRecord) { |
| 1749 CFX_ArchiveLoader ArchiveLoader( | 1747 CFX_ArchiveLoader ArchiveLoader(bsDoRecord.raw_str(), bsDoRecord.GetLength()); |
| 1750 reinterpret_cast<const uint8_t*>(bsDoRecord.c_str()), | |
| 1751 bsDoRecord.GetLength()); | |
| 1752 int32_t nType = 0; | 1748 int32_t nType = 0; |
| 1753 ArchiveLoader >> nType; | 1749 ArchiveLoader >> nType; |
| 1754 ASSERT(nType == FDE_TXTEDT_DORECORD_DEL); | 1750 ASSERT(nType == FDE_TXTEDT_DORECORD_DEL); |
| 1755 int32_t nEngine = 0; | 1751 int32_t nEngine = 0; |
| 1756 ArchiveLoader >> nEngine; | 1752 ArchiveLoader >> nEngine; |
| 1757 m_pEngine = (CFDE_TxtEdtEngine*)(uintptr_t)nEngine; | 1753 m_pEngine = (CFDE_TxtEdtEngine*)(uintptr_t)nEngine; |
| 1758 int32_t iSel = 0; | 1754 int32_t iSel = 0; |
| 1759 ArchiveLoader >> iSel; | 1755 ArchiveLoader >> iSel; |
| 1760 m_bSel = !!iSel; | 1756 m_bSel = !!iSel; |
| 1761 ArchiveLoader >> m_nIndex; | 1757 ArchiveLoader >> m_nIndex; |
| 1762 ArchiveLoader >> m_nCaret; | 1758 ArchiveLoader >> m_nCaret; |
| 1763 ArchiveLoader >> m_wsRange; | 1759 ArchiveLoader >> m_wsRange; |
| 1764 } | 1760 } |
| OLD | NEW |