1mixin @beta Efl.Ui.Focus.Composition requires Efl.Ui.Widget {
2   [[This defines the inheriting widget as Composition widget.
3
4     A composition widget is a widget that's the logical parent of another set of widgets
5     which can be used for interaction.
6   ]]
7   methods {
8      @property composition_elements @protected  {
9         [[Set the order of elements that will be used for composition
10
11           Elements of the list can be either an @Efl.Ui.Widget, an @Efl.Ui.Focus.Object or an @Efl.Gfx.Entity.
12
13           If the element is an @Efl.Ui.Widget nothing is done and the widget is simply part of the order.
14
15           If the element is an @Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
16
17           If the element is an @Efl.Gfx.Entity, then the geometry is used as focus geometry,
18           the focus property is redirected to the evas focus property. The mixin will take care of registration.
19         ]]
20         values {
21            logical_order : list<Efl.Gfx.Entity> @move; [[The order to use]]
22         }
23      }
24      dirty @protected {
25         [[Mark this widget as dirty, the children can be considered to be changed after that call
26         ]]
27      }
28      prepare @protected {
29         [[A call to prepare the children of this element, called if marked as dirty
30
31           You can use this function to call composition_elements.
32         ]]
33      }
34      @property logical_mode @protected {
35         [[Set to true if all children should be registered as logicals]]
36         values {
37            logical_mode : bool; [[$true or $false]]
38         }
39      }
40   }
41   implements {
42      Efl.Object.invalidate;
43      Efl.Ui.Widget.focus_state_apply;
44      Efl.Ui.Focus.Object.setup_order_non_recursive;
45      @empty .prepare;
46   }
47}
48