| Index: xfa/fxfa/app/xfa_fffield.cpp
|
| diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
|
| index b14df7ee1553d4056f29dd86f88328fdca7d1e52..f8d7d306d63b6e7c7cd68983e12d1daf08580ca4 100644
|
| --- a/xfa/fxfa/app/xfa_fffield.cpp
|
| +++ b/xfa/fxfa/app/xfa_fffield.cpp
|
| @@ -26,6 +26,7 @@ CXFA_FFField::CXFA_FFField(CXFA_FFPageView* pPageView, CXFA_WidgetAcc* pDataAcc)
|
| m_rtUI.Set(0, 0, 0, 0);
|
| m_rtCaption.Set(0, 0, 0, 0);
|
| }
|
| +
|
| CXFA_FFField::~CXFA_FFField() {
|
| CXFA_FFField::UnloadWidget();
|
| }
|
| @@ -73,6 +74,7 @@ void CXFA_FFField::RenderWidget(CFX_Graphics* pGS,
|
| GetApp()->GetWidgetMgrDelegate()->OnDrawWidget(m_pNormalWidget->GetWidget(),
|
| pGS, &mt);
|
| }
|
| +
|
| void CXFA_FFField::DrawHighlight(CFX_Graphics* pGS,
|
| CFX_Matrix* pMatrix,
|
| uint32_t dwStatus,
|
| @@ -95,6 +97,7 @@ void CXFA_FFField::DrawHighlight(CFX_Graphics* pGS,
|
| pGS->FillPath(&path, FXFILL_WINDING, pMatrix);
|
| }
|
| }
|
| +
|
| void CXFA_FFField::DrawFocus(CFX_Graphics* pGS, CFX_Matrix* pMatrix) {
|
| if (m_dwStatus & XFA_WidgetStatus_Focused) {
|
| CFX_Color cr(0xFF000000);
|
| @@ -108,24 +111,29 @@ void CXFA_FFField::DrawFocus(CFX_Graphics* pGS, CFX_Matrix* pMatrix) {
|
| pGS->StrokePath(&path, pMatrix);
|
| }
|
| }
|
| +
|
| void CXFA_FFField::SetFWLThemeProvider() {
|
| if (m_pNormalWidget) {
|
| m_pNormalWidget->GetWidget()->SetThemeProvider(GetApp()->GetFWLTheme());
|
| }
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::IsLoaded() {
|
| return m_pNormalWidget && CXFA_FFWidget::IsLoaded();
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::LoadWidget() {
|
| SetFWLThemeProvider();
|
| m_pDataAcc->LoadCaption();
|
| PerformLayout();
|
| return TRUE;
|
| }
|
| +
|
| void CXFA_FFField::UnloadWidget() {
|
| delete m_pNormalWidget;
|
| m_pNormalWidget = nullptr;
|
| }
|
| +
|
| void CXFA_FFField::SetEditScrollOffset() {
|
| XFA_Element eType = m_pDataAcc->GetUIType();
|
| if (eType == XFA_Element::TextEdit || eType == XFA_Element::NumericEdit ||
|
| @@ -144,6 +152,7 @@ void CXFA_FFField::SetEditScrollOffset() {
|
| ((CFWL_Edit*)m_pNormalWidget)->SetScrollOffset(fScrollOffset);
|
| }
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::PerformLayout() {
|
| CXFA_FFWidget::PerformLayout();
|
| CapPlacement();
|
| @@ -155,6 +164,7 @@ FX_BOOL CXFA_FFField::PerformLayout() {
|
| }
|
| return TRUE;
|
| }
|
| +
|
| void CXFA_FFField::CapPlacement() {
|
| CFX_RectF rtWidget;
|
| GetRectWithoutRotate(rtWidget);
|
| @@ -260,6 +270,7 @@ void CXFA_FFField::CapPlacement() {
|
| }
|
| m_rtUI.Normalize();
|
| }
|
| +
|
| void CXFA_FFField::CapTopBottomPlacement(CXFA_Caption caption,
|
| const CFX_RectF& rtWidget,
|
| int32_t iCapPlacement) {
|
| @@ -287,6 +298,7 @@ void CXFA_FFField::CapTopBottomPlacement(CXFA_Caption caption,
|
| }
|
| }
|
| }
|
| +
|
| void CXFA_FFField::CapLeftRightPlacement(CXFA_Caption caption,
|
| const CFX_RectF& rtWidget,
|
| int32_t iCapPlacement) {
|
| @@ -315,11 +327,13 @@ void CXFA_FFField::CapLeftRightPlacement(CXFA_Caption caption,
|
| m_rtUI.height += fHeight - rtWidget.height;
|
| }
|
| }
|
| +
|
| void CXFA_FFField::UpdateFWL() {
|
| if (m_pNormalWidget) {
|
| m_pNormalWidget->Update();
|
| }
|
| }
|
| +
|
| uint32_t CXFA_FFField::UpdateUIProperty() {
|
| CXFA_Node* pUiNode = m_pDataAcc->GetUIChild();
|
| uint32_t dwStyle = 0;
|
| @@ -328,6 +342,7 @@ uint32_t CXFA_FFField::UpdateUIProperty() {
|
| }
|
| return dwStyle;
|
| }
|
| +
|
| void CXFA_FFField::SetFWLRect() {
|
| if (!m_pNormalWidget) {
|
| return;
|
| @@ -343,6 +358,7 @@ void CXFA_FFField::SetFWLRect() {
|
| }
|
| m_pNormalWidget->SetWidgetRect(rtUi);
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnMouseEnter() {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -354,6 +370,7 @@ FX_BOOL CXFA_FFField::OnMouseEnter() {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnMouseExit() {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -364,6 +381,7 @@ FX_BOOL CXFA_FFField::OnMouseExit() {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| void CXFA_FFField::FWLToClient(FX_FLOAT& fx, FX_FLOAT& fy) {
|
| if (!m_pNormalWidget) {
|
| return;
|
| @@ -373,6 +391,7 @@ void CXFA_FFField::FWLToClient(FX_FLOAT& fx, FX_FLOAT& fy) {
|
| fx -= rtWidget.left;
|
| fy -= rtWidget.top;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnLButtonDown(uint32_t dwFlags,
|
| FX_FLOAT fx,
|
| FX_FLOAT fy) {
|
| @@ -397,6 +416,7 @@ FX_BOOL CXFA_FFField::OnLButtonDown(uint32_t dwFlags,
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -415,6 +435,7 @@ FX_BOOL CXFA_FFField::OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnLButtonDblClk(uint32_t dwFlags,
|
| FX_FLOAT fx,
|
| FX_FLOAT fy) {
|
| @@ -431,6 +452,7 @@ FX_BOOL CXFA_FFField::OnLButtonDblClk(uint32_t dwFlags,
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -445,6 +467,7 @@ FX_BOOL CXFA_FFField::OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnMouseWheel(uint32_t dwFlags,
|
| int16_t zDelta,
|
| FX_FLOAT fx,
|
| @@ -463,6 +486,7 @@ FX_BOOL CXFA_FFField::OnMouseWheel(uint32_t dwFlags,
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnRButtonDown(uint32_t dwFlags,
|
| FX_FLOAT fx,
|
| FX_FLOAT fy) {
|
| @@ -487,6 +511,7 @@ FX_BOOL CXFA_FFField::OnRButtonDown(uint32_t dwFlags,
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnRButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -505,6 +530,7 @@ FX_BOOL CXFA_FFField::OnRButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnRButtonDblClk(uint32_t dwFlags,
|
| FX_FLOAT fx,
|
| FX_FLOAT fy) {
|
| @@ -535,6 +561,7 @@ FX_BOOL CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) {
|
| AddInvalidateRect();
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) {
|
| if (!m_pNormalWidget) {
|
| return CXFA_FFWidget::OnKillFocus(pNewWidget);
|
| @@ -548,6 +575,7 @@ FX_BOOL CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) {
|
| CXFA_FFWidget::OnKillFocus(pNewWidget);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) {
|
| if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
|
| return FALSE;
|
| @@ -561,6 +589,7 @@ FX_BOOL CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) {
|
| if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
|
| return FALSE;
|
| @@ -574,6 +603,7 @@ FX_BOOL CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) {
|
| if (!m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
|
| return FALSE;
|
| @@ -596,6 +626,7 @@ FX_BOOL CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) {
|
| TranslateFWLMessage(&ms);
|
| return TRUE;
|
| }
|
| +
|
| FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) {
|
| if (m_pNormalWidget) {
|
| FX_FLOAT ffx = fx, ffy = fy;
|
| @@ -611,9 +642,11 @@ FWL_WidgetHit CXFA_FFField::OnHitTest(FX_FLOAT fx, FX_FLOAT fy) {
|
| return FWL_WidgetHit::Titlebar;
|
| return FWL_WidgetHit::Border;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::OnSetCursor(FX_FLOAT fx, FX_FLOAT fy) {
|
| return TRUE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
|
| if (!m_pNormalWidget) {
|
| return FALSE;
|
| @@ -625,6 +658,7 @@ FX_BOOL CXFA_FFField::PtInActiveRect(FX_FLOAT fx, FX_FLOAT fy) {
|
| }
|
| return FALSE;
|
| }
|
| +
|
| void CXFA_FFField::LayoutCaption() {
|
| CXFA_TextLayout* pCapTextLayout = m_pDataAcc->GetCaptionTextLayout();
|
| if (!pCapTextLayout)
|
| @@ -636,6 +670,7 @@ void CXFA_FFField::LayoutCaption() {
|
| if (m_rtCaption.height < fHeight)
|
| m_rtCaption.height = fHeight;
|
| }
|
| +
|
| void CXFA_FFField::RenderCaption(CFX_Graphics* pGS, CFX_Matrix* pMatrix) {
|
| CXFA_TextLayout* pCapTextLayout = m_pDataAcc->GetCaptionTextLayout();
|
| if (!pCapTextLayout) {
|
| @@ -660,6 +695,7 @@ void CXFA_FFField::RenderCaption(CFX_Graphics* pGS, CFX_Matrix* pMatrix) {
|
| pCapTextLayout->DrawString(pRenderDevice, mt, rtClip);
|
| }
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::ProcessCommittedData() {
|
| if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) {
|
| return FALSE;
|
| @@ -677,6 +713,7 @@ FX_BOOL CXFA_FFField::ProcessCommittedData() {
|
| m_pDocView->AddValidateWidget(m_pDataAcc);
|
| return TRUE;
|
| }
|
| +
|
| int32_t CXFA_FFField::CalculateOverride() {
|
| CXFA_WidgetAcc* pAcc = m_pDataAcc->GetExclGroup();
|
| if (!pAcc) {
|
| @@ -702,6 +739,7 @@ int32_t CXFA_FFField::CalculateOverride() {
|
| }
|
| return 1;
|
| }
|
| +
|
| int32_t CXFA_FFField::CalculateWidgetAcc(CXFA_WidgetAcc* pAcc) {
|
| CXFA_Calculate calc = pAcc->GetCalculate();
|
| if (!calc) {
|
| @@ -773,55 +811,15 @@ int32_t CXFA_FFField::CalculateWidgetAcc(CXFA_WidgetAcc* pAcc) {
|
| }
|
| return 1;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::CommitData() {
|
| return FALSE;
|
| }
|
| +
|
| FX_BOOL CXFA_FFField::IsDataChanged() {
|
| return FALSE;
|
| }
|
| +
|
| void CXFA_FFField::TranslateFWLMessage(CFWL_Message* pMessage) {
|
| GetApp()->GetWidgetMgrDelegate()->OnProcessMessageToForm(pMessage);
|
| }
|
| -void CXFA_FFField::OnProcessMessage(CFWL_Message* pMessage) {}
|
| -
|
| -void CXFA_FFField::OnProcessEvent(CFWL_Event* pEvent) {
|
| - switch (pEvent->GetClassID()) {
|
| - case CFWL_EventType::Mouse: {
|
| - CFWL_EvtMouse* event = (CFWL_EvtMouse*)pEvent;
|
| - if (event->m_dwCmd == FWL_MouseCommand::Enter) {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_MouseEnter;
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseEnter, &eParam);
|
| - } else if (event->m_dwCmd == FWL_MouseCommand::Leave) {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_MouseExit;
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseExit, &eParam);
|
| - } else if (event->m_dwCmd == FWL_MouseCommand::LeftButtonDown) {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_MouseDown;
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseDown, &eParam);
|
| - } else if (event->m_dwCmd == FWL_MouseCommand::LeftButtonUp) {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_MouseUp;
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_MouseUp, &eParam);
|
| - }
|
| - break;
|
| - }
|
| - case CFWL_EventType::Click: {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_Click;
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
|
| - break;
|
| - }
|
| - default:
|
| - break;
|
| - }
|
| -}
|
| -
|
| -void CXFA_FFField::OnDrawWidget(CFX_Graphics* pGraphics,
|
| - const CFX_Matrix* pMatrix) {}
|
|
|