Huge FML Update

This commit is contained in:
Steffen Schröder 2013-12-31 02:55:19 +01:00
parent 34be67569f
commit 5447588749
67 changed files with 1783 additions and 1898 deletions

View File

@ -3,16 +3,17 @@
namespace FML\Controls; namespace FML\Controls;
/** /**
* Class representing audio (CMlMediaPlayer) * Class representing Audio (CMlMediaPlayer)
* *
* @author steeffeen * @author steeffeen
*/ */
class Audio extends Control implements Playable, Scriptable { class Audio extends Control implements Playable, Scriptable {
/** /**
* Construct a new audio control * Construct a new Audio Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);

View File

@ -1,274 +1,287 @@
<?php <?php
namespace FML\Controls; namespace FML\Controls;
use FML\Types\Renderable; use FML\Types\Renderable;
/** /**
* Class representing CMlControl * Class representing CMlControl
* *
* @author steeffeen * @author steeffeen
*/ */
abstract class Control implements Renderable { abstract class Control implements Renderable {
/** /**
* Constants * Constants
*/ */
const CENTER = 'center'; const CENTER = 'center';
const CENTER2 = 'center2'; const CENTER2 = 'center2';
const TOP = 'top'; const TOP = 'top';
const RIGHT = 'right'; const RIGHT = 'right';
const BOTTOM = 'bottom'; const BOTTOM = 'bottom';
const LEFT = 'left'; const LEFT = 'left';
/** /**
* Protected properties * Protected Properties
*/ */
protected $tagName = 'control'; protected $tagName = 'control';
protected $id = ''; protected $id = '';
protected $x = 0.; protected $x = 0.;
protected $y = 0.; protected $y = 0.;
protected $z = 0.; protected $z = 0.;
protected $width = -1.; protected $width = -1.;
protected $height = -1.; protected $height = -1.;
protected $hAlign = self::CENTER; protected $hAlign = self::CENTER;
protected $vAlign = self::CENTER2; protected $vAlign = self::CENTER2;
protected $scale = 1.; protected $scale = 1.;
protected $hidden = 0; protected $hidden = 0;
protected $classes = array(); protected $classes = array();
/** /**
* Construct a new control * Construct a new Control
* *
* @param string $id * @param string $id Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
if ($id !== null) { if ($id !== null) {
$this->setId($id); $this->setId($id);
} }
} }
/** /**
* Get control id * Get Control Id
* *
* @return string * @return string
*/ */
public function getId() { public function getId() {
return $this->id; return $this->id;
} }
/** /**
* Set control id * Set Control Id
* *
* @param string $id * @param string $id Control Id
* @return \FML\Controls\Control * @return \FML\Controls\Control
*/ */
public function setId($id) { public function setId($id) {
$this->id = $id; $this->id = $id;
return $this; return $this;
} }
/** /**
* Assign an unique id if necessary * Check Id for dangerous Characters and assign an unique Id if necessary
* *
* @return \FML\Controls\Control * @return \FML\Controls\Control
*/ */
public function assignId() { public function checkId() {
if ($this->getId()) { if (!$this->getId()) {
return $this; $this->setId(uniqid());
} return $this;
$this->setId(uniqid()); }
return $this; $dangerousCharacters = array(' ', ' ', '.', '|', '-', PHP_EOL);
} $idCharacters = str_split($this->getId());
$danger = false;
/** foreach ($idCharacters as $character) {
* Set x position if (!in_array($character, $dangerousCharacters)) continue;
* $danger = true;
* @param float $x break;
* @return \FML\Controls\Control }
*/ if ($danger) {
public function setX($x) { trigger_error("Please don't use special Characters in Ids, they might cause Problems! (I stripped them for You.)");
$this->x = $x; $id = str_ireplace($dangerousCharacters, '', $this->getId());
return $this; $this->setId($id);
} }
return $this;
/** }
* Set y position
* /**
* @param float $y * Set X Position
* @return \FML\Controls\Control *
*/ * @param float $x Horizontal Position
public function setY($y) { * @return \FML\Controls\Control
$this->y = $y; */
return $this; public function setX($x) {
} $this->x = $x;
return $this;
/** }
* Set z position
* /**
* @param float $z * Set Y Position
* @return \FML\Controls\Control *
*/ * @param float $y Vertical Position
public function setZ($z) { * @return \FML\Controls\Control
$this->z = $z; */
return $this; public function setY($y) {
} $this->y = $y;
return $this;
/** }
* Set position
* /**
* @param float $x * Set Z Position
* @param float $y *
* @param float $z * @param float $z Depth
* @return \FML\Controls\Control * @return \FML\Controls\Control
*/ */
public function setPosition($x, $y, $z = null) { public function setZ($z) {
$this->setX($x); $this->z = $z;
$this->setY($y); return $this;
if ($z !== null) { }
$this->setZ($z);
} /**
return $this; * Set Control Position
} *
* @param float $x Horizontal Position
/** * @param float $y Vertical Position
* Set width * @param float $z Depth
* * @return \FML\Controls\Control
* @param float $width */
* @return \FML\Controls\Control public function setPosition($x, $y, $z = null) {
*/ $this->setX($x);
public function setWidth($width) { $this->setY($y);
$this->width = $width; if ($z !== null) {
return $this; $this->setZ($z);
} }
return $this;
/** }
* Set height
* /**
* @param float $height * Set Control Width
* @return \FML\Controls\Control *
*/ * @param float $width Control Width
public function setHeight($height) { * @return \FML\Controls\Control
$this->height = $height; */
return $this; public function setWidth($width) {
} $this->width = $width;
return $this;
/** }
* Set size
* /**
* @param float $width * Set Control Height
* @param float $height *
* @return \FML\Controls\Control * @param float $height Control Height
*/ * @return \FML\Controls\Control
public function setSize($width, $height) { */
$this->setWidth($width); public function setHeight($height) {
$this->setHeight($height); $this->height = $height;
return $this; return $this;
} }
/** /**
* Set horizontal alignment * Set Control Size
* *
* @param string $hAlign * @param float $width Control Width
* @return \FML\Controls\Control * @param float $height Control Height
*/ * @return \FML\Controls\Control
public function setHAlign($hAlign) { */
$this->hAlign = $hAlign; public function setSize($width, $height) {
return $this; $this->setWidth($width);
} $this->setHeight($height);
return $this;
/** }
* Set vertical alignment
* /**
* @param string $vAlign * Set Horizontal Alignment
* @return \FML\Controls\Control *
*/ * @param string $hAlign Horizontal Alignment
public function setVAlign($vAlign) { * @return \FML\Controls\Control
$this->vAlign = $vAlign; */
return $this; public function setHAlign($hAlign) {
} $this->hAlign = $hAlign;
return $this;
/** }
* Set horizontal and vertical alignment
* /**
* @param string $hAlign * Set Vertical Alignment
* @param string $vAlign *
* @return \FML\Controls\Control * @param string $vAlign Vertical Alignment
*/ * @return \FML\Controls\Control
public function setAlign($hAlign, $vAlign) { */
$this->setHAlign($hAlign); public function setVAlign($vAlign) {
$this->setVAlign($vAlign); $this->vAlign = $vAlign;
return $this; return $this;
} }
/** /**
* Set scale * Set Horizontal and Vertical Alignment
* *
* @param float $scale * @param string $hAlign Horizontal Alignment
* @return \FML\Controls\Control * @param string $vAlign Vertical Alignment
*/ * @return \FML\Controls\Control
public function setScale($scale) { */
$this->scale = $scale; public function setAlign($hAlign, $vAlign) {
return $this; $this->setHAlign($hAlign);
} $this->setVAlign($vAlign);
return $this;
/** }
* Set visible
* /**
* @param bool $visible * Set Control Scale
* @return \FML\Controls\Control *
*/ * @param float $scale Control Scale
public function setVisible($visible) { * @return \FML\Controls\Control
$this->hidden = ($visible ? 0 : 1); */
return $this; public function setScale($scale) {
} $this->scale = $scale;
return $this;
/** }
* Add class name
* /**
* @param string $class * Set Visibility
* @return \FML\Controls\Control *
*/ * @param bool $visible If Control should be visible
public function addClass($class) { * @return \FML\Controls\Control
array_push($this->classes, $class); */
return $this; public function setVisible($visible) {
} $this->hidden = ($visible ? 0 : 1);
return $this;
/** }
*
* @see \FML\Types\Renderable::render() /**
*/ * Add new Class Name
public function render(\DOMDocument $domDocument) { *
$xml = $domDocument->createElement($this->tagName); * @param string $class Class Name
if ($this->id) { * @return \FML\Controls\Control
$xml->setAttribute('id', $this->id); */
} public function addClass($class) {
if ($this->x !== 0. || $this->y !== 0. || $this->z !== 0.) { if (!in_array($class, $this->classes)) {
$xml->setAttribute('posn', "{$this->x} {$this->y} {$this->z}"); array_push($this->classes, $class);
} }
if ($this->width >= 0. || $this->height >= 0.) { return $this;
$xml->setAttribute('sizen', "{$this->width} {$this->height}"); }
}
if (get_class($this) !== Frame::getClass()) { /**
if ($this->hAlign) { *
$xml->setAttribute('halign', $this->hAlign); * @see \FML\Types\Renderable::render()
} */
if ($this->vAlign) { public function render(\DOMDocument $domDocument) {
$xml->setAttribute('valign', $this->vAlign); $xml = $domDocument->createElement($this->tagName);
} if ($this->id) {
} $xml->setAttribute('id', $this->id);
if ($this->scale !== 1.) { }
$xml->setAttribute('scale', $this->scale); if ($this->x !== 0. || $this->y !== 0. || $this->z !== 0.) {
} $xml->setAttribute('posn', "{$this->x} {$this->y} {$this->z}");
if ($this->hidden) { }
$xml->setAttribute('hidden', $this->hidden); if ($this->width >= 0. || $this->height >= 0.) {
} $xml->setAttribute('sizen', "{$this->width} {$this->height}");
$classes = ''; }
foreach ($this->classes as $class) { if ($this->hAlign) {
$classes .= $class . ' '; $xml->setAttribute('halign', $this->hAlign);
} }
if ($classes) { if ($this->vAlign) {
$xml->setAttribute('class', $classes); $xml->setAttribute('valign', $this->vAlign);
} }
return $xml; if ($this->scale !== 1.) {
} $xml->setAttribute('scale', $this->scale);
}
if ($this->hidden) {
$xml->setAttribute('hidden', $this->hidden);
}
$classes = '';
foreach ($this->classes as $class) {
$classes .= $class . ' ';
}
if ($classes) {
$xml->setAttribute('class', $classes);
}
return $xml;
}
} }

View File

@ -14,7 +14,7 @@ use FML\Types\TextFormatable;
*/ */
class Entry extends Control implements NewLineable, Scriptable, Styleable, TextFormatable { class Entry extends Control implements NewLineable, Scriptable, Styleable, TextFormatable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $name = ''; protected $name = '';
protected $default = null; protected $default = null;
@ -27,7 +27,7 @@ class Entry extends Control implements NewLineable, Scriptable, Styleable, TextF
protected $areaFocusColor = ''; protected $areaFocusColor = '';
/** /**
* Construct a new entry control * Construct a new Entry Control
* *
* @param string $id * @param string $id
*/ */
@ -37,9 +37,10 @@ class Entry extends Control implements NewLineable, Scriptable, Styleable, TextF
} }
/** /**
* Set name * Set Entry Name
* *
* @param string $name * @param string $name
* Entry Name
* @return \FML\Controls\Entry * @return \FML\Controls\Entry
*/ */
public function setName($name) { public function setName($name) {
@ -48,9 +49,10 @@ class Entry extends Control implements NewLineable, Scriptable, Styleable, TextF
} }
/** /**
* Set default * Set Default Value
* *
* @param string $default * @param string $default
* Default Value
* @return \FML\Controls\Entry * @return \FML\Controls\Entry
*/ */
public function setDefault($default) { public function setDefault($default) {

View File

@ -9,14 +9,15 @@ namespace FML\Controls;
*/ */
class FileEntry extends Entry { class FileEntry extends Entry {
/** /**
* Protected properties * Protected Properties
*/ */
protected $folder = ''; protected $folder = '';
/** /**
* Construct a new FileEntry control * Construct a new FileEntry Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -24,9 +25,10 @@ class FileEntry extends Entry {
} }
/** /**
* Set folder * Set Folder
* *
* @param string $folder * @param string $folder
* Base Folder
* @return \FML\Controls\FileEntry * @return \FML\Controls\FileEntry
*/ */
public function setFolder($folder) { public function setFolder($folder) {

View File

@ -12,14 +12,15 @@ use FML\Types\Renderable;
*/ */
class Frame extends Control implements Container { class Frame extends Control implements Container {
/** /**
* Protected properties * Protected Properties
*/ */
protected $children = array(); protected $children = array();
/** /**
* Construct a new frame control * Construct a new Frame Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -58,13 +59,4 @@ class Frame extends Control implements Container {
} }
return $xml; return $xml;
} }
/**
* Return class name
*
* @return string
*/
public static function getClass() {
return __CLASS__;
}
} }

View File

@ -5,21 +5,22 @@ namespace FML\Controls;
use FML\Types\Scriptable; use FML\Types\Scriptable;
/** /**
* Class representing frame3d elements (CMlFrame) * Class representing Frame3d Elements (CMlFrame)
* *
* @author steeffeen * @author steeffeen
*/ */
class Frame3d extends Frame implements Scriptable { class Frame3d extends Frame implements Scriptable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $style3d = ''; protected $style3d = '';
protected $scriptEvents = 0; protected $scriptEvents = 0;
/** /**
* Construct a new frame3d control * Construct a new Frame3d Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -29,7 +30,8 @@ class Frame3d extends Frame implements Scriptable {
/** /**
* Set style3d * Set style3d
* *
* @param string $style3d * @param string $style3d
* 3D Style
* @return \FML\Controls\Frame3d * @return \FML\Controls\Frame3d
*/ */
public function setStyle3d($style3d) { public function setStyle3d($style3d) {

View File

@ -11,7 +11,7 @@ use FML\Types\Styleable;
*/ */
class Gauge extends Control implements Styleable { class Gauge extends Control implements Styleable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $ratio = 1.; protected $ratio = 1.;
protected $grading = 1.; protected $grading = 1.;
@ -24,9 +24,10 @@ class Gauge extends Control implements Styleable {
protected $style = ''; protected $style = '';
/** /**
* Construct a new gauge control * Construct a new Gauge Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -34,9 +35,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set ratio * Set Ratio
* *
* @param float $ratio * @param float $ratio
* Ratio Value
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setRatio($ratio) { public function setRatio($ratio) {
@ -45,9 +47,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set grading * Set Grading
* *
* @param float $grading * @param float $grading
* Grading Value
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setGrading($grading) { public function setGrading($grading) {
@ -56,9 +59,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set color * Set Color
* *
* @param string $color * @param string $color
* Gauge Color
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setColor($color) { public function setColor($color) {
@ -67,9 +71,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set rotation * Set Rotation
* *
* @param float $rotation * @param float $rotation
* Gauge Rotation
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setRotation($rotation) { public function setRotation($rotation) {
@ -78,9 +83,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set centered * Set Centered
* *
* @param bool $centered * @param bool $centered
* If Gauge is centered
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setCentered($centered) { public function setCentered($centered) {
@ -89,9 +95,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set clan * Set Clan
* *
* @param int $clan * @param int $clan
* Clan number
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setClan($clan) { public function setClan($clan) {
@ -100,9 +107,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set draw background * Set Draw Background
* *
* @param bool $drawBg * @param bool $drawBg
* If Gauge Background should be drawn
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setDrawBg($drawBg) { public function setDrawBg($drawBg) {
@ -111,9 +119,10 @@ class Gauge extends Control implements Styleable {
} }
/** /**
* Set draw block background * Set Draw Block Background
* *
* @param bool $drawBlockBg * @param bool $drawBlockBg
* If Gauge Block Background should be drawn
* @return \FML\Controls\Gauge * @return \FML\Controls\Gauge
*/ */
public function setDrawBlockBg($drawBlockBg) { public function setDrawBlockBg($drawBlockBg) {
@ -124,6 +133,7 @@ class Gauge extends Control implements Styleable {
/** /**
* *
* @see \FML\Types\Styleable::setStyle() * @see \FML\Types\Styleable::setStyle()
* @return \FML\Controls\Gauge
*/ */
public function setStyle($style) { public function setStyle($style) {
$this->style = $style; $this->style = $style;

View File

@ -16,7 +16,7 @@ use FML\Types\TextFormatable;
*/ */
class Label extends Control implements Actionable, Linkable, NewLineable, Scriptable, Styleable, TextFormatable { class Label extends Control implements Actionable, Linkable, NewLineable, Scriptable, Styleable, TextFormatable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $text = ''; protected $text = '';
protected $textPrefix = ''; protected $textPrefix = '';
@ -35,9 +35,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
protected $areaFocusColor = ''; protected $areaFocusColor = '';
/** /**
* Construct label control * Construct a new Label Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -46,9 +47,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
} }
/** /**
* Set text * Set Text
* *
* @param string $text * @param string $text
* Text Value
* @return \FML\Controls\Label * @return \FML\Controls\Label
*/ */
public function setText($text) { public function setText($text) {
@ -57,9 +59,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
} }
/** /**
* Set text prefix * Set Text Prefix
* *
* @param string $textPrefix * @param string $textPrefix
* Text Pefix
* @return \FML\Controls\Label * @return \FML\Controls\Label
*/ */
public function setTextPrefix($textPrefix) { public function setTextPrefix($textPrefix) {
@ -68,9 +71,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
} }
/** /**
* Set text emboss * Set Text Emboss
* *
* @param bool $textEmboss * @param bool $textEmboss
* If Text should be embossed
* @return \FML\Controls\Label * @return \FML\Controls\Label
*/ */
public function setTextEmboss($textEmboss) { public function setTextEmboss($textEmboss) {
@ -79,9 +83,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
} }
/** /**
* Set translate * Set Translate
* *
* @param bool $translate * @param bool $translate
* If Text should be translated
* @return \FML\Controls\Label * @return \FML\Controls\Label
*/ */
public function setTranslate($translate) { public function setTranslate($translate) {
@ -90,9 +95,10 @@ class Label extends Control implements Actionable, Linkable, NewLineable, Script
} }
/** /**
* Set max lines * Set Max Lines Count
* *
* @param int $maxLines * @param int $maxLines
* Max Lines Count
* @return \FML\Controls\Label * @return \FML\Controls\Label
*/ */
public function setMaxLines($maxLines) { public function setMaxLines($maxLines) {

View File

@ -16,7 +16,7 @@ use FML\Types\SubStyleable;
*/ */
class Quad extends Control implements Actionable, BgColorable, Linkable, Scriptable, Styleable, SubStyleable { class Quad extends Control implements Actionable, BgColorable, Linkable, Scriptable, Styleable, SubStyleable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $image = ''; protected $image = '';
protected $imageFocus = ''; protected $imageFocus = '';
@ -31,9 +31,10 @@ class Quad extends Control implements Actionable, BgColorable, Linkable, Scripta
protected $subStyle = ''; protected $subStyle = '';
/** /**
* Construct a new quad control * Construct a new Quad Control
* *
* @param string $id * @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);
@ -42,9 +43,10 @@ class Quad extends Control implements Actionable, BgColorable, Linkable, Scripta
} }
/** /**
* Set image * Set Image Url
* *
* @param string $image * @param string $image
* Image Url
* @return \FML\Controls\Quad * @return \FML\Controls\Quad
*/ */
public function setImage($image) { public function setImage($image) {
@ -53,9 +55,10 @@ class Quad extends Control implements Actionable, BgColorable, Linkable, Scripta
} }
/** /**
* Set focus image * Set Focus Image Url
* *
* @param string $imageFocus * @param string $imageFocus
* Focus Image Url
* @return \FML\Controls\Quad * @return \FML\Controls\Quad
*/ */
public function setImageFocus($imageFocus) { public function setImageFocus($imageFocus) {
@ -64,9 +67,10 @@ class Quad extends Control implements Actionable, BgColorable, Linkable, Scripta
} }
/** /**
* Set colorize * Set Colorization
* *
* @param string $colorize * @param string $colorize
* Colorize Value
* @return \FML\Controls\Quad * @return \FML\Controls\Quad
*/ */
public function setColorize($colorize) { public function setColorize($colorize) {
@ -75,9 +79,10 @@ class Quad extends Control implements Actionable, BgColorable, Linkable, Scripta
} }
/** /**
* Set modulize color * Set Modulization
* *
* @param string $modulizeColor * @param string $modulizeColor
* Modulize Value
* @return \FML\Controls\Quad * @return \FML\Controls\Quad
*/ */
public function setModulizeColor($modulizeColor) { public function setModulizeColor($modulizeColor) {

View File

@ -20,10 +20,11 @@ class Quad_321Go extends Quad {
const SUBSTYLE_Go = 'Go!'; const SUBSTYLE_Go = 'Go!';
/** /**
* Construct 321Go quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -43,10 +43,11 @@ class Quad_BgRaceScore2 extends Quad {
const SUBSTYLE_Warmup = 'Warmup'; const SUBSTYLE_Warmup = 'Warmup';
/** /**
* Construct BgRaceScore2 quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,76 +14,77 @@ class Quad_Bgs1 extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Bgs1'; const STYLE = 'Bgs1';
const SUBSTYLE_ArrowDown = 'ArrowDown'; const SUBSTYLE_ArrowDown = 'ArrowDown';
const SUBSTYLE_ArrowLeft = 'ArrowLeft'; const SUBSTYLE_ArrowLeft = 'ArrowLeft';
const SUBSTYLE_ArrowRight = 'ArrowRight'; const SUBSTYLE_ArrowRight = 'ArrowRight';
const SUBSTYLE_ArrowUp = 'ArrowUp'; const SUBSTYLE_ArrowUp = 'ArrowUp';
const SUBSTYLE_BgButton = 'BgButton'; const SUBSTYLE_BgButton = 'BgButton';
const SUBSTYLE_BgButtonBig = 'BgButtonBig'; const SUBSTYLE_BgButtonBig = 'BgButtonBig';
const SUBSTYLE_BgButtonGlow = 'BgButtonGlow'; const SUBSTYLE_BgButtonGlow = 'BgButtonGlow';
const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed'; const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed';
const SUBSTYLE_BgButtonOff = 'BgButtonOff'; const SUBSTYLE_BgButtonOff = 'BgButtonOff';
const SUBSTYLE_BgButtonShadow = 'BgButtonShadow'; const SUBSTYLE_BgButtonShadow = 'BgButtonShadow';
const SUBSTYLE_BgButtonSmall = 'BgButtonSmall'; const SUBSTYLE_BgButtonSmall = 'BgButtonSmall';
const SUBSTYLE_BgCard = 'BgCard'; const SUBSTYLE_BgCard = 'BgCard';
const SUBSTYLE_BgCard1 = 'BgCard1'; const SUBSTYLE_BgCard1 = 'BgCard1';
const SUBSTYLE_BgCard2 = 'BgCard2'; const SUBSTYLE_BgCard2 = 'BgCard2';
const SUBSTYLE_BgCard3 = 'BgCard3'; const SUBSTYLE_BgCard3 = 'BgCard3';
const SUBSTYLE_BgCardBuddy = 'BgCardBuddy'; const SUBSTYLE_BgCardBuddy = 'BgCardBuddy';
const SUBSTYLE_BgCardChallenge = 'BgCardChallenge'; const SUBSTYLE_BgCardChallenge = 'BgCardChallenge';
const SUBSTYLE_BgCardFolder = 'BgCardFolder'; const SUBSTYLE_BgCardFolder = 'BgCardFolder';
const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem'; const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem';
const SUBSTYLE_BgCardList = 'BgCardList'; const SUBSTYLE_BgCardList = 'BgCardList';
const SUBSTYLE_BgCardOnline = 'BgCardOnline'; const SUBSTYLE_BgCardOnline = 'BgCardOnline';
const SUBSTYLE_BgCardPlayer = 'BgCardPlayer'; const SUBSTYLE_BgCardPlayer = 'BgCardPlayer';
const SUBSTYLE_BgCardSystem = 'BgCardSystem'; const SUBSTYLE_BgCardSystem = 'BgCardSystem';
const SUBSTYLE_BgCardZone = 'BgCardZone'; const SUBSTYLE_BgCardZone = 'BgCardZone';
const SUBSTYLE_BgColorContour = 'BgColorContour'; const SUBSTYLE_BgColorContour = 'BgColorContour';
const SUBSTYLE_BgDialogBlur = 'BgDialogBlur'; const SUBSTYLE_BgDialogBlur = 'BgDialogBlur';
const SUBSTYLE_BgEmpty = 'BgEmpty'; const SUBSTYLE_BgEmpty = 'BgEmpty';
const SUBSTYLE_BgGradBottom = 'BgGradBottom'; const SUBSTYLE_BgGradBottom = 'BgGradBottom';
const SUBSTYLE_BgGradLeft = 'BgGradLeft'; const SUBSTYLE_BgGradLeft = 'BgGradLeft';
const SUBSTYLE_BgGradRight = 'BgGradRight'; const SUBSTYLE_BgGradRight = 'BgGradRight';
const SUBSTYLE_BgGradTop = 'BgGradTop'; const SUBSTYLE_BgGradTop = 'BgGradTop';
const SUBSTYLE_BgGradV = 'BgGradV'; const SUBSTYLE_BgGradV = 'BgGradV';
const SUBSTYLE_BgHealthBar = 'BgHealthBar'; const SUBSTYLE_BgHealthBar = 'BgHealthBar';
const SUBSTYLE_BgIconBorder = 'BgIconBorder'; const SUBSTYLE_BgIconBorder = 'BgIconBorder';
const SUBSTYLE_BgList = 'BgList'; const SUBSTYLE_BgList = 'BgList';
const SUBSTYLE_BgListLine = 'BgListLine'; const SUBSTYLE_BgListLine = 'BgListLine';
const SUBSTYLE_BgPager = 'BgPager'; const SUBSTYLE_BgPager = 'BgPager';
const SUBSTYLE_BgProgressBar = 'BgProgressBar'; const SUBSTYLE_BgProgressBar = 'BgProgressBar';
const SUBSTYLE_BgShadow = 'BgShadow'; const SUBSTYLE_BgShadow = 'BgShadow';
const SUBSTYLE_BgSlider = 'BgSlider'; const SUBSTYLE_BgSlider = 'BgSlider';
const SUBSTYLE_BgSystemBar = 'BgSystemBar'; const SUBSTYLE_BgSystemBar = 'BgSystemBar';
const SUBSTYLE_BgTitle2 = 'BgTitle2'; const SUBSTYLE_BgTitle2 = 'BgTitle2';
const SUBSTYLE_BgTitle3 = 'BgTitle3'; const SUBSTYLE_BgTitle3 = 'BgTitle3';
const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1'; const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1';
const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2'; const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2';
const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3'; const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3';
const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4'; const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4';
const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5'; const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5';
const SUBSTYLE_BgTitleGlow = 'BgTitleGlow'; const SUBSTYLE_BgTitleGlow = 'BgTitleGlow';
const SUBSTYLE_BgTitlePage = 'BgTitlePage'; const SUBSTYLE_BgTitlePage = 'BgTitlePage';
const SUBSTYLE_BgTitleShadow = 'BgTitleShadow'; const SUBSTYLE_BgTitleShadow = 'BgTitleShadow';
const SUBSTYLE_BgWindow1 = 'BgWindow1'; const SUBSTYLE_BgWindow1 = 'BgWindow1';
const SUBSTYLE_BgWindow2 = 'BgWindow2'; const SUBSTYLE_BgWindow2 = 'BgWindow2';
const SUBSTYLE_BgWindow3 = 'BgWindow3'; const SUBSTYLE_BgWindow3 = 'BgWindow3';
const SUBSTYLE_EnergyBar = 'EnergyBar'; const SUBSTYLE_EnergyBar = 'EnergyBar';
const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2'; const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2';
const SUBSTYLE_Glow = 'Glow'; const SUBSTYLE_Glow = 'Glow';
const SUBSTYLE_HealthBar = 'HealthBar'; const SUBSTYLE_HealthBar = 'HealthBar';
const SUBSTYLE_NavButton = 'NavButton'; const SUBSTYLE_NavButton = 'NavButton';
const SUBSTYLE_NavButtonBlink = 'NavButtonBlink'; const SUBSTYLE_NavButtonBlink = 'NavButtonBlink';
const SUBSTYLE_NavButtonQuit = 'NavButtonQuit'; const SUBSTYLE_NavButtonQuit = 'NavButtonQuit';
const SUBSTYLE_ProgressBar = 'ProgressBar'; const SUBSTYLE_ProgressBar = 'ProgressBar';
const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall'; const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall';
const SUBSTYLE_Shadow = 'Shadow'; const SUBSTYLE_Shadow = 'Shadow';
/** /**
* Construct Bgs1 quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,76 +14,77 @@ class Quad_Bgs1InRace extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Bgs1InRace'; const STYLE = 'Bgs1InRace';
const SUBSTYLE_ArrowDown = 'ArrowDown'; const SUBSTYLE_ArrowDown = 'ArrowDown';
const SUBSTYLE_ArrowLeft = 'ArrowLeft'; const SUBSTYLE_ArrowLeft = 'ArrowLeft';
const SUBSTYLE_ArrowRight = 'ArrowRight'; const SUBSTYLE_ArrowRight = 'ArrowRight';
const SUBSTYLE_ArrowUp = 'ArrowUp'; const SUBSTYLE_ArrowUp = 'ArrowUp';
const SUBSTYLE_BgButton = 'BgButton'; const SUBSTYLE_BgButton = 'BgButton';
const SUBSTYLE_BgButtonBig = 'BgButtonBig'; const SUBSTYLE_BgButtonBig = 'BgButtonBig';
const SUBSTYLE_BgButtonGlow = 'BgButtonGlow'; const SUBSTYLE_BgButtonGlow = 'BgButtonGlow';
const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed'; const SUBSTYLE_BgButtonGrayed = 'BgButtonGrayed';
const SUBSTYLE_BgButtonOff = 'BgButtonOff'; const SUBSTYLE_BgButtonOff = 'BgButtonOff';
const SUBSTYLE_BgButtonShadow = 'BgButtonShadow'; const SUBSTYLE_BgButtonShadow = 'BgButtonShadow';
const SUBSTYLE_BgButtonSmall = 'BgButtonSmall'; const SUBSTYLE_BgButtonSmall = 'BgButtonSmall';
const SUBSTYLE_BgCard = 'BgCard'; const SUBSTYLE_BgCard = 'BgCard';
const SUBSTYLE_BgCard1 = 'BgCard1'; const SUBSTYLE_BgCard1 = 'BgCard1';
const SUBSTYLE_BgCard2 = 'BgCard2'; const SUBSTYLE_BgCard2 = 'BgCard2';
const SUBSTYLE_BgCard3 = 'BgCard3'; const SUBSTYLE_BgCard3 = 'BgCard3';
const SUBSTYLE_BgCardBuddy = 'BgCardBuddy'; const SUBSTYLE_BgCardBuddy = 'BgCardBuddy';
const SUBSTYLE_BgCardChallenge = 'BgCardChallenge'; const SUBSTYLE_BgCardChallenge = 'BgCardChallenge';
const SUBSTYLE_BgCardFolder = 'BgCardFolder'; const SUBSTYLE_BgCardFolder = 'BgCardFolder';
const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem'; const SUBSTYLE_BgCardInventoryItem = 'BgCardInventoryItem';
const SUBSTYLE_BgCardList = 'BgCardList'; const SUBSTYLE_BgCardList = 'BgCardList';
const SUBSTYLE_BgCardOnline = 'BgCardOnline'; const SUBSTYLE_BgCardOnline = 'BgCardOnline';
const SUBSTYLE_BgCardPlayer = 'BgCardPlayer'; const SUBSTYLE_BgCardPlayer = 'BgCardPlayer';
const SUBSTYLE_BgCardSystem = 'BgCardSystem'; const SUBSTYLE_BgCardSystem = 'BgCardSystem';
const SUBSTYLE_BgCardZone = 'BgCardZone'; const SUBSTYLE_BgCardZone = 'BgCardZone';
const SUBSTYLE_BgColorContour = 'BgColorContour'; const SUBSTYLE_BgColorContour = 'BgColorContour';
const SUBSTYLE_BgDialogBlur = 'BgDialogBlur'; const SUBSTYLE_BgDialogBlur = 'BgDialogBlur';
const SUBSTYLE_BgEmpty = 'BgEmpty'; const SUBSTYLE_BgEmpty = 'BgEmpty';
const SUBSTYLE_BgGradBottom = 'BgGradBottom'; const SUBSTYLE_BgGradBottom = 'BgGradBottom';
const SUBSTYLE_BgGradLeft = 'BgGradLeft'; const SUBSTYLE_BgGradLeft = 'BgGradLeft';
const SUBSTYLE_BgGradRight = 'BgGradRight'; const SUBSTYLE_BgGradRight = 'BgGradRight';
const SUBSTYLE_BgGradTop = 'BgGradTop'; const SUBSTYLE_BgGradTop = 'BgGradTop';
const SUBSTYLE_BgGradV = 'BgGradV'; const SUBSTYLE_BgGradV = 'BgGradV';
const SUBSTYLE_BgHealthBar = 'BgHealthBar'; const SUBSTYLE_BgHealthBar = 'BgHealthBar';
const SUBSTYLE_BgIconBorder = 'BgIconBorder'; const SUBSTYLE_BgIconBorder = 'BgIconBorder';
const SUBSTYLE_BgList = 'BgList'; const SUBSTYLE_BgList = 'BgList';
const SUBSTYLE_BgListLine = 'BgListLine'; const SUBSTYLE_BgListLine = 'BgListLine';
const SUBSTYLE_BgPager = 'BgPager'; const SUBSTYLE_BgPager = 'BgPager';
const SUBSTYLE_BgProgressBar = 'BgProgressBar'; const SUBSTYLE_BgProgressBar = 'BgProgressBar';
const SUBSTYLE_BgShadow = 'BgShadow'; const SUBSTYLE_BgShadow = 'BgShadow';
const SUBSTYLE_BgSlider = 'BgSlider'; const SUBSTYLE_BgSlider = 'BgSlider';
const SUBSTYLE_BgSystemBar = 'BgSystemBar'; const SUBSTYLE_BgSystemBar = 'BgSystemBar';
const SUBSTYLE_BgTitle2 = 'BgTitle2'; const SUBSTYLE_BgTitle2 = 'BgTitle2';
const SUBSTYLE_BgTitle3 = 'BgTitle3'; const SUBSTYLE_BgTitle3 = 'BgTitle3';
const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1'; const SUBSTYLE_BgTitle3_1 = 'BgTitle3_1';
const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2'; const SUBSTYLE_BgTitle3_2 = 'BgTitle3_2';
const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3'; const SUBSTYLE_BgTitle3_3 = 'BgTitle3_3';
const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4'; const SUBSTYLE_BgTitle3_4 = 'BgTitle3_4';
const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5'; const SUBSTYLE_BgTitle3_5 = 'BgTitle3_5';
const SUBSTYLE_BgTitleGlow = 'BgTitleGlow'; const SUBSTYLE_BgTitleGlow = 'BgTitleGlow';
const SUBSTYLE_BgTitlePage = 'BgTitlePage'; const SUBSTYLE_BgTitlePage = 'BgTitlePage';
const SUBSTYLE_BgTitleShadow = 'BgTitleShadow'; const SUBSTYLE_BgTitleShadow = 'BgTitleShadow';
const SUBSTYLE_BgWindow1 = 'BgWindow1'; const SUBSTYLE_BgWindow1 = 'BgWindow1';
const SUBSTYLE_BgWindow2 = 'BgWindow2'; const SUBSTYLE_BgWindow2 = 'BgWindow2';
const SUBSTYLE_BgWindow3 = 'BgWindow3'; const SUBSTYLE_BgWindow3 = 'BgWindow3';
const SUBSTYLE_EnergyBar = 'EnergyBar'; const SUBSTYLE_EnergyBar = 'EnergyBar';
const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2'; const SUBSTYLE_EnergyTeam2 = 'EnergyTeam2';
const SUBSTYLE_Glow = 'Glow'; const SUBSTYLE_Glow = 'Glow';
const SUBSTYLE_HealthBar = 'HealthBar'; const SUBSTYLE_HealthBar = 'HealthBar';
const SUBSTYLE_NavButton = 'NavButton'; const SUBSTYLE_NavButton = 'NavButton';
const SUBSTYLE_NavButtonBlink = 'NavButtonBlink'; const SUBSTYLE_NavButtonBlink = 'NavButtonBlink';
const SUBSTYLE_NavButtonQuit = 'NavButtonQuit'; const SUBSTYLE_NavButtonQuit = 'NavButtonQuit';
const SUBSTYLE_ProgressBar = 'ProgressBar'; const SUBSTYLE_ProgressBar = 'ProgressBar';
const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall'; const SUBSTYLE_ProgressBarSmall = 'ProgressBarSmall';
const SUBSTYLE_Shadow = 'Shadow'; const SUBSTYLE_Shadow = 'Shadow';
/** /**
* Construct Bgs1InRace quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,18 +14,19 @@ class Quad_BgsChallengeMedals extends Quad {
* Constants * Constants
*/ */
const STYLE = 'BgsChallengeMedals'; const STYLE = 'BgsChallengeMedals';
const SUBSTYLE_BgBronze = 'BgBronze'; const SUBSTYLE_BgBronze = 'BgBronze';
const SUBSTYLE_BgGold = 'BgGold'; const SUBSTYLE_BgGold = 'BgGold';
const SUBSTYLE_BgNadeo = 'BgNadeo'; const SUBSTYLE_BgNadeo = 'BgNadeo';
const SUBSTYLE_BgNotPlayed = 'BgNotPlayed'; const SUBSTYLE_BgNotPlayed = 'BgNotPlayed';
const SUBSTYLE_BgPlayed = 'BgPlayed'; const SUBSTYLE_BgPlayed = 'BgPlayed';
const SUBSTYLE_BgSilver = 'BgSilver'; const SUBSTYLE_BgSilver = 'BgSilver';
/** /**
* Construct BgsChallengeMedals quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -30,10 +30,11 @@ class Quad_BgsPlayerCard extends Quad {
const SUBSTYLE_ProgressBar = 'ProgressBar'; const SUBSTYLE_ProgressBar = 'ProgressBar';
/** /**
* Construct BgsPlayerCard quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,24 +14,25 @@ class Quad_Copilot extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Copilot'; const STYLE = 'Copilot';
const SUBSTYLE_Down = 'Down'; const SUBSTYLE_Down = 'Down';
const SUBSTYLE_DownGood = 'DownGood'; const SUBSTYLE_DownGood = 'DownGood';
const SUBSTYLE_DownWrong = 'DownWrong'; const SUBSTYLE_DownWrong = 'DownWrong';
const SUBSTYLE_Left = 'Left'; const SUBSTYLE_Left = 'Left';
const SUBSTYLE_LeftGood = 'LeftGood'; const SUBSTYLE_LeftGood = 'LeftGood';
const SUBSTYLE_LeftWrong = 'LeftWrong'; const SUBSTYLE_LeftWrong = 'LeftWrong';
const SUBSTYLE_Right = 'Right'; const SUBSTYLE_Right = 'Right';
const SUBSTYLE_RightGood = 'RightGood'; const SUBSTYLE_RightGood = 'RightGood';
const SUBSTYLE_RightWrong = 'RightWrong'; const SUBSTYLE_RightWrong = 'RightWrong';
const SUBSTYLE_Up = 'Up'; const SUBSTYLE_Up = 'Up';
const SUBSTYLE_UpGood = 'UpGood'; const SUBSTYLE_UpGood = 'UpGood';
const SUBSTYLE_UpWrong = 'UpWrong'; const SUBSTYLE_UpWrong = 'UpWrong';
/** /**
* Construct Copilot quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -19,10 +19,11 @@ class Quad_Emblems extends Quad {
const SUBSTYLE_2 = '#2'; const SUBSTYLE_2 = '#2';
/** /**
* Construct Emblems quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -22,10 +22,11 @@ class Quad_EnergyBar extends Quad {
const SUBSTYLE_HeaderGaugeRight = 'HeaderGaugeRight'; const SUBSTYLE_HeaderGaugeRight = 'HeaderGaugeRight';
/** /**
* Construct EnergyBar quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,21 +14,22 @@ class Quad_Hud3dEchelons extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Hud3dEchelons'; const STYLE = 'Hud3dEchelons';
const SUBSTYLE_EchelonBronze1 = 'EchelonBronze1'; const SUBSTYLE_EchelonBronze1 = 'EchelonBronze1';
const SUBSTYLE_EchelonBronze2 = 'EchelonBronze2'; const SUBSTYLE_EchelonBronze2 = 'EchelonBronze2';
const SUBSTYLE_EchelonBronze3 = 'EchelonBronze3'; const SUBSTYLE_EchelonBronze3 = 'EchelonBronze3';
const SUBSTYLE_EchelonGold1 = 'EchelonGold1'; const SUBSTYLE_EchelonGold1 = 'EchelonGold1';
const SUBSTYLE_EchelonGold2 = 'EchelonGold2'; const SUBSTYLE_EchelonGold2 = 'EchelonGold2';
const SUBSTYLE_EchelonGold3 = 'EchelonGold3'; const SUBSTYLE_EchelonGold3 = 'EchelonGold3';
const SUBSTYLE_EchelonSilver1 = 'EchelonSilver1'; const SUBSTYLE_EchelonSilver1 = 'EchelonSilver1';
const SUBSTYLE_EchelonSilver2 = 'EchelonSilver2'; const SUBSTYLE_EchelonSilver2 = 'EchelonSilver2';
const SUBSTYLE_EchelonSilver3 = 'EchelonSilver3'; const SUBSTYLE_EchelonSilver3 = 'EchelonSilver3';
/** /**
* Construct Hud3dEchelons quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,76 +14,76 @@ class Quad_Icons128x128_1 extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Icons128x128_1'; const STYLE = 'Icons128x128_1';
const SUBSTYLE_Advanced = 'Advanced'; const SUBSTYLE_Advanced = 'Advanced';
const SUBSTYLE_Back = 'Back'; const SUBSTYLE_Back = 'Back';
const SUBSTYLE_BackFocusable = 'BackFocusable'; const SUBSTYLE_BackFocusable = 'BackFocusable';
const SUBSTYLE_Beginner = 'Beginner'; const SUBSTYLE_Beginner = 'Beginner';
const SUBSTYLE_Browse = 'Browse'; const SUBSTYLE_Browse = 'Browse';
const SUBSTYLE_Buddies = 'Buddies'; const SUBSTYLE_Buddies = 'Buddies';
const SUBSTYLE_Challenge = 'Challenge'; const SUBSTYLE_Challenge = 'Challenge';
const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor'; const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor';
const SUBSTYLE_Coppers = 'Coppers'; const SUBSTYLE_Coppers = 'Coppers';
const SUBSTYLE_Create = 'Create'; const SUBSTYLE_Create = 'Create';
const SUBSTYLE_Credits = 'Credits'; const SUBSTYLE_Credits = 'Credits';
const SUBSTYLE_Custom = 'Custom'; const SUBSTYLE_Custom = 'Custom';
const SUBSTYLE_CustomStars = 'CustomStars'; const SUBSTYLE_CustomStars = 'CustomStars';
const SUBSTYLE_Default = 'Default'; const SUBSTYLE_Default = 'Default';
const SUBSTYLE_Download = 'Download'; const SUBSTYLE_Download = 'Download';
const SUBSTYLE_Easy = 'Easy'; const SUBSTYLE_Easy = 'Easy';
const SUBSTYLE_Editor = 'Editor'; const SUBSTYLE_Editor = 'Editor';
const SUBSTYLE_Event = 'Event'; const SUBSTYLE_Event = 'Event';
const SUBSTYLE_Extreme = 'Extreme'; const SUBSTYLE_Extreme = 'Extreme';
const SUBSTYLE_Forever = 'Forever'; const SUBSTYLE_Forever = 'Forever';
const SUBSTYLE_GhostEditor = 'GhostEditor'; const SUBSTYLE_GhostEditor = 'GhostEditor';
const SUBSTYLE_Hard = 'Hard'; const SUBSTYLE_Hard = 'Hard';
const SUBSTYLE_Hotseat = 'Hotseat'; const SUBSTYLE_Hotseat = 'Hotseat';
const SUBSTYLE_Inputs = 'Inputs'; const SUBSTYLE_Inputs = 'Inputs';
const SUBSTYLE_Invite = 'Invite'; const SUBSTYLE_Invite = 'Invite';
const SUBSTYLE_LadderPoints = 'LadderPoints'; const SUBSTYLE_LadderPoints = 'LadderPoints';
const SUBSTYLE_Lan = 'Lan'; const SUBSTYLE_Lan = 'Lan';
const SUBSTYLE_Launch = 'Launch'; const SUBSTYLE_Launch = 'Launch';
const SUBSTYLE_Load = 'Load'; const SUBSTYLE_Load = 'Load';
const SUBSTYLE_LoadTrack = 'LoadTrack'; const SUBSTYLE_LoadTrack = 'LoadTrack';
const SUBSTYLE_Manialink = 'Manialink'; const SUBSTYLE_Manialink = 'Manialink';
const SUBSTYLE_ManiaZones = 'ManiaZones'; const SUBSTYLE_ManiaZones = 'ManiaZones';
const SUBSTYLE_MedalCount = 'MedalCount'; const SUBSTYLE_MedalCount = 'MedalCount';
const SUBSTYLE_MediaTracker = 'MediaTracker'; const SUBSTYLE_MediaTracker = 'MediaTracker';
const SUBSTYLE_Medium = 'Medium'; const SUBSTYLE_Medium = 'Medium';
const SUBSTYLE_Multiplayer = 'Multiplayer'; const SUBSTYLE_Multiplayer = 'Multiplayer';
const SUBSTYLE_Nations = 'Nations'; const SUBSTYLE_Nations = 'Nations';
const SUBSTYLE_NewTrack = 'NewTrack'; const SUBSTYLE_NewTrack = 'NewTrack';
const SUBSTYLE_Options = 'Options'; const SUBSTYLE_Options = 'Options';
const SUBSTYLE_Padlock = 'Padlock'; const SUBSTYLE_Padlock = 'Padlock';
const SUBSTYLE_Paint = 'Paint'; const SUBSTYLE_Paint = 'Paint';
const SUBSTYLE_Platform = 'Platform'; const SUBSTYLE_Platform = 'Platform';
const SUBSTYLE_PlayerPage = 'PlayerPage'; const SUBSTYLE_PlayerPage = 'PlayerPage';
const SUBSTYLE_Profile = 'Profile'; const SUBSTYLE_Profile = 'Profile';
const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced'; const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced';
const SUBSTYLE_ProfileVehicle = 'ProfileVehicle'; const SUBSTYLE_ProfileVehicle = 'ProfileVehicle';
const SUBSTYLE_Puzzle = 'Puzzle'; const SUBSTYLE_Puzzle = 'Puzzle';
const SUBSTYLE_Quit = 'Quit'; const SUBSTYLE_Quit = 'Quit';
const SUBSTYLE_Race = 'Race'; const SUBSTYLE_Race = 'Race';
const SUBSTYLE_Rankings = 'Rankings'; const SUBSTYLE_Rankings = 'Rankings';
const SUBSTYLE_Replay = 'Replay'; const SUBSTYLE_Replay = 'Replay';
const SUBSTYLE_Save = 'Save'; const SUBSTYLE_Save = 'Save';
const SUBSTYLE_ServersAll = 'ServersAll'; const SUBSTYLE_ServersAll = 'ServersAll';
const SUBSTYLE_ServersFavorites = 'ServersFavorites'; const SUBSTYLE_ServersFavorites = 'ServersFavorites';
const SUBSTYLE_ServersSuggested = 'ServersSuggested'; const SUBSTYLE_ServersSuggested = 'ServersSuggested';
const SUBSTYLE_Share = 'Share'; const SUBSTYLE_Share = 'Share';
const SUBSTYLE_ShareBlink = 'ShareBlink'; const SUBSTYLE_ShareBlink = 'ShareBlink';
const SUBSTYLE_SkillPoints = 'SkillPoints'; const SUBSTYLE_SkillPoints = 'SkillPoints';
const SUBSTYLE_Solo = 'Solo'; const SUBSTYLE_Solo = 'Solo';
const SUBSTYLE_Statistics = 'Statistics'; const SUBSTYLE_Statistics = 'Statistics';
const SUBSTYLE_Stunts = 'Stunts'; const SUBSTYLE_Stunts = 'Stunts';
const SUBSTYLE_United = 'United'; const SUBSTYLE_United = 'United';
const SUBSTYLE_Upload = 'Upload'; const SUBSTYLE_Upload = 'Upload';
const SUBSTYLE_Vehicles = 'Vehicles'; const SUBSTYLE_Vehicles = 'Vehicles';
/** /**
* Construct Icons128x128_1 quad * Construct Icons128x128_1 quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,76 +14,77 @@ class Quad_Icons128x128_Blink extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Icons128x128_Blink'; const STYLE = 'Icons128x128_Blink';
const SUBSTYLE_Advanced = 'Advanced'; const SUBSTYLE_Advanced = 'Advanced';
const SUBSTYLE_Back = 'Back'; const SUBSTYLE_Back = 'Back';
const SUBSTYLE_BackFocusable = 'BackFocusable'; const SUBSTYLE_BackFocusable = 'BackFocusable';
const SUBSTYLE_Beginner = 'Beginner'; const SUBSTYLE_Beginner = 'Beginner';
const SUBSTYLE_Browse = 'Browse'; const SUBSTYLE_Browse = 'Browse';
const SUBSTYLE_Buddies = 'Buddies'; const SUBSTYLE_Buddies = 'Buddies';
const SUBSTYLE_Challenge = 'Challenge'; const SUBSTYLE_Challenge = 'Challenge';
const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor'; const SUBSTYLE_ChallengeAuthor = 'ChallengeAuthor';
const SUBSTYLE_Coppers = 'Coppers'; const SUBSTYLE_Coppers = 'Coppers';
const SUBSTYLE_Create = 'Create'; const SUBSTYLE_Create = 'Create';
const SUBSTYLE_Credits = 'Credits'; const SUBSTYLE_Credits = 'Credits';
const SUBSTYLE_Custom = 'Custom'; const SUBSTYLE_Custom = 'Custom';
const SUBSTYLE_CustomStars = 'CustomStars'; const SUBSTYLE_CustomStars = 'CustomStars';
const SUBSTYLE_Default = 'Default'; const SUBSTYLE_Default = 'Default';
const SUBSTYLE_Download = 'Download'; const SUBSTYLE_Download = 'Download';
const SUBSTYLE_Easy = 'Easy'; const SUBSTYLE_Easy = 'Easy';
const SUBSTYLE_Editor = 'Editor'; const SUBSTYLE_Editor = 'Editor';
const SUBSTYLE_Event = 'Event'; const SUBSTYLE_Event = 'Event';
const SUBSTYLE_Extreme = 'Extreme'; const SUBSTYLE_Extreme = 'Extreme';
const SUBSTYLE_Forever = 'Forever'; const SUBSTYLE_Forever = 'Forever';
const SUBSTYLE_GhostEditor = 'GhostEditor'; const SUBSTYLE_GhostEditor = 'GhostEditor';
const SUBSTYLE_Hard = 'Hard'; const SUBSTYLE_Hard = 'Hard';
const SUBSTYLE_Hotseat = 'Hotseat'; const SUBSTYLE_Hotseat = 'Hotseat';
const SUBSTYLE_Inputs = 'Inputs'; const SUBSTYLE_Inputs = 'Inputs';
const SUBSTYLE_Invite = 'Invite'; const SUBSTYLE_Invite = 'Invite';
const SUBSTYLE_LadderPoints = 'LadderPoints'; const SUBSTYLE_LadderPoints = 'LadderPoints';
const SUBSTYLE_Lan = 'Lan'; const SUBSTYLE_Lan = 'Lan';
const SUBSTYLE_Launch = 'Launch'; const SUBSTYLE_Launch = 'Launch';
const SUBSTYLE_Load = 'Load'; const SUBSTYLE_Load = 'Load';
const SUBSTYLE_LoadTrack = 'LoadTrack'; const SUBSTYLE_LoadTrack = 'LoadTrack';
const SUBSTYLE_Manialink = 'Manialink'; const SUBSTYLE_Manialink = 'Manialink';
const SUBSTYLE_ManiaZones = 'ManiaZones'; const SUBSTYLE_ManiaZones = 'ManiaZones';
const SUBSTYLE_MedalCount = 'MedalCount'; const SUBSTYLE_MedalCount = 'MedalCount';
const SUBSTYLE_MediaTracker = 'MediaTracker'; const SUBSTYLE_MediaTracker = 'MediaTracker';
const SUBSTYLE_Medium = 'Medium'; const SUBSTYLE_Medium = 'Medium';
const SUBSTYLE_Multiplayer = 'Multiplayer'; const SUBSTYLE_Multiplayer = 'Multiplayer';
const SUBSTYLE_Nations = 'Nations'; const SUBSTYLE_Nations = 'Nations';
const SUBSTYLE_NewTrack = 'NewTrack'; const SUBSTYLE_NewTrack = 'NewTrack';
const SUBSTYLE_Options = 'Options'; const SUBSTYLE_Options = 'Options';
const SUBSTYLE_Padlock = 'Padlock'; const SUBSTYLE_Padlock = 'Padlock';
const SUBSTYLE_Paint = 'Paint'; const SUBSTYLE_Paint = 'Paint';
const SUBSTYLE_Platform = 'Platform'; const SUBSTYLE_Platform = 'Platform';
const SUBSTYLE_PlayerPage = 'PlayerPage'; const SUBSTYLE_PlayerPage = 'PlayerPage';
const SUBSTYLE_Profile = 'Profile'; const SUBSTYLE_Profile = 'Profile';
const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced'; const SUBSTYLE_ProfileAdvanced = 'ProfileAdvanced';
const SUBSTYLE_ProfileVehicle = 'ProfileVehicle'; const SUBSTYLE_ProfileVehicle = 'ProfileVehicle';
const SUBSTYLE_Puzzle = 'Puzzle'; const SUBSTYLE_Puzzle = 'Puzzle';
const SUBSTYLE_Quit = 'Quit'; const SUBSTYLE_Quit = 'Quit';
const SUBSTYLE_Race = 'Race'; const SUBSTYLE_Race = 'Race';
const SUBSTYLE_Rankings = 'Rankings'; const SUBSTYLE_Rankings = 'Rankings';
const SUBSTYLE_Replay = 'Replay'; const SUBSTYLE_Replay = 'Replay';
const SUBSTYLE_Save = 'Save'; const SUBSTYLE_Save = 'Save';
const SUBSTYLE_ServersAll = 'ServersAll'; const SUBSTYLE_ServersAll = 'ServersAll';
const SUBSTYLE_ServersFavorites = 'ServersFavorites'; const SUBSTYLE_ServersFavorites = 'ServersFavorites';
const SUBSTYLE_ServersSuggested = 'ServersSuggested'; const SUBSTYLE_ServersSuggested = 'ServersSuggested';
const SUBSTYLE_Share = 'Share'; const SUBSTYLE_Share = 'Share';
const SUBSTYLE_ShareBlink = 'ShareBlink'; const SUBSTYLE_ShareBlink = 'ShareBlink';
const SUBSTYLE_SkillPoints = 'SkillPoints'; const SUBSTYLE_SkillPoints = 'SkillPoints';
const SUBSTYLE_Solo = 'Solo'; const SUBSTYLE_Solo = 'Solo';
const SUBSTYLE_Statistics = 'Statistics'; const SUBSTYLE_Statistics = 'Statistics';
const SUBSTYLE_Stunts = 'Stunts'; const SUBSTYLE_Stunts = 'Stunts';
const SUBSTYLE_United = 'United'; const SUBSTYLE_United = 'United';
const SUBSTYLE_Upload = 'Upload'; const SUBSTYLE_Upload = 'Upload';
const SUBSTYLE_Vehicles = 'Vehicles'; const SUBSTYLE_Vehicles = 'Vehicles';
/** /**
* Construct Icons128x128_Blink quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,37 +14,38 @@ class Quad_Icons128x32_1 extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Icons128x32_1'; const STYLE = 'Icons128x32_1';
const SUBSTYLE_Empty = 'Empty'; const SUBSTYLE_Empty = 'Empty';
const SUBSTYLE_ManiaLinkHome = 'ManiaLinkHome'; const SUBSTYLE_ManiaLinkHome = 'ManiaLinkHome';
const SUBSTYLE_ManiaLinkSwitch = 'ManiaLinkSwitch'; const SUBSTYLE_ManiaLinkSwitch = 'ManiaLinkSwitch';
const SUBSTYLE_ManiaPlanet = 'ManiaPlanet'; const SUBSTYLE_ManiaPlanet = 'ManiaPlanet';
const SUBSTYLE_Music = 'Music'; const SUBSTYLE_Music = 'Music';
const SUBSTYLE_PainterBrush = 'PainterBrush'; const SUBSTYLE_PainterBrush = 'PainterBrush';
const SUBSTYLE_PainterFill = 'PainterFill'; const SUBSTYLE_PainterFill = 'PainterFill';
const SUBSTYLE_PainterLayer = 'PainterLayer'; const SUBSTYLE_PainterLayer = 'PainterLayer';
const SUBSTYLE_PainterMirror = 'PainterMirror'; const SUBSTYLE_PainterMirror = 'PainterMirror';
const SUBSTYLE_PainterSticker = 'PainterSticker'; const SUBSTYLE_PainterSticker = 'PainterSticker';
const SUBSTYLE_PainterTeam = 'PainterTeam'; const SUBSTYLE_PainterTeam = 'PainterTeam';
const SUBSTYLE_RT_Cup = 'RT_Cup'; const SUBSTYLE_RT_Cup = 'RT_Cup';
const SUBSTYLE_RT_Laps = 'RT_Laps'; const SUBSTYLE_RT_Laps = 'RT_Laps';
const SUBSTYLE_RT_Rounds = 'RT_Rounds'; const SUBSTYLE_RT_Rounds = 'RT_Rounds';
const SUBSTYLE_RT_Script = 'RT_Script'; const SUBSTYLE_RT_Script = 'RT_Script';
const SUBSTYLE_RT_Team = 'RT_Team'; const SUBSTYLE_RT_Team = 'RT_Team';
const SUBSTYLE_RT_TimeAttack = 'RT_TimeAttack'; const SUBSTYLE_RT_TimeAttack = 'RT_TimeAttack';
const SUBSTYLE_RT_Stunts = 'RT_Stunts'; const SUBSTYLE_RT_Stunts = 'RT_Stunts';
const SUBSTYLE_Settings = 'Settings'; const SUBSTYLE_Settings = 'Settings';
const SUBSTYLE_SliderBar = 'SliderBar'; const SUBSTYLE_SliderBar = 'SliderBar';
const SUBSTYLE_SliderBar2 = 'SliderBar2'; const SUBSTYLE_SliderBar2 = 'SliderBar2';
const SUBSTYLE_SliderCursor = 'SliderCursor'; const SUBSTYLE_SliderCursor = 'SliderCursor';
const SUBSTYLE_Sound = 'Sound'; const SUBSTYLE_Sound = 'Sound';
const SUBSTYLE_UrlBg = 'UrlBg'; const SUBSTYLE_UrlBg = 'UrlBg';
const SUBSTYLE_Windowed = 'Windowed'; const SUBSTYLE_Windowed = 'Windowed';
/** /**
* Construct Icons128x32_1 quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -101,10 +101,11 @@ class Quad_Icons64x64_1 extends Quad {
const SUBSTYLE_YellowLow = 'YellowLow'; const SUBSTYLE_YellowLow = 'YellowLow';
/** /**
* Construct Icons64x64_1 quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,25 +14,26 @@ class Quad_Icons64x64_2 extends Quad {
* Constants * Constants
*/ */
const STYLE = 'Icons64x64_2'; const STYLE = 'Icons64x64_2';
const SUBSTYLE_ArrowElimination = 'ArrowElimination'; const SUBSTYLE_ArrowElimination = 'ArrowElimination';
const SUBSTYLE_ArrowHit = 'ArrowHit'; const SUBSTYLE_ArrowHit = 'ArrowHit';
const SUBSTYLE_Disconnected = 'Disconnected'; const SUBSTYLE_Disconnected = 'Disconnected';
const SUBSTYLE_DisconnectedLight = 'DisconnectedLight'; const SUBSTYLE_DisconnectedLight = 'DisconnectedLight';
const SUBSTYLE_LaserElimination = 'LaserElimination'; const SUBSTYLE_LaserElimination = 'LaserElimination';
const SUBSTYLE_LaserHit = 'LaserHit'; const SUBSTYLE_LaserHit = 'LaserHit';
const SUBSTYLE_NucleusElimination = 'NucleusElimination'; const SUBSTYLE_NucleusElimination = 'NucleusElimination';
const SUBSTYLE_NucleusHit = 'NucleusHit'; const SUBSTYLE_NucleusHit = 'NucleusHit';
const SUBSTYLE_RocketElimination = 'RocketElimination'; const SUBSTYLE_RocketElimination = 'RocketElimination';
const SUBSTYLE_RocketHit = 'RocketHit'; const SUBSTYLE_RocketHit = 'RocketHit';
const SUBSTYLE_ServerNotice = 'ServerNotice'; const SUBSTYLE_ServerNotice = 'ServerNotice';
const SUBSTYLE_UnknownElimination = 'UnknownElimination'; const SUBSTYLE_UnknownElimination = 'UnknownElimination';
const SUBSTYLE_UnknownHit = 'UnknownHit'; const SUBSTYLE_UnknownHit = 'UnknownHit';
/** /**
* Construct Icons64x64_2 quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -23,10 +23,11 @@ class Quad_ManiaPlanetLogos extends Quad {
const SUBSTYLE_ManiaPlanetLogoWhiteSmall = 'ManiaPlanetLogoWhiteSmall'; const SUBSTYLE_ManiaPlanetLogoWhiteSmall = 'ManiaPlanetLogoWhiteSmall';
/** /**
* Construct ManiaPlanetLogos quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -22,10 +22,11 @@ class Quad_ManiaplanetSystem extends Quad {
const SUBSTYLE_Statistics = 'Statistics'; const SUBSTYLE_Statistics = 'Statistics';
/** /**
* Construct ManiaplanetSystem quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,19 +14,20 @@ class Quad_MedalsBig extends Quad {
* Constants * Constants
*/ */
const STYLE = 'MedalsBig'; const STYLE = 'MedalsBig';
const SUBSTYLE_MedalBronze = 'MedalBronze'; const SUBSTYLE_MedalBronze = 'MedalBronze';
const SUBSTYLE_MedalGold = 'MedalGold'; const SUBSTYLE_MedalGold = 'MedalGold';
const SUBSTYLE_MedalGoldPerspective = 'MedalGoldPerspective'; const SUBSTYLE_MedalGoldPerspective = 'MedalGoldPerspective';
const SUBSTYLE_MedalNadeo = 'MedalNadeo'; const SUBSTYLE_MedalNadeo = 'MedalNadeo';
const SUBSTYLE_MedalNadeoPerspective = 'MedalNadeoPerspective'; const SUBSTYLE_MedalNadeoPerspective = 'MedalNadeoPerspective';
const SUBSTYLE_MedalSilver = 'MedalSilver'; const SUBSTYLE_MedalSilver = 'MedalSilver';
const SUBSTYLE_MedalSlot = 'MedalSlot'; const SUBSTYLE_MedalSlot = 'MedalSlot';
/** /**
* Construct MedalsBig quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,16 +14,17 @@ class Quad_TitleLogos extends Quad {
* Constants * Constants
*/ */
const STYLE = 'TitleLogos'; const STYLE = 'TitleLogos';
const SUBSTYLE_Author = 'Author'; const SUBSTYLE_Author = 'Author';
const SUBSTYLE_Collection = 'Collection'; const SUBSTYLE_Collection = 'Collection';
const SUBSTYLE_Icon = 'Icon'; const SUBSTYLE_Icon = 'Icon';
const SUBSTYLE_Title = 'Title'; const SUBSTYLE_Title = 'Title';
/** /**
* Construct TitleLogos quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -14,66 +14,67 @@ class Quad_UIConstruction_Buttons extends Quad {
* Constants * Constants
*/ */
const STYLE = 'UIConstruction_Buttons'; const STYLE = 'UIConstruction_Buttons';
const SUBSTYLE_ActionMaker = 'ActionMaker'; const SUBSTYLE_ActionMaker = 'ActionMaker';
const SUBSTYLE_Add = 'Add'; const SUBSTYLE_Add = 'Add';
const SUBSTYLE_Author = 'Author'; const SUBSTYLE_Author = 'Author';
const SUBSTYLE_AuthorTime = 'AuthorTime'; const SUBSTYLE_AuthorTime = 'AuthorTime';
const SUBSTYLE_BgEditors = 'BgEditors'; const SUBSTYLE_BgEditors = 'BgEditors';
const SUBSTYLE_BgIcons = 'BgIcons'; const SUBSTYLE_BgIcons = 'BgIcons';
const SUBSTYLE_BgMain = 'BgMain'; const SUBSTYLE_BgMain = 'BgMain';
const SUBSTYLE_BgTools = 'BgTools'; const SUBSTYLE_BgTools = 'BgTools';
const SUBSTYLE_BlockEditor = 'BlockEditor'; const SUBSTYLE_BlockEditor = 'BlockEditor';
const SUBSTYLE_Camera = 'Camera'; const SUBSTYLE_Camera = 'Camera';
const SUBSTYLE_Challenge = 'Challenge'; const SUBSTYLE_Challenge = 'Challenge';
const SUBSTYLE_CopyPaste = 'CopyPaste'; const SUBSTYLE_CopyPaste = 'CopyPaste';
const SUBSTYLE_DecalEditor = 'DecalEditor'; const SUBSTYLE_DecalEditor = 'DecalEditor';
const SUBSTYLE_Delete = 'Delete'; const SUBSTYLE_Delete = 'Delete';
const SUBSTYLE_Directory = 'Directory'; const SUBSTYLE_Directory = 'Directory';
const SUBSTYLE_Down = 'Down'; const SUBSTYLE_Down = 'Down';
const SUBSTYLE_Drive = 'Drive'; const SUBSTYLE_Drive = 'Drive';
const SUBSTYLE_Erase = 'Erase'; const SUBSTYLE_Erase = 'Erase';
const SUBSTYLE_Help = 'Help'; const SUBSTYLE_Help = 'Help';
const SUBSTYLE_Item = 'Item'; const SUBSTYLE_Item = 'Item';
const SUBSTYLE_Left = 'Left'; const SUBSTYLE_Left = 'Left';
const SUBSTYLE_MacroBlockEditor = 'MacroBlockEditor'; const SUBSTYLE_MacroBlockEditor = 'MacroBlockEditor';
const SUBSTYLE_MediaTracker = 'MediaTracker'; const SUBSTYLE_MediaTracker = 'MediaTracker';
const SUBSTYLE_ObjectEditor = 'ObjectEditor'; const SUBSTYLE_ObjectEditor = 'ObjectEditor';
const SUBSTYLE_OffZone = 'OffZone'; const SUBSTYLE_OffZone = 'OffZone';
const SUBSTYLE_Options = 'Options'; const SUBSTYLE_Options = 'Options';
const SUBSTYLE_Paint = 'Paint'; const SUBSTYLE_Paint = 'Paint';
const SUBSTYLE_Pick = 'Pick'; const SUBSTYLE_Pick = 'Pick';
const SUBSTYLE_Plugins = 'Plugins'; const SUBSTYLE_Plugins = 'Plugins';
const SUBSTYLE_Quit = 'Quit'; const SUBSTYLE_Quit = 'Quit';
const SUBSTYLE_Redo = 'Redo'; const SUBSTYLE_Redo = 'Redo';
const SUBSTYLE_Reload = 'Reload'; const SUBSTYLE_Reload = 'Reload';
const SUBSTYLE_Right = 'Right'; const SUBSTYLE_Right = 'Right';
const SUBSTYLE_Save = 'Save'; const SUBSTYLE_Save = 'Save';
const SUBSTYLE_SaveAs = 'SaveAs'; const SUBSTYLE_SaveAs = 'SaveAs';
const SUBSTYLE_ScriptEditor = 'ScriptEditor'; const SUBSTYLE_ScriptEditor = 'ScriptEditor';
const SUBSTYLE_SpotModelClearUnused = 'SpotModelClearUnused'; const SUBSTYLE_SpotModelClearUnused = 'SpotModelClearUnused';
const SUBSTYLE_SpotModelDuplicate = 'SpotModelDuplicate'; const SUBSTYLE_SpotModelDuplicate = 'SpotModelDuplicate';
const SUBSTYLE_SpotModelNew = 'SpotModelNew'; const SUBSTYLE_SpotModelNew = 'SpotModelNew';
const SUBSTYLE_SpotModelRename = 'SpotModelRename'; const SUBSTYLE_SpotModelRename = 'SpotModelRename';
const SUBSTYLE_Square = 'Square'; const SUBSTYLE_Square = 'Square';
const SUBSTYLE_Stats = 'Stats'; const SUBSTYLE_Stats = 'Stats';
const SUBSTYLE_Sub = 'Sub'; const SUBSTYLE_Sub = 'Sub';
const SUBSTYLE_TerrainEditor = 'TerrainEditor'; const SUBSTYLE_TerrainEditor = 'TerrainEditor';
const SUBSTYLE_TestSm = 'TestSm'; const SUBSTYLE_TestSm = 'TestSm';
const SUBSTYLE_Text = 'Text'; const SUBSTYLE_Text = 'Text';
const SUBSTYLE_Tools = 'Tools'; const SUBSTYLE_Tools = 'Tools';
const SUBSTYLE_Underground = 'Underground'; const SUBSTYLE_Underground = 'Underground';
const SUBSTYLE_Undo = 'Undo'; const SUBSTYLE_Undo = 'Undo';
const SUBSTYLE_Up = 'Up'; const SUBSTYLE_Up = 'Up';
const SUBSTYLE_Validate = 'Validate'; const SUBSTYLE_Validate = 'Validate';
const SUBSTYLE_Validate_Step1 = 'Validate_Step1'; const SUBSTYLE_Validate_Step1 = 'Validate_Step1';
const SUBSTYLE_Validate_Step2 = 'Validate_Step2'; const SUBSTYLE_Validate_Step2 = 'Validate_Step2';
const SUBSTYLE_Validate_Step3 = 'Validate_Step3'; const SUBSTYLE_Validate_Step3 = 'Validate_Step3';
/** /**
* Construct UIConstruction_Buttons quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -37,10 +37,11 @@ class Quad_UiSMSpectatorScoreBig extends Quad {
CONST SUBSTYLE_UIRange2Bg = 'UIRange2Bg'; CONST SUBSTYLE_UIRange2Bg = 'UIRange2Bg';
/** /**
* Construct UiSMSpectatorScoreBig quad *
* @see \FML\Controls\Quad
*/ */
public function __construct() { public function __construct($id = null) {
parent::__construct(); parent::__construct($id);
$this->setStyle(self::STYLE); $this->setStyle(self::STYLE);
} }
} }

View File

@ -10,7 +10,10 @@ namespace FML\Controls;
class Video extends Control implements Playable, Scriptable { class Video extends Control implements Playable, Scriptable {
/** /**
* Construct a new video control * Construct a new Video Control
*
* @param string $id
* Control Id
*/ */
public function __construct($id = null) { public function __construct($id = null) {
parent::__construct($id); parent::__construct($id);

View File

@ -1,147 +1,181 @@
<?php <?php
namespace FML\Elements; namespace FML;
use FML\Types\Renderable; /**
* Class representing a Custom_UI
/** *
* Class representing the Custom_UI * @author steeffeen
* */
* @author steeffeen class CustomUI {
*/
class CustomUI implements Renderable { /**
/** * Protected Properties
* Protected Properties */
*/ protected $encoding = 'utf-8';
protected $tagName = 'custom_ui'; protected $tagName = 'custom_ui';
protected $noticeVisible = null; protected $noticeVisible = null;
protected $challengeInfoVisible = null; protected $challengeInfoVisible = null;
protected $netInfosVisible = null; protected $netInfosVisible = null;
protected $chatVisible = null; protected $chatVisible = null;
protected $checkpointListVisible = null; protected $checkpointListVisible = null;
protected $roundScoresVisible = null; protected $roundScoresVisible = null;
protected $scoretableVisible = null; protected $scoretableVisible = null;
protected $globalVisible = null; protected $globalVisible = null;
/** /**
* Set Showing of Notices * Set XML Encoding
* *
* @param bool $visible * @param string $encoding
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setNoticeVisible($visible) { public function setXMLEncoding($encoding) {
$this->noticeVisible = $visible; $this->encoding = $encoding;
return $this; return $this;
} }
/** /**
* Set Showing of the Challenge Info * Set Showing of Notices
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setChallengeInfoVisible($visible) { public function setNoticeVisible($visible) {
$this->challengeInfoVisible = $visible; $this->noticeVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Showing of the Net Infos * Set Showing of the Challenge Info
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setNetInfosVisible($visible) { public function setChallengeInfoVisible($visible) {
$this->netInfosVisible = $visible; $this->challengeInfoVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Showing of the Chat * Set Showing of the Net Infos
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setChatVisible($visible) { public function setNetInfosVisible($visible) {
$this->chatVisible = $visible; $this->netInfosVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Showing of the Checkpoint List * Set Showing of the Chat
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setCheckpointListVisible($visible) { public function setChatVisible($visible) {
$this->checkpointListVisible = $visible; $this->chatVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Showing of Round Scores * Set Showing of the Checkpoint List
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setRoundScoresVisible($visible) { public function setCheckpointListVisible($visible) {
$this->roundScoresVisible = $visible; $this->checkpointListVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Showing of the Scoretable * Set Showing of Round Scores
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setScoretableVisible($visible) { public function setRoundScoresVisible($visible) {
$this->scoretableVisible = $visible; $this->roundScoresVisible = $visible;
return $this; return $this;
} }
/** /**
* Set Global Showing * Set Showing of the Scoretable
* *
* @param bool $visible * @param bool $visible
* @return \FML\Elements\CustomUI * @return \FML\CustomUI
*/ */
public function setGlobalVisible($visible) { public function setScoretableVisible($visible) {
$this->globalVisible = $visible; $this->scoretableVisible = $visible;
return $this; return $this;
} }
/** /**
* * Set Global Showing
* @see \FML\Renderable::render() *
*/ * @param bool $visible
public function render(\DOMDocument $domDocument) { * @return \FML\CustomUI
$settings = $this->getSettings(); */
$xml = $domDocument->createElement($this->tagName); public function setGlobalVisible($visible) {
foreach ($settings as $setting => $value) { $this->globalVisible = $visible;
if ($value === null) continue; return $this;
$xmlElement = $domDocument->createElement($setting); }
$xmlElement->setAttribute('visible', ($value ? 'true' : 'false'));
$xml->appendChild($xmlElement); /**
} * Render the XML Document
return $xml; *
} * @param \DOMDocument $domDocument
* @return \DOMDocument
/** */
* Get associative Array of all CustomUI Settings public function render($domDocument = null) {
* $isChild = false;
* @return array if ($domDocument) {
*/ $isChild = true;
private function getSettings() { }
$settings = array(); if (!$isChild) {
$settings['challenge_info'] = $this->challengeInfoVisible; $domDocument = new \DOMDocument('1.0', $this->encoding);
$settings['chat'] = $this->chatVisible; }
$settings['checkpoint_list'] = $this->checkpointListVisible; $xmlElement = $domDocument->createElement($this->tagName);
$settings['global'] = $this->globalVisible; $settings = $this->getSettings();
$settings['net_infos'] = $this->netInfosVisible; foreach ($settings as $setting => $value) {
$settings['notice'] = $this->noticeVisible; if ($value === null) continue;
$settings['round_scores'] = $this->roundScoresVisible; $xmlSubElement = $domDocument->createElement($setting);
$settings['scoretable'] = $this->scoretableVisible; $xmlSubElement->setAttribute('visible', ($value ? 1 : 0));
return $settings; $xmlElement->appendChild($xmlSubElement);
} }
if ($isChild) {
return $xmlElement;
}
return $domDocument;
}
/**
* Get String Representation
*
* @return string
*/
public function __toString() {
$domDocument = $this->render();
$xmlText = $domDocument->saveXML();
return $xmlText;
}
/**
* Get associative Array of all CustomUI Settings
*
* @return array
*/
private 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;
}
} }

View File

@ -9,7 +9,7 @@ namespace FML\Elements;
*/ */
class Format implements BgColorable, Renderable, Styleable, TextFormatable { class Format implements BgColorable, Renderable, Styleable, TextFormatable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $tagName = 'format'; protected $tagName = 'format';

View File

@ -9,15 +9,16 @@ namespace FML\Elements;
*/ */
class Including implements Renderable { class Including implements Renderable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $url = ''; protected $url = '';
protected $tagName = 'include'; protected $tagName = 'include';
/** /**
* Set url * Set Url
* *
* @param string $url * @param string $url
* Include Url
*/ */
public function setUrl($url) { public function setUrl($url) {
$this->url = $url; $this->url = $url;
@ -29,7 +30,9 @@ class Including implements Renderable {
*/ */
public function render(\DOMDocument $domDocument) { public function render(\DOMDocument $domDocument) {
$xml = $domDocument->createElement($this->tagName); $xml = $domDocument->createElement($this->tagName);
$xml->setAttribute('url', $this->url); if ($this->url) {
$xml->setAttribute('url', $this->url);
}
return $xml; return $xml;
} }
} }

View File

@ -9,15 +9,16 @@ namespace FML\Elements;
*/ */
class Music implements Renderable { class Music implements Renderable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $data = ''; protected $data = '';
protected $tagName = 'music'; protected $tagName = 'music';
/** /**
* Set data * Set Data Url
* *
* @param string $data * @param string $data
* Media Url
* @return \FML\Elements\Music * @return \FML\Elements\Music
*/ */
public function setData($data) { public function setData($data) {

View File

@ -11,13 +11,13 @@ use FML\Types\Renderable;
*/ */
class SimpleScript implements Renderable { class SimpleScript implements Renderable {
/** /**
* Protected properties * Protected Properties
*/ */
protected $tagName = 'script'; protected $tagName = 'script';
protected $text = ''; protected $text = '';
/** /**
* Set script text * Set Script Text
* *
* @param string $text * @param string $text
* @return \FML\Script\Script * @return \FML\Script\Script

View File

@ -1,176 +1,195 @@
<?php <?php
namespace FML; namespace FML;
use FML\Types\Container; use FML\Types\Container;
use FML\Types\Renderable; use FML\Types\Renderable;
use FML\Script\Script; use FML\Script\Script;
/** /**
* Class representing a manialink * Class representing a Manialink
* *
* @author steeffeen * @author steeffeen
*/ */
class ManiaLink implements Container { class ManiaLink implements Container {
/** /**
* Protected properties * Protected Properties
*/ */
protected $encoding = 'utf-8'; protected $encoding = 'utf-8';
protected $tagName = 'manialink'; protected $tagName = 'manialink';
protected $id = ''; protected $id = '';
protected $version = 1; protected $version = 1;
protected $background = ''; protected $background = '';
protected $navigable3d = 0; protected $navigable3d = 0;
protected $timeout = 0; protected $timeout = 0;
protected $children = array(); protected $children = array();
protected $script = null; protected $script = null;
/** /**
* Construct a new manialink * Construct a new Manialink
*/ *
public function __construct($id = null) { * @param string $id
if ($id !== null) { * Manialink Id
$this->setId($id); */
} public function __construct($id = null) {
} if ($id !== null) {
$this->setId($id);
/** }
* Set xml encoding }
*
* @param string $encoding /**
* @return \FML\ManiaLink * Set XML Encoding
*/ *
public function setXmlEncoding($encoding) { * @param string $encoding
$this->encoding = $encoding; * XML Encoding
return $this; * @return \FML\ManiaLink
} */
public function setXmlEncoding($encoding) {
/** $this->encoding = $encoding;
* Set id return $this;
* }
* @param string $id
* @return \FML\ManiaLink /**
*/ * Set Manialink Id
public function setId($id) { *
$this->id = $id; * @param string $id
return $this; * Manialink Id
} * @return \FML\ManiaLink
*/
/** public function setId($id) {
* Set background $this->id = $id;
* return $this;
* @param string $background }
* @return \FML\ManiaLink
*/ /**
public function setBackground($background) { * Set Background
$this->background = $background; *
return $this; * @param string $background
} * Background Value
* @return \FML\ManiaLink
/** */
* Set navigable3d public function setBackground($background) {
* $this->background = $background;
* @param bool $navigable3d return $this;
* @return \FML\ManiaLink }
*/
public function setNavigable3d($navigable3d) { /**
$this->navigable3d = ($navigable3d ? 1 : 0); * Set Navigable3d
return $this; *
} * @param bool $navigable3d
* If the manialink is 3d navigable
/** * @return \FML\ManiaLink
* Set timeout */
* public function setNavigable3d($navigable3d) {
* @param int $timeout $this->navigable3d = ($navigable3d ? 1 : 0);
* @return \FML\ManiaLink return $this;
*/ }
public function setTimeout($timeout) {
$this->timeout = $timeout; /**
return $this; * Set Timeout
} *
* @param int $timeout
/** * Timeout Duration
* * @return \FML\ManiaLink
* @see \FML\Types\Container::add() */
* @return \FML\ManiaLink public function setTimeout($timeout) {
*/ $this->timeout = $timeout;
public function add(Renderable $child) { return $this;
array_push($this->children, $child); }
return $this;
} /**
*
/** * @see \FML\Types\Container::add()
* * @return \FML\ManiaLink
* @see \FML\Types\Container::removeChildren() */
* @return \FML\ManiaLink public function add(Renderable $child) {
*/ array_push($this->children, $child);
public function removeChildren() { return $this;
$this->children = array(); }
return $this;
} /**
*
/** * @see \FML\Types\Container::removeChildren()
* Set the script object of the Manialink * @return \FML\ManiaLink
* */
* @param Script $script public function removeChildren() {
* @return \FML\ManiaLink $this->children = array();
*/ return $this;
public function setScript(Script $script) { }
$this->script = $script;
return $this; /**
} * Set the script object of the Manialink
*
/** * @param Script $script
* Render the xml document * @return \FML\ManiaLink
* */
* @param bool $echo public function setScript(Script $script) {
* If the xml should be echoed and the content-type header should be set $this->script = $script;
* @param \DOMDocument $domDocument return $this;
* @return \DOMDocument }
*/
public function render($echo = false, $domDocument = null) { /**
$isChild = false; * Render the XML Document
if ($domDocument) { *
$isChild = true; * @param bool $echo
} * If the xml should be echoed and the content-type header should be set
if (!$isChild) { * @param \DOMDocument $domDocument
$domDocument = new \DOMDocument('1.0', $this->encoding); * @return \DOMDocument
} */
$manialink = $domDocument->createElement($this->tagName); public function render($echo = false, $domDocument = null) {
if (!$isChild) { $isChild = false;
$domDocument->appendChild($manialink); if ($domDocument) {
} $isChild = true;
if ($this->id) { }
$manialink->setAttribute('id', $this->id); if (!$isChild) {
} $domDocument = new \DOMDocument('1.0', $this->encoding);
if ($this->version) { }
$manialink->setAttribute('version', $this->version); $manialink = $domDocument->createElement($this->tagName);
} if (!$isChild) {
if ($this->background) { $domDocument->appendChild($manialink);
$manialink->setAttribute('background', $this->background); }
} if ($this->id) {
if ($this->navigable3d) { $manialink->setAttribute('id', $this->id);
$manialink->setAttribute('navigable3d', $this->navigable3d); }
} if ($this->version) {
if ($this->timeout) { $manialink->setAttribute('version', $this->version);
$timeoutXml = $domDocument->createElement('timeout', $this->timeout); }
$manialink->appendChild($timeoutXml); if ($this->background) {
} $manialink->setAttribute('background', $this->background);
foreach ($this->children as $child) { }
$childXml = $child->render($domDocument); if ($this->navigable3d) {
$manialink->appendChild($childXml); $manialink->setAttribute('navigable3d', $this->navigable3d);
} }
if ($this->script) { if ($this->timeout) {
$scriptXml = $this->script->render($domDocument); $timeoutXml = $domDocument->createElement('timeout', $this->timeout);
$manialink->appendChild($scriptXml); $manialink->appendChild($timeoutXml);
} }
if ($isChild) { foreach ($this->children as $child) {
return $manialink; $childXml = $child->render($domDocument);
} $manialink->appendChild($childXml);
if ($echo) { }
header('Content-Type: application/xml'); if ($this->script) {
echo $domDocument->saveXML(); $scriptXml = $this->script->render($domDocument);
} $manialink->appendChild($scriptXml);
return $domDocument; }
} if ($isChild) {
return $manialink;
}
if ($echo) {
header('Content-Type: application/xml');
echo $domDocument->saveXML();
}
return $domDocument;
}
/**
* Get String Representation
*
* @return string
*/
public function __toString() {
$domDocument = $this->render();
$xmlText = $domDocument->saveXML();
return $xmlText;
}
} }

View File

@ -9,16 +9,17 @@ namespace FML;
*/ */
class ManiaLinks { class ManiaLinks {
/** /**
* Protected properties * Protected Properties
*/ */
protected $encoding = 'utf-8'; protected $encoding = 'utf-8';
protected $tagName = 'manialinks'; protected $tagName = 'manialinks';
protected $children = array(); protected $children = array();
/** /**
* Set xml encoding * Set XML Encoding
* *
* @param string $encoding * @param string $encoding
* XML Encoding
* @return \FML\ManiaLinks * @return \FML\ManiaLinks
*/ */
public function setXmlEncoding($encoding) { public function setXmlEncoding($encoding) {
@ -27,18 +28,21 @@ class ManiaLinks {
} }
/** /**
* Add a child manialink * Add a Child Manialink
* *
* @param ManiaLink $child * @param ManiaLink $child
* Child Manialink
* @return \FML\ManiaLinks * @return \FML\ManiaLinks
*/ */
public function add(ManiaLink $child) { public function add(ManiaLink $child) {
array_push($this->children, $child); if (!in_array($child, $this->children)) {
array_push($this->children, $child);
}
return $this; return $this;
} }
/** /**
* Remove all child manialinks * Remove all Child Manialinks
* *
* @return \FML\ManiaLinks * @return \FML\ManiaLinks
*/ */
@ -48,7 +52,7 @@ class ManiaLinks {
} }
/** /**
* Render the xml document * Render the XML Document
* *
* @param bool $echo * @param bool $echo
* If the xml should be echoed and the content-type header should be set * If the xml should be echoed and the content-type header should be set

View File

@ -0,0 +1,23 @@
<?php
namespace FML\Script;
/**
* Builder Class offering Methods to build ManiaScript
*
* @author steeffeen
*/
abstract class Builder {
/**
* Build a Label Implementation Block
*
* @param string $labelName
* @param string $implementationCode
* @return string
*/
public static function getLabelImplementationBlock($labelName, $implementationCode) {
$labelText = PHP_EOL . "***{$labelName}***" . PHP_EOL . "***{$implementationCode}***" . PHP_EOL;
return $labelText;
}
}

View File

@ -1,100 +0,0 @@
<?php
namespace FML\Script;
use FML\Controls\Control;
use FML\Script\Sections\Constants;
use FML\Script\Sections\Labels;
use FML\Types\Scriptable;
/**
* ScriptFeature class offering menu behaviors
*
* @author steeffeen
*/
class Menus implements Constants, Labels, ScriptFeature {
/**
* Constants
*/
const C_MENUIDS = 'C_FML_MenuIds';
/**
* Protected properties
*/
protected $menus = array();
/**
* Add menu behavior defined by the given relationships
*
* @param array $menuRelationships
* @return \FML\Script\Menus
*/
public function add(array $menuRelationships) {
$menus = array();
$subMenus = array();
foreach ($menuRelationships as $relationship) {
$menuItemControl = $relationship[0];
$subMenuControl = $relationship[1];
if (!($menuItemControl instanceof Scriptable)) {
trigger_error('No Scriptable instance given as menu item.', E_USER_ERROR);
}
if (!($subMenuControl instanceof Control)) {
trigger_error('No Control instance given as sub menu.', E_USER_ERROR);
}
$menuItemControl->assignId();
$menuItemControl->setScriptEvents(true);
$subMenuControl->assignId();
array_push($menus, array($menuItemControl->getId(), $subMenuControl->getId()));
array_push($subMenus, $subMenuControl->getId());
}
array_push($this->menus, array($menus, $subMenus));
return $this;
}
/**
*
* @see \FML\Script\Sections\Constants::getConstants()
*/
public function getConstants() {
$constant = '[';
$index = 0;
foreach ($this->menus as $menu) {
$constant .= '[';
foreach ($menu[0] as $menuRel) {
$constant .= '"' . $menuRel[0] . '" => ["' . $menuRel[1] . '"], ';
}
$constant .= '"__FML__Sub__Menus__" => [';
$subIndex = 0;
foreach ($menu[1] as $subMenu) {
$constant .= '"' . $subMenu . '"';
if ($subIndex < count($menu[1]) - 1) {
$constant .= ', ';
}
$subIndex++;
}
$constant .= ']]';
if ($index < count($this->menus) - 1) {
$constant .= ', ';
}
$index++;
}
$constant .= ']';
$constants = array();
$constants[self::C_MENUIDS] = $constant;
return $constants;
}
/**
*
* @see \FML\Script\Sections\Labels::getLabels()
*/
public function getLabels() {
$labels = array();
$labelMouseClick = file_get_contents(__DIR__ . '/Templates/MenuMouseClick.txt');
$labels[Labels::MOUSECLICK] = $labelMouseClick;
return $labels;
}
}

View File

@ -1,147 +0,0 @@
<?php
namespace FML\Script;
use FML\Controls\Control;
use FML\Script\Sections\Constants;
use FML\Script\Sections\Globals;
use FML\Script\Sections\Includes;
use FML\Script\Sections\Labels;
use FML\Types\Scriptable;
use FML\Controls\Label;
/**
* ScriptFeature class offering paging
*
* @author steeffeen
*/
class Pages implements Constants, Globals, Includes, Labels, ScriptFeature {
/**
* Constants
*/
const C_PAGEIDS = 'C_FML_PageIds';
/**
* Protected properties
*/
protected $pages = array();
/**
* Add paging behavior
*
* @param array $pageButtons
* @param array $pages
* @param Label $counterLabel
* @return \FML\Script\Pages
*/
public function add(array $pageButtons, array $pages, Label $counterLabel = null) {
$actionIds = array();
foreach ($pageButtons as $action => $pageButton) {
if (!($pageButton instanceof Control)) {
trigger_error('No Control instance given.', E_USER_ERROR);
}
$pageButton->assignId();
if (!($pageButton instanceof Scriptable)) {
trigger_error('No Scriptable instance given.', E_USER_ERROR);
}
$pageButton->setScriptEvents(true);
$actionIds[$pageButton->getId()] = $action;
}
$pageIds = array();
foreach ($pages as $page) {
if (!($page instanceof Control)) {
trigger_error('No Control instance given.', E_USER_ERROR);
}
$page->assignId();
if (!empty($pageIds)) {
$page->setVisible(false);
}
array_push($pageIds, $page->getId());
}
if ($counterLabel) {
$counterLabel->assignId();
$counterId = $counterLabel->getId();
}
else {
$counterId = uniqid();
}
array_push($this->pages, array($actionIds, $pageIds, $counterId));
}
/**
*
* @see \FML\Script\Sections\Includes::getIncludes()
*/
public function getIncludes() {
$includes = array();
$includes["TextLib"] = "TextLib";
return $includes;
}
/**
*
* @see \FML\Script\Sections\Constants::getConstants()
*/
public function getConstants() {
$constant = '[';
$index = 0;
foreach ($this->pages as $page) {
$constant .= '[';
$actionIds = $page[0];
foreach ($actionIds as $actionId => $action) {
$constant .= '"' . $actionId . '" => ["' . $action . '"], ';
}
$constant .= '"__FML__Pages__Id__" => ["' . $page[2] . '"], ';
$constant .= '"__FML__Pages__Ids__" => [';
if (count($page[1]) <= 0) {
$constant .= '""';
}
else {
$subIndex = 0;
foreach ($page[1] as $pageId) {
$constant .= '"' . $pageId . '"';
if ($subIndex < count($page[1]) - 1) {
$constant .= ', ';
}
$subIndex++;
}
}
$constant .= ']]';
if ($index < count($this->pages) - 1) {
$constant .= ', ';
}
$index++;
}
$constant .= ']';
$constants = array();
$constants[self::C_PAGEIDS] = $constant;
return $constants;
}
/**
*
* @see \FML\Script\Sections\Globals::getGlobals()
*/
public function getGlobals() {
$globals = array();
$globals['G_FML_PageIndexes'] = 'Integer[Text]';
return $globals;
}
/**
*
* @see \FML\Script\Sections\Labels::getLabels()
*/
public function getLabels() {
$labels = array();
$labelOnInit = file_get_contents(__DIR__ . '/Templates/PageOnInit.txt');
$labels[Labels::ONINIT] = $labelOnInit;
$labelMouseClick = file_get_contents(__DIR__ . '/Templates/PageMouseClick.txt');
$labels[Labels::MOUSECLICK] = $labelMouseClick;
return $labels;
}
}

View File

@ -1,4 +1,4 @@
/********************************* /*********************************
* FancyManiaLinks by steeffeen * * FancyManiaLinks by steeffeen *
* http://fml.steeffeen.com * * http://fml.steeffeen.com *
*********************************/ *********************************/

View File

@ -1,7 +1,8 @@
Void Dummy() {} Void Dummy() {}
main() { main() {
declare FML_ScriptStart = Now;
+++OnInit+++ +++OnInit+++
declare FML_LoopCounter = 0;
while (True) { while (True) {
yield; yield;
foreach (Event in PendingEvents) { foreach (Event in PendingEvents) {
@ -24,5 +25,6 @@ main() {
} }
} }
+++Loop+++ +++Loop+++
FML_LoopCounter += 1;
} }
} }

View File

@ -1,216 +1,445 @@
<?php <?php
namespace FML\Script; namespace FML\Script;
use FML\Script\Sections\Constants; use FML\Controls\Control;
use FML\Script\Sections\Functions; use FML\Types\Scriptable;
use FML\Script\Sections\Globals; use FML\Controls\Label;
use FML\Script\Sections\Includes;
use FML\Script\Sections\Labels; /**
* Class representing the ManiaLink Script
/** *
* Class representing the Manialink Script * @author steeffeen
* */
* @author steeffeen class Script {
*/ /**
class Script { * Constants
/** */
* Protected properties const CLASS_TOOLTIPS = "FML_Tooltips";
*/ const CLASS_MENU = "FML_Menu";
protected $features = array(); const CLASS_MENUBUTTON = "FML_MenuButton";
const CLASS_PAGE = "FML_Page";
/** const CLASS_PAGER = "FML_Pager";
* Add a script feature const CLASS_PAGELABEL = "FML_PageLabel";
* const CLASS_PROFILE = "FML_Profile";
* @param ScriptFeature $scriptFeature const CLASS_MAPINFO = "FML_MapInfo";
* @return \FML\Script\Script const LABEL_ONINIT = "OnInit";
*/ const LABEL_LOOP = "Loop";
public function addFeature(ScriptFeature $scriptFeature) { const LABEL_ENTRYSUBMIT = "EntrySubmit";
array_push($this->features, $scriptFeature); const LABEL_KEYPRESS = "KeyPress";
return $this; const LABEL_MOUSECLICK = "MouseClick";
} const LABEL_MOUSEOUT = "MouseOut";
const LABEL_MOUSEOVER = "MouseOver";
/**
* Remove all script features /**
* * Protected Properties
* @return \FML\Script\Script */
*/ protected $tagName = 'script';
public function removeFeatures() { protected $includes = array();
$this->features = array(); protected $tooltips = false;
return $this; protected $menus = false;
} protected $pages = false;
protected $profile = false;
/** protected $mapInfo = false;
* Create the script xml tag
* /**
* @param \DOMDocument $domDocument * Add an Include to the Script
* @return \DOMElement *
*/ * @param string $namespace
public function render(\DOMDocument $domDocument) { * @param string $file
$scriptXml = $domDocument->createElement('script'); * @return \FML\Script\Script
$scriptText = $this->buildScriptText(); */
$scriptComment = $domDocument->createComment($scriptText); public function addInclude($namespace, $file) {
$scriptXml->appendChild($scriptComment); $this->includes[$namespace] = $file;
return $scriptXml; return $this;
} }
/** /**
* Build the complete script text based on all script items * Add a Tooltip Behavior
* *
* @return string * @param Control $hoverControl
*/ * @param Control $tooltipControl
private function buildScriptText() { * @return \FML\Script\Script
$scriptText = ""; */
$scriptText = $this->addHeaderPart($scriptText); public function addTooltip(Control $hoverControl, Control $tooltipControl) {
$scriptText = $this->addIncludesPart($scriptText); if (!($hoverControl instanceof Scriptable)) {
$scriptText = $this->addConstantsPart($scriptText); trigger_error('Scriptable Control needed as HoverControl for Tooltips!');
$scriptText = $this->addGlobalsPart($scriptText); return $this;
$scriptText = $this->addLabelsPart($scriptText); }
$scriptText = $this->addFunctionsPart($scriptText); $tooltipControl->checkId();
$scriptText = $this->addMainPart($scriptText); $tooltipControl->setVisible(false);
return $scriptText; $hoverControl->setScriptEvents(true);
} $hoverControl->addClass(self::CLASS_TOOLTIPS);
$hoverControl->addClass($tooltipControl->getId());
/** $this->tooltips = true;
* Add the header comment to the script return $this;
* }
* @param string $scriptText
* @return string /**
*/ * Add a Menu Behavior
private function addHeaderPart($scriptText) { *
$headerPart = file_get_contents(__DIR__ . '/Templates/Header.txt'); * @param Control $clickControl
return $scriptText . $headerPart; * @param Control $menuControl
} * @param string $menuId
* @return \FML\Script\Script
/** */
* Add the includes to the script public function addMenu(Control $clickControl, Control $menuControl, $menuId = null) {
* if (!($clickControl instanceof Scriptable)) {
* @param string $scriptText trigger_error('Scriptable Control needed as ClickControl for Menus!');
* @return string return $this;
*/ }
private function addIncludesPart($scriptText) { if (!$menuId) $menuId = '_';
$includes = array(); $menuControl->checkId();
foreach ($this->features as $feature) { $menuControl->addClass(self::CLASS_MENU);
if (!($feature instanceof Includes)) { $menuControl->addClass($menuId);
continue; $clickControl->setScriptEvents(true);
} $clickControl->addClass(self::CLASS_MENUBUTTON);
$featureIncludes = $feature->getIncludes(); $clickControl->addClass($menuId . '-' . $menuControl->getId());
foreach ($featureIncludes as $namespace => $fileName) { $this->addInclude('TextLib', 'TextLib');
$includes[$namespace] = $fileName; $this->menus = true;
} return $this;
} }
$includesPart = PHP_EOL;
foreach ($includes as $namespace => $fileName) { /**
$includesPart .= "#Include \"{$fileName}\" as {$namespace}" . PHP_EOL; * Add a Page for a Paging Behavior
} *
return $scriptText . $includesPart; * @param Control $pageControl
} * @param int $pageNumber
* @param string $pagesId
/** * @return \FML\Script\Script
* Add the declared constants to the script */
* public function addPage(Control $pageControl, $pageNumber, $pagesId = null) {
* @param string $scriptText $pageNumber = (int) $pageNumber;
* @return string if (!$pagesId) $pagesId = '_';
*/ $pageControl->addClass(self::CLASS_PAGE);
private function addConstantsPart($scriptText) { $pageControl->addClass($pagesId);
$constants = array(); $pageControl->addClass(self::CLASS_PAGE . '-P' . $pageNumber);
foreach ($this->features as $feature) { return $this;
if (!($feature instanceof Constants)) { }
continue;
} /**
$featureConstants = $feature->getConstants(); * Add a Pager Button for a Paging Behavior
foreach ($featureConstants as $name => $value) { *
$constants[$name] = $value; * @param Control $pagerControl
} * @param int $pagingAction
} * @param string $pagesId
$constantsPart = PHP_EOL; * @return \FML\Script\Script
foreach ($constants as $name => $value) { */
$constantsPart .= "#Const {$name} {$value}" . PHP_EOL; public function addPager(Control $pagerControl, $pagingAction, $pagesId = null) {
} if (!($pagerControl instanceof Scriptable)) {
return $scriptText . $constantsPart; trigger_error('Scriptable Control needed as PagerControl for Pages!');
} return $this;
}
/** $pagingAction = (int) $pagingAction;
* Add the declared global variables to the script if (!$pagesId) $pagesId = '_';
* $pagerControl->setScriptEvents(true);
* @param string $scriptText $pagerControl->addClass(self::CLASS_PAGER);
* @return string $pagerControl->addClass(self::CLASS_PAGER . '-I' . $pagesId);
*/ $pagerControl->addClass(self::CLASS_PAGER . '-A' . $pagingAction);
private function addGlobalsPart($scriptText) { $this->addInclude('TextLib', 'TextLib');
$globals = array(); $this->pages = true;
foreach ($this->features as $feature) { return $this;
if (!($feature instanceof Globals)) { }
continue;
} /**
$featureGlobals = $feature->getGlobals(); * Add a Label that shows the current Page Number
foreach ($featureGlobals as $name => $type) { *
$globals[$name] = $type; * @param Label $pageLabel
} * @param string $pagesId
} * @return \FML\Script\Script
$globalsPart = PHP_EOL; */
foreach ($globals as $name => $type) { public function addPageLabel(Label $pageLabel, $pagesId = null) {
$globalsPart .= "declare {$type} {$name};" . PHP_EOL; if (!$pagesId) $pagesId = '_';
} $pageLabel->addClass(self::CLASS_PAGELABEL);
return $scriptText . $globalsPart; $pageLabel->addClass($pagesId);
} return $this;
}
/**
* Add the implemented labels to the script /**
* * Add a Button Behavior that will open the Built-In Player Profile
* @param string $scriptText *
* @return string * @param Control $profileControl
*/ * @param string $playerLogin
private function addLabelsPart($scriptText) { * @return \FML\Script\Script
$labels = array(); */
foreach ($this->features as $feature) { public function addProfileButton(Control $profileControl, $playerLogin) {
if (!($feature instanceof Labels)) { if (!($profileControl instanceof Scriptable)) {
continue; trigger_error('Scriptable Control needed as ClickControl for Profiles!');
} return $this;
$featureLabels = $feature->getLabels(); }
foreach ($featureLabels as $name => $implementation) { $profileControl->setScriptEvents(true);
$label = array($name, $implementation); $profileControl->addClass(self::CLASS_PROFILE);
array_push($labels, $label); if ($playerLogin) {
} $profilControl->addClass(self::CLASS_PROFILE . '-' . $playerLogin);
} }
$labelsPart = PHP_EOL; $this->profile = true;
foreach ($labels as $label) { return $this;
$labelsPart .= '***' . $label[0] . '***' . PHP_EOL . '***' . PHP_EOL . $label[1] . PHP_EOL . '***' . PHP_EOL; }
}
return $scriptText . $labelsPart; /**
} * Add a Button Behavior that will open the Built-In Map Info
*
/** * @param Control $mapInfoControl
* Add the declared functions to the script * @return \FML\Script\Script
* */
* @param string $scriptText public function addMapInfoButton(Control $mapInfoControl) {
* @return string if (!($mapInfoControl instanceof Scriptable)) {
*/ trigger_error('Scriptable Control needed as ClickControl for Map Info!');
private function addFunctionsPart($scriptText) { return $this;
$functions = array(); }
foreach ($this->features as $feature) { $mapInfoControl->setScriptEvents(true);
if (!($feature instanceof Functions)) { $mapInfoControl->addClass(self::CLASS_MAPINFO);
continue; $this->mapInfo = true;
} return $this;
$featureFunctions = $feature->getFunctions(); }
foreach ($featureFunctions as $signature => $implementation) {
$functions[$signature] = $implementation; /**
} * Create the Script XML Tag
} *
$functionsPart = PHP_EOL; * @param \DOMDocument $domDocument
foreach ($functions as $signature => $implementation) { * @return \DOMElement
$functionsPart .= $signature . '{' . PHP_EOL . $implementation . PHP_EOL . '}' . PHP_EOL; */
} public function render(\DOMDocument $domDocument) {
return $scriptText . $functionsPart; $scriptXml = $domDocument->createElement($this->tagName);
} $scriptText = $this->buildScriptText();
$scriptComment = $domDocument->createComment($scriptText);
/** $scriptXml->appendChild($scriptComment);
* Add the main function to the script return $scriptXml;
* }
* @param string $scriptText
* @return string /**
*/ * Build the complete Script Text
private function addMainPart($scriptText) { *
$mainPart = file_get_contents(__DIR__ . '/Templates/Main.txt'); * @return string
return $scriptText . $mainPart; */
} private function buildScriptText() {
$scriptText = "";
$scriptText .= $this->getHeaderComment();
$scriptText .= $this->getIncludes();
if ($this->tooltips) {
$scriptText .= $this->getTooltipLabels();
}
if ($this->menus) {
$scriptText .= $this->getMenuLabels();
}
if ($this->pages) {
$scriptText .= $this->getPagesLabels();
}
if ($this->profile) {
$scriptText .= $this->getProfileLabels();
}
if ($this->mapInfo) {
$scriptText .= $this->getMapInfoLabels();
}
$scriptText .= $this->getMainFunction();
return $scriptText;
}
/**
* Get the Header Comment
*
* @return string
*/
private function getHeaderComment() {
$headerComment = file_get_contents(__DIR__ . '/Parts/Header.txt');
return $headerComment;
}
/**
* Get the Includes
*
* @return string
*/
private function getIncludes() {
$includesText = PHP_EOL;
foreach ($this->includes as $namespace => $file) {
$includesText .= "#Include \"{$file}\" as {$namespace}" . PHP_EOL;
}
return $includesText;
}
/**
* Get the Tooltip Labels
*
* @return string
*/
private function getTooltipLabels() {
$mouseOverScript = "
if (Event.Control.HasClass(\"" . self::CLASS_TOOLTIPS . "\")) {
foreach (ControlClass in Event.Control.ControlClasses) {
declare TooltipControl <=> Page.GetFirstChild(ControlClass);
if (TooltipControl == Null) continue;
TooltipControl.Show();
}
}";
$mouseOutScript = "
if (Event.Control.HasClass(\"" . self::CLASS_TOOLTIPS . "\")) {
foreach (ControlClass in Event.Control.ControlClasses) {
declare TooltipControl <=> Page.GetFirstChild(ControlClass);
if (TooltipControl == Null) continue;
TooltipControl.Hide();
}
}";
$tooltipsLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSEOVER, $mouseOverScript);
$tooltipsLabels .= Builder::getLabelImplementationBlock(self::LABEL_MOUSEOUT, $mouseOutScript);
return $tooltipsLabels;
}
/**
* Get the Menu Labels
*
* @return string
*/
private function getMenuLabels() {
$mouseClickScript = "
if (Event.Control.HasClass(\"" . self::CLASS_MENUBUTTON . "\")) {
declare Text MenuIdClass;
declare Text MenuControlId;
foreach (ControlClass in Event.Control.ControlClasses) {
declare ClassParts = TextLib::Split(\"-\", ControlClass);
if (ClassParts.count <= 1) continue;
MenuIdClass = ClassParts[0];
MenuControlId = ClassParts[1];
break;
}
Page.GetClassChildren(MenuIdClass, Page.MainFrame, True);
foreach (MenuControl in Page.GetClassChildren_Result) {
if (!MenuControl.HasClass(\"" . self::CLASS_MENU . "\")) continue;
if (MenuControlId != MenuControl.Id) {
MenuControl.Hide();
} else {
MenuControl.Show();
}
}
}";
$menuLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $mouseClickScript);
return $menuLabels;
}
/**
* Get the Pages Labels
*
* @return string
*/
private function getPagesLabels() {
$pagesNumberPrefix = self::CLASS_PAGE . '-P';
$pagesNumberPrefixLength = strlen($pagesNumberPrefix);
$pagesScript = "
if (Event.Control.HasClass(\"" . self::CLASS_PAGER . "\")) {
declare Text PagesId;
declare Integer PagingAction;
foreach (ControlClass in Event.Control.ControlClasses) {
declare ClassParts = TextLib::Split(\"-\", ControlClass);
if (ClassParts.count <= 1) continue;
if (ClassParts[0] != \"" . self::CLASS_PAGER . "\") continue;
switch (TextLib::SubText(ClassParts[1], 0, 1)) {
case \"I\": {
PagesId = TextLib::SubText(ClassParts[1], 1, 99);
}
case \"A\": {
PagingAction = TextLib::ToInteger(TextLib::SubText(ClassParts[1], 1, 99));
}
}
}
declare FML_PagesLastScriptStart for This = FML_ScriptStart;
declare FML_MinPageNumber for This = Integer[Text];
declare FML_MaxPageNumber for This = Integer[Text];
declare FML_PageNumber for This = Integer[Text];
if (FML_PagesLastScriptStart != FML_ScriptStart || !FML_PageNumber.existskey(PagesId) || !FML_MinPageNumber.existskey(PagesId) || !FML_MaxPageNumber.existskey(PagesId)) {
Page.GetClassChildren(PagesId, Page.MainFrame, True);
foreach (PageControl in Page.GetClassChildren_Result) {
if (!PageControl.HasClass(\"" . self::CLASS_PAGE . "\")) continue;
foreach (ControlClass in PageControl.ControlClasses) {
if (TextLib::SubText(ControlClass, 0, {$pagesNumberPrefixLength}) != \"{$pagesNumberPrefix}\") continue;
declare PageNumber = TextLib::ToInteger(TextLib::SubText(ControlClass, {$pagesNumberPrefixLength}, 99));
if (!FML_MinPageNumber.existskey(PagesId) || PageNumber < FML_MinPageNumber[PagesId]) {
FML_MinPageNumber[PagesId] = PageNumber;
}
if (!FML_MaxPageNumber.existskey(PagesId) || PageNumber > FML_MaxPageNumber[PagesId]) {
FML_MaxPageNumber[PagesId] = PageNumber;
}
break;
}
}
FML_PageNumber[PagesId] = FML_MinPageNumber[PagesId];
}
FML_PageNumber[PagesId] += PagingAction;
if (FML_PageNumber[PagesId] < FML_MinPageNumber[PagesId]) {
FML_PageNumber[PagesId] = FML_MinPageNumber[PagesId];
}
if (FML_PageNumber[PagesId] > FML_MaxPageNumber[PagesId]) {
FML_PageNumber[PagesId] = FML_MaxPageNumber[PagesId];
}
FML_PagesLastScriptStart = FML_ScriptStart;
Page.GetClassChildren(PagesId, Page.MainFrame, True);
foreach (PageControl in Page.GetClassChildren_Result) {
if (!PageControl.HasClass(\"" . self::CLASS_PAGE . "\")) continue;
declare PageNumber = -1;
foreach (ControlClass in PageControl.ControlClasses) {
if (TextLib::SubText(ControlClass, 0, {$pagesNumberPrefixLength}) != \"{$pagesNumberPrefix}\") continue;
PageNumber = TextLib::ToInteger(TextLib::SubText(ControlClass, {$pagesNumberPrefixLength}, 99));
break;
}
if (PageNumber != FML_PageNumber[PagesId]) {
PageControl.Hide();
} else {
PageControl.Show();
}
}
Page.GetClassChildren(\"".self::CLASS_PAGELABEL."\", Page.MainFrame, True);
foreach (PageControl in Page.GetClassChildren_Result) {
if (!PageControl.HasClass(PagesId)) continue;
declare PageLabel <=> (PageControl as CMlLabel);
PageLabel.Value = (FML_PageNumber[PagesId]+1)^\"/\"^(FML_MaxPageNumber[PagesId]+1);
}
}";
$pagesLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $pagesScript);
return $pagesLabels;
}
/**
* Get the Profile Labels
*
* @return string
*/
private function getProfileLabels() {
$profileScript = "
if (Event.Control.HasClass(\"" . self::CLASS_PROFILE . "\") {
declare Login = LocalUser.Login;
foreach (ControlClass in Event.Control.ControlClasses) {
declare ClassParts = TextLib::Split(\"-\", ControlClass);
if (ClassParts.count <= 1) continue;
if (ClassParts[0] != \"" . self::CLASS_PROFILE . "\") continue;
Login = ClassParts[1];
break;
}
ShowProfile(Login);
}";
$profileLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $profileScript);
return $profileLabels;
}
/**
* Get the Map Info Labels
*
* @return string
*/
private function getMapInfoLabels() {
$mapInfoScript = "
if (Event.Control.HasClass(\"" . self::CLASS_MAPINFO . "\") {
ShowCurChallengeCard();
}";
$mapInfoLabels = Builder::getLabelImplementationBlock(self::LABEL_MOUSECLICK, $mapInfoScript);
return $mapInfoLabels;
}
/**
* Get the Main Function
*
* @return string
*/
private function getMainFunction() {
$mainFunction = file_get_contents(__DIR__ . '/Parts/Main.txt');
return $mainFunction;
}
} }

View File

@ -1,11 +0,0 @@
<?php
namespace FML\Script;
/**
* Interface representing a script feature
*
* @author steeffeen
*/
interface ScriptFeature {
}

View File

@ -1,16 +0,0 @@
<?php
namespace FML\Script\Sections;
/**
* Script feature using constants
*
* @author steeffeen
*/
interface Constants {
/**
* Return array of constant values with names as keys
*/
public function getConstants();
}

View File

@ -1,18 +0,0 @@
<?php
namespace FML\Script\Sections;
/**
* Script feature using functions
*
* @author steeffeen
*/
interface Functions {
/**
* Return array of function implementations and signatures as keys
*
* @return array
*/
public function getFunctions();
}

View File

@ -1,18 +0,0 @@
<?php
namespace FML\Script\Sections;
/**
* Script feature using globals
*
* @author steeffeen
*/
interface Globals {
/**
* Return array with global variable types with variable names as keys
*
* @return array
*/
public function getGlobals();
}

View File

@ -1,18 +0,0 @@
<?php
namespace FML\Script\Sections;
/**
* Script feature using includes
*
* @author steeffeen
*/
interface Includes {
/**
* Return array of included files with namespaces as keys
*
* @return array
*/
public function getIncludes();
}

View File

@ -1,28 +0,0 @@
<?php
namespace FML\Script\Sections;
/**
* Script feature using labels
*
* @author steeffeen
*/
interface Labels {
/**
* Constants
*/
const ENTRYSUBMIT = 'EntrySubmit';
const KEYPRESS = 'KeyPress';
const LOOP = 'Loop';
const MOUSECLICK = 'MouseClick';
const MOUSEOUT = 'MouseOut';
const MOUSEOVER = 'MouseOver';
const ONINIT = 'OnInit';
/**
* Return array of label implementations with label names as keys
*
* @return array
*/
public function getLabels();
}

View File

@ -1,12 +0,0 @@
foreach (MenuIds in C_FML_MenuIds) {
if (!MenuIds.existskey(Event.ControlId)) continue;
declare MenuId = MenuIds[Event.ControlId][0];
declare SubMenuIds = MenuIds["__FML__Sub__Menus__"];
foreach (SubMenuId in SubMenuIds) {
declare SubMenu <=> Page.GetFirstChild(SubMenuId);
if (SubMenu == Null) continue;
SubMenu.Visible = (SubMenu.ControlId == MenuId);
}
}

View File

@ -1,27 +0,0 @@
foreach (PageIds in C_FML_PageIds) {
if (!PageIds.existskey(Event.ControlId)) continue;
declare Action = TextLib::ToInteger(PageIds[Event.ControlId][0]);
declare PagesId = PageIds["__FML__Pages__Id__"][0];
declare PagesIds = PageIds["__FML__Pages__Ids__"];
if (!G_FML_PageIndexes.existskey(PagesId)) {
G_FML_PageIndexes[PagesId] = 0;
}
G_FML_PageIndexes[PagesId] += Action;
if (G_FML_PageIndexes[PagesId] < 0) {
G_FML_PageIndexes[PagesId] = 0;
} else if (G_FML_PageIndexes[PagesId] >= PagesIds.count) {
G_FML_PageIndexes[PagesId] = PagesIds.count - 1;
}
foreach (PageIndex => PageId in PagesIds) {
declare Control <=> Page.GetFirstChild(PageId);
if (Control == Null) continue;
Control.Visible = (PageIndex == G_FML_PageIndexes[PagesId]);
}
declare Label_Counter <=> (Page.GetFirstChild(PagesId) as CMlLabel);
if (Label_Counter == Null) continue;
Label_Counter.Value = (G_FML_PageIndexes[PagesId]+1)^"/"^PagesIds.count;
}

View File

@ -1,18 +0,0 @@
foreach (PageIds in C_FML_PageIds) {
declare PagesId = PageIds["__FML__Pages__Id__"][0];
declare PagesIds = PageIds["__FML__Pages__Ids__"];
if (!G_FML_PageIndexes.existskey(PagesId)) {
G_FML_PageIndexes[PagesId] = 0;
}
foreach (PageIndex => PageId in PagesIds) {
declare Control <=> Page.GetFirstChild(PageId);
if (Control == Null) continue;
Control.Visible = (PageIndex == G_FML_PageIndexes[PagesId]);
}
declare Label_Counter <=> (Page.GetFirstChild(PagesId) as CMlLabel);
if (Label_Counter == Null) continue;
Label_Counter.Value = (G_FML_PageIndexes[PagesId]+1)^"/"^PagesIds.count;
}

View File

@ -1,6 +0,0 @@
if (C_FML_TooltipIds.existskey(Event.ControlId)) {
declare TooltipControl <=> Page.GetFirstChild(C_FML_TooltipIds[Event.ControlId]);
if (TooltipControl != Null) {
TooltipControl.Hide();
}
}

View File

@ -1,6 +0,0 @@
if (C_FML_TooltipIds.existskey(Event.ControlId)) {
declare TooltipControl <=> Page.GetFirstChild(C_FML_TooltipIds[Event.ControlId]);
if (TooltipControl != Null) {
TooltipControl.Show();
}
}

View File

@ -1,81 +0,0 @@
<?php
namespace FML\Script;
use FML\Controls\Control;
use FML\Script\Sections\Constants;
use FML\Script\Sections\Labels;
use FML\Types\Scriptable;
/**
* ScriptFeature class offering tooltip behaviors
*
* @author steeffeen
*/
class Tooltips implements Constants, Labels, ScriptFeature {
/**
* Constants
*/
const C_TOOLTIPIDS = 'C_FML_TooltipIds';
/**
* Protected properties
*/
protected $tooltips = array();
/**
* Add a tooltip behavior showing the tooltipControl while hovering over the hoverControl
*
* @param Scriptable $hoverControl
* @param Control $tooltipControl
* @return \FML\Script\Tooltips
*/
public function add(Scriptable $hoverControl, Control $tooltipControl) {
if ($hoverControl instanceof Control) {
$hoverControl->assignId();
}
$hoverControl->setScriptEvents(true);
$tooltipControl->assignId();
$tooltipControl->setVisible(false);
$this->tooltips[$hoverControl->getId()] = $tooltipControl->getId();
return $this;
}
/**
*
* @see \FML\Script\Sections\Constants::getConstants()
*/
public function getConstants() {
$constant = '[';
if (count($this->tooltips) <= 0) {
$constant .= '"" => ""';
}
else {
$index = 0;
foreach ($this->tooltips as $hoverId => $tooltipId) {
$constant .= '"' . $hoverId . '" => "' . $tooltipId . '"';
if ($index < count($this->tooltips) - 1) {
$constant .= ',';
}
$index++;
}
}
$constant .= ']';
$constants = array();
$constants[self::C_TOOLTIPIDS] = $constant;
return $constants;
}
/**
*
* @see \FML\Script\Sections\Labels::getLabels()
*/
public function getLabels() {
$labels = array();
$labelMouseOut = file_get_contents(__DIR__ . '/Templates/TooltipMouseOut.txt');
$labels[Labels::MOUSEOUT] = $labelMouseOut;
$labelMouseOver = file_get_contents(__DIR__ . '/Templates/TooltipMouseOver.txt');
$labels[Labels::MOUSEOVER] = $labelMouseOver;
return $labels;
}
}

View File

@ -12,7 +12,8 @@ interface Actionable {
/** /**
* Set action * Set action
* *
* @param string $action * @param string $action
* Action Name
*/ */
public function setAction($action); public function setAction($action);
} }

View File

@ -4,15 +4,16 @@ namespace FML\Types;
/** /**
* Interface for elements with background color attribute * Interface for elements with background color attribute
* *
* @author steeffeen * @author steeffeen
*/ */
interface BgColorable { interface BgColorable {
/** /**
* Set background color * Set Background Color
* *
* @param string $bgColor * @param string $bgColor
* Background Color
*/ */
public function setBgColor($bgColor); public function setBgColor($bgColor);
} }

View File

@ -10,14 +10,15 @@ namespace FML\Types;
interface Container { interface Container {
/** /**
* Add a new child * Add a new Child
* *
* @param Renderable $child * @param Renderable $child
* The child to add
*/ */
public function add(Renderable $child); public function add(Renderable $child);
/** /**
* Remove all children * Remove all Children
*/ */
public function removeChildren(); public function removeChildren();
} }

View File

@ -10,16 +10,18 @@ namespace FML\Types;
interface Linkable { interface Linkable {
/** /**
* Set url * Set Url
* *
* @param string $url * @param string $url
* Link Url
*/ */
public function setUrl($url); public function setUrl($url);
/** /**
* Set manialink * Set Manialink
* *
* @param string $manialink * @param string $manialink
* Manialink Name
*/ */
public function setManialink($manialink); public function setManialink($manialink);
} }

View File

@ -10,9 +10,10 @@ namespace FML\Types;
interface NewLineable { interface NewLineable {
/** /**
* Set auto new line * Set Auto New Line
* *
* @param bool $autoNewLine * @param bool $autoNewLine
* If the Control should insert New Lines automatically
*/ */
public function setAutoNewLine($autoNewLine); public function setAutoNewLine($autoNewLine);
} }

View File

@ -10,37 +10,42 @@ namespace FML\Types;
interface Playable { interface Playable {
/** /**
* Set data * Set Data
* *
* @param string $data * @param string $data
* Media Url
*/ */
public function setData($data); public function setData($data);
/** /**
* Set play * Set Play
* *
* @param bool $play * @param bool $play
* If the Control should start playing automatically
*/ */
public function setPlay($play); public function setPlay($play);
/** /**
* Set looping * Set Looping
* *
* @param bool $looping * @param bool $looping
* If the Control should playback looping
*/ */
public function setLooping($looping); public function setLooping($looping);
/** /**
* Set music * Set Music
* *
* @param bool $music * @param bool $music
* If the Control is Background Music
*/ */
public function setMusic($music); public function setMusic($music);
/** /**
* Set volume * Set Volume
* *
* @param float $volume * @param float $volume
* Control Volume
*/ */
public function setVolume($volume); public function setVolume($volume);
} }

View File

@ -10,7 +10,7 @@ namespace FML\Types;
interface Renderable { interface Renderable {
/** /**
* Render the xml element * Render the XML Element
* *
* @param \DOMDocument $domDocument * @param \DOMDocument $domDocument
* @return \DOMElement * @return \DOMElement

View File

@ -10,9 +10,10 @@ namespace FML\Types;
interface Scriptable { interface Scriptable {
/** /**
* Set scriptevents * Set ScriptEvents
* *
* @param bool $scriptEvents * @param bool $scriptEvents
* If Script Events should be enabled
*/ */
public function setScriptEvents($scriptEvents); public function setScriptEvents($scriptEvents);
} }

View File

@ -10,9 +10,10 @@ namespace FML\Types;
interface Styleable { interface Styleable {
/** /**
* Set style * Set Style
* *
* @param string $style * @param string $style
* Style
*/ */
public function setStyle($style); public function setStyle($style);
} }

View File

@ -12,15 +12,18 @@ interface SubStyleable {
/** /**
* Set SubStyle * Set SubStyle
* *
* @param string $subStyle * @param string $subStyle
* Sub-Style
*/ */
public function setSubStyle($subStyle); public function setSubStyle($subStyle);
/** /**
* Set Style and SubStyle * Set Style and SubStyle
* *
* @param string $style * @param string $style
* @param string $subStyle * Style
* @param string $subStyle
* Sub-Style
*/ */
public function setStyles($style, $subStyle); public function setStyles($style, $subStyle);
} }

View File

@ -10,30 +10,34 @@ namespace FML\Types;
interface TextFormatable { interface TextFormatable {
/** /**
* Set text size * Set Text Size
* *
* @param int $textSize * @param int $textSize
* Text Size
*/ */
public function setTextSize($textSize); public function setTextSize($textSize);
/** /**
* Set text color * Set Text Color
* *
* @param string $textColor * @param string $textColor
* Text Color
*/ */
public function setTextColor($textColor); public function setTextColor($textColor);
/** /**
* Set area color * Set Area Color
* *
* @param string $areaColor * @param string $areaColor
* Area Text Color
*/ */
public function setAreaColor($areaColor); public function setAreaColor($areaColor);
/** /**
* Set area focus color * Set Area Focus Color
* *
* @param string $areaFocusColor * @param string $areaFocusColor
* Focus Area Color
*/ */
public function setAreaFocusColor($areaFocusColor); public function setAreaFocusColor($areaFocusColor);
} }