FX_BOOL CXFA_FFPasswordEdit::LoadWidget() { CFWL_Edit* pWidget = CFWL_Edit::Create(); pWidget->Initialize(); m_pNormalWidget = (CFWL_Widget*)pWidget; IFWL_Widget* pIWidget = m_pNormalWidget->GetWidget(); m_pNormalWidget->SetPrivateData(pIWidget, this, NULL); IFWL_NoteDriver* pNoteDriver = FWL_GetApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pIWidget, pIWidget); m_pOldDelegate = m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display); pWidget->SetText(wsText); UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
bool CXFA_FFTextEdit::UpdateFWLData() { if (!m_pNormalWidget) return false; CFWL_Edit* pEdit = ToEdit(m_pNormalWidget.get()); XFA_VALUEPICTURE eType = XFA_VALUEPICTURE_Display; if (IsFocused()) eType = XFA_VALUEPICTURE_Edit; bool bUpdate = false; if (m_pNode->GetFFWidgetType() == XFA_FFWidgetType::kTextEdit && !m_pNode->GetNumberOfCells()) { XFA_Element elementType; int32_t iMaxChars; std::tie(elementType, iMaxChars) = m_pNode->GetMaxChars(); if (elementType == XFA_Element::ExData) iMaxChars = eType == XFA_VALUEPICTURE_Edit ? iMaxChars : 0; if (pEdit->GetLimit() != iMaxChars) { pEdit->SetLimit(iMaxChars); bUpdate = true; } } else if (m_pNode->GetFFWidgetType() == XFA_FFWidgetType::kBarcode) { int32_t nDataLen = 0; if (eType == XFA_VALUEPICTURE_Edit) { nDataLen = static_cast<CXFA_Barcode*>(m_pNode.Get()) ->GetDataLength() .value_or(0); } pEdit->SetLimit(nDataLen); bUpdate = true; } WideString wsText = m_pNode->GetValue(eType); WideString wsOldText = pEdit->GetText(); if (wsText != wsOldText || (eType == XFA_VALUEPICTURE_Edit && bUpdate)) { pEdit->SetText(wsText, CFDE_TextEditEngine::RecordOperation::kSkipNotify); bUpdate = true; } if (bUpdate) m_pNormalWidget->Update(); return true; }
bool CXFA_FFTextEdit::LoadWidget() { auto pNewWidget = pdfium::MakeUnique<CFWL_Edit>( GetFWLApp(), pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr); CFWL_Edit* pFWLEdit = pNewWidget.get(); m_pNormalWidget = std::move(pNewWidget); m_pNormalWidget->SetLayoutItem(this); CFWL_NoteDriver* pNoteDriver = m_pNormalWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(m_pNormalWidget.get(), m_pNormalWidget.get()); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); UpdateWidgetProperty(); pFWLEdit->SetText(m_pNode->GetValue(XFA_VALUEPICTURE_Display)); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }
bool CXFA_FFPasswordEdit::LoadWidget() { CFWL_Edit* pWidget = new CFWL_Edit(GetFWLApp()); pWidget->Initialize(); m_pNormalWidget = pWidget; m_pNormalWidget->SetLayoutItem(this); IFWL_Widget* pIWidget = m_pNormalWidget->GetWidget(); CFWL_NoteDriver* pNoteDriver = pIWidget->GetOwnerApp()->GetNoteDriver(); pNoteDriver->RegisterEventTarget(pIWidget, pIWidget); m_pOldDelegate = m_pNormalWidget->GetDelegate(); m_pNormalWidget->SetDelegate(this); m_pNormalWidget->LockUpdate(); CFX_WideString wsText; m_pDataAcc->GetValue(wsText, XFA_VALUEPICTURE_Display); pWidget->SetText(wsText); UpdateWidgetProperty(); m_pNormalWidget->UnlockUpdate(); return CXFA_FFField::LoadWidget(); }