X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/blast.git/blobdiff_plain/756baf5c8eaf003e8271dab9c395de2b0e704857..1b7818e18ed7bcf3464e307b97c6e0e6d72cc69b:/GroupScene.cpp?ds=inline diff --git a/GroupScene.cpp b/GroupScene.cpp index 2ceb21f..0eaa8a1 100644 --- a/GroupScene.cpp +++ b/GroupScene.cpp @@ -103,16 +103,35 @@ int GroupScene::setInterfacesId(int countInit) { return counter; } -BoxItem *GroupScene::createBoxItem(AbstractBlock *block) { +BoxItem *GroupScene::createBoxItem(AbstractBlock *block, BoxItem::Position hPos, BoxItem::Position vPos, AbstractBoxItem::LockType lock, BoxItem::SpanType span) { - BoxItem* item = new BoxItem(block,dispatcher,params,groupItem); + BoxItem* item = new BoxItem(block,dispatcher,params,groupItem, lock, span); item->setZValue(1); // add item from the QList boxItems.append(item); // repainting the group groupItem->updateShape(); // center the new block - QPointF newPos((groupItem->getWidth()-item->getTotalWidth())/2.0, (groupItem->getHeight()-item->getTotalHeight())/2.0); + double x,y; + if (hPos == BoxItem::Left) { + x = 0; + } + else if (hPos == BoxItem::Center) { + x = (groupItem->getWidth()-item->getTotalWidth())/2.0; + } + else if (hPos == BoxItem::Right) { + x = groupItem->getWidth()-item->getTotalWidth(); + } + if (vPos == BoxItem::Top) { + y = 0; + } + else if (vPos == BoxItem::Center) { + y = (groupItem->getHeight()-item->getTotalHeight())/2.0; + } + else if (vPos == BoxItem::Bottom) { + y = groupItem->getHeight()-item->getTotalHeight(); + } + QPointF newPos(x,y); newPos = newPos-item->getOriginPoint(); item->moveTo(newPos);