435 lines
8.4 KiB
PHP
435 lines
8.4 KiB
PHP
<?php
|
|
|
|
namespace FML\Stylesheet;
|
|
|
|
use FML\UniqueID;
|
|
|
|
/**
|
|
* Class representing a Style3d
|
|
*
|
|
* @author steeffeen <mail@steeffeen.com>
|
|
* @copyright FancyManiaLinks Copyright © 2017 Steffen Schröder
|
|
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
|
*/
|
|
class Style3d
|
|
{
|
|
|
|
/*
|
|
* Constants
|
|
*/
|
|
const MODEL_Box = "Box";
|
|
const MODEL_Button = "Button";
|
|
const MODEL_ButtonH = "ButtonH";
|
|
const MODEL_Title = "Title";
|
|
const MODEL_Window = "Window";
|
|
|
|
/**
|
|
* @var string $styleId Style ID
|
|
*/
|
|
protected $styleId = null;
|
|
|
|
/**
|
|
* @var string $model Style model
|
|
*/
|
|
protected $model = self::MODEL_Box;
|
|
|
|
/**
|
|
* @var float $thickness Thickness
|
|
*/
|
|
protected $thickness = null;
|
|
|
|
/**
|
|
* @var string $color Color
|
|
*/
|
|
protected $color = null;
|
|
|
|
/**
|
|
* @var string $focusColor Focus color
|
|
*/
|
|
protected $focusColor = null;
|
|
|
|
/**
|
|
* @var string $lightColor Light color
|
|
*/
|
|
protected $lightColor = null;
|
|
|
|
/**
|
|
* @var string $focusLightColor Focus light color
|
|
*/
|
|
protected $focusLightColor = null;
|
|
|
|
/**
|
|
* @var float $yOffset Y-offset
|
|
*/
|
|
protected $yOffset = null;
|
|
|
|
/**
|
|
* @var float $focusYOffset Focus Y-offset
|
|
*/
|
|
protected $focusYOffset = null;
|
|
|
|
/**
|
|
* @var float $zOffset Z-offset
|
|
*/
|
|
protected $zOffset = null;
|
|
|
|
/**
|
|
* @var float $focusZOffset Focus Z-offset
|
|
*/
|
|
protected $focusZOffset = null;
|
|
|
|
/**
|
|
* Create a new Style3d
|
|
*
|
|
* @api
|
|
* @param string $styleId (optional) Style ID
|
|
* @param string $model (optional) Style model
|
|
* @return static
|
|
*/
|
|
public static function create($styleId = null, $model = null)
|
|
{
|
|
return new static($styleId, $model);
|
|
}
|
|
|
|
/**
|
|
* Construct a new Style3d
|
|
*
|
|
* @api
|
|
* @param string $styleId (optional) Style ID
|
|
* @param string $model (optional) Style model
|
|
*/
|
|
public function __construct($styleId = null, $model = null)
|
|
{
|
|
if ($styleId) {
|
|
$this->setId($styleId);
|
|
}
|
|
if ($model) {
|
|
$this->setModel($model);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the Style ID
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getId()
|
|
{
|
|
return $this->styleId;
|
|
}
|
|
|
|
/**
|
|
* Set the Style ID
|
|
*
|
|
* @api
|
|
* @param string $styleId Style ID
|
|
* @return static
|
|
*/
|
|
public function setId($styleId)
|
|
{
|
|
$this->styleId = (string)$styleId;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Check the ID and assign one if necessary
|
|
*
|
|
* @return static
|
|
*/
|
|
public function checkId()
|
|
{
|
|
if (!$this->styleId) {
|
|
$this->setId(new UniqueID());
|
|
}
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the model
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getModel()
|
|
{
|
|
return $this->model;
|
|
}
|
|
|
|
/**
|
|
* Set the model
|
|
*
|
|
* @api
|
|
* @param string $model Style model
|
|
* @return static
|
|
*/
|
|
public function setModel($model)
|
|
{
|
|
$this->model = (string)$model;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the thickness
|
|
*
|
|
* @api
|
|
* @return float
|
|
*/
|
|
public function getThickness()
|
|
{
|
|
return $this->thickness;
|
|
}
|
|
|
|
/**
|
|
* Set the thickness
|
|
*
|
|
* @api
|
|
* @param float $thickness Style thickness
|
|
* @return static
|
|
*/
|
|
public function setThickness($thickness)
|
|
{
|
|
$this->thickness = (float)$thickness;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the color
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getColor()
|
|
{
|
|
return $this->color;
|
|
}
|
|
|
|
/**
|
|
* Set the color
|
|
*
|
|
* @api
|
|
* @param string $color Style color
|
|
* @return static
|
|
*/
|
|
public function setColor($color)
|
|
{
|
|
$this->color = (string)$color;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the focus color
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getFocusColor()
|
|
{
|
|
return $this->focusColor;
|
|
}
|
|
|
|
/**
|
|
* Set the focus color
|
|
*
|
|
* @api
|
|
* @param string $focusColor Style focus color
|
|
* @return static
|
|
*/
|
|
public function setFocusColor($focusColor)
|
|
{
|
|
$this->focusColor = (string)$focusColor;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the light color
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getLightColor()
|
|
{
|
|
return $this->lightColor;
|
|
}
|
|
|
|
/**
|
|
* Set the light color
|
|
*
|
|
* @api
|
|
* @param string $lightColor Light color
|
|
* @return static
|
|
*/
|
|
public function setLightColor($lightColor)
|
|
{
|
|
$this->lightColor = (string)$lightColor;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the focus light color
|
|
*
|
|
* @api
|
|
* @return string
|
|
*/
|
|
public function getFocusLightColor()
|
|
{
|
|
return $this->focusLightColor;
|
|
}
|
|
|
|
/**
|
|
* Set the focus light color
|
|
*
|
|
* @api
|
|
* @param string $focusLightColor Focus light color
|
|
* @return static
|
|
*/
|
|
public function setFocusLightColor($focusLightColor)
|
|
{
|
|
$this->focusLightColor = (string)$focusLightColor;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the Y-offset
|
|
*
|
|
* @api
|
|
* @return float
|
|
*/
|
|
public function getYOffset()
|
|
{
|
|
return $this->yOffset;
|
|
}
|
|
|
|
/**
|
|
* Set the Y-offset
|
|
*
|
|
* @api
|
|
* @param float $yOffset Y-offset
|
|
* @return static
|
|
*/
|
|
public function setYOffset($yOffset)
|
|
{
|
|
$this->yOffset = (float)$yOffset;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the focus Y-offset
|
|
*
|
|
* @api
|
|
* @return float
|
|
*/
|
|
public function getFocusYOffset()
|
|
{
|
|
return $this->focusYOffset;
|
|
}
|
|
|
|
/**
|
|
* Set the focus Y-offset
|
|
*
|
|
* @api
|
|
* @param float $focusYOffset Focus Y-offset
|
|
* @return static
|
|
*/
|
|
public function setFocusYOffset($focusYOffset)
|
|
{
|
|
$this->focusYOffset = (float)$focusYOffset;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the Z-offset
|
|
*
|
|
* @api
|
|
* @return float
|
|
*/
|
|
public function getZOffset()
|
|
{
|
|
return $this->zOffset;
|
|
}
|
|
|
|
/**
|
|
* Set the Z-offset
|
|
*
|
|
* @api
|
|
* @param float $zOffset Z-offset
|
|
* @return static
|
|
*/
|
|
public function setZOffset($zOffset)
|
|
{
|
|
$this->zOffset = (float)$zOffset;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get the focus Z-offset
|
|
*
|
|
* @api
|
|
* @return float
|
|
*/
|
|
public function getFocusZOffset()
|
|
{
|
|
return $this->focusZOffset;
|
|
}
|
|
|
|
/**
|
|
* Set the focus Z-offset
|
|
*
|
|
* @api
|
|
* @param float $focusZOffset Focus Z-offset
|
|
* @return static
|
|
*/
|
|
public function setFocusZOffset($focusZOffset)
|
|
{
|
|
$this->focusZOffset = (float)$focusZOffset;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Render the Style3d
|
|
*
|
|
* @param \DOMDocument $domDocument DOMDocument for which the Style3d should be rendered
|
|
* @return \DOMElement
|
|
*/
|
|
public function render(\DOMDocument $domDocument)
|
|
{
|
|
$style3dXml = $domDocument->createElement("style3d");
|
|
$this->checkId();
|
|
if ($this->styleId) {
|
|
$style3dXml->setAttribute("id", $this->styleId);
|
|
}
|
|
if ($this->model) {
|
|
$style3dXml->setAttribute("model", $this->model);
|
|
}
|
|
if ($this->thickness) {
|
|
$style3dXml->setAttribute("thickness", $this->thickness);
|
|
}
|
|
if ($this->color) {
|
|
$style3dXml->setAttribute("color", $this->color);
|
|
}
|
|
if ($this->focusColor) {
|
|
$style3dXml->setAttribute("fcolor", $this->focusColor);
|
|
}
|
|
if ($this->lightColor) {
|
|
$style3dXml->setAttribute("lightcolor", $this->lightColor);
|
|
}
|
|
if ($this->focusLightColor) {
|
|
$style3dXml->setAttribute("flightcolor", $this->focusLightColor);
|
|
}
|
|
if ($this->yOffset) {
|
|
$style3dXml->setAttribute("yoffset", $this->yOffset);
|
|
}
|
|
if ($this->focusYOffset) {
|
|
$style3dXml->setAttribute("fyoffset", $this->focusYOffset);
|
|
}
|
|
if ($this->zOffset) {
|
|
$style3dXml->setAttribute("zoffset", $this->zOffset);
|
|
}
|
|
if ($this->focusZOffset) {
|
|
$style3dXml->setAttribute("fzoffset", $this->focusZOffset);
|
|
}
|
|
return $style3dXml;
|
|
}
|
|
|
|
}
|