1: <?php
2:
3: namespace Charcoal\Ui\Layout;
4:
5: use \Charcoal\Ui\Layout\LayoutBuilder;
6:
7: /**
8: * Defines a layout-aware entity.
9: *
10: * Manages UI items through the layout, which is created with
11: * a {@see LayoutBuilder}.
12: */
13: interface LayoutAwareInterface
14: {
15: /**
16: * @param LayoutBuilder $builder The layout builder, to create customized layout object(s).
17: * @return DashboardInterface Chainable
18: */
19: public function setLayoutBuilder(LayoutBuilder $builder);
20:
21: /**
22: * @param LayoutInterface|array $layout The layout object or structure.
23: * @return DashboardInterface Chainable
24: */
25: public function setLayout($layout);
26:
27: /**
28: * @return LayoutInterface
29: */
30: public function layout();
31: }
32: