Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: fpdfsdk/fxedit/fxet_edit.cpp

Issue 2152473002: Removing default params from CFX_Edit. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@ifx_cleanup_2
Patch Set: Rebase to master Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/fsdk_baseform.cpp ('k') | fpdfsdk/fxedit/fxet_list.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "fpdfsdk/fxedit/include/fxet_edit.h" 7 #include "fpdfsdk/fxedit/include/fxet_edit.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 m_pEdit->SelectNone(); 762 m_pEdit->SelectNone();
763 m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos); 763 m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
764 m_pEdit->Clear(FALSE, TRUE); 764 m_pEdit->Clear(FALSE, TRUE);
765 } 765 }
766 } 766 }
767 767
768 void CFXEU_Clear::Undo() { 768 void CFXEU_Clear::Undo() {
769 if (m_pEdit) { 769 if (m_pEdit) {
770 m_pEdit->SelectNone(); 770 m_pEdit->SelectNone();
771 m_pEdit->SetCaret(m_wrSel.BeginPos); 771 m_pEdit->SetCaret(m_wrSel.BeginPos);
772 m_pEdit->InsertText(m_swText.c_str(), DEFAULT_CHARSET, nullptr, nullptr, 772 m_pEdit->InsertText(m_swText.c_str(), DEFAULT_CHARSET, FALSE, TRUE);
773 FALSE, TRUE);
774 m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos); 773 m_pEdit->SetSel(m_wrSel.BeginPos, m_wrSel.EndPos);
775 } 774 }
776 } 775 }
777 776
778 CFXEU_InsertText::CFXEU_InsertText(CFX_Edit* pEdit, 777 CFXEU_InsertText::CFXEU_InsertText(CFX_Edit* pEdit,
779 const CPVT_WordPlace& wpOldPlace, 778 const CPVT_WordPlace& wpOldPlace,
780 const CPVT_WordPlace& wpNewPlace, 779 const CPVT_WordPlace& wpNewPlace,
781 const CFX_WideString& swText, 780 const CFX_WideString& swText,
782 int32_t charset, 781 int32_t charset)
783 const CPVT_SecProps* pSecProps,
784 const CPVT_WordProps* pWordProps)
785 : m_pEdit(pEdit), 782 : m_pEdit(pEdit),
786 m_wpOld(wpOldPlace), 783 m_wpOld(wpOldPlace),
787 m_wpNew(wpNewPlace), 784 m_wpNew(wpNewPlace),
788 m_swText(swText), 785 m_swText(swText),
789 m_nCharset(charset), 786 m_nCharset(charset) {}
790 m_SecProps(),
791 m_WordProps() {
792 if (pSecProps)
793 m_SecProps = *pSecProps;
794 if (pWordProps)
795 m_WordProps = *pWordProps;
796 }
797 787
798 CFXEU_InsertText::~CFXEU_InsertText() {} 788 CFXEU_InsertText::~CFXEU_InsertText() {}
799 789
800 void CFXEU_InsertText::Redo() { 790 void CFXEU_InsertText::Redo() {
801 if (m_pEdit && IsLast()) { 791 if (m_pEdit && IsLast()) {
802 m_pEdit->SelectNone(); 792 m_pEdit->SelectNone();
803 m_pEdit->SetCaret(m_wpOld); 793 m_pEdit->SetCaret(m_wpOld);
804 m_pEdit->InsertText(m_swText.c_str(), m_nCharset, &m_SecProps, &m_WordProps, 794 m_pEdit->InsertText(m_swText.c_str(), m_nCharset, FALSE, TRUE);
Lei Zhang 2016/07/13 19:35:15 Can you help convince me this is safe to remove?
dsinclair 2016/07/14 14:16:53 CFXEU_InsertText is created in CFX_Edit::InsertTex
805 FALSE, TRUE);
806 } 795 }
807 } 796 }
808 797
809 void CFXEU_InsertText::Undo() { 798 void CFXEU_InsertText::Undo() {
810 if (m_pEdit) { 799 if (m_pEdit) {
811 m_pEdit->SelectNone(); 800 m_pEdit->SelectNone();
812 m_pEdit->SetSel(m_wpOld, m_wpNew); 801 m_pEdit->SetSel(m_wpOld, m_wpNew);
813 m_pEdit->Clear(FALSE, TRUE); 802 m_pEdit->Clear(FALSE, TRUE);
814 } 803 }
815 } 804 }
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
1496 } 1485 }
1497 1486
1498 CPDF_VariableText* CFX_Edit::GetVariableText() { 1487 CPDF_VariableText* CFX_Edit::GetVariableText() {
1499 return m_pVT.get(); 1488 return m_pVT.get();
1500 } 1489 }
1501 1490
1502 IPVT_FontMap* CFX_Edit::GetFontMap() { 1491 IPVT_FontMap* CFX_Edit::GetFontMap() {
1503 return m_pVTProvider ? m_pVTProvider->GetFontMap() : nullptr; 1492 return m_pVTProvider ? m_pVTProvider->GetFontMap() : nullptr;
1504 } 1493 }
1505 1494
1506 void CFX_Edit::SetPlateRect(const CFX_FloatRect& rect, FX_BOOL bPaint) { 1495 void CFX_Edit::SetPlateRect(const CFX_FloatRect& rect) {
1507 m_pVT->SetPlateRect(rect); 1496 m_pVT->SetPlateRect(rect);
1508 m_ptScrollPos = CFX_FloatPoint(rect.left, rect.top); 1497 m_ptScrollPos = CFX_FloatPoint(rect.left, rect.top);
1509 if (bPaint) 1498 Paint();
1510 Paint();
1511 } 1499 }
1512 1500
1513 void CFX_Edit::SetAlignmentH(int32_t nFormat, FX_BOOL bPaint) { 1501 void CFX_Edit::SetAlignmentH(int32_t nFormat, FX_BOOL bPaint) {
1514 m_pVT->SetAlignment(nFormat); 1502 m_pVT->SetAlignment(nFormat);
1515 if (bPaint) 1503 if (bPaint)
1516 Paint(); 1504 Paint();
1517 } 1505 }
1518 1506
1519 void CFX_Edit::SetAlignmentV(int32_t nFormat, FX_BOOL bPaint) { 1507 void CFX_Edit::SetAlignmentV(int32_t nFormat, FX_BOOL bPaint) {
1520 m_nAlignment = nFormat; 1508 m_nAlignment = nFormat;
1521 if (bPaint) 1509 if (bPaint)
1522 Paint(); 1510 Paint();
1523 } 1511 }
1524 1512
1525 void CFX_Edit::SetPasswordChar(uint16_t wSubWord, FX_BOOL bPaint) { 1513 void CFX_Edit::SetPasswordChar(uint16_t wSubWord, FX_BOOL bPaint) {
1526 m_pVT->SetPasswordChar(wSubWord); 1514 m_pVT->SetPasswordChar(wSubWord);
1527 if (bPaint) 1515 if (bPaint)
1528 Paint(); 1516 Paint();
1529 } 1517 }
1530 1518
1531 void CFX_Edit::SetLimitChar(int32_t nLimitChar, FX_BOOL bPaint) { 1519 void CFX_Edit::SetLimitChar(int32_t nLimitChar) {
1532 m_pVT->SetLimitChar(nLimitChar); 1520 m_pVT->SetLimitChar(nLimitChar);
1533 if (bPaint) 1521 Paint();
1534 Paint();
1535 } 1522 }
1536 1523
1537 void CFX_Edit::SetCharArray(int32_t nCharArray, FX_BOOL bPaint) { 1524 void CFX_Edit::SetCharArray(int32_t nCharArray) {
1538 m_pVT->SetCharArray(nCharArray); 1525 m_pVT->SetCharArray(nCharArray);
1539 if (bPaint) 1526 Paint();
1540 Paint();
1541 } 1527 }
1542 1528
1543 void CFX_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint) { 1529 void CFX_Edit::SetCharSpace(FX_FLOAT fCharSpace) {
1544 m_pVT->SetCharSpace(fCharSpace); 1530 m_pVT->SetCharSpace(fCharSpace);
1545 if (bPaint) 1531 Paint();
1546 Paint();
1547 }
1548
1549 void CFX_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint) {
1550 m_pVT->SetHorzScale(nHorzScale);
1551 if (bPaint)
1552 Paint();
1553 } 1532 }
1554 1533
1555 void CFX_Edit::SetMultiLine(FX_BOOL bMultiLine, FX_BOOL bPaint) { 1534 void CFX_Edit::SetMultiLine(FX_BOOL bMultiLine, FX_BOOL bPaint) {
1556 m_pVT->SetMultiLine(bMultiLine); 1535 m_pVT->SetMultiLine(bMultiLine);
1557 if (bPaint) 1536 if (bPaint)
1558 Paint(); 1537 Paint();
1559 } 1538 }
1560 1539
1561 void CFX_Edit::SetAutoReturn(FX_BOOL bAuto, FX_BOOL bPaint) { 1540 void CFX_Edit::SetAutoReturn(FX_BOOL bAuto, FX_BOOL bPaint) {
1562 m_pVT->SetAutoReturn(bAuto); 1541 m_pVT->SetAutoReturn(bAuto);
1563 if (bPaint) 1542 if (bPaint)
1564 Paint(); 1543 Paint();
1565 } 1544 }
1566 1545
1567 void CFX_Edit::SetLineLeading(FX_FLOAT fLineLeading, FX_BOOL bPaint) {
1568 m_pVT->SetLineLeading(fLineLeading);
1569 if (bPaint)
1570 Paint();
1571 }
1572
1573 void CFX_Edit::SetAutoFontSize(FX_BOOL bAuto, FX_BOOL bPaint) { 1546 void CFX_Edit::SetAutoFontSize(FX_BOOL bAuto, FX_BOOL bPaint) {
1574 m_pVT->SetAutoFontSize(bAuto); 1547 m_pVT->SetAutoFontSize(bAuto);
1575 if (bPaint) 1548 if (bPaint)
1576 Paint(); 1549 Paint();
1577 } 1550 }
1578 1551
1579 void CFX_Edit::SetFontSize(FX_FLOAT fFontSize, FX_BOOL bPaint) { 1552 void CFX_Edit::SetFontSize(FX_FLOAT fFontSize) {
1580 m_pVT->SetFontSize(fFontSize); 1553 m_pVT->SetFontSize(fFontSize);
1581 if (bPaint) 1554 Paint();
1582 Paint();
1583 } 1555 }
1584 1556
1585 void CFX_Edit::SetAutoScroll(FX_BOOL bAuto, FX_BOOL bPaint) { 1557 void CFX_Edit::SetAutoScroll(FX_BOOL bAuto, FX_BOOL bPaint) {
1586 m_bEnableScroll = bAuto; 1558 m_bEnableScroll = bAuto;
1587 if (bPaint) 1559 if (bPaint)
1588 Paint(); 1560 Paint();
1589 } 1561 }
1590 1562
1591 void CFX_Edit::SetTextOverflow(FX_BOOL bAllowed, FX_BOOL bPaint) { 1563 void CFX_Edit::SetTextOverflow(FX_BOOL bAllowed, FX_BOOL bPaint) {
1592 m_bEnableOverflow = bAllowed; 1564 m_bEnableOverflow = bAllowed;
(...skipping 22 matching lines...) Expand all
1615 void CFX_Edit::SetSel(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) { 1587 void CFX_Edit::SetSel(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) {
1616 if (m_pVT->IsValid()) { 1588 if (m_pVT->IsValid()) {
1617 SelectNone(); 1589 SelectNone();
1618 1590
1619 m_SelState.Set(begin, end); 1591 m_SelState.Set(begin, end);
1620 1592
1621 SetCaret(m_SelState.EndPos); 1593 SetCaret(m_SelState.EndPos);
1622 1594
1623 if (m_SelState.IsExist()) { 1595 if (m_SelState.IsExist()) {
1624 ScrollToCaret(); 1596 ScrollToCaret();
1625 CPVT_WordRange wr(m_SelState.BeginPos, m_SelState.EndPos); 1597 Refresh();
1626 Refresh(RP_OPTIONAL, &wr);
1627 SetCaretInfo(); 1598 SetCaretInfo();
1628 } else { 1599 } else {
1629 ScrollToCaret(); 1600 ScrollToCaret();
1630 SetCaretInfo(); 1601 SetCaretInfo();
1631 } 1602 }
1632 } 1603 }
1633 } 1604 }
1634 1605
1635 void CFX_Edit::GetSel(int32_t& nStartChar, int32_t& nEndChar) const { 1606 void CFX_Edit::GetSel(int32_t& nStartChar, int32_t& nEndChar) const {
1636 nStartChar = -1; 1607 nStartChar = -1;
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1755 1726
1756 if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) { 1727 if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) {
1757 wrRet.EndPos = wr2.EndPos; 1728 wrRet.EndPos = wr2.EndPos;
1758 } else { 1729 } else {
1759 wrRet.EndPos = wr1.EndPos; 1730 wrRet.EndPos = wr1.EndPos;
1760 } 1731 }
1761 1732
1762 return wrRet; 1733 return wrRet;
1763 } 1734 }
1764 1735
1765 void CFX_Edit::SetText(const FX_WCHAR* text, 1736 void CFX_Edit::SetText(const FX_WCHAR* text) {
1766 int32_t charset, 1737 Empty();
1767 const CPVT_SecProps* pSecProps, 1738 DoInsertText(CPVT_WordPlace(0, 0, -1), text, DEFAULT_CHARSET);
1768 const CPVT_WordProps* pWordProps) { 1739 Paint();
1769 SetText(text, charset, pSecProps, pWordProps, TRUE, TRUE);
1770 } 1740 }
1771 1741
1772 FX_BOOL CFX_Edit::InsertWord(uint16_t word, 1742 FX_BOOL CFX_Edit::InsertWord(uint16_t word, int32_t charset) {
1773 int32_t charset, 1743 return InsertWord(word, charset, nullptr, TRUE, TRUE);
1774 const CPVT_WordProps* pWordProps) {
1775 return InsertWord(word, charset, pWordProps, TRUE, TRUE);
1776 } 1744 }
1777 1745
1778 FX_BOOL CFX_Edit::InsertReturn(const CPVT_SecProps* pSecProps, 1746 FX_BOOL CFX_Edit::InsertReturn() {
1779 const CPVT_WordProps* pWordProps) { 1747 return InsertReturn(nullptr, nullptr, TRUE, TRUE);
1780 return InsertReturn(pSecProps, pWordProps, TRUE, TRUE);
1781 } 1748 }
1782 1749
1783 FX_BOOL CFX_Edit::Backspace() { 1750 FX_BOOL CFX_Edit::Backspace() {
1784 return Backspace(TRUE, TRUE); 1751 return Backspace(TRUE, TRUE);
1785 } 1752 }
1786 1753
1787 FX_BOOL CFX_Edit::Delete() { 1754 FX_BOOL CFX_Edit::Delete() {
1788 return Delete(TRUE, TRUE); 1755 return Delete(TRUE, TRUE);
1789 } 1756 }
1790 1757
1791 FX_BOOL CFX_Edit::Clear() { 1758 FX_BOOL CFX_Edit::Clear() {
1792 return Clear(TRUE, TRUE); 1759 return Clear(TRUE, TRUE);
1793 } 1760 }
1794 1761
1795 FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text, 1762 FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text, int32_t charset) {
1796 int32_t charset, 1763 return InsertText(text, charset, TRUE, TRUE);
1797 const CPVT_SecProps* pSecProps,
1798 const CPVT_WordProps* pWordProps) {
1799 return InsertText(text, charset, pSecProps, pWordProps, TRUE, TRUE);
1800 } 1764 }
1801 1765
1802 FX_FLOAT CFX_Edit::GetFontSize() const { 1766 FX_FLOAT CFX_Edit::GetFontSize() const {
1803 return m_pVT->GetFontSize(); 1767 return m_pVT->GetFontSize();
1804 } 1768 }
1805 1769
1806 uint16_t CFX_Edit::GetPasswordChar() const { 1770 uint16_t CFX_Edit::GetPasswordChar() const {
1807 return m_pVT->GetPasswordChar(); 1771 return m_pVT->GetPasswordChar();
1808 } 1772 }
1809 1773
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1857 return m_pVT->SearchWordPlace(EditToVT(point)); 1821 return m_pVT->SearchWordPlace(EditToVT(point));
1858 } 1822 }
1859 1823
1860 return CPVT_WordPlace(); 1824 return CPVT_WordPlace();
1861 } 1825 }
1862 1826
1863 void CFX_Edit::Paint() { 1827 void CFX_Edit::Paint() {
1864 if (m_pVT->IsValid()) { 1828 if (m_pVT->IsValid()) {
1865 RearrangeAll(); 1829 RearrangeAll();
1866 ScrollToCaret(); 1830 ScrollToCaret();
1867 Refresh(RP_NOANALYSE); 1831 Refresh();
1868 SetCaretOrigin(); 1832 SetCaretOrigin();
1869 SetCaretInfo(); 1833 SetCaretInfo();
1870 } 1834 }
1871 } 1835 }
1872 1836
1873 void CFX_Edit::RearrangeAll() { 1837 void CFX_Edit::RearrangeAll() {
1874 if (m_pVT->IsValid()) { 1838 if (m_pVT->IsValid()) {
1875 m_pVT->UpdateWordPlace(m_wpCaret); 1839 m_pVT->UpdateWordPlace(m_wpCaret);
1876 m_pVT->RearrangeAll(); 1840 m_pVT->RearrangeAll();
1877 m_pVT->UpdateWordPlace(m_wpCaret); 1841 m_pVT->UpdateWordPlace(m_wpCaret);
(...skipping 26 matching lines...) Expand all
1904 } 1868 }
1905 } 1869 }
1906 } 1870 }
1907 1871
1908 void CFX_Edit::SelectAll() { 1872 void CFX_Edit::SelectAll() {
1909 if (m_pVT->IsValid()) { 1873 if (m_pVT->IsValid()) {
1910 m_SelState = CFX_Edit_Select(GetWholeWordRange()); 1874 m_SelState = CFX_Edit_Select(GetWholeWordRange());
1911 SetCaret(m_SelState.EndPos); 1875 SetCaret(m_SelState.EndPos);
1912 1876
1913 ScrollToCaret(); 1877 ScrollToCaret();
1914 CPVT_WordRange wrVisible = GetVisibleWordRange(); 1878 Refresh();
1915 Refresh(RP_OPTIONAL, &wrVisible);
1916 SetCaretInfo(); 1879 SetCaretInfo();
1917 } 1880 }
1918 } 1881 }
1919 1882
1920 void CFX_Edit::SelectNone() { 1883 void CFX_Edit::SelectNone() {
1921 if (m_pVT->IsValid()) { 1884 if (m_pVT->IsValid()) {
1922 if (m_SelState.IsExist()) { 1885 if (m_SelState.IsExist()) {
1923 CPVT_WordRange wrTemp = m_SelState.ConvertToWordRange();
1924 m_SelState.Default(); 1886 m_SelState.Default();
1925 Refresh(RP_OPTIONAL, &wrTemp); 1887 Refresh();
1926 } 1888 }
1927 } 1889 }
1928 } 1890 }
1929 1891
1930 FX_BOOL CFX_Edit::IsSelected() const { 1892 FX_BOOL CFX_Edit::IsSelected() const {
1931 return m_SelState.IsExist(); 1893 return m_SelState.IsExist();
1932 } 1894 }
1933 1895
1934 CFX_FloatPoint CFX_Edit::VTToEdit(const CFX_FloatPoint& point) const { 1896 CFX_FloatPoint CFX_Edit::VTToEdit(const CFX_FloatPoint& point) const {
1935 CFX_FloatRect rcContent = m_pVT->GetContentRect(); 1897 CFX_FloatRect rcContent = m_pVT->GetContentRect();
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2008 } 1970 }
2009 } 1971 }
2010 1972
2011 void CFX_Edit::SetScrollPosX(FX_FLOAT fx) { 1973 void CFX_Edit::SetScrollPosX(FX_FLOAT fx) {
2012 if (!m_bEnableScroll) 1974 if (!m_bEnableScroll)
2013 return; 1975 return;
2014 1976
2015 if (m_pVT->IsValid()) { 1977 if (m_pVT->IsValid()) {
2016 if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.x, fx)) { 1978 if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.x, fx)) {
2017 m_ptScrollPos.x = fx; 1979 m_ptScrollPos.x = fx;
2018 Refresh(RP_NOANALYSE); 1980 Refresh();
2019 } 1981 }
2020 } 1982 }
2021 } 1983 }
2022 1984
2023 void CFX_Edit::SetScrollPosY(FX_FLOAT fy) { 1985 void CFX_Edit::SetScrollPosY(FX_FLOAT fy) {
2024 if (!m_bEnableScroll) 1986 if (!m_bEnableScroll)
2025 return; 1987 return;
2026 1988
2027 if (m_pVT->IsValid()) { 1989 if (m_pVT->IsValid()) {
2028 if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y, fy)) { 1990 if (!FX_EDIT_IsFloatEqual(m_ptScrollPos.y, fy)) {
2029 m_ptScrollPos.y = fy; 1991 m_ptScrollPos.y = fy;
2030 Refresh(RP_NOANALYSE); 1992 Refresh();
2031 1993
2032 if (m_pNotify) { 1994 if (m_pNotify) {
2033 if (!m_bNotifyFlag) { 1995 if (!m_bNotifyFlag) {
2034 m_bNotifyFlag = TRUE; 1996 m_bNotifyFlag = TRUE;
2035 m_pNotify->IOnSetScrollPosY(fy); 1997 m_pNotify->IOnSetScrollPosY(fy);
2036 m_bNotifyFlag = FALSE; 1998 m_bNotifyFlag = FALSE;
2037 } 1999 }
2038 } 2000 }
2039 } 2001 }
2040 } 2002 }
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2127 SetScrollPosY(ptFoot.y + rcPlate.Height()); 2089 SetScrollPosY(ptFoot.y + rcPlate.Height());
2128 } 2090 }
2129 } else if (FX_EDIT_IsFloatBigger(ptHeadEdit.y, rcPlate.top)) { 2091 } else if (FX_EDIT_IsFloatBigger(ptHeadEdit.y, rcPlate.top)) {
2130 if (FX_EDIT_IsFloatBigger(ptFootEdit.y, rcPlate.bottom)) { 2092 if (FX_EDIT_IsFloatBigger(ptFootEdit.y, rcPlate.bottom)) {
2131 SetScrollPosY(ptHead.y); 2093 SetScrollPosY(ptHead.y);
2132 } 2094 }
2133 } 2095 }
2134 } 2096 }
2135 } 2097 }
2136 2098
2137 void CFX_Edit::Refresh(REFRESH_PLAN_E ePlan, 2099 void CFX_Edit::Refresh() {
2138 const CPVT_WordRange* pRange1,
2139 const CPVT_WordRange* pRange2) {
2140 if (m_bEnableRefresh && m_pVT->IsValid()) { 2100 if (m_bEnableRefresh && m_pVT->IsValid()) {
2141 m_Refresh.BeginRefresh(); 2101 m_Refresh.BeginRefresh();
2142 RefreshPushLineRects(GetVisibleWordRange()); 2102 RefreshPushLineRects(GetVisibleWordRange());
2143 2103
2144 m_Refresh.NoAnalyse(); 2104 m_Refresh.NoAnalyse();
2145 m_ptRefreshScrollPos = m_ptScrollPos; 2105 m_ptRefreshScrollPos = m_ptScrollPos;
2146 2106
2147 if (m_pNotify) { 2107 if (m_pNotify) {
2148 if (!m_bNotifyFlag) { 2108 if (!m_bNotifyFlag) {
2149 m_bNotifyFlag = TRUE; 2109 m_bNotifyFlag = TRUE;
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
2349 void CFX_Edit::OnMouseMove(const CFX_FloatPoint& point, 2309 void CFX_Edit::OnMouseMove(const CFX_FloatPoint& point,
2350 FX_BOOL bShift, 2310 FX_BOOL bShift,
2351 FX_BOOL bCtrl) { 2311 FX_BOOL bCtrl) {
2352 if (m_pVT->IsValid()) { 2312 if (m_pVT->IsValid()) {
2353 SetCaret(m_pVT->SearchWordPlace(EditToVT(point))); 2313 SetCaret(m_pVT->SearchWordPlace(EditToVT(point)));
2354 2314
2355 if (m_wpCaret != m_wpOldCaret) { 2315 if (m_wpCaret != m_wpOldCaret) {
2356 m_SelState.SetEndPos(m_wpCaret); 2316 m_SelState.SetEndPos(m_wpCaret);
2357 2317
2358 ScrollToCaret(); 2318 ScrollToCaret();
2359 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2319 Refresh();
2360 Refresh(RP_OPTIONAL, &wr);
2361 SetCaretOrigin(); 2320 SetCaretOrigin();
2362 SetCaretInfo(); 2321 SetCaretInfo();
2363 } 2322 }
2364 } 2323 }
2365 } 2324 }
2366 2325
2367 void CFX_Edit::OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) { 2326 void CFX_Edit::OnVK_UP(FX_BOOL bShift, FX_BOOL bCtrl) {
2368 if (m_pVT->IsValid()) { 2327 if (m_pVT->IsValid()) {
2369 SetCaret(m_pVT->GetUpWordPlace(m_wpCaret, m_ptCaret)); 2328 SetCaret(m_pVT->GetUpWordPlace(m_wpCaret, m_ptCaret));
2370 2329
2371 if (bShift) { 2330 if (bShift) {
2372 if (m_SelState.IsExist()) 2331 if (m_SelState.IsExist())
2373 m_SelState.SetEndPos(m_wpCaret); 2332 m_SelState.SetEndPos(m_wpCaret);
2374 else 2333 else
2375 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2334 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2376 2335
2377 if (m_wpOldCaret != m_wpCaret) { 2336 if (m_wpOldCaret != m_wpCaret) {
2378 ScrollToCaret(); 2337 ScrollToCaret();
2379 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2338 Refresh();
2380 Refresh(RP_OPTIONAL, &wr);
2381 SetCaretInfo(); 2339 SetCaretInfo();
2382 } 2340 }
2383 } else { 2341 } else {
2384 SelectNone(); 2342 SelectNone();
2385 2343
2386 ScrollToCaret(); 2344 ScrollToCaret();
2387 SetCaretInfo(); 2345 SetCaretInfo();
2388 } 2346 }
2389 } 2347 }
2390 } 2348 }
2391 2349
2392 void CFX_Edit::OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) { 2350 void CFX_Edit::OnVK_DOWN(FX_BOOL bShift, FX_BOOL bCtrl) {
2393 if (m_pVT->IsValid()) { 2351 if (m_pVT->IsValid()) {
2394 SetCaret(m_pVT->GetDownWordPlace(m_wpCaret, m_ptCaret)); 2352 SetCaret(m_pVT->GetDownWordPlace(m_wpCaret, m_ptCaret));
2395 2353
2396 if (bShift) { 2354 if (bShift) {
2397 if (m_SelState.IsExist()) 2355 if (m_SelState.IsExist())
2398 m_SelState.SetEndPos(m_wpCaret); 2356 m_SelState.SetEndPos(m_wpCaret);
2399 else 2357 else
2400 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2358 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2401 2359
2402 if (m_wpOldCaret != m_wpCaret) { 2360 if (m_wpOldCaret != m_wpCaret) {
2403 ScrollToCaret(); 2361 ScrollToCaret();
2404 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2362 Refresh();
2405 Refresh(RP_OPTIONAL, &wr);
2406 SetCaretInfo(); 2363 SetCaretInfo();
2407 } 2364 }
2408 } else { 2365 } else {
2409 SelectNone(); 2366 SelectNone();
2410 2367
2411 ScrollToCaret(); 2368 ScrollToCaret();
2412 SetCaretInfo(); 2369 SetCaretInfo();
2413 } 2370 }
2414 } 2371 }
2415 } 2372 }
2416 2373
2417 void CFX_Edit::OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) { 2374 void CFX_Edit::OnVK_LEFT(FX_BOOL bShift, FX_BOOL bCtrl) {
2418 if (m_pVT->IsValid()) { 2375 if (m_pVT->IsValid()) {
2419 if (bShift) { 2376 if (bShift) {
2420 if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) && 2377 if (m_wpCaret == m_pVT->GetLineBeginPlace(m_wpCaret) &&
2421 m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret)) 2378 m_wpCaret != m_pVT->GetSectionBeginPlace(m_wpCaret))
2422 SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret)); 2379 SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
2423 2380
2424 SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret)); 2381 SetCaret(m_pVT->GetPrevWordPlace(m_wpCaret));
2425 2382
2426 if (m_SelState.IsExist()) 2383 if (m_SelState.IsExist())
2427 m_SelState.SetEndPos(m_wpCaret); 2384 m_SelState.SetEndPos(m_wpCaret);
2428 else 2385 else
2429 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2386 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2430 2387
2431 if (m_wpOldCaret != m_wpCaret) { 2388 if (m_wpOldCaret != m_wpCaret) {
2432 ScrollToCaret(); 2389 ScrollToCaret();
2433 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2390 Refresh();
2434 Refresh(RP_OPTIONAL, &wr);
2435 SetCaretInfo(); 2391 SetCaretInfo();
2436 } 2392 }
2437 } else { 2393 } else {
2438 if (m_SelState.IsExist()) { 2394 if (m_SelState.IsExist()) {
2439 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0) 2395 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0)
2440 SetCaret(m_SelState.BeginPos); 2396 SetCaret(m_SelState.BeginPos);
2441 else 2397 else
2442 SetCaret(m_SelState.EndPos); 2398 SetCaret(m_SelState.EndPos);
2443 2399
2444 SelectNone(); 2400 SelectNone();
(...skipping 23 matching lines...) Expand all
2468 m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret)) 2424 m_wpCaret != m_pVT->GetSectionEndPlace(m_wpCaret))
2469 SetCaret(m_pVT->GetNextWordPlace(m_wpCaret)); 2425 SetCaret(m_pVT->GetNextWordPlace(m_wpCaret));
2470 2426
2471 if (m_SelState.IsExist()) 2427 if (m_SelState.IsExist())
2472 m_SelState.SetEndPos(m_wpCaret); 2428 m_SelState.SetEndPos(m_wpCaret);
2473 else 2429 else
2474 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2430 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2475 2431
2476 if (m_wpOldCaret != m_wpCaret) { 2432 if (m_wpOldCaret != m_wpCaret) {
2477 ScrollToCaret(); 2433 ScrollToCaret();
2478 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2434 Refresh();
2479 Refresh(RP_OPTIONAL, &wr);
2480 SetCaretInfo(); 2435 SetCaretInfo();
2481 } 2436 }
2482 } else { 2437 } else {
2483 if (m_SelState.IsExist()) { 2438 if (m_SelState.IsExist()) {
2484 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0) 2439 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0)
2485 SetCaret(m_SelState.BeginPos); 2440 SetCaret(m_SelState.BeginPos);
2486 else 2441 else
2487 SetCaret(m_SelState.EndPos); 2442 SetCaret(m_SelState.EndPos);
2488 2443
2489 SelectNone(); 2444 SelectNone();
(...skipping 21 matching lines...) Expand all
2511 SetCaret(m_pVT->GetBeginWordPlace()); 2466 SetCaret(m_pVT->GetBeginWordPlace());
2512 else 2467 else
2513 SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret)); 2468 SetCaret(m_pVT->GetLineBeginPlace(m_wpCaret));
2514 2469
2515 if (m_SelState.IsExist()) 2470 if (m_SelState.IsExist())
2516 m_SelState.SetEndPos(m_wpCaret); 2471 m_SelState.SetEndPos(m_wpCaret);
2517 else 2472 else
2518 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2473 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2519 2474
2520 ScrollToCaret(); 2475 ScrollToCaret();
2521 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2476 Refresh();
2522 Refresh(RP_OPTIONAL, &wr);
2523 SetCaretInfo(); 2477 SetCaretInfo();
2524 } else { 2478 } else {
2525 if (m_SelState.IsExist()) { 2479 if (m_SelState.IsExist()) {
2526 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0) 2480 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) < 0)
2527 SetCaret(m_SelState.BeginPos); 2481 SetCaret(m_SelState.BeginPos);
2528 else 2482 else
2529 SetCaret(m_SelState.EndPos); 2483 SetCaret(m_SelState.EndPos);
2530 2484
2531 SelectNone(); 2485 SelectNone();
2532 ScrollToCaret(); 2486 ScrollToCaret();
(...skipping 19 matching lines...) Expand all
2552 SetCaret(m_pVT->GetEndWordPlace()); 2506 SetCaret(m_pVT->GetEndWordPlace());
2553 else 2507 else
2554 SetCaret(m_pVT->GetLineEndPlace(m_wpCaret)); 2508 SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
2555 2509
2556 if (m_SelState.IsExist()) 2510 if (m_SelState.IsExist())
2557 m_SelState.SetEndPos(m_wpCaret); 2511 m_SelState.SetEndPos(m_wpCaret);
2558 else 2512 else
2559 m_SelState.Set(m_wpOldCaret, m_wpCaret); 2513 m_SelState.Set(m_wpOldCaret, m_wpCaret);
2560 2514
2561 ScrollToCaret(); 2515 ScrollToCaret();
2562 CPVT_WordRange wr(m_wpOldCaret, m_wpCaret); 2516 Refresh();
2563 Refresh(RP_OPTIONAL, &wr);
2564 SetCaretInfo(); 2517 SetCaretInfo();
2565 } else { 2518 } else {
2566 if (m_SelState.IsExist()) { 2519 if (m_SelState.IsExist()) {
2567 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0) 2520 if (m_SelState.BeginPos.WordCmp(m_SelState.EndPos) > 0)
2568 SetCaret(m_SelState.BeginPos); 2521 SetCaret(m_SelState.BeginPos);
2569 else 2522 else
2570 SetCaret(m_SelState.EndPos); 2523 SetCaret(m_SelState.EndPos);
2571 2524
2572 SelectNone(); 2525 SelectNone();
2573 ScrollToCaret(); 2526 ScrollToCaret();
2574 SetCaretInfo(); 2527 SetCaretInfo();
2575 } else { 2528 } else {
2576 if (bCtrl) 2529 if (bCtrl)
2577 SetCaret(m_pVT->GetEndWordPlace()); 2530 SetCaret(m_pVT->GetEndWordPlace());
2578 else 2531 else
2579 SetCaret(m_pVT->GetLineEndPlace(m_wpCaret)); 2532 SetCaret(m_pVT->GetLineEndPlace(m_wpCaret));
2580 2533
2581 ScrollToCaret(); 2534 ScrollToCaret();
2582 SetCaretOrigin(); 2535 SetCaretOrigin();
2583 SetCaretInfo(); 2536 SetCaretInfo();
2584 } 2537 }
2585 } 2538 }
2586 } 2539 }
2587 } 2540 }
2588 2541
2589 void CFX_Edit::SetText(const FX_WCHAR* text,
2590 int32_t charset,
2591 const CPVT_SecProps* pSecProps,
2592 const CPVT_WordProps* pWordProps,
2593 FX_BOOL bAddUndo,
2594 FX_BOOL bPaint) {
2595 Empty();
2596 DoInsertText(CPVT_WordPlace(0, 0, -1), text, charset, pSecProps, pWordProps);
2597 if (bPaint)
2598 Paint();
2599 }
2600
2601 FX_BOOL CFX_Edit::InsertWord(uint16_t word, 2542 FX_BOOL CFX_Edit::InsertWord(uint16_t word,
2602 int32_t charset, 2543 int32_t charset,
2603 const CPVT_WordProps* pWordProps, 2544 const CPVT_WordProps* pWordProps,
2604 FX_BOOL bAddUndo, 2545 FX_BOOL bAddUndo,
2605 FX_BOOL bPaint) { 2546 FX_BOOL bPaint) {
2606 if (IsTextOverflow()) 2547 if (IsTextOverflow())
2607 return FALSE; 2548 return FALSE;
2608 2549
2609 if (m_pVT->IsValid()) { 2550 if (m_pVT->IsValid()) {
2610 m_pVT->UpdateWordPlace(m_wpCaret); 2551 m_pVT->UpdateWordPlace(m_wpCaret);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2646 2587
2647 if (m_wpCaret != m_wpOldCaret) { 2588 if (m_wpCaret != m_wpOldCaret) {
2648 if (bAddUndo && m_bEnableUndo) { 2589 if (bAddUndo && m_bEnableUndo) {
2649 AddEditUndoItem(new CFXEU_InsertReturn(this, m_wpOldCaret, m_wpCaret, 2590 AddEditUndoItem(new CFXEU_InsertReturn(this, m_wpOldCaret, m_wpCaret,
2650 pSecProps, pWordProps)); 2591 pSecProps, pWordProps));
2651 } 2592 }
2652 2593
2653 if (bPaint) { 2594 if (bPaint) {
2654 RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret)); 2595 RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret));
2655 ScrollToCaret(); 2596 ScrollToCaret();
2656 CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos); 2597 Refresh();
2657 Refresh(RP_ANALYSE, &wr);
2658 SetCaretOrigin(); 2598 SetCaretOrigin();
2659 SetCaretInfo(); 2599 SetCaretInfo();
2660 } 2600 }
2661 2601
2662 if (m_bOprNotify && m_pOprNotify) 2602 if (m_bOprNotify && m_pOprNotify)
2663 m_pOprNotify->OnInsertReturn(m_wpCaret, m_wpOldCaret); 2603 m_pOprNotify->OnInsertReturn(m_wpCaret, m_wpOldCaret);
2664 2604
2665 return TRUE; 2605 return TRUE;
2666 } 2606 }
2667 } 2607 }
(...skipping 28 matching lines...) Expand all
2696 section.SecProps, section.WordProps)); 2636 section.SecProps, section.WordProps));
2697 else 2637 else
2698 AddEditUndoItem(new CFXEU_Backspace( 2638 AddEditUndoItem(new CFXEU_Backspace(
2699 this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset, 2639 this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
2700 section.SecProps, word.WordProps)); 2640 section.SecProps, word.WordProps));
2701 } 2641 }
2702 2642
2703 if (bPaint) { 2643 if (bPaint) {
2704 RearrangePart(CPVT_WordRange(m_wpCaret, m_wpOldCaret)); 2644 RearrangePart(CPVT_WordRange(m_wpCaret, m_wpOldCaret));
2705 ScrollToCaret(); 2645 ScrollToCaret();
2706 2646 Refresh();
2707 CPVT_WordRange wr;
2708 if (m_wpCaret.SecCmp(m_wpOldCaret) != 0)
2709 wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),
2710 GetVisibleWordRange().EndPos);
2711 else if (m_wpCaret.LineCmp(m_wpOldCaret) != 0)
2712 wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),
2713 m_pVT->GetSectionEndPlace(m_wpCaret));
2714 else
2715 wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpCaret),
2716 m_pVT->GetSectionEndPlace(m_wpCaret));
2717
2718 Refresh(RP_ANALYSE, &wr);
2719
2720 SetCaretOrigin(); 2647 SetCaretOrigin();
2721 SetCaretInfo(); 2648 SetCaretInfo();
2722 } 2649 }
2723 2650
2724 if (m_bOprNotify && m_pOprNotify) 2651 if (m_bOprNotify && m_pOprNotify)
2725 m_pOprNotify->OnBackSpace(m_wpCaret, m_wpOldCaret); 2652 m_pOprNotify->OnBackSpace(m_wpCaret, m_wpOldCaret);
2726 2653
2727 return TRUE; 2654 return TRUE;
2728 } 2655 }
2729 } 2656 }
(...skipping 29 matching lines...) Expand all
2759 section.SecProps, section.WordProps, bSecEnd)); 2686 section.SecProps, section.WordProps, bSecEnd));
2760 else 2687 else
2761 AddEditUndoItem(new CFXEU_Delete( 2688 AddEditUndoItem(new CFXEU_Delete(
2762 this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset, 2689 this, m_wpOldCaret, m_wpCaret, word.Word, word.nCharset,
2763 section.SecProps, word.WordProps, bSecEnd)); 2690 section.SecProps, word.WordProps, bSecEnd));
2764 } 2691 }
2765 2692
2766 if (bPaint) { 2693 if (bPaint) {
2767 RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret)); 2694 RearrangePart(CPVT_WordRange(m_wpOldCaret, m_wpCaret));
2768 ScrollToCaret(); 2695 ScrollToCaret();
2769 2696 Refresh();
2770 CPVT_WordRange wr;
2771 if (bSecEnd)
2772 wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),
2773 GetVisibleWordRange().EndPos);
2774 else if (m_wpCaret.LineCmp(m_wpOldCaret) != 0)
2775 wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(m_wpCaret),
2776 m_pVT->GetSectionEndPlace(m_wpCaret));
2777 else
2778 wr = CPVT_WordRange(m_pVT->GetPrevWordPlace(m_wpOldCaret),
2779 m_pVT->GetSectionEndPlace(m_wpCaret));
2780
2781 Refresh(RP_ANALYSE, &wr);
2782
2783 SetCaretOrigin(); 2697 SetCaretOrigin();
2784 SetCaretInfo(); 2698 SetCaretInfo();
2785 } 2699 }
2786 2700
2787 if (m_bOprNotify && m_pOprNotify) 2701 if (m_bOprNotify && m_pOprNotify)
2788 m_pOprNotify->OnDelete(m_wpCaret, m_wpOldCaret); 2702 m_pOprNotify->OnDelete(m_wpCaret, m_wpOldCaret);
2789 2703
2790 return TRUE; 2704 return TRUE;
2791 } 2705 }
2792 2706
(...skipping 23 matching lines...) Expand all
2816 if (bAddUndo && m_bEnableUndo) 2730 if (bAddUndo && m_bEnableUndo)
2817 AddEditUndoItem(new CFXEU_Clear(this, range, GetSelText())); 2731 AddEditUndoItem(new CFXEU_Clear(this, range, GetSelText()));
2818 2732
2819 SelectNone(); 2733 SelectNone();
2820 SetCaret(m_pVT->DeleteWords(range)); 2734 SetCaret(m_pVT->DeleteWords(range));
2821 m_SelState.Set(m_wpCaret, m_wpCaret); 2735 m_SelState.Set(m_wpCaret, m_wpCaret);
2822 2736
2823 if (bPaint) { 2737 if (bPaint) {
2824 RearrangePart(range); 2738 RearrangePart(range);
2825 ScrollToCaret(); 2739 ScrollToCaret();
2826 2740 Refresh();
2827 CPVT_WordRange wr(m_wpOldCaret, GetVisibleWordRange().EndPos);
2828 Refresh(RP_ANALYSE, &wr);
2829
2830 SetCaretOrigin(); 2741 SetCaretOrigin();
2831 SetCaretInfo(); 2742 SetCaretInfo();
2832 } 2743 }
2833 2744
2834 if (m_bOprNotify && m_pOprNotify) 2745 if (m_bOprNotify && m_pOprNotify)
2835 m_pOprNotify->OnClear(m_wpCaret, m_wpOldCaret); 2746 m_pOprNotify->OnClear(m_wpCaret, m_wpOldCaret);
2836 2747
2837 return TRUE; 2748 return TRUE;
2838 } 2749 }
2839 2750
2840 FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text, 2751 FX_BOOL CFX_Edit::InsertText(const FX_WCHAR* text,
2841 int32_t charset, 2752 int32_t charset,
2842 const CPVT_SecProps* pSecProps,
2843 const CPVT_WordProps* pWordProps,
2844 FX_BOOL bAddUndo, 2753 FX_BOOL bAddUndo,
2845 FX_BOOL bPaint) { 2754 FX_BOOL bPaint) {
2846 if (IsTextOverflow()) 2755 if (IsTextOverflow())
2847 return FALSE; 2756 return FALSE;
2848 2757
2849 m_pVT->UpdateWordPlace(m_wpCaret); 2758 m_pVT->UpdateWordPlace(m_wpCaret);
2850 SetCaret(DoInsertText(m_wpCaret, text, charset, pSecProps, pWordProps)); 2759 SetCaret(DoInsertText(m_wpCaret, text, charset));
2851 m_SelState.Set(m_wpCaret, m_wpCaret); 2760 m_SelState.Set(m_wpCaret, m_wpCaret);
2852 2761
2853 if (m_wpCaret != m_wpOldCaret) { 2762 if (m_wpCaret != m_wpOldCaret) {
2854 if (bAddUndo && m_bEnableUndo) { 2763 if (bAddUndo && m_bEnableUndo) {
2855 AddEditUndoItem(new CFXEU_InsertText(this, m_wpOldCaret, m_wpCaret, text, 2764 AddEditUndoItem(
2856 charset, pSecProps, pWordProps)); 2765 new CFXEU_InsertText(this, m_wpOldCaret, m_wpCaret, text, charset));
2857 } 2766 }
2858 2767
2859 if (bPaint) 2768 if (bPaint)
2860 PaintInsertText(m_wpOldCaret, m_wpCaret); 2769 PaintInsertText(m_wpOldCaret, m_wpCaret);
2861 2770
2862 if (m_bOprNotify && m_pOprNotify) 2771 if (m_bOprNotify && m_pOprNotify)
2863 m_pOprNotify->OnInsertText(m_wpCaret, m_wpOldCaret); 2772 m_pOprNotify->OnInsertText(m_wpCaret, m_wpOldCaret);
2864 2773
2865 return TRUE; 2774 return TRUE;
2866 } 2775 }
2867 return FALSE; 2776 return FALSE;
2868 } 2777 }
2869 2778
2870 void CFX_Edit::PaintInsertText(const CPVT_WordPlace& wpOld, 2779 void CFX_Edit::PaintInsertText(const CPVT_WordPlace& wpOld,
2871 const CPVT_WordPlace& wpNew) { 2780 const CPVT_WordPlace& wpNew) {
2872 if (m_pVT->IsValid()) { 2781 if (m_pVT->IsValid()) {
2873 RearrangePart(CPVT_WordRange(wpOld, wpNew)); 2782 RearrangePart(CPVT_WordRange(wpOld, wpNew));
2874 ScrollToCaret(); 2783 ScrollToCaret();
2875 2784 Refresh();
2876 CPVT_WordRange wr;
2877 if (m_wpCaret.LineCmp(wpOld) != 0)
2878 wr = CPVT_WordRange(m_pVT->GetLineBeginPlace(wpOld),
2879 m_pVT->GetSectionEndPlace(wpNew));
2880 else
2881 wr = CPVT_WordRange(wpOld, m_pVT->GetSectionEndPlace(wpNew));
2882 Refresh(RP_ANALYSE, &wr);
2883 SetCaretOrigin(); 2785 SetCaretOrigin();
2884 SetCaretInfo(); 2786 SetCaretInfo();
2885 } 2787 }
2886 } 2788 }
2887 2789
2888 FX_BOOL CFX_Edit::Redo() { 2790 FX_BOOL CFX_Edit::Redo() {
2889 if (m_bEnableUndo) { 2791 if (m_bEnableUndo) {
2890 if (m_Undo.CanRedo()) { 2792 if (m_Undo.CanRedo()) {
2891 m_Undo.Redo(); 2793 m_Undo.Redo();
2892 return TRUE; 2794 return TRUE;
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
3038 CPVT_Line line; 2940 CPVT_Line line;
3039 pIterator->GetLine(line); 2941 pIterator->GetLine(line);
3040 2942
3041 pIterator->SetAt(wpOld); 2943 pIterator->SetAt(wpOld);
3042 2944
3043 return line.ptLine.y + line.fLineDescent; 2945 return line.ptLine.y + line.fLineDescent;
3044 } 2946 }
3045 2947
3046 CPVT_WordPlace CFX_Edit::DoInsertText(const CPVT_WordPlace& place, 2948 CPVT_WordPlace CFX_Edit::DoInsertText(const CPVT_WordPlace& place,
3047 const FX_WCHAR* text, 2949 const FX_WCHAR* text,
3048 int32_t charset, 2950 int32_t charset) {
3049 const CPVT_SecProps* pSecProps,
3050 const CPVT_WordProps* pWordProps) {
3051 CPVT_WordPlace wp = place; 2951 CPVT_WordPlace wp = place;
3052 2952
3053 if (m_pVT->IsValid()) { 2953 if (m_pVT->IsValid()) {
3054 CFX_WideString sText = text; 2954 CFX_WideString sText = text;
3055 2955
3056 for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++) { 2956 for (int32_t i = 0, sz = sText.GetLength(); i < sz; i++) {
3057 uint16_t word = sText[i]; 2957 uint16_t word = sText[i];
3058 switch (word) { 2958 switch (word) {
3059 case 0x0D: 2959 case 0x0D:
3060 wp = m_pVT->InsertSection(wp, pSecProps, pWordProps); 2960 wp = m_pVT->InsertSection(wp, nullptr, nullptr);
3061 if (sText[i + 1] == 0x0A) 2961 if (sText[i + 1] == 0x0A)
3062 i++; 2962 i++;
3063 break; 2963 break;
3064 case 0x0A: 2964 case 0x0A:
3065 wp = m_pVT->InsertSection(wp, pSecProps, pWordProps); 2965 wp = m_pVT->InsertSection(wp, nullptr, nullptr);
3066 if (sText[i + 1] == 0x0D) 2966 if (sText[i + 1] == 0x0D)
3067 i++; 2967 i++;
3068 break; 2968 break;
3069 case 0x09: 2969 case 0x09:
3070 word = 0x20; 2970 word = 0x20;
3071 default: 2971 default:
3072 wp = m_pVT->InsertWord(wp, word, GetCharSetFromUnicode(word, charset), 2972 wp = m_pVT->InsertWord(wp, word, GetCharSetFromUnicode(word, charset),
3073 pWordProps); 2973 nullptr);
3074 break; 2974 break;
3075 } 2975 }
3076 } 2976 }
3077 } 2977 }
3078 2978
3079 return wp; 2979 return wp;
3080 } 2980 }
3081 2981
3082 int32_t CFX_Edit::GetCharSetFromUnicode(uint16_t word, int32_t nOldCharset) { 2982 int32_t CFX_Edit::GetCharSetFromUnicode(uint16_t word, int32_t nOldCharset) {
3083 if (IPVT_FontMap* pFontMap = GetFontMap()) 2983 if (IPVT_FontMap* pFontMap = GetFontMap())
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
3219 int32_t CFX_Edit_RectArray::GetSize() const { 3119 int32_t CFX_Edit_RectArray::GetSize() const {
3220 return m_Rects.GetSize(); 3120 return m_Rects.GetSize();
3221 } 3121 }
3222 3122
3223 CFX_FloatRect* CFX_Edit_RectArray::GetAt(int32_t nIndex) const { 3123 CFX_FloatRect* CFX_Edit_RectArray::GetAt(int32_t nIndex) const {
3224 if (nIndex < 0 || nIndex >= m_Rects.GetSize()) 3124 if (nIndex < 0 || nIndex >= m_Rects.GetSize())
3225 return nullptr; 3125 return nullptr;
3226 3126
3227 return m_Rects.GetAt(nIndex); 3127 return m_Rects.GetAt(nIndex);
3228 } 3128 }
OLDNEW
« no previous file with comments | « fpdfsdk/fsdk_baseform.cpp ('k') | fpdfsdk/fxedit/fxet_list.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698