moved Libs out of core folder
This commit is contained in:
@ -1,157 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Components;
|
||||
|
||||
use FML\Controls\Entry;
|
||||
use FML\Controls\Frame;
|
||||
use FML\Controls\Quad;
|
||||
use FML\Models\CheckBoxDesign;
|
||||
use FML\Script\Features\CheckBoxFeature;
|
||||
use FML\Script\Features\ScriptFeature;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
|
||||
/**
|
||||
* CheckBox Component
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class CheckBox implements Renderable, ScriptFeatureable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $name = null;
|
||||
protected $feature = null;
|
||||
|
||||
/**
|
||||
* Create a new CheckBox Component
|
||||
*
|
||||
* @param string $name (optional) CheckBox name
|
||||
* @param bool $default (optional) Default value
|
||||
* @param Quad $quad (optional) CheckBox quad
|
||||
*/
|
||||
public function __construct($name = null, $default = null, Quad $quad = null) {
|
||||
$this->feature = new CheckBoxFeature();
|
||||
$this->setName($name);
|
||||
$this->setDefault($default);
|
||||
$this->setQuad($quad);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name
|
||||
*
|
||||
* @param string $name CheckBox name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param bool $default Default value
|
||||
* @return static
|
||||
*/
|
||||
public function setDefault($default) {
|
||||
$this->feature->setDefault($default);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the enabled Design
|
||||
*
|
||||
* @param string $style Style name or image url
|
||||
* @param string $subStyle SubStyle name
|
||||
* @return static
|
||||
*/
|
||||
public function setEnabledDesign($style, $subStyle = null) {
|
||||
if (is_object($style) && ($style instanceof CheckBoxDesign)) {
|
||||
$this->feature->setEnabledDesign($style);
|
||||
} else {
|
||||
$checkBoxDesign = new CheckBoxDesign($style, $subStyle);
|
||||
$this->feature->setEnabledDesign($checkBoxDesign);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the disabled Design
|
||||
*
|
||||
* @param string $style Style name or image url
|
||||
* @param string $subStyle SubStyle name
|
||||
* @return static
|
||||
*/
|
||||
public function setDisabledDesign($style, $subStyle = null) {
|
||||
if (is_object($style) && ($style instanceof CheckBoxDesign)) {
|
||||
$this->feature->setDisabledDesign($style);
|
||||
} else {
|
||||
$checkBoxDesign = new CheckBoxDesign($style, $subStyle);
|
||||
$this->feature->setDisabledDesign($checkBoxDesign);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the CheckBox Quad
|
||||
*
|
||||
* @param Quad $quad CheckBox Quad
|
||||
* @return static
|
||||
*/
|
||||
public function setQuad(Quad $quad = null) {
|
||||
$this->feature->setQuad($quad);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\ScriptFeatureable::getScriptFeatures()
|
||||
*/
|
||||
public function getScriptFeatures() {
|
||||
return ScriptFeature::collect($this->feature, $this->getQuad(), $this->feature->getEntry());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the CheckBox Quad
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Create the Quad if it's not set
|
||||
* @return \FML\Controls\Quad
|
||||
*/
|
||||
public function getQuad($createIfEmpty = true) {
|
||||
if (!$this->feature->getQuad() && $createIfEmpty) {
|
||||
$quad = new Quad();
|
||||
$quad->setSize(10, 10);
|
||||
$this->setQuad($quad);
|
||||
}
|
||||
return $this->feature->getQuad();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$frame = new Frame();
|
||||
|
||||
$quad = $this->getQuad();
|
||||
$frame->add($quad);
|
||||
|
||||
$entry = $this->buildEntry();
|
||||
$frame->add($entry);
|
||||
$this->feature->setEntry($entry);
|
||||
|
||||
return $frame->render($domDocument);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the hidden Entry
|
||||
*
|
||||
* @return \FML\Controls\Entry
|
||||
*/
|
||||
protected function buildEntry() {
|
||||
$entry = new Entry();
|
||||
$entry->setVisible(false)->setName($this->name);
|
||||
return $entry;
|
||||
}
|
||||
}
|
@ -1,134 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Components;
|
||||
|
||||
use FML\Controls\Entry;
|
||||
use FML\Controls\Frame;
|
||||
use FML\Controls\Label;
|
||||
use FML\Script\Features\ScriptFeature;
|
||||
use FML\Script\Features\ValuePickerFeature;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
|
||||
/**
|
||||
* ValuePicker Component
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ValuePicker implements Renderable, ScriptFeatureable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $name = null;
|
||||
protected $feature = null;
|
||||
|
||||
/**
|
||||
* Create a new ValuePicker Component
|
||||
*
|
||||
* @param string $name (optional) CheckBox name
|
||||
* @param array $values (optional) Possible values
|
||||
* @param bool $default (optional) Default value
|
||||
* @param Label $label (optional) ValuePicker label
|
||||
*/
|
||||
public function __construct($name = null, array $values = array(), $default = null, Label $label = null) {
|
||||
$this->feature = new ValuePickerFeature();
|
||||
$this->setName($name);
|
||||
$this->setValues($values);
|
||||
$this->setDefault($default);
|
||||
$this->setLabel($label);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Name
|
||||
*
|
||||
* @param string $name ValuePicker name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the possible values
|
||||
*
|
||||
* @param array $values Possible values
|
||||
* @return static
|
||||
*/
|
||||
public function setValues(array $values) {
|
||||
$this->feature->setValues($values);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param bool $default Default value
|
||||
* @return static
|
||||
*/
|
||||
public function setDefault($default) {
|
||||
$this->feature->setDefault($default);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ValuePicker Label
|
||||
*
|
||||
* @param Label $label ValuePicker Label
|
||||
* @return static
|
||||
*/
|
||||
public function setLabel(Label $label = null) {
|
||||
$this->feature->setLabel($label);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ValuePicker Label
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Create the Label if it's not set
|
||||
* @return \FML\Controls\Label
|
||||
*/
|
||||
public function getLabel($createIfEmpty = true) {
|
||||
if (!$this->feature->getLabel() && $createIfEmpty) {
|
||||
$label = new Label();
|
||||
$this->setLabel($label);
|
||||
}
|
||||
return $this->feature->getLabel();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\ScriptFeatureable::getScriptFeatures()
|
||||
*/
|
||||
public function getScriptFeatures() {
|
||||
return ScriptFeature::collect($this->feature, $this->getLabel(), $this->feature->getEntry());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$frame = new Frame();
|
||||
|
||||
$label = $this->getLabel();
|
||||
$frame->add($label);
|
||||
|
||||
$entry = $this->buildEntry();
|
||||
$frame->add($entry);
|
||||
$this->feature->setEntry($entry);
|
||||
|
||||
return $frame->render($domDocument);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the hidden Entry
|
||||
*
|
||||
* @return \FML\Controls\Entry
|
||||
*/
|
||||
protected function buildEntry() {
|
||||
$entry = new Entry();
|
||||
$entry->setVisible(false)->setName($this->name);
|
||||
return $entry;
|
||||
}
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Types\Playable;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Audio Control
|
||||
* (CMlMediaPlayer)
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Audio extends Control implements Playable, Scriptable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'audio';
|
||||
protected $data = null;
|
||||
protected $dataId = null;
|
||||
protected $play = null;
|
||||
protected $looping = true;
|
||||
protected $music = null;
|
||||
protected $volume = 1.;
|
||||
protected $scriptEvents = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlMediaPlayer';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setData()
|
||||
*/
|
||||
public function setData($data) {
|
||||
$this->data = (string)$data;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setDataId()
|
||||
*/
|
||||
public function setDataId($dataId) {
|
||||
$this->dataId = (string)$dataId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setPlay()
|
||||
*/
|
||||
public function setPlay($play) {
|
||||
$this->play = ($play ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setLooping()
|
||||
*/
|
||||
public function setLooping($looping) {
|
||||
$this->looping = ($looping ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setMusic()
|
||||
*/
|
||||
public function setMusic($music) {
|
||||
$this->music = ($music ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setVolume()
|
||||
*/
|
||||
public function setVolume($volume) {
|
||||
$this->volume = (float)$volume;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->data) {
|
||||
$xmlElement->setAttribute('data', $this->data);
|
||||
}
|
||||
if ($this->play) {
|
||||
$xmlElement->setAttribute('play', $this->play);
|
||||
}
|
||||
if (!$this->looping) {
|
||||
$xmlElement->setAttribute('looping', $this->looping);
|
||||
}
|
||||
if ($this->music) {
|
||||
$xmlElement->setAttribute('music', $this->music);
|
||||
}
|
||||
if ($this->volume != 1.) {
|
||||
$xmlElement->setAttribute('volume', $this->volume);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,505 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Features\ActionTrigger;
|
||||
use FML\Script\Features\ControlScript;
|
||||
use FML\Script\Features\MapInfo;
|
||||
use FML\Script\Features\PlayerProfile;
|
||||
use FML\Script\Features\ScriptFeature;
|
||||
use FML\Script\Features\Toggle;
|
||||
use FML\Script\Features\Tooltip;
|
||||
use FML\Script\Features\UISound;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
use FML\UniqueID;
|
||||
|
||||
/**
|
||||
* Base Control
|
||||
* (CMlControl)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
abstract class Control implements Renderable, ScriptFeatureable {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const CENTER = 'center';
|
||||
const CENTER2 = 'center2';
|
||||
const TOP = 'top';
|
||||
const RIGHT = 'right';
|
||||
const BOTTOM = 'bottom';
|
||||
const LEFT = 'left';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'control';
|
||||
protected $controlId = null;
|
||||
protected $posX = 0.;
|
||||
protected $posY = 0.;
|
||||
protected $posZ = 0.;
|
||||
protected $width = -1.;
|
||||
protected $height = -1.;
|
||||
protected $hAlign = self::CENTER;
|
||||
protected $vAlign = self::CENTER2;
|
||||
protected $scale = 1.;
|
||||
protected $hidden = null;
|
||||
protected $rotation = 0.;
|
||||
/** @var string[] $classes */
|
||||
protected $classes = array();
|
||||
/** @var ScriptFeature[] $scriptFeatures */
|
||||
protected $scriptFeatures = array();
|
||||
|
||||
/**
|
||||
* Create a new Control object
|
||||
*
|
||||
* @param string $controlId (optional) Control id
|
||||
* @return static
|
||||
*/
|
||||
public static function create($controlId = null) {
|
||||
return new static($controlId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Control object
|
||||
*
|
||||
* @param string $controlId (optional) Control id
|
||||
*/
|
||||
public function __construct($controlId = null) {
|
||||
if (!is_null($controlId)) {
|
||||
$this->setId($controlId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check Id for dangerous characters and assign a new unique id if necessary
|
||||
*
|
||||
* @param bool $forceNewId (optional) Whether to force setting a newly generated id
|
||||
* @return static
|
||||
*/
|
||||
public function checkId($forceNewId = false) {
|
||||
if ($forceNewId || !$this->getId()) {
|
||||
$this->setId(new UniqueID());
|
||||
return $this;
|
||||
}
|
||||
$dangerousCharacters = array(' ', ' ', '.', '|', '-', PHP_EOL);
|
||||
$idCharacters = str_split($this->getId());
|
||||
$danger = false;
|
||||
foreach ($idCharacters as $character) {
|
||||
if (!in_array($character, $dangerousCharacters)) {
|
||||
continue;
|
||||
}
|
||||
$danger = true;
|
||||
break;
|
||||
}
|
||||
if ($danger) {
|
||||
trigger_error("Please don't use special characters in ids, they might cause problems! (I stripped them for you.)");
|
||||
$controlId = str_ireplace($dangerousCharacters, '', $this->getId());
|
||||
$this->setId($controlId);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Control id
|
||||
*
|
||||
* @param bool $escaped (optional) Whether the id should be escaped for ManiaScript
|
||||
* @param bool $addApostrophes (optional) Whether to add apostrophes before and after the text
|
||||
* @return string
|
||||
*/
|
||||
public function getId($escaped = false, $addApostrophes = false) {
|
||||
if ($escaped) {
|
||||
return Builder::escapeText($this->controlId, $addApostrophes);
|
||||
}
|
||||
return $this->controlId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control id
|
||||
*
|
||||
* @param string $controlId Control id
|
||||
* @return static
|
||||
*/
|
||||
public function setId($controlId) {
|
||||
$this->controlId = (string)$controlId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control position
|
||||
*
|
||||
* @param float $posX Horizontal position
|
||||
* @param float $posY Vertical position
|
||||
* @param float $posZ (optional) Depth
|
||||
* @return static
|
||||
*/
|
||||
public function setPosition($posX, $posY, $posZ = null) {
|
||||
$this->setX($posX);
|
||||
$this->setY($posY);
|
||||
if (!is_null($posZ)) {
|
||||
$this->setZ($posZ);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set X position
|
||||
*
|
||||
* @param float $posX Horizontal position
|
||||
* @return static
|
||||
*/
|
||||
public function setX($posX) {
|
||||
$this->posX = (float)$posX;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Y position
|
||||
*
|
||||
* @param float $posY Vertical position
|
||||
* @return static
|
||||
*/
|
||||
public function setY($posY) {
|
||||
$this->posY = (float)$posY;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Z position
|
||||
*
|
||||
* @param float $posZ Depth
|
||||
* @return static
|
||||
*/
|
||||
public function setZ($posZ) {
|
||||
$this->posZ = (float)$posZ;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control size
|
||||
*
|
||||
* @param float $width Control width
|
||||
* @param float $height Control height
|
||||
* @return static
|
||||
*/
|
||||
public function setSize($width, $height) {
|
||||
$this->setWidth($width);
|
||||
$this->setHeight($height);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control width
|
||||
*
|
||||
* @param float $width Control width
|
||||
* @return static
|
||||
*/
|
||||
public function setWidth($width) {
|
||||
$this->width = (float)$width;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control height
|
||||
*
|
||||
* @param float $height Control height
|
||||
* @return static
|
||||
*/
|
||||
public function setHeight($height) {
|
||||
$this->height = (float)$height;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Center alignment
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function centerAlign() {
|
||||
$this->setAlign(self::CENTER, self::CENTER2);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set horizontal and vertical alignment
|
||||
*
|
||||
* @param string $hAlign Horizontal alignment
|
||||
* @param string $vAlign Vertical alignment
|
||||
* @return static
|
||||
*/
|
||||
public function setAlign($hAlign, $vAlign) {
|
||||
$this->setHAlign($hAlign);
|
||||
$this->setVAlign($vAlign);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set horizontal alignment
|
||||
*
|
||||
* @param string $hAlign Horizontal alignment
|
||||
* @return static
|
||||
*/
|
||||
public function setHAlign($hAlign) {
|
||||
$this->hAlign = (string)$hAlign;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set vertical alignment
|
||||
*
|
||||
* @param string $vAlign Vertical alignment
|
||||
* @return static
|
||||
*/
|
||||
public function setVAlign($vAlign) {
|
||||
$this->vAlign = (string)$vAlign;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset alignment
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function resetAlign() {
|
||||
$this->setAlign(null, null);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control scale
|
||||
*
|
||||
* @param float $scale Control scale
|
||||
* @return static
|
||||
*/
|
||||
public function setScale($scale) {
|
||||
$this->scale = (float)$scale;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set visibility
|
||||
*
|
||||
* @param bool $visible Whether the Control should be visible
|
||||
* @return static
|
||||
*/
|
||||
public function setVisible($visible = true) {
|
||||
$this->hidden = ($visible ? 0 : 1);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Control rotation
|
||||
*
|
||||
* @param float $rotation Control rotation
|
||||
* @return static
|
||||
*/
|
||||
public function setRotation($rotation) {
|
||||
$this->rotation = (float)$rotation;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new class name
|
||||
*
|
||||
* @param string $class Class name
|
||||
* @return static
|
||||
*/
|
||||
public function addClass($class) {
|
||||
$class = (string)$class;
|
||||
if (!in_array($class, $this->classes)) {
|
||||
array_push($this->classes, $class);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Action Trigger
|
||||
*
|
||||
* @param string $actionName Action to trigger
|
||||
* @param string $eventLabel (optional) Event on which the action is triggered
|
||||
* @return static
|
||||
*/
|
||||
public function addActionTriggerFeature($actionName, $eventLabel = ScriptLabel::MOUSECLICK) {
|
||||
if (is_object($actionName) && ($actionName instanceof ActionTrigger)) {
|
||||
$this->addScriptFeature($actionName);
|
||||
} else {
|
||||
$actionTrigger = new ActionTrigger($actionName, $this, $eventLabel);
|
||||
$this->addScriptFeature($actionTrigger);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new Script Feature
|
||||
*
|
||||
* @param ScriptFeature $scriptFeature Script Feature
|
||||
* @return static
|
||||
*/
|
||||
public function addScriptFeature(ScriptFeature $scriptFeature) {
|
||||
if (!in_array($scriptFeature, $this->scriptFeatures, true)) {
|
||||
array_push($this->scriptFeatures, $scriptFeature);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature opening the current map info
|
||||
*
|
||||
* @param string $eventLabel (optional) Event on which the map info will be opened
|
||||
* @return static
|
||||
*/
|
||||
public function addMapInfoFeature($eventLabel = ScriptLabel::MOUSECLICK) {
|
||||
$mapInfo = new MapInfo($this, $eventLabel);
|
||||
$this->addScriptFeature($mapInfo);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature to open a specific player profile
|
||||
*
|
||||
* @param string $login Login of the player
|
||||
* @param string $eventLabel (optional) Event on which the player profile will be opened
|
||||
* @return static
|
||||
*/
|
||||
public function addPlayerProfileFeature($login, $eventLabel = ScriptLabel::MOUSECLICK) {
|
||||
$playerProfile = new PlayerProfile($login, $this, $eventLabel);
|
||||
$this->addScriptFeature($playerProfile);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature playing a UISound
|
||||
*
|
||||
* @param string $soundName UISound name
|
||||
* @param int $variant (optional) Sound variant
|
||||
* @param string $eventLabel (optional) Event on which the sound will be played
|
||||
* @return static
|
||||
*/
|
||||
public function addUISoundFeature($soundName, $variant = 0, $eventLabel = ScriptLabel::MOUSECLICK) {
|
||||
$uiSound = new UISound($soundName, $this, $variant, $eventLabel);
|
||||
$this->addScriptFeature($uiSound);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature toggling another Control
|
||||
*
|
||||
* @param Control $toggledControl Toggled Control
|
||||
* @param string $labelName (optional) Script label name
|
||||
* @param bool $onlyShow (optional) Whether it should only show the Control but not toggle
|
||||
* @param bool $onlyHide (optional) Whether it should only hide the Control but not toggle
|
||||
* @return static
|
||||
*/
|
||||
public function addToggleFeature(Control $toggledControl, $labelName = Scriptlabel::MOUSECLICK, $onlyShow = false, $onlyHide = false) {
|
||||
$toggle = new Toggle($this, $toggledControl, $labelName, $onlyShow, $onlyHide);
|
||||
$this->addScriptFeature($toggle);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature showing a Tooltip on hovering
|
||||
*
|
||||
* @param Control $tooltipControl Tooltip Control
|
||||
* @param bool $stayOnClick (optional) Whether the Tooltip should stay on click
|
||||
* @param bool $invert (optional) Whether the visibility toggling should be inverted
|
||||
* @return static
|
||||
*/
|
||||
public function addTooltipFeature(Control $tooltipControl, $stayOnClick = false, $invert = false) {
|
||||
$tooltip = new Tooltip($this, $tooltipControl, $stayOnClick, $invert);
|
||||
$this->addScriptFeature($tooltip);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature showing a Tooltip on hovering
|
||||
*
|
||||
* @param Label $tooltipControl Tooltip Control
|
||||
* @param string $text Text to display on the Tooltip Label
|
||||
* @param bool $stayOnClick (optional) Whether the Tooltip should stay on click
|
||||
* @param bool $invert (optional) Whether the visibility toggling should be inverted
|
||||
* @return static
|
||||
*/
|
||||
public function addTooltipLabelFeature(Label $tooltipControl, $text, $stayOnClick = false, $invert = false) {
|
||||
$tooltip = new Tooltip($this, $tooltipControl, $stayOnClick, $invert, $text);
|
||||
$this->addScriptFeature($tooltip);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a custom Control Script text part
|
||||
*
|
||||
* @param string $scriptText Script text
|
||||
* @param string $label (optional) Script label name
|
||||
* @return static
|
||||
*/
|
||||
public function addScriptText($scriptText, $label = ScriptLabel::MOUSECLICK) {
|
||||
$customText = new ControlScript($this, $scriptText, $label);
|
||||
$this->addScriptFeature($customText);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all Script Features
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeScriptFeatures() {
|
||||
$this->scriptFeatures = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\ScriptFeatureable::getScriptFeatures()
|
||||
*/
|
||||
public function getScriptFeatures() {
|
||||
return $this->scriptFeatures;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
if ($this->controlId) {
|
||||
$xmlElement->setAttribute('id', $this->controlId);
|
||||
}
|
||||
if ($this->posX || $this->posY || $this->posZ) {
|
||||
$xmlElement->setAttribute('posn', "{$this->posX} {$this->posY} {$this->posZ}");
|
||||
}
|
||||
if ($this->width >= 0. || $this->height >= 0.) {
|
||||
$xmlElement->setAttribute('sizen', "{$this->width} {$this->height}");
|
||||
}
|
||||
if ($this->hAlign !== self::LEFT) {
|
||||
$xmlElement->setAttribute('halign', $this->hAlign);
|
||||
}
|
||||
if ($this->vAlign !== self::TOP) {
|
||||
$xmlElement->setAttribute('valign', $this->vAlign);
|
||||
}
|
||||
if ($this->scale != 1.) {
|
||||
$xmlElement->setAttribute('scale', $this->scale);
|
||||
}
|
||||
if ($this->hidden) {
|
||||
$xmlElement->setAttribute('hidden', $this->hidden);
|
||||
}
|
||||
if ($this->rotation) {
|
||||
$xmlElement->setAttribute('rot', $this->rotation);
|
||||
}
|
||||
if (!empty($this->classes)) {
|
||||
$classes = implode(' ', $this->classes);
|
||||
$xmlElement->setAttribute('class', $classes);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ManiaScript class of the Control
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public abstract function getManiaScriptClass();
|
||||
}
|
@ -1,217 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Script\Features\EntrySubmit;
|
||||
use FML\Types\NewLineable;
|
||||
use FML\Types\Scriptable;
|
||||
use FML\Types\Styleable;
|
||||
use FML\Types\TextFormatable;
|
||||
|
||||
/**
|
||||
* Entry Control
|
||||
* (CMlEntry)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Entry extends Control implements NewLineable, Scriptable, Styleable, TextFormatable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'entry';
|
||||
protected $name = null;
|
||||
protected $default = null;
|
||||
protected $autoNewLine = null;
|
||||
protected $scriptEvents = null;
|
||||
protected $style = null;
|
||||
protected $textColor = null;
|
||||
protected $textSize = -1;
|
||||
protected $textFont = null;
|
||||
protected $focusAreaColor1 = null;
|
||||
protected $focusAreaColor2 = null;
|
||||
protected $autoComplete = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlEntry';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Entry name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName() {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Entry name
|
||||
*
|
||||
* @param string $name Entry name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default value
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDefault() {
|
||||
return $this->default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default value
|
||||
*
|
||||
* @param string $default Default value
|
||||
* @return static
|
||||
*/
|
||||
public function setDefault($default) {
|
||||
$this->default = $default;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\NewLineable::setAutoNewLine()
|
||||
*/
|
||||
public function setAutoNewLine($autoNewLine) {
|
||||
$this->autoNewLine = ($autoNewLine ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextColor()
|
||||
*/
|
||||
public function setTextColor($textColor) {
|
||||
$this->textColor = (string)$textColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextSize()
|
||||
*/
|
||||
public function setTextSize($textSize) {
|
||||
$this->textSize = (int)$textSize;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextFont()
|
||||
*/
|
||||
public function setTextFont($textFont) {
|
||||
$this->textFont = (string)$textFont;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaColor()
|
||||
*/
|
||||
public function setAreaColor($areaColor) {
|
||||
$this->focusAreaColor1 = (string)$areaColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaFocusColor()
|
||||
*/
|
||||
public function setAreaFocusColor($areaFocusColor) {
|
||||
$this->focusAreaColor2 = (string)$areaFocusColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set auto completion
|
||||
*
|
||||
* @param bool $autoComplete Whether the default value should be automatically completed based on the current request parameters
|
||||
* @return static
|
||||
*/
|
||||
public function setAutoComplete($autoComplete) {
|
||||
$this->autoComplete = (bool)$autoComplete;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature submitting the Entry
|
||||
*
|
||||
* @param string $url Submit url
|
||||
* @return static
|
||||
*/
|
||||
public function addSubmitFeature($url) {
|
||||
$entrySubmit = new EntrySubmit($this, $url);
|
||||
$this->addScriptFeature($entrySubmit);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->name) {
|
||||
$xmlElement->setAttribute('name', $this->name);
|
||||
}
|
||||
if (!is_null($this->default)) {
|
||||
$xmlElement->setAttribute('default', $this->default);
|
||||
} else if ($this->autoComplete) {
|
||||
$value = null;
|
||||
if (array_key_exists($this->name, $_GET)) {
|
||||
$value = $_GET[$this->name];
|
||||
} else if (array_key_exists($this->name, $_POST)) {
|
||||
$value = $_POST[$this->name];
|
||||
}
|
||||
if ($value) {
|
||||
$xmlElement->setAttribute('default', $value);
|
||||
}
|
||||
}
|
||||
if ($this->autoNewLine) {
|
||||
$xmlElement->setAttribute('autonewline', $this->autoNewLine);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
if ($this->style) {
|
||||
$xmlElement->setAttribute('style', $this->style);
|
||||
}
|
||||
if ($this->textColor) {
|
||||
$xmlElement->setAttribute('textcolor', $this->textColor);
|
||||
}
|
||||
if ($this->textSize >= 0.) {
|
||||
$xmlElement->setAttribute('textsize', $this->textSize);
|
||||
}
|
||||
if ($this->textFont) {
|
||||
$xmlElement->setAttribute('textfont', $this->textFont);
|
||||
}
|
||||
if ($this->focusAreaColor1) {
|
||||
$xmlElement->setAttribute('focusareacolor1', $this->focusAreaColor1);
|
||||
}
|
||||
if ($this->focusAreaColor2) {
|
||||
$xmlElement->setAttribute('focusareacolor2', $this->focusAreaColor2);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
/**
|
||||
* FileEntry Control
|
||||
* (CMlFileEntry)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class FileEntry extends Entry {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'fileentry';
|
||||
protected $folder = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlFileEntry';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the base folder
|
||||
*
|
||||
* @param string $folder Base folder
|
||||
* @return static
|
||||
*/
|
||||
public function setFolder($folder) {
|
||||
$this->folder = (string)$folder;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->folder) {
|
||||
$xmlElement->setAttribute('folder', $this->folder);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,99 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Elements\Format;
|
||||
use FML\Types\Container;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
|
||||
/**
|
||||
* Frame Control
|
||||
* (CMlFrame)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Frame extends Control implements Container {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'frame';
|
||||
/** @var Renderable[] $children */
|
||||
protected $children = array();
|
||||
/** @var Format $format */
|
||||
protected $format = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlFrame';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::add()
|
||||
*/
|
||||
public function add(Renderable $child) {
|
||||
if (!in_array($child, $this->children, true)) {
|
||||
array_push($this->children, $child);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::removeChildren()
|
||||
*/
|
||||
public function removeChildren() {
|
||||
$this->children = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::getFormat()
|
||||
*/
|
||||
public function getFormat($createIfEmpty = true) {
|
||||
if (!$this->format && $createIfEmpty) {
|
||||
$this->setFormat(new Format());
|
||||
}
|
||||
return $this->format;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::setFormat()
|
||||
*/
|
||||
public function setFormat(Format $format) {
|
||||
$this->format = $format;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getScriptFeatures()
|
||||
*/
|
||||
public function getScriptFeatures() {
|
||||
$scriptFeatures = $this->scriptFeatures;
|
||||
foreach ($this->children as $child) {
|
||||
if ($child instanceof ScriptFeatureable) {
|
||||
$scriptFeatures = array_merge($scriptFeatures, $child->getScriptFeatures());
|
||||
}
|
||||
}
|
||||
return $scriptFeatures;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->format) {
|
||||
$formatXml = $this->format->render($domDocument);
|
||||
$xmlElement->appendChild($formatXml);
|
||||
}
|
||||
foreach ($this->children as $child) {
|
||||
$childXmlElement = $child->render($domDocument);
|
||||
$xmlElement->appendChild($childXmlElement);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,88 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Stylesheet\Style3d;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Frame3d Control
|
||||
* (CMlFrame)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Frame3d extends Frame implements Scriptable {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE_BaseStation = 'BaseStation';
|
||||
const STYLE_BaseBoxCase = 'BaseBoxCase';
|
||||
const STYLE_Titlelogo = 'Titlelogo';
|
||||
const STYLE_ButtonBack = 'ButtonBack';
|
||||
const STYLE_ButtonNav = 'ButtonNav';
|
||||
const STYLE_ButtonH = 'ButtonH';
|
||||
const STYLE_Station3x3 = 'Station3x3';
|
||||
const STYLE_Title = 'Title';
|
||||
const STYLE_TitleEditor = 'TitleEditor';
|
||||
const STYLE_Window = 'Window';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'frame3d';
|
||||
protected $style3dId = null;
|
||||
/** @var Style3d $style3d */
|
||||
protected $style3d = null;
|
||||
protected $scriptEvents = null;
|
||||
|
||||
/**
|
||||
* Set Style3d id
|
||||
*
|
||||
* @param string $style3dId Style3d id
|
||||
* @return static
|
||||
*/
|
||||
public function setStyle3dId($style3dId) {
|
||||
$this->style3dId = (string)$style3dId;
|
||||
$this->style3d = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Style3d
|
||||
*
|
||||
* @param Style3d $style3d Style3d object
|
||||
* @return static
|
||||
*/
|
||||
public function setStyle3d(Style3d $style3d) {
|
||||
$this->style3d = $style3d;
|
||||
$this->style3dId = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->style3d) {
|
||||
$this->style3d->checkId();
|
||||
$xmlElement->setAttribute('style3d', $this->style3d->getId());
|
||||
} else if ($this->style3dId) {
|
||||
$xmlElement->setAttribute('style3d', $this->style3dId);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,92 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Elements\FrameModel;
|
||||
|
||||
/**
|
||||
* Class representing an instance of a Frame Model
|
||||
* (CMlFrame)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class FrameInstance extends Control {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'frameinstance';
|
||||
protected $modelId = null;
|
||||
/** @var FrameModel $model */
|
||||
protected $model = null;
|
||||
|
||||
/**
|
||||
* Create a new Frame Instance object
|
||||
*
|
||||
* @param string $modelId (optional) Frame Model id
|
||||
* @param string $controlId (optional) Frame id
|
||||
* @return static
|
||||
*/
|
||||
public static function create($modelId = null, $controlId = null) {
|
||||
return new static($modelId, $controlId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Frame Instance object
|
||||
*
|
||||
* @param string $modelId (optional) Frame Model id
|
||||
* @param string $controlId (optional) Frame id
|
||||
*/
|
||||
public function __construct($modelId = null, $controlId = null) {
|
||||
parent::__construct($controlId);
|
||||
if (!is_null($modelId)) {
|
||||
$this->setModelId($modelId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Frame Model id
|
||||
*
|
||||
* @param string $modelId Frame Model id
|
||||
* @return static
|
||||
*/
|
||||
public function setModelId($modelId) {
|
||||
$this->modelId = (string)$modelId;
|
||||
$this->model = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Frame Model
|
||||
*
|
||||
* @param FrameModel $frameModel Frame Model
|
||||
* @return static
|
||||
*/
|
||||
public function setModel(FrameModel $frameModel) {
|
||||
$this->model = $frameModel;
|
||||
$this->modelId = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlFrame';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->model) {
|
||||
$this->model->checkId();
|
||||
$xmlElement->setAttribute('modelid', $this->model->getId());
|
||||
} else if ($this->modelId) {
|
||||
$xmlElement->setAttribute('modelid', $this->modelId);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,175 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Types\Styleable;
|
||||
|
||||
/**
|
||||
* Gauge Control
|
||||
* (CMlGauge)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Gauge extends Control implements Styleable {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE_BgCard = 'BgCard';
|
||||
const STYLE_EnergyBar = 'EnergyBar';
|
||||
const STYLE_ProgressBar = 'ProgressBar';
|
||||
const STYLE_ProgressBarSmall = 'ProgressBarSmall';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'gauge';
|
||||
protected $ratio = 0.;
|
||||
protected $grading = 1.;
|
||||
protected $color = null;
|
||||
protected $rotation = 0.;
|
||||
protected $centered = null;
|
||||
protected $clan = null;
|
||||
protected $drawBg = 1;
|
||||
protected $drawBlockBg = 1;
|
||||
protected $style = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlGauge';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ratio
|
||||
*
|
||||
* @param float $ratio Ratio value
|
||||
* @return static
|
||||
*/
|
||||
public function setRatio($ratio) {
|
||||
$this->ratio = (float)$ratio;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set grading
|
||||
*
|
||||
* @param float $grading Grading value
|
||||
* @return static
|
||||
*/
|
||||
public function setGrading($grading) {
|
||||
$this->grading = (float)$grading;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set color
|
||||
*
|
||||
* @param string $color Gauge color
|
||||
* @return static
|
||||
*/
|
||||
public function setColor($color) {
|
||||
$this->color = (string)$color;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set rotation
|
||||
*
|
||||
* @param float $rotation Gauge rotation
|
||||
* @return static
|
||||
*/
|
||||
public function setRotation($rotation) {
|
||||
$this->rotation = (float)$rotation;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set centered
|
||||
*
|
||||
* @param bool $centered Whether the Gauge is centered
|
||||
* @return static
|
||||
*/
|
||||
public function setCentered($centered) {
|
||||
$this->centered = ($centered ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set clan
|
||||
*
|
||||
* @param int $clan Clan number
|
||||
* @return static
|
||||
*/
|
||||
public function setClan($clan) {
|
||||
$this->clan = (int)$clan;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set draw background
|
||||
*
|
||||
* @param bool $drawBg Whether the Gauges background should be drawn
|
||||
* @return static
|
||||
*/
|
||||
public function setDrawBg($drawBg) {
|
||||
$this->drawBg = ($drawBg ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set draw block background
|
||||
*
|
||||
* @param bool $drawBlockBg Whether the Gauges block background should be drawn
|
||||
* @return static
|
||||
*/
|
||||
public function setDrawBlockBg($drawBlockBg) {
|
||||
$this->drawBlockBg = ($drawBlockBg ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Control::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->ratio) {
|
||||
$xmlElement->setAttribute('ratio', $this->ratio);
|
||||
}
|
||||
if ($this->grading != 1.) {
|
||||
$xmlElement->setAttribute('grading', $this->grading);
|
||||
}
|
||||
if ($this->color) {
|
||||
$xmlElement->setAttribute('color', $this->color);
|
||||
}
|
||||
if ($this->rotation) {
|
||||
$xmlElement->setAttribute('rotation', $this->rotation);
|
||||
}
|
||||
if ($this->centered) {
|
||||
$xmlElement->setAttribute('centered', $this->centered);
|
||||
}
|
||||
if ($this->clan) {
|
||||
$xmlElement->setAttribute('clan', $this->clan);
|
||||
}
|
||||
if (!$this->drawBg) {
|
||||
$xmlElement->setAttribute('drawbg', $this->drawBg);
|
||||
}
|
||||
if (!$this->drawBlockBg) {
|
||||
$xmlElement->setAttribute('drawblockbg', $this->drawBlockBg);
|
||||
}
|
||||
if ($this->style) {
|
||||
$xmlElement->setAttribute('style', $this->style);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,317 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Script\Features\Clock;
|
||||
use FML\Types\Actionable;
|
||||
use FML\Types\Linkable;
|
||||
use FML\Types\NewLineable;
|
||||
use FML\Types\Scriptable;
|
||||
use FML\Types\Styleable;
|
||||
use FML\Types\TextFormatable;
|
||||
|
||||
/**
|
||||
* Label Control
|
||||
* (CMlLabel)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Label extends Control implements Actionable, Linkable, NewLineable, Scriptable, Styleable, TextFormatable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'label';
|
||||
protected $text = null;
|
||||
protected $textId = null;
|
||||
protected $textPrefix = null;
|
||||
protected $textEmboss = null;
|
||||
protected $translate = null;
|
||||
protected $maxLines = -1;
|
||||
protected $opacity = 1.;
|
||||
protected $action = null;
|
||||
protected $actionKey = -1;
|
||||
protected $url = null;
|
||||
protected $urlId = null;
|
||||
protected $manialink = null;
|
||||
protected $manialinkId = null;
|
||||
protected $autoNewLine = null;
|
||||
protected $scriptEvents = null;
|
||||
protected $style = null;
|
||||
protected $textSize = -1;
|
||||
protected $textFont = null;
|
||||
protected $textColor = null;
|
||||
protected $focusAreaColor1 = null;
|
||||
protected $focusAreaColor2 = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlLabel';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text
|
||||
*
|
||||
* @param string $text Text value
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text id to use from Dico
|
||||
*
|
||||
* @param string $textId Text id
|
||||
* @return static
|
||||
*/
|
||||
public function setTextId($textId) {
|
||||
$this->textId = (string)$textId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text prefix
|
||||
*
|
||||
* @param string $textPrefix Text prefix
|
||||
* @return static
|
||||
*/
|
||||
public function setTextPrefix($textPrefix) {
|
||||
$this->textPrefix = (string)$textPrefix;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text emboss
|
||||
*
|
||||
* @param bool $textEmboss Whether the text should be embossed
|
||||
* @return static
|
||||
*/
|
||||
public function setTextEmboss($textEmboss) {
|
||||
$this->textEmboss = ($textEmboss ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set translate
|
||||
*
|
||||
* @param bool $translate Whether the text should be translated
|
||||
* @return static
|
||||
*/
|
||||
public function setTranslate($translate) {
|
||||
$this->translate = ($translate ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set max lines count
|
||||
*
|
||||
* @param int $maxLines Max lines count
|
||||
* @return static
|
||||
*/
|
||||
public function setMaxLines($maxLines) {
|
||||
$this->maxLines = (int)$maxLines;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::getAction()
|
||||
*/
|
||||
public function getAction() {
|
||||
return $this->action;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::setAction()
|
||||
*/
|
||||
public function setAction($action) {
|
||||
$this->action = (string)$action;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::setActionKey()
|
||||
*/
|
||||
public function setActionKey($actionKey) {
|
||||
$this->actionKey = (int)$actionKey;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setUrl()
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setUrlId()
|
||||
*/
|
||||
public function setUrlId($urlId) {
|
||||
$this->urlId = (string)$urlId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setManialink()
|
||||
*/
|
||||
public function setManialink($manialink) {
|
||||
$this->manialink = (string)$manialink;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setManialinkId()
|
||||
*/
|
||||
public function setManialinkId($manialinkId) {
|
||||
$this->manialinkId = (string)$manialinkId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\NewLineable::setAutoNewLine()
|
||||
*/
|
||||
public function setAutoNewLine($autoNewLine) {
|
||||
$this->autoNewLine = ($autoNewLine ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextSize()
|
||||
*/
|
||||
public function setTextSize($textSize) {
|
||||
$this->textSize = (int)$textSize;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextFont()
|
||||
*/
|
||||
public function setTextFont($textFont) {
|
||||
$this->textFont = (string)$textFont;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextColor()
|
||||
*/
|
||||
public function setTextColor($textColor) {
|
||||
$this->textColor = (string)$textColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaColor()
|
||||
*/
|
||||
public function setAreaColor($areaColor) {
|
||||
$this->focusAreaColor1 = (string)$areaColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaFocusColor()
|
||||
*/
|
||||
public function setAreaFocusColor($areaFocusColor) {
|
||||
$this->focusAreaColor2 = (string)$areaFocusColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a dynamic Feature showing the current time
|
||||
*
|
||||
* @param bool $showSeconds (optional) Whether the seconds should be shown
|
||||
* @param bool $showFullDate (optional) Whether the date should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function addClockFeature($showSeconds = true, $showFullDate = false) {
|
||||
$clock = new Clock($this, $showSeconds, $showFullDate);
|
||||
$this->addScriptFeature($clock);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if (strlen($this->text) > 0) {
|
||||
$xmlElement->setAttribute('text', $this->text);
|
||||
}
|
||||
if ($this->textId) {
|
||||
$xmlElement->setAttribute('textid', $this->textId);
|
||||
}
|
||||
if ($this->textPrefix) {
|
||||
$xmlElement->setAttribute('textprefix', $this->textPrefix);
|
||||
}
|
||||
if ($this->textEmboss) {
|
||||
$xmlElement->setAttribute('textemboss', $this->textEmboss);
|
||||
}
|
||||
if ($this->translate) {
|
||||
$xmlElement->setAttribute('translate', $this->translate);
|
||||
}
|
||||
if ($this->maxLines >= 0) {
|
||||
$xmlElement->setAttribute('maxlines', $this->maxLines);
|
||||
}
|
||||
if ($this->opacity != 1.) {
|
||||
$xmlElement->setAttribute('opacity', $this->opacity);
|
||||
}
|
||||
if (strlen($this->action) > 0) {
|
||||
$xmlElement->setAttribute('action', $this->action);
|
||||
}
|
||||
if ($this->actionKey >= 0) {
|
||||
$xmlElement->setAttribute('actionkey', $this->actionKey);
|
||||
}
|
||||
if ($this->url) {
|
||||
$xmlElement->setAttribute('url', $this->url);
|
||||
}
|
||||
if ($this->manialink) {
|
||||
$xmlElement->setAttribute('manialink', $this->manialink);
|
||||
}
|
||||
if ($this->autoNewLine) {
|
||||
$xmlElement->setAttribute('autonewline', $this->autoNewLine);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
if ($this->style) {
|
||||
$xmlElement->setAttribute('style', $this->style);
|
||||
}
|
||||
if ($this->textSize >= 0) {
|
||||
$xmlElement->setAttribute('textsize', $this->textSize);
|
||||
}
|
||||
if ($this->textFont) {
|
||||
$xmlElement->setAttribute('textfont', $this->textFont);
|
||||
}
|
||||
if ($this->textColor) {
|
||||
$xmlElement->setAttribute('textcolor', $this->textColor);
|
||||
}
|
||||
if ($this->focusAreaColor1) {
|
||||
$xmlElement->setAttribute('focusareacolor1', $this->focusAreaColor1);
|
||||
}
|
||||
if ($this->focusAreaColor2) {
|
||||
$xmlElement->setAttribute('focusareacolor2', $this->focusAreaColor2);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Labels;
|
||||
|
||||
use FML\Controls\Label;
|
||||
|
||||
/**
|
||||
* Label class for button styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Label_Button extends Label {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE_CardButtonMedium = 'CardButtonMedium';
|
||||
const STYLE_CardButtonMediumL = 'CardButtonMediumL';
|
||||
const STYLE_CardButtonMediumS = 'CardButtonMediumS';
|
||||
const STYLE_CardButtonMediumWide = 'CardButtonMediumWide';
|
||||
const STYLE_CardButtonMediumXL = 'CardButtonMediumXL';
|
||||
const STYLE_CardButtonMediumXS = 'CardButtonMediumXS';
|
||||
const STYLE_CardButtonMediumXXL = 'CardButtonMediumXXL';
|
||||
const STYLE_CardButtonMediumXXXL = 'CardButtonMediumXXXL';
|
||||
const STYLE_CardButtonSmall = 'CardButtonSmall';
|
||||
const STYLE_CardButtonSmallL = 'CardButtonSmallL';
|
||||
const STYLE_CardButtonSmallS = 'CardButtonSmallS';
|
||||
const STYLE_CardButtonSmallWide = 'CardButtonSmallWide';
|
||||
const STYLE_CardButtonSmallXL = 'CardButtonSmallXL';
|
||||
const STYLE_CardButtonSmallXS = 'CardButtonSmallXS';
|
||||
const STYLE_CardButtonSmallXXL = 'CardButtonSmallXXL';
|
||||
const STYLE_CardButtonSmallXXXL = 'CardButtonSmallXXXL';
|
||||
const STYLE_CardMain_Quit = 'CardMain_Quit';
|
||||
const STYLE_CardMain_Tool = 'CardMain_Tool';
|
||||
const STYLE_CardMain_Tool_NoBg = 'CardMain_Tool_NoBg';
|
||||
const STYLE_CardMain_Tool_NoBg2 = 'CardMain_Tool_NoBg2';
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Labels;
|
||||
|
||||
use FML\Controls\Label;
|
||||
|
||||
/**
|
||||
* Label class for text styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Label_Text extends Label {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE_AvatarButtonNormal = 'AvatarButtonNormal';
|
||||
const STYLE_BgMainMenuTitleHeader = 'BgMainMenuTitleHeader';
|
||||
const STYLE_Default = 'Default';
|
||||
const STYLE_FrameTransitionFromLeft = 'FrameTransitionFromLeft';
|
||||
const STYLE_FrameTransitionsFromRight = 'FrameTransitionsFromRight';
|
||||
const STYLE_ListItemMedal = 'ListItemMedal';
|
||||
const STYLE_Manialink_Body = 'Manialink_Body';
|
||||
const STYLE_ProgressBar = 'ProgressBar';
|
||||
const STYLE_ProgressBarSmall = 'ProgressBarSmall';
|
||||
const STYLE_SliderSmall = 'SliderSmall';
|
||||
const STYLE_SliderVolume = 'SliderVolume';
|
||||
const STYLE_StyleTextScriptEditor = 'StyleTextScriptEditor';
|
||||
const STYLE_StyleValueYellowSmall = 'StyleValueYellowSmall';
|
||||
const STYLE_TextActionMaker = 'TextActionMaker';
|
||||
const STYLE_TextButtonBig = 'TextButtonBig';
|
||||
const STYLE_TextButtonMedium = 'TextButtonMedium';
|
||||
const STYLE_TextButtonNav = 'TextButtonNav';
|
||||
const STYLE_TextButtonNavBack = 'TextButtonNavBack';
|
||||
const STYLE_TextButtonSmall = 'TextButtonSmall';
|
||||
const STYLE_TextCardInfoSmall = 'TextCardInfoSmall';
|
||||
const STYLE_TextCardInfoVerySmall = 'TextCardInfoVerySmall';
|
||||
const STYLE_TextCardMedium = 'TextCardMedium';
|
||||
const STYLE_TextCardMediumWhite = 'TextCardMediumWhite';
|
||||
const STYLE_TextCardRaceRank = 'TextCardRaceRank';
|
||||
const STYLE_TextCardScores2 = 'TextCardScores2';
|
||||
const STYLE_TextCardSmall = 'TextCardSmall';
|
||||
const STYLE_TextCardSmallScores2 = 'TextCardSmallScores2';
|
||||
const STYLE_TextCardSmallScores2Rank = 'TextCardSmallScores2Rank';
|
||||
const STYLE_TextChallengeNameMedal = 'TextChallengeNameMedal';
|
||||
const STYLE_TextChallengeNameMedalNone = 'TextChallengeNameMedalNone';
|
||||
const STYLE_TextChallengeNameMedium = 'TextChallengeNameMedium';
|
||||
const STYLE_TextChallengeNameSmall = 'TextChallengeNameSmall';
|
||||
const STYLE_TextCongratsBig = 'TextCongratsBig';
|
||||
const STYLE_TextCredits = 'TextCredits';
|
||||
const STYLE_TextCreditsTitle = 'TextCreditsTitle';
|
||||
const STYLE_TextEditorArticle = 'TextEditorArticle';
|
||||
const STYLE_TextInfoMedium = 'TextInfoMedium';
|
||||
const STYLE_TextInfoSmall = 'TextInfoSmall';
|
||||
const STYLE_TextPlayerCardName = 'TextPlayerCardName';
|
||||
const STYLE_TextPlayerCardScore = 'TextPlayerCardScore';
|
||||
const STYLE_TextRaceChat = 'TextRaceChat';
|
||||
const STYLE_TextRaceChrono = 'TextRaceChrono';
|
||||
const STYLE_TextRaceChronoError = 'TextRaceChronoError';
|
||||
const STYLE_TextRaceChronoOfficial = 'TextRaceChronoOfficial';
|
||||
const STYLE_TextRaceChronoWarning = 'TextRaceChronoWarning';
|
||||
const STYLE_TextRaceMessage = 'TextRaceMessage';
|
||||
const STYLE_TextRaceMessageBig = 'TextRaceMessageBig';
|
||||
const STYLE_TextRaceStaticSmall = 'TextRaceStaticSmall';
|
||||
const STYLE_TextRaceValueSmall = 'TextRaceValueSmall';
|
||||
const STYLE_TextRankingsBig = 'TextRankingsBig';
|
||||
const STYLE_TextSPScoreBig = 'TextSPScoreBig';
|
||||
const STYLE_TextSPScoreMedium = 'TextSPScoreMedium';
|
||||
const STYLE_TextSPScoreSmall = 'TextSPScoreSmall';
|
||||
const STYLE_TextStaticMedium = 'TextStaticMedium';
|
||||
const STYLE_TextStaticSmall = 'TextStaticSmall';
|
||||
const STYLE_TextStaticVerySmall = 'TextStaticVerySmall';
|
||||
const STYLE_TextSubTitle1 = 'TextSubTitle1';
|
||||
const STYLE_TextSubTitle2 = 'TextSubTitle2';
|
||||
const STYLE_TextTips = 'TextTips';
|
||||
const STYLE_TextTitle1 = 'TextTitle1';
|
||||
const STYLE_TextTitle2 = 'TextTitle2';
|
||||
const STYLE_TextTitle2Blink = 'TextTitle2Blink';
|
||||
const STYLE_TextTitle3 = 'TextTitle3';
|
||||
const STYLE_TextTitle3Header = 'TextTitle3Header';
|
||||
const STYLE_TextTitleError = 'TextTitleError';
|
||||
const STYLE_TextToolTipAM = 'TextToolTipAM';
|
||||
const STYLE_TextToolTipAMBig = 'TextToolTipAMBig';
|
||||
const STYLE_TextValueBig = 'TextValueBig';
|
||||
const STYLE_TextValueMedium = 'TextValueMedium';
|
||||
const STYLE_TextValueMediumSm = 'TextValueMediumSm';
|
||||
const STYLE_TextValueSmall = 'TextValueSmall';
|
||||
const STYLE_TextValueSmallSm = 'TextValueSmallSm';
|
||||
const STYLE_TrackerText = 'TrackerText';
|
||||
const STYLE_TrackerTextBig = 'TrackerTextBig';
|
||||
const STYLE_TrackListItem = 'TrackListItem';
|
||||
const STYLE_TrackListLine = 'TrackListLine';
|
||||
const STYLE_UiDriving_BgBottom = 'UiDriving_BgBottom';
|
||||
const STYLE_UiDriving_BgCard = 'UiDriving_BgCard';
|
||||
const STYLE_UiDriving_BgCenter = 'UiDriving_BgCenter';
|
||||
}
|
@ -1,339 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Models\CheckBoxDesign;
|
||||
use FML\Types\Actionable;
|
||||
use FML\Types\BgColorable;
|
||||
use FML\Types\Linkable;
|
||||
use FML\Types\Scriptable;
|
||||
use FML\Types\Styleable;
|
||||
use FML\Types\SubStyleable;
|
||||
|
||||
/**
|
||||
* Quad Control
|
||||
* (CMlQuad)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad extends Control implements Actionable, BgColorable, Linkable, Scriptable, Styleable, SubStyleable {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const KEEP_RATIO_INACTIVE = 'inactive';
|
||||
const KEEP_RATIO_CLIP = 'Clip';
|
||||
const KEEP_RATIO_FIT = 'Fit';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'quad';
|
||||
protected $image = null;
|
||||
protected $imageId = null;
|
||||
protected $imageFocus = null;
|
||||
protected $imageFocusId = null;
|
||||
protected $colorize = null;
|
||||
protected $modulizeColor = null;
|
||||
protected $autoScale = 1;
|
||||
protected $keepRatio = null;
|
||||
protected $action = null;
|
||||
protected $actionKey = -1;
|
||||
protected $bgColor = null;
|
||||
protected $url = null;
|
||||
protected $urlId = null;
|
||||
protected $manialink = null;
|
||||
protected $manialinkId = null;
|
||||
protected $scriptEvents = null;
|
||||
protected $style = null;
|
||||
protected $subStyle = null;
|
||||
protected $styleSelected = null;
|
||||
protected $opacity = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlQuad';
|
||||
}
|
||||
|
||||
/**
|
||||
* Set image url
|
||||
*
|
||||
* @param string $image Image url
|
||||
* @return static
|
||||
*/
|
||||
public function setImage($image) {
|
||||
$this->image = (string)$image;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set image id to use from Dico
|
||||
*
|
||||
* @param string $imageId Image id
|
||||
* @return static
|
||||
*/
|
||||
public function setImageId($imageId) {
|
||||
$this->imageId = (string)$imageId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus image url
|
||||
*
|
||||
* @param string $imageFocus Focus image url
|
||||
* @return static
|
||||
*/
|
||||
public function setImageFocus($imageFocus) {
|
||||
$this->imageFocus = (string)$imageFocus;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus image id to use from Dico
|
||||
*
|
||||
* @param string $imageFocusId Focus image id
|
||||
* @return static
|
||||
*/
|
||||
public function setImageFocusId($imageFocusId) {
|
||||
$this->imageFocusId = (string)$imageFocusId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set colorization
|
||||
*
|
||||
* @param string $colorize Colorize value
|
||||
* @return static
|
||||
*/
|
||||
public function setColorize($colorize) {
|
||||
$this->colorize = (string)$colorize;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set modulization
|
||||
*
|
||||
* @param string $modulizeColor Modulize value
|
||||
* @return static
|
||||
*/
|
||||
public function setModulizeColor($modulizeColor) {
|
||||
$this->modulizeColor = (string)$modulizeColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable the automatic image scaling
|
||||
*
|
||||
* @param bool $autoScale Whether the image should scale automatically
|
||||
* @return static
|
||||
*/
|
||||
public function setAutoScale($autoScale) {
|
||||
$this->autoScale = ($autoScale ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Keep Ratio Mode
|
||||
*
|
||||
* @param string $keepRatio Keep Ratio Mode
|
||||
* @return static
|
||||
*/
|
||||
public function setKeepRatio($keepRatio) {
|
||||
$this->keepRatio = (string)$keepRatio;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::getAction()
|
||||
*/
|
||||
public function getAction() {
|
||||
return $this->action;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::setAction()
|
||||
*/
|
||||
public function setAction($action) {
|
||||
$this->action = (string)$action;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Actionable::setActionKey()
|
||||
*/
|
||||
public function setActionKey($actionKey) {
|
||||
$this->actionKey = (int)$actionKey;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\BgColorable::setBgColor()
|
||||
*/
|
||||
public function setBgColor($bgColor) {
|
||||
$this->bgColor = (string)$bgColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setUrl()
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setUrlId()
|
||||
*/
|
||||
public function setUrlId($urlId) {
|
||||
$this->urlId = (string)$urlId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setManialink()
|
||||
*/
|
||||
public function setManialink($manialink) {
|
||||
$this->manialink = (string)$manialink;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Linkable::setManialinkId()
|
||||
*/
|
||||
public function setManialinkId($manialinkId) {
|
||||
$this->manialinkId = (string)$manialinkId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\SubStyleable::setStyles()
|
||||
*/
|
||||
public function setStyles($style, $subStyle) {
|
||||
$this->setStyle($style);
|
||||
$this->setSubStyle($subStyle);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\SubStyleable::setSubStyle()
|
||||
*/
|
||||
public function setSubStyle($subStyle) {
|
||||
$this->subStyle = (string)$subStyle;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set selected mode
|
||||
*
|
||||
* @param bool $styleSelected
|
||||
* @return static
|
||||
*/
|
||||
public function setStyleSelected($styleSelected) {
|
||||
$this->styleSelected = ($styleSelected ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set opacity
|
||||
*
|
||||
* @param float $opacity
|
||||
* @return static
|
||||
*/
|
||||
public function setOpacity($opacity) {
|
||||
$this->opacity = (float)$opacity;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the given CheckBox Design
|
||||
*
|
||||
* @param CheckBoxDesign $checkBoxDesign CheckBox Design
|
||||
* @return static
|
||||
*/
|
||||
public function applyCheckBoxDesign(CheckBoxDesign $checkBoxDesign) {
|
||||
$checkBoxDesign->applyToQuad($this);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->image) {
|
||||
$xmlElement->setAttribute('image', $this->image);
|
||||
}
|
||||
if ($this->imageId) {
|
||||
$xmlElement->setAttribute('imageid', $this->imageId);
|
||||
}
|
||||
if ($this->imageFocus) {
|
||||
$xmlElement->setAttribute('imagefocus', $this->imageFocus);
|
||||
}
|
||||
if ($this->imageFocusId) {
|
||||
$xmlElement->setAttribute('imagefocusid', $this->imageFocusId);
|
||||
}
|
||||
if ($this->colorize) {
|
||||
$xmlElement->setAttribute('colorize', $this->colorize);
|
||||
}
|
||||
if ($this->modulizeColor) {
|
||||
$xmlElement->setAttribute('modulizecolor', $this->modulizeColor);
|
||||
}
|
||||
if (!$this->autoScale) {
|
||||
$xmlElement->setAttribute('autoscale', $this->autoScale);
|
||||
}
|
||||
if ($this->keepRatio) {
|
||||
$xmlElement->setAttribute('keepratio', $this->keepRatio);
|
||||
}
|
||||
if (strlen($this->action) > 0) {
|
||||
$xmlElement->setAttribute('action', $this->action);
|
||||
}
|
||||
if ($this->actionKey >= 0) {
|
||||
$xmlElement->setAttribute('actionkey', $this->actionKey);
|
||||
}
|
||||
if ($this->bgColor) {
|
||||
$xmlElement->setAttribute('bgcolor', $this->bgColor);
|
||||
}
|
||||
if ($this->url) {
|
||||
$xmlElement->setAttribute('url', $this->url);
|
||||
}
|
||||
if ($this->manialink) {
|
||||
$xmlElement->setAttribute('manialink', $this->manialink);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
if ($this->style) {
|
||||
$xmlElement->setAttribute('style', $this->style);
|
||||
}
|
||||
if ($this->subStyle) {
|
||||
$xmlElement->setAttribute('substyle', $this->subStyle);
|
||||
}
|
||||
if ($this->styleSelected) {
|
||||
$xmlElement->setAttribute('styleselected', $this->styleSelected);
|
||||
}
|
||||
if ($this->opacity !== 1.) {
|
||||
$xmlElement->setAttribute('opacity', $this->opacity);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for '321Go' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_321Go extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = '321Go';
|
||||
const SUBSTYLE_3 = '3';
|
||||
const SUBSTYLE_2 = '2';
|
||||
const SUBSTYLE_1 = '1';
|
||||
const SUBSTYLE_Go = 'Go!';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'BgRaceScore2' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_BgRaceScore2 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'BgRaceScore2';
|
||||
const SUBSTYLE_BgCardPlayer = 'BgCardPlayer';
|
||||
const SUBSTYLE_BgCardServer = 'BgCardServer';
|
||||
const SUBSTYLE_BgScores = 'BgScores';
|
||||
const SUBSTYLE_Cartouche = 'Cartouche';
|
||||
const SUBSTYLE_CartoucheLine = 'CartoucheLine';
|
||||
const SUBSTYLE_CupFinisher = 'CupFinisher';
|
||||
const SUBSTYLE_CupPotentialFinisher = 'CupPotentialFinisher';
|
||||
const SUBSTYLE_Fame = 'Fame';
|
||||
const SUBSTYLE_Handle = 'Handle';
|
||||
const SUBSTYLE_HandleBlue = 'HandleBlue';
|
||||
const SUBSTYLE_HandleRed = 'HandleRed';
|
||||
const SUBSTYLE_HandleSelectable = 'HandleSelectable';
|
||||
const SUBSTYLE_IsLadderDisabled = 'IsLadderDisabled';
|
||||
const SUBSTYLE_IsLocalPlayer = 'IsLocalPlayer';
|
||||
const SUBSTYLE_LadderPoints = 'LadderPoints';
|
||||
const SUBSTYLE_LadderRank = 'LadderRank';
|
||||
const SUBSTYLE_Laps = 'Laps';
|
||||
const SUBSTYLE_Podium = 'Podium';
|
||||
const SUBSTYLE_Points = 'Points';
|
||||
const SUBSTYLE_SandTimer = 'SandTimer';
|
||||
const SUBSTYLE_ScoreLink = 'ScoreLink';
|
||||
const SUBSTYLE_ScoreReplay = 'ScoreReplay';
|
||||
const SUBSTYLE_SendScore = 'SendScore';
|
||||
const SUBSTYLE_Speaking = 'Speaking';
|
||||
const SUBSTYLE_Spectator = 'Spectator';
|
||||
const SUBSTYLE_Tv = 'Tv';
|
||||
const SUBSTYLE_Warmup = 'Warmup';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Bgs1' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Bgs1 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Bgs1';
|
||||
const SUBSTYLE_ArrowDown = 'ArrowDown';
|
||||
const SUBSTYLE_ArrowLeft = 'ArrowLeft';
|
||||
const SUBSTYLE_ArrowRight = 'ArrowRight';
|
||||
const SUBSTYLE_ArrowUp = 'ArrowUp';
|
||||
const SUBSTYLE_BgButton = 'BgButton';
|
||||
const SUBSTYLE_BgButtonBig = 'BgButtonBig';
|
||||
const SUBSTYLE_BgButtonGlow = 'BgButtonGlow';
|
||||
const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed';
|
||||
const SUBSTYLE_BgButtonOff = 'BgButtonOff';
|
||||
const SUBSTYLE_BgButtonShadow = 'BgButtonShadow';
|
||||
const SUBSTYLE_BgButtonSmall = 'BgButtonSmall';
|
||||
const SUBSTYLE_BgCard = 'BgCard';
|
||||
const SUBSTYLE_BgCard1 = 'BgCard1';
|
||||
const SUBSTYLE_BgCard2 = 'BgCard2';
|
||||
const SUBSTYLE_BgCard3 = 'BgCard3';
|
||||
const SUBSTYLE_BgCardBuddy = 'BgCardBuddy';
|
||||
const SUBSTYLE_BgCardChallenge = 'BgCardChallenge';
|
||||
const SUBSTYLE_BgCardFolder = 'BgCardFolder';
|
||||
const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem';
|
||||
const SUBSTYLE_BgCardList = 'BgCardList';
|
||||
const SUBSTYLE_BgCardOnline = 'BgCardOnline';
|
||||
const SUBSTYLE_BgCardPlayer = 'BgCardPlayer';
|
||||
const SUBSTYLE_BgCardProperty = 'BgCardProperty';
|
||||
const SUBSTYLE_BgCardSystem = 'BgCardSystem';
|
||||
const SUBSTYLE_BgCardZone = 'BgCardZone';
|
||||
const SUBSTYLE_BgColorContour = 'BgColorContour';
|
||||
const SUBSTYLE_BgDialogBlur = 'BgDialogBlur';
|
||||
const SUBSTYLE_BgEmpty = 'BgEmpty';
|
||||
const SUBSTYLE_BgGradBottom = 'BgGradBottom';
|
||||
const SUBSTYLE_BgGradLeft = 'BgGradLeft';
|
||||
const SUBSTYLE_BgGradRight = 'BgGradRight';
|
||||
const SUBSTYLE_BgGradTop = 'BgGradTop';
|
||||
const SUBSTYLE_BgGradV = 'BgGradV';
|
||||
const SUBSTYLE_BgHealthBar = 'BgHealthBar';
|
||||
const SUBSTYLE_BgIconBorder = 'BgIconBorder';
|
||||
const SUBSTYLE_BgList = 'BgList';
|
||||
const SUBSTYLE_BgListLine = 'BgListLine';
|
||||
const SUBSTYLE_BgPager = 'BgPager';
|
||||
const SUBSTYLE_BgProgressBar = 'BgProgressBar';
|
||||
const SUBSTYLE_BgShadow = 'BgShadow';
|
||||
const SUBSTYLE_BgSlider = 'BgSlider';
|
||||
const SUBSTYLE_BgSystemBar = 'BgSystemBar';
|
||||
const SUBSTYLE_BgTitle2 = 'BgTitle2';
|
||||
const SUBSTYLE_BgTitle3 = 'BgTitle3';
|
||||
const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1';
|
||||
const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2';
|
||||
const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3';
|
||||
const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4';
|
||||
const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5';
|
||||
const SUBSTYLE_BgTitleGlow = 'BgTitleGlow';
|
||||
const SUBSTYLE_BgTitlePage = 'BgTitlePage';
|
||||
const SUBSTYLE_BgTitleShadow = 'BgTitleShadow';
|
||||
const SUBSTYLE_BgWindow1 = 'BgWindow1';
|
||||
const SUBSTYLE_BgWindow2 = 'BgWindow2';
|
||||
const SUBSTYLE_BgWindow3 = 'BgWindow3';
|
||||
const SUBSTYLE_BgWindow4 = 'BgWindow4';
|
||||
const SUBSTYLE_EnergyBar = 'EnergyBar';
|
||||
const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2';
|
||||
const SUBSTYLE_Glow = 'Glow';
|
||||
const SUBSTYLE_HealthBar = 'HealthBar';
|
||||
const SUBSTYLE_NavButton = 'NavButton';
|
||||
const SUBSTYLE_NavButtonBlink = 'NavButtonBlink';
|
||||
const SUBSTYLE_NavButtonQuit = 'NavButtonQuit';
|
||||
const SUBSTYLE_ProgressBar = 'ProgressBar';
|
||||
const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall';
|
||||
const SUBSTYLE_Shadow = 'Shadow';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Bgs1InRace' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Bgs1InRace extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Bgs1InRace';
|
||||
const SUBSTYLE_ArrowDown = 'ArrowDown';
|
||||
const SUBSTYLE_ArrowLeft = 'ArrowLeft';
|
||||
const SUBSTYLE_ArrowRight = 'ArrowRight';
|
||||
const SUBSTYLE_ArrowUp = 'ArrowUp';
|
||||
const SUBSTYLE_BgButton = 'BgButton';
|
||||
const SUBSTYLE_BgButtonBig = 'BgButtonBig';
|
||||
const SUBSTYLE_BgButtonGlow = 'BgButtonGlow';
|
||||
const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed';
|
||||
const SUBSTYLE_BgButtonOff = 'BgButtonOff';
|
||||
const SUBSTYLE_BgButtonShadow = 'BgButtonShadow';
|
||||
const SUBSTYLE_BgButtonSmall = 'BgButtonSmall';
|
||||
const SUBSTYLE_BgCard = 'BgCard';
|
||||
const SUBSTYLE_BgCard1 = 'BgCard1';
|
||||
const SUBSTYLE_BgCard2 = 'BgCard2';
|
||||
const SUBSTYLE_BgCard3 = 'BgCard3';
|
||||
const SUBSTYLE_BgCardBuddy = 'BgCardBuddy';
|
||||
const SUBSTYLE_BgCardChallenge = 'BgCardChallenge';
|
||||
const SUBSTYLE_BgCardFolder = 'BgCardFolder';
|
||||
const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem';
|
||||
const SUBSTYLE_BgCardList = 'BgCardList';
|
||||
const SUBSTYLE_BgCardOnline = 'BgCardOnline';
|
||||
const SUBSTYLE_BgCardPlayer = 'BgCardPlayer';
|
||||
const SUBSTYLE_BgCardProperty = 'BgCardProperty';
|
||||
const SUBSTYLE_BgCardSystem = 'BgCardSystem';
|
||||
const SUBSTYLE_BgCardZone = 'BgCardZone';
|
||||
const SUBSTYLE_BgColorContour = 'BgColorContour';
|
||||
const SUBSTYLE_BgDialogBlur = 'BgDialogBlur';
|
||||
const SUBSTYLE_BgEmpty = 'BgEmpty';
|
||||
const SUBSTYLE_BgGradBottom = 'BgGradBottom';
|
||||
const SUBSTYLE_BgGradLeft = 'BgGradLeft';
|
||||
const SUBSTYLE_BgGradRight = 'BgGradRight';
|
||||
const SUBSTYLE_BgGradTop = 'BgGradTop';
|
||||
const SUBSTYLE_BgGradV = 'BgGradV';
|
||||
const SUBSTYLE_BgHealthBar = 'BgHealthBar';
|
||||
const SUBSTYLE_BgIconBorder = 'BgIconBorder';
|
||||
const SUBSTYLE_BgList = 'BgList';
|
||||
const SUBSTYLE_BgListLine = 'BgListLine';
|
||||
const SUBSTYLE_BgPager = 'BgPager';
|
||||
const SUBSTYLE_BgProgressBar = 'BgProgressBar';
|
||||
const SUBSTYLE_BgShadow = 'BgShadow';
|
||||
const SUBSTYLE_BgSlider = 'BgSlider';
|
||||
const SUBSTYLE_BgSystemBar = 'BgSystemBar';
|
||||
const SUBSTYLE_BgTitle2 = 'BgTitle2';
|
||||
const SUBSTYLE_BgTitle3 = 'BgTitle3';
|
||||
const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1';
|
||||
const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2';
|
||||
const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3';
|
||||
const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4';
|
||||
const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5';
|
||||
const SUBSTYLE_BgTitleGlow = 'BgTitleGlow';
|
||||
const SUBSTYLE_BgTitlePage = 'BgTitlePage';
|
||||
const SUBSTYLE_BgTitleShadow = 'BgTitleShadow';
|
||||
const SUBSTYLE_BgWindow1 = 'BgWindow1';
|
||||
const SUBSTYLE_BgWindow2 = 'BgWindow2';
|
||||
const SUBSTYLE_BgWindow3 = 'BgWindow3';
|
||||
const SUBSTYLE_BgWindow4 = 'BgWindow4';
|
||||
const SUBSTYLE_EnergyBar = 'EnergyBar';
|
||||
const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2';
|
||||
const SUBSTYLE_Glow = 'Glow';
|
||||
const SUBSTYLE_HealthBar = 'HealthBar';
|
||||
const SUBSTYLE_NavButton = 'NavButton';
|
||||
const SUBSTYLE_NavButtonBlink = 'NavButtonBlink';
|
||||
const SUBSTYLE_NavButtonQuit = 'NavButtonQuit';
|
||||
const SUBSTYLE_ProgressBar = 'ProgressBar';
|
||||
const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall';
|
||||
const SUBSTYLE_Shadow = 'Shadow';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'BgsButtons' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_BgsButtons extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'BgsButtons';
|
||||
const SUBSTYLE_BgButtonLarge = 'BgButtonLarge';
|
||||
const SUBSTYLE_BgButtonMedium = 'BgButtonMedium';
|
||||
const SUBSTYLE_BgButtonMediumSelector = 'BgButtonMediumSelector';
|
||||
const SUBSTYLE_BgButtonMediumSpecial = 'BgButtonMediumSpecial';
|
||||
const SUBSTYLE_BgButtonSmall = 'BgButtonSmall';
|
||||
const SUBSTYLE_BgButtonXSmall = 'BgButtonXSmall';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'BgsChallengeMedals' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_BgsChallengeMedals extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'BgsChallengeMedals';
|
||||
const SUBSTYLE_BgBronze = 'BgBronze';
|
||||
const SUBSTYLE_BgGold = 'BgGold';
|
||||
const SUBSTYLE_BgNadeo = 'BgNadeo';
|
||||
const SUBSTYLE_BgNotPlayed = 'BgNotPlayed';
|
||||
const SUBSTYLE_BgPlayed = 'BgPlayed';
|
||||
const SUBSTYLE_BgSilver = 'BgSilver';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'BgsPlayerCard' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_BgsPlayerCard extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'BgsPlayerCard';
|
||||
const SUBSTYLE_BgActivePlayerCard = 'BgActivePlayerCard';
|
||||
const SUBSTYLE_BgActivePlayerName = 'BgActivePlayerName';
|
||||
const SUBSTYLE_BgActivePlayerScore = 'BgActivePlayerScore';
|
||||
const SUBSTYLE_BgCard = 'BgCard';
|
||||
const SUBSTYLE_BgCardSystem = 'BgCardSystem';
|
||||
const SUBSTYLE_BgMediaTracker = 'BgMediaTracker';
|
||||
const SUBSTYLE_BgPlayerCard = 'BgPlayerCard';
|
||||
const SUBSTYLE_BgPlayerCardBig = 'BgPlayerCardBig';
|
||||
const SUBSTYLE_BgPlayerCardSmall = 'BgPlayerCardSmall';
|
||||
const SUBSTYLE_BgPlayerName = 'BgPlayerName';
|
||||
const SUBSTYLE_BgPlayerScore = 'BgPlayerScore';
|
||||
const SUBSTYLE_BgRacePlayerLine = 'BgRacePlayerLine';
|
||||
const SUBSTYLE_BgRacePlayerName = 'BgRacePlayerName';
|
||||
const SUBSTYLE_ProgressBar = 'ProgressBar';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Copilot' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Copilot extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Copilot';
|
||||
const SUBSTYLE_Down = 'Down';
|
||||
const SUBSTYLE_DownGood = 'DownGood';
|
||||
const SUBSTYLE_DownWrong = 'DownWrong';
|
||||
const SUBSTYLE_Left = 'Left';
|
||||
const SUBSTYLE_LeftGood = 'LeftGood';
|
||||
const SUBSTYLE_LeftWrong = 'LeftWrong';
|
||||
const SUBSTYLE_Right = 'Right';
|
||||
const SUBSTYLE_RightGood = 'RightGood';
|
||||
const SUBSTYLE_RightWrong = 'RightWrong';
|
||||
const SUBSTYLE_Up = 'Up';
|
||||
const SUBSTYLE_UpGood = 'UpGood';
|
||||
const SUBSTYLE_UpWrong = 'UpWrong';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Emblems' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Emblems extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Emblems';
|
||||
const SUBSTYLE_0 = '#0';
|
||||
const SUBSTYLE_1 = '#1';
|
||||
const SUBSTYLE_2 = '#2';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'EnergyBar' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_EnergyBar extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'EnergyBar';
|
||||
const SUBSTYLE_BgText = 'BgText';
|
||||
const SUBSTYLE_EnergyBar = 'EnergyBar';
|
||||
const SUBSTYLE_EnergyBar_0_25 = 'EnergyBar_0.25';
|
||||
const SUBSTYLE_EnergyBar_Thin = 'EnergyBar_Thin';
|
||||
const SUBSTYLE_HeaderGaugeLeft = 'HeaderGaugeLeft';
|
||||
const SUBSTYLE_HeaderGaugeRight = 'HeaderGaugeRight';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Hud3dEchelons' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Hud3dEchelons extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Hud3dEchelons';
|
||||
const SUBSTYLE_EchelonBronze1 = 'EchelonBronze1';
|
||||
const SUBSTYLE_EchelonBronze2 = 'EchelonBronze2';
|
||||
const SUBSTYLE_EchelonBronze3 = 'EchelonBronze3';
|
||||
const SUBSTYLE_EchelonGold1 = 'EchelonGold1';
|
||||
const SUBSTYLE_EchelonGold2 = 'EchelonGold2';
|
||||
const SUBSTYLE_EchelonGold3 = 'EchelonGold3';
|
||||
const SUBSTYLE_EchelonSilver1 = 'EchelonSilver1';
|
||||
const SUBSTYLE_EchelonSilver2 = 'EchelonSilver2';
|
||||
const SUBSTYLE_EchelonSilver3 = 'EchelonSilver3';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Hud3dIcons' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Hud3dIcons extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Hud3dIcons';
|
||||
const SUBSTYLE_Cross = 'Cross';
|
||||
const SUBSTYLE_CrossTargeted = 'CrossTargeted';
|
||||
const SUBSTYLE_Player1 = 'Player1';
|
||||
const SUBSTYLE_Player2 = 'Player2';
|
||||
const SUBSTYLE_Player3 = 'Player3';
|
||||
const SUBSTYLE_PointA = 'PointA';
|
||||
const SUBSTYLE_PointB = 'PointB';
|
||||
const SUBSTYLE_PointC = 'PointC';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,88 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Icons128x128_1' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Icons128x128_1 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Icons128x128_1';
|
||||
const SUBSTYLE_Advanced = 'Advanced';
|
||||
const SUBSTYLE_Back = 'Back';
|
||||
const SUBSTYLE_BackFocusable = 'BackFocusable';
|
||||
const SUBSTYLE_Beginner = 'Beginner';
|
||||
const SUBSTYLE_Browse = 'Browse';
|
||||
const SUBSTYLE_Buddies = 'Buddies';
|
||||
const SUBSTYLE_Challenge = 'Challenge';
|
||||
const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor';
|
||||
const SUBSTYLE_Coppers = 'Coppers';
|
||||
const SUBSTYLE_Create = 'Create';
|
||||
const SUBSTYLE_Credits = 'Credits';
|
||||
const SUBSTYLE_Custom = 'Custom';
|
||||
const SUBSTYLE_CustomStars = 'CustomStars';
|
||||
const SUBSTYLE_Default = 'Default';
|
||||
const SUBSTYLE_Download = 'Download';
|
||||
const SUBSTYLE_Easy = 'Easy';
|
||||
const SUBSTYLE_Editor = 'Editor';
|
||||
const SUBSTYLE_Event = 'Event';
|
||||
const SUBSTYLE_Extreme = 'Extreme';
|
||||
const SUBSTYLE_Forever = 'Forever';
|
||||
const SUBSTYLE_GhostEditor = 'GhostEditor';
|
||||
const SUBSTYLE_Hard = 'Hard';
|
||||
const SUBSTYLE_Hotseat = 'Hotseat';
|
||||
const SUBSTYLE_Inputs = 'Inputs';
|
||||
const SUBSTYLE_Invite = 'Invite';
|
||||
const SUBSTYLE_LadderPoints = 'LadderPoints';
|
||||
const SUBSTYLE_Lan = 'Lan';
|
||||
const SUBSTYLE_Launch = 'Launch';
|
||||
const SUBSTYLE_Load = 'Load';
|
||||
const SUBSTYLE_LoadTrack = 'LoadTrack';
|
||||
const SUBSTYLE_Manialink = 'Manialink';
|
||||
const SUBSTYLE_ManiaZones = 'ManiaZones';
|
||||
const SUBSTYLE_MedalCount = 'MedalCount';
|
||||
const SUBSTYLE_MediaTracker = 'MediaTracker';
|
||||
const SUBSTYLE_Medium = 'Medium';
|
||||
const SUBSTYLE_Multiplayer = 'Multiplayer';
|
||||
const SUBSTYLE_Nations = 'Nations';
|
||||
const SUBSTYLE_NewTrack = 'NewTrack';
|
||||
const SUBSTYLE_Options = 'Options';
|
||||
const SUBSTYLE_Padlock = 'Padlock';
|
||||
const SUBSTYLE_Paint = 'Paint';
|
||||
const SUBSTYLE_Platform = 'Platform';
|
||||
const SUBSTYLE_PlayerPage = 'PlayerPage';
|
||||
const SUBSTYLE_Profile = 'Profile';
|
||||
const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced';
|
||||
const SUBSTYLE_ProfileVehicle = 'ProfileVehicle';
|
||||
const SUBSTYLE_Puzzle = 'Puzzle';
|
||||
const SUBSTYLE_Quit = 'Quit';
|
||||
const SUBSTYLE_Race = 'Race';
|
||||
const SUBSTYLE_Rankings = 'Rankings';
|
||||
const SUBSTYLE_Replay = 'Replay';
|
||||
const SUBSTYLE_Save = 'Save';
|
||||
const SUBSTYLE_ServersAll = 'ServersAll';
|
||||
const SUBSTYLE_ServersFavorites = 'ServersFavorites';
|
||||
const SUBSTYLE_ServersSuggested = 'ServersSuggested';
|
||||
const SUBSTYLE_Share = 'Share';
|
||||
const SUBSTYLE_ShareBlink = 'ShareBlink';
|
||||
const SUBSTYLE_SkillPoints = 'SkillPoints';
|
||||
const SUBSTYLE_Solo = 'Solo';
|
||||
const SUBSTYLE_Statistics = 'Statistics';
|
||||
const SUBSTYLE_Stunts = 'Stunts';
|
||||
const SUBSTYLE_United = 'United';
|
||||
const SUBSTYLE_Upload = 'Upload';
|
||||
const SUBSTYLE_Vehicles = 'Vehicles';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,88 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Icons128x128_Blink' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Icons128x128_Blink extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Icons128x128_Blink';
|
||||
const SUBSTYLE_Advanced = 'Advanced';
|
||||
const SUBSTYLE_Back = 'Back';
|
||||
const SUBSTYLE_BackFocusable = 'BackFocusable';
|
||||
const SUBSTYLE_Beginner = 'Beginner';
|
||||
const SUBSTYLE_Browse = 'Browse';
|
||||
const SUBSTYLE_Buddies = 'Buddies';
|
||||
const SUBSTYLE_Challenge = 'Challenge';
|
||||
const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor';
|
||||
const SUBSTYLE_Coppers = 'Coppers';
|
||||
const SUBSTYLE_Create = 'Create';
|
||||
const SUBSTYLE_Credits = 'Credits';
|
||||
const SUBSTYLE_Custom = 'Custom';
|
||||
const SUBSTYLE_CustomStars = 'CustomStars';
|
||||
const SUBSTYLE_Default = 'Default';
|
||||
const SUBSTYLE_Download = 'Download';
|
||||
const SUBSTYLE_Easy = 'Easy';
|
||||
const SUBSTYLE_Editor = 'Editor';
|
||||
const SUBSTYLE_Event = 'Event';
|
||||
const SUBSTYLE_Extreme = 'Extreme';
|
||||
const SUBSTYLE_Forever = 'Forever';
|
||||
const SUBSTYLE_GhostEditor = 'GhostEditor';
|
||||
const SUBSTYLE_Hard = 'Hard';
|
||||
const SUBSTYLE_Hotseat = 'Hotseat';
|
||||
const SUBSTYLE_Inputs = 'Inputs';
|
||||
const SUBSTYLE_Invite = 'Invite';
|
||||
const SUBSTYLE_LadderPoints = 'LadderPoints';
|
||||
const SUBSTYLE_Lan = 'Lan';
|
||||
const SUBSTYLE_Launch = 'Launch';
|
||||
const SUBSTYLE_Load = 'Load';
|
||||
const SUBSTYLE_LoadTrack = 'LoadTrack';
|
||||
const SUBSTYLE_Manialink = 'Manialink';
|
||||
const SUBSTYLE_ManiaZones = 'ManiaZones';
|
||||
const SUBSTYLE_MedalCount = 'MedalCount';
|
||||
const SUBSTYLE_MediaTracker = 'MediaTracker';
|
||||
const SUBSTYLE_Medium = 'Medium';
|
||||
const SUBSTYLE_Multiplayer = 'Multiplayer';
|
||||
const SUBSTYLE_Nations = 'Nations';
|
||||
const SUBSTYLE_NewTrack = 'NewTrack';
|
||||
const SUBSTYLE_Options = 'Options';
|
||||
const SUBSTYLE_Padlock = 'Padlock';
|
||||
const SUBSTYLE_Paint = 'Paint';
|
||||
const SUBSTYLE_Platform = 'Platform';
|
||||
const SUBSTYLE_PlayerPage = 'PlayerPage';
|
||||
const SUBSTYLE_Profile = 'Profile';
|
||||
const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced';
|
||||
const SUBSTYLE_ProfileVehicle = 'ProfileVehicle';
|
||||
const SUBSTYLE_Puzzle = 'Puzzle';
|
||||
const SUBSTYLE_Quit = 'Quit';
|
||||
const SUBSTYLE_Race = 'Race';
|
||||
const SUBSTYLE_Rankings = 'Rankings';
|
||||
const SUBSTYLE_Replay = 'Replay';
|
||||
const SUBSTYLE_Save = 'Save';
|
||||
const SUBSTYLE_ServersAll = 'ServersAll';
|
||||
const SUBSTYLE_ServersFavorites = 'ServersFavorites';
|
||||
const SUBSTYLE_ServersSuggested = 'ServersSuggested';
|
||||
const SUBSTYLE_Share = 'Share';
|
||||
const SUBSTYLE_ShareBlink = 'ShareBlink';
|
||||
const SUBSTYLE_SkillPoints = 'SkillPoints';
|
||||
const SUBSTYLE_Solo = 'Solo';
|
||||
const SUBSTYLE_Statistics = 'Statistics';
|
||||
const SUBSTYLE_Stunts = 'Stunts';
|
||||
const SUBSTYLE_United = 'United';
|
||||
const SUBSTYLE_Upload = 'Upload';
|
||||
const SUBSTYLE_Vehicles = 'Vehicles';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Icons128x32_1' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Icons128x32_1 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Icons128x32_1';
|
||||
const SUBSTYLE_Empty = 'Empty';
|
||||
const SUBSTYLE_ManiaLinkHome = 'ManiaLinkHome';
|
||||
const SUBSTYLE_ManiaLinkSwitch = 'ManiaLinkSwitch';
|
||||
const SUBSTYLE_ManiaPlanet = 'ManiaPlanet';
|
||||
const SUBSTYLE_Minimize = 'Minimize';
|
||||
const SUBSTYLE_Music = 'Music';
|
||||
const SUBSTYLE_PainterBrush = 'PainterBrush';
|
||||
const SUBSTYLE_PainterFill = 'PainterFill';
|
||||
const SUBSTYLE_PainterLayer = 'PainterLayer';
|
||||
const SUBSTYLE_PainterMirror = 'PainterMirror';
|
||||
const SUBSTYLE_PainterSticker = 'PainterSticker';
|
||||
const SUBSTYLE_PainterTeam = 'PainterTeam';
|
||||
const SUBSTYLE_RT_Cup = 'RT_Cup';
|
||||
const SUBSTYLE_RT_Laps = 'RT_Laps';
|
||||
const SUBSTYLE_RT_Rounds = 'RT_Rounds';
|
||||
const SUBSTYLE_RT_Script = 'RT_Script';
|
||||
const SUBSTYLE_RT_Team = 'RT_Team';
|
||||
const SUBSTYLE_RT_TimeAttack = 'RT_TimeAttack';
|
||||
const SUBSTYLE_RT_Stunts = 'RT_Stunts';
|
||||
const SUBSTYLE_Settings = 'Settings';
|
||||
const SUBSTYLE_SliderBar = 'SliderBar';
|
||||
const SUBSTYLE_SliderBar2 = 'SliderBar2';
|
||||
const SUBSTYLE_SliderCursor = 'SliderCursor';
|
||||
const SUBSTYLE_Sound = 'Sound';
|
||||
const SUBSTYLE_UrlBg = 'UrlBg';
|
||||
const SUBSTYLE_Windowed = 'Windowed';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,110 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Icons64x64_1' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Icons64x64_1 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Icons64x64_1';
|
||||
const SUBSTYLE_3DStereo = '3DStereo';
|
||||
const SUBSTYLE_Add = 'Add';
|
||||
const SUBSTYLE_ArrowBlue = 'ArrowBlue';
|
||||
const SUBSTYLE_ArrowDisabled = 'ArrowDisabled';
|
||||
const SUBSTYLE_ArrowDown = 'ArrowDown';
|
||||
const SUBSTYLE_ArrowFastNext = 'ArrowFastNext';
|
||||
const SUBSTYLE_ArrowFastPrev = 'ArrowFastPrev';
|
||||
const SUBSTYLE_ArrowFirst = 'ArrowFirst';
|
||||
const SUBSTYLE_ArrowGreen = 'ArrowGreen';
|
||||
const SUBSTYLE_ArrowLast = 'ArrowLast';
|
||||
const SUBSTYLE_ArrowNext = 'ArrowNext';
|
||||
const SUBSTYLE_ArrowPrev = 'ArrowPrev';
|
||||
const SUBSTYLE_ArrowRed = 'ArrowRed';
|
||||
const SUBSTYLE_ArrowUp = 'ArrowUp';
|
||||
const SUBSTYLE_Browser = 'Browser';
|
||||
const SUBSTYLE_Buddy = 'Buddy';
|
||||
const SUBSTYLE_ButtonLeagues = 'ButtonLeagues';
|
||||
const SUBSTYLE_Camera = 'Camera';
|
||||
const SUBSTYLE_CameraLocal = 'CameraLocal';
|
||||
const SUBSTYLE_Check = 'Check';
|
||||
const SUBSTYLE_ClipPause = 'ClipPause';
|
||||
const SUBSTYLE_ClipPlay = 'ClipPlay';
|
||||
const SUBSTYLE_ClipRewind = 'ClipRewind';
|
||||
const SUBSTYLE_Close = 'Close';
|
||||
const SUBSTYLE_Empty = 'Empty';
|
||||
const SUBSTYLE_Finish = 'Finish';
|
||||
const SUBSTYLE_FinishGrey = 'FinishGrey';
|
||||
const SUBSTYLE_First = 'First';
|
||||
const SUBSTYLE_GenericButton = 'GenericButton';
|
||||
const SUBSTYLE_Green = 'Green';
|
||||
const SUBSTYLE_IconLeaguesLadder = 'IconLeaguesLadder';
|
||||
const SUBSTYLE_IconPlayers = 'IconPlayers';
|
||||
const SUBSTYLE_IconPlayersLadder = 'IconPlayersLadder';
|
||||
const SUBSTYLE_IconServers = 'IconServers';
|
||||
const SUBSTYLE_Inbox = 'Inbox';
|
||||
const SUBSTYLE_LvlGreen = 'LvlGreen';
|
||||
const SUBSTYLE_LvlRed = 'LvlRed';
|
||||
const SUBSTYLE_LvlYellow = 'LvlYellow';
|
||||
const SUBSTYLE_ManiaLinkNext = 'ManiaLinkNext';
|
||||
const SUBSTYLE_ManiaLinkPrev = 'ManiaLinkPrev';
|
||||
const SUBSTYLE_Maximize = 'Maximize';
|
||||
const SUBSTYLE_MediaAudioDownloading = 'MediaAudioDownloading';
|
||||
const SUBSTYLE_MediaPlay = 'MediaPlay';
|
||||
const SUBSTYLE_MediaStop = 'MediaStop';
|
||||
const SUBSTYLE_MediaVideoDownloading = 'MediaVideoDownloading';
|
||||
const SUBSTYLE_NewMessage = 'NewMessage';
|
||||
const SUBSTYLE_NotBuddy = 'NotBuddy';
|
||||
const SUBSTYLE_OfficialRace = 'OfficialRace';
|
||||
const SUBSTYLE_Opponents = 'Opponents';
|
||||
const SUBSTYLE_Outbox = 'Outbox';
|
||||
const SUBSTYLE_QuitRace = 'QuitRace';
|
||||
const SUBSTYLE_RedHigh = 'RedHigh';
|
||||
const SUBSTYLE_RedLow = 'RedLow';
|
||||
const SUBSTYLE_Refresh = 'Refresh';
|
||||
const SUBSTYLE_RestartRace = 'RestartRace';
|
||||
const SUBSTYLE_Save = 'Save';
|
||||
const SUBSTYLE_Second = 'Second';
|
||||
const SUBSTYLE_ShowDown = 'ShowDown';
|
||||
const SUBSTYLE_ShowDown2 = 'ShowDown2';
|
||||
const SUBSTYLE_ShowLeft = 'ShowLeft';
|
||||
const SUBSTYLE_ShowLeft2 = 'ShowLeft2';
|
||||
const SUBSTYLE_ShowRight = 'ShowRight';
|
||||
const SUBSTYLE_ShowRight2 = 'ShowRight2';
|
||||
const SUBSTYLE_ShowUp = 'ShowUp';
|
||||
const SUBSTYLE_ShowUp2 = 'ShowUp2';
|
||||
const SUBSTYLE_ShowUpChanging = 'ShowUpChanging';
|
||||
const SUBSTYLE_SliderCursor = 'SliderCursor';
|
||||
const SUBSTYLE_SliderCursor2 = 'SliderCursor2';
|
||||
const SUBSTYLE_StateFavourite = 'StateFavourite';
|
||||
const SUBSTYLE_StatePrivate = 'StatePrivate';
|
||||
const SUBSTYLE_StateSuggested = 'StateSuggested';
|
||||
const SUBSTYLE_Sub = 'Sub';
|
||||
const SUBSTYLE_TagTypeBronze = 'TagTypeBronze';
|
||||
const SUBSTYLE_TagTypeGold = 'TagTypeGold';
|
||||
const SUBSTYLE_TagTypeNadeo = 'TagTypeNadeo';
|
||||
const SUBSTYLE_TagTypeNone = 'TagTypeNone';
|
||||
const SUBSTYLE_TagTypeSilver = 'TagTypeSilver';
|
||||
const SUBSTYLE_Third = 'Third';
|
||||
const SUBSTYLE_ToolLeague1 = 'ToolLeague1';
|
||||
const SUBSTYLE_ToolRoot = 'ToolRoot';
|
||||
const SUBSTYLE_ToolTree = 'ToolTree';
|
||||
const SUBSTYLE_ToolUp = 'ToolUp';
|
||||
const SUBSTYLE_TrackInfo = 'TrackInfo';
|
||||
const SUBSTYLE_TV = 'TV';
|
||||
const SUBSTYLE_YellowHigh = 'YellowHigh';
|
||||
const SUBSTYLE_YellowLow = 'YellowLow';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'Icons64x64_2' styles
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_Icons64x64_2 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'Icons64x64_2';
|
||||
const SUBSTYLE_ArrowElimination = 'ArrowElimination';
|
||||
const SUBSTYLE_ArrowHit = 'ArrowHit';
|
||||
const SUBSTYLE_Disconnected = 'Disconnected';
|
||||
const SUBSTYLE_DisconnectedLight = 'DisconnectedLight';
|
||||
const SUBSTYLE_LaserElimination = 'LaserElimination';
|
||||
const SUBSTYLE_LaserHit = 'LaserHit';
|
||||
const SUBSTYLE_NucleusElimination = 'NucleusElimination';
|
||||
const SUBSTYLE_NucleusHit = 'NucleusHit';
|
||||
const SUBSTYLE_RocketElimination = 'RocketElimination';
|
||||
const SUBSTYLE_RocketHit = 'RocketHit';
|
||||
const SUBSTYLE_ServerNotice = 'ServerNotice';
|
||||
const SUBSTYLE_SortBy = 'SortBy';
|
||||
const SUBSTYLE_UnknownElimination = 'UnknownElimination';
|
||||
const SUBSTYLE_UnknownHit = 'UnknownHit';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'ManiaPlanetLogos' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_ManiaPlanetLogos extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'ManiaPlanetLogos';
|
||||
const SUBSTYLE_IconPlanets = 'IconPlanets';
|
||||
const SUBSTYLE_IconPlanetsPerspective = 'IconPlanetsPerspective';
|
||||
const SUBSTYLE_IconPlanetsSmall = 'IconPlanetsSmall';
|
||||
const SUBSTYLE_ManiaPlanetLogoBlack = 'ManiaPlanetLogoBlack';
|
||||
const SUBSTYLE_ManiaPlanetLogoBlackSmall = 'ManiaPlanetLogoBlackSmall';
|
||||
const SUBSTYLE_ManiaPlanetLogoWhite = 'ManiaPlanetLogoWhite';
|
||||
const SUBSTYLE_ManiaPlanetLogoWhiteSmall = 'ManiaPlanetLogoWhiteSmall';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'ManiaPlanetMainMenu' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_ManiaPlanetMainMenu extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'ManiaPlanetMainMenu';
|
||||
const SUBSTYLE_BottomBar = 'BottomBar';
|
||||
const SUBSTYLE_Highlight = 'Highlight';
|
||||
const SUBSTYLE_IconAdd = 'IconAdd';
|
||||
const SUBSTYLE_IconHome = 'IconHome';
|
||||
const SUBSTYLE_IconPlay = 'IconPlay';
|
||||
const SUBSTYLE_IconQuit = 'IconQuit';
|
||||
const SUBSTYLE_IconSettings = 'IconSettings';
|
||||
const SUBSTYLE_IconStore = 'IconStore';
|
||||
const SUBSTYLE_MainBg = 'MainBg';
|
||||
const SUBSTYLE_TitleBg = 'TitleBg';
|
||||
const SUBSTYLE_TopBar = 'TopBar';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'ManiaplanetSystem' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_ManiaplanetSystem extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'ManiaplanetSystem';
|
||||
const SUBSTYLE_BgDialog = 'BgDialog';
|
||||
const SUBSTYLE_BgDialogAnchor = 'BgDialogAnchor';
|
||||
const SUBSTYLE_BgFloat = 'BgFloat';
|
||||
const SUBSTYLE_Events = 'Events';
|
||||
const SUBSTYLE_Medals = 'Medals';
|
||||
const SUBSTYLE_Statistics = 'Statistics';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'MedalsBig' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_MedalsBig extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'MedalsBig';
|
||||
const SUBSTYLE_MedalBronze = 'MedalBronze';
|
||||
const SUBSTYLE_MedalGold = 'MedalGold';
|
||||
const SUBSTYLE_MedalGoldPerspective = 'MedalGoldPerspective';
|
||||
const SUBSTYLE_MedalNadeo = 'MedalNadeo';
|
||||
const SUBSTYLE_MedalNadeoPerspective = 'MedalNadeoPerspective';
|
||||
const SUBSTYLE_MedalSilver = 'MedalSilver';
|
||||
const SUBSTYLE_MedalSlot = 'MedalSlot';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'TitleLogos' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_TitleLogos extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'TitleLogos';
|
||||
const SUBSTYLE_Author = 'Author';
|
||||
const SUBSTYLE_Collection = 'Collection';
|
||||
const SUBSTYLE_Icon = 'Icon';
|
||||
const SUBSTYLE_Title = 'Title';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'UIConstructionBullet_Buttons' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_UIConstructionBullet_Buttons extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'UIConstructionBullet_Buttons';
|
||||
const SUBSTYLE_AnimMode = 'AnimMode';
|
||||
const SUBSTYLE_BlocMode = 'BlocMode';
|
||||
const SUBSTYLE_BulletEditorMode = 'BulletEditorMode';
|
||||
const SUBSTYLE_Circle = 'Circle';
|
||||
const SUBSTYLE_Core = 'Core';
|
||||
const SUBSTYLE_CoreFolder = 'CoreFolder';
|
||||
const SUBSTYLE_DeltaMode = 'DeltaMode';
|
||||
const SUBSTYLE_Disc = 'Disc';
|
||||
const SUBSTYLE_ExplosionMode = 'ExplosionMode';
|
||||
const SUBSTYLE_NewBullet = 'NewBullet';
|
||||
const SUBSTYLE_NewRandomBullet = 'NewRandomBullet';
|
||||
const SUBSTYLE_Point = 'Point';
|
||||
const SUBSTYLE_Power = 'Power';
|
||||
const SUBSTYLE_PowerFolder = 'PowerFolder';
|
||||
const SUBSTYLE_PreviewMode = 'PreviewMode';
|
||||
const SUBSTYLE_RootMotionMode = 'RootMotionMode';
|
||||
const SUBSTYLE_SmokeDebris = 'SmokeDebris';
|
||||
const SUBSTYLE_SmokeDebrisFolder = 'SmokeDebrisFolder';
|
||||
const SUBSTYLE_SoundMode = 'SoundMode';
|
||||
const SUBSTYLE_SphereEmpty = 'SphereEmpty';
|
||||
const SUBSTYLE_SphereFull = 'SphereFull';
|
||||
const SUBSTYLE_Trail = 'Trail';
|
||||
const SUBSTYLE_TrailFolder = 'TrailFolder';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'UIConstruction_Buttons' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_UIConstruction_Buttons extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'UIConstruction_Buttons';
|
||||
const SUBSTYLE_ActionMaker = 'ActionMaker';
|
||||
const SUBSTYLE_Add = 'Add';
|
||||
const SUBSTYLE_AirMapping = 'AirMapping';
|
||||
const SUBSTYLE_Author = 'Author';
|
||||
const SUBSTYLE_AuthorTime = 'AuthorTime';
|
||||
const SUBSTYLE_BgEditors = 'BgEditors';
|
||||
const SUBSTYLE_BgIcons = 'BgIcons';
|
||||
const SUBSTYLE_BgMain = 'BgMain';
|
||||
const SUBSTYLE_BgTools = 'BgTools';
|
||||
const SUBSTYLE_BlockEditor = 'BlockEditor';
|
||||
const SUBSTYLE_Camera = 'Camera';
|
||||
const SUBSTYLE_Challenge = 'Challenge';
|
||||
const SUBSTYLE_CopyPaste = 'CopyPaste';
|
||||
const SUBSTYLE_DecalEditor = 'DecalEditor';
|
||||
const SUBSTYLE_Delete = 'Delete';
|
||||
const SUBSTYLE_Directory = 'Directory';
|
||||
const SUBSTYLE_Down = 'Down';
|
||||
const SUBSTYLE_Drive = 'Drive';
|
||||
const SUBSTYLE_Erase = 'Erase';
|
||||
const SUBSTYLE_GhostBlocks = 'GhostBlocks';
|
||||
const SUBSTYLE_Help = 'Help';
|
||||
const SUBSTYLE_Item = 'Item';
|
||||
const SUBSTYLE_Left = 'Left';
|
||||
const SUBSTYLE_MacroBlockEditor = 'MacroBlockEditor';
|
||||
const SUBSTYLE_MediaTracker = 'MediaTracker';
|
||||
const SUBSTYLE_ObjectEditor = 'ObjectEditor';
|
||||
const SUBSTYLE_OffZone = 'OffZone';
|
||||
const SUBSTYLE_Options = 'Options';
|
||||
const SUBSTYLE_Paint = 'Paint';
|
||||
const SUBSTYLE_Pick = 'Pick';
|
||||
const SUBSTYLE_Plugins = 'Plugins';
|
||||
const SUBSTYLE_Quit = 'Quit';
|
||||
const SUBSTYLE_Redo = 'Redo';
|
||||
const SUBSTYLE_Reload = 'Reload';
|
||||
const SUBSTYLE_Right = 'Right';
|
||||
const SUBSTYLE_Save = 'Save';
|
||||
const SUBSTYLE_SaveAs = 'SaveAs';
|
||||
const SUBSTYLE_ScriptEditor = 'ScriptEditor';
|
||||
const SUBSTYLE_SpotModelClearUnused = 'SpotModelClearUnused';
|
||||
const SUBSTYLE_SpotModelDuplicate = 'SpotModelDuplicate';
|
||||
const SUBSTYLE_SpotModelNew = 'SpotModelNew';
|
||||
const SUBSTYLE_SpotModelRename = 'SpotModelRename';
|
||||
const SUBSTYLE_Square = 'Square';
|
||||
const SUBSTYLE_Stats = 'Stats';
|
||||
const SUBSTYLE_Sub = 'Sub';
|
||||
const SUBSTYLE_TerrainEditor = 'TerrainEditor';
|
||||
const SUBSTYLE_TestSm = 'TestSm';
|
||||
const SUBSTYLE_Text = 'Text';
|
||||
const SUBSTYLE_Tools = 'Tools';
|
||||
const SUBSTYLE_Underground = 'Underground';
|
||||
const SUBSTYLE_Undo = 'Undo';
|
||||
const SUBSTYLE_Up = 'Up';
|
||||
const SUBSTYLE_Validate = 'Validate';
|
||||
const SUBSTYLE_Validate_Step1 = 'Validate_Step1';
|
||||
const SUBSTYLE_Validate_Step2 = 'Validate_Step2';
|
||||
const SUBSTYLE_Validate_Step3 = 'Validate_Step3';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'UIConstruction_Buttons2' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_UIConstruction_Buttons2 extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'UIConstruction_Buttons2';
|
||||
const SUBSTYLE_AirMapping = 'AirMapping';
|
||||
const SUBSTYLE_BlockEditor = 'BlockEditor';
|
||||
const SUBSTYLE_Copy = 'Copy';
|
||||
const SUBSTYLE_Cut = 'Cut';
|
||||
const SUBSTYLE_GhostBlocks = 'GhostBlocks';
|
||||
const SUBSTYLE_KeysAdd = 'KeysAdd';
|
||||
const SUBSTYLE_KeysCopy = 'KeysCopy';
|
||||
const SUBSTYLE_KeysDelete = 'KeysDelete';
|
||||
const SUBSTYLE_KeysPaste = 'KeysPaste';
|
||||
const SUBSTYLE_New = 'New';
|
||||
const SUBSTYLE_Open = 'Open';
|
||||
const SUBSTYLE_Symmetry = 'Symmetry';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls\Quads;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
|
||||
/**
|
||||
* Quad class for 'UiSMSpectatorScoreBig' styles
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Quad_UiSMSpectatorScoreBig extends Quad {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const STYLE = 'UiSMSpectatorScoreBig';
|
||||
CONST SUBSTYLE_BotLeft = 'BotLeft';
|
||||
CONST SUBSTYLE_BotLeftGlass = 'BotLeftGlass';
|
||||
CONST SUBSTYLE_BotRight = 'BotRight';
|
||||
CONST SUBSTYLE_BotRightGlass = 'BotRightGlass';
|
||||
CONST SUBSTYLE_CenterShield = 'CenterShield';
|
||||
CONST SUBSTYLE_CenterShieldSmall = 'CenterShieldSmall';
|
||||
CONST SUBSTYLE_HandleLeft = 'HandleLeft';
|
||||
CONST SUBSTYLE_HandleRight = 'HandleRight';
|
||||
CONST SUBSTYLE_PlayerGlass = 'PlayerGlass';
|
||||
CONST SUBSTYLE_PlayerIconBg = 'PlayerIconBg';
|
||||
CONST SUBSTYLE_PlayerJunction = 'PlayerJunction';
|
||||
CONST SUBSTYLE_PlayerSlot = 'PlayerSlot';
|
||||
CONST SUBSTYLE_PlayerSlotCenter = 'PlayerSlotCenter';
|
||||
CONST SUBSTYLE_PlayerSlotRev = 'PlayerSlotRev';
|
||||
CONST SUBSTYLE_PlayerSlotSmall = 'PlayerSlotSmall';
|
||||
CONST SUBSTYLE_PlayerSlotSmallRev = 'PlayerSlotSmallRev';
|
||||
CONST SUBSTYLE_TableBgHoriz = 'TableBgHoriz';
|
||||
CONST SUBSTYLE_TableBgVert = 'TableBgVert';
|
||||
CONST SUBSTYLE_Top = 'Top';
|
||||
CONST SUBSTYLE_UIRange1Bg = 'UIRange1Bg';
|
||||
CONST SUBSTYLE_UIRange2Bg = 'UIRange2Bg';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $style = self::STYLE;
|
||||
}
|
@ -1,117 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Controls;
|
||||
|
||||
use FML\Types\Playable;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Video Control
|
||||
* (CMlMediaPlayer)
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Video extends Control implements Playable, Scriptable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'video';
|
||||
protected $data = null;
|
||||
protected $dataId = null;
|
||||
protected $play = null;
|
||||
protected $looping = true;
|
||||
protected $music = null;
|
||||
protected $volume = 1.;
|
||||
protected $scriptEvents = null;
|
||||
|
||||
/**
|
||||
* @see \FML\Controls\Control::getManiaScriptClass()
|
||||
*/
|
||||
public function getManiaScriptClass() {
|
||||
return 'CMlMediaPlayer';
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setData()
|
||||
*/
|
||||
public function setData($data) {
|
||||
$this->data = (string)$data;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setDataId()
|
||||
*/
|
||||
public function setDataId($dataId) {
|
||||
$this->dataId = (string)$dataId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setPlay()
|
||||
*/
|
||||
public function setPlay($play) {
|
||||
$this->play = ($play ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setLooping()
|
||||
*/
|
||||
public function setLooping($looping) {
|
||||
$this->looping = ($looping ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setMusic()
|
||||
*/
|
||||
public function setMusic($music) {
|
||||
$this->music = ($music ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Playable::setVolume()
|
||||
*/
|
||||
public function setVolume($volume) {
|
||||
$this->volume = (float)$volume;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Scriptable::setScriptEvents()
|
||||
*/
|
||||
public function setScriptEvents($scriptEvents) {
|
||||
$this->scriptEvents = ($scriptEvents ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if ($this->data) {
|
||||
$xmlElement->setAttribute('data', $this->data);
|
||||
}
|
||||
if ($this->play) {
|
||||
$xmlElement->setAttribute('play', $this->play);
|
||||
}
|
||||
if (!$this->looping) {
|
||||
$xmlElement->setAttribute('looping', $this->looping);
|
||||
}
|
||||
if ($this->music) {
|
||||
$xmlElement->setAttribute('music', $this->music);
|
||||
}
|
||||
if ($this->volume != 1.) {
|
||||
$xmlElement->setAttribute('volume', $this->volume);
|
||||
}
|
||||
if ($this->scriptEvents) {
|
||||
$xmlElement->setAttribute('scriptevents', $this->scriptEvents);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,192 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML;
|
||||
|
||||
/**
|
||||
* Class representing a Custom_UI
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class CustomUI {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $encoding = 'utf-8';
|
||||
protected $tagName = 'custom_ui';
|
||||
protected $noticeVisible = null;
|
||||
protected $challengeInfoVisible = null;
|
||||
protected $netInfosVisible = null;
|
||||
protected $chatVisible = null;
|
||||
protected $checkpointListVisible = null;
|
||||
protected $roundScoresVisible = null;
|
||||
protected $scoretableVisible = null;
|
||||
protected $globalVisible = null;
|
||||
|
||||
/**
|
||||
* Create a new CustomUI object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set XML encoding
|
||||
*
|
||||
* @param string $encoding XML encoding
|
||||
* @return static
|
||||
*/
|
||||
public function setXMLEncoding($encoding) {
|
||||
$this->encoding = (string)$encoding;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of notices
|
||||
*
|
||||
* @param bool $visible Whether notices should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setNoticeVisible($visible) {
|
||||
$this->noticeVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of the challenge info
|
||||
*
|
||||
* @param bool $visible Whether the challenge info should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setChallengeInfoVisible($visible) {
|
||||
$this->challengeInfoVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of the net infos
|
||||
*
|
||||
* @param bool $visible Whether the net infos should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setNetInfosVisible($visible) {
|
||||
$this->netInfosVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of the chat
|
||||
*
|
||||
* @param bool $visible Whether the chat should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setChatVisible($visible) {
|
||||
$this->chatVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of the checkpoint list
|
||||
*
|
||||
* @param bool $visible Whether the checkpoint should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setCheckpointListVisible($visible) {
|
||||
$this->checkpointListVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of round scores
|
||||
*
|
||||
* @param bool $visible Whether the round scores should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setRoundScoresVisible($visible) {
|
||||
$this->roundScoresVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set showing of the scoretable
|
||||
*
|
||||
* @param bool $visible Whether the scoretable should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setScoretableVisible($visible) {
|
||||
$this->scoretableVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set global showing
|
||||
*
|
||||
* @param bool $visible Whether the UI should be disabled completely
|
||||
* @return static
|
||||
*/
|
||||
public function setGlobalVisible($visible) {
|
||||
$this->globalVisible = $visible;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the XML document
|
||||
*
|
||||
* @param \DOMDocument $domDocument (optional) DOMDocument for which the XML element should be rendered
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function render($domDocument = null) {
|
||||
$isChild = (bool)$domDocument;
|
||||
if (!$isChild) {
|
||||
$domDocument = new \DOMDocument('1.0', $this->encoding);
|
||||
$domDocument->xmlStandalone = true;
|
||||
}
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
if (!$isChild) {
|
||||
$domDocument->appendChild($xmlElement);
|
||||
}
|
||||
$settings = $this->getSettings();
|
||||
foreach ($settings as $setting => $value) {
|
||||
if (is_null($value)) {
|
||||
continue;
|
||||
}
|
||||
$xmlSubElement = $domDocument->createElement($setting);
|
||||
$xmlSubElement->setAttribute('visible', ($value ? 1 : 0));
|
||||
$xmlElement->appendChild($xmlSubElement);
|
||||
}
|
||||
if ($isChild) {
|
||||
return $xmlElement;
|
||||
}
|
||||
return $domDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get string representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->render()->saveXML();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get associative array of all CustomUI settings
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getSettings() {
|
||||
$settings = array();
|
||||
$settings['challenge_info'] = $this->challengeInfoVisible;
|
||||
$settings['chat'] = $this->chatVisible;
|
||||
$settings['checkpoint_list'] = $this->checkpointListVisible;
|
||||
$settings['global'] = $this->globalVisible;
|
||||
$settings['net_infos'] = $this->netInfosVisible;
|
||||
$settings['notice'] = $this->noticeVisible;
|
||||
$settings['round_scores'] = $this->roundScoresVisible;
|
||||
$settings['scoretable'] = $this->scoretableVisible;
|
||||
return $settings;
|
||||
}
|
||||
}
|
@ -1,266 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
/**
|
||||
* Dictionary Element
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Dico {
|
||||
/**
|
||||
* Czech language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_CZECH = 'cz';
|
||||
|
||||
/**
|
||||
* Danish language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_DANISH = 'da';
|
||||
|
||||
/**
|
||||
* German language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_GERMAN = 'de';
|
||||
|
||||
/**
|
||||
* English language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_ENGLISH = 'en';
|
||||
|
||||
/**
|
||||
* Spanish language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_SPANISH = 'es';
|
||||
|
||||
/**
|
||||
* French language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_FRENCH = 'fr';
|
||||
|
||||
/**
|
||||
* Hungarian language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_HUNGARIAN = 'hu';
|
||||
|
||||
/**
|
||||
* Italian language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_ITALIAN = 'it';
|
||||
|
||||
/**
|
||||
* Japanese language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_JAPANESE = 'jp';
|
||||
|
||||
/**
|
||||
* Korean language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_KOREAN = 'kr';
|
||||
|
||||
/**
|
||||
* Norwegian language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_NORWEGIAN = 'nb';
|
||||
|
||||
/**
|
||||
* Dutch language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_DUTCH = 'nl';
|
||||
|
||||
/**
|
||||
* Polish language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_POLISH = 'pl';
|
||||
|
||||
/**
|
||||
* Portuguese language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_PORTUGUESE = 'pt';
|
||||
|
||||
/**
|
||||
* Brazilian Portuguese language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_BRAZILIAN_PORTUGUESE = 'pt_BR';
|
||||
|
||||
/**
|
||||
* Romanian language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_ROMANIAN = 'ro';
|
||||
|
||||
/**
|
||||
* Russian language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_RUSSIAN = 'ru';
|
||||
|
||||
/**
|
||||
* Slovak language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_SLOVAK = 'sk';
|
||||
|
||||
/**
|
||||
* Turkish language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_TURKISH = 'tr';
|
||||
|
||||
/**
|
||||
* Chinese language
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const LANG_CHINESE = 'zh';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'dico';
|
||||
protected $entries = array();
|
||||
|
||||
/**
|
||||
* Create a new Dictionary object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the translatable entry for the specific language
|
||||
*
|
||||
* @param string $language Language id
|
||||
* @param string $entryId Entry id
|
||||
* @param string $entryValue Translated entry value
|
||||
* @return static
|
||||
*/
|
||||
public function setEntry($language, $entryId, $entryValue) {
|
||||
$language = (string)$language;
|
||||
$entryId = (string)$entryId;
|
||||
$entryValue = (string)$entryValue;
|
||||
if (!isset($this->entries[$language]) && $entryValue) {
|
||||
$this->entries[$language] = array();
|
||||
}
|
||||
if ($entryValue) {
|
||||
$this->entries[$language][$entryId] = $entryValue;
|
||||
} else {
|
||||
if (isset($this->entries[$language][$entryId])) {
|
||||
unset($this->entries[$language][$entryId]);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove entries of the given id
|
||||
*
|
||||
* @param string $entryId Entry id that should be removed
|
||||
* @param string $language (optional) Only remove entries of the given language
|
||||
* @return static
|
||||
*/
|
||||
public function removeEntry($entryId, $language = null) {
|
||||
$entryId = (string)$entryId;
|
||||
if ($language) {
|
||||
$language = (string)$language;
|
||||
if (isset($this->entries[$language])) {
|
||||
unset($this->entries[$language][$entryId]);
|
||||
}
|
||||
} else {
|
||||
foreach ($this->entries as $language => $entries) {
|
||||
if (isset($entries[$entryId])) {
|
||||
unset($entries[$language][$entryId]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove entries of the given language
|
||||
*
|
||||
* @param string $language Language which entries should be removed
|
||||
* @param string $entryId (optional) Only remove the given entry id
|
||||
* @return static
|
||||
*/
|
||||
public function removeLanguage($language, $entryId = null) {
|
||||
$language = (string)$language;
|
||||
if (isset($this->entries[$language])) {
|
||||
if ($entryId) {
|
||||
$entryId = (string)$entryId;
|
||||
unset($this->entries[$language][$entryId]);
|
||||
} else {
|
||||
unset($this->entries[$language]);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all entries from the Dictionary
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeEntries() {
|
||||
$this->entries = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the Dico XML element
|
||||
*
|
||||
* @param \DOMDocument $domDocument DOMDocument for which the Dico XML element should be rendered
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
foreach ($this->entries as $language => $entries) {
|
||||
$languageElement = $domDocument->createElement('language');
|
||||
$languageElement->setAttribute('id', $language);
|
||||
foreach ($entries as $entryId => $entryValue) {
|
||||
$entryElement = $domDocument->createElement($entryId, $entryValue);
|
||||
$languageElement->appendChild($entryElement);
|
||||
}
|
||||
$xmlElement->appendChild($languageElement);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,123 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
use FML\Types\BgColorable;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\Styleable;
|
||||
use FML\Types\TextFormatable;
|
||||
|
||||
/**
|
||||
* Format Element
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Format implements BgColorable, Renderable, Styleable, TextFormatable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'format';
|
||||
protected $bgColor = null;
|
||||
protected $style = null;
|
||||
protected $textSize = -1;
|
||||
protected $textFont = null;
|
||||
protected $textColor = null;
|
||||
protected $focusAreaColor1 = null;
|
||||
protected $focusAreaColor2 = null;
|
||||
|
||||
/**
|
||||
* Create a new Format Element
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\BgColorable::setBgColor()
|
||||
*/
|
||||
public function setBgColor($bgColor) {
|
||||
$this->bgColor = (string)$bgColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextSize()
|
||||
*/
|
||||
public function setTextSize($textSize) {
|
||||
$this->textSize = (int)$textSize;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextFont()
|
||||
*/
|
||||
public function setTextFont($textFont) {
|
||||
$this->textFont = (string)$textFont;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setTextColor()
|
||||
*/
|
||||
public function setTextColor($textColor) {
|
||||
$this->textColor = (string)$textColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaColor()
|
||||
*/
|
||||
public function setAreaColor($areaColor) {
|
||||
$this->focusAreaColor1 = (string)$areaColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\TextFormatable::setAreaFocusColor()
|
||||
*/
|
||||
public function setAreaFocusColor($areaFocusColor) {
|
||||
$this->focusAreaColor2 = (string)$areaFocusColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$formatXmlElement = $domDocument->createElement($this->tagName);
|
||||
if ($this->bgColor) {
|
||||
$formatXmlElement->setAttribute('bgcolor', $this->bgColor);
|
||||
}
|
||||
if ($this->style) {
|
||||
$formatXmlElement->setAttribute('style', $this->style);
|
||||
}
|
||||
if ($this->textSize >= 0) {
|
||||
$formatXmlElement->setAttribute('textsize', $this->textSize);
|
||||
}
|
||||
if ($this->textFont) {
|
||||
$formatXmlElement->setAttribute('textfont', $this->textFont);
|
||||
}
|
||||
if ($this->textColor) {
|
||||
$formatXmlElement->setAttribute('textcolor', $this->textColor);
|
||||
}
|
||||
if ($this->focusAreaColor1) {
|
||||
$formatXmlElement->setAttribute('focusareacolor1', $this->focusAreaColor1);
|
||||
}
|
||||
if ($this->focusAreaColor2) {
|
||||
$formatXmlElement->setAttribute('focusareacolor2', $this->focusAreaColor2);
|
||||
}
|
||||
return $formatXmlElement;
|
||||
}
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
use FML\Types\Container;
|
||||
use FML\Types\Renderable;
|
||||
use FML\UniqueID;
|
||||
|
||||
/**
|
||||
* Class representing a Frame Model
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class FrameModel implements Container, Renderable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'framemodel';
|
||||
protected $modelId = null;
|
||||
/** @var Renderable[] $children */
|
||||
protected $children = array();
|
||||
/** @var Format $format */
|
||||
protected $format = null;
|
||||
|
||||
/**
|
||||
* Set Model id
|
||||
*
|
||||
* @param string $modelId Model id
|
||||
* @return static
|
||||
*/
|
||||
public function setId($modelId) {
|
||||
$this->modelId = (string)$modelId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Model id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getId() {
|
||||
return $this->modelId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign an id if necessary
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function checkId() {
|
||||
if (!$this->modelId) {
|
||||
$this->setId(UniqueID::create());
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::add()
|
||||
*/
|
||||
public function add(Renderable $childElement) {
|
||||
if (!in_array($childElement, $this->children, true)) {
|
||||
array_push($this->children, $childElement);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::removeChildren()
|
||||
*/
|
||||
public function removeChildren() {
|
||||
$this->children = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::setFormat()
|
||||
*/
|
||||
public function setFormat(Format $format) {
|
||||
$this->format = $format;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Container::getFormat()
|
||||
*/
|
||||
public function getFormat($createIfEmpty = true) {
|
||||
if (!$this->format && $createIfEmpty) {
|
||||
$this->setFormat(new Format());
|
||||
}
|
||||
return $this->format;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
$this->checkId();
|
||||
$xmlElement->setAttribute('id', $this->getId());
|
||||
if ($this->format) {
|
||||
$formatXml = $this->format->render($domDocument);
|
||||
$xmlElement->appendChild($formatXml);
|
||||
}
|
||||
foreach ($this->children as $child) {
|
||||
$childElement = $child->render($domDocument);
|
||||
$xmlElement->appendChild($childElement);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
use FML\Types\Renderable;
|
||||
|
||||
/**
|
||||
* Include Element
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Including implements Renderable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'include';
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new Include object
|
||||
*
|
||||
* @param string $url (optional) Include url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($url = null) {
|
||||
return new static($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Include object
|
||||
*
|
||||
* @param string $url (optional) Include url
|
||||
*/
|
||||
public function __construct($url = null) {
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set url
|
||||
*
|
||||
* @param string $url Include url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
if ($this->url) {
|
||||
$xmlElement->setAttribute('url', $this->url);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
use FML\Types\Renderable;
|
||||
|
||||
/**
|
||||
* Music Element
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Music implements Renderable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'music';
|
||||
protected $data = null;
|
||||
|
||||
/**
|
||||
* Create a new Music object
|
||||
*
|
||||
* @param string $data (optional) Media url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($data = null) {
|
||||
return new static($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Music object
|
||||
*
|
||||
* @param string $data (optional) Media url
|
||||
*/
|
||||
public function __construct($data = null) {
|
||||
if (!is_null($data)) {
|
||||
$this->setData($data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set data url
|
||||
*
|
||||
* @param string $data Data url
|
||||
* @return static
|
||||
*/
|
||||
public function setData($data) {
|
||||
$this->data = (string)$data;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
if ($this->data) {
|
||||
$xmlElement->setAttribute('data', $this->data);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,64 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Elements;
|
||||
|
||||
use FML\Types\Renderable;
|
||||
|
||||
/**
|
||||
* Class representing a ManiaLink script tag with a simple script text
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class SimpleScript implements Renderable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'script';
|
||||
protected $text = null;
|
||||
|
||||
/**
|
||||
* Create a new SimpleScript object
|
||||
*
|
||||
* @param string $text (optional) Script text
|
||||
* @return static
|
||||
*/
|
||||
public static function create($text = null) {
|
||||
return new static($text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new SimpleScript object
|
||||
*
|
||||
* @param string $text (optional) Script text
|
||||
*/
|
||||
public function __construct($text = null) {
|
||||
if (!is_null($text)) {
|
||||
$this->setText($text);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set script text
|
||||
*
|
||||
* @param string $text Complete script text
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Renderable::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
if ($this->text) {
|
||||
$scriptComment = $domDocument->createComment($this->text);
|
||||
$xmlElement->appendChild($scriptComment);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,319 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML;
|
||||
|
||||
use FML\ManiaCode\AddBuddy;
|
||||
use FML\ManiaCode\AddFavorite;
|
||||
use FML\ManiaCode\Element;
|
||||
use FML\ManiaCode\GetSkin;
|
||||
use FML\ManiaCode\Go_To;
|
||||
use FML\ManiaCode\InstallMacroblock;
|
||||
use FML\ManiaCode\InstallMap;
|
||||
use FML\ManiaCode\InstallPack;
|
||||
use FML\ManiaCode\InstallReplay;
|
||||
use FML\ManiaCode\InstallScript;
|
||||
use FML\ManiaCode\InstallSkin;
|
||||
use FML\ManiaCode\JoinServer;
|
||||
use FML\ManiaCode\PlayMap;
|
||||
use FML\ManiaCode\PlayReplay;
|
||||
use FML\ManiaCode\ShowMessage;
|
||||
use FML\ManiaCode\ViewReplay;
|
||||
|
||||
/**
|
||||
* Class representing a ManiaCode
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ManiaCode {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $encoding = 'utf-8';
|
||||
protected $tagName = 'maniacode';
|
||||
protected $noConfirmation = null;
|
||||
/** @var Element[] $elements */
|
||||
protected $elements = array();
|
||||
|
||||
/**
|
||||
* Create a new ManiaCode object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set XML encoding
|
||||
*
|
||||
* @param string $encoding XML encoding
|
||||
* @return static
|
||||
*/
|
||||
public function setXmlEncoding($encoding) {
|
||||
$this->encoding = (string)$encoding;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable the showing of the confirmation at the end of the ManiaCode
|
||||
*
|
||||
* @param bool $disable Whether the confirmation should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function disableConfirmation($disable) {
|
||||
$this->noConfirmation = ($disable ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a message
|
||||
*
|
||||
* @param string $message Message text
|
||||
* @return static
|
||||
*/
|
||||
public function addShowMessage($message) {
|
||||
$messageElement = new ShowMessage($message);
|
||||
$this->addElement($messageElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a Macroblock
|
||||
*
|
||||
* @param string $name Macroblock name
|
||||
* @param string $file Macroblock file
|
||||
* @param string $url Macroblock url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallMacroblock($name, $file, $url) {
|
||||
$macroblockElement = new InstallMacroblock($name, $file, $url);
|
||||
$this->addElement($macroblockElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a map
|
||||
*
|
||||
* @param string $name Map name
|
||||
* @param string $url Map url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallMap($name, $url) {
|
||||
$mapElement = new InstallMap($name, $url);
|
||||
$this->addElement($mapElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Play a map
|
||||
*
|
||||
* @param string $name Map name
|
||||
* @param string $url Map url
|
||||
* @return static
|
||||
*/
|
||||
public function addPlayMap($name, $url) {
|
||||
$mapElement = new PlayMap($name, $url);
|
||||
$this->addElement($mapElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallReplay($name, $url) {
|
||||
$replayElement = new InstallReplay($name, $url);
|
||||
$this->addElement($replayElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* View a replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function addViewReplay($name, $url) {
|
||||
$replayElement = new ViewReplay($name, $url);
|
||||
$this->addElement($replayElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Play a replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function addPlayReplay($name, $url) {
|
||||
$replayElement = new PlayReplay($name, $url);
|
||||
$this->addElement($replayElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a skin
|
||||
*
|
||||
* @param string $name Skin name
|
||||
* @param string $file Skin file
|
||||
* @param string $url Skin url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallSkin($name, $file, $url) {
|
||||
$skinElement = new InstallSkin($name, $file, $url);
|
||||
$this->addElement($skinElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a skin
|
||||
*
|
||||
* @param string $name Skin name
|
||||
* @param string $file Skin file
|
||||
* @param string $url Skin url
|
||||
* @return static
|
||||
*/
|
||||
public function addGetSkin($name, $file, $url) {
|
||||
$skinElement = new GetSkin($name, $file, $url);
|
||||
$this->addElement($skinElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a buddy
|
||||
*
|
||||
* @param string $login Buddy login
|
||||
* @return static
|
||||
*/
|
||||
public function addAddBuddy($login) {
|
||||
$buddyElement = new AddBuddy($login);
|
||||
$this->addElement($buddyElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Go to a link
|
||||
*
|
||||
* @param string $link Goto link
|
||||
* @return static
|
||||
*/
|
||||
public function addGoto($link) {
|
||||
$gotoElement = new Go_To($link);
|
||||
$this->addElement($gotoElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Join a server
|
||||
*
|
||||
* @param string $login Server login
|
||||
* @return static
|
||||
*/
|
||||
public function addJoinServer($login) {
|
||||
$serverElement = new JoinServer($login);
|
||||
$this->addElement($serverElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a server as favorite
|
||||
*
|
||||
* @param string $login Server login
|
||||
* @return static
|
||||
*/
|
||||
public function addAddFavorite($login) {
|
||||
$favoriteElement = new AddFavorite($login);
|
||||
$this->addElement($favoriteElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a script
|
||||
*
|
||||
* @param string $name Script name
|
||||
* @param string $file Script file
|
||||
* @param string $url Script url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallScript($name, $file, $url) {
|
||||
$scriptElement = new InstallScript($name, $file, $url);
|
||||
$this->addElement($scriptElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a title pack
|
||||
*
|
||||
* @param string $name Pack name
|
||||
* @param string $file Pack file
|
||||
* @param string $url Pack url
|
||||
* @return static
|
||||
*/
|
||||
public function addInstallPack($name, $file, $url) {
|
||||
$packElement = new InstallPack($name, $file, $url);
|
||||
$this->addElement($packElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a ManiaCode element
|
||||
*
|
||||
* @param Element $element Element to add
|
||||
* @return static
|
||||
*/
|
||||
public function addElement(Element $element) {
|
||||
array_push($this->elements, $element);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all elements from the ManiaCode
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeElements() {
|
||||
$this->elements = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the XML document
|
||||
*
|
||||
* @param bool $echo (optional) Whether the XML text should be echoed and the Content-Type header should be set
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function render($echo = false) {
|
||||
$domDocument = new \DOMDocument('1.0', $this->encoding);
|
||||
$domDocument->xmlStandalone = true;
|
||||
$maniaCode = $domDocument->createElement($this->tagName);
|
||||
$domDocument->appendChild($maniaCode);
|
||||
if ($this->noConfirmation) {
|
||||
$maniaCode->setAttribute('noconfirmation', $this->noConfirmation);
|
||||
}
|
||||
foreach ($this->elements as $element) {
|
||||
$xmlElement = $element->render($domDocument);
|
||||
$maniaCode->appendChild($xmlElement);
|
||||
}
|
||||
if ($echo) {
|
||||
header('Content-Type: application/xml; charset=utf-8;');
|
||||
echo $domDocument->saveXML();
|
||||
}
|
||||
return $domDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get string representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->render()->saveXML();
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element adding a buddy
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class AddBuddy extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'add_buddy';
|
||||
protected $login = null;
|
||||
|
||||
/**
|
||||
* Create a new AddBuddy Element
|
||||
*
|
||||
* @param string $login (optional) Buddy login
|
||||
* @return static
|
||||
*/
|
||||
public static function create($login = null) {
|
||||
return new static($login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new AddBuddy Element
|
||||
*
|
||||
* @param string $login (optional) Buddy login
|
||||
*/
|
||||
public function __construct($login = null) {
|
||||
if (!is_null($login)) {
|
||||
$this->setLogin($login);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the buddy login
|
||||
*
|
||||
* @param string $login Buddy login
|
||||
* @return static
|
||||
*/
|
||||
public function setLogin($login) {
|
||||
$this->login = (string)$login;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$loginElement = $domDocument->createElement('login', $this->login);
|
||||
$xmlElement->appendChild($loginElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element adding a server as favorite
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class AddFavorite extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'add_favourite';
|
||||
protected $login = null;
|
||||
protected $serverIp = null;
|
||||
protected $serverPort = null;
|
||||
|
||||
/**
|
||||
* Create a new AddFavorite object
|
||||
*
|
||||
* @param string $login (optional) Server login
|
||||
* @return static
|
||||
*/
|
||||
public static function create($login = null) {
|
||||
return new static($login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new AddFavorite object
|
||||
*
|
||||
* @param string $login (optional) Server login
|
||||
*/
|
||||
public function __construct($login = null) {
|
||||
if (!is_null($login)) {
|
||||
$this->setLogin($login);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the server login
|
||||
*
|
||||
* @param string $login Server login
|
||||
* @return static
|
||||
*/
|
||||
public function setLogin($login) {
|
||||
$this->login = (string)$login;
|
||||
$this->serverIp = null;
|
||||
$this->serverPort = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the server ip and port
|
||||
*
|
||||
* @param string $serverIp Server ip
|
||||
* @param int $serverPort Server port
|
||||
* @return static
|
||||
*/
|
||||
public function setIp($serverIp, $serverPort) {
|
||||
$this->serverIp = (string)$serverIp;
|
||||
$this->serverPort = (int)$serverPort;
|
||||
$this->login = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if (is_null($this->serverIp)) {
|
||||
$loginElement = $domDocument->createElement('login', $this->login);
|
||||
$xmlElement->appendChild($loginElement);
|
||||
} else {
|
||||
$ipElement = $domDocument->createElement('ip', $this->serverIp . ':' . $this->serverPort);
|
||||
$xmlElement->appendChild($ipElement);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* Base ManiaCode Element
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
abstract class Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'element';
|
||||
|
||||
/**
|
||||
* Render the ManiaCode Element
|
||||
*
|
||||
* @param \DOMDocument $domDocument The DOMDocument for which the Element should be rendered
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = $domDocument->createElement($this->tagName);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element downloading a skin
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class GetSkin extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'get_skin';
|
||||
protected $name = null;
|
||||
protected $file = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new GetSkin object
|
||||
*
|
||||
* @param string $name (optional) Skin name
|
||||
* @param string $file (optional) Skin file
|
||||
* @param string $url (optional) Skin url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $file = null, $url = null) {
|
||||
return new static($name, $file, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new GetSkin object
|
||||
*
|
||||
* @param string $name (optional) Skin name
|
||||
* @param string $file (optional) Skin file
|
||||
* @param string $url (optional) Skin url
|
||||
*/
|
||||
public function __construct($name = null, $file = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($file)) {
|
||||
$this->setFile($file);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the skin
|
||||
*
|
||||
* @param string $name Skin name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file of the skin
|
||||
*
|
||||
* @param string $file Skin file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the skin
|
||||
*
|
||||
* @param string $url Skin url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$fileElement = $domDocument->createElement('file', $this->file);
|
||||
$xmlElement->appendChild($fileElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element for going to a link
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Go_To extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'goto';
|
||||
protected $link = null;
|
||||
|
||||
/**
|
||||
* Create a new Go_To object
|
||||
*
|
||||
* @param string $link (optional) Goto link
|
||||
* @return static
|
||||
*/
|
||||
public static function create($link = null) {
|
||||
return new static($link);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Go_To object
|
||||
*
|
||||
* @param string $link (optional) Goto link
|
||||
*/
|
||||
public function __construct($link = null) {
|
||||
if (!is_null($link)) {
|
||||
$this->setLink($link);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set link
|
||||
*
|
||||
* @param string $link Goto link
|
||||
* @return static
|
||||
*/
|
||||
public function setLink($link) {
|
||||
$this->link = (string)$link;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$linkElement = $domDocument->createElement('link', $this->link);
|
||||
$xmlElement->appendChild($linkElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a macroblock
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallMacroblock extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_macroblock';
|
||||
protected $name = null;
|
||||
protected $file = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallMacroblock object
|
||||
*
|
||||
* @param string $name (optional) Macroblock name
|
||||
* @param string $url (optional) Macroblock url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallMacroblock object
|
||||
*
|
||||
* @param string $name (optional) Macroblock name
|
||||
* @param string $file (optional) Macroblock file
|
||||
* @param string $url (optional) Macroblock url
|
||||
*/
|
||||
public function __construct($name = null, $file = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($file)) {
|
||||
$this->setFile($file);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the macroblock
|
||||
*
|
||||
* @param string $name Macroblock name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file of the macroblock
|
||||
*
|
||||
* @param string $file Macroblock file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the macroblock
|
||||
*
|
||||
* @param string $url Macroblock url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$fileElement = $domDocument->createElement('file', $this->file);
|
||||
$xmlElement->appendChild($fileElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a map
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallMap extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_map';
|
||||
protected $name = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallMap object
|
||||
*
|
||||
* @param string $name (optional) Map name
|
||||
* @param string $url (optional) Map url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallMap object
|
||||
*
|
||||
* @param string $name (optional) Map name
|
||||
* @param string $url (optional) Map url
|
||||
*/
|
||||
public function __construct($name = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the map
|
||||
*
|
||||
* @param string $name Map name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the map
|
||||
*
|
||||
* @param string $url Map url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a title pack
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallPack extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_pack';
|
||||
protected $name = null;
|
||||
protected $file = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallPack object
|
||||
*
|
||||
* @param string $name (optional) Pack name
|
||||
* @param string $file (optional) Pack file
|
||||
* @param string $url (optional) Pack url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $file = null, $url = null) {
|
||||
return new static($name, $file, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallPack object
|
||||
*
|
||||
* @param string $name (optional) Pack name
|
||||
* @param string $file (optional) Pack file
|
||||
* @param string $url (optional) Pack url
|
||||
*/
|
||||
public function __construct($name = null, $file = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($file)) {
|
||||
$this->setFile($file);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the pack
|
||||
*
|
||||
* @param string $name Pack name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file of the pack
|
||||
*
|
||||
* @param string $file Pack file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the pack
|
||||
*
|
||||
* @param string $url Pack url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$fileElement = $domDocument->createElement('file', $this->file);
|
||||
$xmlElement->appendChild($fileElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a replay
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallReplay extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_replay';
|
||||
protected $name = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
*/
|
||||
public function __construct($name = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the replay
|
||||
*
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a script
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallScript extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_script';
|
||||
protected $name = null;
|
||||
protected $file = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallScript object
|
||||
*
|
||||
* @param string $name (optional) Script name
|
||||
* @param string $file (optional) Script file
|
||||
* @param string $url (optional) Script url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $file = null, $url = null) {
|
||||
return new static($name, $file, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallScript object
|
||||
*
|
||||
* @param string $name (optional) Script name
|
||||
* @param string $file (optional) Script file
|
||||
* @param string $url (optional) Script url
|
||||
*/
|
||||
public function __construct($name = null, $file = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($file)) {
|
||||
$this->setFile($file);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the script
|
||||
*
|
||||
* @param string $name Script name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file of the script
|
||||
*
|
||||
* @param string $file Script file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the script
|
||||
*
|
||||
* @param string $url Script url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$fileElement = $domDocument->createElement('file', $this->file);
|
||||
$xmlElement->appendChild($fileElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element installing a skin
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class InstallSkin extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'install_skin';
|
||||
protected $name = null;
|
||||
protected $file = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new InstallSkin object
|
||||
*
|
||||
* @param string $name (optional) Skin name
|
||||
* @param string $file (optional) Skin file
|
||||
* @param string $url (optional) Skin url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $file = null, $url = null) {
|
||||
return new static($name, $file, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new InstallSkin object
|
||||
*
|
||||
* @param string $name (optional) Skin name
|
||||
* @param string $file (optional) Skin file
|
||||
* @param string $url (optional) Skin url
|
||||
*/
|
||||
public function __construct($name = null, $file = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($file)) {
|
||||
$this->setFile($file);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the skin
|
||||
*
|
||||
* @param string $name Skin name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file of the skin
|
||||
*
|
||||
* @param string $file Skin file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the skin
|
||||
*
|
||||
* @param string $url Skin url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$fileElement = $domDocument->createElement('file', $this->file);
|
||||
$xmlElement->appendChild($fileElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element for joining a server
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class JoinServer extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'join_server';
|
||||
protected $login = null;
|
||||
protected $serverIp = null;
|
||||
protected $serverPort = null;
|
||||
|
||||
/**
|
||||
* Create a new JoinServer object
|
||||
*
|
||||
* @param string $login (optional) Server login
|
||||
* @return static
|
||||
*/
|
||||
public static function create($login = null) {
|
||||
return new static($login);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new JoinServer object
|
||||
*
|
||||
* @param string $login (optional) Server login
|
||||
*/
|
||||
public function __construct($login = null) {
|
||||
if (!is_null($login)) {
|
||||
$this->setLogin($login);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the server login
|
||||
*
|
||||
* @param string $login Server login
|
||||
* @return static
|
||||
*/
|
||||
public function setLogin($login) {
|
||||
$this->login = (string)$login;
|
||||
$this->serverIp = null;
|
||||
$this->serverPort = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the server ip and port
|
||||
*
|
||||
* @param string $serverIp Server ip
|
||||
* @param int $serverPort Server port
|
||||
* @return static
|
||||
*/
|
||||
public function setIp($serverIp, $serverPort) {
|
||||
$this->serverIp = (string)$serverIp;
|
||||
$this->serverPort = (int)$serverPort;
|
||||
$this->login = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
if (is_null($this->serverIp)) {
|
||||
$loginElement = $domDocument->createElement('login', $this->login);
|
||||
$xmlElement->appendChild($loginElement);
|
||||
} else {
|
||||
$ipElement = $domDocument->createElement('ip', $this->serverIp . ':' . $this->serverPort);
|
||||
$xmlElement->appendChild($ipElement);
|
||||
}
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element for playing a map
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PlayMap extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'play_map';
|
||||
protected $name = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new PlayMap object
|
||||
*
|
||||
* @param string $name (optional) Map name
|
||||
* @param string $url (optional) Map url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new PlayMap object
|
||||
*
|
||||
* @param string $name (optional) Map name
|
||||
* @param string $url (optional) Map url
|
||||
*/
|
||||
public function __construct($name = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the map
|
||||
*
|
||||
* @param string $name Map name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the map
|
||||
*
|
||||
* @param string $url Map url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element playing a replay
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PlayReplay extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'play_replay';
|
||||
protected $name = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new PlayReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new PlayReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
*/
|
||||
public function __construct($name = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the replay
|
||||
*
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element showing a Message
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ShowMessage extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'show_message';
|
||||
protected $message = null;
|
||||
|
||||
/**
|
||||
* Create a new ShowMessage object
|
||||
*
|
||||
* @param string $message (optional) Message text
|
||||
* @return static
|
||||
*/
|
||||
public static function create($message = null) {
|
||||
return new static($message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ShowMessage object
|
||||
*
|
||||
* @param string $message (optional) Message text
|
||||
*/
|
||||
public function __construct($message = null) {
|
||||
if (!is_null($message)) {
|
||||
$this->setMessage($message);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the message text
|
||||
*
|
||||
* @param string $message Message text
|
||||
* @return static
|
||||
*/
|
||||
public function setMessage($message) {
|
||||
$this->message = (string)$message;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$messageElement = $domDocument->createElement('message', $this->message);
|
||||
$xmlElement->appendChild($messageElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,79 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\ManiaCode;
|
||||
|
||||
/**
|
||||
* ManiaCode Element for viewing a replay
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ViewReplay extends Element {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'view_replay';
|
||||
protected $name = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Create a new ViewReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
* @return static
|
||||
*/
|
||||
public static function create($name = null, $url = null) {
|
||||
return new static($name, $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ViewReplay object
|
||||
*
|
||||
* @param string $name (optional) Replay name
|
||||
* @param string $url (optional) Replay url
|
||||
*/
|
||||
public function __construct($name = null, $url = null) {
|
||||
if (!is_null($name)) {
|
||||
$this->setName($name);
|
||||
}
|
||||
if (!is_null($url)) {
|
||||
$this->setUrl($url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name of the replay
|
||||
*
|
||||
* @param string $name Replay name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the url of the replay
|
||||
*
|
||||
* @param string $url Replay url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\ManiaCode\Element::render()
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$xmlElement = parent::render($domDocument);
|
||||
$nameElement = $domDocument->createElement('name', $this->name);
|
||||
$xmlElement->appendChild($nameElement);
|
||||
$urlElement = $domDocument->createElement('url', $this->url);
|
||||
$xmlElement->appendChild($urlElement);
|
||||
return $xmlElement;
|
||||
}
|
||||
}
|
@ -1,319 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML;
|
||||
|
||||
use FML\Elements\Dico;
|
||||
use FML\Script\Script;
|
||||
use FML\Stylesheet\Stylesheet;
|
||||
use FML\Types\Renderable;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
|
||||
/**
|
||||
* Class representing a ManiaLink
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ManiaLink {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const BACKGROUND_0 = '0';
|
||||
const BACKGROUND_1 = '1';
|
||||
const BACKGROUND_STARS = 'stars';
|
||||
const BACKGROUND_STATIONS = 'stations';
|
||||
const BACKGROUND_TITLE = 'title';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $encoding = 'utf-8';
|
||||
protected $tagName = 'manialink';
|
||||
protected $maniaLinkId = null;
|
||||
protected $version = 1;
|
||||
protected $background = null;
|
||||
protected $navigable3d = 1;
|
||||
protected $name = null;
|
||||
protected $timeout = 0;
|
||||
/** @var Renderable[] $children */
|
||||
protected $children = array();
|
||||
/** @var Dico $dico */
|
||||
protected $dico = null;
|
||||
/** @var Stylesheet $stylesheet */
|
||||
protected $stylesheet = null;
|
||||
/** @var Script $script */
|
||||
protected $script = null;
|
||||
|
||||
/**
|
||||
* Create a new ManiaLink object
|
||||
*
|
||||
* @param string $maniaLinkId (optional) ManiaLink id
|
||||
* @return static
|
||||
*/
|
||||
public static function create($maniaLinkId = null) {
|
||||
return new static($maniaLinkId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new ManiaLink object
|
||||
*
|
||||
* @param string $maniaLinkId (optional) ManiaLink id
|
||||
*/
|
||||
public function __construct($maniaLinkId = null) {
|
||||
if (!is_null($maniaLinkId)) {
|
||||
$this->setId($maniaLinkId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set XML encoding
|
||||
*
|
||||
* @param string $encoding XML encoding
|
||||
* @return static
|
||||
*/
|
||||
public function setXmlEncoding($encoding) {
|
||||
$this->encoding = (string)$encoding;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ManiaLink id
|
||||
*
|
||||
* @param string $maniaLinkId ManiaLink id
|
||||
* @return static
|
||||
*/
|
||||
public function setId($maniaLinkId) {
|
||||
$this->maniaLinkId = (string)$maniaLinkId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get ManiaLink id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getId() {
|
||||
return $this->maniaLinkId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set background
|
||||
*
|
||||
* @param string $background Background value
|
||||
* @return static
|
||||
*/
|
||||
public function setBackground($background) {
|
||||
$this->background = (string)$background;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set navigable3d
|
||||
*
|
||||
* @param bool $navigable3d Whether the manialink should be 3d navigable
|
||||
* @return static
|
||||
*/
|
||||
public function setNavigable3d($navigable3d) {
|
||||
$this->navigable3d = ($navigable3d ? 1 : 0);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ManiaLink Name
|
||||
*
|
||||
* @param string $name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set timeout
|
||||
*
|
||||
* @param int $timeout Timeout duration
|
||||
* @return static
|
||||
*/
|
||||
public function setTimeout($timeout) {
|
||||
$this->timeout = (int)$timeout;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an element to the ManiaLink
|
||||
*
|
||||
* @param Renderable $child Child element to add
|
||||
* @return static
|
||||
*/
|
||||
public function add(Renderable $child) {
|
||||
if (!in_array($child, $this->children, true)) {
|
||||
array_push($this->children, $child);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all elements from the ManiaLink
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeChildren() {
|
||||
$this->children = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Dictionary of the ManiaLink
|
||||
*
|
||||
* @param Dico $dico Dictionary for the ManiaLink
|
||||
* @return static
|
||||
*/
|
||||
public function setDico(Dico $dico) {
|
||||
$this->dico = $dico;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Dictionary of the ManiaLink
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the Dico object should be created if it's not set
|
||||
* @return \FML\Elements\Dico
|
||||
*/
|
||||
public function getDico($createIfEmpty = true) {
|
||||
if (!$this->dico && $createIfEmpty) {
|
||||
$this->setDico(new Dico());
|
||||
}
|
||||
return $this->dico;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Stylesheet of the ManiaLink
|
||||
*
|
||||
* @param Stylesheet $stylesheet Stylesheet for the ManiaLink
|
||||
* @return static
|
||||
*/
|
||||
public function setStylesheet(Stylesheet $stylesheet) {
|
||||
$this->stylesheet = $stylesheet;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Stylesheet of the ManiaLink
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the Stylesheet object should be created if it's not set
|
||||
* @return \FML\Stylesheet\Stylesheet
|
||||
*/
|
||||
public function getStylesheet($createIfEmpty = true) {
|
||||
if (!$this->stylesheet && $createIfEmpty) {
|
||||
$this->setStylesheet(new Stylesheet());
|
||||
}
|
||||
return $this->stylesheet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Script of the ManiaLink
|
||||
*
|
||||
* @param Script $script Script for the ManiaLink
|
||||
* @return static
|
||||
*/
|
||||
public function setScript(Script $script) {
|
||||
$this->script = $script;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current Script of the ManiaLink
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the Script object should be created if it's not set
|
||||
* @return \FML\Script\Script
|
||||
*/
|
||||
public function getScript($createIfEmpty = true) {
|
||||
if (!$this->script && $createIfEmpty) {
|
||||
$this->setScript(new Script());
|
||||
}
|
||||
return $this->script;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the XML document
|
||||
*
|
||||
* @param bool $echo (optional) If the XML text should be echoed and the Content-Type header should be set
|
||||
* @param \DOMDocument $domDocument (optional) DOMDocument for which the XML element should be created
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function render($echo = false, $domDocument = null) {
|
||||
$isChild = (bool)$domDocument;
|
||||
if (!$isChild) {
|
||||
$domDocument = new \DOMDocument('1.0', $this->encoding);
|
||||
$domDocument->xmlStandalone = true;
|
||||
}
|
||||
$maniaLink = $domDocument->createElement($this->tagName);
|
||||
if (!$isChild) {
|
||||
$domDocument->appendChild($maniaLink);
|
||||
}
|
||||
if (strlen($this->maniaLinkId) > 0) {
|
||||
$maniaLink->setAttribute('id', $this->maniaLinkId);
|
||||
}
|
||||
if ($this->version) {
|
||||
$maniaLink->setAttribute('version', $this->version);
|
||||
}
|
||||
if (strlen($this->background) > 0) {
|
||||
$maniaLink->setAttribute('background', $this->background);
|
||||
}
|
||||
if (!$this->navigable3d) {
|
||||
$maniaLink->setAttribute('navigable3d', $this->navigable3d);
|
||||
}
|
||||
if ($this->name) {
|
||||
$maniaLink->setAttribute('name', $this->name);
|
||||
}
|
||||
if ($this->timeout) {
|
||||
$timeoutXml = $domDocument->createElement('timeout', $this->timeout);
|
||||
$maniaLink->appendChild($timeoutXml);
|
||||
}
|
||||
if ($this->dico) {
|
||||
$dicoXml = $this->dico->render($domDocument);
|
||||
$maniaLink->appendChild($dicoXml);
|
||||
}
|
||||
$scriptFeatures = array();
|
||||
foreach ($this->children as $child) {
|
||||
$childXml = $child->render($domDocument, $this->getScript());
|
||||
$maniaLink->appendChild($childXml);
|
||||
if ($child instanceof ScriptFeatureable) {
|
||||
$scriptFeatures = array_merge($scriptFeatures, $child->getScriptFeatures());
|
||||
}
|
||||
}
|
||||
if ($scriptFeatures) {
|
||||
$this->getScript()->loadFeatures($scriptFeatures);
|
||||
}
|
||||
if ($this->stylesheet) {
|
||||
$stylesheetXml = $this->stylesheet->render($domDocument);
|
||||
$maniaLink->appendChild($stylesheetXml);
|
||||
}
|
||||
if ($this->script) {
|
||||
if ($this->script->needsRendering()) {
|
||||
$scriptXml = $this->script->render($domDocument);
|
||||
$maniaLink->appendChild($scriptXml);
|
||||
}
|
||||
$this->script->resetGenericScriptLabels();
|
||||
}
|
||||
if ($isChild) {
|
||||
return $maniaLink;
|
||||
}
|
||||
if ($echo) {
|
||||
header('Content-Type: application/xml; charset=utf-8;');
|
||||
echo $domDocument->saveXML();
|
||||
}
|
||||
return $domDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get string representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->render()->saveXML();
|
||||
}
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML;
|
||||
|
||||
/**
|
||||
* Class holding several ManiaLinks at once
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ManiaLinks {
|
||||
/*
|
||||
* Protected Properties
|
||||
*/
|
||||
protected $encoding = 'utf-8';
|
||||
protected $tagName = 'manialinks';
|
||||
/** @var ManiaLink[] $children */
|
||||
protected $children = array();
|
||||
/** @var CustomUI $customUI */
|
||||
protected $customUI = null;
|
||||
|
||||
/**
|
||||
* Create a new ManiaLinks object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set XML encoding
|
||||
*
|
||||
* @param string $encoding XML encoding
|
||||
* @return static
|
||||
*/
|
||||
public function setXmlEncoding($encoding) {
|
||||
$this->encoding = (string)$encoding;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a child ManiaLink
|
||||
*
|
||||
* @param ManiaLink $child Child ManiaLink
|
||||
* @return static
|
||||
*/
|
||||
public function add(ManiaLink $child) {
|
||||
if (!in_array($child, $this->children, true)) {
|
||||
array_push($this->children, $child);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all child ManiaLinks
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeChildren() {
|
||||
$this->children = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the CustomUI
|
||||
*
|
||||
* @param CustomUI $customUI CustomUI object
|
||||
* @return static
|
||||
*/
|
||||
public function setCustomUI(CustomUI $customUI) {
|
||||
$this->customUI = $customUI;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the CustomUI
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the CustomUI object should be created if it's not set
|
||||
* @return \FML\CustomUI
|
||||
*/
|
||||
public function getCustomUI($createIfEmpty = true) {
|
||||
if (!$this->customUI && $createIfEmpty) {
|
||||
$this->setCustomUI(new CustomUI());
|
||||
}
|
||||
return $this->customUI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the XML document
|
||||
*
|
||||
* @param bool (optional) $echo Whether the XML text should be echoed and the Content-Type header should be set
|
||||
* @return \DOMDocument
|
||||
*/
|
||||
public function render($echo = false) {
|
||||
$domDocument = new \DOMDocument('1.0', $this->encoding);
|
||||
$domDocument->xmlStandalone = true;
|
||||
$maniaLinks = $domDocument->createElement($this->tagName);
|
||||
$domDocument->appendChild($maniaLinks);
|
||||
foreach ($this->children as $child) {
|
||||
$childXml = $child->render(false, $domDocument);
|
||||
$maniaLinks->appendChild($childXml);
|
||||
}
|
||||
if ($this->customUI) {
|
||||
$customUIXml = $this->customUI->render($domDocument);
|
||||
$maniaLinks->appendChild($customUIXml);
|
||||
}
|
||||
if ($echo) {
|
||||
header('Content-Type: application/xml; charset=utf-8;');
|
||||
echo $domDocument->saveXML();
|
||||
}
|
||||
return $domDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get string representation
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->render()->saveXML();
|
||||
}
|
||||
}
|
@ -1,129 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Models;
|
||||
|
||||
use FML\Controls\Quad;
|
||||
use FML\Controls\Quads\Quad_Icons64x64_1;
|
||||
use FML\Script\Builder;
|
||||
use FML\Types\Styleable;
|
||||
use FML\Types\SubStyleable;
|
||||
|
||||
/**
|
||||
* Class representing CheckBox Design
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class CheckBoxDesign implements Styleable, SubStyleable {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $url = null;
|
||||
protected $style = null;
|
||||
protected $subStyle = null;
|
||||
|
||||
/**
|
||||
* Create the default enabled Design
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function defaultEnabledDesign() {
|
||||
return new static(Quad_Icons64x64_1::STYLE, Quad_Icons64x64_1::SUBSTYLE_Check);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the default disabled Design
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function defaultDisabledDesign() {
|
||||
return new static(Quad_Icons64x64_1::STYLE, Quad_Icons64x64_1::SUBSTYLE_Check);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new CheckBox Design object
|
||||
*
|
||||
* @param string $style Style name or image url
|
||||
* @param string $subStyle (optional) SubStyle name
|
||||
*/
|
||||
public function __construct($style, $subStyle = null) {
|
||||
if (is_null($subStyle)) {
|
||||
$this->setImageUrl($style);
|
||||
} else {
|
||||
$this->setStyle($style);
|
||||
$this->setSubStyle($subStyle);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the image url
|
||||
*
|
||||
* @param string $url Image url
|
||||
* @return static
|
||||
*/
|
||||
public function setImageUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
$this->style = null;
|
||||
$this->subStyle = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\Styleable::setStyle()
|
||||
*/
|
||||
public function setStyle($style) {
|
||||
$this->style = (string)$style;
|
||||
$this->url = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\SubStyleable::setSubStyle()
|
||||
*/
|
||||
public function setSubStyle($subStyle) {
|
||||
$this->subStyle = (string)$subStyle;
|
||||
$this->url = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Types\SubStyleable::setStyles()
|
||||
*/
|
||||
public function setStyles($style, $subStyle) {
|
||||
$this->setStyle($style);
|
||||
$this->setSubStyle($subStyle);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the Design to the given Quad
|
||||
*
|
||||
* @param Quad $quad CheckBox Quad
|
||||
* @return static
|
||||
*/
|
||||
public function applyToQuad(Quad $quad) {
|
||||
$quad->setImage($this->url);
|
||||
$quad->setStyles($this->style, $this->subStyle);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the CheckBox Design string
|
||||
*
|
||||
* @param bool $escaped (optional) Whether the string should be escaped for the Script
|
||||
* @param bool $addApostrophes (optional) Whether to add apostrophes before and after the text
|
||||
* @return string
|
||||
*/
|
||||
public function getDesignString($escaped = true, $addApostrophes = true) {
|
||||
if (!is_null($this->url)) {
|
||||
$string = $this->url;
|
||||
} else {
|
||||
$string = $this->style . '|' . $this->subStyle;;
|
||||
}
|
||||
if ($escaped) {
|
||||
return Builder::escapeText($string, $addApostrophes);
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
}
|
@ -1,150 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
/**
|
||||
* ManiaScript Builder class
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
abstract class Builder {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const EMPTY_STRING = '""';
|
||||
|
||||
/**
|
||||
* Build a label implementation block
|
||||
*
|
||||
* @param string $labelName Name of the label
|
||||
* @param string $implementationCode Label implementation coding (without declaration)
|
||||
* @param bool $isolate Whether the code should be isolated in an own block
|
||||
* @return string
|
||||
*/
|
||||
public static function getLabelImplementationBlock($labelName, $implementationCode, $isolate = true) {
|
||||
if ($isolate) {
|
||||
$implementationCode = 'if(True){' . $implementationCode . '}';
|
||||
}
|
||||
$labelText = PHP_EOL . "***{$labelName}***" . PHP_EOL . "***{$implementationCode}***" . PHP_EOL;
|
||||
return $labelText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape dangerous characters in the given text
|
||||
*
|
||||
* @param string $text Text to escape
|
||||
* @param bool $addApostrophes (optional) Whether to add apostrophes before and after the text
|
||||
* @return string
|
||||
*/
|
||||
public static function escapeText($text, $addApostrophes = false) {
|
||||
$dangers = array('\\', '"', "\n");
|
||||
$replacements = array('\\\\', '\\"', '\\n');
|
||||
$escapedText = str_ireplace($dangers, $replacements, $text);
|
||||
if ($addApostrophes) {
|
||||
$escapedText = '"' . $escapedText . '"';
|
||||
}
|
||||
return $escapedText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the 'Real' string representation of the given value
|
||||
*
|
||||
* @param float $value Float value to convert to a ManiaScript 'Real'
|
||||
* @return string
|
||||
*/
|
||||
public static function getReal($value) {
|
||||
$value = (float)$value;
|
||||
$stringVal = (string)$value;
|
||||
if (!fmod($value, 1)) {
|
||||
$stringVal .= '.';
|
||||
}
|
||||
return $stringVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the 'Boolean' string representation of the given value
|
||||
*
|
||||
* @param bool $value Value to convert to a ManiaScript 'Boolean'
|
||||
* @return string
|
||||
*/
|
||||
public static function getBoolean($value) {
|
||||
$bool = (bool)$value;
|
||||
if ($bool) {
|
||||
return 'True';
|
||||
}
|
||||
return 'False';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string representation of the given array
|
||||
*
|
||||
* @param array $array Array to convert to a ManiaScript array
|
||||
* @param bool $associative (optional) Whether the array should be associative
|
||||
* @return string
|
||||
*/
|
||||
public static function getArray(array $array, $associative = false) {
|
||||
$arrayText = '[';
|
||||
$index = 0;
|
||||
$count = count($array);
|
||||
foreach ($array as $key => $value) {
|
||||
if ($associative) {
|
||||
if (is_string($key)) {
|
||||
$arrayText .= '"' . static::escapeText($key) . '"';
|
||||
} else {
|
||||
$arrayText .= $key;
|
||||
}
|
||||
$arrayText .= ' => ';
|
||||
}
|
||||
if (is_string($value)) {
|
||||
$arrayText .= '"' . static::escapeText($value) . '"';
|
||||
} else {
|
||||
$arrayText .= $value;
|
||||
}
|
||||
if ($index < $count - 1) {
|
||||
$arrayText .= ', ';
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
$arrayText .= ']';
|
||||
return $arrayText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the include command for the given file and namespace
|
||||
*
|
||||
* @param string $file Include file
|
||||
* @param string $namespace (optional) Include namespace
|
||||
* @return string
|
||||
*/
|
||||
public static function getInclude($file, $namespace = null) {
|
||||
if (!$namespace && stripos($file, '.') === false) {
|
||||
$namespace = $file;
|
||||
}
|
||||
$file = static::escapeText($file, true);
|
||||
$includeText = "#Include {$file}";
|
||||
if ($namespace) {
|
||||
$includeText .= " as {$namespace}";
|
||||
}
|
||||
$includeText .= PHP_EOL;
|
||||
return $includeText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the constant command for the given name and value
|
||||
*
|
||||
* @param string $name Constant name
|
||||
* @param string $value Constant value
|
||||
* @return string
|
||||
*/
|
||||
public static function getConstant($name, $value) {
|
||||
if (is_string($value)) {
|
||||
$value = static::escapeText($value, true);
|
||||
} else if (is_bool($value)) {
|
||||
$value = static::getBoolean($value);
|
||||
}
|
||||
$constantText = "#Const {$name} {$value}" . PHP_EOL;
|
||||
return $constantText;
|
||||
}
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for triggering a manialink page action
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ActionTrigger extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $actionName = null;
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $labelName = null;
|
||||
|
||||
/**
|
||||
* Construct a new Action Trigger Feature
|
||||
*
|
||||
* @param string $actionName (optional) Triggered action
|
||||
* @param Control $control (optional) Action Control
|
||||
* @param string $labelName (optional) Script Label name
|
||||
*/
|
||||
public function __construct($actionName = null, Control $control = null, $labelName = ScriptLabel::MOUSECLICK) {
|
||||
if (!is_null($actionName)) {
|
||||
$this->setActionName($actionName);
|
||||
}
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
if (!is_null($labelName)) {
|
||||
$this->setLabelName($labelName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the action to trigger
|
||||
*
|
||||
* @param string $actionName
|
||||
* @return static
|
||||
*/
|
||||
public function setActionName($actionName) {
|
||||
$this->actionName = (string)$actionName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Control
|
||||
*
|
||||
* @param Control $control Action Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->control = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$actionName = Builder::escapeText($this->actionName, true);
|
||||
if ($this->control) {
|
||||
// Control event
|
||||
$controlId = Builder::escapeText($this->control->getId(), true);
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$controlId}) {
|
||||
TriggerPageAction({$actionName});
|
||||
}";
|
||||
} else {
|
||||
// Other
|
||||
$scriptText = "
|
||||
TriggerPageAction({$actionName});";
|
||||
}
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,221 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Entry;
|
||||
use FML\Controls\Quad;
|
||||
use FML\Models\CheckBoxDesign;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptInclude;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature for creating a CheckBox behavior
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class CheckBoxFeature extends ScriptFeature {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const FUNCTION_UPDATE_QUAD_DESIGN = 'FML_UpdateQuadDesign';
|
||||
const VAR_CHECKBOX_ENABLED = 'FML_CheckBox_Enabled';
|
||||
const VAR_CHECKBOX_DESIGNS = 'FML_CheckBox_Designs';
|
||||
const VAR_CHECKBOX_ENTRY_ID = 'FML_CheckBox_EntryId';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Quad $quad */
|
||||
protected $quad = null;
|
||||
/** @var Entry $entry */
|
||||
protected $entry = null;
|
||||
protected $default = null;
|
||||
/** @var CheckBoxDesign $enabledDesign */
|
||||
protected $enabledDesign = null;
|
||||
/** @var CheckBoxDesign $disabledDesign */
|
||||
protected $disabledDesign = null;
|
||||
|
||||
/**
|
||||
* Construct a new CheckBox Feature
|
||||
*
|
||||
* @param Quad $quad (optional) CheckBox Quad
|
||||
* @param Entry $entry (optional) Hidden Entry
|
||||
* @param bool $default (optional) Default value
|
||||
*/
|
||||
public function __construct(Quad $quad = null, Entry $entry = null, $default = null) {
|
||||
if (!is_null($quad)) {
|
||||
$this->setQuad($quad);
|
||||
}
|
||||
if (!is_null($entry)) {
|
||||
$this->setEntry($entry);
|
||||
}
|
||||
if (!is_null($default)) {
|
||||
$this->setDefault($default);
|
||||
}
|
||||
$this->setEnabledDesign(CheckBoxDesign::defaultEnabledDesign());
|
||||
$this->setDisabledDesign(CheckBoxDesign::defaultDisabledDesign());
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the CheckBox Quad
|
||||
*
|
||||
* @param Quad $quad CheckBox Quad
|
||||
* @return static
|
||||
*/
|
||||
public function setQuad(Quad $quad) {
|
||||
$this->quad = $quad->checkId()->setScriptEvents(true);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the CheckBox Quad
|
||||
*
|
||||
* @return \FML\Controls\Quad
|
||||
*/
|
||||
public function getQuad() {
|
||||
return $this->quad;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the CheckBox Entry
|
||||
*
|
||||
* @param Entry $entry CheckBox Entry
|
||||
* @return static
|
||||
*/
|
||||
public function setEntry(Entry $entry) {
|
||||
$this->entry = $entry->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the managed Entry
|
||||
*
|
||||
* @return \FML\Controls\Entry
|
||||
*/
|
||||
public function getEntry() {
|
||||
return $this->entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param bool $default Default value
|
||||
* @return static
|
||||
*/
|
||||
public function setDefault($default) {
|
||||
$this->default = (bool)$default;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the enabled Design
|
||||
*
|
||||
* @param CheckBoxDesign $checkBoxDesign Enabled CheckBox Design
|
||||
* @return static
|
||||
*/
|
||||
public function setEnabledDesign(CheckBoxDesign $checkBoxDesign) {
|
||||
$this->enabledDesign = $checkBoxDesign;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the disabled Design
|
||||
*
|
||||
* @param CheckBoxDesign $checkBoxDesign Disabled CheckBox Design
|
||||
* @return static
|
||||
*/
|
||||
public function setDisabledDesign(CheckBoxDesign $checkBoxDesign) {
|
||||
$this->disabledDesign = $checkBoxDesign;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
if ($this->getQuad()) {
|
||||
$script->setScriptInclude(ScriptInclude::TEXTLIB);
|
||||
$script->addScriptFunction(self::FUNCTION_UPDATE_QUAD_DESIGN, $this->buildUpdateQuadDesignFunction());
|
||||
$script->appendGenericScriptLabel(ScriptLabel::ONINIT, $this->buildInitScriptText(), true);
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $this->buildClickScriptText());
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the function text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildUpdateQuadDesignFunction() {
|
||||
return "
|
||||
Void " . self::FUNCTION_UPDATE_QUAD_DESIGN . "(CMlQuad _Quad) {
|
||||
declare " . self::VAR_CHECKBOX_ENABLED . " as Enabled for _Quad = True;
|
||||
Enabled = !Enabled;
|
||||
_Quad.StyleSelected = Enabled;
|
||||
declare " . self::VAR_CHECKBOX_DESIGNS . " as Designs for _Quad = Text[Boolean];
|
||||
declare Design = Designs[Enabled];
|
||||
declare DesignParts = TextLib::Split(\"|\", Design);
|
||||
if (DesignParts.count > 1) {
|
||||
_Quad.Style = DesignParts[0];
|
||||
_Quad.Substyle = DesignParts[1];
|
||||
} else {
|
||||
_Quad.ImageUrl = Design;
|
||||
}
|
||||
declare " . self::VAR_CHECKBOX_ENTRY_ID . " as EntryId for _Quad = " . Builder::EMPTY_STRING . ";
|
||||
if (EntryId != " . Builder::EMPTY_STRING . ") {
|
||||
declare Value = \"0\";
|
||||
if (Enabled) {
|
||||
Value = \"1\";
|
||||
}
|
||||
declare Entry <=> (Page.GetFirstChild(EntryId) as CMlEntry);
|
||||
Entry.Value = Value;
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the init script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildInitScriptText() {
|
||||
$quadId = $this->getQuad()->getId(true, true);
|
||||
$entryId = '""';
|
||||
if ($this->entry) {
|
||||
$entryId = $this->entry->getId(true, true);
|
||||
}
|
||||
$default = Builder::getBoolean($this->default);
|
||||
$enabledDesignString = $this->enabledDesign->getDesignString();
|
||||
$disabledDesignString = $this->disabledDesign->getDesignString();
|
||||
return "
|
||||
declare Quad_CheckBox <=> (Page.GetFirstChild({$quadId}) as CMlQuad);
|
||||
declare Text[Boolean] " . self::VAR_CHECKBOX_DESIGNS . " as Designs for Quad_CheckBox;
|
||||
Designs[True] = {$enabledDesignString};
|
||||
Designs[False] = {$disabledDesignString};
|
||||
declare Boolean " . self::VAR_CHECKBOX_ENABLED . " as Enabled for Quad_CheckBox;
|
||||
Enabled = !{$default};
|
||||
declare Text " . self::VAR_CHECKBOX_ENTRY_ID . " as EntryId for Quad_CheckBox;
|
||||
EntryId = {$entryId};
|
||||
" . self::FUNCTION_UPDATE_QUAD_DESIGN . "(Quad_CheckBox);
|
||||
";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the script text for Quad clicks
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildClickScriptText() {
|
||||
$quadId = $this->getQuad()->getId(true, true);
|
||||
return "
|
||||
if (Event.ControlId == {$quadId}) {
|
||||
declare Quad_CheckBox <=> (Event.Control as CMlQuad);
|
||||
" . self::FUNCTION_UPDATE_QUAD_DESIGN . "(Quad_CheckBox);
|
||||
}";
|
||||
}
|
||||
}
|
@ -1,105 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Label;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptInclude;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature showing the current time on a Label
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Clock extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Label $label */
|
||||
protected $label = null;
|
||||
protected $showSeconds = null;
|
||||
protected $showFullDate = null;
|
||||
|
||||
/**
|
||||
* Construct a new Clock Feature
|
||||
*
|
||||
* @param Label $label (optional) Clock Label
|
||||
* @param bool $showSeconds (optional) Whether the seconds should be shown
|
||||
* @param bool $showFullDate (optional) Whether the date should be shown
|
||||
*/
|
||||
public function __construct(Label $label = null, $showSeconds = true, $showFullDate = false) {
|
||||
if (!is_null($label)) {
|
||||
$this->setLabel($label);
|
||||
}
|
||||
$this->setShowSeconds($showSeconds);
|
||||
$this->setShowFullDate($showFullDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Label
|
||||
*
|
||||
* @param Label $label Clock Label
|
||||
* @return static
|
||||
*/
|
||||
public function setLabel(Label $label) {
|
||||
$this->label = $label->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether seconds should be shown
|
||||
*
|
||||
* @param bool $showSeconds Whether seconds should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setShowSeconds($showSeconds) {
|
||||
$this->showSeconds = (bool)$showSeconds;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether the full date should be shown
|
||||
*
|
||||
* @param bool $showFullDate Whether the full date should be shown
|
||||
* @return static
|
||||
*/
|
||||
public function setShowFullDate($showFullDate) {
|
||||
$this->showFullDate = (bool)$showFullDate;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->setScriptInclude(ScriptInclude::TEXTLIB);
|
||||
$script->appendGenericScriptLabel(ScriptLabel::TICK, $this->getScriptText(), true);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$controlId = $this->label->getId(true, true);
|
||||
$scriptText = "
|
||||
declare ClockLabel <=> (Page.GetFirstChild({$controlId}) as CMlLabel);
|
||||
declare TimeText = CurrentLocalDateText;";
|
||||
if (!$this->showSeconds) {
|
||||
$scriptText .= "
|
||||
TimeText = TextLib::SubText(TimeText, 0, 16);";
|
||||
}
|
||||
if (!$this->showFullDate) {
|
||||
$scriptText .= "
|
||||
TimeText = TextLib::SubText(TimeText, 11, 9);";
|
||||
}
|
||||
$scriptText .= "
|
||||
ClockLabel.Value = TimeText;";
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,125 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for a Control related script
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ControlScript extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $labelName = null;
|
||||
protected $text = null;
|
||||
|
||||
/**
|
||||
* Construct a new Control Script
|
||||
*
|
||||
* @param Control $control Event Control
|
||||
* @param string $text Script text
|
||||
* @param string $labelName (optional) Script Label name
|
||||
*/
|
||||
public function __construct(Control $control, $text, $labelName = ScriptLabel::MOUSECLICK) {
|
||||
$this->setControl($control);
|
||||
$this->setText($text);
|
||||
$this->setLabelName($labelName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Control
|
||||
*
|
||||
* @param Control $control Event Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$this->control = $control->checkId();
|
||||
$this->updateScriptEvents();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the script text
|
||||
*
|
||||
* @param string $text Script text
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
$this->updateScriptEvents();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable Script Events on the Control if needed
|
||||
*/
|
||||
protected function updateScriptEvents() {
|
||||
if (!$this->control || !ScriptLabel::isEventLabel($this->labelName)) {
|
||||
return;
|
||||
}
|
||||
if ($this->control instanceof Scriptable) {
|
||||
$this->control->setScriptEvents(true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$isolated = !ScriptLabel::isEventLabel($this->labelName);
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->buildScriptText(), $isolated);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the script text for the Control
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildScriptText() {
|
||||
$controlId = $this->control->getId(true);
|
||||
$scriptText = '';
|
||||
$closeBlock = false;
|
||||
if (ScriptLabel::isEventLabel($this->labelName)) {
|
||||
$scriptText .= '
|
||||
if (Event.ControlId == "' . $controlId . '") {
|
||||
declare Control <=> Event.Control;';
|
||||
$closeBlock = true;
|
||||
} else {
|
||||
$scriptText .= '
|
||||
declare Control <=> Page.GetFirstChild("' . $controlId . '");';
|
||||
}
|
||||
$class = $this->control->getManiaScriptClass();
|
||||
$name = preg_replace('/^CMl/', '', $class, 1);
|
||||
$scriptText .= '
|
||||
declare ' . $name . ' <=> (Control as ' . $class . ');
|
||||
';
|
||||
$scriptText .= $this->text . '
|
||||
';
|
||||
if ($closeBlock) {
|
||||
$scriptText .= '}';
|
||||
}
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,101 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Entry;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptInclude;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature for submitting an Entry
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class EntrySubmit extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Entry $entry */
|
||||
protected $entry = null;
|
||||
protected $url = null;
|
||||
|
||||
/**
|
||||
* Construct a new Entry Submit Feature
|
||||
*
|
||||
* @param Entry $entry (optional) Entry Control
|
||||
* @param string $url (optional) Submit url
|
||||
*/
|
||||
public function __construct(Entry $entry = null, $url = null) {
|
||||
if (!is_null($entry)) {
|
||||
$this->setEntry($entry);
|
||||
}
|
||||
$this->setUrl($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Entry
|
||||
*
|
||||
* @param Entry $entry Entry Control
|
||||
* @return static
|
||||
*/
|
||||
public function setEntry(Entry $entry) {
|
||||
$this->entry = $entry->checkId()->setScriptEvents(true);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the submit url
|
||||
*
|
||||
* @param string $url Submit url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url) {
|
||||
$this->url = (string)$url;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->setScriptInclude(ScriptInclude::TEXTLIB);
|
||||
$controlScript = new ControlScript($this->entry, $this->getScriptText(), ScriptLabel::ENTRYSUBMIT);
|
||||
$controlScript->prepare($script);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$url = $this->buildCompatibleUrl();
|
||||
$entryName = $this->entry->getName();
|
||||
$link = Builder::escapeText($entryName . $url . '=', true);
|
||||
return "
|
||||
declare Value = TextLib::URLEncode(Entry.Value);
|
||||
OpenLink({$link}^Value, CMlScript::LinkType::Goto);
|
||||
";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the submit url compatible for the Entry parameter
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildCompatibleUrl() {
|
||||
$url = $this->url;
|
||||
$paramsBegin = stripos($url, '?');
|
||||
if (!is_int($paramsBegin) || $paramsBegin < 0) {
|
||||
$url .= '?';
|
||||
} else {
|
||||
$url .= '&';
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature for triggering a manialink page action on key press
|
||||
*
|
||||
* @author steeffeen
|
||||
* @link http://destroflyer.mania-community.de/maniascript/keycharid_table.php
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class KeyAction extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $actionName = null;
|
||||
protected $keyName = null;
|
||||
protected $keyCode = null;
|
||||
protected $charPressed = null;
|
||||
|
||||
/**
|
||||
* Construct a new Key Action Feature
|
||||
*
|
||||
* @param string $actionName (optional) Triggered action
|
||||
* @param string $keyName (optional) Key name
|
||||
*/
|
||||
public function __construct($actionName = null, $keyName = null) {
|
||||
if (!is_null($actionName)) {
|
||||
$this->setActionName($actionName);
|
||||
}
|
||||
if (!is_null($keyName)) {
|
||||
$this->setKeyName($keyName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the action to trigger
|
||||
*
|
||||
* @param string $actionName Triggered action
|
||||
* @return static
|
||||
*/
|
||||
public function setActionName($actionName) {
|
||||
$this->actionName = (string)$actionName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the key name for triggering the action
|
||||
*
|
||||
* @param string $keyName Key Name
|
||||
* @return static
|
||||
*/
|
||||
public function setKeyName($keyName) {
|
||||
$this->keyName = (string)$keyName;
|
||||
$this->keyCode = null;
|
||||
$this->charPressed = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the key code for triggering the action
|
||||
*
|
||||
* @param int $keyCode Key Code
|
||||
* @return static
|
||||
*/
|
||||
public function setKeyCode($keyCode) {
|
||||
$this->keyCode = (int)$keyCode;
|
||||
$this->keyName = null;
|
||||
$this->charPressed = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the char to press for triggering the action
|
||||
*
|
||||
* @param string $charPressed Pressed char
|
||||
* @return static
|
||||
*/
|
||||
public function setCharPressed($charPressed) {
|
||||
$this->charPressed = (string)$charPressed;
|
||||
$this->keyName = null;
|
||||
$this->keyCode = null;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel(ScriptLabel::KEYPRESS, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$actionName = Builder::escapeText($this->actionName, true);
|
||||
$key = null;
|
||||
$value = null;
|
||||
if (!is_null($this->keyName)) {
|
||||
$key = 'KeyName';
|
||||
$value = $this->keyName;
|
||||
} else if (!is_null($this->keyCode)) {
|
||||
$key = 'KeyCode';
|
||||
$value = $this->keyCode;
|
||||
} else if (!is_null($this->charPressed)) {
|
||||
$key = 'CharPressed';
|
||||
$value = $this->charPressed;
|
||||
}
|
||||
$value = Builder::escapeText($value, true);
|
||||
return "
|
||||
if (Event.{$key} == {$value}) {
|
||||
TriggerPageAction({$actionName});
|
||||
}";
|
||||
}
|
||||
}
|
@ -1,91 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for opening the map info
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class MapInfo extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $labelName = null;
|
||||
|
||||
/**
|
||||
* Construct a new Map Info Feature
|
||||
*
|
||||
* @param Control $control (optional) Map Info Control
|
||||
* @param string $labelName (optional) Script Label name
|
||||
*/
|
||||
public function __construct(Control $control, $labelName = ScriptLabel::MOUSECLICK) {
|
||||
$this->setControl($control);
|
||||
$this->setLabelName($labelName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Control
|
||||
*
|
||||
* @param Control $control Map Info Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->control = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
if ($this->control) {
|
||||
// Control event
|
||||
$controlId = Builder::escapeText($this->control->getId(), true);
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$controlId}) {
|
||||
ShowCurChallengeCard();
|
||||
}";
|
||||
} else {
|
||||
// Other
|
||||
$scriptText = "
|
||||
ShowCurChallengeCard();";
|
||||
}
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,140 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature realising a Menu showing specific Controls for the different items
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Menu extends ScriptFeature {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const FUNCTION_UPDATE_MENU = 'FML_UpdateMenu';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var MenuElement[] $elements */
|
||||
protected $elements = array();
|
||||
/** @var MenuElement $startElement */
|
||||
protected $startElement = null;
|
||||
|
||||
/**
|
||||
* Construct a new Menu Feature
|
||||
*
|
||||
* @param Control $item (optional) Item Control in the Menu bar
|
||||
* @param Control $control (optional) Toggled Menu Control
|
||||
*/
|
||||
public function __construct(Control $item = null, Control $control = null) {
|
||||
if ($item && $control) {
|
||||
$this->addElement($item, $control);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new Element to the Menu
|
||||
*
|
||||
* @param Control $item Item Control in the Menu bar
|
||||
* @param Control $control Toggled Menu Control
|
||||
* @param bool $isStartElement (optional) Whether the Menu should start with this Element
|
||||
* @return static
|
||||
*/
|
||||
public function addElement(Control $item, Control $control, $isStartElement = false) {
|
||||
$menuElement = new MenuElement($item, $control);
|
||||
$this->appendElement($menuElement, $isStartElement);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append an Element to the Menu
|
||||
*
|
||||
* @param MenuElement $menuElement Menu Element
|
||||
* @param bool $isStartElement (optional) Whether the Menu should start with this Element
|
||||
* @return static
|
||||
*/
|
||||
public function appendElement(MenuElement $menuElement, $isStartElement = false) {
|
||||
if (!in_array($menuElement, $this->elements, true)) {
|
||||
array_push($this->elements, $menuElement);
|
||||
if ($isStartElement) {
|
||||
$this->setStartElement($menuElement);
|
||||
} else if (count($this->elements) > 1) {
|
||||
$menuElement->getControl()->setVisible(false);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Element to start with
|
||||
*
|
||||
* @param MenuElement $startElement Starting Element
|
||||
* @return static
|
||||
*/
|
||||
public function setStartElement(MenuElement $startElement) {
|
||||
$this->startElement = $startElement;
|
||||
if (!in_array($startElement, $this->elements, true)) {
|
||||
array_push($this->elements, $startElement);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$updateFunctionName = self::FUNCTION_UPDATE_MENU;
|
||||
$elementsArrayText = $this->getElementsArrayText();
|
||||
|
||||
// OnInit
|
||||
if ($this->startElement) {
|
||||
$startControlId = $this->startElement->getControl()->getId(true, true);
|
||||
$initScriptText = "
|
||||
{$updateFunctionName}({$elementsArrayText}, {$startControlId});";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::ONINIT, $initScriptText, true);
|
||||
}
|
||||
|
||||
// MouseClick
|
||||
$scriptText = "
|
||||
declare MenuElements = {$elementsArrayText};
|
||||
if (MenuElements.existskey(Event.Control.ControlId)) {
|
||||
declare ShownControlId = MenuElements[Event.Control.ControlId];
|
||||
{$updateFunctionName}(MenuElements, ShownControlId);
|
||||
}";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $scriptText, true);
|
||||
|
||||
// Update menu function
|
||||
$updateFunctionText = "
|
||||
Void {$updateFunctionName}(Text[Text] _Elements, Text _ShownControlId) {
|
||||
foreach (ItemId => ControlId in _Elements) {
|
||||
declare Control <=> (Page.GetFirstChild(ControlId));
|
||||
Control.Visible = (ControlId == _ShownControlId);
|
||||
}
|
||||
}";
|
||||
$script->addScriptFunction($updateFunctionName, $updateFunctionText);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the array text for the Elements
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getElementsArrayText() {
|
||||
$elements = array();
|
||||
foreach ($this->elements as $element) {
|
||||
$elementId = $element->getItem()->getId();
|
||||
$elements[$elementId] = $element->getControl()->getId();
|
||||
}
|
||||
return Builder::getArray($elements, true);
|
||||
}
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Menu Element for the Menu Feature
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class MenuElement {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $item = null;
|
||||
protected $control = null;
|
||||
|
||||
/**
|
||||
* Create a new Menu Element
|
||||
*
|
||||
* @param Control $item (optional) Item Control in the Menu bar
|
||||
* @param Control $control (optional) Toggled Menu Control
|
||||
*/
|
||||
public function __construct(Control $item = null, Control $control = null) {
|
||||
if (!is_null($item)) {
|
||||
$this->setItem($item);
|
||||
}
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Item Control
|
||||
*
|
||||
* @param Control $item Item Control in the Menu bar
|
||||
* @return static
|
||||
*/
|
||||
public function setItem(Control $item) {
|
||||
$item->checkId();
|
||||
if ($item instanceof Scriptable) {
|
||||
$item->setScriptEvents(true);
|
||||
}
|
||||
$this->item = $item;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Item Control
|
||||
*
|
||||
* @return \FML\Controls\Control
|
||||
*/
|
||||
public function getItem() {
|
||||
return $this->item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Menu Control
|
||||
*
|
||||
* @param Control $control Toggled Menu Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$this->control = $control->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Menu Control
|
||||
*
|
||||
* @return \FML\Controls\Control
|
||||
*/
|
||||
public function getControl() {
|
||||
return $this->control;
|
||||
}
|
||||
}
|
@ -1,348 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Controls\Label;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptInclude;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature realising a mechanism for browsing through Pages
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Paging extends ScriptFeature {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const VAR_CURRENT_PAGE = 'FML_Paging_CurrentPage';
|
||||
const FUNCTION_UPDATE_CURRENT_PAGE = 'FML_UpdateCurrentPage';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var PagingPage[] $pages */
|
||||
protected $pages = array();
|
||||
/** @var PagingButton[] $buttons */
|
||||
protected $buttons = array();
|
||||
/** @var Label $label */
|
||||
protected $label = null;
|
||||
protected $startPageNumber = null;
|
||||
protected $customMaxPageNumber = null;
|
||||
protected $previousChunkAction = null;
|
||||
protected $nextChunkAction = null;
|
||||
protected $chunkActionAppendsPageNumber = null;
|
||||
|
||||
/**
|
||||
* Construct a new Paging Script Feature
|
||||
*
|
||||
* @param Label $label (optional) Page number Label
|
||||
*/
|
||||
public function __construct(Label $label = null) {
|
||||
if (!is_null($label)) {
|
||||
$this->setLabel($label);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new Page Control
|
||||
*
|
||||
* @param Control $pageControl Page Control
|
||||
* @param string $pageNumber (optional) Page number
|
||||
* @return static
|
||||
*/
|
||||
public function addPage(Control $pageControl, $pageNumber = null) {
|
||||
if (is_null($pageNumber)) {
|
||||
$pageNumber = count($this->pages) + 1;
|
||||
}
|
||||
$page = new PagingPage($pageControl, $pageNumber);
|
||||
$this->appendPage($page);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a Page
|
||||
*
|
||||
* @param PagingPage $page Paging Page
|
||||
* @return static
|
||||
*/
|
||||
public function appendPage(PagingPage $page) {
|
||||
if (!in_array($page, $this->pages, true)) {
|
||||
array_push($this->pages, $page);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new Button to browse through the Pages
|
||||
*
|
||||
* @param Control $buttonControl Button used for browsing
|
||||
* @param int $browseAction (optional) Number of browsed Pages per click
|
||||
* @return static
|
||||
*/
|
||||
public function addButton(Control $buttonControl, $browseAction = null) {
|
||||
if (is_null($browseAction)) {
|
||||
$buttonCount = count($this->buttons);
|
||||
if ($buttonCount % 2 === 0) {
|
||||
$browseAction = $buttonCount / 2 + 1;
|
||||
} else {
|
||||
$browseAction = $buttonCount / -2 - 1;
|
||||
}
|
||||
}
|
||||
$button = new PagingButton($buttonControl, $browseAction);
|
||||
$this->appendButton($button);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a Button to browse through Pages
|
||||
*
|
||||
* @param PagingButton $button Paging Button
|
||||
* @return static
|
||||
*/
|
||||
public function appendButton(PagingButton $button) {
|
||||
if (!in_array($button, $this->buttons, true)) {
|
||||
array_push($this->buttons, $button);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Label showing the Page number
|
||||
*
|
||||
* @param Label $label Page number Label
|
||||
* @return static
|
||||
*/
|
||||
public function setLabel(Label $label) {
|
||||
$this->label = $label->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Start Page number
|
||||
*
|
||||
* @param int $startPageNumber Page number to start with
|
||||
* @return static
|
||||
*/
|
||||
public function setStartPageNumber($startPageNumber) {
|
||||
$this->startPageNumber = (int)$startPageNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a custom maximum Page number for using chunks
|
||||
*
|
||||
* @param int $maxPageNumber Custom maximum Page number
|
||||
* @return static
|
||||
*/
|
||||
public function setCustomMaxPageNumber($maxPageNumber) {
|
||||
$this->customMaxPageNumber = (int)$maxPageNumber;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the action triggered when the previous chunk is needed
|
||||
*
|
||||
* @param string $previousChunkAction Triggered action
|
||||
* @return static
|
||||
*/
|
||||
public function setPreviousChunkAction($previousChunkAction) {
|
||||
$this->previousChunkAction = (string)$previousChunkAction;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the action triggered when the next chunk is needed
|
||||
*
|
||||
* @param string $nextChunkAction Triggered action
|
||||
* @return static
|
||||
*/
|
||||
public function setNextChunkAction($nextChunkAction) {
|
||||
$this->nextChunkAction = (string)$nextChunkAction;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the actions triggered when another chunk is needed
|
||||
*
|
||||
* @param string $chunkAction Triggered action
|
||||
* @return static
|
||||
*/
|
||||
public function setChunkActions($chunkAction) {
|
||||
$this->setNextChunkAction($chunkAction);
|
||||
$this->setPreviousChunkAction($chunkAction);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if the chunk action should get the needed Page number appended
|
||||
*
|
||||
* @param bool $appendPageNumber Whether to append the needed Page number
|
||||
* @return static
|
||||
*/
|
||||
public function setChunkActionAppendsPageNumber($appendPageNumber) {
|
||||
$this->chunkActionAppendsPageNumber = (bool)$appendPageNumber;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
if (empty($this->pages)) {
|
||||
return $this;
|
||||
}
|
||||
$script->setScriptInclude(ScriptInclude::TEXTLIB);
|
||||
|
||||
$currentPageVariable = self::VAR_CURRENT_PAGE;
|
||||
$updatePageFunction = self::FUNCTION_UPDATE_CURRENT_PAGE;
|
||||
|
||||
$minPageNumber = 1;
|
||||
$startPageNumber = (is_int($this->startPageNumber) ? $this->startPageNumber : $minPageNumber);
|
||||
$maxPage = $this->getMaxPage();
|
||||
$maxPageNumber = $this->customMaxPageNumber;
|
||||
if (!is_int($maxPageNumber)) {
|
||||
$maxPageNumber = $maxPage->getPageNumber();
|
||||
}
|
||||
|
||||
$pagingId = $maxPage->getControl()->getId(true, true);
|
||||
$pageLabelId = '""';
|
||||
if ($this->label) {
|
||||
$pageLabelId = $this->label->getId(true, true);
|
||||
}
|
||||
$pagesArrayText = $this->getPagesArrayText();
|
||||
$pageButtonsArrayText = $this->getPageButtonsArrayText();
|
||||
|
||||
$previousChunkAction = Builder::escapeText($this->previousChunkAction, true);
|
||||
$nextChunkAction = Builder::escapeText($this->nextChunkAction, true);
|
||||
$chunkActionAppendsPageNumber = Builder::getBoolean($this->chunkActionAppendsPageNumber);
|
||||
|
||||
// Init
|
||||
$initScriptText = "
|
||||
declare {$currentPageVariable} for This = Integer[Text];
|
||||
{$currentPageVariable}[{$pagingId}] = {$startPageNumber};
|
||||
{$updatePageFunction}({$pagingId}, {$pageLabelId}, 0, {$minPageNumber}, {$maxPageNumber}, {$pagesArrayText}, {$previousChunkAction}, {$nextChunkAction}, {$chunkActionAppendsPageNumber});";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::ONINIT, $initScriptText, true);
|
||||
|
||||
// MouseClick
|
||||
$clickScriptText = "
|
||||
declare PageButtons = {$pageButtonsArrayText};
|
||||
if (PageButtons.existskey(Event.Control.ControlId)) {
|
||||
declare BrowseAction = PageButtons[Event.Control.ControlId];
|
||||
{$updatePageFunction}({$pagingId}, {$pageLabelId}, BrowseAction, {$minPageNumber}, {$maxPageNumber}, {$pagesArrayText}, {$previousChunkAction}, {$nextChunkAction}, {$chunkActionAppendsPageNumber});
|
||||
}";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $clickScriptText, true);
|
||||
|
||||
// Update function
|
||||
$functionText = "
|
||||
Void {$updatePageFunction}(Text _PagingId, Text _PageLabelId, Integer _BrowseAction, Integer _MinPageNumber, Integer _MaxPageNumber, Text[Integer] _Pages, Text _PreviousChunkAction, Text _NextChunkAction, Boolean _ChunkActionAppendPageNumber) {
|
||||
declare {$currentPageVariable} for This = Integer[Text];
|
||||
if (!{$currentPageVariable}.existskey(_PagingId)) return;
|
||||
declare CurrentPage = {$currentPageVariable}[_PagingId] + _BrowseAction;
|
||||
if (CurrentPage < _MinPageNumber) {
|
||||
CurrentPage = _MinPageNumber;
|
||||
} else if (CurrentPage > _MaxPageNumber) {
|
||||
CurrentPage = _MaxPageNumber;
|
||||
}
|
||||
{$currentPageVariable}[_PagingId] = CurrentPage;
|
||||
declare PageFound = False;
|
||||
foreach (PageNumber => PageId in _Pages) {
|
||||
declare PageControl <=> Page.GetFirstChild(PageId);
|
||||
PageControl.Visible = (CurrentPage == PageNumber);
|
||||
if (PageControl.Visible) {
|
||||
PageFound = True;
|
||||
}
|
||||
}
|
||||
if (!PageFound && _BrowseAction != 0) {
|
||||
declare Text ChunkAction;
|
||||
if (_BrowseAction < 0) {
|
||||
ChunkAction = _PreviousChunkAction;
|
||||
} else {
|
||||
ChunkAction = _NextChunkAction;
|
||||
}
|
||||
if (_ChunkActionAppendPageNumber) {
|
||||
ChunkAction ^= CurrentPage;
|
||||
}
|
||||
TriggerPageAction(ChunkAction);
|
||||
}
|
||||
if (_PageLabelId == " . Builder::EMPTY_STRING . ") return;
|
||||
declare PageLabel <=> (Page.GetFirstChild(_PageLabelId) as CMlLabel);
|
||||
if (PageLabel == Null) return;
|
||||
PageLabel.Value = CurrentPage^\"/\"^_MaxPageNumber;
|
||||
}";
|
||||
$script->addScriptFunction($updatePageFunction, $functionText);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the minimum Page
|
||||
*
|
||||
* @return \FML\Script\Features\PagingPage
|
||||
*/
|
||||
protected function getMinPage() {
|
||||
$minPageNumber = null;
|
||||
$minPage = null;
|
||||
foreach ($this->pages as $page) {
|
||||
$pageNumber = $page->getPageNumber();
|
||||
if (is_null($minPageNumber) || $pageNumber < $minPageNumber) {
|
||||
$minPageNumber = $pageNumber;
|
||||
$minPage = $page;
|
||||
}
|
||||
}
|
||||
return $minPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the maximum Page
|
||||
*
|
||||
* @return \FML\Script\Features\PagingPage
|
||||
*/
|
||||
protected function getMaxPage() {
|
||||
$maxPageNumber = null;
|
||||
$maxPage = null;
|
||||
foreach ($this->pages as $page) {
|
||||
$pageNumber = $page->getPageNumber();
|
||||
if (is_null($maxPageNumber) || $pageNumber > $maxPageNumber) {
|
||||
$maxPageNumber = $pageNumber;
|
||||
$maxPage = $page;
|
||||
}
|
||||
}
|
||||
return $maxPage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the array text for the Pages
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getPagesArrayText() {
|
||||
if (empty($this->pages)) {
|
||||
return Builder::getArray(array(0 => ''), true);
|
||||
}
|
||||
$pages = array();
|
||||
foreach ($this->pages as $page) {
|
||||
$pages[$page->getPageNumber()] = $page->getControl()->getId();
|
||||
}
|
||||
return Builder::getArray($pages, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the array text for the Page Buttons
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getPageButtonsArrayText() {
|
||||
if (empty($this->buttons)) {
|
||||
return Builder::getArray(array('' => 0), true);
|
||||
}
|
||||
$pageButtons = array();
|
||||
foreach ($this->buttons as $pageButton) {
|
||||
$pageButtons[$pageButton->getControl()->getId()] = $pageButton->getBrowseAction();
|
||||
}
|
||||
return Builder::getArray($pageButtons, true);
|
||||
}
|
||||
}
|
@ -1,81 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Paging Button for browsing through Pages
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PagingButton {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $browseAction = null;
|
||||
|
||||
/**
|
||||
* Construct a new Paging Button
|
||||
*
|
||||
* @param Control $control (optional) Browse Control
|
||||
* @param int $browseAction (optional) Number of browsed Pages per Click
|
||||
*/
|
||||
public function __construct(Control $control = null, $browseAction = null) {
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
if (!is_null($browseAction)) {
|
||||
$this->setBrowseAction($browseAction);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Button Control
|
||||
*
|
||||
* @param Control $control Browse Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->control = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Button Control
|
||||
*
|
||||
* @return \FML\Controls\Control
|
||||
*/
|
||||
public function getControl() {
|
||||
return $this->control;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the browse action
|
||||
*
|
||||
* @param int $browseAction Number of browsed Pages per click
|
||||
* @return static
|
||||
*/
|
||||
public function setBrowseAction($browseAction) {
|
||||
$this->browseAction = (int)$browseAction;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the browse action
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getBrowseAction() {
|
||||
return $this->browseAction;
|
||||
}
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
|
||||
/**
|
||||
* Paging Page
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PagingPage {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $number = null;
|
||||
|
||||
/**
|
||||
* Construct a new Paging Page
|
||||
*
|
||||
* @param Control $control (optional) Page Control
|
||||
* @param int $pageNumber (optional) Number of the Page
|
||||
*/
|
||||
public function __construct(Control $control = null, $pageNumber = 1) {
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
$this->setPageNumber($pageNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Page Control
|
||||
*
|
||||
* @param Control $control Page Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$this->control = $control->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Page Control
|
||||
*
|
||||
* @return \FML\Controls\Control
|
||||
*/
|
||||
public function getControl() {
|
||||
return $this->control;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Page number
|
||||
*
|
||||
* @param int $pageNumber Number of the Page
|
||||
* @return static
|
||||
*/
|
||||
public function setPageNumber($pageNumber) {
|
||||
$this->number = (int)$pageNumber;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Page number
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getPageNumber() {
|
||||
return $this->number;
|
||||
}
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for opening a player profile
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class PlayerProfile extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $login = null;
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $labelName = null;
|
||||
|
||||
/**
|
||||
* Construct a new Player Profile Feature
|
||||
*
|
||||
* @param string $login (optional) Player login
|
||||
* @param Control $control (optional) Action Control
|
||||
* @param string $labelName (optional) Script Label name
|
||||
*/
|
||||
public function __construct($login = null, Control $control = null, $labelName = ScriptLabel::MOUSECLICK) {
|
||||
$this->setLogin($login);
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
$this->setLabelName($labelName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the login of the opened player
|
||||
*
|
||||
* @param string $login Player login
|
||||
* @return static
|
||||
*/
|
||||
public function setLogin($login) {
|
||||
$this->login = $login;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Control
|
||||
*
|
||||
* @param Control $control Profile Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->control = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$login = Builder::escapeText($this->login, true);
|
||||
if ($this->control) {
|
||||
// Control event
|
||||
$controlId = Builder::escapeText($this->control->getId(), true);
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$controlId}) {
|
||||
ShowProfile({$login});
|
||||
}";
|
||||
} else {
|
||||
// Other
|
||||
$scriptText = "
|
||||
ShowProfile({$login});";
|
||||
}
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Script\Script;
|
||||
use FML\Types\ScriptFeatureable;
|
||||
|
||||
/**
|
||||
* ManiaLink Script Feature Class
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
abstract class ScriptFeature {
|
||||
|
||||
/**
|
||||
* Collect the Script Features of the given objects
|
||||
*
|
||||
* @return ScriptFeature[]
|
||||
*/
|
||||
public static function collect() {
|
||||
$params = func_get_args();
|
||||
$scriptFeatures = array();
|
||||
foreach ($params as $object) {
|
||||
if ($object instanceof ScriptFeatureable) {
|
||||
$scriptFeatures = array_merge($scriptFeatures, $object->getScriptFeatures());
|
||||
} else if ($object instanceof ScriptFeature) {
|
||||
array_push($scriptFeatures, $object);
|
||||
}
|
||||
}
|
||||
return $scriptFeatures;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare the given Script for rendering by adding the needed Labels, etc.
|
||||
*
|
||||
* @param Script $script Script to prepare
|
||||
* @return static
|
||||
*/
|
||||
public abstract function prepare(Script $script);
|
||||
}
|
@ -1,138 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for toggling Controls
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Toggle extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $togglingControl */
|
||||
protected $togglingControl = null;
|
||||
/** @var Control $toggledControl */
|
||||
protected $toggledControl = null;
|
||||
protected $labelName = null;
|
||||
protected $onlyShow = null;
|
||||
protected $onlyHide = null;
|
||||
|
||||
/**
|
||||
* Construct a new Toggle Feature
|
||||
*
|
||||
* @param Control $togglingControl (optional) Toggling Control
|
||||
* @param Control $toggledControl (optional) Toggled Control
|
||||
* @param string $labelName (optional) Script Label name
|
||||
* @param bool $onlyShow (optional) Whether it should only show the Control but not toggle
|
||||
* @param bool $onlyHide (optional) Whether it should only hide the Control but not toggle
|
||||
*/
|
||||
public function __construct(Control $togglingControl = null, Control $toggledControl = null, $labelName = ScriptLabel::MOUSECLICK,
|
||||
$onlyShow = false, $onlyHide = false) {
|
||||
if (!is_null($togglingControl)) {
|
||||
$this->setTogglingControl($togglingControl);
|
||||
}
|
||||
if (!is_null($toggledControl)) {
|
||||
$this->setToggledControl($toggledControl);
|
||||
}
|
||||
$this->setLabelName($labelName);
|
||||
$this->setOnlyShow($onlyShow);
|
||||
$this->setOnlyHide($onlyHide);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the toggling Control
|
||||
*
|
||||
* @param Control $control Toggling Control
|
||||
* @return static
|
||||
*/
|
||||
public function setTogglingControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->togglingControl = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the toggled Control
|
||||
*
|
||||
* @param Control $control Toggling Control
|
||||
* @return static
|
||||
*/
|
||||
public function setToggledControl(Control $control) {
|
||||
$this->toggledControl = $control->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label Name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to only show
|
||||
*
|
||||
* @param bool $onlyShow Whether it should only show the Control but not toggle
|
||||
* @return static
|
||||
*/
|
||||
public function setOnlyShow($onlyShow) {
|
||||
$this->onlyShow = (bool)$onlyShow;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to only hide
|
||||
*
|
||||
* @param bool $onlyHide Whether it should only hide the Control but not toggle
|
||||
* @return static
|
||||
*/
|
||||
public function setOnlyHide($onlyHide) {
|
||||
$this->onlyHide = (bool)$onlyHide;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
$togglingControlId = $this->togglingControl->getId(true, true);
|
||||
$toggledControlId = $this->toggledControl->getId(true, true);
|
||||
$visibility = '!ToggleControl.Visible';
|
||||
if ($this->onlyShow) {
|
||||
$visibility = 'True';
|
||||
} else if ($this->onlyHide) {
|
||||
$visibility = 'False';
|
||||
}
|
||||
return "
|
||||
if (Event.Control.ControlId == {$togglingControlId}) {
|
||||
declare ToggleControl = Page.GetFirstChild({$toggledControlId});
|
||||
ToggleControl.Visible = {$visibility};
|
||||
}";
|
||||
}
|
||||
}
|
@ -1,162 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Controls\Label;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for showing Tooltips
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Tooltip extends ScriptFeature {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Control $hoverControl */
|
||||
protected $hoverControl = null;
|
||||
/** @var Control $tooltipControl */
|
||||
protected $tooltipControl = null;
|
||||
protected $stayOnClick = null;
|
||||
protected $invert = null;
|
||||
protected $text = null;
|
||||
|
||||
/**
|
||||
* Construct a new Tooltip Feature
|
||||
*
|
||||
* @param Control $hoverControl (optional) Hover Control
|
||||
* @param Control $tooltipControl (optional) Tooltip Control
|
||||
* @param bool $stayOnClick (optional) Whether the Tooltip should stay on click
|
||||
* @param bool $invert (optional) Whether the visibility toggling should be inverted
|
||||
* @param string $text (optional) Text to display if the TooltipControl is a Label
|
||||
*/
|
||||
public function __construct(Control $hoverControl = null, Control $tooltipControl = null, $stayOnClick = false, $invert = false, $text = null) {
|
||||
if (!is_null($hoverControl)) {
|
||||
$this->setHoverControl($hoverControl);
|
||||
}
|
||||
if (!is_null($tooltipControl)) {
|
||||
$this->setTooltipControl($tooltipControl);
|
||||
}
|
||||
$this->setStayOnClick($stayOnClick);
|
||||
$this->setInvert($invert);
|
||||
if (!is_null($text)) {
|
||||
$this->setText($text);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Hover Control
|
||||
*
|
||||
* @param Control $hoverControl Hover Control
|
||||
* @return static
|
||||
*/
|
||||
public function setHoverControl(Control $hoverControl) {
|
||||
$hoverControl->checkId();
|
||||
if ($hoverControl instanceof Scriptable) {
|
||||
$hoverControl->setScriptEvents(true);
|
||||
}
|
||||
$this->hoverControl = $hoverControl;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Tooltip Control
|
||||
*
|
||||
* @param Control $tooltipControl Tooltip Control
|
||||
* @return static
|
||||
*/
|
||||
public function setTooltipControl(Control $tooltipControl) {
|
||||
$this->tooltipControl = $tooltipControl->checkId()->setVisible(false);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to only show
|
||||
*
|
||||
* @param bool $stayOnClick (optional) Whether the Tooltip should stay on click
|
||||
* @return static
|
||||
*/
|
||||
public function setStayOnClick($stayOnClick) {
|
||||
$this->stayOnClick = (bool)$stayOnClick;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to only hide
|
||||
*
|
||||
* @param bool $invert (optional) Whether the visibility toggling should be inverted
|
||||
* @return static
|
||||
*/
|
||||
public function setInvert($invert) {
|
||||
$this->invert = (bool)$invert;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set text
|
||||
*
|
||||
* @param string $text (optional) Text to display if the TooltipControl is a Label
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$hoverControlId = $this->hoverControl->getId(true, true);
|
||||
$tooltipControlId = $this->tooltipControl->getId(true, true);
|
||||
|
||||
// MouseOver
|
||||
$visibility = ($this->invert ? 'False' : 'True');
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$hoverControlId}) {
|
||||
declare TooltipControl = Page.GetFirstChild({$tooltipControlId});
|
||||
TooltipControl.Visible = {$visibility};";
|
||||
if (is_string($this->text) && ($this->tooltipControl instanceof Label)) {
|
||||
$tooltipText = Builder::escapeText($this->text, true);
|
||||
$scriptText .= "
|
||||
declare TooltipLabel = (TooltipControl as CMlLabel);
|
||||
TooltipLabel.Value = {$tooltipText};";
|
||||
}
|
||||
$scriptText .= "
|
||||
}";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSEOVER, $scriptText);
|
||||
|
||||
// MouseOut
|
||||
$visibility = ($this->invert ? 'True' : 'False');
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$hoverControlId}) {
|
||||
declare TooltipControl = Page.GetFirstChild({$tooltipControlId});";
|
||||
if ($this->stayOnClick) {
|
||||
$scriptText .= "
|
||||
declare FML_Clicked for Event.Control = False;
|
||||
if (!FML_Clicked) ";
|
||||
}
|
||||
$scriptText .= "
|
||||
TooltipControl.Visible = {$visibility};
|
||||
}";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSEOUT, $scriptText);
|
||||
|
||||
// MouseClick
|
||||
if ($this->stayOnClick) {
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$hoverControlId}) {
|
||||
declare FML_Clicked for Event.Control = False;
|
||||
FML_Clicked = !FML_Clicked;
|
||||
}";
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $scriptText);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
}
|
@ -1,168 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Control;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptLabel;
|
||||
use FML\Types\Scriptable;
|
||||
|
||||
/**
|
||||
* Script Feature for playing a UISound
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class UISound extends ScriptFeature {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const Bonus = 'Bonus';
|
||||
const Capture = 'Capture';
|
||||
const Checkpoint = 'Checkpoint';
|
||||
const Combo = 'Combo';
|
||||
const Custom1 = 'Custom1';
|
||||
const Custom2 = 'Custom2';
|
||||
const Custom3 = 'Custom3';
|
||||
const Custom4 = 'Custom4';
|
||||
const Default_ = 'Default';
|
||||
const EndMatch = 'EndMatch';
|
||||
const EndRound = 'EndRound';
|
||||
const Finish = 'Finish';
|
||||
const FirstHit = 'FirstHit';
|
||||
const Notice = 'Notice';
|
||||
const PhaseChange = 'PhaseChange';
|
||||
const PlayerEliminated = 'PlayerEliminated';
|
||||
const PlayerHit = 'PlayerHit';
|
||||
const PlayersRemaining = 'PlayersRemaining';
|
||||
const RankChange = 'RankChange';
|
||||
const Record = 'Record';
|
||||
const ScoreProgress = 'ScoreProgress';
|
||||
const Silence = 'Silence';
|
||||
const StartMatch = 'StartMatch';
|
||||
const StartRound = 'StartRound';
|
||||
const TieBreakPoint = 'TieBreakPoint';
|
||||
const TiePoint = 'TiePoint';
|
||||
const TimeOut = 'TimeOut';
|
||||
const VictoryPoint = 'VictoryPoint';
|
||||
const Warning = 'Warning';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $soundName = null;
|
||||
/** @var Control $control */
|
||||
protected $control = null;
|
||||
protected $variant = 0;
|
||||
protected $volume = 1.;
|
||||
protected $labelName = null;
|
||||
|
||||
/**
|
||||
* Construct a new UISound Feature
|
||||
*
|
||||
* @param string $soundName (optional) Played sound
|
||||
* @param Control $control (optional) Action Control
|
||||
* @param int $variant (optional) Sound variant
|
||||
* @param string $labelName (optional) Script Label name
|
||||
*/
|
||||
public function __construct($soundName = null, Control $control = null, $variant = 0, $labelName = ScriptLabel::MOUSECLICK) {
|
||||
if (!is_null($soundName)) {
|
||||
$this->setSoundName($soundName);
|
||||
}
|
||||
if (!is_null($control)) {
|
||||
$this->setControl($control);
|
||||
}
|
||||
$this->setVariant($variant);
|
||||
$this->setLabelName($labelName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the sound to play
|
||||
*
|
||||
* @param string $soundName Sound name
|
||||
* @return static
|
||||
*/
|
||||
public function setSoundName($soundName) {
|
||||
$this->soundName = (string)$soundName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Control
|
||||
*
|
||||
* @param Control $control Action Control
|
||||
* @return static
|
||||
*/
|
||||
public function setControl(Control $control) {
|
||||
$control->checkId();
|
||||
if ($control instanceof Scriptable) {
|
||||
$control->setScriptEvents(true);
|
||||
}
|
||||
$this->control = $control;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the sound variant
|
||||
*
|
||||
* @param int $variant Sound variant
|
||||
* @return static
|
||||
*/
|
||||
public function setVariant($variant) {
|
||||
$this->variant = (int)$variant;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the volume
|
||||
*
|
||||
* @param float $volume Sound volume
|
||||
* @return static
|
||||
*/
|
||||
public function setVolume($volume) {
|
||||
$this->volume = (float)$volume;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the label name
|
||||
*
|
||||
* @param string $labelName Script Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setLabelName($labelName) {
|
||||
$this->labelName = (string)$labelName;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
$script->appendGenericScriptLabel($this->labelName, $this->getScriptText());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getScriptText() {
|
||||
if ($this->control) {
|
||||
// Control event
|
||||
$controlId = Builder::escapeText($this->control->getId(), true);
|
||||
$scriptText = "
|
||||
if (Event.Control.ControlId == {$controlId}) {
|
||||
PlayUiSound(CMlScriptIngame::EUISound::{$this->soundName}, {$this->variant}, {$this->volume});
|
||||
}";
|
||||
} else {
|
||||
// Other
|
||||
$scriptText = "
|
||||
PlayUiSound(CMlScriptIngame::EUISound::{$this->soundName}, {$this->variant}, {$this->volume});";
|
||||
}
|
||||
return $scriptText;
|
||||
}
|
||||
}
|
@ -1,226 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script\Features;
|
||||
|
||||
use FML\Controls\Entry;
|
||||
use FML\Controls\Label;
|
||||
use FML\Script\Builder;
|
||||
use FML\Script\Script;
|
||||
use FML\Script\ScriptInclude;
|
||||
use FML\Script\ScriptLabel;
|
||||
|
||||
/**
|
||||
* Script Feature for creating a ValuePicker behavior
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ValuePickerFeature extends ScriptFeature {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const FUNCTION_UPDATE_PICKER_VALUE = 'FML_UpdatePickerValue';
|
||||
const VAR_PICKER_VALUES = 'FML_Picker_Values';
|
||||
const VAR_PICKER_DEFAULT_VALUE = 'FML_Picker_Default_Value';
|
||||
const VAR_PICKER_ENTRY_ID = 'FML_Picker_EntryId';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
/** @var Label $label */
|
||||
protected $label = null;
|
||||
/** @var Entry $entry */
|
||||
protected $entry = null;
|
||||
protected $values = array();
|
||||
protected $default = null;
|
||||
|
||||
/**
|
||||
* Construct a new ValuePicker Feature
|
||||
*
|
||||
* @param Label $label (optional) ValuePicker Label
|
||||
* @param Entry $entry (optional) Hidden Entry
|
||||
* @param array $values (optional) Possible values
|
||||
* @param string $default (optional) Default value
|
||||
*/
|
||||
public function __construct(Label $label = null, Entry $entry = null, array $values = array(), $default = null) {
|
||||
if (!is_null($label)) {
|
||||
$this->setLabel($label);
|
||||
}
|
||||
if (!is_null($entry)) {
|
||||
$this->setEntry($entry);
|
||||
}
|
||||
if (!empty($values)) {
|
||||
$this->setValues($values);
|
||||
}
|
||||
if (!is_null($default)) {
|
||||
$this->setDefault($default);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the ValuePicker Label
|
||||
*
|
||||
* @param Label $label ValuePicker Label
|
||||
* @return static
|
||||
*/
|
||||
public function setLabel(Label $label) {
|
||||
$this->label = $label->checkId()->setScriptEvents(true);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ValuePicker Label
|
||||
*
|
||||
* @return \FML\Controls\Label
|
||||
*/
|
||||
public function getLabel() {
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the hidden Entry
|
||||
*
|
||||
* @param Entry $entry Hidden Entry
|
||||
* @return static
|
||||
*/
|
||||
public function setEntry(Entry $entry) {
|
||||
$this->entry = $entry->checkId();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the hidden Entry
|
||||
*
|
||||
* @return \FML\Controls\Entry
|
||||
*/
|
||||
public function getEntry() {
|
||||
return $this->entry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the possible values
|
||||
*
|
||||
* @param array $values Possible values
|
||||
* @return static
|
||||
*/
|
||||
public function setValues(array $values) {
|
||||
$this->values = array();
|
||||
foreach ($values as $value) {
|
||||
array_push($this->values, (string)$value);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the default value
|
||||
*
|
||||
* @param string $default Default value
|
||||
* @return static
|
||||
*/
|
||||
public function setDefault($default) {
|
||||
$this->default = (string)$default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default value
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDefault() {
|
||||
if ($this->default) {
|
||||
return $this->default;
|
||||
}
|
||||
if (!empty($this->values)) {
|
||||
return reset($this->values);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \FML\Script\Features\ScriptFeature::prepare()
|
||||
*/
|
||||
public function prepare(Script $script) {
|
||||
if ($this->label) {
|
||||
$script->setScriptInclude(ScriptInclude::TEXTLIB);
|
||||
$script->addScriptFunction(self::FUNCTION_UPDATE_PICKER_VALUE, $this->buildUpdatePickerValueFunction());
|
||||
$script->appendGenericScriptLabel(ScriptLabel::ONINIT, $this->buildInitScriptText(), true);
|
||||
$script->appendGenericScriptLabel(ScriptLabel::MOUSECLICK, $this->buildClickScriptText());
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the function text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildUpdatePickerValueFunction() {
|
||||
return "
|
||||
Void " . self::FUNCTION_UPDATE_PICKER_VALUE . "(CMlLabel _Label) {
|
||||
declare " . self::VAR_PICKER_VALUES . " as Values for _Label = Text[];
|
||||
declare NewValueIndex = -1;
|
||||
if (Values.exists(_Label.Value)) {
|
||||
declare ValueIndex = Values.keyof(_Label.Value);
|
||||
ValueIndex += 1;
|
||||
if (Values.existskey(ValueIndex)) {
|
||||
NewValueIndex = ValueIndex;
|
||||
} else {
|
||||
NewValueIndex = 0;
|
||||
}
|
||||
}
|
||||
declare NewValue = " . Builder::EMPTY_STRING . ";
|
||||
if (Values.existskey(NewValueIndex)) {
|
||||
NewValue = Values[NewValueIndex];
|
||||
} else {
|
||||
declare " . self::VAR_PICKER_DEFAULT_VALUE . " as Default for _Label = " . Builder::EMPTY_STRING . ";
|
||||
NewValue = Default;
|
||||
}
|
||||
_Label.Value = NewValue;
|
||||
declare " . self::VAR_PICKER_ENTRY_ID . " as EntryId for _Label = " . Builder::EMPTY_STRING . ";
|
||||
if (EntryId != " . Builder::EMPTY_STRING . ") {
|
||||
declare Entry <=> (Page.GetFirstChild(EntryId) as CMlEntry);
|
||||
Entry.Value = NewValue;
|
||||
}
|
||||
}";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the init script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildInitScriptText() {
|
||||
$labelId = $this->label->getId(true, true);
|
||||
$entryId = '""';
|
||||
if ($this->entry) {
|
||||
$entryId = $this->entry->getId(true, true);
|
||||
}
|
||||
$values = Builder::getArray($this->values);
|
||||
$default = Builder::escapeText($this->getDefault(), true);
|
||||
return "
|
||||
declare Label_Picker <=> (Page.GetFirstChild({$labelId}) as CMlLabel);
|
||||
declare Text[] " . self::VAR_PICKER_VALUES . " as Values for Label_Picker;
|
||||
Values = {$values};
|
||||
declare Text " . self::VAR_PICKER_DEFAULT_VALUE . " as Default for Label_Picker;
|
||||
Default = {$default};
|
||||
declare Text " . self::VAR_PICKER_ENTRY_ID . " as EntryId for Label_Picker;
|
||||
EntryId = {$entryId};
|
||||
" . self::FUNCTION_UPDATE_PICKER_VALUE . "(Label_Picker);
|
||||
";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the script text for Label clicks
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function buildClickScriptText() {
|
||||
$labelId = $this->label->getId(true, true);
|
||||
return "
|
||||
if (Event.ControlId == {$labelId}) {
|
||||
declare Label_Picker <=> (Event.Control as CMlLabel);
|
||||
" . self::FUNCTION_UPDATE_PICKER_VALUE . "(Label_Picker);
|
||||
}";
|
||||
}
|
||||
}
|
@ -1,313 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
use FML\Script\Features\ScriptFeature;
|
||||
|
||||
/**
|
||||
* Class representing the ManiaLink Script
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Script {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const TICKINTERVAL = 250;
|
||||
const VAR_ScriptStart = 'FML_ScriptStart';
|
||||
const VAR_LoopCounter = 'FML_LoopCounter';
|
||||
const VAR_LastTick = 'FML_LastTick';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'script';
|
||||
protected $features = array();
|
||||
protected $includes = array();
|
||||
protected $constants = array();
|
||||
protected $functions = array();
|
||||
protected $customLabels = array();
|
||||
protected $genericLabels = array();
|
||||
|
||||
/**
|
||||
* Set a Script Include
|
||||
*
|
||||
* @param string $file Include file
|
||||
* @param string $namespace Include namespace
|
||||
* @return static
|
||||
*/
|
||||
public function setScriptInclude($file, $namespace = null) {
|
||||
if (is_object($file) && ($file instanceof ScriptInclude)) {
|
||||
$scriptInclude = $file;
|
||||
} else {
|
||||
$scriptInclude = new ScriptInclude($file, $namespace);
|
||||
}
|
||||
$this->includes[$scriptInclude->getNamespace()] = $scriptInclude;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Script Constant
|
||||
*
|
||||
* @param string $name Constant name
|
||||
* @param string $value Constant value
|
||||
* @return static
|
||||
*/
|
||||
public function addScriptConstant($name, $value = null) {
|
||||
if (is_object($name) && ($name instanceof ScriptConstant)) {
|
||||
$scriptConstant = $name;
|
||||
} else {
|
||||
$scriptConstant = new ScriptConstant($name, $value);
|
||||
}
|
||||
if (!in_array($scriptConstant, $this->constants)) {
|
||||
array_push($this->constants, $scriptConstant);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Script Function
|
||||
*
|
||||
* @param string $name Function name
|
||||
* @param string $text Function text
|
||||
* @return static
|
||||
*/
|
||||
public function addScriptFunction($name, $text = null) {
|
||||
if (is_object($name) && ($name instanceof ScriptFunction)) {
|
||||
$scriptFunction = $name;
|
||||
} else {
|
||||
$scriptFunction = new ScriptFunction($name, $text);
|
||||
}
|
||||
if (!in_array($scriptFunction, $this->functions)) {
|
||||
array_push($this->functions, $scriptFunction);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a custom Script text
|
||||
*
|
||||
* @param string $name Label name
|
||||
* @param string $text Script text
|
||||
* @return static
|
||||
*/
|
||||
public function addCustomScriptLabel($name, $text = null) {
|
||||
if (is_object($name) && ($name instanceof ScriptLabel)) {
|
||||
$scriptLabel = $name;
|
||||
} else {
|
||||
$scriptLabel = new ScriptLabel($name, $text);
|
||||
}
|
||||
array_push($this->customLabels, $scriptLabel);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a generic Script text for the next rendering
|
||||
*
|
||||
* @param string $name Label name
|
||||
* @param string $text Script text
|
||||
* @param bool $isolated (optional) Whether to isolate the Label Script
|
||||
* @return static
|
||||
*/
|
||||
public function appendGenericScriptLabel($name, $text = null, $isolated = false) {
|
||||
if (is_object($name) && ($name instanceof ScriptLabel)) {
|
||||
$scriptLabel = $name;
|
||||
} else {
|
||||
$scriptLabel = new ScriptLabel($name, $text, $isolated);
|
||||
}
|
||||
array_push($this->genericLabels, $scriptLabel);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all generic Script texts
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function resetGenericScriptLabels() {
|
||||
$this->genericLabels = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a Script Feature
|
||||
*
|
||||
* @param ScriptFeature $feature Script Feature
|
||||
* @return static
|
||||
*/
|
||||
public function addFeature(ScriptFeature $feature) {
|
||||
if (!in_array($feature, $this->features, true)) {
|
||||
array_push($this->features, $feature);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the given Script Feature
|
||||
*
|
||||
* @param ScriptFeature $scriptFeature Script Feature to load
|
||||
* @return static
|
||||
*/
|
||||
public function loadFeature(ScriptFeature $scriptFeature) {
|
||||
$scriptFeature->prepare($this);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the given Script Features
|
||||
*
|
||||
* @param ScriptFeature[] $scriptFeatures Script Features to load
|
||||
* @return static
|
||||
*/
|
||||
public function loadFeatures(array $scriptFeatures) {
|
||||
foreach ($scriptFeatures as $scriptFeature) {
|
||||
$this->loadFeature($scriptFeature);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the Script has content so that it needs to be rendered
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function needsRendering() {
|
||||
if ($this->features || $this->customLabels || $this->genericLabels) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the complete Script text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function buildScriptText() {
|
||||
$scriptText = PHP_EOL;
|
||||
$scriptText .= $this->getHeaderComment();
|
||||
$scriptText .= $this->getIncludes();
|
||||
$scriptText .= $this->getConstants();
|
||||
$scriptText .= $this->getFunctions();
|
||||
$scriptText .= $this->getLabels();
|
||||
$scriptText .= $this->getMainFunction();
|
||||
return $scriptText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the Script XML element
|
||||
*
|
||||
* @param \DOMDocument $domDocument DOMDocument for which the XML element should be created
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$this->loadFeatures($this->features);
|
||||
$scriptXml = $domDocument->createElement($this->tagName);
|
||||
$scriptText = $this->buildScriptText();
|
||||
$scriptComment = $domDocument->createComment($scriptText);
|
||||
$scriptXml->appendChild($scriptComment);
|
||||
return $scriptXml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the header comment
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getHeaderComment() {
|
||||
$headerComment = '/****************************************************
|
||||
* FancyManiaLinks v' . FML_VERSION . ' by steeffeen *
|
||||
* http://github.com/steeffeen/FancyManiaLinks *
|
||||
****************************************************/
|
||||
|
||||
';
|
||||
return $headerComment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Includes text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getIncludes() {
|
||||
$includesText = implode(PHP_EOL, $this->includes);
|
||||
return $includesText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Constants text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getConstants() {
|
||||
$constantsText = implode(PHP_EOL, $this->constants);
|
||||
return $constantsText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Functions text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getFunctions() {
|
||||
$functionsText = implode(PHP_EOL, $this->functions);
|
||||
return $functionsText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Labels text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getLabels() {
|
||||
$customLabelsText = implode(PHP_EOL, $this->customLabels);
|
||||
$genericLabelsText = implode(PHP_EOL, $this->genericLabels);
|
||||
return $customLabelsText . $genericLabelsText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the main function text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getMainFunction() {
|
||||
$mainFunction = '
|
||||
Void FML_Dummy() {}
|
||||
main() {
|
||||
declare ' . self::VAR_ScriptStart . ' = Now;
|
||||
+++' . ScriptLabel::ONINIT . '+++
|
||||
declare ' . self::VAR_LoopCounter . ' = 0;
|
||||
declare ' . self::VAR_LastTick . ' = 0;
|
||||
while (True) {
|
||||
yield;
|
||||
foreach (Event in PendingEvents) {
|
||||
switch (Event.Type) {
|
||||
case CMlEvent::Type::EntrySubmit: {
|
||||
+++' . ScriptLabel::ENTRYSUBMIT . '+++
|
||||
}
|
||||
case CMlEvent::Type::KeyPress: {
|
||||
+++' . ScriptLabel::KEYPRESS . '+++
|
||||
}
|
||||
case CMlEvent::Type::MouseClick: {
|
||||
+++' . ScriptLabel::MOUSECLICK . '+++
|
||||
}
|
||||
case CMlEvent::Type::MouseOut: {
|
||||
+++' . ScriptLabel::MOUSEOUT . '+++
|
||||
}
|
||||
case CMlEvent::Type::MouseOver: {
|
||||
+++' . ScriptLabel::MOUSEOVER . '+++
|
||||
}
|
||||
}
|
||||
}
|
||||
+++' . ScriptLabel::LOOP . '+++
|
||||
' . self::VAR_LoopCounter . ' += 1;
|
||||
if (' . self::VAR_LastTick . ' + ' . self::TICKINTERVAL . ' > Now) continue;
|
||||
+++' . ScriptLabel::TICK . '+++
|
||||
' . self::VAR_LastTick . ' = Now;
|
||||
}
|
||||
}';
|
||||
return $mainFunction;
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
/**
|
||||
* Class representing a Constant of the ManiaLink Script
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ScriptConstant {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $name = null;
|
||||
protected $value = null;
|
||||
|
||||
/**
|
||||
* Construct a new Script Constant
|
||||
*
|
||||
* @param string $name (optional) Constant name
|
||||
* @param string $value (optional) Constant value
|
||||
*/
|
||||
public function __construct($name = null, $value = null) {
|
||||
$this->setName($name);
|
||||
$this->setValue($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name
|
||||
*
|
||||
* @param string $name Constant name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value
|
||||
*
|
||||
* @param string $value Constant value
|
||||
* @return static
|
||||
*/
|
||||
public function setValue($value) {
|
||||
$this->value = $value;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the Script Constant text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return Builder::getConstant($this->name, $this->value);
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
/**
|
||||
* Class representing a Function of the ManiaLink Script
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ScriptFunction {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $name = null;
|
||||
protected $text = null;
|
||||
|
||||
/**
|
||||
* Construct a new Script Function
|
||||
*
|
||||
* @param string $name (optional) Function name
|
||||
* @param string $text (optional) Function text
|
||||
*/
|
||||
public function __construct($name = null, $text = null) {
|
||||
$this->setName($name);
|
||||
$this->setText($text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name
|
||||
*
|
||||
* @param string $name Function name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the text
|
||||
*
|
||||
* @param string $text Function text
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Script Function text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->text;
|
||||
}
|
||||
}
|
@ -1,75 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
/**
|
||||
* Class representing an Include of the ManiaLink Script
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ScriptInclude {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const MATHLIB = 'MathLib';
|
||||
const TEXTLIB = 'TextLib';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $file = null;
|
||||
protected $namespace = null;
|
||||
|
||||
/**
|
||||
* Construct a new Script Include
|
||||
*
|
||||
* @param string $file (optional) Include file
|
||||
* @param string $namespace (optional) Include namespace
|
||||
*/
|
||||
public function __construct($file = null, $namespace = null) {
|
||||
$this->setFile($file);
|
||||
$this->setNamespace($namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the file
|
||||
*
|
||||
* @param string $file Include file
|
||||
* @return static
|
||||
*/
|
||||
public function setFile($file) {
|
||||
$this->file = (string)$file;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the namespace
|
||||
*
|
||||
* @param string $namespace Include namespace
|
||||
* @return static
|
||||
*/
|
||||
public function setNamespace($namespace) {
|
||||
$this->namespace = (string)$namespace;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the namespace
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNamespace() {
|
||||
return $this->namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the Script Include text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return Builder::getInclude($this->file, $this->namespace);
|
||||
}
|
||||
}
|
@ -1,108 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Script;
|
||||
|
||||
/**
|
||||
* Class representing a part of the ManiaLink Script
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class ScriptLabel {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const ONINIT = 'FML_OnInit';
|
||||
const LOOP = 'FML_Loop';
|
||||
const TICK = 'FML_Tick';
|
||||
const ENTRYSUBMIT = 'FML_EntrySubmit';
|
||||
const KEYPRESS = 'FML_KeyPress';
|
||||
const MOUSECLICK = 'FML_MouseClick';
|
||||
const MOUSEOUT = 'FML_MouseOut';
|
||||
const MOUSEOVER = 'FML_MouseOver';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $name = null;
|
||||
protected $text = null;
|
||||
protected $isolated = null;
|
||||
|
||||
/**
|
||||
* Construct a new ScriptLabel
|
||||
*
|
||||
* @param string $name (optional) Label name
|
||||
* @param string $text (optional) Script text
|
||||
* @param bool $isolated (optional) Isolate the Label Script
|
||||
*/
|
||||
public function __construct($name = self::LOOP, $text = null, $isolated = false) {
|
||||
$this->setName($name);
|
||||
$this->setText($text);
|
||||
$this->setIsolated($isolated);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the name
|
||||
*
|
||||
* @param string $name Label name
|
||||
* @return static
|
||||
*/
|
||||
public function setName($name) {
|
||||
$this->name = (string)$name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the text
|
||||
*
|
||||
* @param string $text Script text
|
||||
* @return static
|
||||
*/
|
||||
public function setText($text) {
|
||||
$this->text = (string)$text;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set isolation
|
||||
*
|
||||
* @param bool $isolated Whether the code should be isolated in an own block
|
||||
* @return static
|
||||
*/
|
||||
public function setIsolated($isolated) {
|
||||
$this->isolated = (bool)$isolated;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given label is an event label
|
||||
*
|
||||
* @param string $label Label name
|
||||
* @return bool
|
||||
*/
|
||||
public static function isEventLabel($label) {
|
||||
if (in_array($label, static::getEventLabels())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the possible event label names
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public static function getEventLabels() {
|
||||
return array(self::ENTRYSUBMIT, self::KEYPRESS, self::MOUSECLICK, self::MOUSEOUT, self::MOUSEOVER);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the full Script Label text
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function __toString() {
|
||||
return Builder::getLabelImplementationBlock($this->name, $this->text, $this->isolated);
|
||||
}
|
||||
}
|
@ -1,285 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Stylesheet;
|
||||
|
||||
// Warning: The mood class isn't fully supported yet!
|
||||
// Missing attributes: LDir1..
|
||||
|
||||
/**
|
||||
* Class representing a Stylesheet Mood
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Mood {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'mood';
|
||||
protected $lAmbient_LinearRgb = null;
|
||||
protected $cloudsRgbMinLinear = null;
|
||||
protected $cloudsRgbMaxLinear = null;
|
||||
protected $lDir0_LinearRgb = null;
|
||||
protected $lDir0_Intens = 1.;
|
||||
protected $lDir0_DirPhi = 0.;
|
||||
protected $lDir0_DirTheta = 0.;
|
||||
protected $lBall_LinearRgb = null;
|
||||
protected $lBall_Intensity = 1.;
|
||||
protected $lBall_Radius = 0.;
|
||||
protected $fogColorSrgb = null;
|
||||
protected $selfIllumColor = null;
|
||||
protected $skyGradientV_Scale = 1.;
|
||||
protected $skyGradientKeys = array();
|
||||
|
||||
/**
|
||||
* Create a new Mood object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set ambient color in which the Elements reflect the light
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setLightAmbientColor($red, $green, $blue) {
|
||||
$this->lAmbient_LinearRgb = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set minimum value for the background color range
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setCloudsColorMin($red, $green, $blue) {
|
||||
$this->cloudsRgbMinLinear = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set maximum value for the background color range
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setCloudsColorMax($red, $green, $blue) {
|
||||
$this->cloudsRgbMaxLinear = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set RGB color of light source 0
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setLight0Color($red, $green, $blue) {
|
||||
$this->lDir0_LinearRgb = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set intensity of light source 0
|
||||
*
|
||||
* @param float $intensity Light intensity
|
||||
* @return static
|
||||
*/
|
||||
public function setLight0Intensity($intensity) {
|
||||
$this->lDir0_Intens = (float)$intensity;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set phi angle of light source 0
|
||||
*
|
||||
* @param float $phiAngle Phi angle
|
||||
* @return static
|
||||
*/
|
||||
public function setLight0PhiAngle($phiAngle) {
|
||||
$this->lDir0_DirPhi = (float)$phiAngle;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set theta angle of light source 0
|
||||
*
|
||||
* @param float $thetaAngle Theta angle
|
||||
* @return static
|
||||
*/
|
||||
public function setLight0ThetaAngle($thetaAngle) {
|
||||
$this->lDir0_DirTheta = (float)$thetaAngle;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set light ball color
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setLightBallColor($red, $green, $blue) {
|
||||
$this->lBall_LinearRgb = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set light ball intensity
|
||||
*
|
||||
* @param float $intensity Light ball intensity
|
||||
* @return static
|
||||
*/
|
||||
public function setLightBallIntensity($intensity) {
|
||||
$this->lBall_Intensity = (float)$intensity;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set light ball radius
|
||||
*
|
||||
* @param float $radius Light ball radius
|
||||
* @return static
|
||||
*/
|
||||
public function setLightBallRadius($radius) {
|
||||
$this->lBall_Radius = (float)$radius;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set fog color
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setFogColor($red, $green, $blue) {
|
||||
$this->fogColorSrgb = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set self illumination color
|
||||
*
|
||||
* @param float $red Red color value
|
||||
* @param float $green Green color value
|
||||
* @param float $blue Blue color value
|
||||
* @return static
|
||||
*/
|
||||
public function setSelfIllumColor($red, $green, $blue) {
|
||||
$this->selfIllumColor = floatval($red) . ' ' . floatval($green) . ' ' . floatval($blue);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set sky gradient scale
|
||||
*
|
||||
* @param float $scale Gradient scale
|
||||
* @return static
|
||||
*/
|
||||
public function setSkyGradientScale($scale) {
|
||||
$this->skyGradientV_Scale = (float)$scale;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a sky gradient key
|
||||
*
|
||||
* @param float $gradientX Scale value
|
||||
* @param string $color Gradient color
|
||||
* @return static
|
||||
*/
|
||||
public function addSkyGradientKey($gradientX, $color) {
|
||||
$gradientX = (float)$gradientX;
|
||||
$color = (string)$color;
|
||||
$gradientKey = array('x' => $gradientX, 'color' => $color);
|
||||
array_push($this->skyGradientKeys, $gradientKey);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all sky gradient keys
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeSkyGradientKeys() {
|
||||
$this->skyGradientKeys = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the Mood XML element
|
||||
*
|
||||
* @param \DOMDocument $domDocument DOMDocument for which the Mood XML element should be rendered
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$moodXml = $domDocument->createElement($this->tagName);
|
||||
if ($this->lAmbient_LinearRgb) {
|
||||
$moodXml->setAttribute('LAmbient_LinearRgb', $this->lAmbient_LinearRgb);
|
||||
}
|
||||
if ($this->cloudsRgbMinLinear) {
|
||||
$moodXml->setAttribute('CloudsRgbMinLinear', $this->cloudsRgbMinLinear);
|
||||
}
|
||||
if ($this->cloudsRgbMaxLinear) {
|
||||
$moodXml->setAttribute('CloudsRgbMaxLinear', $this->cloudsRgbMaxLinear);
|
||||
}
|
||||
if ($this->lDir0_LinearRgb) {
|
||||
$moodXml->setAttribute('LDir0_LinearRgb', $this->lDir0_LinearRgb);
|
||||
}
|
||||
if ($this->lDir0_Intens) {
|
||||
$moodXml->setAttribute('LDir0_Intens', $this->lDir0_Intens);
|
||||
}
|
||||
if ($this->lDir0_DirPhi) {
|
||||
$moodXml->setAttribute('LDir0_DirPhi', $this->lDir0_DirPhi);
|
||||
}
|
||||
if ($this->lDir0_DirTheta) {
|
||||
$moodXml->setAttribute('LDir0_DirTheta', $this->lDir0_DirTheta);
|
||||
}
|
||||
if ($this->lBall_LinearRgb) {
|
||||
$moodXml->setAttribute('LBall_LinearRgb', $this->lBall_LinearRgb);
|
||||
}
|
||||
if ($this->lBall_Intensity) {
|
||||
$moodXml->setAttribute('LBall_Intens', $this->lBall_Intensity);
|
||||
}
|
||||
if ($this->lBall_Radius) {
|
||||
$moodXml->setAttribute('LBall_Radius', $this->lBall_Radius);
|
||||
}
|
||||
if ($this->fogColorSrgb) {
|
||||
$moodXml->setAttribute('FogColorSrgb', $this->fogColorSrgb);
|
||||
}
|
||||
if ($this->selfIllumColor) {
|
||||
$moodXml->setAttribute('SelfIllumColor', $this->selfIllumColor);
|
||||
}
|
||||
if ($this->skyGradientV_Scale) {
|
||||
$moodXml->setAttribute('SkyGradientV_Scale', $this->skyGradientV_Scale);
|
||||
}
|
||||
if ($this->skyGradientKeys) {
|
||||
$skyGradientXml = $domDocument->createElement('skygradient');
|
||||
$moodXml->appendChild($skyGradientXml);
|
||||
foreach ($this->skyGradientKeys as $gradientKey) {
|
||||
$keyXml = $domDocument->createElement('key');
|
||||
$skyGradientXml->appendChild($keyXml);
|
||||
$keyXml->setAttribute('x', $gradientKey['x']);
|
||||
$keyXml->setAttribute('color', $gradientKey['color']);
|
||||
}
|
||||
}
|
||||
return $moodXml;
|
||||
}
|
||||
}
|
@ -1,247 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Stylesheet;
|
||||
|
||||
use FML\UniqueID;
|
||||
|
||||
/**
|
||||
* Class representing a Style3d
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 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';
|
||||
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'style3d';
|
||||
protected $styleId = null;
|
||||
protected $model = self::MODEL_Box;
|
||||
protected $thickness = null;
|
||||
protected $color = null;
|
||||
protected $focusColor = null;
|
||||
protected $lightColor = null;
|
||||
protected $focusLightColor = null;
|
||||
protected $yOffset = null;
|
||||
protected $focusYOffset = null;
|
||||
protected $zOffset = null;
|
||||
protected $focusZOffset = null;
|
||||
|
||||
/**
|
||||
* Create a new Style3d object
|
||||
*
|
||||
* @param string $styleId (optional) Style id
|
||||
* @return static
|
||||
*/
|
||||
public static function create($styleId = null) {
|
||||
return new static($styleId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new Style3d object
|
||||
*
|
||||
* @param string $styleId (optional) Style id
|
||||
*/
|
||||
public function __construct($styleId = null) {
|
||||
if (!is_null($styleId)) {
|
||||
$this->setId($styleId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set style id
|
||||
*
|
||||
* @param string $styleId Style id
|
||||
* @return static
|
||||
*/
|
||||
public function setId($styleId) {
|
||||
$this->styleId = (string)$styleId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check for id and assign one if necessary
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function checkId() {
|
||||
if (!$this->styleId) {
|
||||
$this->setId(new UniqueID());
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get style id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getId() {
|
||||
return $this->styleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set model
|
||||
*
|
||||
* @param string $model Style model
|
||||
* @return static
|
||||
*/
|
||||
public function setModel($model) {
|
||||
$this->model = (string)$model;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set thickness
|
||||
*
|
||||
* @param float $thickness Style thickness
|
||||
* @return static
|
||||
*/
|
||||
public function setThickness($thickness) {
|
||||
$this->thickness = (float)$thickness;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set color
|
||||
*
|
||||
* @param string $color Style color
|
||||
* @return static
|
||||
*/
|
||||
public function setColor($color) {
|
||||
$this->color = (string)$color;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus color
|
||||
*
|
||||
* @param string $focusColor Style focus color
|
||||
* @return static
|
||||
*/
|
||||
public function setFocusColor($focusColor) {
|
||||
$this->focusColor = (string)$focusColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set light color
|
||||
*
|
||||
* @param string $lightColor Light color
|
||||
* @return static
|
||||
*/
|
||||
public function setLightColor($lightColor) {
|
||||
$this->lightColor = (string)$lightColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus light color
|
||||
*
|
||||
* @param string $focusLightColor Focus light color
|
||||
* @return static
|
||||
*/
|
||||
public function setFocusLightColor($focusLightColor) {
|
||||
$this->focusLightColor = (string)$focusLightColor;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Y-offset
|
||||
*
|
||||
* @param float $yOffset Y-offset
|
||||
* @return static
|
||||
*/
|
||||
public function setYOffset($yOffset) {
|
||||
$this->yOffset = (float)$yOffset;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus Y-offset
|
||||
*
|
||||
* @param float $focusYOffset Focus Y-offset
|
||||
* @return static
|
||||
*/
|
||||
public function setFocusYOffset($focusYOffset) {
|
||||
$this->focusYOffset = (float)$focusYOffset;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Z-offset
|
||||
*
|
||||
* @param float $zOffset Z-offset
|
||||
* @return static
|
||||
*/
|
||||
public function setZOffset($zOffset) {
|
||||
$this->zOffset = (float)$zOffset;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set focus Z-offset
|
||||
*
|
||||
* @param float $focusZOffset Focus Z-offset
|
||||
* @return static
|
||||
*/
|
||||
public function setFocusZOffset($focusZOffset) {
|
||||
$this->focusZOffset = (float)$focusZOffset;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the Style3d XML element
|
||||
*
|
||||
* @param \DOMDocument $domDocument DOMDocument for which the Style3d XML element should be rendered
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$style3dXml = $domDocument->createElement($this->tagName);
|
||||
$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;
|
||||
}
|
||||
}
|
@ -1,100 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Stylesheet;
|
||||
|
||||
/**
|
||||
* Class representing a ManiaLink Stylesheet
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
class Stylesheet {
|
||||
/*
|
||||
* Protected properties
|
||||
*/
|
||||
protected $tagName = 'stylesheet';
|
||||
/** @var Style3d[] $styles3d */
|
||||
protected $styles3d = array();
|
||||
/** @var Mood $mood */
|
||||
protected $mood = null;
|
||||
|
||||
/**
|
||||
* Create a new Stylesheet object
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public static function create() {
|
||||
return new static();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new Style3d
|
||||
*
|
||||
* @param Style3d $style3d Style3d object
|
||||
* @return static
|
||||
*/
|
||||
public function addStyle3d(Style3d $style3d) {
|
||||
if (!in_array($style3d, $this->styles3d, true)) {
|
||||
array_push($this->styles3d, $style3d);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all Style3ds
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeStyles() {
|
||||
$this->styles3d = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the Mood object of the Stylesheet
|
||||
*
|
||||
* @param Mood $mood Mood object
|
||||
* @return static
|
||||
*/
|
||||
public function setMood(Mood $mood) {
|
||||
$this->mood = $mood;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Mood object
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the Mood object should be created if it's not set
|
||||
* @return \FML\Stylesheet\Mood
|
||||
*/
|
||||
public function getMood($createIfEmpty = true) {
|
||||
if (!$this->mood && $createIfEmpty) {
|
||||
$this->setMood(new Mood());
|
||||
}
|
||||
return $this->mood;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the Stylesheet XML element
|
||||
*
|
||||
* @param \DOMDocument $domDocument DOMDocument for which the Stylesheet XML element should be rendered
|
||||
* @return \DOMElement
|
||||
*/
|
||||
public function render(\DOMDocument $domDocument) {
|
||||
$stylesheetXml = $domDocument->createElement($this->tagName);
|
||||
if ($this->styles3d) {
|
||||
$stylesXml = $domDocument->createElement('frame3dstyles');
|
||||
$stylesheetXml->appendChild($stylesXml);
|
||||
foreach ($this->styles3d as $style3d) {
|
||||
$style3dXml = $style3d->render($domDocument);
|
||||
$stylesXml->appendChild($style3dXml);
|
||||
}
|
||||
}
|
||||
if ($this->mood) {
|
||||
$moodXml = $this->mood->render($domDocument);
|
||||
$stylesheetXml->appendChild($moodXml);
|
||||
}
|
||||
return $stylesheetXml;
|
||||
}
|
||||
}
|
@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Types;
|
||||
|
||||
/**
|
||||
* Interface for Elements that support the action attribute
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
interface Actionable {
|
||||
/*
|
||||
* Constants
|
||||
*/
|
||||
const ACTION_0 = '0';
|
||||
const ACTION_BACK = 'back';
|
||||
const ACTION_ENTER = 'enter';
|
||||
const ACTION_HOME = 'home';
|
||||
const ACTION_MENU_SOLO = 'menu_solo';
|
||||
const ACTION_MENU_COMPETITIONS = 'menu_competitions';
|
||||
const ACTION_MENU_LOCAL = 'menu_local';
|
||||
const ACTION_MENU_INTERNET = 'menu_internet';
|
||||
const ACTION_MENU_EDITORS = 'menu_editors';
|
||||
const ACTION_MENU_PROFILE = 'menu_profile';
|
||||
const ACTION_QUIT = 'quit';
|
||||
const ACTION_QUITSERVER = 'maniaplanet:quitserver';
|
||||
const ACTION_SAVEREPLAY = 'maniaplanet:savereplay';
|
||||
const ACTION_TOGGLESPEC = 'maniaplanet:togglespec';
|
||||
const ACTIONKEY_F5 = 1;
|
||||
const ACTIONKEY_F6 = 2;
|
||||
const ACTIONKEY_F7 = 3;
|
||||
const ACTIONKEY_F8 = 4;
|
||||
|
||||
/**
|
||||
* Set action
|
||||
*
|
||||
* @param string $action Action name
|
||||
* @return static
|
||||
*/
|
||||
public function setAction($action);
|
||||
|
||||
/**
|
||||
* Get the assigned action
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAction();
|
||||
|
||||
/**
|
||||
* Set action key
|
||||
*
|
||||
* @param int $actionKey Action key
|
||||
* @return static
|
||||
*/
|
||||
public function setActionKey($actionKey);
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Types;
|
||||
|
||||
/**
|
||||
* Interface for Elements with background color attribute
|
||||
*
|
||||
* @author steeffeen
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
interface BgColorable {
|
||||
|
||||
/**
|
||||
* Set background color
|
||||
*
|
||||
* @param string $bgColor Background color
|
||||
* @return static
|
||||
*/
|
||||
public function setBgColor($bgColor);
|
||||
}
|
@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Types;
|
||||
|
||||
use FML\Elements\Format;
|
||||
|
||||
/**
|
||||
* Interface for Element being able to contain other Controls
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
interface Container {
|
||||
|
||||
/**
|
||||
* Add a new child Element
|
||||
*
|
||||
* @param Renderable $child Child Control to add
|
||||
* @return static
|
||||
*/
|
||||
public function add(Renderable $child);
|
||||
|
||||
/**
|
||||
* Remove all children
|
||||
*
|
||||
* @return static
|
||||
*/
|
||||
public function removeChildren();
|
||||
|
||||
/**
|
||||
* Set the Format object of the Container
|
||||
*
|
||||
* @param Format $format New Format object
|
||||
* @return static
|
||||
*/
|
||||
public function setFormat(Format $format);
|
||||
|
||||
/**
|
||||
* Get the Format object of the Container
|
||||
*
|
||||
* @param bool $createIfEmpty (optional) Whether the Format object should be created if it's not set
|
||||
* @return \FML\Elements\Format
|
||||
*/
|
||||
public function getFormat($createIfEmpty = true);
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Types;
|
||||
|
||||
/**
|
||||
* Interface for Elements with url attributes
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
interface Linkable {
|
||||
|
||||
/**
|
||||
* Set url
|
||||
*
|
||||
* @param string $url Link url
|
||||
* @return static
|
||||
*/
|
||||
public function setUrl($url);
|
||||
|
||||
/**
|
||||
* Set url id to use from Dico
|
||||
*
|
||||
* @param string $urlId Url id
|
||||
* @return static
|
||||
*/
|
||||
public function setUrlId($urlId);
|
||||
|
||||
/**
|
||||
* Set manialink
|
||||
*
|
||||
* @param string $manialink Manialink name
|
||||
* @return static
|
||||
*/
|
||||
public function setManialink($manialink);
|
||||
|
||||
/**
|
||||
* Set manialink id to use from Dico
|
||||
*
|
||||
* @param string $manialinkId Manialink id
|
||||
* @return static
|
||||
*/
|
||||
public function setManialinkId($manialinkId);
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace FML\Types;
|
||||
|
||||
/**
|
||||
* Interface for Elements with autonewline attribute
|
||||
*
|
||||
* @author steeffeen <mail@steeffeen.com>
|
||||
* @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder
|
||||
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
|
||||
*/
|
||||
interface NewLineable {
|
||||
|
||||
/**
|
||||
* Set auto new line
|
||||
*
|
||||
* @param bool $autoNewLine Whether the Control should insert new lines automatically
|
||||
* @return static
|
||||
*/
|
||||
public function setAutoNewLine($autoNewLine);
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user