* @license http://www.gnu.org/licenses/gpl-2.0.txt GPL, version 2 * @author Icinga Development Team */ // {{{ICINGA_LICENSE_HEADER}}} namespace Icinga\Chart\Primitive; use Icinga\Chart\Render\RenderContext; use DOMText; class Text extends Styleable implements Drawable { const ALIGN_END = 'end'; const ALIGN_START = 'start'; const ALIGN_MIDDLE = 'middle'; const ORIENTATION_HORIZONTAL = ""; const ORIENTATION_VERTICAL = "writing-mode: tb;"; private $x; private $y; private $text; private $fontSize = '1.5em'; public $fill = '#000'; private $alignment = self::ALIGN_START; public function __construct($x, $y, $text, $fontSize = '1.5em') { $this->x = $x; $this->y = $y; $this->text = $text; } public function setFontSize($size) { $this->fontSize = $size; return $this; } public function setAlignment($align) { $this->alignment = $align; return $this; } public function toSvg(RenderContext $ctx) { list($x, $y) = $ctx->toAbsolute($this->x, $this->y); $text = $ctx->getDocument()->createElement('text'); $text->setAttribute('x', $x-15); $text->setAttribute('style', $this->getStyle() . ';font-size:' . $this->fontSize . '; font-family: Verdana, serif;' . 'font-weight: normal; font-style: normal;' . 'text-anchor: ' . $this->alignment); $text->setAttribute('y', $y); $text->appendChild(new DOMText($this->text)); return $text; } }