Fold virtual CPWL_Wnd::OnCreate into subclass constructors.

All they do is twiddle their own CreateParameters.  Since we
now have the create paramters earlier, we need not have a
special method for this.

Change-Id: I5b94c578275c71516afb87bd085f5fb58b3962e2
Reviewed-on: https://pdfium-review.googlesource.com/c/44730
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/pwl/cpwl_button.cpp b/fpdfsdk/pwl/cpwl_button.cpp
index 9f746cf..cf0f348 100644
--- a/fpdfsdk/pwl/cpwl_button.cpp
+++ b/fpdfsdk/pwl/cpwl_button.cpp
@@ -12,14 +12,12 @@
 
 CPWL_Button::CPWL_Button(const CreateParams& cp,
                          std::unique_ptr<PrivateData> pAttachedData)
-    : CPWL_Wnd(cp, std::move(pAttachedData)) {}
+    : CPWL_Wnd(cp, std::move(pAttachedData)) {
+  GetCreationParams()->eCursorType = FXCT_HAND;
+}
 
 CPWL_Button::~CPWL_Button() = default;
 
-void CPWL_Button::OnCreate(CreateParams* pParamsToAdjust) {
-  pParamsToAdjust->eCursorType = FXCT_HAND;
-}
-
 bool CPWL_Button::OnLButtonDown(const CFX_PointF& point, uint32_t nFlag) {
   CPWL_Wnd::OnLButtonDown(point, nFlag);
   m_bMouseDown = true;
diff --git a/fpdfsdk/pwl/cpwl_button.h b/fpdfsdk/pwl/cpwl_button.h
index 5835b7a..6d4aec6 100644
--- a/fpdfsdk/pwl/cpwl_button.h
+++ b/fpdfsdk/pwl/cpwl_button.h
@@ -18,7 +18,6 @@
   ~CPWL_Button() override;
 
   // CPWL_Wnd
-  void OnCreate(CreateParams* pParamsToAdjust) override;
   bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag) override;
   bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) override;
 
diff --git a/fpdfsdk/pwl/cpwl_combo_box.cpp b/fpdfsdk/pwl/cpwl_combo_box.cpp
index eef4496..eefe017 100644
--- a/fpdfsdk/pwl/cpwl_combo_box.cpp
+++ b/fpdfsdk/pwl/cpwl_combo_box.cpp
@@ -160,15 +160,13 @@
 
 CPWL_ComboBox::CPWL_ComboBox(const CreateParams& cp,
                              std::unique_ptr<PrivateData> pAttachedData)
-    : CPWL_Wnd(cp, std::move(pAttachedData)) {}
+    : CPWL_Wnd(cp, std::move(pAttachedData)) {
+  GetCreationParams()->dwFlags &= ~PWS_HSCROLL;
+  GetCreationParams()->dwFlags &= ~PWS_VSCROLL;
+}
 
 CPWL_ComboBox::~CPWL_ComboBox() = default;
 
-void CPWL_ComboBox::OnCreate(CreateParams* pParamsToAdjust) {
-  pParamsToAdjust->dwFlags &= ~PWS_HSCROLL;
-  pParamsToAdjust->dwFlags &= ~PWS_VSCROLL;
-}
-
 void CPWL_ComboBox::OnDestroy() {
   // Until cleanup takes place in the virtual destructor for CPWL_Wnd
   // subclasses, implement the virtual OnDestroy method that does the
diff --git a/fpdfsdk/pwl/cpwl_combo_box.h b/fpdfsdk/pwl/cpwl_combo_box.h
index ee6ed90..c059b5c 100644
--- a/fpdfsdk/pwl/cpwl_combo_box.h
+++ b/fpdfsdk/pwl/cpwl_combo_box.h
@@ -51,7 +51,6 @@
   CPWL_Edit* GetEdit() const { return m_pEdit.Get(); }
 
   // CPWL_Wnd:
-  void OnCreate(CreateParams* pParamsToAdjust) override;
   void OnDestroy() override;
   bool OnKeyDown(uint16_t nChar, uint32_t nFlag) override;
   bool OnChar(uint16_t nChar, uint32_t nFlag) override;
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
index 1b398a6..af74213 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
@@ -21,16 +21,15 @@
 CPWL_EditCtrl::CPWL_EditCtrl(const CreateParams& cp,
                              std::unique_ptr<PrivateData> pAttachedData)
     : CPWL_Wnd(cp, std::move(pAttachedData)),
-      m_pEdit(pdfium::MakeUnique<CPWL_EditImpl>()) {}
+      m_pEdit(pdfium::MakeUnique<CPWL_EditImpl>()) {
+  GetCreationParams()->eCursorType = FXCT_VBEAM;
+}
 
 CPWL_EditCtrl::~CPWL_EditCtrl() = default;
 
-void CPWL_EditCtrl::OnCreate(CreateParams* pParamsToAdjust) {
-  pParamsToAdjust->eCursorType = FXCT_VBEAM;
-}
 
 void CPWL_EditCtrl::OnCreated() {
-  SetFontSize(GetCreationParams().fFontSize);
+  SetFontSize(GetCreationParams()->fFontSize);
   m_pEdit->SetFontMap(GetFontMap());
   m_pEdit->SetNotify(this);
   m_pEdit->Initialize();
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.h b/fpdfsdk/pwl/cpwl_edit_ctrl.h
index cb89943..aeeb7f6 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.h
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.h
@@ -46,7 +46,6 @@
   void SetReadyToInput();
 
   // CPWL_Wnd:
-  void OnCreate(CreateParams* pParamsToAdjust) override;
   void OnCreated() override;
   bool OnKeyDown(uint16_t nChar, uint32_t nFlag) override;
   bool OnChar(uint16_t nChar, uint32_t nFlag) override;
diff --git a/fpdfsdk/pwl/cpwl_list_box.cpp b/fpdfsdk/pwl/cpwl_list_box.cpp
index 003fe11..827742b 100644
--- a/fpdfsdk/pwl/cpwl_list_box.cpp
+++ b/fpdfsdk/pwl/cpwl_list_box.cpp
@@ -79,7 +79,7 @@
 
   SetHoverSel(HasFlag(PLBS_HOVERSEL));
   m_pList->SetMultipleSel(HasFlag(PLBS_MULTIPLESEL));
-  m_pList->SetFontSize(GetCreationParams().fFontSize);
+  m_pList->SetFontSize(GetCreationParams()->fFontSize);
 
   m_bHoverSel = HasFlag(PLBS_HOVERSEL);
 }
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.cpp b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
index 0209ba0..d3c8e84 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.cpp
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
@@ -111,14 +111,12 @@
                              PWL_SBBUTTON_TYPE eButtonType)
     : CPWL_Wnd(cp, std::move(pAttachedData)),
       m_eScrollBarType(eScrollBarType),
