bool CFFL_TextField::OnChar(CPDFSDK_Annot* pAnnot, uint32_t nChar, uint32_t nFlags) { switch (nChar) { case FWL_VKEY_Return: if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_MULTILINE)) { CPDFSDK_PageView* pPageView = GetCurPageView(true); ASSERT(pPageView); m_bValid = !m_bValid; CFX_FloatRect rcAnnot = pAnnot->GetRect(); m_pFormFillEnv->Invalidate(pAnnot->GetUnderlyingPage(), rcAnnot.left, rcAnnot.top, rcAnnot.right, rcAnnot.bottom); if (m_bValid) { if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, true)) pWnd->SetFocus(); } else { if (CommitData(pPageView, nFlags)) { DestroyPDFWindow(pPageView); return true; } return false; } } break; case FWL_VKEY_Escape: { CPDFSDK_PageView* pPageView = GetCurPageView(true); ASSERT(pPageView); EscapeFiller(pPageView, true); return true; } } return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); }
void CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { if (!IsValid()) return; CPDFSDK_PageView* pPageView = GetCurPageView(false); if (!pPageView) return; CommitData(pPageView, nFlag); if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) pWnd->KillFocus(); FX_BOOL bDestroyPDFWindow; switch (m_pWidget->GetFieldType()) { case FIELDTYPE_PUSHBUTTON: case FIELDTYPE_CHECKBOX: case FIELDTYPE_RADIOBUTTON: bDestroyPDFWindow = TRUE; break; default: bDestroyPDFWindow = FALSE; break; } EscapeFiller(pPageView, bDestroyPDFWindow); }
FX_BOOL CFFL_FormFiller::KillFocusForAnnot(CPDFSDK_Annot* pAnnot, FX_UINT nFlag) { if (!IsValid()) return TRUE; CPDFSDK_PageView* pPageView = GetCurPageView(); CommitData(pPageView, nFlag); if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, FALSE)) pWnd->KillFocus(); switch (m_pWidget->GetFieldType()) { case FIELDTYPE_PUSHBUTTON: case FIELDTYPE_CHECKBOX: case FIELDTYPE_RADIOBUTTON: EscapeFiller(pPageView, TRUE); break; default: EscapeFiller(pPageView, FALSE); break; } return TRUE; }
FX_BOOL CFFL_TextField::OnChar(CPDFSDK_Annot* pAnnot, FX_UINT nChar, FX_UINT nFlags) { switch (nChar) { case FWL_VKEY_Return: if (!(m_pWidget->GetFieldFlags() & FIELDFLAG_MULTILINE)) { CPDFSDK_PageView* pPageView = this->GetCurPageView(); ASSERT(pPageView != NULL); m_bValid = !m_bValid; CPDF_Rect rcAnnot = pAnnot->GetRect(); m_pApp->FFI_Invalidate(pAnnot->GetPDFPage(), rcAnnot.left, rcAnnot.top, rcAnnot.right, rcAnnot.bottom); if (m_bValid) { if (CPWL_Wnd* pWnd = GetPDFWindow(pPageView, TRUE)) pWnd->SetFocus(); } else { if (CommitData(pPageView, nFlags)) { DestroyPDFWindow(pPageView); return TRUE; } else { return FALSE; } } } break; case FWL_VKEY_Escape: { CPDFSDK_PageView* pPageView = this->GetCurPageView(); ASSERT(pPageView != NULL); EscapeFiller(pPageView,TRUE); return TRUE; } } return CFFL_FormFiller::OnChar(pAnnot, nChar, nFlags); }