#ifndef WIDGETS_HPP_INCLUDED
#define WIDGETS_HPP_INCLUDED

#include "../../Game/Interactable/Widget.hpp"
#include <functional>
#include <cstdint>
#include <vector>

namespace Widgets
{
    std::vector<std::vector<Interactable::Widget>> GetAll();
    std::vector<Interactable::Widget> GetAll(std::int32_t Parent);
    std::vector<Interactable::Widget> GetAll(const std::function<bool (Interactable::Widget&)>& Filter);

    Interactable::Widget Get(std::int32_t Parent, std::int32_t Child = -1);
    Interactable::Widget Get(std::int32_t Parent, std::int32_t Child, std::int32_t Grandchild);
    Interactable::Widget Get(const std::function<bool (Interactable::Widget&)>& Filter);
}

#endif // WIDGETS_HPP_INCLUDED
