116 lines
2.1 KiB
PHP
116 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheet\Chart;
|
|
|
|
use PhpOffice\PhpSpreadsheet\RichText\RichText;
|
|
|
|
class Title
|
|
{
|
|
/**
|
|
* Title Caption.
|
|
*
|
|
* @var array|RichText|string
|
|
*/
|
|
private $caption = '';
|
|
|
|
/**
|
|
* Allow overlay of other elements?
|
|
*
|
|
* @var bool
|
|
*/
|
|
private $overlay = true;
|
|
|
|
/**
|
|
* Title Layout.
|
|
*
|
|
* @var ?Layout
|
|
*/
|
|
private $layout;
|
|
|
|
/**
|
|
* Create a new Title.
|
|
*
|
|
* @param array|RichText|string $caption
|
|
* @param ?Layout $layout
|
|
* @param bool $overlay
|
|
*/
|
|
public function __construct($caption = '', ?Layout $layout = null, $overlay = false)
|
|
{
|
|
$this->caption = $caption;
|
|
$this->layout = $layout;
|
|
$this->setOverlay($overlay);
|
|
}
|
|
|
|
/**
|
|
* Get caption.
|
|
*
|
|
* @return array|RichText|string
|
|
*/
|
|
public function getCaption()
|
|
{
|
|
return $this->caption;
|
|
}
|
|
|
|
public function getCaptionText(): string
|
|
{
|
|
$caption = $this->caption;
|
|
if (is_string($caption)) {
|
|
return $caption;
|
|
}
|
|
if ($caption instanceof RichText) {
|
|
return $caption->getPlainText();
|
|
}
|
|
$retVal = '';
|
|
foreach ($caption as $textx) {
|
|
/** @var RichText|string */
|
|
$text = $textx;
|
|
if ($text instanceof RichText) {
|
|
$retVal .= $text->getPlainText();
|
|
} else {
|
|
$retVal .= $text;
|
|
}
|
|
}
|
|
|
|
return $retVal;
|
|
}
|
|
|
|
/**
|
|
* Set caption.
|
|
*
|
|
* @param array|RichText|string $caption
|
|
*
|
|
* @return $this
|
|
*/
|
|
public function setCaption($caption)
|
|
{
|
|
$this->caption = $caption;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Get allow overlay of other elements?
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getOverlay()
|
|
{
|
|
return $this->overlay;
|
|
}
|
|
|
|
/**
|
|
* Set allow overlay of other elements?
|
|
*
|
|
* @param bool $overlay
|
|
*/
|
|
public function setOverlay($overlay): void
|
|
{
|
|
$this->overlay = $overlay;
|
|
}
|
|
|
|
public function getLayout(): ?Layout
|
|
{
|
|
return $this->layout;
|
|
}
|
|
}
|