OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "xfa/fwl/core/cfwl_listbox.h" | 7 #include "xfa/fwl/core/cfwl_listbox.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 pItem->m_dwStates = bSelect ? FWL_ITEMSTATE_LTB_Selected : 0; | 40 pItem->m_dwStates = bSelect ? FWL_ITEMSTATE_LTB_Selected : 0; |
41 m_ItemArray.push_back(std::move(pItem)); | 41 m_ItemArray.push_back(std::move(pItem)); |
42 return m_ItemArray.back().get(); | 42 return m_ItemArray.back().get(); |
43 } | 43 } |
44 | 44 |
45 bool CFWL_ListBox::DeleteString(CFWL_ListItem* pItem) { | 45 bool CFWL_ListBox::DeleteString(CFWL_ListItem* pItem) { |
46 int32_t nIndex = GetItemIndex(GetWidget(), pItem); | 46 int32_t nIndex = GetItemIndex(GetWidget(), pItem); |
47 if (nIndex < 0 || static_cast<size_t>(nIndex) >= m_ItemArray.size()) | 47 if (nIndex < 0 || static_cast<size_t>(nIndex) >= m_ItemArray.size()) |
48 return false; | 48 return false; |
49 | 49 |
50 int32_t iCount = CountItems(m_pIface.get()); | |
51 int32_t iSel = nIndex + 1; | 50 int32_t iSel = nIndex + 1; |
52 if (iSel >= iCount) { | 51 if (iSel >= CountItems(m_pIface.get())) |
53 iSel = nIndex - 1; | 52 iSel = nIndex - 1; |
54 if (iSel < 0) | |
55 iSel = -1; | |
56 } | |
57 if (iSel >= 0) { | 53 if (iSel >= 0) { |
58 CFWL_ListItem* pSel = | 54 CFWL_ListItem* pSel = |
59 static_cast<CFWL_ListItem*>(GetItem(m_pIface.get(), iSel)); | 55 static_cast<CFWL_ListItem*>(GetItem(m_pIface.get(), iSel)); |
60 pSel->m_dwStates |= FWL_ITEMSTATE_LTB_Selected; | 56 pSel->m_dwStates |= FWL_ITEMSTATE_LTB_Selected; |
61 } | 57 } |
62 m_ItemArray.erase(m_ItemArray.begin() + nIndex); | 58 m_ItemArray.erase(m_ItemArray.begin() + nIndex); |
63 return true; | 59 return true; |
64 } | 60 } |
65 | 61 |
66 void CFWL_ListBox::DeleteAll() { | 62 void CFWL_ListBox::DeleteAll() { |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 uint32_t CFWL_ListBox::GetItemCheckState(IFWL_Widget* pWidget, | 178 uint32_t CFWL_ListBox::GetItemCheckState(IFWL_Widget* pWidget, |
183 CFWL_ListItem* pItem) { | 179 CFWL_ListItem* pItem) { |
184 return static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState; | 180 return static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState; |
185 } | 181 } |
186 | 182 |
187 void CFWL_ListBox::SetItemCheckState(IFWL_Widget* pWidget, | 183 void CFWL_ListBox::SetItemCheckState(IFWL_Widget* pWidget, |
188 CFWL_ListItem* pItem, | 184 CFWL_ListItem* pItem, |
189 uint32_t dwCheckState) { | 185 uint32_t dwCheckState) { |
190 static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState = dwCheckState; | 186 static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState = dwCheckState; |
191 } | 187 } |
OLD | NEW |