void Panel::calcSize() { int width = 0; int height = 0; // sucht die width/height indem alle Komponenten durchlaufen werden und die am weitesten rechts und unten gespeichert werden for (unsigned int i = 0; i < getComponents().size(); i++) { width = std::max(width, getComponents()[i]->getRelativeRect().getRight() + getPadding().x); height = std::max(height, getComponents()[i]->getRelativeRect().getBot() + getPadding().y); } if (width != getRelativeRect().getSize().x) { setRelativeRect(PixelRect( getRelativeRect().getPosition().x, getRelativeRect().getPosition().y, width, getRelativeRect().getSize().y)); } if (height != getRelativeRect().getSize().y) { setRelativeRect(PixelRect( getRelativeRect().getPosition().x, getRelativeRect().getPosition().y, getRelativeRect().getSize().x, height)); } }
void Widget::setWidth( unsigned int width ) { const Rect rectangle( getRelativeRect().UpperLeftCorner, Size( width, getHeight() ) ); setGeometry( rectangle ); }
unsigned int Widget::getWidth() const { return getRelativeRect().getWidth(); }
int Widget::getRight() const { return getRelativeRect().LowerRightCorner.getX(); }
int Widget::getLeft() const { return getRelativeRect().UpperLeftCorner.getX(); }
float UIWidget::getRelativeTopPos() { CCRect rect = getRelativeRect(); return rect.origin.y + rect.size.height; }
float UIWidget::getRelativeRightPos() { CCRect rect = getRelativeRect(); return rect.origin.x + rect.size.width; }
float UIWidget::getRelativeBottomPos() { return getRelativeRect().origin.y; }
float UIWidget::getRelativeLeftPos() { return getRelativeRect().origin.x; }