diff options
Diffstat (limited to 'xfa/fwl/core/cfwl_combobox.cpp')
-rw-r--r-- | xfa/fwl/core/cfwl_combobox.cpp | 136 |
1 files changed, 61 insertions, 75 deletions
diff --git a/xfa/fwl/core/cfwl_combobox.cpp b/xfa/fwl/core/cfwl_combobox.cpp index 60b6e507d1..fa2698be6e 100644 --- a/xfa/fwl/core/cfwl_combobox.cpp +++ b/xfa/fwl/core/cfwl_combobox.cpp @@ -24,7 +24,8 @@ const IFWL_ComboBox* ToComboBox(const IFWL_Widget* widget) { } // namespace -CFWL_ComboBox::CFWL_ComboBox(const IFWL_App* app) : CFWL_Widget(app) {} +CFWL_ComboBox::CFWL_ComboBox(const IFWL_App* app) + : CFWL_Widget(app), m_fMaxListHeight(0), m_fItemHeight(0) {} CFWL_ComboBox::~CFWL_ComboBox() {} @@ -32,7 +33,7 @@ void CFWL_ComboBox::Initialize() { ASSERT(!m_pIface); m_pIface = pdfium::MakeUnique<IFWL_ComboBox>( - m_pApp, pdfium::MakeUnique<CFWL_WidgetProperties>(&m_comboBoxData)); + m_pApp, pdfium::MakeUnique<CFWL_WidgetProperties>(this)); CFWL_Widget::Initialize(); } @@ -41,8 +42,8 @@ int32_t CFWL_ComboBox::AddString(const CFX_WideStringC& wsText) { std::unique_ptr<CFWL_ComboBoxItem> pItem(new CFWL_ComboBoxItem); pItem->m_wsText = wsText; pItem->m_dwStyles = 0; - m_comboBoxData.m_ItemArray.push_back(std::move(pItem)); - return m_comboBoxData.m_ItemArray.size() - 1; + m_ItemArray.push_back(std::move(pItem)); + return m_ItemArray.size() - 1; } int32_t CFWL_ComboBox::AddString(const CFX_WideStringC& wsText, @@ -51,31 +52,30 @@ int32_t CFWL_ComboBox::AddString(const CFX_WideStringC& wsText, pItem->m_wsText = wsText; pItem->m_dwStyles = 0; pItem->m_pDIB = pIcon; - m_comboBoxData.m_ItemArray.push_back(std::move(pItem)); - return m_comboBoxData.m_ItemArray.size() - 1; + m_ItemArray.push_back(std::move(pItem)); + return m_ItemArray.size() - 1; } bool CFWL_ComboBox::RemoveAt(int32_t iIndex) { - if (iIndex < 0 || - static_cast<size_t>(iIndex) >= m_comboBoxData.m_ItemArray.size()) { + if (iIndex < 0 || static_cast<size_t>(iIndex) >= m_ItemArray.size()) { return false; } - m_comboBoxData.m_ItemArray.erase(m_comboBoxData.m_ItemArray.begin() + iIndex); + m_ItemArray.erase(m_ItemArray.begin() + iIndex); return true; } void CFWL_ComboBox::RemoveAll() { - m_comboBoxData.m_ItemArray.clear(); + m_ItemArray.clear(); } int32_t CFWL_ComboBox::CountItems() { - return m_comboBoxData.CountItems(GetWidget()); + return CountItems(GetWidget()); } FWL_Error CFWL_ComboBox::GetTextByIndex(int32_t iIndex, CFX_WideString& wsText) { - CFWL_ComboBoxItem* pItem = static_cast<CFWL_ComboBoxItem*>( - m_comboBoxData.GetItem(m_pIface.get(), iIndex)); + CFWL_ComboBoxItem* pItem = + static_cast<CFWL_ComboBoxItem*>(GetItem(m_pIface.get(), iIndex)); if (!pItem) return FWL_Error::Indefinite; wsText = pItem->m_wsText; @@ -141,13 +141,13 @@ bool CFWL_ComboBox::EditUndo(const IFDE_TxtEdtDoRecord* pRecord) { } FWL_Error CFWL_ComboBox::SetMaxListHeight(FX_FLOAT fMaxHeight) { - m_comboBoxData.m_fMaxListHeight = fMaxHeight; + m_fMaxListHeight = fMaxHeight; return FWL_Error::Succeeded; } FWL_Error CFWL_ComboBox::SetItemData(int32_t iIndex, void* pData) { - CFWL_ComboBoxItem* pItem = static_cast<CFWL_ComboBoxItem*>( - m_comboBoxData.GetItem(m_pIface.get(), iIndex)); + CFWL_ComboBoxItem* pItem = + static_cast<CFWL_ComboBoxItem*>(GetItem(m_pIface.get(), iIndex)); if (!pItem) return FWL_Error::Indefinite; pItem->m_pData = pData; @@ -155,8 +155,8 @@ FWL_Error CFWL_ComboBox::SetItemData(int32_t iIndex, void* pData) { } void* CFWL_ComboBox::GetItemData(int32_t iIndex) { - CFWL_ComboBoxItem* pItem = static_cast<CFWL_ComboBoxItem*>( - m_comboBoxData.GetItem(m_pIface.get(), iIndex)); + CFWL_ComboBoxItem* pItem = + static_cast<CFWL_ComboBoxItem*>(GetItem(m_pIface.get(), iIndex)); return pItem ? pItem->m_pData : nullptr; } @@ -237,34 +237,25 @@ FWL_Error CFWL_ComboBox::EditModifyStylesEx(uint32_t dwStylesExAdded, : FWL_Error::Indefinite; } -CFWL_ComboBox::CFWL_ComboBoxDP::CFWL_ComboBoxDP() { - m_fItemHeight = 0; - m_fMaxListHeight = 0; -} - -CFWL_ComboBox::CFWL_ComboBoxDP::~CFWL_ComboBoxDP() {} - -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::GetCaption( - IFWL_Widget* pWidget, - CFX_WideString& wsCaption) { +FWL_Error CFWL_ComboBox::GetCaption(IFWL_Widget* pWidget, + CFX_WideString& wsCaption) { return FWL_Error::Succeeded; } -int32_t CFWL_ComboBox::CFWL_ComboBoxDP::CountItems(const IFWL_Widget* pWidget) { +int32_t CFWL_ComboBox::CountItems(const IFWL_Widget* pWidget) { return m_ItemArray.size(); } -IFWL_ListItem* CFWL_ComboBox::CFWL_ComboBoxDP::GetItem( - const IFWL_Widget* pWidget, - int32_t nIndex) { +IFWL_ListItem* CFWL_ComboBox::GetItem(const IFWL_Widget* pWidget, + int32_t nIndex) { if (nIndex < 0 || static_cast<size_t>(nIndex) >= m_ItemArray.size()) return nullptr; return m_ItemArray[nIndex].get(); } -int32_t CFWL_ComboBox::CFWL_ComboBoxDP::GetItemIndex(IFWL_Widget* pWidget, - IFWL_ListItem* pItem) { +int32_t CFWL_ComboBox::GetItemIndex(IFWL_Widget* pWidget, + IFWL_ListItem* pItem) { auto it = std::find_if( m_ItemArray.begin(), m_ItemArray.end(), [pItem](const std::unique_ptr<CFWL_ComboBoxItem>& candidate) { @@ -273,9 +264,9 @@ int32_t CFWL_ComboBox::CFWL_ComboBoxDP::GetItemIndex(IFWL_Widget* pWidget, return it != m_ItemArray.end() ? it - m_ItemArray.begin() : -1; } -bool CFWL_ComboBox::CFWL_ComboBoxDP::SetItemIndex(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - int32_t nIndex) { +bool CFWL_ComboBox::SetItemIndex(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + int32_t nIndex) { if (nIndex < 0 || static_cast<size_t>(nIndex) >= m_ItemArray.size()) return false; @@ -283,25 +274,25 @@ bool CFWL_ComboBox::CFWL_ComboBoxDP::SetItemIndex(IFWL_Widget* pWidget, return true; } -uint32_t CFWL_ComboBox::CFWL_ComboBoxDP::GetItemStyles(IFWL_Widget* pWidget, - IFWL_ListItem* pItem) { +uint32_t CFWL_ComboBox::GetItemStyles(IFWL_Widget* pWidget, + IFWL_ListItem* pItem) { if (!pItem) return 0; return static_cast<CFWL_ComboBoxItem*>(pItem)->m_dwStyles; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::GetItemText(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - CFX_WideString& wsText) { +FWL_Error CFWL_ComboBox::GetItemText(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + CFX_WideString& wsText) { if (!pItem) return FWL_Error::Indefinite; wsText = static_cast<CFWL_ComboBoxItem*>(pItem)->m_wsText; return FWL_Error::Succeeded; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::GetItemRect(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - CFX_RectF& rtItem) { +FWL_Error CFWL_ComboBox::GetItemRect(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + CFX_RectF& rtItem) { if (!pItem) return FWL_Error::Indefinite; CFWL_ComboBoxItem* pComboItem = static_cast<CFWL_ComboBoxItem*>(pItem); @@ -310,78 +301,73 @@ FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::GetItemRect(IFWL_Widget* pWidget, return FWL_Error::Succeeded; } -void* CFWL_ComboBox::CFWL_ComboBoxDP::GetItemData(IFWL_Widget* pWidget, - IFWL_ListItem* pItem) { +void* CFWL_ComboBox::GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) { return pItem ? static_cast<CFWL_ComboBoxItem*>(pItem)->m_pData : nullptr; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::SetItemStyles(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - uint32_t dwStyle) { +FWL_Error CFWL_ComboBox::SetItemStyles(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + uint32_t dwStyle) { if (!pItem) return FWL_Error::Indefinite; static_cast<CFWL_ComboBoxItem*>(pItem)->m_dwStyles = dwStyle; return FWL_Error::Succeeded; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::SetItemText(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - const FX_WCHAR* pszText) { +FWL_Error CFWL_ComboBox::SetItemText(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + const FX_WCHAR* pszText) { if (!pItem) return FWL_Error::Indefinite; static_cast<CFWL_ComboBoxItem*>(pItem)->m_wsText = pszText; return FWL_Error::Succeeded; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::SetItemRect(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - const CFX_RectF& rtItem) { +FWL_Error CFWL_ComboBox::SetItemRect(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + const CFX_RectF& rtItem) { if (!pItem) return FWL_Error::Indefinite; static_cast<CFWL_ComboBoxItem*>(pItem)->m_rtItem = rtItem; return FWL_Error::Succeeded; } -FX_FLOAT CFWL_ComboBox::CFWL_ComboBoxDP::GetItemHeight(IFWL_Widget* pWidget) { +FX_FLOAT CFWL_ComboBox::GetItemHeight(IFWL_Widget* pWidget) { return m_fItemHeight; } -CFX_DIBitmap* CFWL_ComboBox::CFWL_ComboBoxDP::GetItemIcon( - IFWL_Widget* pWidget, - IFWL_ListItem* pItem) { +CFX_DIBitmap* CFWL_ComboBox::GetItemIcon(IFWL_Widget* pWidget, + IFWL_ListItem* pItem) { return pItem ? static_cast<CFWL_ComboBoxItem*>(pItem)->m_pDIB : nullptr; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::GetItemCheckRect(IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - CFX_RectF& rtCheck) { +FWL_Error CFWL_ComboBox::GetItemCheckRect(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + CFX_RectF& rtCheck) { rtCheck = static_cast<CFWL_ComboBoxItem*>(pItem)->m_rtCheckBox; return FWL_Error::Succeeded; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::SetItemCheckRect( - IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - const CFX_RectF& rtCheck) { +FWL_Error CFWL_ComboBox::SetItemCheckRect(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + const CFX_RectF& rtCheck) { static_cast<CFWL_ComboBoxItem*>(pItem)->m_rtCheckBox = rtCheck; return FWL_Error::Succeeded; } -uint32_t CFWL_ComboBox::CFWL_ComboBoxDP::GetItemCheckState( - IFWL_Widget* pWidget, - IFWL_ListItem* pItem) { +uint32_t CFWL_ComboBox::GetItemCheckState(IFWL_Widget* pWidget, + IFWL_ListItem* pItem) { return static_cast<CFWL_ComboBoxItem*>(pItem)->m_dwCheckState; } -FWL_Error CFWL_ComboBox::CFWL_ComboBoxDP::SetItemCheckState( - IFWL_Widget* pWidget, - IFWL_ListItem* pItem, - uint32_t dwCheckState) { +FWL_Error CFWL_ComboBox::SetItemCheckState(IFWL_Widget* pWidget, + IFWL_ListItem* pItem, + uint32_t dwCheckState) { static_cast<CFWL_ComboBoxItem*>(pItem)->m_dwCheckState = dwCheckState; return FWL_Error::Succeeded; } -FX_FLOAT CFWL_ComboBox::CFWL_ComboBoxDP::GetListHeight(IFWL_Widget* pWidget) { +FX_FLOAT CFWL_ComboBox::GetListHeight(IFWL_Widget* pWidget) { return m_fMaxListHeight; } |