summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_collection.eo
blob: 9fad710f656fcebe9c5394d50eaa4ea56a014f58 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements
                   Efl.Ui.Scrollable_Interactive,
                   Efl.Ui.Scrollbar,
                   Efl.Pack_Linear, Efl.Pack_Layout,
                   Efl.Ui.Layout_Orientable,
                   Efl.Ui.Multi_Selectable,
                   Efl.Ui.Focus.Manager_Sub,
                   Efl.Ui.Widget_Focus_Manager
   composite
                   Efl.Ui.Scrollable_Interactive,
                   Efl.Ui.Scrollbar,
                   Efl.Ui.Focus.Manager
{
   [[This widget displays a list of items in an arrangement controlled by an external @.position_manager
     object. By using different @.position_manager objects this widget can show unidimensional lists or
     two-dimensional grids of items, for example.

     This class is intended to act as a base for widgets like @Efl.Ui.List or @Efl.Ui.Grid, which hide
     this complexity from the user.

     Items are added using the @Efl.Pack_Linear interface and must be of @Efl.Ui.Item type.

     The direction of the arrangement can be controlled through @Efl.Ui.Layout_Orientable.orientation.

     If all items do not fit in the current widget size scrolling facilities are provided.

     Items inside this widget can be selected according to the @Efl.Ui.Multi_Selectable.select_mode
     policy, and the selection can be retrieved with @Efl.Ui.Multi_Selectable.selected_items_get.
   ]]
   event_prefix:efl_ui;
   methods {
      item_scroll {
         [[Brings the passed item into the viewport.]]
         params {
            @in item: Efl.Ui.Item; [[The target to move into view.]]
            @in animation: bool; [[If you want to have an animated transition.]]
         }
      }
      item_scroll_align {
         [[Brings the passed item into the viewport and align it.

           $align selects the final position of the object inside the viewport. 0.0 will move the object
           to the first visible position inside the viewport, 1.0 will move it to the last visible
           position, and values in between will move it accordingly to positions in between, along the
           scrolling axis.
         ]]
         params {
            @in item: Efl.Ui.Item; [[The target to move into view.]]
            @in align: double; [[0.0 to have this item at the upper or left side of the viewport,
                                 1.0 to have this item at the lower or right side of the viewport.]]
            @in animation: bool; [[If you want to have an animated transition.]]
         }
      }
      @property position_manager {
         [[Position manager object that handles placement of items.]]
         values {
            position_manager : Efl.Ui.Position_Manager.Entity @owned; [[Ownership is passed to the item container.]]
         }
      }
   }
   implements {
      Efl.Object.constructor;
      Efl.Object.finalize;
      Efl.Object.destructor;
      Efl.Object.invalidate;
      Efl.Container.content_iterate;
      Efl.Container.content_count;
      Efl.Ui.Layout_Orientable.orientation { get; set; }
      Efl.Ui.Widget.theme_apply;
      Efl.Pack.pack_clear;
      Efl.Pack.unpack_all;
      Efl.Pack.unpack;
      Efl.Pack.pack;
      Efl.Pack_Linear.pack_end;
      Efl.Pack_Linear.pack_begin;
      Efl.Pack_Linear.pack_before;
      Efl.Pack_Linear.pack_after;
      Efl.Pack_Linear.pack_at;
      Efl.Pack_Linear.pack_unpack_at;
      Efl.Pack_Linear.pack_index_get;
      Efl.Pack_Linear.pack_content_get;
      Efl.Ui.Scrollable_Interactive.match_content { set; }
      Efl.Ui.Widget_Focus_Manager.focus_manager_create;
      Efl.Ui.Widget.focus_state_apply;
      Efl.Ui.Focus.Manager.move;
      Efl.Ui.Single_Selectable.last_selected { get; }
      Efl.Ui.Multi_Selectable.selected_items_get;
      Efl.Ui.Multi_Selectable.select_mode {get; set;}
      Efl.Ui.Multi_Selectable.select_all;
      Efl.Ui.Multi_Selectable.unselect_all;
      Efl.Ui.Multi_Selectable.select_range;
      Efl.Ui.Multi_Selectable.unselect_range;
      Efl.Ui.Single_Selectable.fallback_selection {get; set;}
   }
   events {
      item,pressed : Efl.Ui.Item; [[A $press event occurred over an item.]]
      item,unpressed : Efl.Ui.Item; [[An $unpress event occurred over an item.]]
      item,longpressed : Efl.Ui.Item; [[A $longpressed event occurred over an item.]]
      item,clicked : Efl.Ui.Item; [[A $clicked event occurred over an item.]]
      item,clicked,any : Efl.Ui.Item; [[A $clicked,any event occurred over an item.]]
   }
}