summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2019-03-05 17:00:37 -0500
committerCedric BAIL <cedric.bail@free.fr>2019-03-07 14:15:41 -0800
commit3448b7933f1e8d3db75ca894a8c7f6aede52b014 (patch)
tree870a78fa3b29672851e85a231d689cc993c0fc31 /src
parent5eb1d61459e64450e52b42d74d2e229bcb037f24 (diff)
elm_list: remove all legacy usage from eo files
this takes the current generated output from eolian for legacy code in efl and adds it to the tree, then removes legacy references from the corresponding eo files. in the case where the entire eo file was for a legacy object, that eo file has been removed from the tree ref T7724 Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D8181
Diffstat (limited to 'src')
-rw-r--r--src/Makefile_Efl_Mono.am2
-rw-r--r--src/Makefile_Elementary.am10
-rw-r--r--src/lib/elementary/elm_list.c4
-rw-r--r--src/lib/elementary/elm_list.eo439
-rw-r--r--src/lib/elementary/elm_list_eo.c368
-rw-r--r--src/lib/elementary/elm_list_eo.h640
-rw-r--r--src/lib/elementary/elm_list_eo.legacy.c150
-rw-r--r--src/lib/elementary/elm_list_eo.legacy.h547
-rw-r--r--src/lib/elementary/elm_list_item.eo123
-rw-r--r--src/lib/elementary/elm_list_item_eo.c195
-rw-r--r--src/lib/elementary/elm_list_item_eo.h148
-rw-r--r--src/lib/elementary/elm_list_item_eo.legacy.c54
-rw-r--r--src/lib/elementary/elm_list_item_eo.legacy.h141
-rw-r--r--src/lib/elementary/elm_list_legacy.h4
-rw-r--r--src/lib/elementary/elm_widget_list.h4
-rw-r--r--src/lib/elementary/meson.build6
16 files changed, 2262 insertions, 573 deletions
diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 54f950d..eb908f8 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -172,7 +172,7 @@ elementary_eolian_blacklisted_files = \
172lib/elementary/elm_web.eo.cs \ 172lib/elementary/elm_web.eo.cs \
173lib/elementary/elm_map.eo.cs \ 173lib/elementary/elm_map.eo.cs \
174lib/elementary/elm_combobox.eo.cs \ 174lib/elementary/elm_combobox.eo.cs \
175lib/elementary/elm_list.eo.cs \ 175lib/elementary/elm_list_eo.cs \
176lib/elementary/elm_genlist_eo.cs \ 176lib/elementary/elm_genlist_eo.cs \
177lib/elementary/elm_view_list.eo.cs \ 177lib/elementary/elm_view_list.eo.cs \
178lib/elementary/elm_genlist_item_eo.cs \ 178lib/elementary/elm_genlist_item_eo.cs \
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index e2a26c9..dc9610a 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -186,7 +186,6 @@ elm_private_eolian_files = \
186# Legacy classes - not part of public EO API 186# Legacy classes - not part of public EO API
187elm_legacy_eolian_files = \ 187elm_legacy_eolian_files = \
188 lib/elementary/efl_ui_clock_legacy.eo \ 188 lib/elementary/efl_ui_clock_legacy.eo \
189 lib/elementary/elm_list.eo \
190 lib/elementary/elm_map.eo \ 189 lib/elementary/elm_map.eo \
191 lib/elementary/elm_map_pan.eo \ 190 lib/elementary/elm_map_pan.eo \
192 lib/elementary/elm_menu.eo \ 191 lib/elementary/elm_menu.eo \
@@ -203,7 +202,6 @@ elm_legacy_eolian_files = \
203 lib/elementary/elm_systray.eo \ 202 lib/elementary/elm_systray.eo \
204 lib/elementary/elm_menu_item.eo \ 203 lib/elementary/elm_menu_item.eo \
205 lib/elementary/elm_widget_item_static_focus.eo \ 204 lib/elementary/elm_widget_item_static_focus.eo \
206 lib/elementary/elm_list_item.eo \
207 lib/elementary/elm_popup_item.eo \ 205 lib/elementary/elm_popup_item.eo \
208 lib/elementary/elm_ctxpopup_part.eo \ 206 lib/elementary/elm_ctxpopup_part.eo \
209 lib/elementary/elm_dayselector_part.eo \ 207 lib/elementary/elm_dayselector_part.eo \
@@ -364,6 +362,10 @@ lib/elementary/elm_inwin_eo.c \
364lib/elementary/elm_inwin_eo.legacy.c \ 362lib/elementary/elm_inwin_eo.legacy.c \
365lib/elementary/elm_label_eo.c \ 363lib/elementary/elm_label_eo.c \
366lib/elementary/elm_label_eo.legacy.c \ 364lib/elementary/elm_label_eo.legacy.c \
365lib/elementary/elm_list_eo.c \
366lib/elementary/elm_list_eo.legacy.c \
367lib/elementary/elm_list_item_eo.c \
368lib/elementary/elm_list_item_eo.legacy.c \
367$(NULL) 369$(NULL)
368 370
369elm_legacy_eo_headers = \ 371elm_legacy_eo_headers = \
@@ -495,6 +497,10 @@ lib/elementary/elm_inwin_eo.h \
495lib/elementary/elm_inwin_eo.legacy.h \ 497lib/elementary/elm_inwin_eo.legacy.h \
496lib/elementary/elm_label_eo.h \ 498lib/elementary/elm_label_eo.h \
497lib/elementary/elm_label_eo.legacy.h \ 499lib/elementary/elm_label_eo.legacy.h \
500lib/elementary/elm_list_eo.h \
501lib/elementary/elm_list_eo.legacy.h \
502lib/elementary/elm_list_item_eo.h \
503lib/elementary/elm_list_item_eo.legacy.h \
498$(NULL) 504$(NULL)
499 505
500 506
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 0119a66..f705436 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -3213,5 +3213,5 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_list, Elm_List_Data)
3213 ELM_LAYOUT_SIZING_EVAL_OPS(elm_list), \ 3213 ELM_LAYOUT_SIZING_EVAL_OPS(elm_list), \
3214 EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_list) 3214 EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_list)
3215 3215
3216#include "elm_list.eo.c" 3216#include "elm_list_eo.c"
3217#include "elm_list_item.eo.c" 3217#include "elm_list_item_eo.c"
diff --git a/src/lib/elementary/elm_list.eo b/src/lib/elementary/elm_list.eo
deleted file mode 100644
index 67efc77..0000000
--- a/src/lib/elementary/elm_list.eo
+++ /dev/null
@@ -1,439 +0,0 @@
1import elm_general;
2
3class Elm.List extends Efl.Ui.Layout_Base implements Elm.Interface_Scrollable,
4 Efl.Access.Widget.Action, Efl.Access.Selection, Efl.Access.Object,
5 Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Legacy, Elm.Widget_Item_Container
6{
7 [[Elementary list class]]
8 legacy_prefix: elm_list;
9 eo_prefix: elm_obj_list;
10 event_prefix: elm_list;
11 methods {
12 @property horizontal {
13 [[Control horizontal mode on the list object.
14
15 Note: Vertical mode is set by default.
16
17 On horizontal mode items are displayed on list from left to right,
18 instead of from top to bottom. Also, the list will scroll horizontally.
19 Each item will presents left icon on top and right icon, or end, at
20 the bottom.]]
21 set {
22 }
23 get {
24 }
25 values {
26 horizontal: bool; [[$true to enable horizontal or $false to disable it, i.e., to enable vertical mode.]]
27 }
28 }
29 @property select_mode {
30 [[Control the list select mode.
31
32 elm_list_select_mode_set() changes item select mode in the list widget.
33 - #ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func and
34 callback when first becoming selected. Any further clicks will
35 do nothing, unless you set always select mode.
36 - #ELM_OBJECT_SELECT_MODE_ALWAYS : This means that, even if selected,
37 every click will make the selected callbacks be called.
38 - #ELM_OBJECT_SELECT_MODE_NONE : This will turn off the ability to select items
39 entirely and they will neither appear selected nor call selected
40 callback functions.]]
41 set {
42 }
43 get {
44 }
45 values {
46 mode: Elm.Object.Select_Mode(Elm.Object.Select_Mode.max); [[The select mode]]
47 }
48 }
49 @property focus_on_selection {
50 [[Control focus upon items selection mode
51
52 When enabled, every selection of an item inside the genlist will automatically set focus to
53 its first focusable widget from the left. This is true of course if the selection was made by
54 clicking an unfocusable area in an item or selecting it with a key movement. Clicking on a
55 focusable widget inside an item will cause this particular item to get focus as usual.]]
56 set {
57 }
58 get {
59 }
60 values {
61 enabled: bool; [[The tree effect status ($true = enabled, $false = disabled)]]
62 }
63 }
64 @property multi_select {
65 [[Control multiple items selection on the list object.
66
67 Disabled by default. If disabled, the user can select a single item of
68 the list each time. Selected items are highlighted on list.
69 If enabled, many items can be selected.
70
71 If a selected item is selected again, it will be unselected.]]
72 set {
73 }
74 get {
75 }
76 values {
77 multi: bool; [[$true to enable multi selection or $false to disable it.]]
78 }
79 }
80 @property multi_select_mode {
81 [[Control the list multi select mode.
82
83 - #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever each
84 item is clicked.
85 - #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only one item will be selected
86 although multi-selection is enabled, if clicked without pressing control
87 key. This mode is only available with multi-selection.
88
89 See: @.multi_select
90
91 @since 1.8]]
92 set {
93 }
94 get {
95 }
96 values {
97 mode: Elm.Object.Multi_Select_Mode(Elm.Object.Multi_Select_Mode.max); [[The multi select mode]]
98 }
99 }
100 @property mode {
101 [[Control which mode to use for the list object.
102
103 Set list's resize behavior, transverse axis scroll and
104 items cropping. See each mode's description for more details.
105
106 Note: Default value is #ELM_LIST_SCROLL.
107
108 Only one mode at a time can be set. If a previous one was set, it
109 will be changed by the new mode after this call. Bitmasks won't
110 work here as well.
111
112 Warning: This function's behavior will clash with those of
113 elm_scroller_content_min_limit(), so use either one of them, but
114 not both.]]
115 set {
116 }
117 get {
118 }
119 values {
120 mode: Elm.List.Mode(Elm.List.Mode.last); [[One of #Elm_List_Mode: #ELM_LIST_COMPRESS, #ELM_LIST_SCROLL, #ELM_LIST_LIMIT or #ELM_LIST_EXPAND.]]
121 }
122 }
123 @property selected_item {
124 get {
125 [[Get the selected item.
126
127 The selected item can be unselected with function
128 elm_list_item_selected_set().
129
130 The selected item always will be highlighted on list.]]
131
132 return: Elm.Widget.Item; [[The selected list item.]]
133 }
134 }
135 @property items {
136 get {
137 [[Get a list of all the list items.]]
138
139 return: const(list<Elm.Widget.Item>); [[A $list of list items, #Elm.Widget.Item, or $NULL on failure.]]
140 }
141 }
142 @property first_item {
143 get {
144 [[Get the first item in the list
145
146 This returns the first item in the list.]]
147
148 return: Elm.Widget.Item; [[The first item, or NULL if none]]
149 }
150 }
151 @property selected_items {
152 get {
153 [[Return a list of the currently selected list items.
154
155 Multiple items can be selected if multi select is enabled. It can be
156 done with elm_list_multi_select_set().]]
157
158 return: const(list<Elm.Widget.Item>); [[An $list of list items, #Elm.Widget.Item, or $NULL on failure.]]
159 }
160 }
161 @property last_item {
162 get {
163 [[Get the last item in the list
164
165 This returns the last item in the list.]]
166
167 return: Elm.Widget.Item; [[The last item, or NULL if none]]
168 }
169 }
170 item_insert_before {
171 [[Insert a new item into the list object before item $before.
172
173 A new item will be created and added to the list. Its position in
174 this list will be just before item $before.
175
176 Items created with this method can be deleted with elm_object_item_del().
177
178 Associated $data can be properly freed when item is deleted if a
179 callback function is set with elm_object_item_del_cb_set().
180
181 If a function is passed as argument, it will be called every time this item
182 is selected, i.e., the user clicks over an unselected item.
183 If always select is enabled it will call this function every time
184 user clicks over an item (already selected or not).
185 If such function isn't needed, just passing
186 $NULL as $func is enough. The same should be done for $data.
187
188 Note: Remember that the label parameter is copied inside the list. So if an
189 application dynamically allocated the label, the application should free the
190 label after this call.]]
191
192 return: Elm.Widget.Item; [[The created item or $NULL upon failure.]]
193 params {
194 @in before: Elm.Widget.Item; [[The list item to insert before.]]
195 @in label: string; [[The label of the list item.]]
196 @in icon: Efl.Canvas.Object @optional; [[The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().]]
197 @in end: Efl.Canvas.Object @optional; [[The icon object to use for the right side of the item. An icon can be any Evas object.]]
198 @in func: Evas_Smart_Cb @optional; [[The function to call when the item is clicked.]]
199 @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]]
200 }
201 }
202 go {
203 [[Starts the list.
204
205 Note: Call before running show() on the list object.
206 Warning: If not called, it won't display the list properly.]]
207
208 /* FIXME-doc
209 @code
210 li = elm_list_add(win);
211 elm_list_item_append(li, "First", NULL, NULL, NULL, NULL);
212 elm_list_item_append(li, "Second", NULL, NULL, NULL, NULL);
213 elm_list_go(li);
214 evas_object_show(li);
215 @endcode */
216 }
217 item_insert_after {
218 [[Insert a new item into the list object after item $after.
219
220 A new item will be created and added to the list. Its position in
221 this list will be just after item $after.
222
223 Items created with this method can be deleted with elm_object_item_del().
224
225 Associated $data can be properly freed when item is deleted if a
226 callback function is set with elm_object_item_del_cb_set().
227
228 If a function is passed as argument, it will be called every time this item
229 is selected, i.e., the user clicks over an unselected item.
230 If always select is enabled it will call this function every time
231 user clicks over an item (already selected or not).
232 If such function isn't needed, just passing
233 $NULL as $func is enough. The same should be done for $data.
234
235 Note: Remember that the label parameter is copied inside the list. So if an
236 application dynamically allocated the label, the application should free the
237 label after this call.]]
238
239 return: Elm.Widget.Item; [[The created item or $NULL upon failure.]]
240 params {
241 @in after: Elm.Widget.Item; [[The list item to insert after.]]
242 @in label: string; [[The label of the list item.]]
243 @in icon: Efl.Canvas.Object @optional; [[The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().]]
244 @in end: Efl.Canvas.Object @optional; [[The icon object to use for the right side of the item. An icon can be any Evas object.]]
245 @in func: Evas_Smart_Cb @optional; [[The function to call when the item is clicked.]]
246 @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]]
247 }
248 }
249 at_xy_item_get @const {
250 [[Get the item that is at the x, y canvas coords.
251
252 This returns the item at the given coordinates (which are canvas
253 relative, not object-relative). If an item is at that coordinate,
254 that item handle is returned, and if $posret is not NULL, the
255 integer pointed to is set to a value of -1, 0 or 1, depending if
256 the coordinate is on the upper portion of that item (-1), on the
257 middle section (0) or on the lower part (1). If NULL is returned as
258 an item (no item found there), then posret may indicate -1 or 1
259 based if the coordinate is above or below all items respectively in
260 the list.]]
261
262 return: Elm.Widget.Item; [[The item at the coordinates or NULL if none]]
263 params {
264 @in x: int; [[The input x coordinate]]
265 @in y: int; [[The input y coordinate]]
266 @out posret: int; [[The position relative to the item returned here]]
267 }
268 }
269 item_append {
270 [[Append a new item to the list object.
271
272 A new item will be created and appended to the list, i.e., will
273 be set as last item.
274
275 Items created with this method can be deleted with elm_object_item_del().
276
277 Associated $data can be properly freed when item is deleted if a
278 callback function is set with elm_object_item_del_cb_set().
279
280 If a function is passed as argument, it will be called every time this item
281 is selected, i.e., the user clicks over an unselected item.
282 If always select is enabled it will call this function every time
283 user clicks over an item (already selected or not).
284 If such function isn't needed, just passing
285 $NULL as $func is enough. The same should be done for $data.
286
287 Note: Remember that the label parameter is copied inside the list. So if an
288 application dynamically allocated the label, the application should free the
289 label after this call.]]
290
291 /* FIXME-doc
292 Simple example (with no function callback or data associated):
293 @code
294 li = elm_list_add(win);
295 ic = elm_icon_add(win);
296 elm_image_file_set(ic, "path/to/image", NULL);
297 elm_icon_resizable_set(ic, true, true);
298 elm_list_item_append(li, "label", ic, NULL, NULL, NULL);
299 elm_list_go(li);
300 evas_object_show(li);
301 @endcode
302
303 @see elm_list_select_mode_set()
304 @see elm_object_item_del()
305 @see elm_object_item_del_cb_set()
306 @see elm_list_clear()
307 @see elm_icon_add()
308 */
309
310 return: Elm.Widget.Item; [[The created item or $NULL upon failure.]]
311 params {
312 @in label: string; [[The label of the list item.]]
313 @in icon: Efl.Canvas.Object @optional; [[The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().]]
314 @in end: Efl.Canvas.Object @optional; [[The icon object to use for the right side of the item. An icon can be any Evas object.]]
315 @in func: Evas_Smart_Cb @optional; [[The function to call when the item is clicked.]]
316 @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]]
317 }
318 }
319 item_prepend {
320 [[Prepend a new item to the list object.
321
322 A new item will be created and prepended to the list, i.e., will
323 be set as first item.
324
325 Items created with this method can be deleted with elm_object_item_del().
326
327 Associated $data can be properly freed when item is deleted if a
328 callback function is set with elm_object_item_del_cb_set().
329
330 If a function is passed as argument, it will be called every time this item
331 is selected, i.e., the user clicks over an unselected item.
332 If always select is enabled it will call this function every time
333 user clicks over an item (already selected or not).
334 If such function isn't needed, just passing
335 $NULL as $func is enough. The same should be done for $data.
336
337 Note: Remember that the label parameter is copied inside the list. So if an
338 application dynamically allocated the label, the application should free the
339 label after this call.]]
340
341 return: Elm.Widget.Item; [[The created item or $NULL upon failure.]]
342 params {
343 @in label: string; [[The label of the list item.]]
344 @in icon: Efl.Canvas.Object @optional; [[The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().]]
345 @in end: Efl.Canvas.Object @optional; [[The icon object to use for the right side of the item. An icon can be any Evas object.]]
346 @in func: Evas_Smart_Cb @optional; [[The function to call when the item is clicked.]]
347 @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]]
348 }
349 }
350 clear {
351 [[Remove all list's items.]]
352 }
353 item_sorted_insert {
354 [[Insert a new item into the sorted list object.
355
356 Note: This function inserts values into a list object assuming it was
357 sorted and the result will be sorted.
358
359 A new item will be created and added to the list. Its position in
360 this list will be found comparing the new item with previously inserted
361 items using function $cmp_func.
362
363 Items created with this method can be deleted with elm_object_item_del().
364
365 Associated $data can be properly freed when item is deleted if a
366 callback function is set with elm_object_item_del_cb_set().
367
368 If a function is passed as argument, it will be called every time this item
369 is selected, i.e., the user clicks over an unselected item.
370 If always select is enabled it will call this function every time
371 user clicks over an item (already selected or not).
372 If such function isn't needed, just passing
373 $NULL as $func is enough. The same should be done for $data.
374
375 Note: Remember that the label parameter is copied inside the list. So if an
376 application dynamically allocated the label, the application should free the
377 label after this call.]]
378
379 return: Elm.Widget.Item; [[The created item or $NULL upon failure.]]
380 params {
381 @in label: string; [[The label of the list item.]]
382 @in icon: Efl.Canvas.Object @optional; [[The icon object to use for the left side of the item. An icon can be any Evas object, but usually it is an icon created with elm_icon_add().]]
383 @in end: Efl.Canvas.Object @optional; [[The icon object to use for the right side of the item. An icon can be any Evas object.]]
384 @in func: Evas_Smart_Cb @optional; [[The function to call when the item is clicked.]]
385 @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]]
386 @in cmp_func: Eina_Compare_Cb; [[The comparing function to be used to sort list
387 items by #Elm.Widget.Item item handles. This function will
388 receive two items and compare them, returning a non-negative integer
389 if the second item should be place after the first, or negative value
390 if should be placed before.]]
391 }
392 }
393 }
394 implements {
395 class.constructor;
396 Efl.Object.constructor;
397 Efl.Gfx.Entity.position { set; }
398 Efl.Gfx.Entity.size { set; }
399 Efl.Canvas.Group.group_member_add;
400 Efl.Ui.Widget.theme_apply;
401 Efl.Ui.Widget.on_access_update;
402 Efl.Ui.Widget.focus_highlight_geometry { get; }
403 Efl.Ui.Widget.disabled {set;}
404 Efl.Ui.Focus.Object.on_focus_update;
405 Efl.Ui.L10n.translation_update;
406 Efl.Ui.Widget.widget_sub_object_del;
407 Efl.Ui.Widget.widget_input_event_handler;
408 Elm.Widget_Item_Container.focused_item { get; }
409 Efl.Ui.Widget.focus_state_apply;
410 Elm.Interface_Scrollable.item_loop_enabled { get; set; }
411 Elm.Interface_Scrollable.policy { set; }
412 Efl.Access.Widget.Action.elm_actions { get; }
413 Efl.Access.Object.access_children { get; }
414 Efl.Access.Selection.selected_children_count { get; }
415 Efl.Access.Selection.selected_child { get; }
416 Efl.Access.Selection.selected_child_deselect;
417 Efl.Access.Selection.child_select;
418 Efl.Access.Selection.child_deselect;
419 Efl.Access.Selection.is_child_selected;
420 Efl.Access.Selection.all_children_select;
421 Efl.Access.Selection.access_selection_clear;
422 }
423 events {
424 activated: Efl.Object; [[Called when activated]]
425 edge,top: void; [[Called when top edge was reached]]
426 edge,bottom: void; [[Called when bottom edge was reached]]
427 edge,left: void; [[Called when left edge was reached]]
428 edge,right: void; [[Called when right edge was reached]]
429 swipe: Efl.Object; [[Called when swipe is detected]]
430 highlighted: Efl.Object; [[Called when highlighted]]
431 unhighlighted: Efl.Object; [[Called when no longer highlighted]]
432 item,focused: Efl.Object; [[Called when item got focus]]
433 item,unfocused: Efl.Object; [[Called when item no longer has focus]]
434 /* FIXME: Nobody emits these
435 item,reorder,anim,start; [[Called when item reorder animation started]]
436 item,reorder,anim,stop; [[Called when item reorder animation stopped]]
437 */
438 }
439}
diff --git a/src/lib/elementary/elm_list_eo.c b/src/lib/elementary/elm_list_eo.c
new file mode 100644
index 0000000..077fcac
--- /dev/null
+++ b/src/lib/elementary/elm_list_eo.c
@@ -0,0 +1,368 @@
1EWAPI const Efl_Event_Description _ELM_LIST_EVENT_ACTIVATED =
2 EFL_EVENT_DESCRIPTION("activated");
3EWAPI const Efl_Event_Description _ELM_LIST_EVENT_EDGE_TOP =
4 EFL_EVENT_DESCRIPTION("edge,top");
5EWAPI const Efl_Event_Description _ELM_LIST_EVENT_EDGE_BOTTOM =
6 EFL_EVENT_DESCRIPTION("edge,bottom");
7EWAPI const Efl_Event_Description _ELM_LIST_EVENT_EDGE_LEFT =
8 EFL_EVENT_DESCRIPTION("edge,left");
9EWAPI const Efl_Event_Description _ELM_LIST_EVENT_EDGE_RIGHT =
10 EFL_EVENT_DESCRIPTION("edge,right");
11EWAPI const Efl_Event_Description _ELM_LIST_EVENT_SWIPE =
12 EFL_EVENT_DESCRIPTION("swipe");
13EWAPI const Efl_Event_Description _ELM_LIST_EVENT_HIGHLIGHTED =
14 EFL_EVENT_DESCRIPTION("highlighted");
15EWAPI const Efl_Event_Description _ELM_LIST_EVENT_UNHIGHLIGHTED =
16 EFL_EVENT_DESCRIPTION("unhighlighted");
17EWAPI const Efl_Event_Description _ELM_LIST_EVENT_ITEM_FOCUSED =
18 EFL_EVENT_DESCRIPTION("item,focused");
19EWAPI const Efl_Event_Description _ELM_LIST_EVENT_ITEM_UNFOCUSED =
20 EFL_EVENT_DESCRIPTION("item,unfocused");
21
22void _elm_list_horizontal_set(Eo *obj, Elm_List_Data *pd, Eina_Bool horizontal);
23
24
25static Eina_Error
26__eolian_elm_list_horizontal_set_reflect(Eo *obj, Eina_Value val)
27{
28 Eina_Error r = 0; Eina_Bool cval;
29 if (!eina_value_bool_convert(&val, &cval))
30 {
31 r = EINA_ERROR_VALUE_FAILED;
32 goto end;
33 }
34 elm_obj_list_horizontal_set(obj, cval);
35 end:
36 eina_value_flush(&val);
37 return r;
38}
39
40EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_horizontal_set, EFL_FUNC_CALL(horizontal), Eina_Bool horizontal);
41
42Eina_Bool _elm_list_horizontal_get(const Eo *obj, Elm_List_Data *pd);
43
44
45static Eina_Value
46__eolian_elm_list_horizontal_get_reflect(Eo *obj)
47{
48 Eina_Bool val = elm_obj_list_horizontal_get(obj);
49 return eina_value_bool_init(val);
50}
51
52EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_horizontal_get, Eina_Bool, 0);
53
54void _elm_list_select_mode_set(Eo *obj, Elm_List_Data *pd, Elm_Object_Select_Mode mode);
55
56EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_select_mode_set, EFL_FUNC_CALL(mode), Elm_Object_Select_Mode mode);
57
58Elm_Object_Select_Mode _elm_list_select_mode_get(const Eo *obj, Elm_List_Data *pd);
59
60EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_select_mode_get, Elm_Object_Select_Mode, 4 /* Elm.Object.Select_Mode.max */);
61
62void _elm_list_focus_on_selection_set(Eo *obj, Elm_List_Data *pd, Eina_Bool enabled);
63
64
65static Eina_Error
66__eolian_elm_list_focus_on_selection_set_reflect(Eo *obj, Eina_Value val)
67{
68 Eina_Error r = 0; Eina_Bool cval;
69 if (!eina_value_bool_convert(&val, &cval))
70 {
71 r = EINA_ERROR_VALUE_FAILED;
72 goto end;
73 }
74 elm_obj_list_focus_on_selection_set(obj, cval);
75 end:
76 eina_value_flush(&val);
77 return r;
78}
79
80EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_focus_on_selection_set, EFL_FUNC_CALL(enabled), Eina_Bool enabled);
81
82Eina_Bool _elm_list_focus_on_selection_get(const Eo *obj, Elm_List_Data *pd);
83
84
85static Eina_Value
86__eolian_elm_list_focus_on_selection_get_reflect(Eo *obj)
87{
88 Eina_Bool val = elm_obj_list_focus_on_selection_get(obj);
89 return eina_value_bool_init(val);
90}
91
92EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_focus_on_selection_get, Eina_Bool, 0);
93
94void _elm_list_multi_select_set(Eo *obj, Elm_List_Data *pd, Eina_Bool multi);
95
96
97static Eina_Error
98__eolian_elm_list_multi_select_set_reflect(Eo *obj, Eina_Value val)
99{
100 Eina_Error r = 0; Eina_Bool cval;
101 if (!eina_value_bool_convert(&val, &cval))
102 {
103 r = EINA_ERROR_VALUE_FAILED;
104 goto end;
105 }
106 elm_obj_list_multi_select_set(obj, cval);
107 end:
108 eina_value_flush(&val);
109 return r;
110}
111
112EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_multi_select_set, EFL_FUNC_CALL(multi), Eina_Bool multi);
113
114Eina_Bool _elm_list_multi_select_get(const Eo *obj, Elm_List_Data *pd);
115
116
117static Eina_Value
118__eolian_elm_list_multi_select_get_reflect(Eo *obj)
119{
120 Eina_Bool val = elm_obj_list_multi_select_get(obj);
121 return eina_value_bool_init(val);
122}
123
124EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_multi_select_get, Eina_Bool, 0);
125
126void _elm_list_multi_select_mode_set(Eo *obj, Elm_List_Data *pd, Elm_Object_Multi_Select_Mode mode);
127
128EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_multi_select_mode_set, EFL_FUNC_CALL(mode), Elm_Object_Multi_Select_Mode mode);
129
130Elm_Object_Multi_Select_Mode _elm_list_multi_select_mode_get(const Eo *obj, Elm_List_Data *pd);
131
132EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_multi_select_mode_get, Elm_Object_Multi_Select_Mode, 2 /* Elm.Object.Multi_Select_Mode.max */);
133
134void _elm_list_mode_set(Eo *obj, Elm_List_Data *pd, Elm_List_Mode mode);
135
136EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_mode_set, EFL_FUNC_CALL(mode), Elm_List_Mode mode);
137
138Elm_List_Mode _elm_list_mode_get(const Eo *obj, Elm_List_Data *pd);
139
140EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_mode_get, Elm_List_Mode, 4 /* Elm.List.Mode.last */);
141
142Elm_Widget_Item *_elm_list_selected_item_get(const Eo *obj, Elm_List_Data *pd);
143
144EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_selected_item_get, Elm_Widget_Item *, NULL);
145
146const Eina_List *_elm_list_items_get(const Eo *obj, Elm_List_Data *pd);
147
148EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_items_get, const Eina_List *, NULL);
149
150Elm_Widget_Item *_elm_list_first_item_get(const Eo *obj, Elm_List_Data *pd);
151
152EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_first_item_get, Elm_Widget_Item *, NULL);
153
154const Eina_List *_elm_list_selected_items_get(const Eo *obj, Elm_List_Data *pd);
155
156EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_selected_items_get, const Eina_List *, NULL);
157
158Elm_Widget_Item *_elm_list_last_item_get(const Eo *obj, Elm_List_Data *pd);
159
160EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_last_item_get, Elm_Widget_Item *, NULL);
161
162Elm_Widget_Item *_elm_list_item_insert_before(Eo *obj, Elm_List_Data *pd, Elm_Widget_Item *before, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
163
164EOAPI EFL_FUNC_BODYV(elm_obj_list_item_insert_before, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(before, label, icon, end, func, data), Elm_Widget_Item *before, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
165
166void _elm_list_go(Eo *obj, Elm_List_Data *pd);
167
168EOAPI EFL_VOID_FUNC_BODY(elm_obj_list_go);
169
170Elm_Widget_Item *_elm_list_item_insert_after(Eo *obj, Elm_List_Data *pd, Elm_Widget_Item *after, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
171
172EOAPI EFL_FUNC_BODYV(elm_obj_list_item_insert_after, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(after, label, icon, end, func, data), Elm_Widget_Item *after, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
173
174Elm_Widget_Item *_elm_list_at_xy_item_get(const Eo *obj, Elm_List_Data *pd, int x, int y, int *posret);
175
176EOAPI EFL_FUNC_BODYV_CONST(elm_obj_list_at_xy_item_get, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(x, y, posret), int x, int y, int *posret);
177
178Elm_Widget_Item *_elm_list_item_append(Eo *obj, Elm_List_Data *pd, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
179
180EOAPI EFL_FUNC_BODYV(elm_obj_list_item_append, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon, end, func, data), const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
181
182Elm_Widget_Item *_elm_list_item_prepend(Eo *obj, Elm_List_Data *pd, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
183
184EOAPI EFL_FUNC_BODYV(elm_obj_list_item_prepend, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon, end, func, data), const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
185
186void _elm_list_clear(Eo *obj, Elm_List_Data *pd);
187
188EOAPI EFL_VOID_FUNC_BODY(elm_obj_list_clear);
189
190Elm_Widget_Item *_elm_list_item_sorted_insert(Eo *obj, Elm_List_Data *pd, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func);
191
192EOAPI EFL_FUNC_BODYV(elm_obj_list_item_sorted_insert, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon, end, func, data, cmp_func), const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func);
193
194Efl_Object *_elm_list_efl_object_constructor(Eo *obj, Elm_List_Data *pd);
195
196
197void _elm_list_efl_gfx_entity_position_set(Eo *obj, Elm_List_Data *pd, Eina_Position2D pos);
198
199
200void _elm_list_efl_gfx_entity_size_set(Eo *obj, Elm_List_Data *pd, Eina_Size2D size);
201
202
203void _elm_list_efl_canvas_group_group_member_add(Eo *obj, Elm_List_Data *pd, Efl_Canvas_Object *sub_obj);
204
205
206Eina_Error _elm_list_efl_ui_widget_theme_apply(Eo *obj, Elm_List_Data *pd);
207
208
209void _elm_list_efl_ui_widget_on_access_update(Eo *obj, Elm_List_Data *pd, Eina_Bool enable);
210
211
212Eina_Rect _elm_list_efl_ui_widget_focus_highlight_geometry_get(const Eo *obj, Elm_List_Data *pd);
213
214
215void _elm_list_efl_ui_widget_disabled_set(Eo *obj, Elm_List_Data *pd, Eina_Bool disabled);
216
217
218Eina_Bool _elm_list_efl_ui_focus_object_on_focus_update(Eo *obj, Elm_List_Data *pd);
219
220
221void _elm_list_efl_ui_l10n_translation_update(Eo *obj, Elm_List_Data *pd);
222
223
224Eina_Bool _elm_list_efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_List_Data *pd, Efl_Canvas_Object *sub_obj);
225
226
227Eina_Bool _elm_list_efl_ui_widget_widget_input_event_handler(Eo *obj, Elm_List_Data *pd, const Efl_Event *eo_event, Efl_Canvas_Object *source);
228
229
230Elm_Widget_Item *_elm_list_elm_widget_item_container_focused_item_get(const Eo *obj, Elm_List_Data *pd);
231
232
233Eina_Bool _elm_list_efl_ui_widget_focus_state_apply(Eo *obj, Elm_List_Data *pd, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect);
234
235
236void _elm_list_elm_interface_scrollable_item_loop_enabled_set(Eo *obj, Elm_List_Data *pd, Eina_Bool enable);
237
238
239Eina_Bool _elm_list_elm_interface_scrollable_item_loop_enabled_get(const Eo *obj, Elm_List_Data *pd);
240
241
242void _elm_list_elm_interface_scrollable_policy_set(Eo *obj, Elm_List_Data *pd, Elm_Scroller_Policy hbar, Elm_Scroller_Policy vbar);
243
244
245const Efl_Access_Action_Data *_elm_list_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_List_Data *pd);
246
247
248Eina_List *_elm_list_efl_access_object_access_children_get(const Eo *obj, Elm_List_Data *pd);
249
250
251int _elm_list_efl_access_selection_selected_children_count_get(const Eo *obj, Elm_List_Data *pd);
252
253
254Efl_Object *_elm_list_efl_access_selection_selected_child_get(const Eo *obj, Elm_List_Data *pd, int selected_child_index);
255
256
257Eina_Bool _elm_list_efl_access_selection_selected_child_deselect(Eo *obj, Elm_List_Data *pd, int child_index);
258
259
260Eina_Bool _elm_list_efl_access_selection_child_select(Eo *obj, Elm_List_Data *pd, int child_index);
261
262
263Eina_Bool _elm_list_efl_access_selection_child_deselect(Eo *obj, Elm_List_Data *pd, int child_index);
264
265
266Eina_Bool _elm_list_efl_access_selection_is_child_selected(Eo *obj, Elm_List_Data *pd, int child_index);
267
268
269Eina_Bool _elm_list_efl_access_selection_all_children_select(Eo *obj, Elm_List_Data *pd);
270
271
272Eina_Bool _elm_list_efl_access_selection_access_selection_clear(Eo *obj, Elm_List_Data *pd);
273
274
275static Eina_Bool
276_elm_list_class_initializer(Efl_Class *klass)
277{
278 const Efl_Object_Ops *opsp = NULL;
279
280 const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
281
282#ifndef ELM_LIST_EXTRA_OPS
283#define ELM_LIST_EXTRA_OPS
284#endif
285
286 EFL_OPS_DEFINE(ops,
287 EFL_OBJECT_OP_FUNC(elm_obj_list_horizontal_set, _elm_list_horizontal_set),
288 EFL_OBJECT_OP_FUNC(elm_obj_list_horizontal_get, _elm_list_horizontal_get),
289 EFL_OBJECT_OP_FUNC(elm_obj_list_select_mode_set, _elm_list_select_mode_set),
290 EFL_OBJECT_OP_FUNC(elm_obj_list_select_mode_get, _elm_list_select_mode_get),
291 EFL_OBJECT_OP_FUNC(elm_obj_list_focus_on_selection_set, _elm_list_focus_on_selection_set),
292 EFL_OBJECT_OP_FUNC(elm_obj_list_focus_on_selection_get, _elm_list_focus_on_selection_get),
293 EFL_OBJECT_OP_FUNC(elm_obj_list_multi_select_set, _elm_list_multi_select_set),
294 EFL_OBJECT_OP_FUNC(elm_obj_list_multi_select_get, _elm_list_multi_select_get),
295 EFL_OBJECT_OP_FUNC(elm_obj_list_multi_select_mode_set, _elm_list_multi_select_mode_set),
296 EFL_OBJECT_OP_FUNC(elm_obj_list_multi_select_mode_get, _elm_list_multi_select_mode_get),
297 EFL_OBJECT_OP_FUNC(elm_obj_list_mode_set, _elm_list_mode_set),
298 EFL_OBJECT_OP_FUNC(elm_obj_list_mode_get, _elm_list_mode_get),
299 EFL_OBJECT_OP_FUNC(elm_obj_list_selected_item_get, _elm_list_selected_item_get),
300 EFL_OBJECT_OP_FUNC(elm_obj_list_items_get, _elm_list_items_get),
301 EFL_OBJECT_OP_FUNC(elm_obj_list_first_item_get, _elm_list_first_item_get),
302 EFL_OBJECT_OP_FUNC(elm_obj_list_selected_items_get, _elm_list_selected_items_get),
303 EFL_OBJECT_OP_FUNC(elm_obj_list_last_item_get, _elm_list_last_item_get),
304 EFL_OBJECT_OP_FUNC(elm_obj_list_item_insert_before, _elm_list_item_insert_before),
305 EFL_OBJECT_OP_FUNC(elm_obj_list_go, _elm_list_go),
306 EFL_OBJECT_OP_FUNC(elm_obj_list_item_insert_after, _elm_list_item_insert_after),
307 EFL_OBJECT_OP_FUNC(elm_obj_list_at_xy_item_get, _elm_list_at_xy_item_get),
308 EFL_OBJECT_OP_FUNC(elm_obj_list_item_append, _elm_list_item_append),
309 EFL_OBJECT_OP_FUNC(elm_obj_list_item_prepend, _elm_list_item_prepend),
310 EFL_OBJECT_OP_FUNC(elm_obj_list_clear, _elm_list_clear),
311 EFL_OBJECT_OP_FUNC(elm_obj_list_item_sorted_insert, _elm_list_item_sorted_insert),
312 EFL_OBJECT_OP_FUNC(efl_constructor, _elm_list_efl_object_constructor),
313 EFL_OBJECT_OP_FUNC(efl_gfx_entity_position_set, _elm_list_efl_gfx_entity_position_set),
314 EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, _elm_list_efl_gfx_entity_size_set),
315 EFL_OBJECT_OP_FUNC(efl_canvas_group_member_add, _elm_list_efl_canvas_group_group_member_add),
316 EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_list_efl_ui_widget_theme_apply),
317 EFL_OBJECT_OP_FUNC(efl_ui_widget_on_access_update, _elm_list_efl_ui_widget_on_access_update),
318 EFL_OBJECT_OP_FUNC(efl_ui_widget_focus_highlight_geometry_get, _elm_list_efl_ui_widget_focus_highlight_geometry_get),
319 EFL_OBJECT_OP_FUNC(efl_ui_widget_disabled_set, _elm_list_efl_ui_widget_disabled_set),
320 EFL_OBJECT_OP_FUNC(efl_ui_focus_object_on_focus_update, _elm_list_efl_ui_focus_object_on_focus_update),
321 EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, _elm_list_efl_ui_l10n_translation_update),
322 EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_del, _elm_list_efl_ui_widget_widget_sub_object_del),
323 EFL_OBJECT_OP_FUNC(efl_ui_widget_input_event_handler, _elm_list_efl_ui_widget_widget_input_event_handler),
324 EFL_OBJECT_OP_FUNC(elm_widget_item_container_focused_item_get, _elm_list_elm_widget_item_container_focused_item_get),
325 EFL_OBJECT_OP_FUNC(efl_ui_widget_focus_state_apply, _elm_list_efl_ui_widget_focus_state_apply),
326 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_item_loop_enabled_set, _elm_list_elm_interface_scrollable_item_loop_enabled_set),
327 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_item_loop_enabled_get, _elm_list_elm_interface_scrollable_item_loop_enabled_get),
328 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_set, _elm_list_elm_interface_scrollable_policy_set),
329 EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_list_efl_access_widget_action_elm_actions_get),
330 EFL_OBJECT_OP_FUNC(efl_access_object_access_children_get, _elm_list_efl_access_object_access_children_get),
331 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_children_count_get, _elm_list_efl_access_selection_selected_children_count_get),
332 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_child_get, _elm_list_efl_access_selection_selected_child_get),
333 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_child_deselect, _elm_list_efl_access_selection_selected_child_deselect),
334 EFL_OBJECT_OP_FUNC(efl_access_selection_child_select, _elm_list_efl_access_selection_child_select),
335 EFL_OBJECT_OP_FUNC(efl_access_selection_child_deselect, _elm_list_efl_access_selection_child_deselect),
336 EFL_OBJECT_OP_FUNC(efl_access_selection_is_child_selected, _elm_list_efl_access_selection_is_child_selected),
337 EFL_OBJECT_OP_FUNC(efl_access_selection_all_children_select, _elm_list_efl_access_selection_all_children_select),
338 EFL_OBJECT_OP_FUNC(efl_access_selection_clear, _elm_list_efl_access_selection_access_selection_clear),
339 ELM_LIST_EXTRA_OPS
340 );
341 opsp = &ops;
342
343 static const Efl_Object_Property_Reflection refl_table[] = {
344 {"horizontal", __eolian_elm_list_horizontal_set_reflect, __eolian_elm_list_horizontal_get_reflect},
345 {"focus_on_selection", __eolian_elm_list_focus_on_selection_set_reflect, __eolian_elm_list_focus_on_selection_get_reflect},
346 {"multi_select", __eolian_elm_list_multi_select_set_reflect, __eolian_elm_list_multi_select_get_reflect},
347 };
348 static const Efl_Object_Property_Reflection_Ops rops = {
349 refl_table, EINA_C_ARRAY_LENGTH(refl_table)
350 };
351 ropsp = &rops;
352
353 return efl_class_functions_set(klass, opsp, ropsp);
354}
355
356static const Efl_Class_Description _elm_list_class_desc = {
357 EO_VERSION,
358 "Elm.List",
359 EFL_CLASS_TYPE_REGULAR,
360 sizeof(Elm_List_Data),
361 _elm_list_class_initializer,
362 _elm_list_class_constructor,
363 NULL
364};
365
366EFL_DEFINE_CLASS(elm_list_class_get, &_elm_list_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_ACCESS_OBJECT_MIXIN, EFL_UI_CLICKABLE_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
367
368#include "elm_list_eo.legacy.c"
diff --git a/src/lib/elementary/elm_list_eo.h b/src/lib/elementary/elm_list_eo.h
new file mode 100644
index 0000000..4587ed0
--- /dev/null
+++ b/src/lib/elementary/elm_list_eo.h
@@ -0,0 +1,640 @@
1#ifndef _ELM_LIST_EO_H_
2#define _ELM_LIST_EO_H_
3
4#ifndef _ELM_LIST_EO_CLASS_TYPE
5#define _ELM_LIST_EO_CLASS_TYPE
6
7typedef Eo Elm_List;
8
9#endif
10
11#ifndef _ELM_LIST_EO_TYPES
12#define _ELM_LIST_EO_TYPES
13
14
15#endif
16/** Elementary list class
17 *
18 * @ingroup Elm_List
19 */
20#define ELM_LIST_CLASS elm_list_class_get()
21
22EWAPI const Efl_Class *elm_list_class_get(void);
23
24/**
25 * @brief Control horizontal mode on the list object.
26 *
27 * @note Vertical mode is set by default.
28 *
29 * On horizontal mode items are displayed on list from left to right, instead
30 * of from top to bottom. Also, the list will scroll horizontally. Each item
31 * will presents left icon on top and right icon, or end, at the bottom.
32 *
33 * @param[in] obj The object.
34 * @param[in] horizontal @c true to enable horizontal or @c false to disable
35 * it, i.e., to enable vertical mode.
36 *
37 * @ingroup Elm_List
38 */
39EOAPI void elm_obj_list_horizontal_set(Eo *obj, Eina_Bool horizontal);
40
41/**
42 * @brief Control horizontal mode on the list object.
43 *
44 * @note Vertical mode is set by default.
45 *
46 * On horizontal mode items are displayed on list from left to right, instead
47 * of from top to bottom. Also, the list will scroll horizontally. Each item
48 * will presents left icon on top and right icon, or end, at the bottom.
49 *
50 * @param[in] obj The object.
51 *
52 * @return @c true to enable horizontal or @c false to disable it, i.e., to
53 * enable vertical mode.
54 *
55 * @ingroup Elm_List
56 */
57EOAPI Eina_Bool elm_obj_list_horizontal_get(const Eo *obj);
58
59/**
60 * @brief Control the list select mode.
61 *
62 * elm_list_select_mode_set() changes item select mode in the list widget. -
63 * #ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func
64 * and callback when first becoming selected. Any further clicks will do
65 * nothing, unless you set always select mode. - #ELM_OBJECT_SELECT_MODE_ALWAYS
66 * : This means that, even if selected, every click will make the selected
67 * callbacks be called. - #ELM_OBJECT_SELECT_MODE_NONE : This will turn off the
68 * ability to select items entirely and they will neither appear selected nor
69 * call selected callback functions.
70 *
71 * @param[in] obj The object.
72 * @param[in] mode The select mode
73 *
74 * @ingroup Elm_List
75 */
76EOAPI void elm_obj_list_select_mode_set(Eo *obj, Elm_Object_Select_Mode mode);
77
78/**
79 * @brief Control the list select mode.
80 *
81 * elm_list_select_mode_set() changes item select mode in the list widget. -
82 * #ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func
83 * and callback when first becoming selected. Any further clicks will do
84 * nothing, unless you set always select mode. - #ELM_OBJECT_SELECT_MODE_ALWAYS
85 * : This means that, even if selected, every click will make the selected
86 * callbacks be called. - #ELM_OBJECT_SELECT_MODE_NONE : This will turn off the
87 * ability to select items entirely and they will neither appear selected nor
88 * call selected callback functions.
89 *
90 * @param[in] obj The object.
91 *
92 * @return The select mode
93 *
94 * @ingroup Elm_List
95 */
96EOAPI Elm_Object_Select_Mode elm_obj_list_select_mode_get(const Eo *obj);
97
98/**
99 * @brief Control focus upon items selection mode
100 *
101 * When enabled, every selection of an item inside the genlist will
102 * automatically set focus to its first focusable widget from the left. This is
103 * true of course if the selection was made by clicking an unfocusable area in
104 * an item or selecting it with a key movement. Clicking on a focusable widget
105 * inside an item will cause this particular item to get focus as usual.
106 *
107 * @param[in] obj The object.
108 * @param[in] enabled The tree effect status ($true = enabled, @c false =
109 * disabled)
110 *
111 * @ingroup Elm_List
112 */
113EOAPI void elm_obj_list_focus_on_selection_set(Eo *obj, Eina_Bool enabled);
114
115/**
116 * @brief Control focus upon items selection mode
117 *
118 * When enabled, every selection of an item inside the genlist will
119 * automatically set focus to its first focusable widget from the left. This is
120 * true of course if the selection was made by clicking an unfocusable area in
121 * an item or selecting it with a key movement. Clicking on a focusable widget
122 * inside an item will cause this particular item to get focus as usual.
123 *
124 * @param[in] obj The object.
125 *
126 * @return The tree effect status ($true = enabled, @c false = disabled)
127 *
128 * @ingroup Elm_List
129 */
130EOAPI Eina_Bool elm_obj_list_focus_on_selection_get(const Eo *obj);
131
132/**
133 * @brief Control multiple items selection on the list object.
134 *
135 * Disabled by default. If disabled, the user can select a single item of the
136 * list each time. Selected items are highlighted on list. If enabled, many
137 * items can be selected.
138 *
139 * If a selected item is selected again, it will be unselected.
140 *
141 * @param[in] obj The object.
142 * @param[in] multi @c true to enable multi selection or @c false to disable
143 * it.
144 *
145 * @ingroup Elm_List
146 */
147EOAPI void elm_obj_list_multi_select_set(Eo *obj, Eina_Bool multi);
148
149/**
150 * @brief Control multiple items selection on the list object.
151 *
152 * Disabled by default. If disabled, the user can select a single item of the
153 * list each time. Selected items are highlighted on list. If enabled, many
154 * items can be selected.
155 *
156 * If a selected item is selected again, it will be unselected.
157 *
158 * @param[in] obj The object.
159 *
160 * @return @c true to enable multi selection or @c false to disable it.
161 *
162 * @ingroup Elm_List
163 */
164EOAPI Eina_Bool elm_obj_list_multi_select_get(const Eo *obj);
165
166/**
167 * @brief Control the list multi select mode.
168 *
169 * - #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever
170 * each item is clicked. - #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only
171 * one item will be selected although multi-selection is enabled, if clicked
172 * without pressing control key. This mode is only available with
173 * multi-selection.
174 *
175 * See: @ref elm_obj_list_multi_select_get
176 *
177 * @param[in] obj The object.
178 * @param[in] mode The multi select mode
179 *
180 * @since 1.8
181 *
182 * @ingroup Elm_List
183 */
184EOAPI void elm_obj_list_multi_select_mode_set(Eo *obj, Elm_Object_Multi_Select_Mode mode);
185
186/**
187 * @brief Control the list multi select mode.
188 *
189 * - #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever
190 * each item is clicked. - #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only
191 * one item will be selected although multi-selection is enabled, if clicked
192 * without pressing control key. This mode is only available with
193 * multi-selection.
194 *
195 * See: @ref elm_obj_list_multi_select_get
196 *
197 * @param[in] obj The object.
198 *
199 * @return The multi select mode
200 *
201 * @since 1.8
202 *
203 * @ingroup Elm_List
204 */
205EOAPI Elm_Object_Multi_Select_Mode elm_obj_list_multi_select_mode_get(const Eo *obj);
206
207/**
208 * @brief Control which mode to use for the list object.
209 *
210 * Set list's resize behavior, transverse axis scroll and items cropping. See
211 * each mode's description for more details.
212 *
213 * @note Default value is #ELM_LIST_SCROLL.
214 *
215 * Only one mode at a time can be set. If a previous one was set, it will be
216 * changed by the new mode after this call. Bitmasks won't work here as well.
217 *
218 * @warning This function's behavior will clash with those of
219 * elm_scroller_content_min_limit(), so use either one of them, but not both.
220 *
221 * @param[in] obj The object.
222 * @param[in] mode One of #Elm_List_Mode: #ELM_LIST_COMPRESS, #ELM_LIST_SCROLL,
223 * #ELM_LIST_LIMIT or #ELM_LIST_EXPAND.
224 *
225 * @ingroup Elm_List
226 */
227EOAPI void elm_obj_list_mode_set(Eo *obj, Elm_List_Mode mode);
228
229/**
230 * @brief Control which mode to use for the list object.
231 *
232 * Set list's resize behavior, transverse axis scroll and items cropping. See
233 * each mode's description for more details.
234 *
235 * @note Default value is #ELM_LIST_SCROLL.
236 *
237 * Only one mode at a time can be set. If a previous one was set, it will be
238 * changed by the new mode after this call. Bitmasks won't work here as well.
239 *
240 * @warning This function's behavior will clash with those of
241 * elm_scroller_content_min_limit(), so use either one of them, but not both.
242 *
243 * @param[in] obj The object.
244 *
245 * @return One of #Elm_List_Mode: #ELM_LIST_COMPRESS, #ELM_LIST_SCROLL,
246 * #ELM_LIST_LIMIT or #ELM_LIST_EXPAND.
247 *
248 * @ingroup Elm_List
249 */
250EOAPI Elm_List_Mode elm_obj_list_mode_get(const Eo *obj);
251
252/**
253 * @brief Get the selected item.
254 *
255 * The selected item can be unselected with function
256 * elm_list_item_selected_set().
257 *
258 * The selected item always will be highlighted on list.
259 *
260 * @param[in] obj The object.
261 *
262 * @return The selected list item.
263 *
264 * @ingroup Elm_List
265 */
266EOAPI Elm_Widget_Item *elm_obj_list_selected_item_get(const Eo *obj);
267
268/**
269 * @brief Get a list of all the list items.
270 *
271 * @param[in] obj The object.
272 *
273 * @return A @c list of list items, #Elm.Widget.Item, or @c NULL on failure.
274 *
275 * @ingroup Elm_List
276 */
277EOAPI const Eina_List *elm_obj_list_items_get(const Eo *obj);
278
279/**
280 * @brief Get the first item in the list
281 *
282 * This returns the first item in the list.
283 *
284 * @param[in] obj The object.
285 *
286 * @return The first item, or NULL if none
287 *
288 * @ingroup Elm_List
289 */
290EOAPI Elm_Widget_Item *elm_obj_list_first_item_get(const Eo *obj);
291
292/**
293 * @brief Return a list of the currently selected list items.
294 *
295 * Multiple items can be selected if multi select is enabled. It can be done
296 * with elm_list_multi_select_set().
297 *
298 * @param[in] obj The object.
299 *
300 * @return An @c list of list items, #Elm.Widget.Item, or @c NULL on failure.
301 *
302 * @ingroup Elm_List
303 */
304EOAPI const Eina_List *elm_obj_list_selected_items_get(const Eo *obj);
305
306/**
307 * @brief Get the last item in the list
308 *
309 * This returns the last item in the list.
310 *
311 * @param[in] obj The object.
312 *
313 * @return The last item, or NULL if none
314 *
315 * @ingroup Elm_List
316 */
317EOAPI Elm_Widget_Item *elm_obj_list_last_item_get(const Eo *obj);
318
319/**
320 * @brief Insert a new item into the list object before item @c before.
321 *
322 * A new item will be created and added to the list. Its position in this list
323 * will be just before item @c before.
324 *
325 * Items created with this method can be deleted with elm_object_item_del().
326 *
327 * Associated @c data can be properly freed when item is deleted if a callback
328 * function is set with elm_object_item_del_cb_set().
329 *
330 * If a function is passed as argument, it will be called every time this item
331 * is selected, i.e., the user clicks over an unselected item. If always select
332 * is enabled it will call this function every time user clicks over an item
333 * (already selected or not). If such function isn't needed, just passing
334 * @c NULL as @c func is enough. The same should be done for @c data.
335 *
336 * @note Remember that the label parameter is copied inside the list. So if an
337 * application dynamically allocated the label, the application should free the
338 * label after this call.
339 *
340 * @param[in] obj The object.
341 * @param[in] before The list item to insert before.
342 * @param[in] label The label of the list item.
343 * @param[in] icon The icon object to use for the left side of the item. An
344 * icon can be any Evas object, but usually it is an icon created with
345 * elm_icon_add().
346 * @param[in] end The icon object to use for the right side of the item. An
347 * icon can be any Evas object.
348 * @param[in] func The function to call when the item is clicked.
349 * @param[in] data The data to associate with the item for related callbacks.
350 *
351 * @return The created item or @c NULL upon failure.
352 *
353 * @ingroup Elm_List
354 */
355EOAPI Elm_Widget_Item *elm_obj_list_item_insert_before(Eo *obj, Elm_Widget_Item *before, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
356
357/**
358 * @brief Starts the list.
359 *
360 * @note Call before running show() on the list object. Warning: If not called,
361 * it won't display the list properly.
362 * @param[in] obj The object.
363 *
364 * @ingroup Elm_List
365 */
366EOAPI void elm_obj_list_go(Eo *obj);
367
368/**
369 * @brief Insert a new item into the list object after item @c after.
370 *
371 * A new item will be created and added to the list. Its position in this list
372 * will be just after item @c after.
373 *
374 * Items created with this method can be deleted with elm_object_item_del().
375 *
376 * Associated @c data can be properly freed when item is deleted if a callback
377 * function is set with elm_object_item_del_cb_set().
378 *
379 * If a function is passed as argument, it will be called every time this item
380 * is selected, i.e., the user clicks over an unselected item. If always select
381 * is enabled it will call this function every time user clicks over an item
382 * (already selected or not). If such function isn't needed, just passing
383 * @c NULL as @c func is enough. The same should be done for @c data.
384 *
385 * @note Remember that the label parameter is copied inside the list. So if an
386 * application dynamically allocated the label, the application should free the
387 * label after this call.
388 *
389 * @param[in] obj The object.
390 * @param[in] after The list item to insert after.
391 * @param[in] label The label of the list item.
392 * @param[in] icon The icon object to use for the left side of the item. An
393 * icon can be any Evas object, but usually it is an icon created with
394 * elm_icon_add().
395 * @param[in] end The icon object to use for the right side of the item. An
396 * icon can be any Evas object.
397 * @param[in] func The function to call when the item is clicked.
398 * @param[in] data The data to associate with the item for related callbacks.
399 *
400 * @return The created item or @c NULL upon failure.
401 *
402 * @ingroup Elm_List
403 */
404EOAPI Elm_Widget_Item *elm_obj_list_item_insert_after(Eo *obj, Elm_Widget_Item *after, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
405
406/**
407 * @brief Get the item that is at the x, y canvas coords.
408 *
409 * This returns the item at the given coordinates (which are canvas relative,
410 * not object-relative). If an item is at that coordinate, that item handle is
411 * returned, and if @c posret is not NULL, the integer pointed to is set to a
412 * value of -1, 0 or 1, depending if the coordinate is on the upper portion of
413 * that item (-1), on the middle section (0) or on the lower part (1). If NULL
414 * is returned as an item (no item found there), then posret may indicate -1 or
415 * 1 based if the coordinate is above or below all items respectively in the
416 * list.
417 *
418 * @param[in] obj The object.
419 * @param[in] x The input x coordinate
420 * @param[in] y The input y coordinate
421 * @param[out] posret The position relative to the item returned here
422 *
423 * @return The item at the coordinates or NULL if none
424 *
425 * @ingroup Elm_List
426 */
427EOAPI Elm_Widget_Item *elm_obj_list_at_xy_item_get(const Eo *obj, int x, int y, int *posret);
428
429/**
430 * @brief Append a new item to the list object.
431 *
432 * A new item will be created and appended to the list, i.e., will be set as
433 * last item.
434 *
435 * Items created with this method can be deleted with elm_object_item_del().
436 *
437 * Associated @c data can be properly freed when item is deleted if a callback
438 * function is set with elm_object_item_del_cb_set().
439 *
440 * If a function is passed as argument, it will be called every time this item
441 * is selected, i.e., the user clicks over an unselected item. If always select
442 * is enabled it will call this function every time user clicks over an item
443 * (already selected or not). If such function isn't needed, just passing
444 * @c NULL as @c func is enough. The same should be done for @c data.
445 *
446 * @note Remember that the label parameter is copied inside the list. So if an
447 * application dynamically allocated the label, the application should free the
448 * label after this call.
449 *
450 * @param[in] obj The object.
451 * @param[in] label The label of the list item.
452 * @param[in] icon The icon object to use for the left side of the item. An
453 * icon can be any Evas object, but usually it is an icon created with
454 * elm_icon_add().
455 * @param[in] end The icon object to use for the right side of the item. An
456 * icon can be any Evas object.
457 * @param[in] func The function to call when the item is clicked.
458 * @param[in] data The data to associate with the item for related callbacks.
459 *
460 * @return The created item or @c NULL upon failure.
461 *
462 * @ingroup Elm_List
463 */
464EOAPI Elm_Widget_Item *elm_obj_list_item_append(Eo *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
465
466/**
467 * @brief Prepend a new item to the list object.
468 *
469 * A new item will be created and prepended to the list, i.e., will be set as
470 * first item.
471 *
472 * Items created with this method can be deleted with elm_object_item_del().
473 *
474 * Associated @c data can be properly freed when item is deleted if a callback
475 * function is set with elm_object_item_del_cb_set().
476 *
477 * If a function is passed as argument, it will be called every time this item
478 * is selected, i.e., the user clicks over an unselected item. If always select
479 * is enabled it will call this function every time user clicks over an item
480 * (already selected or not). If such function isn't needed, just passing
481 * @c NULL as @c func is enough. The same should be done for @c data.
482 *
483 * @note Remember that the label parameter is copied inside the list. So if an
484 * application dynamically allocated the label, the application should free the
485 * label after this call.
486 *
487 * @param[in] obj The object.
488 * @param[in] label The label of the list item.
489 * @param[in] icon The icon object to use for the left side of the item. An
490 * icon can be any Evas object, but usually it is an icon created with
491 * elm_icon_add().
492 * @param[in] end The icon object to use for the right side of the item. An
493 * icon can be any Evas object.
494 * @param[in] func The function to call when the item is clicked.
495 * @param[in] data The data to associate with the item for related callbacks.
496 *
497 * @return The created item or @c NULL upon failure.
498 *
499 * @ingroup Elm_List
500 */
501EOAPI Elm_Widget_Item *elm_obj_list_item_prepend(Eo *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
502
503/** Remove all list's items.
504 *
505 * @ingroup Elm_List
506 */
507EOAPI void elm_obj_list_clear(Eo *obj);
508
509/**
510 * @brief Insert a new item into the sorted list object.
511 *
512 * @note This function inserts values into a list object assuming it was sorted
513 * and the result will be sorted.
514 *
515 * A new item will be created and added to the list. Its position in this list
516 * will be found comparing the new item with previously inserted items using
517 * function @c cmp_func.
518 *
519 * Items created with this method can be deleted with elm_object_item_del().
520 *
521 * Associated @c data can be properly freed when item is deleted if a callback
522 * function is set with elm_object_item_del_cb_set().
523 *
524 * If a function is passed as argument, it will be called every time this item
525 * is selected, i.e., the user clicks over an unselected item. If always select
526 * is enabled it will call this function every time user clicks over an item
527 * (already selected or not). If such function isn't needed, just passing
528 * @c NULL as @c func is enough. The same should be done for @c data.
529 *
530 * @note Remember that the label parameter is copied inside the list. So if an
531 * application dynamically allocated the label, the application should free the
532 * label after this call.
533 *
534 * @param[in] obj The object.
535 * @param[in] label The label of the list item.
536 * @param[in] icon The icon object to use for the left side of the item. An
537 * icon can be any Evas object, but usually it is an icon created with
538 * elm_icon_add().
539 * @param[in] end The icon object to use for the right side of the item. An
540 * icon can be any Evas object.
541 * @param[in] func The function to call when the item is clicked.
542 * @param[in] data The data to associate with the item for related callbacks.
543 * @param[in] cmp_func The comparing function to be used to sort list items by
544 * #Elm.Widget.Item item handles. This function will receive two items and
545 * compare them, returning a non-negative integer if the second item should be
546 * place after the first, or negative value if should be placed before.
547 *
548 * @return The created item or @c NULL upon failure.
549 *
550 * @ingroup Elm_List
551 */
552EOAPI Elm_Widget_Item *elm_obj_list_item_sorted_insert(Eo *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func);
553
554EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_ACTIVATED;
555
556/** Called when activated
557 * @return Efl_Object *
558 *
559 * @ingroup Elm_List
560 */
561#define ELM_LIST_EVENT_ACTIVATED (&(_ELM_LIST_EVENT_ACTIVATED))
562
563EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_EDGE_TOP;
564
565/** Called when top edge was reached
566 *
567 * @ingroup Elm_List
568 */
569#define ELM_LIST_EVENT_EDGE_TOP (&(_ELM_LIST_EVENT_EDGE_TOP))
570
571EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_EDGE_BOTTOM;
572
573/** Called when bottom edge was reached
574 *
575 * @ingroup Elm_List
576 */
577#define ELM_LIST_EVENT_EDGE_BOTTOM (&(_ELM_LIST_EVENT_EDGE_BOTTOM))
578
579EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_EDGE_LEFT;
580
581/** Called when left edge was reached
582 *
583 * @ingroup Elm_List
584 */
585#define ELM_LIST_EVENT_EDGE_LEFT (&(_ELM_LIST_EVENT_EDGE_LEFT))
586
587EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_EDGE_RIGHT;
588
589/** Called when right edge was reached
590 *
591 * @ingroup Elm_List
592 */
593#define ELM_LIST_EVENT_EDGE_RIGHT (&(_ELM_LIST_EVENT_EDGE_RIGHT))
594
595EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_SWIPE;
596
597/** Called when swipe is detected
598 * @return Efl_Object *
599 *
600 * @ingroup Elm_List
601 */
602#define ELM_LIST_EVENT_SWIPE (&(_ELM_LIST_EVENT_SWIPE))
603
604EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_HIGHLIGHTED;
605
606/** Called when highlighted
607 * @return Efl_Object *
608 *
609 * @ingroup Elm_List
610 */
611#define ELM_LIST_EVENT_HIGHLIGHTED (&(_ELM_LIST_EVENT_HIGHLIGHTED))
612
613EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_UNHIGHLIGHTED;
614
615/** Called when no longer highlighted
616 * @return Efl_Object *
617 *
618 * @ingroup Elm_List
619 */
620#define ELM_LIST_EVENT_UNHIGHLIGHTED (&(_ELM_LIST_EVENT_UNHIGHLIGHTED))
621
622EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_ITEM_FOCUSED;
623
624/** Called when item got focus
625 * @return Efl_Object *
626 *
627 * @ingroup Elm_List
628 */
629#define ELM_LIST_EVENT_ITEM_FOCUSED (&(_ELM_LIST_EVENT_ITEM_FOCUSED))
630
631EWAPI extern const Efl_Event_Description _ELM_LIST_EVENT_ITEM_UNFOCUSED;
632
633/** Called when item no longer has focus
634 * @return Efl_Object *
635 *
636 * @ingroup Elm_List
637 */
638#define ELM_LIST_EVENT_ITEM_UNFOCUSED (&(_ELM_LIST_EVENT_ITEM_UNFOCUSED))
639
640#endif
diff --git a/src/lib/elementary/elm_list_eo.legacy.c b/src/lib/elementary/elm_list_eo.legacy.c
new file mode 100644
index 0000000..40f09ef
--- /dev/null
+++ b/src/lib/elementary/elm_list_eo.legacy.c
@@ -0,0 +1,150 @@
1
2EAPI void
3elm_list_horizontal_set(Elm_List *obj, Eina_Bool horizontal)
4{
5 elm_obj_list_horizontal_set(obj, horizontal);
6}
7
8EAPI Eina_Bool
9elm_list_horizontal_get(const Elm_List *obj)
10{
11 return elm_obj_list_horizontal_get(obj);
12}
13
14EAPI void
15elm_list_select_mode_set(Elm_List *obj, Elm_Object_Select_Mode mode)
16{
17 elm_obj_list_select_mode_set(obj, mode);
18}
19
20EAPI Elm_Object_Select_Mode
21elm_list_select_mode_get(const Elm_List *obj)
22{
23 return elm_obj_list_select_mode_get(obj);
24}
25
26EAPI void
27elm_list_focus_on_selection_set(Elm_List *obj, Eina_Bool enabled)
28{
29 elm_obj_list_focus_on_selection_set(obj, enabled);
30}
31
32EAPI Eina_Bool
33elm_list_focus_on_selection_get(const Elm_List *obj)
34{
35 return elm_obj_list_focus_on_selection_get(obj);
36}
37
38EAPI void
39elm_list_multi_select_set(Elm_List *obj, Eina_Bool multi)
40{
41 elm_obj_list_multi_select_set(obj, multi);
42}
43
44EAPI Eina_Bool
45elm_list_multi_select_get(const Elm_List *obj)
46{
47 return elm_obj_list_multi_select_get(obj);
48}
49
50EAPI void
51elm_list_multi_select_mode_set(Elm_List *obj, Elm_Object_Multi_Select_Mode mode)
52{
53 elm_obj_list_multi_select_mode_set(obj, mode);
54}
55
56EAPI Elm_Object_Multi_Select_Mode
57elm_list_multi_select_mode_get(const Elm_List *obj)
58{
59 return elm_obj_list_multi_select_mode_get(obj);
60}
61
62EAPI void
63elm_list_mode_set(Elm_List *obj, Elm_List_Mode mode)
64{
65 elm_obj_list_mode_set(obj, mode);
66}
67
68EAPI Elm_List_Mode
69elm_list_mode_get(const Elm_List *obj)
70{
71 return elm_obj_list_mode_get(obj);
72}
73
74EAPI Elm_Widget_Item *
75elm_list_selected_item_get(const Elm_List *obj)
76{
77 return elm_obj_list_selected_item_get(obj);
78}
79
80EAPI const Eina_List *
81elm_list_items_get(const Elm_List *obj)
82{
83 return elm_obj_list_items_get(obj);
84}
85
86EAPI Elm_Widget_Item *
87elm_list_first_item_get(const Elm_List *obj)
88{
89 return elm_obj_list_first_item_get(obj);
90}
91
92EAPI const Eina_List *
93elm_list_selected_items_get(const Elm_List *obj)
94{
95 return elm_obj_list_selected_items_get(obj);
96}
97
98EAPI Elm_Widget_Item *
99elm_list_last_item_get(const Elm_List *obj)
100{
101 return elm_obj_list_last_item_get(obj);
102}
103
104EAPI Elm_Widget_Item *
105elm_list_item_insert_before(Elm_List *obj, Elm_Widget_Item *before, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data)
106{
107 return elm_obj_list_item_insert_before(obj, before, label, icon, end, func, data);
108}
109
110EAPI void
111elm_list_go(Elm_List *obj)
112{
113 elm_obj_list_go(obj);
114}
115
116EAPI Elm_Widget_Item *
117elm_list_item_insert_after(Elm_List *obj, Elm_Widget_Item *after, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data)
118{
119 return elm_obj_list_item_insert_after(obj, after, label, icon, end, func, data);
120}
121
122EAPI Elm_Widget_Item *
123elm_list_at_xy_item_get(const Elm_List *obj, int x, int y, int *posret)
124{
125 return elm_obj_list_at_xy_item_get(obj, x, y, posret);
126}
127
128EAPI Elm_Widget_Item *
129elm_list_item_append(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data)
130{
131 return elm_obj_list_item_append(obj, label, icon, end, func, data);
132}
133
134EAPI Elm_Widget_Item *
135elm_list_item_prepend(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data)
136{
137 return elm_obj_list_item_prepend(obj, label, icon, end, func, data);
138}
139
140EAPI void
141elm_list_clear(Elm_List *obj)
142{
143 elm_obj_list_clear(obj);
144}
145
146EAPI Elm_Widget_Item *
147elm_list_item_sorted_insert(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func)
148{
149 return elm_obj_list_item_sorted_insert(obj, label, icon, end, func, data, cmp_func);
150}
diff --git a/src/lib/elementary/elm_list_eo.legacy.h b/src/lib/elementary/elm_list_eo.legacy.h
new file mode 100644
index 0000000..6885674
--- /dev/null
+++ b/src/lib/elementary/elm_list_eo.legacy.h
@@ -0,0 +1,547 @@
1#ifndef _ELM_LIST_EO_LEGACY_H_
2#define _ELM_LIST_EO_LEGACY_H_
3
4#ifndef _ELM_LIST_EO_CLASS_TYPE
5#define _ELM_LIST_EO_CLASS_TYPE
6
7typedef Eo Elm_List;
8
9#endif
10
11#ifndef _ELM_LIST_EO_TYPES
12#define _ELM_LIST_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Control horizontal mode on the list object.
19 *
20 * @note Vertical mode is set by default.
21 *
22 * On horizontal mode items are displayed on list from left to right, instead
23 * of from top to bottom. Also, the list will scroll horizontally. Each item
24 * will presents left icon on top and right icon, or end, at the bottom.
25 *
26 * @param[in] obj The object.
27 * @param[in] horizontal @c true to enable horizontal or @c false to disable
28 * it, i.e., to enable vertical mode.
29 *
30 * @ingroup Elm_List_Group
31 */
32EAPI void elm_list_horizontal_set(Elm_List *obj, Eina_Bool horizontal);
33
34/**
35 * @brief Control horizontal mode on the list object.
36 *
37 * @note Vertical mode is set by default.
38 *
39 * On horizontal mode items are displayed on list from left to right, instead
40 * of from top to bottom. Also, the list will scroll horizontally. Each item
41 * will presents left icon on top and right icon, or end, at the bottom.
42 *
43 * @param[in] obj The object.
44 *
45 * @return @c true to enable horizontal or @c false to disable it, i.e., to
46 * enable vertical mode.
47 *
48 * @ingroup Elm_List_Group
49 */
50EAPI Eina_Bool elm_list_horizontal_get(const Elm_List *obj);
51
52/**
53 * @brief Control the list select mode.
54 *
55 * elm_list_select_mode_set() changes item select mode in the list widget. -
56 * #ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func
57 * and callback when first becoming selected. Any further clicks will do
58 * nothing, unless you set always select mode. - #ELM_OBJECT_SELECT_MODE_ALWAYS
59 * : This means that, even if selected, every click will make the selected
60 * callbacks be called. - #ELM_OBJECT_SELECT_MODE_NONE : This will turn off the
61 * ability to select items entirely and they will neither appear selected nor
62 * call selected callback functions.
63 *
64 * @param[in] obj The object.
65 * @param[in] mode The select mode
66 *
67 * @ingroup Elm_List_Group
68 */
69EAPI void elm_list_select_mode_set(Elm_List *obj, Elm_Object_Select_Mode mode);
70
71/**
72 * @brief Control the list select mode.
73 *
74 * elm_list_select_mode_set() changes item select mode in the list widget. -
75 * #ELM_OBJECT_SELECT_MODE_DEFAULT : Items will only call their selection func
76 * and callback when first becoming selected. Any further clicks will do
77 * nothing, unless you set always select mode. - #ELM_OBJECT_SELECT_MODE_ALWAYS
78 * : This means that, even if selected, every click will make the selected
79 * callbacks be called. - #ELM_OBJECT_SELECT_MODE_NONE : This will turn off the
80 * ability to select items entirely and they will neither appear selected nor
81 * call selected callback functions.
82 *
83 * @param[in] obj The object.
84 *
85 * @return The select mode
86 *
87 * @ingroup Elm_List_Group
88 */
89EAPI Elm_Object_Select_Mode elm_list_select_mode_get(const Elm_List *obj);
90
91/**
92 * @brief Control focus upon items selection mode
93 *
94 * When enabled, every selection of an item inside the genlist will
95 * automatically set focus to its first focusable widget from the left. This is
96 * true of course if the selection was made by clicking an unfocusable area in
97 * an item or selecting it with a key movement. Clicking on a focusable widget
98 * inside an item will cause this particular item to get focus as usual.
99 *
100 * @param[in] obj The object.
101 * @param[in] enabled The tree effect status ($true = enabled, @c false =
102 * disabled)
103 *
104 * @ingroup Elm_List_Group
105 */
106EAPI void elm_list_focus_on_selection_set(Elm_List *obj, Eina_Bool enabled);
107
108/**
109 * @brief Control focus upon items selection mode
110 *
111 * When enabled, every selection of an item inside the genlist will
112 * automatically set focus to its first focusable widget from the left. This is
113 * true of course if the selection was made by clicking an unfocusable area in
114 * an item or selecting it with a key movement. Clicking on a focusable widget
115 * inside an item will cause this particular item to get focus as usual.
116 *
117 * @param[in] obj The object.
118 *
119 * @return The tree effect status ($true = enabled, @c false = disabled)
120 *
121 * @ingroup Elm_List_Group
122 */
123EAPI Eina_Bool elm_list_focus_on_selection_get(const Elm_List *obj);
124
125/**
126 * @brief Control multiple items selection on the list object.
127 *
128 * Disabled by default. If disabled, the user can select a single item of the
129 * list each time. Selected items are highlighted on list. If enabled, many
130 * items can be selected.
131 *
132 * If a selected item is selected again, it will be unselected.
133 *
134 * @param[in] obj The object.
135 * @param[in] multi @c true to enable multi selection or @c false to disable
136 * it.
137 *
138 * @ingroup Elm_List_Group
139 */
140EAPI void elm_list_multi_select_set(Elm_List *obj, Eina_Bool multi);
141
142/**
143 * @brief Control multiple items selection on the list object.
144 *
145 * Disabled by default. If disabled, the user can select a single item of the
146 * list each time. Selected items are highlighted on list. If enabled, many
147 * items can be selected.
148 *
149 * If a selected item is selected again, it will be unselected.
150 *
151 * @param[in] obj The object.
152 *
153 * @return @c true to enable multi selection or @c false to disable it.
154 *
155 * @ingroup Elm_List_Group
156 */
157EAPI Eina_Bool elm_list_multi_select_get(const Elm_List *obj);
158
159/**
160 * @brief Control the list multi select mode.
161 *
162 * - #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever
163 * each item is clicked. - #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only
164 * one item will be selected although multi-selection is enabled, if clicked
165 * without pressing control key. This mode is only available with
166 * multi-selection.
167 *
168 * See: @ref elm_list_multi_select_get
169 *
170 * @param[in] obj The object.
171 * @param[in] mode The multi select mode
172 *
173 * @since 1.8
174 *
175 * @ingroup Elm_List_Group
176 */
177EAPI void elm_list_multi_select_mode_set(Elm_List *obj, Elm_Object_Multi_Select_Mode mode);
178
179/**
180 * @brief Control the list multi select mode.
181 *
182 * - #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT : select/unselect items whenever
183 * each item is clicked. - #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL : Only
184 * one item will be selected although multi-selection is enabled, if clicked
185 * without pressing control key. This mode is only available with
186 * multi-selection.
187 *
188 * See: @ref elm_list_multi_select_get
189 *
190 * @param[in] obj The object.
191 *
192 * @return The multi select mode
193 *
194 * @since 1.8
195 *
196 * @ingroup Elm_List_Group
197 */
198EAPI Elm_Object_Multi_Select_Mode elm_list_multi_select_mode_get(const Elm_List *obj);
199
200/**
201 * @brief Control which mode to use for the list object.
202 *
203 * Set list's resize behavior, transverse axis scroll and items cropping. See
204 * each mode's description for more details.
205 *
206 * @note Default value is #ELM_LIST_SCROLL.
207 *
208 * Only one mode at a time can be set. If a previous one was set, it will be
209 * changed by the new mode after this call. Bitmasks won't work here as well.
210 *
211 * @warning This function's behavior will clash with those of
212 * elm_scroller_content_min_limit(), so use either one of them, but not both.
213 *
214 * @param[in] obj The object.
215 * @param[in] mode One of #Elm_List_Mode: #ELM_LIST_COMPRESS, #ELM_LIST_SCROLL,
216 * #ELM_LIST_LIMIT or #ELM_LIST_EXPAND.
217 *
218 * @ingroup Elm_List_Group
219 */
220EAPI void elm_list_mode_set(Elm_List *obj, Elm_List_Mode mode);
221
222/**
223 * @brief Control which mode to use for the list object.
224 *
225 * Set list's resize behavior, transverse axis scroll and items cropping. See
226 * each mode's description for more details.
227 *
228 * @note Default value is #ELM_LIST_SCROLL.
229 *
230 * Only one mode at a time can be set. If a previous one was set, it will be
231 * changed by the new mode after this call. Bitmasks won't work here as well.
232 *
233 * @warning This function's behavior will clash with those of
234 * elm_scroller_content_min_limit(), so use either one of them, but not both.
235 *
236 * @param[in] obj The object.
237 *
238 * @return One of #Elm_List_Mode: #ELM_LIST_COMPRESS, #ELM_LIST_SCROLL,
239 * #ELM_LIST_LIMIT or #ELM_LIST_EXPAND.
240 *
241 * @ingroup Elm_List_Group
242 */
243EAPI Elm_List_Mode elm_list_mode_get(const Elm_List *obj);
244
245/**
246 * @brief Get the selected item.
247 *
248 * The selected item can be unselected with function
249 * elm_list_item_selected_set().
250 *
251 * The selected item always will be highlighted on list.
252 *
253 * @param[in] obj The object.
254 *
255 * @return The selected list item.
256 *
257 * @ingroup Elm_List_Group
258 */
259EAPI Elm_Widget_Item *elm_list_selected_item_get(const Elm_List *obj);
260
261/**
262 * @brief Get a list of all the list items.
263 *
264 * @param[in] obj The object.
265 *
266 * @return A @c list of list items, #Elm.Widget.Item, or @c NULL on failure.
267 *
268 * @ingroup Elm_List_Group
269 */
270EAPI const Eina_List *elm_list_items_get(const Elm_List *obj);
271
272/**
273 * @brief Get the first item in the list
274 *
275 * This returns the first item in the list.
276 *
277 * @param[in] obj The object.
278 *
279 * @return The first item, or NULL if none
280 *
281 * @ingroup Elm_List_Group
282 */
283EAPI Elm_Widget_Item *elm_list_first_item_get(const Elm_List *obj);
284
285/**
286 * @brief Return a list of the currently selected list items.
287 *
288 * Multiple items can be selected if multi select is enabled. It can be done
289 * with elm_list_multi_select_set().
290 *
291 * @param[in] obj The object.
292 *
293 * @return An @c list of list items, #Elm.Widget.Item, or @c NULL on failure.
294 *
295 * @ingroup Elm_List_Group
296 */
297EAPI const Eina_List *elm_list_selected_items_get(const Elm_List *obj);
298
299/**
300 * @brief Get the last item in the list
301 *
302 * This returns the last item in the list.
303 *
304 * @param[in] obj The object.
305 *
306 * @return The last item, or NULL if none
307 *
308 * @ingroup Elm_List_Group
309 */
310EAPI Elm_Widget_Item *elm_list_last_item_get(const Elm_List *obj);
311
312/**
313 * @brief Insert a new item into the list object before item @c before.
314 *
315 * A new item will be created and added to the list. Its position in this list
316 * will be just before item @c before.
317 *
318 * Items created with this method can be deleted with elm_object_item_del().
319 *
320 * Associated @c data can be properly freed when item is deleted if a callback
321 * function is set with elm_object_item_del_cb_set().
322 *
323 * If a function is passed as argument, it will be called every time this item
324 * is selected, i.e., the user clicks over an unselected item. If always select
325 * is enabled it will call this function every time user clicks over an item
326 * (already selected or not). If such function isn't needed, just passing
327 * @c NULL as @c func is enough. The same should be done for @c data.
328 *
329 * @note Remember that the label parameter is copied inside the list. So if an
330 * application dynamically allocated the label, the application should free the
331 * label after this call.
332 *
333 * @param[in] obj The object.
334 * @param[in] before The list item to insert before.
335 * @param[in] label The label of the list item.
336 * @param[in] icon The icon object to use for the left side of the item. An
337 * icon can be any Evas object, but usually it is an icon created with
338 * elm_icon_add().
339 * @param[in] end The icon object to use for the right side of the item. An
340 * icon can be any Evas object.
341 * @param[in] func The function to call when the item is clicked.
342 * @param[in] data The data to associate with the item for related callbacks.
343 *
344 * @return The created item or @c NULL upon failure.
345 *
346 * @ingroup Elm_List_Group
347 */
348EAPI Elm_Widget_Item *elm_list_item_insert_before(Elm_List *obj, Elm_Widget_Item *before, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
349
350/**
351 * @brief Starts the list.
352 *
353 * @note Call before running show() on the list object. Warning: If not called,
354 * it won't display the list properly.
355 * @param[in] obj The object.
356 *
357 * @ingroup Elm_List_Group
358 */
359EAPI void elm_list_go(Elm_List *obj);
360
361/**
362 * @brief Insert a new item into the list object after item @c after.
363 *
364 * A new item will be created and added to the list. Its position in this list
365 * will be just after item @c after.
366 *
367 * Items created with this method can be deleted with elm_object_item_del().
368 *
369 * Associated @c data can be properly freed when item is deleted if a callback
370 * function is set with elm_object_item_del_cb_set().
371 *
372 * If a function is passed as argument, it will be called every time this item
373 * is selected, i.e., the user clicks over an unselected item. If always select
374 * is enabled it will call this function every time user clicks over an item
375 * (already selected or not). If such function isn't needed, just passing
376 * @c NULL as @c func is enough. The same should be done for @c data.
377 *
378 * @note Remember that the label parameter is copied inside the list. So if an
379 * application dynamically allocated the label, the application should free the
380 * label after this call.
381 *
382 * @param[in] obj The object.
383 * @param[in] after The list item to insert after.
384 * @param[in] label The label of the list item.
385 * @param[in] icon The icon object to use for the left side of the item. An
386 * icon can be any Evas object, but usually it is an icon created with
387 * elm_icon_add().
388 * @param[in] end The icon object to use for the right side of the item. An
389 * icon can be any Evas object.
390 * @param[in] func The function to call when the item is clicked.
391 * @param[in] data The data to associate with the item for related callbacks.
392 *
393 * @return The created item or @c NULL upon failure.
394 *
395 * @ingroup Elm_List_Group
396 */
397EAPI Elm_Widget_Item *elm_list_item_insert_after(Elm_List *obj, Elm_Widget_Item *after, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
398
399/**
400 * @brief Get the item that is at the x, y canvas coords.
401 *
402 * This returns the item at the given coordinates (which are canvas relative,
403 * not object-relative). If an item is at that coordinate, that item handle is
404 * returned, and if @c posret is not NULL, the integer pointed to is set to a
405 * value of -1, 0 or 1, depending if the coordinate is on the upper portion of
406 * that item (-1), on the middle section (0) or on the lower part (1). If NULL
407 * is returned as an item (no item found there), then posret may indicate -1 or
408 * 1 based if the coordinate is above or below all items respectively in the
409 * list.
410 *
411 * @param[in] obj The object.
412 * @param[in] x The input x coordinate
413 * @param[in] y The input y coordinate
414 * @param[out] posret The position relative to the item returned here
415 *
416 * @return The item at the coordinates or NULL if none
417 *
418 * @ingroup Elm_List_Group
419 */
420EAPI Elm_Widget_Item *elm_list_at_xy_item_get(const Elm_List *obj, int x, int y, int *posret);
421
422/**
423 * @brief Append a new item to the list object.
424 *
425 * A new item will be created and appended to the list, i.e., will be set as
426 * last item.
427 *
428 * Items created with this method can be deleted with elm_object_item_del().
429 *
430 * Associated @c data can be properly freed when item is deleted if a callback
431 * function is set with elm_object_item_del_cb_set().
432 *
433 * If a function is passed as argument, it will be called every time this item
434 * is selected, i.e., the user clicks over an unselected item. If always select
435 * is enabled it will call this function every time user clicks over an item
436 * (already selected or not). If such function isn't needed, just passing
437 * @c NULL as @c func is enough. The same should be done for @c data.
438 *
439 * @note Remember that the label parameter is copied inside the list. So if an
440 * application dynamically allocated the label, the application should free the
441 * label after this call.
442 *
443 * @param[in] obj The object.
444 * @param[in] label The label of the list item.
445 * @param[in] icon The icon object to use for the left side of the item. An
446 * icon can be any Evas object, but usually it is an icon created with
447 * elm_icon_add().
448 * @param[in] end The icon object to use for the right side of the item. An
449 * icon can be any Evas object.
450 * @param[in] func The function to call when the item is clicked.
451 * @param[in] data The data to associate with the item for related callbacks.
452 *
453 * @return The created item or @c NULL upon failure.
454 *
455 * @ingroup Elm_List_Group
456 */
457EAPI Elm_Widget_Item *elm_list_item_append(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
458
459/**
460 * @brief Prepend a new item to the list object.
461 *
462 * A new item will be created and prepended to the list, i.e., will be set as
463 * first item.
464 *
465 * Items created with this method can be deleted with elm_object_item_del().
466 *
467 * Associated @c data can be properly freed when item is deleted if a callback
468 * function is set with elm_object_item_del_cb_set().
469 *
470 * If a function is passed as argument, it will be called every time this item
471 * is selected, i.e., the user clicks over an unselected item. If always select
472 * is enabled it will call this function every time user clicks over an item
473 * (already selected or not). If such function isn't needed, just passing
474 * @c NULL as @c func is enough. The same should be done for @c data.
475 *
476 * @note Remember that the label parameter is copied inside the list. So if an
477 * application dynamically allocated the label, the application should free the
478 * label after this call.
479 *
480 * @param[in] obj The object.
481 * @param[in] label The label of the list item.
482 * @param[in] icon The icon object to use for the left side of the item. An
483 * icon can be any Evas object, but usually it is an icon created with
484 * elm_icon_add().
485 * @param[in] end The icon object to use for the right side of the item. An
486 * icon can be any Evas object.
487 * @param[in] func The function to call when the item is clicked.
488 * @param[in] data The data to associate with the item for related callbacks.
489 *
490 * @return The created item or @c NULL upon failure.
491 *
492 * @ingroup Elm_List_Group
493 */
494EAPI Elm_Widget_Item *elm_list_item_prepend(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data);
495
496/** Remove all list's items.
497 *
498 * @ingroup Elm_List_Group
499 */
500EAPI void elm_list_clear(Elm_List *obj);
501
502/**
503 * @brief Insert a new item into the sorted list object.
504 *
505 * @note This function inserts values into a list object assuming it was sorted
506 * and the result will be sorted.
507 *
508 * A new item will be created and added to the list. Its position in this list
509 * will be found comparing the new item with previously inserted items using
510 * function @c cmp_func.
511 *
512 * Items created with this method can be deleted with elm_object_item_del().
513 *
514 * Associated @c data can be properly freed when item is deleted if a callback
515 * function is set with elm_object_item_del_cb_set().
516 *
517 * If a function is passed as argument, it will be called every time this item
518 * is selected, i.e., the user clicks over an unselected item. If always select
519 * is enabled it will call this function every time user clicks over an item
520 * (already selected or not). If such function isn't needed, just passing
521 * @c NULL as @c func is enough. The same should be done for @c data.
522 *
523 * @note Remember that the label parameter is copied inside the list. So if an
524 * application dynamically allocated the label, the application should free the
525 * label after this call.
526 *
527 * @param[in] obj The object.
528 * @param[in] label The label of the list item.
529 * @param[in] icon The icon object to use for the left side of the item. An
530 * icon can be any Evas object, but usually it is an icon created with
531 * elm_icon_add().
532 * @param[in] end The icon object to use for the right side of the item. An
533 * icon can be any Evas object.
534 * @param[in] func The function to call when the item is clicked.
535 * @param[in] data The data to associate with the item for related callbacks.
536 * @param[in] cmp_func The comparing function to be used to sort list items by
537 * #Elm.Widget.Item item handles. This function will receive two items and
538 * compare them, returning a non-negative integer if the second item should be
539 * place after the first, or negative value if should be placed before.
540 *
541 * @return The created item or @c NULL upon failure.
542 *
543 * @ingroup Elm_List_Group
544 */
545EAPI Elm_Widget_Item *elm_list_item_sorted_insert(Elm_List *obj, const char *label, Efl_Canvas_Object *icon, Efl_Canvas_Object *end, Evas_Smart_Cb func, const void *data, Eina_Compare_Cb cmp_func);
546
547#endif
diff --git a/src/lib/elementary/elm_list_item.eo b/src/lib/elementary/elm_list_item.eo
deleted file mode 100644
index c3d18ba..0000000
--- a/src/lib/elementary/elm_list_item.eo
+++ /dev/null
@@ -1,123 +0,0 @@
1class Elm.List.Item extends Elm.Widget.Item implements Efl.Ui.Legacy
2{
3 [[Elementary list item class]]
4 legacy_prefix: elm_list_item;
5 eo_prefix: elm_obj_list_item;
6 methods {
7 @property separator {
8 get {
9 [[Get a value whether item is a separator or not.]]
10 }
11 set {
12 [[Set or unset item as a separator.
13
14 Items aren't set as separator by default.
15
16 If set as separator it will display separator theme,
17 so won't display icons or label.
18 ]]
19 }
20 values {
21 setting: bool; [[$true means item $it is a separator.
22 $false indicates it's not.]]
23 }
24 }
25 @property selected {
26 get {
27 [[Get whether the item is selected or not.]]
28 }
29 set {
30 [[Set the selected state of an item.
31
32 This sets the selected state of the given item.
33
34 If a new item is selected the previously selected
35 will be unselected, unless multiple selection is
36 enabled with \@ref elm_list_multi_select_set.
37 Previously selected item can be get with function
38 \@ref elm_list_selected_item_get.
39
40 Selected items will be highlighted.
41 ]]
42 }
43 values {
44 selected: bool; [[The selected state.]]
45 }
46 }
47 @property object {
48 get {
49 [[Get the real Evas(Edje) object created to implement
50 the view of a given list item.
51
52 Base object is the $Evas_Object that represents that
53 item.
54 ]]
55 }
56 values {
57 obj: Efl.Canvas.Object; [[The base Edje object associated with the item.]]
58 }
59 }
60 @property prev {
61 get {
62 [[Get the item before the item in list.
63
64 Note: If it is the first item, $null will be returned.
65 ]]
66 legacy: elm_list_item_prev;
67 }
68 values {
69 item: Elm.Widget.Item; [[The item before or $null.]]
70 }
71 }
72 @property next {
73 get {
74 [[Get the item after the item in list.
75
76 Note: If it is the last item, $null will be returned.
77 ]]
78 legacy: elm_list_item_next;
79 }
80 values {
81 item: Elm.Widget.Item; [[The item after or $null.]]
82 }
83 }
84 /* init { FIXME
85 params {
86 Evas_Smart_Cb func;
87 const(void_ptr) data;
88 }
89 }*/
90 show {
91 [[Show item in the list view.
92
93 It won't animate list until item is visible. If such
94 behavior is wanted, use @.bring_in instead.
95 ]]
96 }
97 bring_in {
98 [[Bring in the given item to list view.
99
100 This causes list to jump to the given item and show it
101 (by scrolling), if it is not fully visible.
102
103 This may use animation to do so and take a period of time.
104
105 If animation isn't wanted, @.show can be used.
106 ]]
107 }
108 }
109 implements {
110 Efl.Object.constructor;
111 Efl.Object.invalidate;
112 Efl.Object.destructor;
113 Elm.Widget.Item.disable;
114 Elm.Widget.Item.del_pre;
115 Elm.Widget.Item.signal_emit;
116 Elm.Widget.Item.item_focus { get; set; }
117 Elm.Widget.Item.part_text { get; set; }
118 Elm.Widget.Item.part_content { get; set; }
119 Elm.Widget.Item.part_content_unset;
120 Efl.Access.Object.i18n_name { get; }
121 Efl.Access.Object.state_set { get; }
122 }
123}
diff --git a/src/lib/elementary/elm_list_item_eo.c b/src/lib/elementary/elm_list_item_eo.c
new file mode 100644
index 0000000..358b9a2
--- /dev/null
+++ b/src/lib/elementary/elm_list_item_eo.c
@@ -0,0 +1,195 @@
1
2void _elm_list_item_separator_set(Eo *obj, Elm_List_Item_Data *pd, Eina_Bool setting);
3
4
5static Eina_Error
6__eolian_elm_list_item_separator_set_reflect(Eo *obj, Eina_Value val)
7{
8 Eina_Error r = 0; Eina_Bool cval;
9 if (!eina_value_bool_convert(&val, &cval))
10 {
11 r = EINA_ERROR_VALUE_FAILED;
12 goto end;
13 }
14 elm_obj_list_item_separator_set(obj, cval);
15 end:
16 eina_value_flush(&val);
17 return r;
18}
19
20EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_item_separator_set, EFL_FUNC_CALL(setting), Eina_Bool setting);
21
22Eina_Bool _elm_list_item_separator_get(const Eo *obj, Elm_List_Item_Data *pd);
23
24
25static Eina_Value
26__eolian_elm_list_item_separator_get_reflect(Eo *obj)
27{
28 Eina_Bool val = elm_obj_list_item_separator_get(obj);
29 return eina_value_bool_init(val);
30}
31
32EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_item_separator_get, Eina_Bool, 0);
33
34void _elm_list_item_selected_set(Eo *obj, Elm_List_Item_Data *pd, Eina_Bool selected);
35
36
37static Eina_Error
38__eolian_elm_list_item_selected_set_reflect(Eo *obj, Eina_Value val)
39{
40 Eina_Error r = 0; Eina_Bool cval;
41 if (!eina_value_bool_convert(&val, &cval))
42 {
43 r = EINA_ERROR_VALUE_FAILED;
44 goto end;
45 }
46 elm_obj_list_item_selected_set(obj, cval);
47 end:
48 eina_value_flush(&val);
49 return r;
50}
51
52EOAPI EFL_VOID_FUNC_BODYV(elm_obj_list_item_selected_set, EFL_FUNC_CALL(selected), Eina_Bool selected);
53
54Eina_Bool _elm_list_item_selected_get(const Eo *obj, Elm_List_Item_Data *pd);
55
56
57static Eina_Value
58__eolian_elm_list_item_selected_get_reflect(Eo *obj)
59{
60 Eina_Bool val = elm_obj_list_item_selected_get(obj);
61 return eina_value_bool_init(val);
62}
63
64EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_item_selected_get, Eina_Bool, 0);
65
66Efl_Canvas_Object *_elm_list_item_object_get(const Eo *obj, Elm_List_Item_Data *pd);
67
68EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_item_object_get, Efl_Canvas_Object *, NULL);
69
70Elm_Widget_Item *_elm_list_item_prev_get(const Eo *obj, Elm_List_Item_Data *pd);
71
72EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_item_prev_get, Elm_Widget_Item *, NULL);
73
74Elm_Widget_Item *_elm_list_item_next_get(const Eo *obj, Elm_List_Item_Data *pd);
75
76EOAPI EFL_FUNC_BODY_CONST(elm_obj_list_item_next_get, Elm_Widget_Item *, NULL);
77
78void _elm_list_item_show(Eo *obj, Elm_List_Item_Data *pd);
79
80EOAPI EFL_VOID_FUNC_BODY(elm_obj_list_item_show);
81
82void _elm_list_item_bring_in(Eo *obj, Elm_List_Item_Data *pd);
83
84EOAPI EFL_VOID_FUNC_BODY(elm_obj_list_item_bring_in);
85
86Efl_Object *_elm_list_item_efl_object_constructor(Eo *obj, Elm_List_Item_Data *pd);
87
88
89void _elm_list_item_efl_object_invalidate(Eo *obj, Elm_List_Item_Data *pd);
90
91
92void _elm_list_item_efl_object_destructor(Eo *obj, Elm_List_Item_Data *pd);
93
94
95void _elm_list_item_elm_widget_item_disable(Eo *obj, Elm_List_Item_Data *pd);
96
97
98void _elm_list_item_elm_widget_item_del_pre(Eo *obj, Elm_List_Item_Data *pd);
99
100
101void _elm_list_item_elm_widget_item_signal_emit(Eo *obj, Elm_List_Item_Data *pd, const char *emission, const char *source);
102
103
104void _elm_list_item_elm_widget_item_item_focus_set(Eo *obj, Elm_List_Item_Data *pd, Eina_Bool focused);
105
106
107Eina_Bool _elm_list_item_elm_widget_item_item_focus_get(const Eo *obj, Elm_List_Item_Data *pd);
108
109
110void _elm_list_item_elm_widget_item_part_text_set(Eo *obj, Elm_List_Item_Data *pd, const char *part, const char *label);
111
112
113const char *_elm_list_item_elm_widget_item_part_text_get(const Eo *obj, Elm_List_Item_Data *pd, const char *part);
114
115
116void _elm_list_item_elm_widget_item_part_content_set(Eo *obj, Elm_List_Item_Data *pd, const char *part, Efl_Canvas_Object *content);
117
118
119Efl_Canvas_Object *_elm_list_item_elm_widget_item_part_content_get(const Eo *obj, Elm_List_Item_Data *pd, const char *part);
120
121
122Efl_Canvas_Object *_elm_list_item_elm_widget_item_part_content_unset(Eo *obj, Elm_List_Item_Data *pd, const char *part);
123
124
125const char *_elm_list_item_efl_access_object_i18n_name_get(const Eo *obj, Elm_List_Item_Data *pd);
126
127
128Efl_Access_State_Set _elm_list_item_efl_access_object_state_set_get(const Eo *obj, Elm_List_Item_Data *pd);
129
130
131static Eina_Bool
132_elm_list_item_class_initializer(Efl_Class *klass)
133{
134 const Efl_Object_Ops *opsp = NULL;
135
136 const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
137
138#ifndef ELM_LIST_ITEM_EXTRA_OPS
139#define ELM_LIST_ITEM_EXTRA_OPS
140#endif
141
142 EFL_OPS_DEFINE(ops,
143 EFL_OBJECT_OP_FUNC(elm_obj_list_item_separator_set, _elm_list_item_separator_set),
144 EFL_OBJECT_OP_FUNC(elm_obj_list_item_separator_get, _elm_list_item_separator_get),
145 EFL_OBJECT_OP_FUNC(elm_obj_list_item_selected_set, _elm_list_item_selected_set),
146 EFL_OBJECT_OP_FUNC(elm_obj_list_item_selected_get, _elm_list_item_selected_get),
147 EFL_OBJECT_OP_FUNC(elm_obj_list_item_object_get, _elm_list_item_object_get),
148 EFL_OBJECT_OP_FUNC(elm_obj_list_item_prev_get, _elm_list_item_prev_get),
149 EFL_OBJECT_OP_FUNC(elm_obj_list_item_next_get, _elm_list_item_next_get),
150 EFL_OBJECT_OP_FUNC(elm_obj_list_item_show, _elm_list_item_show),
151 EFL_OBJECT_OP_FUNC(elm_obj_list_item_bring_in, _elm_list_item_bring_in),
152 EFL_OBJECT_OP_FUNC(efl_constructor, _elm_list_item_efl_object_constructor),
153 EFL_OBJECT_OP_FUNC(efl_invalidate, _elm_list_item_efl_object_invalidate),
154 EFL_OBJECT_OP_FUNC(efl_destructor, _elm_list_item_efl_object_destructor),
155 EFL_OBJECT_OP_FUNC(elm_wdg_item_disable, _elm_list_item_elm_widget_item_disable),
156 EFL_OBJECT_OP_FUNC(elm_wdg_item_del_pre, _elm_list_item_elm_widget_item_del_pre),
157 EFL_OBJECT_OP_FUNC(elm_wdg_item_signal_emit, _elm_list_item_elm_widget_item_signal_emit),
158 EFL_OBJECT_OP_FUNC(elm_wdg_item_focus_set, _elm_list_item_elm_widget_item_item_focus_set),
159 EFL_OBJECT_OP_FUNC(elm_wdg_item_focus_get, _elm_list_item_elm_widget_item_item_focus_get),
160 EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_set, _elm_list_item_elm_widget_item_part_text_set),
161 EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_get, _elm_list_item_elm_widget_item_part_text_get),
162 EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_set, _elm_list_item_elm_widget_item_part_content_set),
163 EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_get, _elm_list_item_elm_widget_item_part_content_get),
164 EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_unset, _elm_list_item_elm_widget_item_part_content_unset),
165 EFL_OBJECT_OP_FUNC(efl_access_object_i18n_name_get, _elm_list_item_efl_access_object_i18n_name_get),
166 EFL_OBJECT_OP_FUNC(efl_access_object_state_set_get, _elm_list_item_efl_access_object_state_set_get),
167 ELM_LIST_ITEM_EXTRA_OPS
168 );
169 opsp = &ops;
170
171 static const Efl_Object_Property_Reflection refl_table[] = {
172 {"separator", __eolian_elm_list_item_separator_set_reflect, __eolian_elm_list_item_separator_get_reflect},
173 {"selected", __eolian_elm_list_item_selected_set_reflect, __eolian_elm_list_item_selected_get_reflect},
174 };
175 static const Efl_Object_Property_Reflection_Ops rops = {
176 refl_table, EINA_C_ARRAY_LENGTH(refl_table)
177 };
178 ropsp = &rops;
179
180 return efl_class_functions_set(klass, opsp, ropsp);
181}
182
183static const Efl_Class_Description _elm_list_item_class_desc = {
184 EO_VERSION,
185 "Elm.List.Item",
186 EFL_CLASS_TYPE_REGULAR,
187 sizeof(Elm_List_Item_Data),
188 _elm_list_item_class_initializer,
189 NULL,
190 NULL
191};
192
193EFL_DEFINE_CLASS(elm_list_item_class_get, &_elm_list_item_class_desc, ELM_WIDGET_ITEM_CLASS, EFL_UI_LEGACY_INTERFACE, NULL);
194
195#include "elm_list_item_eo.legacy.c"
diff --git a/src/lib/elementary/elm_list_item_eo.h b/src/lib/elementary/elm_list_item_eo.h
new file mode 100644
index 0000000..8aef923
--- /dev/null
+++ b/src/lib/elementary/elm_list_item_eo.h
@@ -0,0 +1,148 @@
1#ifndef _ELM_LIST_ITEM_EO_H_
2#define _ELM_LIST_ITEM_EO_H_
3
4#ifndef _ELM_LIST_ITEM_EO_CLASS_TYPE
5#define _ELM_LIST_ITEM_EO_CLASS_TYPE
6
7typedef Eo Elm_List_Item;
8
9#endif
10
11#ifndef _ELM_LIST_ITEM_EO_TYPES
12#define _ELM_LIST_ITEM_EO_TYPES
13
14
15#endif
16/** Elementary list item class
17 *
18 * @ingroup Elm_List_Item
19 */
20#define ELM_LIST_ITEM_CLASS elm_list_item_class_get()
21
22EWAPI const Efl_Class *elm_list_item_class_get(void);
23
24/**
25 * @brief Set or unset item as a separator.
26 *
27 * Items aren't set as separator by default.
28 *
29 * If set as separator it will display separator theme, so won't display icons
30 * or label.
31 *
32 * @param[in] obj The object.
33 * @param[in] setting @c true means item @c it is a separator. @c false
34 * indicates it's not.
35 *
36 * @ingroup Elm_List_Item
37 */
38EOAPI void elm_obj_list_item_separator_set(Eo *obj, Eina_Bool setting);
39
40/**
41 * @brief Get a value whether item is a separator or not.
42 *
43 * @param[in] obj The object.
44 *
45 * @return @c true means item @c it is a separator. @c false indicates it's
46 * not.
47 *
48 * @ingroup Elm_List_Item
49 */
50EOAPI Eina_Bool elm_obj_list_item_separator_get(const Eo *obj);
51
52/**
53 * @brief Set the selected state of an item.
54 *
55 * This sets the selected state of the given item.
56 *
57 * If a new item is selected the previously selected will be unselected, unless
58 * multiple selection is enabled with @ref elm_list_multi_select_set.
59 * Previously selected item can be get with function @ref
60 * elm_list_selected_item_get.
61 *
62 * Selected items will be highlighted.
63 *
64 * @param[in] obj The object.
65 * @param[in] selected The selected state.
66 *
67 * @ingroup Elm_List_Item
68 */
69EOAPI void elm_obj_list_item_selected_set(Eo *obj, Eina_Bool selected);
70
71/**
72 * @brief Get whether the item is selected or not.
73 *
74 * @param[in] obj The object.
75 *
76 * @return The selected state.
77 *
78 * @ingroup Elm_List_Item
79 */
80EOAPI Eina_Bool elm_obj_list_item_selected_get(const Eo *obj);
81
82/**
83 * @brief Get the real Evas(Edje) object created to implement the view of a
84 * given list item.
85 *
86 * Base object is the @c Evas_Object that represents that item.
87 *
88 * @param[in] obj The object.
89 *
90 * @return The base Edje object associated with the item.
91 *
92 * @ingroup Elm_List_Item
93 */
94EOAPI Efl_Canvas_Object *elm_obj_list_item_object_get(const Eo *obj);
95
96/**
97 * @brief Get the item before the item in list.
98 *
99 * @note If it is the first item, @c null will be returned.
100 *
101 * @param[in] obj The object.
102 *
103 * @return The item before or @c null.
104 *
105 * @ingroup Elm_List_Item
106 */
107EOAPI Elm_Widget_Item *elm_obj_list_item_prev_get(const Eo *obj);
108
109/**
110 * @brief Get the item after the item in list.
111 *
112 * @note If it is the last item, @c null will be returned.
113 *
114 * @param[in] obj The object.
115 *
116 * @return The item after or @c null.
117 *
118 * @ingroup Elm_List_Item
119 */
120EOAPI Elm_Widget_Item *elm_obj_list_item_next_get(const Eo *obj);
121
122/**
123 * @brief Show item in the list view.
124 *
125 * It won't animate list until item is visible. If such behavior is wanted, use
126 * @ref elm_obj_list_item_bring_in instead.
127 * @param[in] obj The object.
128 *
129 * @ingroup Elm_List_Item
130 */
131EOAPI void elm_obj_list_item_show(Eo *obj);
132
133/**
134 * @brief Bring in the given item to list view.
135 *
136 * This causes list to jump to the given item and show it (by scrolling), if it
137 * is not fully visible.
138 *
139 * This may use animation to do so and take a period of time.
140 *
141 * If animation isn't wanted, @ref elm_obj_list_item_show can be used.
142 * @param[in] obj The object.
143 *
144 * @ingroup Elm_List_Item
145 */
146EOAPI void elm_obj_list_item_bring_in(Eo *obj);
147
148#endif
diff --git a/src/lib/elementary/elm_list_item_eo.legacy.c b/src/lib/elementary/elm_list_item_eo.legacy.c
new file mode 100644
index 0000000..609a9fb
--- /dev/null
+++ b/src/lib/elementary/elm_list_item_eo.legacy.c
@@ -0,0 +1,54 @@
1
2EAPI void
3elm_list_item_separator_set(Elm_List_Item *obj, Eina_Bool setting)
4{
5 elm_obj_list_item_separator_set(obj, setting);
6}
7
8EAPI Eina_Bool
9elm_list_item_separator_get(const Elm_List_Item *obj)
10{
11 return elm_obj_list_item_separator_get(obj);
12}
13
14EAPI void
15elm_list_item_selected_set(Elm_List_Item *obj, Eina_Bool selected)
16{
17 elm_obj_list_item_selected_set(obj, selected);
18}
19
20EAPI Eina_Bool
21elm_list_item_selected_get(const Elm_List_Item *obj)
22{
23 return elm_obj_list_item_selected_get(obj);
24}
25
26EAPI Efl_Canvas_Object *
27elm_list_item_object_get(const Elm_List_Item *obj)
28{
29 return elm_obj_list_item_object_get(obj);
30}
31
32EAPI Elm_Widget_Item *
33elm_list_item_prev(const Elm_List_Item *obj)
34{
35 return elm_obj_list_item_prev_get(obj);
36}
37
38EAPI Elm_Widget_Item *
39elm_list_item_next(const Elm_List_Item *obj)
40{
41 return elm_obj_list_item_next_get(obj);
42}
43
44EAPI void
45elm_list_item_show(Elm_List_Item *obj)
46{
47 elm_obj_list_item_show(obj);
48}
49
50EAPI void
51elm_list_item_bring_in(Elm_List_Item *obj)
52{
53 elm_obj_list_item_bring_in(obj);
54}
diff --git a/src/lib/elementary/elm_list_item_eo.legacy.h b/src/lib/elementary/elm_list_item_eo.legacy.h
new file mode 100644
index 0000000..af74d6e
--- /dev/null
+++ b/src/lib/elementary/elm_list_item_eo.legacy.h
@@ -0,0 +1,141 @@
1#ifndef _ELM_LIST_ITEM_EO_LEGACY_H_
2#define _ELM_LIST_ITEM_EO_LEGACY_H_
3
4#ifndef _ELM_LIST_ITEM_EO_CLASS_TYPE
5#define _ELM_LIST_ITEM_EO_CLASS_TYPE
6
7typedef Eo Elm_List_Item;
8
9#endif
10
11#ifndef _ELM_LIST_ITEM_EO_TYPES
12#define _ELM_LIST_ITEM_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Set or unset item as a separator.
19 *
20 * Items aren't set as separator by default.
21 *
22 * If set as separator it will display separator theme, so won't display icons
23 * or label.
24 *
25 * @param[in] obj The object.
26 * @param[in] setting @c true means item @c it is a separator. @c false
27 * indicates it's not.
28 *
29 * @ingroup Elm_List_Item_Group
30 */
31EAPI void elm_list_item_separator_set(Elm_List_Item *obj, Eina_Bool setting);
32
33/**
34 * @brief Get a value whether item is a separator or not.
35 *
36 * @param[in] obj The object.
37 *
38 * @return @c true means item @c it is a separator. @c false indicates it's
39 * not.
40 *
41 * @ingroup Elm_List_Item_Group
42 */
43EAPI Eina_Bool elm_list_item_separator_get(const Elm_List_Item *obj);
44
45/**
46 * @brief Set the selected state of an item.
47 *
48 * This sets the selected state of the given item.
49 *
50 * If a new item is selected the previously selected will be unselected, unless
51 * multiple selection is enabled with @ref elm_list_multi_select_set.
52 * Previously selected item can be get with function @ref
53 * elm_list_selected_item_get.
54 *
55 * Selected items will be highlighted.
56 *
57 * @param[in] obj The object.
58 * @param[in] selected The selected state.
59 *
60 * @ingroup Elm_List_Item_Group
61 */
62EAPI void elm_list_item_selected_set(Elm_List_Item *obj, Eina_Bool selected);
63
64/**
65 * @brief Get whether the item is selected or not.
66 *
67 * @param[in] obj The object.
68 *
69 * @return The selected state.
70 *
71 * @ingroup Elm_List_Item_Group
72 */
73EAPI Eina_Bool elm_list_item_selected_get(const Elm_List_Item *obj);
74
75/**
76 * @brief Get the real Evas(Edje) object created to implement the view of a
77 * given list item.
78 *
79 * Base object is the @c Evas_Object that represents that item.
80 *
81 * @param[in] obj The object.
82 *
83 * @return The base Edje object associated with the item.
84 *
85 * @ingroup Elm_List_Item_Group
86 */
87EAPI Efl_Canvas_Object *elm_list_item_object_get(const Elm_List_Item *obj);
88
89/**
90 * @brief Get the item before the item in list.
91 *
92 * @note If it is the first item, @c null will be returned.
93 *
94 * @param[in] obj The object.
95 *
96 * @return The item before or @c null.
97 *
98 * @ingroup Elm_List_Item_Group
99 */
100EAPI Elm_Widget_Item *elm_list_item_prev(const Elm_List_Item *obj);
101
102/**
103 * @brief Get the item after the item in list.
104 *
105 * @note If it is the last item, @c null will be returned.
106 *
107 * @param[in] obj The object.
108 *
109 * @return The item after or @c null.
110 *
111 * @ingroup Elm_List_Item_Group
112 */
113EAPI Elm_Widget_Item *elm_list_item_next(const Elm_List_Item *obj);
114
115/**
116 * @brief Show item in the list view.
117 *
118 * It won't animate list until item is visible. If such behavior is wanted, use
119 * @ref elm_list_item_bring_in instead.
120 * @param[in] obj The object.
121 *
122 * @ingroup Elm_List_Item_Group
123 */
124EAPI void elm_list_item_show(Elm_List_Item *obj);
125
126/**
127 * @brief Bring in the given item to list view.
128 *
129 * This causes list to jump to the given item and show it (by scrolling), if it
130 * is not fully visible.
131 *
132 * This may use animation to do so and take a period of time.
133 *
134 * If animation isn't wanted, @ref elm_list_item_show can be used.
135 * @param[in] obj The object.
136 *
137 * @ingroup Elm_List_Item_Group
138 */
139EAPI void elm_list_item_bring_in(Elm_List_Item *obj);
140
141#endif
diff --git a/src/lib/elementary/elm_list_legacy.h b/src/lib/elementary/elm_list_legacy.h
index a99532d..0cdb591 100644
--- a/src/lib/elementary/elm_list_legacy.h
+++ b/src/lib/elementary/elm_list_legacy.h
@@ -11,5 +11,5 @@
11 */ 11 */
12EAPI Evas_Object *elm_list_add(Evas_Object *parent); 12EAPI Evas_Object *elm_list_add(Evas_Object *parent);
13 13
14#include "elm_list_item.eo.legacy.h" 14#include "elm_list_item_eo.legacy.h"
15#include "elm_list.eo.legacy.h" 15#include "elm_list_eo.legacy.h"
diff --git a/src/lib/elementary/elm_widget_list.h b/src/lib/elementary/elm_widget_list.h
index 707f170..a92807d 100644
--- a/src/lib/elementary/elm_widget_list.h
+++ b/src/lib/elementary/elm_widget_list.h
@@ -3,8 +3,8 @@
3 3
4#include "elm_interface_scrollable.h" 4#include "elm_interface_scrollable.h"
5#include "elm_widget_layout.h" 5#include "elm_widget_layout.h"
6#include "elm_list.eo.h" 6#include "elm_list_eo.h"
7#include "elm_list_item.eo.h" 7#include "elm_list_item_eo.h"
8 8
9/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR 9/* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
10 * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT 10 * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index 52da8ea..5880680 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -1,6 +1,5 @@
1pub_legacy_eo_files = [ 1pub_legacy_eo_files = [
2 'efl_ui_clock_legacy.eo', 2 'efl_ui_clock_legacy.eo',
3 'elm_list.eo',
4 'elm_map.eo', 3 'elm_map.eo',
5 'elm_map_pan.eo', 4 'elm_map_pan.eo',
6 'elm_menu.eo', 5 'elm_menu.eo',
@@ -17,7 +16,6 @@ pub_legacy_eo_files = [
17 'elm_systray.eo', 16 'elm_systray.eo',
18 'elm_menu_item.eo', 17 'elm_menu_item.eo',
19 'elm_widget_item_static_focus.eo', 18 'elm_widget_item_static_focus.eo',
20 'elm_list_item.eo',
21 'elm_popup_item.eo', 19 'elm_popup_item.eo',
22 'elm_ctxpopup_part.eo', 20 'elm_ctxpopup_part.eo',
23 'elm_dayselector_part.eo', 21 'elm_dayselector_part.eo',
@@ -766,6 +764,10 @@ elementary_pub_headers = [
766 'elm_inwin_eo.legacy.h', 764 'elm_inwin_eo.legacy.h',
767 'elm_label_eo.h', 765 'elm_label_eo.h',
768 'elm_label_eo.legacy.h', 766 'elm_label_eo.legacy.h',
767 'elm_list_eo.h',
768 'elm_list_eo.legacy.h',
769 'elm_list_item_eo.h',
770 'elm_list_item_eo.legacy.h',
769] 771]
770 772
771elementary_header_src = [ 773elementary_header_src = [