diff options
Diffstat (limited to 'fpdfsdk/pwl/cpwl_combo_box.cpp')
-rw-r--r-- | fpdfsdk/pwl/cpwl_combo_box.cpp | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/fpdfsdk/pwl/cpwl_combo_box.cpp b/fpdfsdk/pwl/cpwl_combo_box.cpp index 70893ca437..887b0225e5 100644 --- a/fpdfsdk/pwl/cpwl_combo_box.cpp +++ b/fpdfsdk/pwl/cpwl_combo_box.cpp @@ -272,10 +272,6 @@ void CPWL_ComboBox::CreateEdit(const CreateParams& cp) { if (m_pEdit) return; - m_pEdit = new CPWL_Edit(CloneAttachedData()); - m_pEdit->AttachFFLData(m_pFormFiller.Get()); - AddChild(m_pEdit.Get()); - CreateParams ecp = cp; ecp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PES_CENTER | PES_AUTOSCROLL | PES_UNDO; @@ -289,6 +285,11 @@ void CPWL_ComboBox::CreateEdit(const CreateParams& cp) { ecp.rcRectWnd = CFX_FloatRect(); ecp.dwBorderWidth = 0; ecp.nBorderStyle = BorderStyle::SOLID; + + auto pEdit = pdfium::MakeUnique<CPWL_Edit>(CloneAttachedData()); + m_pEdit = pEdit.get(); + m_pEdit->AttachFFLData(m_pFormFiller.Get()); + AddChild(std::move(pEdit)); m_pEdit->Realize(ecp); } @@ -296,9 +297,6 @@ void CPWL_ComboBox::CreateButton(const CreateParams& cp) { if (m_pButton) return; - m_pButton = new CPWL_CBButton(CloneAttachedData()); - AddChild(m_pButton.Get()); - CreateParams bcp = cp; bcp.dwFlags = PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND; bcp.sBackgroundColor = CFX_Color(CFX_Color::kRGB, 220.0f / 255.0f, @@ -307,6 +305,10 @@ void CPWL_ComboBox::CreateButton(const CreateParams& cp) { bcp.dwBorderWidth = 2; bcp.nBorderStyle = BorderStyle::BEVELED; bcp.eCursorType = FXCT_ARROW; + + auto pButton = pdfium::MakeUnique<CPWL_CBButton>(CloneAttachedData()); + m_pButton = pButton.get(); + AddChild(std::move(pButton)); m_pButton->Realize(bcp); } @@ -314,10 +316,6 @@ void CPWL_ComboBox::CreateListBox(const CreateParams& cp) { if (m_pList) return; - m_pList = new CPWL_CBListBox(CloneAttachedData()); - m_pList->AttachFFLData(m_pFormFiller.Get()); - AddChild(m_pList.Get()); - CreateParams lcp = cp; lcp.dwFlags = PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PLBS_HOVERSEL | PWS_VSCROLL; @@ -335,6 +333,10 @@ void CPWL_ComboBox::CreateListBox(const CreateParams& cp) { if (cp.sBackgroundColor.nColorType == CFX_Color::kTransparent) lcp.sBackgroundColor = PWL_DEFAULT_WHITECOLOR; + auto pList = pdfium::MakeUnique<CPWL_CBListBox>(CloneAttachedData()); + m_pList = pList.get(); + m_pList->AttachFFLData(m_pFormFiller.Get()); + AddChild(std::move(pList)); m_pList->Realize(lcp); } |