| 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/fwl/core/cfwl_edit.h" | 7 #include "xfa/fwl/core/cfwl_edit.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| 11 #include <utility> | 11 #include <utility> |
| 12 #include <vector> | 12 #include <vector> |
| 13 | 13 |
| 14 #include "third_party/base/ptr_util.h" | 14 #include "third_party/base/ptr_util.h" |
| 15 #include "third_party/base/stl_util.h" | 15 #include "third_party/base/stl_util.h" |
| 16 #include "xfa/fde/cfde_txtedtengine.h" | 16 #include "xfa/fde/cfde_txtedtengine.h" |
| 17 #include "xfa/fde/fde_gedevice.h" | 17 #include "xfa/fde/fde_gedevice.h" |
| 18 #include "xfa/fde/fde_render.h" | 18 #include "xfa/fde/fde_render.h" |
| 19 #include "xfa/fde/ifde_txtedtpage.h" | 19 #include "xfa/fde/ifde_txtedtpage.h" |
| 20 #include "xfa/fgas/font/cfgas_gefont.h" | 20 #include "xfa/fgas/font/cfgas_gefont.h" |
| 21 #include "xfa/fwl/core/cfwl_app.h" | 21 #include "xfa/fwl/core/cfwl_app.h" |
| 22 #include "xfa/fwl/core/cfwl_caret.h" | 22 #include "xfa/fwl/core/cfwl_caret.h" |
| 23 #include "xfa/fwl/core/cfwl_event.h" |
| 23 #include "xfa/fwl/core/cfwl_evtcheckword.h" | 24 #include "xfa/fwl/core/cfwl_evtcheckword.h" |
| 24 #include "xfa/fwl/core/cfwl_evttextchanged.h" | 25 #include "xfa/fwl/core/cfwl_evttextchanged.h" |
| 25 #include "xfa/fwl/core/cfwl_evttextfull.h" | |
| 26 #include "xfa/fwl/core/cfwl_evtvalidate.h" | 26 #include "xfa/fwl/core/cfwl_evtvalidate.h" |
| 27 #include "xfa/fwl/core/cfwl_msgkey.h" | 27 #include "xfa/fwl/core/cfwl_msgkey.h" |
| 28 #include "xfa/fwl/core/cfwl_msgmouse.h" | 28 #include "xfa/fwl/core/cfwl_msgmouse.h" |
| 29 #include "xfa/fwl/core/cfwl_themebackground.h" | 29 #include "xfa/fwl/core/cfwl_themebackground.h" |
| 30 #include "xfa/fwl/core/cfwl_themepart.h" | 30 #include "xfa/fwl/core/cfwl_themepart.h" |
| 31 #include "xfa/fwl/core/cfwl_widgetmgr.h" | 31 #include "xfa/fwl/core/cfwl_widgetmgr.h" |
| 32 #include "xfa/fwl/core/ifwl_themeprovider.h" | 32 #include "xfa/fwl/core/ifwl_themeprovider.h" |
| 33 #include "xfa/fxfa/xfa_ffdoc.h" | 33 #include "xfa/fxfa/xfa_ffdoc.h" |
| 34 #include "xfa/fxfa/xfa_ffwidget.h" | 34 #include "xfa/fxfa/xfa_ffwidget.h" |
| 35 #include "xfa/fxgraphics/cfx_path.h" | 35 #include "xfa/fxgraphics/cfx_path.h" |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 void CFWL_Edit::On_TextChanged(CFDE_TxtEdtEngine* pEdit, | 447 void CFWL_Edit::On_TextChanged(CFDE_TxtEdtEngine* pEdit, |
| 448 FDE_TXTEDT_TEXTCHANGE_INFO& ChangeInfo) { | 448 FDE_TXTEDT_TEXTCHANGE_INFO& ChangeInfo) { |
| 449 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_VAlignMask) | 449 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_VAlignMask) |
| 450 UpdateVAlignment(); | 450 UpdateVAlignment(); |
| 451 | 451 |
| 452 CFX_RectF rtTemp; | 452 CFX_RectF rtTemp; |
| 453 GetClientRect(rtTemp); | 453 GetClientRect(rtTemp); |
| 454 | 454 |
| 455 CFWL_EvtTextChanged event; | 455 CFWL_EvtTextChanged event; |
| 456 event.m_pSrcTarget = this; | 456 event.m_pSrcTarget = this; |
| 457 event.nChangeType = ChangeInfo.nChangeType; | |
| 458 event.wsInsert = ChangeInfo.wsInsert; | |
| 459 event.wsDelete = ChangeInfo.wsDelete; | |
| 460 event.wsPrevText = ChangeInfo.wsPrevText; | 457 event.wsPrevText = ChangeInfo.wsPrevText; |
| 461 DispatchEvent(&event); | 458 DispatchEvent(&event); |
| 462 | 459 |
| 463 LayoutScrollBar(); | 460 LayoutScrollBar(); |
| 464 Repaint(&rtTemp); | 461 Repaint(&rtTemp); |
| 465 } | 462 } |
| 466 | 463 |
| 467 void CFWL_Edit::On_SelChanged(CFDE_TxtEdtEngine* pEdit) { | 464 void CFWL_Edit::On_SelChanged(CFDE_TxtEdtEngine* pEdit) { |
| 468 CFX_RectF rtTemp; | 465 CFX_RectF rtTemp; |
| 469 GetClientRect(rtTemp); | 466 GetClientRect(rtTemp); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 496 IFDE_TxtEdtDoRecord* pRecord) { | 493 IFDE_TxtEdtDoRecord* pRecord) { |
| 497 AddDoRecord(pRecord); | 494 AddDoRecord(pRecord); |
| 498 } | 495 } |
| 499 | 496 |
| 500 bool CFWL_Edit::On_Validate(CFDE_TxtEdtEngine* pEdit, CFX_WideString& wsText) { | 497 bool CFWL_Edit::On_Validate(CFDE_TxtEdtEngine* pEdit, CFX_WideString& wsText) { |
| 501 CFWL_Widget* pDst = GetOuter(); | 498 CFWL_Widget* pDst = GetOuter(); |
| 502 if (!pDst) | 499 if (!pDst) |
| 503 pDst = this; | 500 pDst = this; |
| 504 | 501 |
| 505 CFWL_EvtValidate event; | 502 CFWL_EvtValidate event; |
| 506 event.pDstWidget = pDst; | |
| 507 event.m_pSrcTarget = this; | 503 event.m_pSrcTarget = this; |
| 508 event.wsInsert = wsText; | 504 event.wsInsert = wsText; |
| 509 event.bValidate = true; | 505 event.bValidate = true; |
| 510 DispatchEvent(&event); | 506 DispatchEvent(&event); |
| 511 return event.bValidate; | 507 return event.bValidate; |
| 512 } | 508 } |
| 513 | 509 |
| 514 void CFWL_Edit::SetScrollOffset(FX_FLOAT fScrollOffset) { | 510 void CFWL_Edit::SetScrollOffset(FX_FLOAT fScrollOffset) { |
| 515 m_fScrollOffsetY = fScrollOffset; | 511 m_fScrollOffsetY = fScrollOffset; |
| 516 } | 512 } |
| (...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1270 | 1266 |
| 1271 void CFWL_Edit::ClearRecord() { | 1267 void CFWL_Edit::ClearRecord() { |
| 1272 m_iCurRecord = -1; | 1268 m_iCurRecord = -1; |
| 1273 m_DoRecords.clear(); | 1269 m_DoRecords.clear(); |
| 1274 } | 1270 } |
| 1275 | 1271 |
| 1276 void CFWL_Edit::ProcessInsertError(int32_t iError) { | 1272 void CFWL_Edit::ProcessInsertError(int32_t iError) { |
| 1277 if (iError != -2) | 1273 if (iError != -2) |
| 1278 return; | 1274 return; |
| 1279 | 1275 |
| 1280 CFWL_EvtTextFull textFullEvent; | 1276 CFWL_Event textFullEvent(CFWL_EventType::TextFull); |
| 1281 textFullEvent.m_pSrcTarget = this; | 1277 textFullEvent.m_pSrcTarget = this; |
| 1282 DispatchEvent(&textFullEvent); | 1278 DispatchEvent(&textFullEvent); |
| 1283 } | 1279 } |
| 1284 | 1280 |
| 1285 void CFWL_Edit::OnProcessMessage(CFWL_Message* pMessage) { | 1281 void CFWL_Edit::OnProcessMessage(CFWL_Message* pMessage) { |
| 1286 if (!pMessage) | 1282 if (!pMessage) |
| 1287 return; | 1283 return; |
| 1288 | 1284 |
| 1289 CFWL_MessageType dwMsgCode = pMessage->GetClassID(); | 1285 CFWL_MessageType dwMsgCode = pMessage->GetClassID(); |
| 1290 switch (dwMsgCode) { | 1286 switch (dwMsgCode) { |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1515 } | 1511 } |
| 1516 int32_t nCaret = m_EdtEngine.GetCaretPos(); | 1512 int32_t nCaret = m_EdtEngine.GetCaretPos(); |
| 1517 #if (_FX_OS_ == _FX_MACOSX_) | 1513 #if (_FX_OS_ == _FX_MACOSX_) |
| 1518 m_EdtEngine.Delete(nCaret, true); | 1514 m_EdtEngine.Delete(nCaret, true); |
| 1519 #else | 1515 #else |
| 1520 m_EdtEngine.Delete(nCaret); | 1516 m_EdtEngine.Delete(nCaret); |
| 1521 #endif | 1517 #endif |
| 1522 break; | 1518 break; |
| 1523 } | 1519 } |
| 1524 case FWL_VKEY_F2: | 1520 case FWL_VKEY_F2: |
| 1525 break; | 1521 case FWL_VKEY_Tab: |
| 1526 case FWL_VKEY_Tab: { | |
| 1527 DispatchKeyEvent(pMsg); | |
| 1528 break; | |
| 1529 } | |
| 1530 default: | 1522 default: |
| 1531 break; | 1523 break; |
| 1532 } | 1524 } |
| 1533 if (MoveCaret != MC_MoveNone) | 1525 if (MoveCaret != MC_MoveNone) |
| 1534 m_EdtEngine.MoveCaretPos(MoveCaret, bShift, bCtrl); | 1526 m_EdtEngine.MoveCaretPos(MoveCaret, bShift, bCtrl); |
| 1535 } | 1527 } |
| 1536 | 1528 |
| 1537 void CFWL_Edit::OnChar(CFWL_MsgKey* pMsg) { | 1529 void CFWL_Edit::OnChar(CFWL_MsgKey* pMsg) { |
| 1538 if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_ReadOnly) || | 1530 if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_ReadOnly) || |
| 1539 (m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled)) { | 1531 (m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled)) { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1647 UpdateOffset(pScrollBar, fPos - iCurPos); | 1639 UpdateOffset(pScrollBar, fPos - iCurPos); |
| 1648 UpdateCaret(); | 1640 UpdateCaret(); |
| 1649 | 1641 |
| 1650 CFX_RectF rect; | 1642 CFX_RectF rect; |
| 1651 GetWidgetRect(rect); | 1643 GetWidgetRect(rect); |
| 1652 CFX_RectF rtInvalidate; | 1644 CFX_RectF rtInvalidate; |
| 1653 rtInvalidate.Set(0, 0, rect.width + 2, rect.height + 2); | 1645 rtInvalidate.Set(0, 0, rect.width + 2, rect.height + 2); |
| 1654 Repaint(&rtInvalidate); | 1646 Repaint(&rtInvalidate); |
| 1655 return true; | 1647 return true; |
| 1656 } | 1648 } |
| OLD | NEW |