summaryrefslogtreecommitdiffstats
path: root/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php157
1 files changed, 157 insertions, 0 deletions
diff --git a/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php
new file mode 100644
index 0000000..9af5c5b
--- /dev/null
+++ b/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Chart/Legend.php
@@ -0,0 +1,157 @@
+<?php
+
+namespace PhpOffice\PhpSpreadsheet\Chart;
+
+class Legend
+{
+ /** Legend positions */
+ const XL_LEGEND_POSITION_BOTTOM = -4107; // Below the chart.
+ const XL_LEGEND_POSITION_CORNER = 2; // In the upper right-hand corner of the chart border.
+ const XL_LEGEND_POSITION_CUSTOM = -4161; // A custom position.
+ const XL_LEGEND_POSITION_LEFT = -4131; // Left of the chart.
+ const XL_LEGEND_POSITION_RIGHT = -4152; // Right of the chart.
+ const XL_LEGEND_POSITION_TOP = -4160; // Above the chart.
+
+ const POSITION_RIGHT = 'r';
+ const POSITION_LEFT = 'l';
+ const POSITION_BOTTOM = 'b';
+ const POSITION_TOP = 't';
+ const POSITION_TOPRIGHT = 'tr';
+
+ private static $positionXLref = [
+ self::XL_LEGEND_POSITION_BOTTOM => self::POSITION_BOTTOM,
+ self::XL_LEGEND_POSITION_CORNER => self::POSITION_TOPRIGHT,
+ self::XL_LEGEND_POSITION_CUSTOM => '??',
+ self::XL_LEGEND_POSITION_LEFT => self::POSITION_LEFT,
+ self::XL_LEGEND_POSITION_RIGHT => self::POSITION_RIGHT,
+ self::XL_LEGEND_POSITION_TOP => self::POSITION_TOP,
+ ];
+
+ /**
+ * Legend position.
+ *
+ * @var string
+ */
+ private $position = self::POSITION_RIGHT;
+
+ /**
+ * Allow overlay of other elements?
+ *
+ * @var bool
+ */
+ private $overlay = true;
+
+ /**
+ * Legend Layout.
+ *
+ * @var Layout
+ */
+ private $layout;
+
+ /**
+ * Create a new Legend.
+ *
+ * @param string $position
+ * @param bool $overlay
+ */
+ public function __construct($position = self::POSITION_RIGHT, ?Layout $layout = null, $overlay = false)
+ {
+ $this->setPosition($position);
+ $this->layout = $layout;
+ $this->setOverlay($overlay);
+ }
+
+ /**
+ * Get legend position as an excel string value.
+ *
+ * @return string
+ */
+ public function getPosition()
+ {
+ return $this->position;
+ }
+
+ /**
+ * Get legend position using an excel string value.
+ *
+ * @param string $position see self::POSITION_*
+ *
+ * @return bool
+ */
+ public function setPosition($position)
+ {
+ if (!in_array($position, self::$positionXLref)) {
+ return false;
+ }
+
+ $this->position = $position;
+
+ return true;
+ }
+
+ /**
+ * Get legend position as an Excel internal numeric value.
+ *
+ * @return int
+ */
+ public function getPositionXL()
+ {
+ return array_search($this->position, self::$positionXLref);
+ }
+
+ /**
+ * Set legend position using an Excel internal numeric value.
+ *
+ * @param int $positionXL see self::XL_LEGEND_POSITION_*
+ *
+ * @return bool
+ */
+ public function setPositionXL($positionXL)
+ {
+ if (!isset(self::$positionXLref[$positionXL])) {
+ return false;
+ }
+
+ $this->position = self::$positionXLref[$positionXL];
+
+ return true;
+ }
+
+ /**
+ * Get allow overlay of other elements?
+ *
+ * @return bool
+ */
+ public function getOverlay()
+ {
+ return $this->overlay;
+ }
+
+ /**
+ * Set allow overlay of other elements?
+ *
+ * @param bool $overlay
+ *
+ * @return bool
+ */
+ public function setOverlay($overlay)
+ {
+ if (!is_bool($overlay)) {
+ return false;
+ }
+
+ $this->overlay = $overlay;
+
+ return true;
+ }
+
+ /**
+ * Get Layout.
+ *
+ * @return Layout
+ */
+ public function getLayout()
+ {
+ return $this->layout;
+ }
+}