height = $height ? $height : 100; $this->width = $width ? $width : 100; $this->x = $x; $this->y = $y; } /** * Set a padding to all four sides uniformly * * @param int $padding The padding to set for all four sides */ public function setUniformPadding($padding) { $this->padding = array($padding, $padding, $padding, $padding); } /** * Set the padding for this LayoutBox * * @param int $top The top side padding * @param int $right The right side padding * @param int $bottom The bottom side padding * @param int $left The left side padding */ public function setPadding($top, $right, $bottom, $left) { $this->padding = array($top, $right, $bottom, $left); } /** * Return a string containing the SVG transform attribute values for the padding * * @param RenderContext $ctx The context to determine the translation coordinates * * @return string The transformation string */ public function getInnerTransform(RenderContext $ctx) { list($translateX, $translateY) = $ctx->toAbsolute( $this->padding[self::PADDING_LEFT] + $this->getX(), $this->padding[self::PADDING_TOP] + $this->getY() ); list($scaleX, $scaleY) = $ctx->paddingToScaleFactor($this->padding); $scaleX *= $this->getWidth()/100; $scaleY *= $this->getHeight()/100; return sprintf( 'translate(%s, %s) scale(%s, %s)', Format::formatSVGNumber($translateX), Format::formatSVGNumber($translateY), Format::formatSVGNumber($scaleX), Format::formatSVGNumber($scaleY) ); } /** * String representation for this Layout, for debug purposes * * @return string A string containing the bounds of this LayoutBox */ public function __toString() { return sprintf( 'Rectangle: x: %s y: %s, height: %s, width: %s', $this->x, $this->y, $this->height, $this->width ); } /** * Return a four element array with the padding * * @return array The padding of this LayoutBox */ public function getPadding() { return $this->padding; } /** * Return the height of this LayoutBox * * @return int The height of this box */ public function getHeight() { return $this->height; } /** * Return the width of this LayoutBox * * @return int The width of this box */ public function getWidth() { return $this->width; } /** * Return the x position of this LayoutBox * * @return int The x position of this box */ public function getX() { return $this->x; } /** * Return the y position of this LayoutBox * * @return int The y position of this box */ public function getY() { return $this->y; } }