void WidgetSelectorManager::checkContainer(WidgetContainer* _container, MyGUI::Widget*& _result, const MyGUI::IntPoint& _point)
	{
		if (!_container->getWidget()->getVisible())
			return;

		if (_container->getWidget()->getAbsoluteCoord().inside(_point))
		{
			if (_result != nullptr)
			{
				if (_result->getParent() == _container->getWidget()->getParent())
				{
					if (_result->getDepth() < _container->getWidget()->getDepth())
						return;
				}
			}

			_result = _container->getWidget();
		}

		for (std::vector<WidgetContainer*>::iterator item = _container->childContainers.begin(); item != _container->childContainers.end(); ++item)
		{
			if (_container->getWidget()->isType<MyGUI::TabControl>() && (*item)->getWidget()->isType<MyGUI::TabItem>())
			{
				if (_container->getWidget()->castType<MyGUI::TabControl>()->getItemSelected() != (*item)->getWidget()->castType<MyGUI::TabItem>())
					continue;
			}

			checkContainer(*item, _result, _point);
		}
	}
Exemplo n.º 2
0
	MyGUI::Widget* WidgetSelectorManager::getTopWidget(const MyGUI::IntPoint& _point)
	{
		MyGUI::Widget* result = nullptr;

		EnumeratorWidgetContainer container = EditorWidgets::getInstance().getWidgets();
		while (container.next())
			checkContainer(container.current(), result, _point);

		return result;
	}
Exemplo n.º 3
0
void ContainsRecursiveFunctionProvider::value(Atlas::Message::Element& value,
                                              const QueryContext& context) const
{
    Atlas::Message::Element container;
    m_consumer->value(container, context);
    if (container.isPtr()) {
        value = checkContainer((LocatedEntitySet*)container.Ptr());
    }
    else{
        value = false;
    }
}