summaryrefslogtreecommitdiffstats
path: root/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
diff options
context:
space:
mode:
Diffstat (limited to 'core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php')
-rw-r--r--core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php99
1 files changed, 99 insertions, 0 deletions
diff --git a/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php b/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
new file mode 100644
index 0000000..de2f82a
--- /dev/null
+++ b/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
@@ -0,0 +1,99 @@
+<?php
+
+namespace Drupal\Core\Layout\Icon;
+
+/**
+ * Provides an interface for building layout icons.
+ */
+interface IconBuilderInterface {
+
+ /**
+ * Builds a render array representation of an SVG based on an icon map.
+ *
+ * @param string[][] $icon_map
+ * A two-dimensional array representing the visual output of the layout.
+ * For the following shape:
+ * |------------------------------|
+ * | |
+ * | 100% |
+ * | |
+ * |-------|--------------|-------|
+ * | | | |
+ * | | 50% | 25% |
+ * | | | |
+ * | 25% |--------------|-------|
+ * | | |
+ * | | 75% |
+ * | | |
+ * |------------------------------|
+ * The corresponding array would be:
+ * - ['top']
+ * - ['first', 'second', 'second', 'third']
+ * - ['first', 'bottom', 'bottom', 'bottom'].
+ *
+ * @return array
+ * A render array representing a SVG icon.
+ */
+ public function build(array $icon_map);
+
+ /**
+ * Sets the ID.
+ *
+ * @param string $id
+ * The machine name of the layout.
+ *
+ * @return $this
+ */
+ public function setId($id);
+
+ /**
+ * Sets the label.
+ *
+ * @param string $label
+ * The label of the layout.
+ *
+ * @return $this
+ */
+ public function setLabel($label);
+
+ /**
+ * Sets the width.
+ *
+ * @param int $width
+ * The width of the SVG.
+ *
+ * @return $this
+ */
+ public function setWidth($width);
+
+ /**
+ * Sets the height.
+ *
+ * @param int $height
+ * The height of the SVG.
+ *
+ * @return $this
+ */
+ public function setHeight($height);
+
+ /**
+ * Sets the padding.
+ *
+ * @param int $padding
+ * The padding between regions.
+ *
+ * @return $this
+ */
+ public function setPadding($padding);
+
+ /**
+ * Sets the stroke width.
+ *
+ * @param int|null $stroke_width
+ * The width of region borders.
+ *
+ * @return $this
+ */
+ public function setStrokeWidth($stroke_width);
+
+}