Added methods to ListBox and ComboBox to check if it contains a certain item
parent
3e0a2dcd11
commit
a76acc67de
|
@ -470,6 +470,20 @@ namespace tgui
|
|||
ExpandDirection getExpandDirection() const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Returns whether the combo box contains the given item
|
||||
/// @return Does the combo box contain the item?
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool contains(const sf::String& item) const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Returns whether the combo box contains an item with the given id
|
||||
/// @return Does the combo box contain the id?
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool containsId(const sf::String& id) const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @internal
|
||||
/// This function is called when the widget is added to a container.
|
||||
|
|
|
@ -438,6 +438,20 @@ namespace tgui
|
|||
bool getAutoScroll() const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Returns whether the list box contains the given item
|
||||
/// @return Does the list box contain the item?
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool contains(const sf::String& item) const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Returns whether the list box contains an item with the given id
|
||||
/// @return Does the list box contain the id?
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
bool containsId(const sf::String& id) const;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Returns whether the mouse position (which is relative to the parent widget) lies on top of the widget
|
||||
///
|
||||
|
|
|
@ -466,6 +466,22 @@ namespace tgui
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool ComboBox::contains(const sf::String& item) const
|
||||
{
|
||||
const auto& items = getItems();
|
||||
return std::find(items.begin(), items.end(), item) != items.end();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool ComboBox::containsId(const sf::String& id) const
|
||||
{
|
||||
const auto& ids = getItemIds();
|
||||
return std::find(ids.begin(), ids.end(), id) != ids.end();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void ComboBox::setParent(Container* parent)
|
||||
{
|
||||
hideListBox();
|
||||
|
@ -632,8 +648,8 @@ namespace tgui
|
|||
|
||||
if (getItemCount() > 0)
|
||||
{
|
||||
auto items = getItems();
|
||||
auto& ids = getItemIds();
|
||||
const auto& items = getItems();
|
||||
const auto& ids = getItemIds();
|
||||
|
||||
bool itemIdsUsed = false;
|
||||
std::string itemList = "[" + Serializer::serialize(items[0]);
|
||||
|
|
|
@ -466,6 +466,20 @@ namespace tgui
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool ListBox::contains(const sf::String& item) const
|
||||
{
|
||||
return std::find_if(m_items.begin(), m_items.end(), [item](const Text& text){ return text.getString() == item; }) != m_items.end();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool ListBox::containsId(const sf::String& id) const
|
||||
{
|
||||
return std::find(m_itemIds.begin(), m_itemIds.end(), id) != m_itemIds.end();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool ListBox::mouseOnWidget(Vector2f pos) const
|
||||
{
|
||||
return FloatRect{getPosition().x, getPosition().y, getSize().x, getSize().y}.contains(pos);
|
||||
|
|
|
@ -195,6 +195,24 @@ TEST_CASE("[ComboBox]")
|
|||
REQUIRE(comboBox->getSelectedItemId() == "");
|
||||
REQUIRE(comboBox->getSelectedItemIndex() == -1);
|
||||
}
|
||||
|
||||
SECTION("Contains")
|
||||
{
|
||||
REQUIRE(!comboBox->contains("Item 1"));
|
||||
REQUIRE(!comboBox->containsId("1"));
|
||||
|
||||
comboBox->addItem("Item 1", "1");
|
||||
REQUIRE(comboBox->contains("Item 1"));
|
||||
REQUIRE(comboBox->containsId("1"));
|
||||
|
||||
comboBox->addItem("Item 2");
|
||||
REQUIRE(comboBox->contains("Item 2"));
|
||||
REQUIRE(!comboBox->containsId("2"));
|
||||
|
||||
comboBox->removeItem("Item 1");
|
||||
REQUIRE(!comboBox->contains("Item 1"));
|
||||
REQUIRE(!comboBox->containsId("1"));
|
||||
}
|
||||
|
||||
SECTION("ItemsToDisplay")
|
||||
{
|
||||
|
|
|
@ -227,7 +227,25 @@ TEST_CASE("[ListBox]")
|
|||
REQUIRE(listBox->getSelectedItemId() == "");
|
||||
REQUIRE(listBox->getSelectedItemIndex() == -1);
|
||||
}
|
||||
|
||||
|
||||
SECTION("Contains")
|
||||
{
|
||||
REQUIRE(!listBox->contains("Item 1"));
|
||||
REQUIRE(!listBox->containsId("1"));
|
||||
|
||||
listBox->addItem("Item 1", "1");
|
||||
REQUIRE(listBox->contains("Item 1"));
|
||||
REQUIRE(listBox->containsId("1"));
|
||||
|
||||
listBox->addItem("Item 2");
|
||||
REQUIRE(listBox->contains("Item 2"));
|
||||
REQUIRE(!listBox->containsId("2"));
|
||||
|
||||
listBox->removeItem("Item 1");
|
||||
REQUIRE(!listBox->contains("Item 1"));
|
||||
REQUIRE(!listBox->containsId("1"));
|
||||
}
|
||||
|
||||
SECTION("ItemHeight")
|
||||
{
|
||||
listBox->setItemHeight(20);
|
||||
|
|
Loading…
Reference in New Issue