summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_multi_selectable.eo
blob: a13070842a88cea18c537429674f7f189fe1fea8 (plain)
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
55
56
57
58
59
60
61
62
63
64
65
66
enum @beta Efl.Ui.Select_Mode {
   [[Type of multi selectable object.]]
   single, [[Only single child is selected. If a child is selected,
             previous selected child will be unselected.]]
   single_always, [[Same as single select except, this will be selected
                    in every select call even if child is already been selected.]]
   multi, [[Allow multiple selection of children.]]
   none [[No child can be selected at all.]]
}

interface @beta Efl.Ui.Multi_Selectable extends Efl.Ui.Single_Selectable
{
   [[Interface for getting access to a range of selected items.

     The implementor of this interface provides the possibility to select multiple Selectables.
     If not, only @Efl.Ui.Single_Selectable should be implemented.]]
   c_prefix: efl_ui;
   methods
   {
      @property select_mode {
         [[The mode type for children selection.]]
         set {}
         get {}
         values {
            mode: Efl.Ui.Select_Mode; [[Type of selection of children]]
         }
      }
      selected_items_get {
         [[Get the selected items in a iterator. The iterator sequence will be decided by selection.]]
         return: iterator<Efl.Ui.Selectable> @move @no_unused; [[User has to free the iterator after usage.]]
      }
      select_range {
         [[Select a range of @Efl.Ui.Selectable.

           This will select the range of selectables from a to b or from b to a depending on which one comes first.
           If a or b are not part of the widget, a error is returned, and no change is applied.
           $null is not allowed as either of the parameters.
           Both of the passed values will also be selected.
         ]]
         params {
           a : Efl.Ui.Selectable; [[One side of the range.]]
           b : Efl.Ui.Selectable; [[The other side of the range.]]
         }
      }
      unselect_range {
         [[Unselect a range of @Efl.Ui.Selectable.

           This will unselect the range of selectables from a to b or from b to a depending on which one comes first.
           If a or b are not part of the widget, a error is returned, and no change is applied.
           $null is not allowed as either of the parameters.
           Both of the passed values will also be unselected.
         ]]
         params {
           a : Efl.Ui.Selectable; [[One side of the range.]]
           b : Efl.Ui.Selectable; [[The other side of the range.]]
         }
      }
      select_all {
         [[Select all @Efl.Ui.Selectable]]
      }
      unselect_all {
         [[Unselect all @Efl.Ui.Selectable]]
      }

   }
}