blob: 2ed1bfe1024409deec277cef07b4dc860392a11a [file] [log] [blame]
#include "rive/container_component.hpp"
using namespace rive;
void ContainerComponent::addChild(Component* component) { m_children.push_back(component); }
bool ContainerComponent::collapse(bool value)
{
if (!Super::collapse(value))
{
return false;
}
for (Component* child : m_children)
{
child->collapse(value);
}
return true;
}
bool ContainerComponent::forAll(std::function<bool(Component*)> predicate)
{
if (!predicate(this))
{
return false;
}
forEachChild(predicate);
return true;
}
bool ContainerComponent::forEachChild(std::function<bool(Component*)> predicate)
{
for (Component* child : m_children)
{
if (!predicate(child))
{
return false;
}
if (child->is<ContainerComponent>() &&
!child->as<ContainerComponent>()->forEachChild(predicate))
{
return false;
}
}
return true;
}