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/fxfa/app/xfa_fftextedit.h" | 7 #include "xfa/fxfa/app/xfa_fftextedit.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 ((CFWL_Edit*)m_pNormalWidget)->GetText(wsOldText); | 282 ((CFWL_Edit*)m_pNormalWidget)->GetText(wsOldText); |
283 if (wsText != wsOldText || (eType == XFA_VALUEPICTURE_Edit && bUpdate)) { | 283 if (wsText != wsOldText || (eType == XFA_VALUEPICTURE_Edit && bUpdate)) { |
284 ((CFWL_Edit*)m_pNormalWidget)->SetText(wsText); | 284 ((CFWL_Edit*)m_pNormalWidget)->SetText(wsText); |
285 bUpdate = true; | 285 bUpdate = true; |
286 } | 286 } |
287 if (bUpdate) { | 287 if (bUpdate) { |
288 m_pNormalWidget->Update(); | 288 m_pNormalWidget->Update(); |
289 } | 289 } |
290 return true; | 290 return true; |
291 } | 291 } |
292 bool CXFA_FFTextEdit::CanUndo() { | |
293 return ((CFWL_Edit*)m_pNormalWidget)->CanUndo(); | |
294 } | |
295 bool CXFA_FFTextEdit::CanRedo() { | |
296 return ((CFWL_Edit*)m_pNormalWidget)->CanRedo(); | |
297 } | |
298 bool CXFA_FFTextEdit::Undo() { | |
299 return ((CFWL_Edit*)m_pNormalWidget)->Undo(); | |
300 } | |
301 bool CXFA_FFTextEdit::Redo() { | |
302 return ((CFWL_Edit*)m_pNormalWidget)->Redo(); | |
303 } | |
304 bool CXFA_FFTextEdit::CanCopy() { | |
305 int32_t nCount = ((CFWL_Edit*)m_pNormalWidget)->CountSelRanges(); | |
306 return nCount > 0; | |
307 } | |
308 bool CXFA_FFTextEdit::CanCut() { | |
309 if (m_pNormalWidget->GetStylesEx() & FWL_STYLEEXT_EDT_ReadOnly) { | |
310 return false; | |
311 } | |
312 int32_t nCount = ((CFWL_Edit*)m_pNormalWidget)->CountSelRanges(); | |
313 return nCount > 0; | |
314 } | |
315 bool CXFA_FFTextEdit::CanPaste() { | |
316 return m_pDataAcc->GetAccess() == XFA_ATTRIBUTEENUM_Open; | |
317 } | |
318 bool CXFA_FFTextEdit::CanSelectAll() { | |
319 return ((CFWL_Edit*)m_pNormalWidget)->GetTextLength() > 0; | |
320 } | |
321 bool CXFA_FFTextEdit::Copy(CFX_WideString& wsCopy) { | |
322 return ((CFWL_Edit*)m_pNormalWidget)->Copy(wsCopy); | |
323 } | |
324 bool CXFA_FFTextEdit::Cut(CFX_WideString& wsCut) { | |
325 return ((CFWL_Edit*)m_pNormalWidget)->Cut(wsCut); | |
326 } | |
327 bool CXFA_FFTextEdit::Paste(const CFX_WideString& wsPaste) { | |
328 return ((CFWL_Edit*)m_pNormalWidget)->Paste(wsPaste); | |
329 } | |
330 bool CXFA_FFTextEdit::SelectAll() { | |
331 int32_t nCount = ((CFWL_Edit*)m_pNormalWidget)->GetTextLength(); | |
332 return ((CFWL_Edit*)m_pNormalWidget)->AddSelRange(0, nCount) >= 0; | |
333 } | |
334 bool CXFA_FFTextEdit::Delete() { | |
335 return ((CFWL_Edit*)m_pNormalWidget)->Delete(); | |
336 } | |
337 bool CXFA_FFTextEdit::DeSelect() { | |
338 return ((CFWL_Edit*)m_pNormalWidget)->ClearSelections() == | |
339 FWL_Error::Succeeded; | |
340 } | |
341 bool CXFA_FFTextEdit::GetSuggestWords(CFX_PointF pointf, | |
342 std::vector<CFX_ByteString>& sSuggest) { | |
343 if (m_pDataAcc->GetUIType() != XFA_Element::TextEdit) { | |
344 return false; | |
345 } | |
346 FWLToClient(pointf.x, pointf.y); | |
347 return ((CFWL_Edit*)m_pNormalWidget)->GetSuggestWords(pointf, sSuggest); | |
348 } | |
349 bool CXFA_FFTextEdit::ReplaceSpellCheckWord(CFX_PointF pointf, | |
350 const CFX_ByteStringC& bsReplace) { | |
351 if (m_pDataAcc->GetUIType() != XFA_Element::TextEdit) { | |
352 return false; | |
353 } | |
354 FWLToClient(pointf.x, pointf.y); | |
355 return ((CFWL_Edit*)m_pNormalWidget) | |
356 ->ReplaceSpellCheckWord(pointf, bsReplace); | |
357 } | |
358 void CXFA_FFTextEdit::OnTextChanged(IFWL_Widget* pWidget, | 292 void CXFA_FFTextEdit::OnTextChanged(IFWL_Widget* pWidget, |
359 const CFX_WideString& wsChanged, | 293 const CFX_WideString& wsChanged, |
360 const CFX_WideString& wsPrevText) { | 294 const CFX_WideString& wsPrevText) { |
361 m_dwStatus |= XFA_WidgetStatus_TextEditValueChanged; | 295 m_dwStatus |= XFA_WidgetStatus_TextEditValueChanged; |
362 CXFA_EventParam eParam; | 296 CXFA_EventParam eParam; |
363 eParam.m_eType = XFA_EVENT_Change; | 297 eParam.m_eType = XFA_EVENT_Change; |
364 eParam.m_wsChange = wsChanged; | 298 eParam.m_wsChange = wsChanged; |
365 eParam.m_pTarget = m_pDataAcc; | 299 eParam.m_pTarget = m_pDataAcc; |
366 eParam.m_wsPrevText = wsPrevText; | 300 eParam.m_wsPrevText = wsPrevText; |
367 CFWL_Edit* pEdit = ((CFWL_Edit*)m_pNormalWidget); | 301 CFWL_Edit* pEdit = ((CFWL_Edit*)m_pNormalWidget); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 case CFWL_EventType::TextFull: { | 344 case CFWL_EventType::TextFull: { |
411 OnTextFull(m_pNormalWidget->GetWidget()); | 345 OnTextFull(m_pNormalWidget->GetWidget()); |
412 break; | 346 break; |
413 } | 347 } |
414 case CFWL_EventType::CheckWord: { | 348 case CFWL_EventType::CheckWord: { |
415 CFX_WideString wstr(L"FWL_EVENT_DTP_SelectChanged"); | 349 CFX_WideString wstr(L"FWL_EVENT_DTP_SelectChanged"); |
416 CFWL_EvtEdtCheckWord* event = (CFWL_EvtEdtCheckWord*)pEvent; | 350 CFWL_EvtEdtCheckWord* event = (CFWL_EvtEdtCheckWord*)pEvent; |
417 event->bCheckWord = CheckWord(event->bsWord.AsStringC()); | 351 event->bCheckWord = CheckWord(event->bsWord.AsStringC()); |
418 break; | 352 break; |
419 } | 353 } |
420 case CFWL_EventType::GetSuggestedWords: { | |
421 CFWL_EvtEdtGetSuggestWords* event = (CFWL_EvtEdtGetSuggestWords*)pEvent; | |
422 event->bSuggestWords = false; | |
423 break; | |
424 } | |
425 default: | 354 default: |
426 break; | 355 break; |
427 } | 356 } |
428 m_pOldDelegate->OnProcessEvent(pEvent); | 357 m_pOldDelegate->OnProcessEvent(pEvent); |
429 } | 358 } |
430 | 359 |
431 void CXFA_FFTextEdit::OnDrawWidget(CFX_Graphics* pGraphics, | 360 void CXFA_FFTextEdit::OnDrawWidget(CFX_Graphics* pGraphics, |
432 const CFX_Matrix* pMatrix) { | 361 const CFX_Matrix* pMatrix) { |
433 m_pOldDelegate->OnDrawWidget(pGraphics, pMatrix); | 362 m_pOldDelegate->OnDrawWidget(pGraphics, pMatrix); |
434 } | 363 } |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 bool CXFA_FFDateTimeEdit::IsDataChanged() { | 648 bool CXFA_FFDateTimeEdit::IsDataChanged() { |
720 if (m_dwStatus & XFA_WidgetStatus_TextEditValueChanged) { | 649 if (m_dwStatus & XFA_WidgetStatus_TextEditValueChanged) { |
721 return true; | 650 return true; |
722 } | 651 } |
723 CFX_WideString wsText; | 652 CFX_WideString wsText; |
724 ((CFWL_DateTimePicker*)m_pNormalWidget)->GetEditText(wsText); | 653 ((CFWL_DateTimePicker*)m_pNormalWidget)->GetEditText(wsText); |
725 CFX_WideString wsOldValue; | 654 CFX_WideString wsOldValue; |
726 m_pDataAcc->GetValue(wsOldValue, XFA_VALUEPICTURE_Edit); | 655 m_pDataAcc->GetValue(wsOldValue, XFA_VALUEPICTURE_Edit); |
727 return wsOldValue != wsText; | 656 return wsOldValue != wsText; |
728 } | 657 } |
729 bool CXFA_FFDateTimeEdit::CanUndo() { | 658 |
730 return ((CFWL_DateTimePicker*)m_pNormalWidget)->CanUndo(); | |
731 } | |
732 bool CXFA_FFDateTimeEdit::CanRedo() { | |
733 return ((CFWL_DateTimePicker*)m_pNormalWidget)->CanRedo(); | |
734 } | |
735 bool CXFA_FFDateTimeEdit::Undo() { | |
736 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Undo(); | |
737 } | |
738 bool CXFA_FFDateTimeEdit::Redo() { | |
739 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Redo(); | |
740 } | |
741 bool CXFA_FFDateTimeEdit::CanCopy() { | |
742 return ((CFWL_DateTimePicker*)m_pNormalWidget)->CanCopy(); | |
743 } | |
744 bool CXFA_FFDateTimeEdit::CanCut() { | |
745 if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) { | |
746 return false; | |
747 } | |
748 return ((CFWL_DateTimePicker*)m_pNormalWidget)->CanCut(); | |
749 } | |
750 bool CXFA_FFDateTimeEdit::CanPaste() { | |
751 return m_pDataAcc->GetAccess() == XFA_ATTRIBUTEENUM_Open; | |
752 } | |
753 bool CXFA_FFDateTimeEdit::CanSelectAll() { | |
754 return ((CFWL_DateTimePicker*)m_pNormalWidget)->CanSelectAll(); | |
755 } | |
756 bool CXFA_FFDateTimeEdit::Copy(CFX_WideString& wsCopy) { | |
757 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Copy(wsCopy); | |
758 } | |
759 bool CXFA_FFDateTimeEdit::Cut(CFX_WideString& wsCut) { | |
760 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Cut(wsCut); | |
761 } | |
762 bool CXFA_FFDateTimeEdit::Paste(const CFX_WideString& wsPaste) { | |
763 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Paste(wsPaste); | |
764 } | |
765 bool CXFA_FFDateTimeEdit::SelectAll() { | |
766 return ((CFWL_DateTimePicker*)m_pNormalWidget)->SelectAll(); | |
767 } | |
768 bool CXFA_FFDateTimeEdit::Delete() { | |
769 return ((CFWL_DateTimePicker*)m_pNormalWidget)->Delete(); | |
770 } | |
771 bool CXFA_FFDateTimeEdit::DeSelect() { | |
772 return ((CFWL_DateTimePicker*)m_pNormalWidget)->DeSelect(); | |
773 } | |
774 void CXFA_FFDateTimeEdit::OnSelectChanged(IFWL_Widget* pWidget, | 659 void CXFA_FFDateTimeEdit::OnSelectChanged(IFWL_Widget* pWidget, |
775 int32_t iYear, | 660 int32_t iYear, |
776 int32_t iMonth, | 661 int32_t iMonth, |
777 int32_t iDay) { | 662 int32_t iDay) { |
778 CFX_WideString wsPicture; | 663 CFX_WideString wsPicture; |
779 m_pDataAcc->GetPictureContent(wsPicture, XFA_VALUEPICTURE_Edit); | 664 m_pDataAcc->GetPictureContent(wsPicture, XFA_VALUEPICTURE_Edit); |
780 CXFA_LocaleValue date(XFA_VT_DATE, GetDoc()->GetXFADoc()->GetLocalMgr()); | 665 CXFA_LocaleValue date(XFA_VT_DATE, GetDoc()->GetXFADoc()->GetLocalMgr()); |
781 CFX_Unitime dt; | 666 CFX_Unitime dt; |
782 dt.Set(iYear, iMonth, iDay); | 667 dt.Set(iYear, iMonth, iDay); |
783 date.SetDate(dt); | 668 date.SetDate(dt); |
(...skipping 13 matching lines...) Expand all Loading... |
797 | 682 |
798 void CXFA_FFDateTimeEdit::OnProcessEvent(CFWL_Event* pEvent) { | 683 void CXFA_FFDateTimeEdit::OnProcessEvent(CFWL_Event* pEvent) { |
799 if (pEvent->GetClassID() == CFWL_EventType::SelectChanged) { | 684 if (pEvent->GetClassID() == CFWL_EventType::SelectChanged) { |
800 CFWL_Event_DtpSelectChanged* event = (CFWL_Event_DtpSelectChanged*)pEvent; | 685 CFWL_Event_DtpSelectChanged* event = (CFWL_Event_DtpSelectChanged*)pEvent; |
801 OnSelectChanged(m_pNormalWidget->GetWidget(), event->iYear, event->iMonth, | 686 OnSelectChanged(m_pNormalWidget->GetWidget(), event->iYear, event->iMonth, |
802 event->iDay); | 687 event->iDay); |
803 return; | 688 return; |
804 } | 689 } |
805 CXFA_FFTextEdit::OnProcessEvent(pEvent); | 690 CXFA_FFTextEdit::OnProcessEvent(pEvent); |
806 } | 691 } |
OLD | NEW |