Move CXFA_Node::UpdateUIDisplay() to CFXA_FFDocView::UpdateUIDisplay()

Removes knowlege of CXFA_FFWidget from cfxa_node.h.

Change-Id: Iae3f84235e160aab04f5503e07a5e26772bc345b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/63811
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.cpp b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
index ba05835..84a58a1 100644
--- a/xfa/fxfa/cxfa_ffdatetimeedit.cpp
+++ b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fwl/cfwl_widget.h"
 #include "xfa/fxfa/cxfa_eventparam.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
+#include "xfa/fxfa/cxfa_ffdocview.h"
 #include "xfa/fxfa/parser/cxfa_localevalue.h"
 #include "xfa/fxfa/parser/cxfa_para.h"
 #include "xfa/fxfa/parser/cxfa_value.h"
@@ -146,7 +147,7 @@
   if (!m_pNode->SetValue(XFA_VALUEPICTURE_Edit, pPicker->GetEditText()))
     return false;
 
-  m_pNode->UpdateUIDisplay(GetDoc()->GetDocView(), this);
+  GetDoc()->GetDocView()->UpdateUIDisplay(m_pNode.Get(), this);
   return true;
 }
 
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 97a2883..7c21efb 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -194,6 +194,19 @@
   UnlockUpdate();
 }
 
+void CXFA_FFDocView::UpdateUIDisplay(CXFA_Node* pNode, CXFA_FFWidget* pExcept) {
+  CXFA_FFWidget* pWidget = GetWidgetForNode(pNode);
+  for (; pWidget; pWidget = pWidget->GetNextFFWidget()) {
+    if (pWidget == pExcept || !pWidget->IsLoaded() ||
+        (pNode->GetFFWidgetType() != XFA_FFWidgetType::kCheckButton &&
+         pWidget->IsFocused())) {
+      continue;
+    }
+    pWidget->UpdateFWLData();
+    pWidget->InvalidateRect();
+  }
+}
+
 int32_t CXFA_FFDocView::CountPageViews() const {
   return m_pXFADocLayout ? m_pXFADocLayout->CountPages() : 0;
 }
@@ -215,7 +228,7 @@
     return false;
 
   pNode->ResetData();
-  pNode->UpdateUIDisplay(this, nullptr);
+  UpdateUIDisplay(pNode, nullptr);
   CXFA_Validate* validate = pNode->GetValidateIfExists();
   if (!validate)
     return true;
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index 092616e..04ee03a 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -54,7 +54,10 @@
   int32_t DoLayout();
   void StopLayout();
   int32_t GetLayoutStatus() const { return m_iStatus; }
+
   void UpdateDocView();
+  void UpdateUIDisplay(CXFA_Node* pNode, CXFA_FFWidget* pExcept);
+
   int32_t CountPageViews() const;
   CXFA_FFPageView* GetPageView(int32_t nIndex) const;
 
@@ -75,7 +78,6 @@
   void RunDocClose();
 
   void ProcessValueChanged(CXFA_Node* node);
-
   void SetChangeMark();
 
   void AddValidateNode(CXFA_Node* node);
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index f9cc0ca..d610cc4 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -388,12 +388,12 @@
     pDocView->AddCalculateNodeNotify(pSender);
     if (eType == XFA_Element::Value || bIsContainerNode) {
       if (bIsContainerNode) {
-        pWidgetNode->UpdateUIDisplay(m_pDoc->GetDocView(), nullptr);
+        m_pDoc->GetDocView()->UpdateUIDisplay(pWidgetNode, nullptr);
         pDocView->AddCalculateNode(pWidgetNode);
         pDocView->AddValidateNode(pWidgetNode);
       } else if (pWidgetNode->GetParent()->GetElementType() ==
                  XFA_Element::ExclGroup) {
-        pWidgetNode->UpdateUIDisplay(m_pDoc->GetDocView(), nullptr);
+        m_pDoc->GetDocView()->UpdateUIDisplay(pWidgetNode, nullptr);
       }
       return;
     }
diff --git a/xfa/fxfa/cxfa_fftextedit.cpp b/xfa/fxfa/cxfa_fftextedit.cpp
index 5ac9f57..1754b06 100644
--- a/xfa/fxfa/cxfa_fftextedit.cpp
+++ b/xfa/fxfa/cxfa_fftextedit.cpp
@@ -19,6 +19,7 @@
 #include "xfa/fxfa/cxfa_eventparam.h"
 #include "xfa/fxfa/cxfa_ffapp.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
+#include "xfa/fxfa/cxfa_ffdocview.h"
 #include "xfa/fxfa/parser/cxfa_barcode.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_para.h"
@@ -186,7 +187,7 @@
 bool CXFA_FFTextEdit::CommitData() {
   WideString wsText = ToEdit(GetNormalWidget())->GetText();
   if (m_pNode->SetValue(XFA_VALUEPICTURE_Edit, wsText)) {
-    m_pNode->UpdateUIDisplay(GetDoc()->GetDocView(), this);
+    GetDoc()->GetDocView()->UpdateUIDisplay(m_pNode.Get(), this);
     return true;
   }
   ValidateNumberField(wsText);
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index f5fbd3c..44ff533 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -40,7 +40,6 @@
 #include "xfa/fxfa/cxfa_ffapp.h"
 #include "xfa/fxfa/cxfa_ffdocview.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
-#include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_fontmgr.h"
 #include "xfa/fxfa/cxfa_textprovider.h"
 #include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
@@ -2398,7 +2397,7 @@
 
   if (GetRawValue() != EventParam.m_wsResult) {
     SetValue(XFA_VALUEPICTURE_Raw, EventParam.m_wsResult);
-    UpdateUIDisplay(pDocView, nullptr);
+    pDocView->UpdateUIDisplay(this, nullptr);
   }
   return XFA_EventError::kSuccess;
 }
@@ -3070,20 +3069,6 @@
   pElement->SetAttribute(L"href", wsHref);
 }
 
-void CXFA_Node::UpdateUIDisplay(CXFA_FFDocView* pDocView,
-                                CXFA_FFWidget* pExcept) {
-  CXFA_FFWidget* pWidget = pDocView->GetWidgetForNode(this);
-  for (; pWidget; pWidget = pWidget->GetNextFFWidget()) {
-    if (pWidget == pExcept || !pWidget->IsLoaded() ||
-        (GetFFWidgetType() != XFA_FFWidgetType::kCheckButton &&
-         pWidget->IsFocused())) {
-      continue;
-    }
-    pWidget->UpdateFWLData();
-    pWidget->InvalidateRect();
-  }
-}
-
 void CXFA_Node::CalcCaptionSize(CXFA_FFDoc* doc, CFX_SizeF* pszCap) {
   CXFA_Caption* caption = GetCaptionIfExists();
   if (!caption || !caption->IsVisible())
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index aded300..c8ba273 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -32,7 +32,6 @@
 class CXFA_EventParam;
 class CXFA_FFDoc;
 class CXFA_FFDocView;
-class CXFA_FFWidget;
 class CXFA_Font;
 class CXFA_Keep;
 class CXFA_Margin;
@@ -304,7 +303,6 @@
   RetainPtr<CFX_DIBitmap> GetImageEditImage();
   void SetImageImage(const RetainPtr<CFX_DIBitmap>& newImage);
   void SetImageEditImage(const RetainPtr<CFX_DIBitmap>& newImage);
-  void UpdateUIDisplay(CXFA_FFDocView* pDocView, CXFA_FFWidget* pExcept);
 
   RetainPtr<CFGAS_GEFont> GetFDEFont(CXFA_FFDoc* doc);