MCPcopy Create free account
hub / github.com/MyGUI/mygui / getLayerItemByPoint

Method getLayerItemByPoint

MyGUIEngine/src/MyGUI_Widget.cpp:496–529  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

494 }
495
496 ILayerItem* Widget::getLayerItemByPoint(int _left, int _top) const
497 {
498 // проверяем попадание
499 if (!mEnabled || !mInheritedVisible || (!getNeedMouseFocus() && !getInheritsPick()) ||
500 !_checkPoint(_left, _top)
501 // если есть маска, проверяем еще и по маске
502 || !isMaskPickInside(IntPoint(_left - mCoord.left, _top - mCoord.top), mCoord))
503 return nullptr;
504
505 // спрашиваем у детишек
506 for (VectorWidgetPtr::const_reverse_iterator widget = mWidgetChild.rbegin(); widget != mWidgetChild.rend();
507 ++widget)
508 {
509 // общаемся только с послушными детьми
510 if ((*widget)->mWidgetStyle == WidgetStyle::Popup)
511 continue;
512
513 ILayerItem* item = (*widget)->getLayerItemByPoint(_left - mCoord.left, _top - mCoord.top);
514 if (item != nullptr)
515 return item;
516 }
517 // спрашиваем у детишек скина
518 for (VectorWidgetPtr::const_reverse_iterator widget = mWidgetChildSkin.rbegin();
519 widget != mWidgetChildSkin.rend();
520 ++widget)
521 {
522 ILayerItem* item = (*widget)->getLayerItemByPoint(_left - mCoord.left, _top - mCoord.top);
523 if (item != nullptr)
524 return item;
525 }
526
527 // непослушные дети
528 return getInheritsPick() ? nullptr : const_cast<Widget*>(this);
529 }
530
531 void Widget::_updateAbsolutePoint()
532 {

Callers 1

getWidgetFromPointMethod · 0.45

Calls 3

rbeginMethod · 0.80
rendMethod · 0.80
IntPointFunction · 0.50

Tested by

no test coverage detected