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

Method setCoord

MyGUIEngine/src/MyGUI_Widget.cpp:730–773  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

728 }
729
730 void Widget::setCoord(const IntCoord& _coord)
731 {
732 // обновляем абсолютные координаты
733 mAbsolutePosition += _coord.point() - mCoord.point();
734
735 for (auto& widget : mWidgetChild)
736 widget->_updateAbsolutePoint();
737 for (auto& widget : mWidgetChildSkin)
738 widget->_updateAbsolutePoint();
739
740 // устанавливаем новую координату а старую пускаем в расчеты
741 IntCoord old = mCoord;
742 mCoord = _coord;
743
744 bool visible = true;
745
746 // обновляем выравнивание
747 bool margin = mCroppedParent ? _checkMargin() : false;
748
749 if (margin)
750 {
751 // проверка на полный выход за границу
752 if (_checkOutside())
753 {
754 // скрываем
755 visible = false;
756 }
757 }
758
759 _setSubSkinVisible(visible);
760
761 // передаем старую координату , до вызова, текущая координата отца должна быть новой
762 for (auto& widget : mWidgetChild)
763 widget->_setAlign(old.size(), getSize());
764 for (auto& widget : mWidgetChildSkin)
765 widget->_setAlign(old.size(), getSize());
766
767 _setSkinItemAlign(old.size());
768
769 // запоминаем текущее состояние
770 mIsMargin = margin;
771
772 eventChangeCoord(this);
773 }
774
775 void Widget::setAlign(Align _value)
776 {

Callers

nothing calls this directly

Calls 8

_checkOutsideFunction · 0.85
getSizeFunction · 0.85
setCoordFunction · 0.85
_updateAbsolutePointMethod · 0.80
IntCoordFunction · 0.50
pointMethod · 0.45
_setAlignMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected