aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/elementary/efl_ui_focus_composition.eo
blob: 2befe106b0f3b3496d515f61430bb07ec8664aa7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
mixin Efl.Ui.Focus.Composition (Efl.Interface, Efl.Ui.Widget) {
   [[This defines the inheriting widget as Composition widget.

     A composition widget is a widget that's the logical parent of another set of widgets which can be used for interaction.
   ]]
   methods {
      @property composition_elements @protected  {
         [[Set the order of elements that will be used for composition

           Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.

           If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.

           If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.

           If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.
         ]]
         values {
            logical_order : list<Efl.Gfx.Entity> @owned; [[The order to use]]
         }
      }
      dirty @protected {
         [[ Mark this widget as dirty, the children can be considered to be changed after that call
         ]]
      }
      prepare @protected {
         [[A call to prepare the children of this element, called if marked as dirty

           You can use this function to call composition_elements.
         ]]
      }
      @property custom_manager @protected {
         [[Register all children in this manager

           Set to $null to register them in the same manager as the implementor is
         ]]
         values {
            custom_manager : Efl.Ui.Focus.Manager; [[EFL focus manager]]
         }
      }
      @property logical_mode @protected {
         [[Set to true if all children should be registered as logicals]]
         values {
            logical_mode : bool; [[$true or $false]]
         }
      }
   }
   implements {
      Efl.Object.invalidate;
      Efl.Ui.Widget.focus_state_apply;
      Efl.Ui.Focus.Object.prepare_logical_none_recursive;
      @empty .prepare;
   }
}