%PDF- %PDF-
| Direktori : /www/varak.net/losik.varak.net/vendor/nette/forms/src/Forms/Controls/ |
| Current File : //www/varak.net/losik.varak.net/vendor/nette/forms/src/Forms/Controls/Button.php |
<?php
/**
* This file is part of the Nette Framework (https://nette.org)
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
*/
declare(strict_types=1);
namespace Nette\Forms\Controls;
use Nette\Utils\Html;
/**
* Push button control with no default behavior.
*/
class Button extends BaseControl
{
/**
* @param string|object $caption
*/
public function __construct($caption = null)
{
parent::__construct($caption);
$this->control->type = 'button';
$this->setOption('type', 'button');
}
/**
* Is button pressed?
*/
public function isFilled(): bool
{
$value = $this->getValue();
return $value !== null && $value !== [];
}
/**
* Bypasses label generation.
*/
public function getLabel($caption = null)
{
return null;
}
/** @return static */
public function renderAsButton(bool $state = true)
{
$this->control->setName($state ? 'button' : 'input');
return $this;
}
/**
* Generates control's HTML element.
* @param string|object $caption
*/
public function getControl($caption = null): Html
{
$this->setOption('rendered', true);
$caption = $this->translate($caption ?? $this->getCaption());
$el = (clone $this->control)->addAttributes([
'name' => $this->getHtmlName(),
'disabled' => $this->isDisabled(),
]);
if ($caption instanceof Html || ($caption !== null && $el->getName() === 'button')) {
$el->setName('button')->setText($caption);
} else {
$el->value = $caption;
}
return $el;
}
}