Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / lib / Drupal / Core / Layout / Icon / IconBuilderInterface.php
diff --git a/web/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php b/web/core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
new file mode 100644 (file)
index 0000000..de2f82a
--- /dev/null
@@ -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);
+
+}