| 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 | { |
nothing calls this directly
no test coverage detected