blob: 4808c3626b316c6773d614f87d5a99def56d5097 [file] [log] [blame] [edit]
#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;
}
void ContainerComponent::forEachChild(std::function<bool(Component*)> predicate)
{
for (Component* child : m_children)
{
if (!predicate(child))
{
continue;
}
if (child->is<ContainerComponent>())
{
child->as<ContainerComponent>()->forEachChild(predicate);
}
}
}