mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 22:27:42 +00:00
LibCore: Add CObject::for_each_child(callback).
This commit is contained in:
parent
3654c33c56
commit
906fde8f8c
2 changed files with 13 additions and 3 deletions
|
@ -100,9 +100,10 @@ void CObject::dump_tree(int indent)
|
||||||
}
|
}
|
||||||
printf("%s{%p}\n", class_name(), this);
|
printf("%s{%p}\n", class_name(), this);
|
||||||
|
|
||||||
for (auto* child : children()) {
|
for_each_child([&] (auto& child) {
|
||||||
child->dump_tree(indent + 2);
|
child.dump_tree(indent + 2);
|
||||||
}
|
return IterationDecision::Continue;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void CObject::deferred_invoke(Function<void(CObject&)> invokee)
|
void CObject::deferred_invoke(Function<void(CObject&)> invokee)
|
||||||
|
|
|
@ -20,6 +20,15 @@ public:
|
||||||
Vector<CObject*>& children() { return m_children; }
|
Vector<CObject*>& children() { return m_children; }
|
||||||
const Vector<CObject*>& children() const { return m_children; }
|
const Vector<CObject*>& children() const { return m_children; }
|
||||||
|
|
||||||
|
template<typename Callback>
|
||||||
|
void for_each_child(Callback callback)
|
||||||
|
{
|
||||||
|
for (auto* child : m_children) {
|
||||||
|
if (callback(*child) == IterationDecision::Abort)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CObject* parent() { return m_parent; }
|
CObject* parent() { return m_parent; }
|
||||||
const CObject* parent() const { return m_parent; }
|
const CObject* parent() const { return m_parent; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue