begin plugin menu

This commit is contained in:
kremsy 2013-12-09 20:31:02 +01:00
parent 3d9f0601fe
commit afb0b35540
3 changed files with 89 additions and 3 deletions

View File

@ -53,7 +53,7 @@ class ScriptSettings implements ConfiguratorMenu {
public function getTitle() { public function getTitle() {
return $this->maniaControl->settingManager->getSetting($this, self::SETTING_TITLE); return $this->maniaControl->settingManager->getSetting($this, self::SETTING_TITLE);
} }
//TODO: boolean values not as entry
/** /**
* *
* @see \ManiaControl\Configurators\ConfiguratorMenu::getMenu() * @see \ManiaControl\Configurators\ConfiguratorMenu::getMenu()

View File

@ -26,6 +26,7 @@ class PluginManager {
private $activePlugins = array(); private $activePlugins = array();
private $pluginClasses = array(); private $pluginClasses = array();
/** /**
* Construct plugin manager * Construct plugin manager
* *
@ -74,7 +75,7 @@ class PluginManager {
* @param bool $active * @param bool $active
* @return bool * @return bool
*/ */
private function savePluginStatus($className, $active) { public function savePluginStatus($className, $active) {
$mysqli = $this->maniaControl->database->mysqli; $mysqli = $this->maniaControl->database->mysqli;
$pluginStatusQuery = "INSERT INTO `" . self::TABLE_PLUGINS . "` ( $pluginStatusQuery = "INSERT INTO `" . self::TABLE_PLUGINS . "` (
`className`, `className`,
@ -106,7 +107,7 @@ class PluginManager {
* @param string $className * @param string $className
* @return bool * @return bool
*/ */
private function getPluginStatus($className) { public function getPluginStatus($className) {
$mysqli = $this->maniaControl->database->mysqli; $mysqli = $this->maniaControl->database->mysqli;
$pluginStatusQuery = "SELECT `active` FROM `" . self::TABLE_PLUGINS . "` $pluginStatusQuery = "SELECT `active` FROM `" . self::TABLE_PLUGINS . "`
WHERE `className` = ?;"; WHERE `className` = ?;";
@ -168,6 +169,22 @@ class PluginManager {
} }
} }
} }
/**
* @return array
*/
public function getPluginClasses()
{
return $this->pluginClasses;
}
/**
* @return array
*/
public function getActivePlugins()
{
return $this->activePlugins;
}
} }
?> ?>

View File

@ -2,12 +2,17 @@
namespace ManiaControl\Plugins; namespace ManiaControl\Plugins;
use FML\Controls\Quad;
use FML\Controls\Quads\Quad_Icons64x64_1;
use ManiaControl\ManiaControl; use ManiaControl\ManiaControl;
use ManiaControl\Players\Player; use ManiaControl\Players\Player;
use ManiaControl\Configurators\ConfiguratorMenu; use ManiaControl\Configurators\ConfiguratorMenu;
use FML\Script\Pages; use FML\Script\Pages;
use FML\Script\Tooltips; use FML\Script\Tooltips;
use FML\Controls\Frame; use FML\Controls\Frame;
use FML\Controls\Label;
use FML\Controls\Labels\Label_Text;
use FML\Controls\Control;
/** /**
* Configurator for enabling and disabling plugins * Configurator for enabling and disabling plugins
@ -43,6 +48,70 @@ class PluginMenu implements ConfiguratorMenu {
*/ */
public function getMenu($width, $height, Pages $pages, Tooltips $tooltips) { public function getMenu($width, $height, Pages $pages, Tooltips $tooltips) {
$frame = new Frame(); $frame = new Frame();
$pluginClasses = $this->maniaControl->pluginManager->getPluginClasses();
//$labelStyleSetting = $this->maniaControl->settingManager->getSetting($this, self::SETTING_STYLE_SETTING);
$labelStyleSetting = Label_Text::STYLE_TextStaticSmall;
// $pagerSize = 9.;
$entryHeight = 5.;
$labelTextSize = 2;
// $pageMaxCount = 13;
$pageFrames = array();
$y = 0.;
foreach ($pluginClasses as $pluginClass) {
if (!isset($pageFrame)) {
$pageFrame = new Frame();
$frame->add($pageFrame);
array_push($pageFrames, $pageFrame);
$y = $height * 0.41;
}
//check if plugin is aktiv
$active = $this->maniaControl->pluginManager->getPluginStatus($pluginClass);
$settingFrame = new Frame();
$pageFrame->add($settingFrame);
$settingFrame->setY($y);
//TODO: Red or Green quad to see if the plugin is aktiv (not working yet)
$aktivQuad = new Quad_Icons64x64_1();
$settingFrame->add($aktivQuad);
$aktivQuad->setStyle(Quad_Icons64x64_1::SUBSTYLE_ArrowRed);
$aktivQuad->setHeight(10);
$aktivQuad->setWidth(10);
$aktivQuad->setX($width * 0.2);
$nameLabel = new Label();
$settingFrame->add($nameLabel);
$nameLabel->setHAlign(Control::LEFT);
$nameLabel->setX($width * -0.4);
$nameLabel->setSize($width * 0.4, $entryHeight);
$nameLabel->setStyle($labelStyleSetting);
$nameLabel->setTextSize($labelTextSize);
$nameLabel->setText($pluginClass);
//TODO description
$descriptionLabel = new Label();
$pageFrame->add($descriptionLabel);
$descriptionLabel->setHAlign(Control::LEFT);
$descriptionLabel->setPosition($width * -0.45, $height * -0.44);
//$descriptionLabel->setSize($width * 0.7, $settingHeight);
//$descriptionLabel->setStyle($labelStyleDescription);
$descriptionLabel->setTranslate(true);
$descriptionLabel->setTextPrefix('Desc: ');
//$descriptionLabel->setText($scriptParam['Desc']);
$tooltips->add($nameLabel, $descriptionLabel);
//TODO set aktive button
$y -= $entryHeight;
// if ($index % $pageMaxCount == $pageMaxCount - 1) {
// unset($pageFrame);
//}
}
//TODO multiple pages
//$pages->add(array(-1 => $pagerPrev, 1 => $pagerNext), $pageFrames, $pageCountLabel);
return $frame; return $frame;
} }