Ejemplo n.º 1
0
MenuItem* Menu::getItemForTouch(Touch *touch)
{
    Vector2 touchLocation = touch->getLocation();

    if (!_children.empty())
    {
        for (auto iter = _children.crbegin(); iter != _children.crend(); ++iter)
        {
            MenuItem* child = dynamic_cast<MenuItem*>(*iter);
            if (child && child->isVisible() && child->isEnabled())
            {
                Vector2 local = child->convertToNodeSpace(touchLocation);
                Rect r = child->rect();
                r.origin = Vector2::ZERO;
                
                if (r.containsPoint(local))
                {
                    return child;
                }
            }
        }
    }

    return nullptr;
}