| 1131 | } |
| 1132 | |
| 1133 | void Widget::setPositionPercent(const Vec2& percent) |
| 1134 | { |
| 1135 | if (_usingLayoutComponent) |
| 1136 | { |
| 1137 | auto component = this->getOrCreateLayoutComponent(); |
| 1138 | component->setPositionPercentX(percent.x); |
| 1139 | component->setPositionPercentY(percent.y); |
| 1140 | component->refreshLayout(); |
| 1141 | } |
| 1142 | else |
| 1143 | { |
| 1144 | _positionPercent = percent; |
| 1145 | if (_running) |
| 1146 | { |
| 1147 | if (_usingNormalizedPosition) |
| 1148 | { |
| 1149 | setPositionNormalized(Vec2(_positionPercent.x, _positionPercent.y)); |
| 1150 | } |
| 1151 | else |
| 1152 | { |
| 1153 | Widget* widgetParent = getWidgetParent(); |
| 1154 | if (widgetParent) |
| 1155 | { |
| 1156 | Vec2 parentSize = widgetParent->getContentSize(); |
| 1157 | Vec2 absPos(parentSize.width * _positionPercent.x, parentSize.height * _positionPercent.y); |
| 1158 | setPosition(absPos); |
| 1159 | } |
| 1160 | } |
| 1161 | } |
| 1162 | } |
| 1163 | } |
| 1164 | |
| 1165 | const Vec2& Widget::getPositionPercent() |
| 1166 | { |