private function injectBoundary(Container $container, $yStart = 0) { $parent = $container->getParent(); $point = $parent->getFirstPoint(); $boundary = new Boundary(); $boundary->setNext($point->translate(0, $yStart))->setNext($point->translate($container->getWidth(), $yStart))->setNext($point->translate($container->getWidth(), $yStart + $container->getHeight()))->setNext($point->translate(0, $yStart + $container->getHeight()))->close(); $this->invokeMethod($container, 'setBoundary', array($boundary)); }
public function getWidth() { $width = parent::getWidth(); if ($width === null) { $width = 0; } return $width; }
/** * @test */ public function drawingInSmallerContainer() { $page = new Page(); $height = 100; $width = 120; $imagePath = 'image/path'; $imageResource = $this->createImageResourceMock($width, $height); $this->document->expects($this->atLeastOnce())->method('createImage')->with($imagePath)->will($this->returnValue($imageResource)); $image = new Image(array('src' => $imagePath)); $container = new Container(array('width' => (int) ($width * 0.7), 'height' => (int) ($height * 0.5))); $container->add($image); $this->formatter->format($image, $this->document); $this->assertEquals($container->getHeight(), $image->getHeight()); $this->assertTrue($container->getWidth() > $image->getWidth()); }
/** * @return int Width with horizontal margins */ public function getRealWidth() { return parent::getWidth(); }
private function translateProductOfBroke(Container $productOfBroke, Container $originalContainer) { $columnableContainer = $originalContainer->getParent(); $numberOfContainers = count($columnableContainer->getChildren()); $numberOfColumns = $columnableContainer->getAttribute('number-of-columns'); $isInTheSameRowAsOriginalContainer = $numberOfContainers % $numberOfColumns != 1; if ($isInTheSameRowAsOriginalContainer) { $xCoordTranslate = $originalContainer->getWidth() + $columnableContainer->getAttribute('margin-between-columns'); $firstPoint = $originalContainer->getFirstPoint()->translate($xCoordTranslate, 0); } else { $xCoordTranslate = $numberOfColumns * $originalContainer->getWidth() + ($numberOfColumns - 1) * $columnableContainer->getAttribute('margin-between-columns'); $firstPoint = $originalContainer->getDiagonalPoint()->translate(-$xCoordTranslate, 0); } $xCoordTranslate = $firstPoint->getX() - $productOfBroke->getFirstPoint()->getX(); $yCoordTranslate = $productOfBroke->getFirstPoint()->getY() - $firstPoint->getY(); $productOfBroke->translate($xCoordTranslate, $yCoordTranslate); }