void HBox::layout() { if (parent() && parent()->type() == VBOX) { VBox* vb = static_cast<VBox*>(parent()); qreal x = vb->leftMargin() * MScore::DPMM; qreal y = vb->topMargin() * MScore::DPMM; qreal w = point(boxWidth()); qreal h = vb->height() - (vb->topMargin() + vb->bottomMargin()) * MScore::DPMM; setPos(x, y); bbox().setRect(0.0, 0.0, w, h); } else { bbox().setRect(0.0, 0.0, point(boxWidth()), system()->height()); } Box::layout(); adjustReadPos(); }
void InspectorVBox::apply() { VBox* box = static_cast<VBox*>(inspector->element()); Score* score = box->score(); qreal _spatium = score->spatium(); qreal topGap = vb.topGap->value() * _spatium; qreal bottomGap = vb.bottomGap->value() * _spatium; Spatium height(vb.height->value()); if (topGap != box->topGap() || bottomGap != box->bottomGap() || height != box->boxHeight()) { score->startCmd(); score->undo(new ChangeBoxProperties(box, box->leftMargin(), box->topMargin(), box->rightMargin(), box->bottomMargin(), height, box->boxWidth(), topGap, bottomGap )); score->setLayoutAll(true); score->endCmd(); mscore->endCmd(); } }