IconBuilderInterface.php

Same filename in other branches
  1. 8.9.x core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
  2. 10 core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php
  3. 11.x core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php

Namespace

Drupal\Core\Layout\Icon

File

core/lib/Drupal/Core/Layout/Icon/IconBuilderInterface.php

View source
<?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);

}

Interfaces

Title Deprecated Summary
IconBuilderInterface Provides an interface for building layout icons.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.