-      m_eSBButtonType(eButtonType) {}
+      m_eSBButtonType(eButtonType) {
+  GetCreationParams()->eCursorType = FXCT_ARROW;
+}
 
 CPWL_SBButton::~CPWL_SBButton() = default;
 
-void CPWL_SBButton::OnCreate(CreateParams* pParamsToAdjust) {
-  pParamsToAdjust->eCursorType = FXCT_ARROW;
-}
-
 void CPWL_SBButton::DrawThisAppearance(CFX_RenderDevice* pDevice,
                                        const CFX_Matrix& mtUser2Device) {
   if (!IsVisible())
@@ -302,14 +300,12 @@
 CPWL_ScrollBar::CPWL_ScrollBar(const CreateParams& cp,
                                std::unique_ptr<PrivateData> pAttachedData,
                                PWL_SCROLLBAR_TYPE sbType)
-    : CPWL_Wnd(cp, std::move(pAttachedData)), m_sbType(sbType) {}
+    : CPWL_Wnd(cp, std::move(pAttachedData)), m_sbType(sbType) {
+  GetCreationParams()->eCursorType = FXCT_ARROW;
+}
 
 CPWL_ScrollBar::~CPWL_ScrollBar() = default;
 
-void CPWL_ScrollBar::OnCreate(CreateParams* pParamsToAdjust) {
-  pParamsToAdjust->eCursorType = FXCT_ARROW;
-}
-
 void CPWL_ScrollBar::OnDestroy() {
   // Until cleanup takes place in the virtual destructor for CPWL_Wnd
   // subclasses, implement the virtual OnDestroy method that does the
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.h b/fpdfsdk/pwl/cpwl_scroll_bar.h
index 82c995b..414f718 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.h
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.h
@@ -50,7 +50,6 @@
   ~CPWL_SBButton() override;
 
   // CPWL_Wnd
-  void OnCreate(CreateParams* pParamsToAdjust) override;
   void DrawThisAppearance(CFX_RenderDevice* pDevice,
                           const CFX_Matrix& mtUser2Device) override;
   bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag) override;
@@ -121,7 +120,6 @@
   ~CPWL_ScrollBar() override;
 
   // CPWL_Wnd:
-  void OnCreate(CreateParams* pParamsToAdjust) override;
   void OnDestroy() override;
   bool RePosChildWnd() override;
   void DrawThisAppearance(CFX_RenderDevice* pDevice,
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 90aa15c..66b069d 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -122,7 +122,6 @@
 void CPWL_Wnd::Realize() {
   ASSERT(!m_bCreated);
 
-  OnCreate(&m_CreationParams);
   m_CreationParams.rcRectWnd.Normalize();
   m_rcWindow = m_CreationParams.rcRectWnd;
   m_rcClip = m_rcWindow;
@@ -144,8 +143,6 @@
   m_bCreated = true;
 }
 
-void CPWL_Wnd::OnCreate(CreateParams* pParamsToAdjust) {}
-
 void CPWL_Wnd::OnCreated() {}
 
 void CPWL_Wnd::OnDestroy() {}
@@ -604,10 +601,8 @@
 
 void CPWL_Wnd::SetCursor() {
   if (IsValid()) {
-    if (CFX_SystemHandler* pSH = GetSystemHandler()) {
-      int32_t nCursorType = GetCreationParams().eCursorType;
-      pSH->SetCursor(nCursorType);
-    }
+    if (CFX_SystemHandler* pSH = GetSystemHandler())
+      pSH->SetCursor(GetCreationParams()->eCursorType);
   }
 }
 
diff --git a/fpdfsdk/pwl/cpwl_wnd.h b/fpdfsdk/pwl/cpwl_wnd.h
index 64fe131..339c336 100644
--- a/fpdfsdk/pwl/cpwl_wnd.h
+++ b/fpdfsdk/pwl/cpwl_wnd.h
@@ -260,13 +260,12 @@
   virtual void DrawThisAppearance(CFX_RenderDevice* pDevice,
                                   const CFX_Matrix& mtUser2Device);
 
-  virtual void OnCreate(CreateParams* pParamsToAdjust);
   virtual void OnCreated();
   virtual void OnDestroy();
 
   bool IsNotifying() const { return m_bNotifying; }
   bool IsValid() const { return m_bCreated; }
-  const CreateParams& GetCreationParams() const { return m_CreationParams; }
+  CreateParams* GetCreationParams() { return &m_CreationParams; }
 
   // Returns |true| iff this instance is still allocated.
   bool InvalidateRectMove(const CFX_FloatRect& rcOld,