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:20 -0800
commitc4fdda1fb003b1e81215f934d49374b037a3c679 (patch)
tree17406dde856406af675e36ab10f1a7840149916b /src
parentbb85bb6b1df3e201f26d20569974c642fc3d4c72 (diff)
elm_genlist*: 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/D8171
Diffstat (limited to 'src')
-rw-r--r--src/Makefile_Efl_Mono.am4
-rw-r--r--src/Makefile_Elementary.am16
-rw-r--r--src/lib/elementary/elc_combobox.c2
-rw-r--r--src/lib/elementary/elc_fileselector.c2
-rw-r--r--src/lib/elementary/elm_conform.c2
-rw-r--r--src/lib/elementary/elm_focus_legacy.c2
-rw-r--r--src/lib/elementary/elm_genlist.c12
-rw-r--r--src/lib/elementary/elm_genlist.eo598
-rw-r--r--src/lib/elementary/elm_genlist_eo.c686
-rw-r--r--src/lib/elementary/elm_genlist_eo.h1014
-rw-r--r--src/lib/elementary/elm_genlist_eo.legacy.c258
-rw-r--r--src/lib/elementary/elm_genlist_eo.legacy.h704
-rw-r--r--src/lib/elementary/elm_genlist_item.eo437
-rw-r--r--src/lib/elementary/elm_genlist_item_eo.c409
-rw-r--r--src/lib/elementary/elm_genlist_item_eo.h496
-rw-r--r--src/lib/elementary/elm_genlist_item_eo.legacy.c180
-rw-r--r--src/lib/elementary/elm_genlist_item_eo.legacy.h489
-rw-r--r--src/lib/elementary/elm_genlist_legacy.h4
-rw-r--r--src/lib/elementary/elm_genlist_pan.eo24
-rw-r--r--src/lib/elementary/elm_genlist_pan_eo.c67
-rw-r--r--src/lib/elementary/elm_genlist_pan_eo.h24
-rw-r--r--src/lib/elementary/elm_genlist_pan_eo.legacy.h17
-rw-r--r--src/lib/elementary/elm_main.c2
-rw-r--r--src/lib/elementary/elm_store.c2
-rw-r--r--src/lib/elementary/elm_view_list.c2
-rw-r--r--src/lib/elementary/elm_widget_item_static_focus.c2
-rw-r--r--src/lib/elementary/meson.build9
27 files changed, 4381 insertions, 1083 deletions
diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 7784abd..1028edd 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -173,9 +173,9 @@ lib/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 \
179lib/elementary/elm_gengrid_eo.cs \ 179lib/elementary/elm_gengrid_eo.cs \
180lib/elementary/elm_glview.eo.cs 180lib/elementary/elm_glview.eo.cs
181 181
diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 8be3b90..ffcff1d 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -187,8 +187,6 @@ elm_private_eolian_files = \
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_interface_fileselector.eo \ 189 lib/elementary/elm_interface_fileselector.eo \
190 lib/elementary/elm_genlist.eo \
191 lib/elementary/elm_genlist_pan.eo \
192 lib/elementary/elm_gesture_layer.eo \ 190 lib/elementary/elm_gesture_layer.eo \
193 lib/elementary/elm_glview.eo \ 191 lib/elementary/elm_glview.eo \
194 lib/elementary/elm_hover.eo \ 192 lib/elementary/elm_hover.eo \
@@ -212,7 +210,6 @@ elm_legacy_eolian_files = \
212 lib/elementary/elm_menu_item.eo \ 210 lib/elementary/elm_menu_item.eo \
213 lib/elementary/elm_index_item.eo \ 211 lib/elementary/elm_index_item.eo \
214 lib/elementary/elm_widget_item_static_focus.eo \ 212 lib/elementary/elm_widget_item_static_focus.eo \
215 lib/elementary/elm_genlist_item.eo \
216 lib/elementary/elm_list_item.eo \ 213 lib/elementary/elm_list_item.eo \
217 lib/elementary/elm_popup_item.eo \ 214 lib/elementary/elm_popup_item.eo \
218 lib/elementary/elm_ctxpopup_part.eo \ 215 lib/elementary/elm_ctxpopup_part.eo \
@@ -351,6 +348,11 @@ lib/elementary/elm_gengrid_eo.c \
351lib/elementary/elm_gengrid_item_eo.legacy.c \ 348lib/elementary/elm_gengrid_item_eo.legacy.c \
352lib/elementary/elm_gengrid_item_eo.c \ 349lib/elementary/elm_gengrid_item_eo.c \
353lib/elementary/elm_gengrid_pan_eo.c \ 350lib/elementary/elm_gengrid_pan_eo.c \
351lib/elementary/elm_genlist_eo.legacy.c \
352lib/elementary/elm_genlist_eo.c \
353lib/elementary/elm_genlist_item_eo.legacy.c \
354lib/elementary/elm_genlist_item_eo.c \
355lib/elementary/elm_genlist_pan_eo.c \
354lib/elementary/elm_hoversel_eo.c \ 356lib/elementary/elm_hoversel_eo.c \
355lib/elementary/elm_hoversel_item_eo.c \ 357lib/elementary/elm_hoversel_item_eo.c \
356lib/elementary/elm_hoversel_item_eo.legacy.c 358lib/elementary/elm_hoversel_item_eo.legacy.c
@@ -452,6 +454,14 @@ lib/elementary/elm_gengrid_item_eo.h \
452lib/elementary/elm_gengrid_item_eo.legacy.h \ 454lib/elementary/elm_gengrid_item_eo.legacy.h \
453lib/elementary/elm_gengrid_pan_eo.h \ 455lib/elementary/elm_gengrid_pan_eo.h \
454lib/elementary/elm_gengrid_pan_eo.legacy.h \ 456lib/elementary/elm_gengrid_pan_eo.legacy.h \
457lib/elementary/elm_gengrid_pan_eo.h \
458lib/elementary/elm_gengrid_pan_eo.legacy.h \
459lib/elementary/elm_genlist_eo.h \
460lib/elementary/elm_genlist_eo.legacy.h \
461lib/elementary/elm_genlist_item_eo.h \
462lib/elementary/elm_genlist_item_eo.legacy.h \
463lib/elementary/elm_genlist_pan_eo.h \
464lib/elementary/elm_genlist_pan_eo.legacy.h \
455lib/elementary/elm_hoversel_eo.h \ 465lib/elementary/elm_hoversel_eo.h \
456lib/elementary/elm_hoversel_eo.legacy.h \ 466lib/elementary/elm_hoversel_eo.legacy.h \
457lib/elementary/elm_hoversel_item_eo.h \ 467lib/elementary/elm_hoversel_item_eo.h \
diff --git a/src/lib/elementary/elc_combobox.c b/src/lib/elementary/elc_combobox.c
index 4a67f07..c2c3c65 100644
--- a/src/lib/elementary/elc_combobox.c
+++ b/src/lib/elementary/elc_combobox.c
@@ -11,7 +11,7 @@
11#include "elm_priv.h" 11#include "elm_priv.h"
12#include "elm_widget_combobox.h" 12#include "elm_widget_combobox.h"
13#include "elm_entry_eo.h" 13#include "elm_entry_eo.h"
14#include "elm_genlist.eo.h" 14#include "elm_genlist_eo.h"
15#include "elm_hover.eo.h" 15#include "elm_hover.eo.h"
16 16
17EOAPI void elm_obj_combobox_hover_begin(Eo *obj); 17EOAPI void elm_obj_combobox_hover_begin(Eo *obj);
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index cf6b58e..51460c1 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -23,7 +23,7 @@
23#include "elm_widget_fileselector.h" 23#include "elm_widget_fileselector.h"
24#include "elm_entry_eo.h" 24#include "elm_entry_eo.h"
25#include "elm_fileselector_eo.h" 25#include "elm_fileselector_eo.h"
26#include "elm_genlist.eo.h" 26#include "elm_genlist_eo.h"
27#include "elm_gengrid_eo.h" 27#include "elm_gengrid_eo.h"
28 28
29#include "elm_fileselector_part.eo.h" 29#include "elm_fileselector_part.eo.h"
diff --git a/src/lib/elementary/elm_conform.c b/src/lib/elementary/elm_conform.c
index 6ea1cc7..47db121 100644
--- a/src/lib/elementary/elm_conform.c
+++ b/src/lib/elementary/elm_conform.c
@@ -12,7 +12,7 @@
12#include "elm_widget_layout.h" 12#include "elm_widget_layout.h"
13#include "elm_widget_plug.h" 13#include "elm_widget_plug.h"
14#include "elm_scroller.eo.h" 14#include "elm_scroller.eo.h"
15#include "elm_genlist.eo.h" 15#include "elm_genlist_eo.h"
16#include "elm_conformant_eo.h" 16#include "elm_conformant_eo.h"
17 17
18#define MY_CLASS ELM_CONFORMANT_CLASS 18#define MY_CLASS ELM_CONFORMANT_CLASS
diff --git a/src/lib/elementary/elm_focus_legacy.c b/src/lib/elementary/elm_focus_legacy.c
index 3a3db6e..cfe6a6d 100644
--- a/src/lib/elementary/elm_focus_legacy.c
+++ b/src/lib/elementary/elm_focus_legacy.c
@@ -6,7 +6,7 @@
6#include "elm_priv.h" 6#include "elm_priv.h"
7 7
8//we need those for legacy compatible code 8//we need those for legacy compatible code
9#include "elm_genlist.eo.h" 9#include "elm_genlist_eo.h"
10#include "elm_gengrid_eo.h" 10#include "elm_gengrid_eo.h"
11 11
12#define API_ENTRY()\ 12#define API_ENTRY()\
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index ddbd77b..3bb2f6b 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -18,9 +18,9 @@
18#include "elm_interface_scrollable.h" 18#include "elm_interface_scrollable.h"
19#include "efl_ui_focus_parent_provider_gen.eo.h" 19#include "efl_ui_focus_parent_provider_gen.eo.h"
20#include "efl_ui_focus_composition_adapter.eo.h" 20#include "efl_ui_focus_composition_adapter.eo.h"
21#include "elm_genlist_item.eo.h" 21#include "elm_genlist_item_eo.h"
22#include "elm_genlist_pan.eo.h" 22#include "elm_genlist_pan_eo.h"
23#include "elm_genlist.eo.h" 23#include "elm_genlist_eo.h"
24 24
25#define MY_PAN_CLASS ELM_GENLIST_PAN_CLASS 25#define MY_PAN_CLASS ELM_GENLIST_PAN_CLASS
26 26
@@ -8953,6 +8953,6 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_genlist, Elm_Genlist_Data)
8953#define ELM_GENLIST_PAN_EXTRA_OPS \ 8953#define ELM_GENLIST_PAN_EXTRA_OPS \
8954 EFL_CANVAS_GROUP_DEL_OPS(elm_genlist_pan) 8954 EFL_CANVAS_GROUP_DEL_OPS(elm_genlist_pan)
8955 8955
8956#include "elm_genlist.eo.c" 8956#include "elm_genlist_eo.c"
8957#include "elm_genlist_pan.eo.c" 8957#include "elm_genlist_pan_eo.c"
8958#include "elm_genlist_item.eo.c" 8958#include "elm_genlist_item_eo.c"
diff --git a/src/lib/elementary/elm_genlist.eo b/src/lib/elementary/elm_genlist.eo
deleted file mode 100644
index d0926b7..0000000
--- a/src/lib/elementary/elm_genlist.eo
+++ /dev/null
@@ -1,598 +0,0 @@
1import elm_general;
2
3class Elm.Genlist extends Efl.Ui.Layout_Base implements Elm.Interface_Scrollable, Efl.Ui.Clickable,
4 Efl.Access.Widget.Action, Efl.Access.Selection,
5 Efl.Ui.Selectable, Efl.Ui.Legacy, Elm.Widget_Item_Container
6{
7 [[Elementary genlist class]]
8 legacy_prefix: elm_genlist;
9 eo_prefix: elm_obj_genlist;
10 event_prefix: elm_genlist;
11 methods {
12 @property homogeneous {
13 set {
14 [[Enable/disable homogeneous mode.
15
16 This will enable the homogeneous mode where items are of the
17 same height and width so that genlist may do the lazy-loading
18 at its maximum (which increases the performance for scrolling
19 the list). In the normal mode, genlist will pre-calculate all
20 the items' sizes even though they are not in use. So items'
21 callbacks are called many times than expected. But homogeneous
22 mode will skip the item size pre-calculation process so
23 items' callbacks are called only when the item is needed.
24
25 Note: This also works well with group index.
26 ]]
27 }
28 get {
29 [[Get whether the homogeneous mode is enabled.]]
30 }
31 values {
32 homogeneous: bool; [[Assume the items within the genlist are of
33 the same height and width. Default is $false.]]
34 }
35 }
36 @property select_mode {
37 set {
38 [[Set the genlist select mode.
39
40 #ELM_OBJECT_SELECT_MODE_DEFAULT means that items will call
41 their selection func and callback once when first becoming
42 selected. Any further clicks will do nothing, unless you set
43 always select mode. ELM_OBJECT_SELECT_MODE_ALWAYS means that
44 even if selected, every click will make the selected callbacks
45 be called. #ELM_OBJECT_SELECT_MODE_NONE will turn off the
46 ability to select items entirely and they will neither appear
47 selected nor call selected callback functions.
48 ]]
49 }
50 get {
51 [[Get the genlist select mode.]]
52 }
53 values {
54 mode: Elm.Object.Select_Mode(Elm.Object.Select_Mode.max); [[The select mode.]]
55 }
56 }
57 @property focus_on_selection {
58 set {
59 [[Set focus upon items selection mode
60
61 When enabled, every selection of an item inside the genlist
62 will automatically set focus to its first focusable widget
63 from the left. This is true of course if the selection was
64 made by clicking an unfocusable area in an item or selecting
65 it with a key movement. Clicking on a focusable widget inside
66 an item will cause this particular item to get focus as usual.
67 ]]
68 }
69 get {
70 [[Get whether focus upon item's selection mode is enabled.]]
71 }
72 values {
73 enabled: bool; [[The tree effect status.]]
74 }
75 }
76 @property longpress_timeout {
77 set {
78 [[Set the timeout in seconds for the longpress event.
79
80 This option will change how long it takes to send an event
81 "longpressed" after the mouse down signal is sent to the list.
82 If this event occurs, no "clicked" event will be sent.
83
84 Warning: If you set the longpress timeout value with this API,
85 your genlist will not be affected by the longpress value of
86 elementary config value later.
87 ]]
88 }
89 get {
90 [[Get the timeout in seconds for the longpress event.]]
91 }
92 values {
93 timeout: double; [[Timeout in seconds. Default is elm config value (1.0).]]
94 }
95 }
96 @property multi_select {
97 set {
98 [[Enable or disable multi-selection in the genlist.
99
100 This enables ($true) or disables ($false) multi-selection in
101 the list. This allows more than 1 item to be selected. To
102 retrieve the list of selected items, use @.selected_items.get.
103 ]]
104 }
105 get {
106 [[Get if multi-selection in genlist is enabled or disabled.]]
107 }
108 values {
109 multi: bool; [[Multi-select enable/disable. Default is disabled.]]
110 }
111 }
112 @property reorder_mode {
113 set {
114 [[Set reorder mode.
115
116 After turning on the reorder mode, longpress on normal item
117 will trigger reordering of the item. You can move the item
118 up and down. However, reorder does not work with group item.
119 ]]
120 }
121 get {
122 [[Get the reorder mode.]]
123 }
124 values {
125 reorder_mode: bool; [[The reorder mode.]]
126 }
127 }
128 @property decorate_mode {
129 set {
130 [[Set Genlist decorate mode.
131
132 This sets Genlist decorate mode to all items.
133 ]]
134 }
135 get {
136 [[Get Genlist decorate mode.]]
137 }
138 values {
139 decorated: bool; [[The decorate mode status.]]
140 }
141 }
142 @property multi_select_mode {
143 set {
144 [[Set the genlist multi select mode.
145
146 #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT means that
147 select/unselect items whenever each item is clicked.
148 #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL means that only
149 one item will be selected although multi-selection is enabled,
150 if clicked without pressing control key. This mode is only
151 available with multi-selection.
152
153 @since 1.8
154 ]]
155 }
156 get {
157 [[Get the genlist multi select mode.
158
159 @since 1.8
160 ]]
161 }
162 values {
163 mode: Elm.Object.Multi_Select_Mode(Elm.Object.Multi_Select_Mode.max); [[The multi select mode]]
164 }
165 }
166 @property block_count {
167 set {
168 [[Set the maximum number of items within an item block.
169
170 This will configure the block count to tune to the target
171 with particular performance matrix.
172
173 A block of objects will be used to reduce the number of
174 operations due to many objects in the screen. It can
175 determine the visibility, or if the object has changed,
176 it theme needs to be updated, etc. doing this kind of
177 calculation to the entire block, instead of per object.
178
179 The default value for the block count is enough for most
180 lists, so unless you know you will have a lot of objects
181 visible in the screen at the same time, don't try to
182 change this.
183 ]]
184 }
185 get {
186 [[Get the maximum number of items within an item block.]]
187 }
188 values {
189 count: int; [[Maximum number of items within an item block. Default is 32.]]
190 }
191 }
192 @property tree_effect_enabled {
193 [[Control genlist tree effect.]]
194 set {}
195 get {}
196 values {
197 enabled: bool; [[The tree effect status.]]
198 }
199 }
200 @property highlight_mode {
201 set {
202 [[Set whether the genlist items should be highlighted on item
203 selection.
204
205 This will turn on/off the highlight effect on item selection.
206 The selected and clicked callback functions will still be
207 called.
208
209 Highlight is enabled by default.
210 ]]
211 }
212 get {
213 [[Get whether the genlist items' should be highlighted when
214 item selected.
215 ]]
216 }
217 values {
218 highlight: bool; [[$true to enable highlighting or $false to
219 disable it.]]
220 }
221 }
222 @property mode {
223 set {
224 [[This sets the horizontal stretching mode.
225
226 This sets the mode used for sizing items horizontally. Valid
227 modes are @Elm.List.Mode.limit, @Elm.List.Mode.scroll, and
228 @Elm.List.Mode.compress. The default is @Elm.List.Mode.scroll. This mode
229 means that if items are too wide to fit, the scroller will
230 scroll horizontally. Otherwise items are expanded to fill
231 the width of the viewport of the scroller. If it is
232 @Elm.List.Mode.limit, items will be expanded to the viewport width
233 and limited to that size. If it is @Elm.List.Mode.compress, the
234 item width will be fixed (restricted to a minimum of) to the
235 list width when calculating its size in order to allow the
236 height to be calculated based on it. This allows, for
237 instance, text block to wrap lines if the Edje part is
238 configured with "text.min: 0 1".
239
240 Note: @Elm.List.Mode.compress will make list resize slower as it
241 will have to recalculate every item height again whenever
242 the list width changes!
243
244 Note: Homogeneous mode gives all items in the genlist the
245 same width/height. With @Elm.List.Mode.compress, genlist items
246 initialize fast, but there cannot be any sub-objects in the genlist
247 which require on-the-fly resizing (such as TEXTBLOCK).
248 In this case some dynamic resizable objects in the genlist might not
249 diplay properly.
250 ]]
251 }
252 get {
253 [[Get the horizontal stretching mode.]]
254 }
255 values {
256 mode: Elm.List.Mode(Elm.List.Mode.last); [[The mode to use (one of @Elm.List.Mode.scroll or @Elm.List.Mode.limit).]]
257 }
258 }
259 @property decorated_item {
260 get {
261 [[Get active genlist mode item.
262
263 This function returns the item that was activated with a mode,
264 by the function @.decorate_mode.set.
265 ]]
266 return: Elm.Widget.Item; [[The active item for that current mode.
267 Or $null if no item is activated with any mode.]]
268 }
269 }
270 @property selected_item {
271 get {
272 [[Get the selected item in the genlist.
273
274 This gets the selected item in the list (if multi-selection
275 is enabled, only the item that was first selected in the list
276 is returned - which is not very useful, so see
277 @.selected_items.get for when multi-selection is used).
278
279 If no item is selected, $null is returned.
280 ]]
281 return: Elm.Widget.Item; [[The selected item, or $null if none is selected.]]
282 }
283 }
284 @property first_item {
285 get {
286 [[Get the first item in the genlist.
287
288 This returns the first item in the list.
289
290 If filter is set on genlist, it returns
291 the first filtered item in the list.
292 ]]
293 return: Elm.Widget.Item; [[The first item or $null.]]
294 }
295 }
296 @property realized_items {
297 get {
298 [[Get a list of realized items in genlist.
299
300 This returns a list of the realized items in the genlist.
301 The list contains genlist item pointers. The list must be
302 freed by the caller when done with \@ref eina_list_free. The
303 item pointers in the list are only valid so long as those
304 items are not deleted or the genlist is not deleted.
305 ]]
306 return: list<ptr(Elm_Gen_Item)> @owned @warn_unused; [[List of realized items]]
307 }
308 }
309 @property selected_items {
310 get {
311 [[Get a list of selected items in the genlist.
312
313 It returns a list of the selected items. This list pointer
314 is only valid so long as the selection doesn't change (no
315 items are selected or unselected, or unselected implicitl
316 by deletion). The list contains genlist items pointers. The
317 order of the items in this list is the order which they were
318 selected, i.e. the first item in this list is the first item
319 that was selected, and so on.
320
321 Note: If not in multi-select mode, consider using function
322 @.selected_item.get instead.
323 ]]
324 return: const(list<Elm.Widget.Item>); [[List of selected items]]
325 }
326 }
327 @property last_item {
328 get {
329 [[Get the last item in the genlist
330
331 This returns the last item in the list.
332
333 If filter is set to genlist, it returns
334 last filtered item in the list.
335 ]]
336 return: Elm.Widget.Item; [[Last item in list]]
337 }
338 }
339 item_insert_before {
340 [[Insert an item before another in a genlist widget
341
342 This inserts an item before another in the list. It will be in
343 the same tree level or group as the item it is inserted before.
344 ]]
345 return: Elm.Widget.Item; [[Handle to inserted item]]
346 params {
347 @cref itc: Elm.Genlist.Item.Class; [[The item class for the item.]]
348 @in data: const(void_ptr); [[The item data.]]
349 @in parent: Elm.Widget.Item @nullable; [[The parent item, or $null if none.]]
350 @in before_it: Elm.Widget.Item; [[The item to place this new one before.]]
351 @in type: Elm.Genlist.Item.Type; [[Item type.]]
352 @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
353 @in func_data: const(void_ptr) @optional; [[Data passed to $func above.]]
354 }
355 }
356 realized_items_update {
357 [[Update the contents of all realized items.
358
359 This updates all realized items by calling all the item class
360 functions again to get the contents, texts and states. Use this
361 when the original item data has changed and the changes are
362 desired to be reflected.
363
364 To update just one item, use \@ref elm_genlist_item_update.
365 ]]
366 }
367 item_insert_after {
368 [[Insert an item after another in a genlist widget
369
370 This inserts an item after another in the list. It will be in the
371 same tree level or group as the item it is inserted after.
372 ]]
373 return: Elm.Widget.Item; [[Handle to inserted item]]
374 params {
375 @cref itc: Elm.Genlist.Item.Class; [[The item class for the item.]]
376 @in data: const(void_ptr); [[The item data.]]
377 @in parent: Elm.Widget.Item @nullable; [[The parent item, or $null if none.]]
378 @in after_it: Elm.Widget.Item; [[The item to place this new one after.]]
379 @in type: Elm.Genlist.Item.Type; [[Item type.]]
380 @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
381 @in func_data: const(void_ptr) @optional; [[Data passed to $func above.]]
382 }
383 }
384 at_xy_item_get @const {
385 [[Get the item that is at the x, y canvas coords.
386
387 This returns the item at the given coordinates (which are canvas
388 relative, not object-relative). If an item is at that coordinate,
389 that item handle is returned, and if $posret is not NULL, the
390 integer pointed to is set to a value of -1, 0 or 1, depending if
391 the coordinate is on the upper portion of that item (-1), on the
392 middle section (0) or on the lower part (1). If NULL is returned
393 as an item (no item found there), then posret may indicate -1 or
394 1 based if the coordinate is above or below all items
395 respectively in the genlist.
396 ]]
397 return: Elm.Widget.Item; [[Item at position]]
398 params {
399 @in x: int; [[The input x coordinate.]]
400 @in y: int; [[The input y coordinate.]]
401 @out posret: int; [[The position relative to the item returned here.]]
402 }
403 }
404 @property filter {
405 set {
406 [[Set filter mode with key.
407
408 This initiates the filter mode of genlist with user/application
409 provided key. If key is NULL, the filter mode is turned off.
410
411 The filter data passed has to be managed by application itself and
412 should not be deleted before genlist is deleted(or while filtering
413 is not done.
414 ]]
415 }
416 values {
417 key: void_ptr; [[Filter key]]
418 }
419 }
420 filter_iterator_new {
421 [[Returns an iterator over the list of filtered items.
422
423 Return NULL if filter is not set. Application must take care
424 of the case while calling the API. Must be freed after use.
425 ]]
426 return: iterator<ptr(Elm_Gen_Item)> @owned; [[Iterator on genlist]]
427 }
428 filtered_items_count @const {
429 [[Return how many items have passed the filter currently.
430
431 This behaviour is O(1) and returns the count of items which
432 are currently passed by the filter. After "filter,done", the
433 call returns total count of the filtered items.
434
435 @since 1.18
436 ]]
437 return: uint; [[Count of items passing the filter]]
438 }
439 items_count @const {
440 [[Return how many items are currently in a list.
441
442 This behavior is O(1) and includes items which may or may not
443 be realized.
444 ]]
445 return: uint; [[Item in list]]
446 }
447 item_prepend {
448 [[Prepend a new item in a given genlist widget.
449
450 This adds an item to the beginning of the list or beginning of
451 the children of the parent if given.
452 ]]
453 return: Elm.Widget.Item; [[Handle to prepended item]]
454 params {
455 @cref itc: Elm.Genlist.Item.Class; [[The item class for the item.]]
456 @in data: const(void_ptr); [[The item data.]]
457 @in parent: Elm.Widget.Item @nullable; [[The parent item, or $null if none.]]
458 @in type: Elm.Genlist.Item.Type; [[Item type.]]
459 @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
460 @in func_data: const(void_ptr) @optional; [[Data passed to $func above.]]
461 }
462 }
463 clear {
464 [[Remove all items from a given genlist widget.
465
466 This removes (and deletes) all items in $obj, leaving it empty.
467 ]]
468 }
469 item_append {
470 [[Append a new item in a given genlist widget.
471
472 This adds the given item to the end of the list or the end of
473 the children list if the $parent is given.
474 ]]
475 return: Elm.Widget.Item; [[Handle to appended item]]
476 params {
477 @cref itc: Elm.Genlist.Item.Class; [[The item class for the item.]]
478 @in data: const(void_ptr); [[The item data.]]
479 @in parent: Elm.Widget.Item @nullable; [[The parent item, or $null if none.]]
480 @in type: Elm.Genlist.Item.Type; [[Item type.]]
481 @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
482 @in func_data: const(void_ptr) @optional; [[Data passed to $func above.]]
483 }
484 }
485 item_sorted_insert {
486 [[Insert a new item into the sorted genlist object
487
488 This inserts an item in the genlist based on user defined
489 comparison function. The two arguments passed to the function
490 $func are genlist item handles to compare.
491 ]]
492 return: Elm.Widget.Item; [[Handle to inserted item]]
493 params {
494 @cref itc: Elm.Genlist.Item.Class; [[The item class for the item.]]
495 @in data: const(void_ptr); [[The item data.]]
496 @in parent: Elm.Widget.Item @nullable; [[The parent item, or $null if none.]]
497 @in type: Elm.Genlist.Item.Type; [[Item type.]]
498 @in comp: Eina_Compare_Cb; [[The function called for the sort.]]
499 @in func: Evas_Smart_Cb @optional; [[Convenience function called when the item is selected.]]
500 @in func_data: const(void_ptr) @optional; [[Data passed to $func above.]]
501 }
502 }
503 search_by_text_item_get {
504 [[Get genlist item by given string.
505
506 It takes pointer to the genlist item that will be used to start
507 search from it.
508
509 This function uses globs (like "*.jpg") for searching and takes
510 search flags as last parameter That is a bitfield with values
511 to be ored together or 0 for no flags.
512
513 @since 1.11
514 ]]
515 return: Elm.Widget.Item; [[Searched item]]
516 params {
517 @in item_to_search_from: Elm.Widget.Item @optional; [[
518 Pointer to item to start search from. If $null, search
519 will be started from the first item of the genlist.
520 ]]
521 @in part_name: string; [[Name of the TEXT part of genlist item to search string in.]]
522 @in pattern: string; [[The search pattern.]]
523 @in flags: Elm.Glob.Match_Flags; [[Search flags.]]
524 }
525 }
526 }
527 implements {
528 class.constructor;
529 Efl.Object.constructor;
530 Efl.Gfx.Entity.position { set; }
531 Efl.Gfx.Entity.size { set; }
532 Efl.Canvas.Group.group_member_add;
533 Efl.Object.provider_find;
534 Efl.Ui.Widget.theme_apply;
535 Efl.Ui.Widget.widget_sub_object_add;
536 Efl.Ui.Widget.on_access_update;
537 Efl.Ui.Widget.focus_highlight_geometry { get; }
538 Efl.Ui.Focus.Object.on_focus_update;
539 Efl.Ui.Widget.widget_sub_object_del;
540 Efl.Ui.Widget.widget_input_event_handler;
541 Elm.Widget_Item_Container.focused_item { get; }
542 Elm.Interface_Scrollable.item_loop_enabled { get; set; }
543 Elm.Interface_Scrollable.bounce_allow { get; set; }
544 Elm.Interface_Scrollable.policy { get; set; }
545 Efl.Access.Object.access_children { get; }
546 Efl.Access.Object.state_set { get; }
547 Efl.Access.Widget.Action.elm_actions { get; }
548 Efl.Access.Selection.selected_children_count { get; }
549 Efl.Access.Selection.selected_child { get; }
550 Efl.Access.Selection.selected_child_deselect;
551 Efl.Access.Selection.child_select;
552 Efl.Access.Selection.child_deselect;
553 Efl.Access.Selection.is_child_selected;
554 Efl.Access.Selection.all_children_select;
555 Efl.Access.Selection.access_selection_clear;
556 Efl.Ui.Widget.focus_state_apply;
557 Efl.Ui.Focus.Manager.setup_on_first_touch;
558 Efl.Ui.Focus.Manager.manager_focus { get; }
559 Efl.Ui.Focus.Manager.move;
560 }
561 events {
562 item,focused: Efl.Object; [[Called when genlist item got focus]]
563 item,unfocused: Efl.Object; [[Called when genlist item lost focus]]
564 vbar,drag: void; [[Called when vertical bar is dragged]]
565 vbar,press: void; [[Called when vertical bar is pressed]]
566 vbar,unpress: void; [[Called when vertical bar is no longer pressed]]
567 hbar,drag: void; [[Called when horizontal bar is dragged]]
568 hbar,press: void; [[Called when horizontal bar is pressed]]
569 hbar,unpress: void; [[Called when horizontal bar is no longer pressed]]
570 edge,top: void; [[Called when top edge is reached]]
571 edge,bottom: void; [[Called when bottom edge is reached]]
572 edge,left: void; [[Called when left edge is reached]]
573 edge,right: void; [[Called when right edge is reached]]
574 moved: Efl.Object; [[Called when genlist item moved]]
575 moved,before: Efl.Object; [[Called when genlist item moved before]]
576 moved,after: Efl.Object; [[Called when genlist item moved after]]
577 swipe: Efl.Object; [[Called when swipe is detected]]
578 multi,pinch,in: Efl.Object; [[Called when multitouch pinch in detected]]
579 multi,pinch,out: Efl.Object; [[Called when multitouch pinch out detected]]
580 multi,swipe,down: Efl.Object; [[Called when multitouch swipe down detected]]
581 multi,swipe,up: Efl.Object; [[Called when multitouch swipe up detected]]
582 multi,swipe,right: Efl.Object; [[Called when multitouch swipe right detected]]
583 multi,swipe,left: Efl.Object; [[Called when multitouch swipe left detected]]
584 released: Efl.Object; [[Called when genlist is released]]
585 activated: Efl.Object; [[called when genlist is activated]]
586 highlighted: Efl.Object; [[Called when genlist is highlighted]]
587 unhighlighted: Efl.Object; [[Called when genlist is no longer highlighted]]
588 realized: Efl.Object; [[Called when genlist is realized]]
589 unrealized: Efl.Object; [[Called when genlist is unrealized]]
590 contract,request: Efl.Object; [[Called when contract is requested]]
591 expand,request: Efl.Object; [[Called when expand is requested]]
592 contracted: Efl.Object; [[called when genlist is contracted]]
593 expanded: Efl.Object; [[Called when genlist is expanded]]
594 index,update: Efl.Object; [[Called when genlist index updated]]
595 tree,effect,finished: void; [[Called when genlist tree effect finished]]
596 filter,done: void; [[Called when genlist filter is done]]
597 }
598}
diff --git a/src/lib/elementary/elm_genlist_eo.c b/src/lib/elementary/elm_genlist_eo.c
new file mode 100644
index 0000000..0ebe35f
--- /dev/null
+++ b/src/lib/elementary/elm_genlist_eo.c
@@ -0,0 +1,686 @@
1EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_FOCUSED =
2 EFL_EVENT_DESCRIPTION("item,focused");
3EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_UNFOCUSED =
4 EFL_EVENT_DESCRIPTION("item,unfocused");
5EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_DRAG =
6 EFL_EVENT_DESCRIPTION("vbar,drag");
7EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_PRESS =
8 EFL_EVENT_DESCRIPTION("vbar,press");
9EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_UNPRESS =
10 EFL_EVENT_DESCRIPTION("vbar,unpress");
11EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_DRAG =
12 EFL_EVENT_DESCRIPTION("hbar,drag");
13EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_PRESS =
14 EFL_EVENT_DESCRIPTION("hbar,press");
15EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_UNPRESS =
16 EFL_EVENT_DESCRIPTION("hbar,unpress");
17EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_TOP =
18 EFL_EVENT_DESCRIPTION("edge,top");
19EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_BOTTOM =
20 EFL_EVENT_DESCRIPTION("edge,bottom");
21EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_LEFT =
22 EFL_EVENT_DESCRIPTION("edge,left");
23EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_RIGHT =
24 EFL_EVENT_DESCRIPTION("edge,right");
25EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED =
26 EFL_EVENT_DESCRIPTION("moved");
27EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_BEFORE =
28 EFL_EVENT_DESCRIPTION("moved,before");
29EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_AFTER =
30 EFL_EVENT_DESCRIPTION("moved,after");
31EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_SWIPE =
32 EFL_EVENT_DESCRIPTION("swipe");
33EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_IN =
34 EFL_EVENT_DESCRIPTION("multi,pinch,in");
35EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_OUT =
36 EFL_EVENT_DESCRIPTION("multi,pinch,out");
37EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN =
38 EFL_EVENT_DESCRIPTION("multi,swipe,down");
39EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_UP =
40 EFL_EVENT_DESCRIPTION("multi,swipe,up");
41EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT =
42 EFL_EVENT_DESCRIPTION("multi,swipe,right");
43EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT =
44 EFL_EVENT_DESCRIPTION("multi,swipe,left");
45EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_RELEASED =
46 EFL_EVENT_DESCRIPTION("released");
47EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_ACTIVATED =
48 EFL_EVENT_DESCRIPTION("activated");
49EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_HIGHLIGHTED =
50 EFL_EVENT_DESCRIPTION("highlighted");
51EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_UNHIGHLIGHTED =
52 EFL_EVENT_DESCRIPTION("unhighlighted");
53EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_REALIZED =
54 EFL_EVENT_DESCRIPTION("realized");
55EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_UNREALIZED =
56 EFL_EVENT_DESCRIPTION("unrealized");
57EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACT_REQUEST =
58 EFL_EVENT_DESCRIPTION("contract,request");
59EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EXPAND_REQUEST =
60 EFL_EVENT_DESCRIPTION("expand,request");
61EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACTED =
62 EFL_EVENT_DESCRIPTION("contracted");
63EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_EXPANDED =
64 EFL_EVENT_DESCRIPTION("expanded");
65EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_INDEX_UPDATE =
66 EFL_EVENT_DESCRIPTION("index,update");
67EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED =
68 EFL_EVENT_DESCRIPTION("tree,effect,finished");
69EWAPI const Efl_Event_Description _ELM_GENLIST_EVENT_FILTER_DONE =
70 EFL_EVENT_DESCRIPTION("filter,done");
71
72void _elm_genlist_homogeneous_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool homogeneous);
73
74
75static Eina_Error
76__eolian_elm_genlist_homogeneous_set_reflect(Eo *obj, Eina_Value val)
77{
78 Eina_Error r = 0; Eina_Bool cval;
79 if (!eina_value_bool_convert(&val, &cval))
80 {
81 r = EINA_ERROR_VALUE_FAILED;
82 goto end;
83 }
84 elm_obj_genlist_homogeneous_set(obj, cval);
85 end:
86 eina_value_flush(&val);
87 return r;
88}
89
90EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_homogeneous_set, EFL_FUNC_CALL(homogeneous), Eina_Bool homogeneous);
91
92Eina_Bool _elm_genlist_homogeneous_get(const Eo *obj, Elm_Genlist_Data *pd);
93
94
95static Eina_Value
96__eolian_elm_genlist_homogeneous_get_reflect(Eo *obj)
97{
98 Eina_Bool val = elm_obj_genlist_homogeneous_get(obj);
99 return eina_value_bool_init(val);
100}
101
102EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_homogeneous_get, Eina_Bool, 0);
103
104void _elm_genlist_select_mode_set(Eo *obj, Elm_Genlist_Data *pd, Elm_Object_Select_Mode mode);
105
106EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_select_mode_set, EFL_FUNC_CALL(mode), Elm_Object_Select_Mode mode);
107
108Elm_Object_Select_Mode _elm_genlist_select_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
109
110EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_select_mode_get, Elm_Object_Select_Mode, 4 /* Elm.Object.Select_Mode.max */);
111
112void _elm_genlist_focus_on_selection_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool enabled);
113
114
115static Eina_Error
116__eolian_elm_genlist_focus_on_selection_set_reflect(Eo *obj, Eina_Value val)
117{
118 Eina_Error r = 0; Eina_Bool cval;
119 if (!eina_value_bool_convert(&val, &cval))
120 {
121 r = EINA_ERROR_VALUE_FAILED;
122 goto end;
123 }
124 elm_obj_genlist_focus_on_selection_set(obj, cval);
125 end:
126 eina_value_flush(&val);
127 return r;
128}
129
130EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_focus_on_selection_set, EFL_FUNC_CALL(enabled), Eina_Bool enabled);
131
132Eina_Bool _elm_genlist_focus_on_selection_get(const Eo *obj, Elm_Genlist_Data *pd);
133
134
135static Eina_Value
136__eolian_elm_genlist_focus_on_selection_get_reflect(Eo *obj)
137{
138 Eina_Bool val = elm_obj_genlist_focus_on_selection_get(obj);
139 return eina_value_bool_init(val);
140}
141
142EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_focus_on_selection_get, Eina_Bool, 0);
143
144void _elm_genlist_longpress_timeout_set(Eo *obj, Elm_Genlist_Data *pd, double timeout);
145
146
147static Eina_Error
148__eolian_elm_genlist_longpress_timeout_set_reflect(Eo *obj, Eina_Value val)
149{
150 Eina_Error r = 0; double cval;
151 if (!eina_value_double_convert(&val, &cval))
152 {
153 r = EINA_ERROR_VALUE_FAILED;
154 goto end;
155 }
156 elm_obj_genlist_longpress_timeout_set(obj, cval);
157 end:
158 eina_value_flush(&val);
159 return r;
160}
161
162EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_longpress_timeout_set, EFL_FUNC_CALL(timeout), double timeout);
163
164double _elm_genlist_longpress_timeout_get(const Eo *obj, Elm_Genlist_Data *pd);
165
166
167static Eina_Value
168__eolian_elm_genlist_longpress_timeout_get_reflect(Eo *obj)
169{
170 double val = elm_obj_genlist_longpress_timeout_get(obj);
171 return eina_value_double_init(val);
172}
173
174EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_longpress_timeout_get, double, 0);
175
176void _elm_genlist_multi_select_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool multi);
177
178
179static Eina_Error
180__eolian_elm_genlist_multi_select_set_reflect(Eo *obj, Eina_Value val)
181{
182 Eina_Error r = 0; Eina_Bool cval;
183 if (!eina_value_bool_convert(&val, &cval))
184 {
185 r = EINA_ERROR_VALUE_FAILED;
186 goto end;
187 }
188 elm_obj_genlist_multi_select_set(obj, cval);
189 end:
190 eina_value_flush(&val);
191 return r;
192}
193
194EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_multi_select_set, EFL_FUNC_CALL(multi), Eina_Bool multi);
195
196Eina_Bool _elm_genlist_multi_select_get(const Eo *obj, Elm_Genlist_Data *pd);
197
198
199static Eina_Value
200__eolian_elm_genlist_multi_select_get_reflect(Eo *obj)
201{
202 Eina_Bool val = elm_obj_genlist_multi_select_get(obj);
203 return eina_value_bool_init(val);
204}
205
206EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_multi_select_get, Eina_Bool, 0);
207
208void _elm_genlist_reorder_mode_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool reorder_mode);
209
210
211static Eina_Error
212__eolian_elm_genlist_reorder_mode_set_reflect(Eo *obj, Eina_Value val)
213{
214 Eina_Error r = 0; Eina_Bool cval;
215 if (!eina_value_bool_convert(&val, &cval))
216 {
217 r = EINA_ERROR_VALUE_FAILED;
218 goto end;
219 }
220 elm_obj_genlist_reorder_mode_set(obj, cval);
221 end:
222 eina_value_flush(&val);
223 return r;
224}
225
226EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_reorder_mode_set, EFL_FUNC_CALL(reorder_mode), Eina_Bool reorder_mode);
227
228Eina_Bool _elm_genlist_reorder_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
229
230
231static Eina_Value
232__eolian_elm_genlist_reorder_mode_get_reflect(Eo *obj)
233{
234 Eina_Bool val = elm_obj_genlist_reorder_mode_get(obj);
235 return eina_value_bool_init(val);
236}
237
238EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_reorder_mode_get, Eina_Bool, 0);
239
240void _elm_genlist_decorate_mode_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool decorated);
241
242
243static Eina_Error
244__eolian_elm_genlist_decorate_mode_set_reflect(Eo *obj, Eina_Value val)
245{
246 Eina_Error r = 0; Eina_Bool cval;
247 if (!eina_value_bool_convert(&val, &cval))
248 {
249 r = EINA_ERROR_VALUE_FAILED;
250 goto end;
251 }
252 elm_obj_genlist_decorate_mode_set(obj, cval);
253 end:
254 eina_value_flush(&val);
255 return r;
256}
257
258EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_decorate_mode_set, EFL_FUNC_CALL(decorated), Eina_Bool decorated);
259
260Eina_Bool _elm_genlist_decorate_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
261
262
263static Eina_Value
264__eolian_elm_genlist_decorate_mode_get_reflect(Eo *obj)
265{
266 Eina_Bool val = elm_obj_genlist_decorate_mode_get(obj);
267 return eina_value_bool_init(val);
268}
269
270EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_decorate_mode_get, Eina_Bool, 0);
271
272void _elm_genlist_multi_select_mode_set(Eo *obj, Elm_Genlist_Data *pd, Elm_Object_Multi_Select_Mode mode);
273
274EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_multi_select_mode_set, EFL_FUNC_CALL(mode), Elm_Object_Multi_Select_Mode mode);
275
276Elm_Object_Multi_Select_Mode _elm_genlist_multi_select_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
277
278EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_multi_select_mode_get, Elm_Object_Multi_Select_Mode, 2 /* Elm.Object.Multi_Select_Mode.max */);
279
280void _elm_genlist_block_count_set(Eo *obj, Elm_Genlist_Data *pd, int count);
281
282
283static Eina_Error
284__eolian_elm_genlist_block_count_set_reflect(Eo *obj, Eina_Value val)
285{
286 Eina_Error r = 0; int cval;
287 if (!eina_value_int_convert(&val, &cval))
288 {
289 r = EINA_ERROR_VALUE_FAILED;
290 goto end;
291 }
292 elm_obj_genlist_block_count_set(obj, cval);
293 end:
294 eina_value_flush(&val);
295 return r;
296}
297
298EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_block_count_set, EFL_FUNC_CALL(count), int count);
299
300int _elm_genlist_block_count_get(const Eo *obj, Elm_Genlist_Data *pd);
301
302
303static Eina_Value
304__eolian_elm_genlist_block_count_get_reflect(Eo *obj)
305{
306 int val = elm_obj_genlist_block_count_get(obj);
307 return eina_value_int_init(val);
308}
309
310EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_block_count_get, int, 0);
311
312void _elm_genlist_tree_effect_enabled_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool enabled);
313
314
315static Eina_Error
316__eolian_elm_genlist_tree_effect_enabled_set_reflect(Eo *obj, Eina_Value val)
317{
318 Eina_Error r = 0; Eina_Bool cval;
319 if (!eina_value_bool_convert(&val, &cval))
320 {
321 r = EINA_ERROR_VALUE_FAILED;
322 goto end;
323 }
324 elm_obj_genlist_tree_effect_enabled_set(obj, cval);
325 end:
326 eina_value_flush(&val);
327 return r;
328}
329
330EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_tree_effect_enabled_set, EFL_FUNC_CALL(enabled), Eina_Bool enabled);
331
332Eina_Bool _elm_genlist_tree_effect_enabled_get(const Eo *obj, Elm_Genlist_Data *pd);
333
334
335static Eina_Value
336__eolian_elm_genlist_tree_effect_enabled_get_reflect(Eo *obj)
337{
338 Eina_Bool val = elm_obj_genlist_tree_effect_enabled_get(obj);
339 return eina_value_bool_init(val);
340}
341
342EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_tree_effect_enabled_get, Eina_Bool, 0);
343
344void _elm_genlist_highlight_mode_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool highlight);
345
346
347static Eina_Error
348__eolian_elm_genlist_highlight_mode_set_reflect(Eo *obj, Eina_Value val)
349{
350 Eina_Error r = 0; Eina_Bool cval;
351 if (!eina_value_bool_convert(&val, &cval))
352 {
353 r = EINA_ERROR_VALUE_FAILED;
354 goto end;
355 }
356 elm_obj_genlist_highlight_mode_set(obj, cval);
357 end:
358 eina_value_flush(&val);
359 return r;
360}
361
362EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_highlight_mode_set, EFL_FUNC_CALL(highlight), Eina_Bool highlight);
363
364Eina_Bool _elm_genlist_highlight_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
365
366
367static Eina_Value
368__eolian_elm_genlist_highlight_mode_get_reflect(Eo *obj)
369{
370 Eina_Bool val = elm_obj_genlist_highlight_mode_get(obj);
371 return eina_value_bool_init(val);
372}
373
374EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_highlight_mode_get, Eina_Bool, 0);
375
376void _elm_genlist_mode_set(Eo *obj, Elm_Genlist_Data *pd, Elm_List_Mode mode);
377
378EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_mode_set, EFL_FUNC_CALL(mode), Elm_List_Mode mode);
379
380Elm_List_Mode _elm_genlist_mode_get(const Eo *obj, Elm_Genlist_Data *pd);
381
382EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_mode_get, Elm_List_Mode, 4 /* Elm.List.Mode.last */);
383
384Elm_Widget_Item *_elm_genlist_decorated_item_get(const Eo *obj, Elm_Genlist_Data *pd);
385
386EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_decorated_item_get, Elm_Widget_Item *, NULL);
387
388Elm_Widget_Item *_elm_genlist_selected_item_get(const Eo *obj, Elm_Genlist_Data *pd);
389
390EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_selected_item_get, Elm_Widget_Item *, NULL);
391
392Elm_Widget_Item *_elm_genlist_first_item_get(const Eo *obj, Elm_Genlist_Data *pd);
393
394EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_first_item_get, Elm_Widget_Item *, NULL);
395
396Eina_List *_elm_genlist_realized_items_get(const Eo *obj, Elm_Genlist_Data *pd);
397
398EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_realized_items_get, Eina_List *, NULL);
399
400const Eina_List *_elm_genlist_selected_items_get(const Eo *obj, Elm_Genlist_Data *pd);
401
402EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_selected_items_get, const Eina_List *, NULL);
403
404Elm_Widget_Item *_elm_genlist_last_item_get(const Eo *obj, Elm_Genlist_Data *pd);
405
406EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_last_item_get, Elm_Widget_Item *, NULL);
407
408Elm_Widget_Item *_elm_genlist_item_insert_before(Eo *obj, Elm_Genlist_Data *pd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
409
410EOAPI EFL_FUNC_BODYV(elm_obj_genlist_item_insert_before, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(itc, data, parent, before_it, type, func, func_data), const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
411
412void _elm_genlist_realized_items_update(Eo *obj, Elm_Genlist_Data *pd);
413
414EOAPI EFL_VOID_FUNC_BODY(elm_obj_genlist_realized_items_update);
415
416Elm_Widget_Item *_elm_genlist_item_insert_after(Eo *obj, Elm_Genlist_Data *pd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
417
418EOAPI EFL_FUNC_BODYV(elm_obj_genlist_item_insert_after, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(itc, data, parent, after_it, type, func, func_data), const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
419
420Elm_Widget_Item *_elm_genlist_at_xy_item_get(const Eo *obj, Elm_Genlist_Data *pd, int x, int y, int *posret);
421
422EOAPI EFL_FUNC_BODYV_CONST(elm_obj_genlist_at_xy_item_get, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(x, y, posret), int x, int y, int *posret);
423
424void _elm_genlist_filter_set(Eo *obj, Elm_Genlist_Data *pd, void *key);
425
426EOAPI EFL_VOID_FUNC_BODYV(elm_obj_genlist_filter_set, EFL_FUNC_CALL(key), void *key);
427
428Eina_Iterator *_elm_genlist_filter_iterator_new(Eo *obj, Elm_Genlist_Data *pd);
429
430EOAPI EFL_FUNC_BODY(elm_obj_genlist_filter_iterator_new, Eina_Iterator *, NULL);
431
432unsigned int _elm_genlist_filtered_items_count(const Eo *obj, Elm_Genlist_Data *pd);
433
434EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_filtered_items_count, unsigned int, 0);
435
436unsigned int _elm_genlist_items_count(const Eo *obj, Elm_Genlist_Data *pd);
437
438EOAPI EFL_FUNC_BODY_CONST(elm_obj_genlist_items_count, unsigned int, 0);
439
440Elm_Widget_Item *_elm_genlist_item_prepend(Eo *obj, Elm_Genlist_Data *pd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
441
442EOAPI EFL_FUNC_BODYV(elm_obj_genlist_item_prepend, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(itc, data, parent, type, func, func_data), const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
443
444void _elm_genlist_clear(Eo *obj, Elm_Genlist_Data *pd);
445
446EOAPI EFL_VOID_FUNC_BODY(elm_obj_genlist_clear);
447
448Elm_Widget_Item *_elm_genlist_item_append(Eo *obj, Elm_Genlist_Data *pd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
449
450EOAPI EFL_FUNC_BODYV(elm_obj_genlist_item_append, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(itc, data, parent, type, func, func_data), const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
451
452Elm_Widget_Item *_elm_genlist_item_sorted_insert(Eo *obj, Elm_Genlist_Data *pd, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
453
454EOAPI EFL_FUNC_BODYV(elm_obj_genlist_item_sorted_insert, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(itc, data, parent, type, comp, func, func_data), const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
455
456Elm_Widget_Item *_elm_genlist_search_by_text_item_get(Eo *obj, Elm_Genlist_Data *pd, Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags);
457
458EOAPI EFL_FUNC_BODYV(elm_obj_genlist_search_by_text_item_get, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(item_to_search_from, part_name, pattern, flags), Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags);
459
460Efl_Object *_elm_genlist_efl_object_constructor(Eo *obj, Elm_Genlist_Data *pd);
461
462
463void _elm_genlist_efl_gfx_entity_position_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Position2D pos);
464
465
466void _elm_genlist_efl_gfx_entity_size_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Size2D size);
467
468
469void _elm_genlist_efl_canvas_group_group_member_add(Eo *obj, Elm_Genlist_Data *pd, Efl_Canvas_Object *sub_obj);
470
471
472Efl_Object *_elm_genlist_efl_object_provider_find(const Eo *obj, Elm_Genlist_Data *pd, const Efl_Class *klass);
473
474
475Eina_Error _elm_genlist_efl_ui_widget_theme_apply(Eo *obj, Elm_Genlist_Data *pd);
476
477
478Eina_Bool _elm_genlist_efl_ui_widget_widget_sub_object_add(Eo *obj, Elm_Genlist_Data *pd, Efl_Canvas_Object *sub_obj);
479
480
481void _elm_genlist_efl_ui_widget_on_access_update(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool enable);
482
483
484Eina_Rect _elm_genlist_efl_ui_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Genlist_Data *pd);
485
486
487Eina_Bool _elm_genlist_efl_ui_focus_object_on_focus_update(Eo *obj, Elm_Genlist_Data *pd);
488
489
490Eina_Bool _elm_genlist_efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_Genlist_Data *pd, Efl_Canvas_Object *sub_obj);
491
492
493Eina_Bool _elm_genlist_efl_ui_widget_widget_input_event_handler(Eo *obj, Elm_Genlist_Data *pd, const Efl_Event *eo_event, Efl_Canvas_Object *source);
494
495
496Elm_Widget_Item *_elm_genlist_elm_widget_item_container_focused_item_get(const Eo *obj, Elm_Genlist_Data *pd);
497
498
499void _elm_genlist_elm_interface_scrollable_item_loop_enabled_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool enable);
500
501
502Eina_Bool _elm_genlist_elm_interface_scrollable_item_loop_enabled_get(const Eo *obj, Elm_Genlist_Data *pd);
503
504
505void _elm_genlist_elm_interface_scrollable_bounce_allow_set(Eo *obj, Elm_Genlist_Data *pd, Eina_Bool horiz, Eina_Bool vert);
506
507
508void _elm_genlist_elm_interface_scrollable_bounce_allow_get(const Eo *obj, Elm_Genlist_Data *pd, Eina_Bool *horiz, Eina_Bool *vert);
509
510
511void _elm_genlist_elm_interface_scrollable_policy_set(Eo *obj, Elm_Genlist_Data *pd, Elm_Scroller_Policy hbar, Elm_Scroller_Policy vbar);
512
513
514void _elm_genlist_elm_interface_scrollable_policy_get(const Eo *obj, Elm_Genlist_Data *pd, Elm_Scroller_Policy *hbar, Elm_Scroller_Policy *vbar);
515
516
517Eina_List *_elm_genlist_efl_access_object_access_children_get(const Eo *obj, Elm_Genlist_Data *pd);
518
519
520Efl_Access_State_Set _elm_genlist_efl_access_object_state_set_get(const Eo *obj, Elm_Genlist_Data *pd);
521
522
523const Efl_Access_Action_Data *_elm_genlist_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Genlist_Data *pd);
524
525
526int _elm_genlist_efl_access_selection_selected_children_count_get(const Eo *obj, Elm_Genlist_Data *pd);
527
528
529Efl_Object *_elm_genlist_efl_access_selection_selected_child_get(const Eo *obj, Elm_Genlist_Data *pd, int selected_child_index);
530
531
532Eina_Bool _elm_genlist_efl_access_selection_selected_child_deselect(Eo *obj, Elm_Genlist_Data *pd, int child_index);
533
534
535Eina_Bool _elm_genlist_efl_access_selection_child_select(Eo *obj, Elm_Genlist_Data *pd, int child_index);
536
537
538Eina_Bool _elm_genlist_efl_access_selection_child_deselect(Eo *obj, Elm_Genlist_Data *pd, int child_index);
539
540
541Eina_Bool _elm_genlist_efl_access_selection_is_child_selected(Eo *obj, Elm_Genlist_Data *pd, int child_index);
542
543
544Eina_Bool _elm_genlist_efl_access_selection_all_children_select(Eo *obj, Elm_Genlist_Data *pd);
545
546
547Eina_Bool _elm_genlist_efl_access_selection_access_selection_clear(Eo *obj, Elm_Genlist_Data *pd);
548
549
550Eina_Bool _elm_genlist_efl_ui_widget_focus_state_apply(Eo *obj, Elm_Genlist_Data *pd, Efl_Ui_Widget_Focus_State current_state, Efl_Ui_Widget_Focus_State *configured_state, Efl_Ui_Widget *redirect);
551
552
553void _elm_genlist_efl_ui_focus_manager_setup_on_first_touch(Eo *obj, Elm_Genlist_Data *pd, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *entry);
554
555
556Efl_Ui_Focus_Object *_elm_genlist_efl_ui_focus_manager_manager_focus_get(const Eo *obj, Elm_Genlist_Data *pd);
557
558
559Efl_Ui_Focus_Object *_elm_genlist_efl_ui_focus_manager_move(Eo *obj, Elm_Genlist_Data *pd, Efl_Ui_Focus_Direction direction);
560
561
562static Eina_Bool
563_elm_genlist_class_initializer(Efl_Class *klass)
564{
565 const Efl_Object_Ops *opsp = NULL;
566
567 const Efl_Object_Property_Reflection_Ops *ropsp = NULL;
568
569#ifndef ELM_GENLIST_EXTRA_OPS
570#define ELM_GENLIST_EXTRA_OPS
571#endif
572
573 EFL_OPS_DEFINE(ops,
574 EFL_OBJECT_OP_FUNC(elm_obj_genlist_homogeneous_set, _elm_genlist_homogeneous_set),
575 EFL_OBJECT_OP_FUNC(elm_obj_genlist_homogeneous_get, _elm_genlist_homogeneous_get),
576 EFL_OBJECT_OP_FUNC(elm_obj_genlist_select_mode_set, _elm_genlist_select_mode_set),
577 EFL_OBJECT_OP_FUNC(elm_obj_genlist_select_mode_get, _elm_genlist_select_mode_get),
578 EFL_OBJECT_OP_FUNC(elm_obj_genlist_focus_on_selection_set, _elm_genlist_focus_on_selection_set),
579 EFL_OBJECT_OP_FUNC(elm_obj_genlist_focus_on_selection_get, _elm_genlist_focus_on_selection_get),
580 EFL_OBJECT_OP_FUNC(elm_obj_genlist_longpress_timeout_set, _elm_genlist_longpress_timeout_set),
581 EFL_OBJECT_OP_FUNC(elm_obj_genlist_longpress_timeout_get, _elm_genlist_longpress_timeout_get),
582 EFL_OBJECT_OP_FUNC(elm_obj_genlist_multi_select_set, _elm_genlist_multi_select_set),
583 EFL_OBJECT_OP_FUNC(elm_obj_genlist_multi_select_get, _elm_genlist_multi_select_get),
584 EFL_OBJECT_OP_FUNC(elm_obj_genlist_reorder_mode_set, _elm_genlist_reorder_mode_set),
585 EFL_OBJECT_OP_FUNC(elm_obj_genlist_reorder_mode_get, _elm_genlist_reorder_mode_get),
586 EFL_OBJECT_OP_FUNC(elm_obj_genlist_decorate_mode_set, _elm_genlist_decorate_mode_set),
587 EFL_OBJECT_OP_FUNC(elm_obj_genlist_decorate_mode_get, _elm_genlist_decorate_mode_get),
588 EFL_OBJECT_OP_FUNC(elm_obj_genlist_multi_select_mode_set, _elm_genlist_multi_select_mode_set),
589 EFL_OBJECT_OP_FUNC(elm_obj_genlist_multi_select_mode_get, _elm_genlist_multi_select_mode_get),
590 EFL_OBJECT_OP_FUNC(elm_obj_genlist_block_count_set, _elm_genlist_block_count_set),
591 EFL_OBJECT_OP_FUNC(elm_obj_genlist_block_count_get, _elm_genlist_block_count_get),
592 EFL_OBJECT_OP_FUNC(elm_obj_genlist_tree_effect_enabled_set, _elm_genlist_tree_effect_enabled_set),
593 EFL_OBJECT_OP_FUNC(elm_obj_genlist_tree_effect_enabled_get, _elm_genlist_tree_effect_enabled_get),
594 EFL_OBJECT_OP_FUNC(elm_obj_genlist_highlight_mode_set, _elm_genlist_highlight_mode_set),
595 EFL_OBJECT_OP_FUNC(elm_obj_genlist_highlight_mode_get, _elm_genlist_highlight_mode_get),
596 EFL_OBJECT_OP_FUNC(elm_obj_genlist_mode_set, _elm_genlist_mode_set),
597 EFL_OBJECT_OP_FUNC(elm_obj_genlist_mode_get, _elm_genlist_mode_get),
598 EFL_OBJECT_OP_FUNC(elm_obj_genlist_decorated_item_get, _elm_genlist_decorated_item_get),
599 EFL_OBJECT_OP_FUNC(elm_obj_genlist_selected_item_get, _elm_genlist_selected_item_get),
600 EFL_OBJECT_OP_FUNC(elm_obj_genlist_first_item_get, _elm_genlist_first_item_get),
601 EFL_OBJECT_OP_FUNC(elm_obj_genlist_realized_items_get, _elm_genlist_realized_items_get),
602 EFL_OBJECT_OP_FUNC(elm_obj_genlist_selected_items_get, _elm_genlist_selected_items_get),
603 EFL_OBJECT_OP_FUNC(elm_obj_genlist_last_item_get, _elm_genlist_last_item_get),
604 EFL_OBJECT_OP_FUNC(elm_obj_genlist_item_insert_before, _elm_genlist_item_insert_before),
605 EFL_OBJECT_OP_FUNC(elm_obj_genlist_realized_items_update, _elm_genlist_realized_items_update),
606 EFL_OBJECT_OP_FUNC(elm_obj_genlist_item_insert_after, _elm_genlist_item_insert_after),
607 EFL_OBJECT_OP_FUNC(elm_obj_genlist_at_xy_item_get, _elm_genlist_at_xy_item_get),
608 EFL_OBJECT_OP_FUNC(elm_obj_genlist_filter_set, _elm_genlist_filter_set),
609 EFL_OBJECT_OP_FUNC(elm_obj_genlist_filter_iterator_new, _elm_genlist_filter_iterator_new),
610 EFL_OBJECT_OP_FUNC(elm_obj_genlist_filtered_items_count, _elm_genlist_filtered_items_count),
611 EFL_OBJECT_OP_FUNC(elm_obj_genlist_items_count, _elm_genlist_items_count),
612 EFL_OBJECT_OP_FUNC(elm_obj_genlist_item_prepend, _elm_genlist_item_prepend),
613 EFL_OBJECT_OP_FUNC(elm_obj_genlist_clear, _elm_genlist_clear),
614 EFL_OBJECT_OP_FUNC(elm_obj_genlist_item_append, _elm_genlist_item_append),
615 EFL_OBJECT_OP_FUNC(elm_obj_genlist_item_sorted_insert, _elm_genlist_item_sorted_insert),
616 EFL_OBJECT_OP_FUNC(elm_obj_genlist_search_by_text_item_get, _elm_genlist_search_by_text_item_get),
617 EFL_OBJECT_OP_FUNC(efl_constructor, _elm_genlist_efl_object_constructor),
618 EFL_OBJECT_OP_FUNC(efl_gfx_entity_position_set, _elm_genlist_efl_gfx_entity_position_set),
619 EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, _elm_genlist_efl_gfx_entity_size_set),
620 EFL_OBJECT_OP_FUNC(efl_canvas_group_member_add, _elm_genlist_efl_canvas_group_group_member_add),
621 EFL_OBJECT_OP_FUNC(efl_provider_find, _elm_genlist_efl_object_provider_find),
622 EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_genlist_efl_ui_widget_theme_apply),
623 EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_add, _elm_genlist_efl_ui_widget_widget_sub_object_add),
624 EFL_OBJECT_OP_FUNC(efl_ui_widget_on_access_update, _elm_genlist_efl_ui_widget_on_access_update),
625 EFL_OBJECT_OP_FUNC(efl_ui_widget_focus_highlight_geometry_get, _elm_genlist_efl_ui_widget_focus_highlight_geometry_get),
626 EFL_OBJECT_OP_FUNC(efl_ui_focus_object_on_focus_update, _elm_genlist_efl_ui_focus_object_on_focus_update),
627 EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_del, _elm_genlist_efl_ui_widget_widget_sub_object_del),
628 EFL_OBJECT_OP_FUNC(efl_ui_widget_input_event_handler, _elm_genlist_efl_ui_widget_widget_input_event_handler),
629 EFL_OBJECT_OP_FUNC(elm_widget_item_container_focused_item_get, _elm_genlist_elm_widget_item_container_focused_item_get),
630 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_item_loop_enabled_set, _elm_genlist_elm_interface_scrollable_item_loop_enabled_set),
631 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_item_loop_enabled_get, _elm_genlist_elm_interface_scrollable_item_loop_enabled_get),
632 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_bounce_allow_set, _elm_genlist_elm_interface_scrollable_bounce_allow_set),
633 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_bounce_allow_get, _elm_genlist_elm_interface_scrollable_bounce_allow_get),
634 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_set, _elm_genlist_elm_interface_scrollable_policy_set),
635 EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_get, _elm_genlist_elm_interface_scrollable_policy_get),
636 EFL_OBJECT_OP_FUNC(efl_access_object_access_children_get, _elm_genlist_efl_access_object_access_children_get),
637 EFL_OBJECT_OP_FUNC(efl_access_object_state_set_get, _elm_genlist_efl_access_object_state_set_get),
638 EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_genlist_efl_access_widget_action_elm_actions_get),
639 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_children_count_get, _elm_genlist_efl_access_selection_selected_children_count_get),
640 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_child_get, _elm_genlist_efl_access_selection_selected_child_get),
641 EFL_OBJECT_OP_FUNC(efl_access_selection_selected_child_deselect, _elm_genlist_efl_access_selection_selected_child_deselect),
642 EFL_OBJECT_OP_FUNC(efl_access_selection_child_select, _elm_genlist_efl_access_selection_child_select),
643 EFL_OBJECT_OP_FUNC(efl_access_selection_child_deselect, _elm_genlist_efl_access_selection_child_deselect),
644 EFL_OBJECT_OP_FUNC(efl_access_selection_is_child_selected, _elm_genlist_efl_access_selection_is_child_selected),
645 EFL_OBJECT_OP_FUNC(efl_access_selection_all_children_select, _elm_genlist_efl_access_selection_all_children_select),
646 EFL_OBJECT_OP_FUNC(efl_access_selection_clear, _elm_genlist_efl_access_selection_access_selection_clear),
647 EFL_OBJECT_OP_FUNC(efl_ui_widget_focus_state_apply, _elm_genlist_efl_ui_widget_focus_state_apply),
648 EFL_OBJECT_OP_FUNC(efl_ui_focus_manager_setup_on_first_touch, _elm_genlist_efl_ui_focus_manager_setup_on_first_touch),
649 EFL_OBJECT_OP_FUNC(efl_ui_focus_manager_focus_get, _elm_genlist_efl_ui_focus_manager_manager_focus_get),
650 EFL_OBJECT_OP_FUNC(efl_ui_focus_manager_move, _elm_genlist_efl_ui_focus_manager_move),
651 ELM_GENLIST_EXTRA_OPS
652 );
653 opsp = &ops;
654
655 static const Efl_Object_Property_Reflection refl_table[] = {
656 {"homogeneous", __eolian_elm_genlist_homogeneous_set_reflect, __eolian_elm_genlist_homogeneous_get_reflect},
657 {"focus_on_selection", __eolian_elm_genlist_focus_on_selection_set_reflect, __eolian_elm_genlist_focus_on_selection_get_reflect},
658 {"longpress_timeout", __eolian_elm_genlist_longpress_timeout_set_reflect, __eolian_elm_genlist_longpress_timeout_get_reflect},
659 {"multi_select", __eolian_elm_genlist_multi_select_set_reflect, __eolian_elm_genlist_multi_select_get_reflect},
660 {"reorder_mode", __eolian_elm_genlist_reorder_mode_set_reflect, __eolian_elm_genlist_reorder_mode_get_reflect},
661 {"decorate_mode", __eolian_elm_genlist_decorate_mode_set_reflect, __eolian_elm_genlist_decorate_mode_get_reflect},
662 {"block_count", __eolian_elm_genlist_block_count_set_reflect, __eolian_elm_genlist_block_count_get_reflect},
663 {"tree_effect_enabled", __eolian_elm_genlist_tree_effect_enabled_set_reflect, __eolian_elm_genlist_tree_effect_enabled_get_reflect},
664 {"highlight_mode", __eolian_elm_genlist_highlight_mode_set_reflect, __eolian_elm_genlist_highlight_mode_get_reflect},
665 };
666 static const Efl_Object_Property_Reflection_Ops rops = {
667 refl_table, EINA_C_ARRAY_LENGTH(refl_table)
668 };
669 ropsp = &rops;
670
671 return efl_class_functions_set(klass, opsp, ropsp);
672}
673
674static const Efl_Class_Description _elm_genlist_class_desc = {
675 EO_VERSION,
676 "Elm.Genlist",
677 EFL_CLASS_TYPE_REGULAR,
678 sizeof(Elm_Genlist_Data),
679 _elm_genlist_class_initializer,
680 _elm_genlist_class_constructor,
681 NULL
682};
683
684EFL_DEFINE_CLASS(elm_genlist_class_get, &_elm_genlist_class_desc, EFL_UI_LAYOUT_BASE_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_UI_CLICKABLE_INTERFACE, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_ACCESS_SELECTION_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, ELM_WIDGET_ITEM_CONTAINER_INTERFACE, NULL);
685
686#include "elm_genlist_eo.legacy.c"
diff --git a/src/lib/elementary/elm_genlist_eo.h b/src/lib/elementary/elm_genlist_eo.h
new file mode 100644
index 0000000..f132027
--- /dev/null
+++ b/src/lib/elementary/elm_genlist_eo.h
@@ -0,0 +1,1014 @@
1#ifndef _ELM_GENLIST_EO_H_
2#define _ELM_GENLIST_EO_H_
3
4#ifndef _ELM_GENLIST_EO_CLASS_TYPE
5#define _ELM_GENLIST_EO_CLASS_TYPE
6
7typedef Eo Elm_Genlist;
8
9#endif
10
11#ifndef _ELM_GENLIST_EO_TYPES
12#define _ELM_GENLIST_EO_TYPES
13
14
15#endif
16/** Elementary genlist class
17 *
18 * @ingroup Elm_Genlist
19 */
20#define ELM_GENLIST_CLASS elm_genlist_class_get()
21
22EWAPI const Efl_Class *elm_genlist_class_get(void);
23
24/**
25 * @brief Enable/disable homogeneous mode.
26 *
27 * This will enable the homogeneous mode where items are of the same height and
28 * width so that genlist may do the lazy-loading at its maximum (which
29 * increases the performance for scrolling the list). In the normal mode,
30 * genlist will pre-calculate all the items' sizes even though they are not in
31 * use. So items' callbacks are called many times than expected. But
32 * homogeneous mode will skip the item size pre-calculation process so items'
33 * callbacks are called only when the item is needed.
34 *
35 * @note This also works well with group index.
36 *
37 * @param[in] obj The object.
38 * @param[in] homogeneous Assume the items within the genlist are of the same
39 * height and width. Default is @c false.
40 *
41 * @ingroup Elm_Genlist
42 */
43EOAPI void elm_obj_genlist_homogeneous_set(Eo *obj, Eina_Bool homogeneous);
44
45/**
46 * @brief Get whether the homogeneous mode is enabled.
47 *
48 * @param[in] obj The object.
49 *
50 * @return Assume the items within the genlist are of the same height and
51 * width. Default is @c false.
52 *
53 * @ingroup Elm_Genlist
54 */
55EOAPI Eina_Bool elm_obj_genlist_homogeneous_get(const Eo *obj);
56
57/**
58 * @brief Set the genlist select mode.
59 *
60 * #ELM_OBJECT_SELECT_MODE_DEFAULT means that items will call their selection
61 * func and callback once when first becoming selected. Any further clicks will
62 * do nothing, unless you set always select mode. ELM_OBJECT_SELECT_MODE_ALWAYS
63 * means that even if selected, every click will make the selected callbacks be
64 * called. #ELM_OBJECT_SELECT_MODE_NONE will turn off the ability to select
65 * items entirely and they will neither appear selected nor call selected
66 * callback functions.
67 *
68 * @param[in] obj The object.
69 * @param[in] mode The select mode.
70 *
71 * @ingroup Elm_Genlist
72 */
73EOAPI void elm_obj_genlist_select_mode_set(Eo *obj, Elm_Object_Select_Mode mode);
74
75/**
76 * @brief Get the genlist select mode.
77 *
78 * @param[in] obj The object.
79 *
80 * @return The select mode.
81 *
82 * @ingroup Elm_Genlist
83 */
84EOAPI Elm_Object_Select_Mode elm_obj_genlist_select_mode_get(const Eo *obj);
85
86/**
87 * @brief Set focus upon items selection mode
88 *
89 * When enabled, every selection of an item inside the genlist will
90 * automatically set focus to its first focusable widget from the left. This is
91 * true of course if the selection was made by clicking an unfocusable area in
92 * an item or selecting it with a key movement. Clicking on a focusable widget
93 * inside an item will cause this particular item to get focus as usual.
94 *
95 * @param[in] obj The object.
96 * @param[in] enabled The tree effect status.
97 *
98 * @ingroup Elm_Genlist
99 */
100EOAPI void elm_obj_genlist_focus_on_selection_set(Eo *obj, Eina_Bool enabled);
101
102/**
103 * @brief Get whether focus upon item's selection mode is enabled.
104 *
105 * @param[in] obj The object.
106 *
107 * @return The tree effect status.
108 *
109 * @ingroup Elm_Genlist
110 */
111EOAPI Eina_Bool elm_obj_genlist_focus_on_selection_get(const Eo *obj);
112
113/**
114 * @brief Set the timeout in seconds for the longpress event.
115 *
116 * This option will change how long it takes to send an event "longpressed"
117 * after the mouse down signal is sent to the list. If this event occurs, no
118 * "clicked" event will be sent.
119 *
120 * @warning If you set the longpress timeout value with this API, your genlist
121 * will not be affected by the longpress value of elementary config value
122 * later.
123 *
124 * @param[in] obj The object.
125 * @param[in] timeout Timeout in seconds. Default is elm config value (1.0).
126 *
127 * @ingroup Elm_Genlist
128 */
129EOAPI void elm_obj_genlist_longpress_timeout_set(Eo *obj, double timeout);
130
131/**
132 * @brief Get the timeout in seconds for the longpress event.
133 *
134 * @param[in] obj The object.
135 *
136 * @return Timeout in seconds. Default is elm config value (1.0).
137 *
138 * @ingroup Elm_Genlist
139 */
140EOAPI double elm_obj_genlist_longpress_timeout_get(const Eo *obj);
141
142/**
143 * @brief Enable or disable multi-selection in the genlist.
144 *
145 * This enables ($true) or disables ($false) multi-selection in the list. This
146 * allows more than 1 item to be selected. To retrieve the list of selected
147 * items, use @ref elm_obj_genlist_selected_items_get.
148 *
149 * @param[in] obj The object.
150 * @param[in] multi Multi-select enable/disable. Default is disabled.
151 *
152 * @ingroup Elm_Genlist
153 */
154EOAPI void elm_obj_genlist_multi_select_set(Eo *obj, Eina_Bool multi);
155
156/**
157 * @brief Get if multi-selection in genlist is enabled or disabled.
158 *
159 * @param[in] obj The object.
160 *
161 * @return Multi-select enable/disable. Default is disabled.
162 *
163 * @ingroup Elm_Genlist
164 */
165EOAPI Eina_Bool elm_obj_genlist_multi_select_get(const Eo *obj);
166
167/**
168 * @brief Set reorder mode.
169 *
170 * After turning on the reorder mode, longpress on normal item will trigger
171 * reordering of the item. You can move the item up and down. However, reorder
172 * does not work with group item.
173 *
174 * @param[in] obj The object.
175 * @param[in] reorder_mode The reorder mode.
176 *
177 * @ingroup Elm_Genlist
178 */
179EOAPI void elm_obj_genlist_reorder_mode_set(Eo *obj, Eina_Bool reorder_mode);
180
181/**
182 * @brief Get the reorder mode.
183 *
184 * @param[in] obj The object.
185 *
186 * @return The reorder mode.
187 *
188 * @ingroup Elm_Genlist
189 */
190EOAPI Eina_Bool elm_obj_genlist_reorder_mode_get(const Eo *obj);
191
192/**
193 * @brief Set Genlist decorate mode.
194 *
195 * This sets Genlist decorate mode to all items.
196 *
197 * @param[in] obj The object.
198 * @param[in] decorated The decorate mode status.
199 *
200 * @ingroup Elm_Genlist
201 */
202EOAPI void elm_obj_genlist_decorate_mode_set(Eo *obj, Eina_Bool decorated);
203
204/**
205 * @brief Get Genlist decorate mode.
206 *
207 * @param[in] obj The object.
208 *
209 * @return The decorate mode status.
210 *
211 * @ingroup Elm_Genlist
212 */
213EOAPI Eina_Bool elm_obj_genlist_decorate_mode_get(const Eo *obj);
214
215/**
216 * @brief Set the genlist multi select mode.
217 *
218 * #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT means that select/unselect items
219 * whenever each item is clicked. #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
220 * means that only one item will be selected although multi-selection is
221 * enabled, if clicked without pressing control key. This mode is only
222 * available with multi-selection.
223 *
224 * @param[in] obj The object.
225 * @param[in] mode The multi select mode
226 *
227 * @since 1.8
228 *
229 * @ingroup Elm_Genlist
230 */
231EOAPI void elm_obj_genlist_multi_select_mode_set(Eo *obj, Elm_Object_Multi_Select_Mode mode);
232
233/**
234 * @brief Get the genlist multi select mode.
235 *
236 * @param[in] obj The object.
237 *
238 * @return The multi select mode
239 *
240 * @since 1.8
241 *
242 * @ingroup Elm_Genlist
243 */
244EOAPI Elm_Object_Multi_Select_Mode elm_obj_genlist_multi_select_mode_get(const Eo *obj);
245
246/**
247 * @brief Set the maximum number of items within an item block.
248 *
249 * This will configure the block count to tune to the target with particular
250 * performance matrix.
251 *
252 * A block of objects will be used to reduce the number of operations due to
253 * many objects in the screen. It can determine the visibility, or if the
254 * object has changed, it theme needs to be updated, etc. doing this kind of
255 * calculation to the entire block, instead of per object.
256 *
257 * The default value for the block count is enough for most lists, so unless
258 * you know you will have a lot of objects visible in the screen at the same
259 * time, don't try to change this.
260 *
261 * @param[in] obj The object.
262 * @param[in] count Maximum number of items within an item block. Default is
263 * 32.
264 *
265 * @ingroup Elm_Genlist
266 */
267EOAPI void elm_obj_genlist_block_count_set(Eo *obj, int count);
268
269/**
270 * @brief Get the maximum number of items within an item block.
271 *
272 * @param[in] obj The object.
273 *
274 * @return Maximum number of items within an item block. Default is 32.
275 *
276 * @ingroup Elm_Genlist
277 */
278EOAPI int elm_obj_genlist_block_count_get(const Eo *obj);
279
280/**
281 * @brief Control genlist tree effect.
282 *
283 * @param[in] obj The object.
284 * @param[in] enabled The tree effect status.
285 *
286 * @ingroup Elm_Genlist
287 */
288EOAPI void elm_obj_genlist_tree_effect_enabled_set(Eo *obj, Eina_Bool enabled);
289
290/**
291 * @brief Control genlist tree effect.
292 *
293 * @param[in] obj The object.
294 *
295 * @return The tree effect status.
296 *
297 * @ingroup Elm_Genlist
298 */
299EOAPI Eina_Bool elm_obj_genlist_tree_effect_enabled_get(const Eo *obj);
300
301/**
302 * @brief Set whether the genlist items should be highlighted on item
303 * selection.
304 *
305 * This will turn on/off the highlight effect on item selection. The selected
306 * and clicked callback functions will still be called.
307 *
308 * Highlight is enabled by default.
309 *
310 * @param[in] obj The object.
311 * @param[in] highlight @c true to enable highlighting or @c false to disable
312 * it.
313 *
314 * @ingroup Elm_Genlist
315 */
316EOAPI void elm_obj_genlist_highlight_mode_set(Eo *obj, Eina_Bool highlight);
317
318/**
319 * @brief Get whether the genlist items' should be highlighted when item
320 * selected.
321 *
322 * @param[in] obj The object.
323 *
324 * @return @c true to enable highlighting or @c false to disable it.
325 *
326 * @ingroup Elm_Genlist
327 */
328EOAPI Eina_Bool elm_obj_genlist_highlight_mode_get(const Eo *obj);
329
330/**
331 * @brief This sets the horizontal stretching mode.
332 *
333 * This sets the mode used for sizing items horizontally. Valid modes are
334 * @ref ELM_LIST_LIMIT, @ref ELM_LIST_SCROLL, and @ref ELM_LIST_COMPRESS. The
335 * default is @ref ELM_LIST_SCROLL. This mode means that if items are too wide
336 * to fit, the scroller will scroll horizontally. Otherwise items are expanded
337 * to fill the width of the viewport of the scroller. If it is
338 * @ref ELM_LIST_LIMIT, items will be expanded to the viewport width and
339 * limited to that size. If it is @ref ELM_LIST_COMPRESS, the item width will
340 * be fixed (restricted to a minimum of) to the list width when calculating its
341 * size in order to allow the height to be calculated based on it. This allows,
342 * for instance, text block to wrap lines if the Edje part is configured with
343 * "text.min: 0 1".
344 *
345 * @note @ref ELM_LIST_COMPRESS will make list resize slower as it will have to
346 * recalculate every item height again whenever the list width changes!
347 *
348 * @note Homogeneous mode gives all items in the genlist the same width/height.
349 * With @ref ELM_LIST_COMPRESS, genlist items initialize fast, but there cannot
350 * be any sub-objects in the genlist which require on-the-fly resizing (such as
351 * TEXTBLOCK). In this case some dynamic resizable objects in the genlist might
352 * not diplay properly.
353 *
354 * @param[in] obj The object.
355 * @param[in] mode The mode to use (one of @ref ELM_LIST_SCROLL or
356 * @ref ELM_LIST_LIMIT).
357 *
358 * @ingroup Elm_Genlist
359 */
360EOAPI void elm_obj_genlist_mode_set(Eo *obj, Elm_List_Mode mode);
361
362/**
363 * @brief Get the horizontal stretching mode.
364 *
365 * @param[in] obj The object.
366 *
367 * @return The mode to use (one of @ref ELM_LIST_SCROLL or
368 * @ref ELM_LIST_LIMIT).
369 *
370 * @ingroup Elm_Genlist
371 */
372EOAPI Elm_List_Mode elm_obj_genlist_mode_get(const Eo *obj);
373
374/**
375 * @brief Get active genlist mode item.
376 *
377 * This function returns the item that was activated with a mode, by the
378 * function @ref elm_obj_genlist_decorate_mode_set.
379 *
380 * @param[in] obj The object.
381 *
382 * @return The active item for that current mode. Or @c null if no item is
383 * activated with any mode.
384 *
385 * @ingroup Elm_Genlist
386 */
387EOAPI Elm_Widget_Item *elm_obj_genlist_decorated_item_get(const Eo *obj);
388
389/**
390 * @brief Get the selected item in the genlist.
391 *
392 * This gets the selected item in the list (if multi-selection is enabled, only
393 * the item that was first selected in the list is returned - which is not very
394 * useful, so see @ref elm_obj_genlist_selected_items_get for when
395 * multi-selection is used).
396 *
397 * If no item is selected, @c null is returned.
398 *
399 * @param[in] obj The object.
400 *
401 * @return The selected item, or @c null if none is selected.
402 *
403 * @ingroup Elm_Genlist
404 */
405EOAPI Elm_Widget_Item *elm_obj_genlist_selected_item_get(const Eo *obj);
406
407/**
408 * @brief Get the first item in the genlist.
409 *
410 * This returns the first item in the list.
411 *
412 * If filter is set on genlist, it returns the first filtered item in the list.
413 *
414 * @param[in] obj The object.
415 *
416 * @return The first item or @c null.
417 *
418 * @ingroup Elm_Genlist
419 */
420EOAPI Elm_Widget_Item *elm_obj_genlist_first_item_get(const Eo *obj);
421
422/**
423 * @brief Get a list of realized items in genlist.
424 *
425 * This returns a list of the realized items in the genlist. The list contains
426 * genlist item pointers. The list must be freed by the caller when done with
427 * @ref eina_list_free. The item pointers in the list are only valid so long as
428 * those items are not deleted or the genlist is not deleted.
429 *
430 * @param[in] obj The object.
431 *
432 * @return List of realized items
433 *
434 * @ingroup Elm_Genlist
435 */
436EOAPI Eina_List *elm_obj_genlist_realized_items_get(const Eo *obj) EINA_WARN_UNUSED_RESULT;
437
438/**
439 * @brief Get a list of selected items in the genlist.
440 *
441 * It returns a list of the selected items. This list pointer is only valid so
442 * long as the selection doesn't change (no items are selected or unselected,
443 * or unselected implicitl by deletion). The list contains genlist items
444 * pointers. The order of the items in this list is the order which they were
445 * selected, i.e. the first item in this list is the first item that was
446 * selected, and so on.
447 *
448 * @note If not in multi-select mode, consider using function
449 * @ref elm_obj_genlist_selected_item_get instead.
450 *
451 * @param[in] obj The object.
452 *
453 * @return List of selected items
454 *
455 * @ingroup Elm_Genlist
456 */
457EOAPI const Eina_List *elm_obj_genlist_selected_items_get(const Eo *obj);
458
459/**
460 * @brief Get the last item in the genlist
461 *
462 * This returns the last item in the list.
463 *
464 * If filter is set to genlist, it returns last filtered item in the list.
465 *
466 * @param[in] obj The object.
467 *
468 * @return Last item in list
469 *
470 * @ingroup Elm_Genlist
471 */
472EOAPI Elm_Widget_Item *elm_obj_genlist_last_item_get(const Eo *obj);
473
474/**
475 * @brief Insert an item before another in a genlist widget
476 *
477 * This inserts an item before another in the list. It will be in the same tree
478 * level or group as the item it is inserted before.
479 *
480 * @param[in] obj The object.
481 * @param[in] itc The item class for the item.
482 * @param[in] data The item data.
483 * @param[in] parent The parent item, or @c null if none.
484 * @param[in] before_it The item to place this new one before.
485 * @param[in] type Item type.
486 * @param[in] func Convenience function called when the item is selected.
487 * @param[in] func_data Data passed to @c func above.
488 *
489 * @return Handle to inserted item
490 *
491 * @ingroup Elm_Genlist
492 */
493EOAPI Elm_Widget_Item *elm_obj_genlist_item_insert_before(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
494
495/**
496 * @brief Update the contents of all realized items.
497 *
498 * This updates all realized items by calling all the item class functions
499 * again to get the contents, texts and states. Use this when the original item
500 * data has changed and the changes are desired to be reflected.
501 *
502 * To update just one item, use @ref elm_genlist_item_update.
503 * @param[in] obj The object.
504 *
505 * @ingroup Elm_Genlist
506 */
507EOAPI void elm_obj_genlist_realized_items_update(Eo *obj);
508
509/**
510 * @brief Insert an item after another in a genlist widget
511 *
512 * This inserts an item after another in the list. It will be in the same tree
513 * level or group as the item it is inserted after.
514 *
515 * @param[in] obj The object.
516 * @param[in] itc The item class for the item.
517 * @param[in] data The item data.
518 * @param[in] parent The parent item, or @c null if none.
519 * @param[in] after_it The item to place this new one after.
520 * @param[in] type Item type.
521 * @param[in] func Convenience function called when the item is selected.
522 * @param[in] func_data Data passed to @c func above.
523 *
524 * @return Handle to inserted item
525 *
526 * @ingroup Elm_Genlist
527 */
528EOAPI Elm_Widget_Item *elm_obj_genlist_item_insert_after(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
529
530/**
531 * @brief Get the item that is at the x, y canvas coords.
532 *
533 * This returns the item at the given coordinates (which are canvas relative,
534 * not object-relative). If an item is at that coordinate, that item handle is
535 * returned, and if @c posret is not NULL, the integer pointed to is set to a
536 * value of -1, 0 or 1, depending if the coordinate is on the upper portion of
537 * that item (-1), on the middle section (0) or on the lower part (1). If NULL
538 * is returned as an item (no item found there), then posret may indicate -1 or
539 * 1 based if the coordinate is above or below all items respectively in the
540 * genlist.
541 *
542 * @param[in] obj The object.
543 * @param[in] x The input x coordinate.
544 * @param[in] y The input y coordinate.
545 * @param[out] posret The position relative to the item returned here.
546 *
547 * @return Item at position
548 *
549 * @ingroup Elm_Genlist
550 */
551EOAPI Elm_Widget_Item *elm_obj_genlist_at_xy_item_get(const Eo *obj, int x, int y, int *posret);
552
553/**
554 * @brief Set filter mode with key.
555 *
556 * This initiates the filter mode of genlist with user/application provided
557 * key. If key is NULL, the filter mode is turned off.
558 *
559 * The filter data passed has to be managed by application itself and should
560 * not be deleted before genlist is deleted(or while filtering is not done.
561 *
562 * @param[in] obj The object.
563 * @param[in] key Filter key
564 *
565 * @ingroup Elm_Genlist
566 */
567EOAPI void elm_obj_genlist_filter_set(Eo *obj, void *key);
568
569/**
570 * @brief Returns an iterator over the list of filtered items.
571 *
572 * Return NULL if filter is not set. Application must take care of the case
573 * while calling the API. Must be freed after use.
574 *
575 * @param[in] obj The object.
576 *
577 * @return Iterator on genlist
578 *
579 * @ingroup Elm_Genlist
580 */
581EOAPI Eina_Iterator *elm_obj_genlist_filter_iterator_new(Eo *obj);
582
583/**
584 * @brief Return how many items have passed the filter currently.
585 *
586 * This behaviour is O(1) and returns the count of items which are currently
587 * passed by the filter. After "filter,done", the call returns total count of
588 * the filtered items.
589 *
590 * @param[in] obj The object.
591 *
592 * @return Count of items passing the filter
593 *
594 * @since 1.18
595 *
596 * @ingroup Elm_Genlist
597 */
598EOAPI unsigned int elm_obj_genlist_filtered_items_count(const Eo *obj);
599
600/**
601 * @brief Return how many items are currently in a list.
602 *
603 * This behavior is O(1) and includes items which may or may not be realized.
604 *
605 * @param[in] obj The object.
606 *
607 * @return Item in list
608 *
609 * @ingroup Elm_Genlist
610 */
611EOAPI unsigned int elm_obj_genlist_items_count(const Eo *obj);
612
613/**
614 * @brief Prepend a new item in a given genlist widget.
615 *
616 * This adds an item to the beginning of the list or beginning of the children
617 * of the parent if given.
618 *
619 * @param[in] obj The object.
620 * @param[in] itc The item class for the item.
621 * @param[in] data The item data.
622 * @param[in] parent The parent item, or @c null if none.
623 * @param[in] type Item type.
624 * @param[in] func Convenience function called when the item is selected.
625 * @param[in] func_data Data passed to @c func above.
626 *
627 * @return Handle to prepended item
628 *
629 * @ingroup Elm_Genlist
630 */
631EOAPI Elm_Widget_Item *elm_obj_genlist_item_prepend(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
632
633/**
634 * @brief Remove all items from a given genlist widget.
635 *
636 * This removes (and deletes) all items in @c obj, leaving it empty.
637 * @param[in] obj The object.
638 *
639 * @ingroup Elm_Genlist
640 */
641EOAPI void elm_obj_genlist_clear(Eo *obj);
642
643/**
644 * @brief Append a new item in a given genlist widget.
645 *
646 * This adds the given item to the end of the list or the end of the children
647 * list if the @c parent is given.
648 *
649 * @param[in] obj The object.
650 * @param[in] itc The item class for the item.
651 * @param[in] data The item data.
652 * @param[in] parent The parent item, or @c null if none.
653 * @param[in] type Item type.
654 * @param[in] func Convenience function called when the item is selected.
655 * @param[in] func_data Data passed to @c func above.
656 *
657 * @return Handle to appended item
658 *
659 * @ingroup Elm_Genlist
660 */
661EOAPI Elm_Widget_Item *elm_obj_genlist_item_append(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
662
663/**
664 * @brief Insert a new item into the sorted genlist object
665 *
666 * This inserts an item in the genlist based on user defined comparison
667 * function. The two arguments passed to the function @c func are genlist item
668 * handles to compare.
669 *
670 * @param[in] obj The object.
671 * @param[in] itc The item class for the item.
672 * @param[in] data The item data.
673 * @param[in] parent The parent item, or @c null if none.
674 * @param[in] type Item type.
675 * @param[in] comp The function called for the sort.
676 * @param[in] func Convenience function called when the item is selected.
677 * @param[in] func_data Data passed to @c func above.
678 *
679 * @return Handle to inserted item
680 *
681 * @ingroup Elm_Genlist
682 */
683EOAPI Elm_Widget_Item *elm_obj_genlist_item_sorted_insert(Eo *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
684
685/**
686 * @brief Get genlist item by given string.
687 *
688 * It takes pointer to the genlist item that will be used to start search from
689 * it.
690 *
691 * This function uses globs (like "*.jpg") for searching and takes search flags
692 * as last parameter That is a bitfield with values to be ored together or 0
693 * for no flags.
694 *
695 * @param[in] obj The object.
696 * @param[in] item_to_search_from Pointer to item to start search from. If
697 * @c null, search will be started from the first item of the genlist.
698 * @param[in] part_name Name of the TEXT part of genlist item to search string
699 * in.
700 * @param[in] pattern The search pattern.
701 * @param[in] flags Search flags.
702 *
703 * @return Searched item
704 *
705 * @since 1.11
706 *
707 * @ingroup Elm_Genlist
708 */
709EOAPI Elm_Widget_Item *elm_obj_genlist_search_by_text_item_get(Eo *obj, Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags);
710
711EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_FOCUSED;
712
713/** Called when genlist item got focus
714 * @return Efl_Object *
715 *
716 * @ingroup Elm_Genlist
717 */
718#define ELM_GENLIST_EVENT_ITEM_FOCUSED (&(_ELM_GENLIST_EVENT_ITEM_FOCUSED))
719
720EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ITEM_UNFOCUSED;
721
722/** Called when genlist item lost focus
723 * @return Efl_Object *
724 *
725 * @ingroup Elm_Genlist
726 */
727#define ELM_GENLIST_EVENT_ITEM_UNFOCUSED (&(_ELM_GENLIST_EVENT_ITEM_UNFOCUSED))
728
729EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_DRAG;
730
731/** Called when vertical bar is dragged
732 *
733 * @ingroup Elm_Genlist
734 */
735#define ELM_GENLIST_EVENT_VBAR_DRAG (&(_ELM_GENLIST_EVENT_VBAR_DRAG))
736
737EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_PRESS;
738
739/** Called when vertical bar is pressed
740 *
741 * @ingroup Elm_Genlist
742 */
743#define ELM_GENLIST_EVENT_VBAR_PRESS (&(_ELM_GENLIST_EVENT_VBAR_PRESS))
744
745EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_VBAR_UNPRESS;
746
747/** Called when vertical bar is no longer pressed
748 *
749 * @ingroup Elm_Genlist
750 */
751#define ELM_GENLIST_EVENT_VBAR_UNPRESS (&(_ELM_GENLIST_EVENT_VBAR_UNPRESS))
752
753EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_DRAG;
754
755/** Called when horizontal bar is dragged
756 *
757 * @ingroup Elm_Genlist
758 */
759#define ELM_GENLIST_EVENT_HBAR_DRAG (&(_ELM_GENLIST_EVENT_HBAR_DRAG))
760
761EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_PRESS;
762
763/** Called when horizontal bar is pressed
764 *
765 * @ingroup Elm_Genlist
766 */
767#define ELM_GENLIST_EVENT_HBAR_PRESS (&(_ELM_GENLIST_EVENT_HBAR_PRESS))
768
769EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HBAR_UNPRESS;
770
771/** Called when horizontal bar is no longer pressed
772 *
773 * @ingroup Elm_Genlist
774 */
775#define ELM_GENLIST_EVENT_HBAR_UNPRESS (&(_ELM_GENLIST_EVENT_HBAR_UNPRESS))
776
777EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_TOP;
778
779/** Called when top edge is reached
780 *
781 * @ingroup Elm_Genlist
782 */
783#define ELM_GENLIST_EVENT_EDGE_TOP (&(_ELM_GENLIST_EVENT_EDGE_TOP))
784
785EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_BOTTOM;
786
787/** Called when bottom edge is reached
788 *
789 * @ingroup Elm_Genlist
790 */
791#define ELM_GENLIST_EVENT_EDGE_BOTTOM (&(_ELM_GENLIST_EVENT_EDGE_BOTTOM))
792
793EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_LEFT;
794
795/** Called when left edge is reached
796 *
797 * @ingroup Elm_Genlist
798 */
799#define ELM_GENLIST_EVENT_EDGE_LEFT (&(_ELM_GENLIST_EVENT_EDGE_LEFT))
800
801EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EDGE_RIGHT;
802
803/** Called when right edge is reached
804 *
805 * @ingroup Elm_Genlist
806 */
807#define ELM_GENLIST_EVENT_EDGE_RIGHT (&(_ELM_GENLIST_EVENT_EDGE_RIGHT))
808
809EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED;
810
811/** Called when genlist item moved
812 * @return Efl_Object *
813 *
814 * @ingroup Elm_Genlist
815 */
816#define ELM_GENLIST_EVENT_MOVED (&(_ELM_GENLIST_EVENT_MOVED))
817
818EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_BEFORE;
819
820/** Called when genlist item moved before
821 * @return Efl_Object *
822 *
823 * @ingroup Elm_Genlist
824 */
825#define ELM_GENLIST_EVENT_MOVED_BEFORE (&(_ELM_GENLIST_EVENT_MOVED_BEFORE))
826
827EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MOVED_AFTER;
828
829/** Called when genlist item moved after
830 * @return Efl_Object *
831 *
832 * @ingroup Elm_Genlist
833 */
834#define ELM_GENLIST_EVENT_MOVED_AFTER (&(_ELM_GENLIST_EVENT_MOVED_AFTER))
835
836EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_SWIPE;
837
838/** Called when swipe is detected
839 * @return Efl_Object *
840 *
841 * @ingroup Elm_Genlist
842 */
843#define ELM_GENLIST_EVENT_SWIPE (&(_ELM_GENLIST_EVENT_SWIPE))
844
845EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_IN;
846
847/** Called when multitouch pinch in detected
848 * @return Efl_Object *
849 *
850 * @ingroup Elm_Genlist
851 */
852#define ELM_GENLIST_EVENT_MULTI_PINCH_IN (&(_ELM_GENLIST_EVENT_MULTI_PINCH_IN))
853
854EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_PINCH_OUT;
855
856/** Called when multitouch pinch out detected
857 * @return Efl_Object *
858 *
859 * @ingroup Elm_Genlist
860 */
861#define ELM_GENLIST_EVENT_MULTI_PINCH_OUT (&(_ELM_GENLIST_EVENT_MULTI_PINCH_OUT))
862
863EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN;
864
865/** Called when multitouch swipe down detected
866 * @return Efl_Object *
867 *
868 * @ingroup Elm_Genlist
869 */
870#define ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_DOWN))
871
872EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_UP;
873
874/** Called when multitouch swipe up detected
875 * @return Efl_Object *
876 *
877 * @ingroup Elm_Genlist
878 */
879#define ELM_GENLIST_EVENT_MULTI_SWIPE_UP (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_UP))
880
881EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT;
882
883/** Called when multitouch swipe right detected
884 * @return Efl_Object *
885 *
886 * @ingroup Elm_Genlist
887 */
888#define ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_RIGHT))
889
890EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT;
891
892/** Called when multitouch swipe left detected
893 * @return Efl_Object *
894 *
895 * @ingroup Elm_Genlist
896 */
897#define ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT (&(_ELM_GENLIST_EVENT_MULTI_SWIPE_LEFT))
898
899EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_RELEASED;
900
901/** Called when genlist is released
902 * @return Efl_Object *
903 *
904 * @ingroup Elm_Genlist
905 */
906#define ELM_GENLIST_EVENT_RELEASED (&(_ELM_GENLIST_EVENT_RELEASED))
907
908EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_ACTIVATED;
909
910/** called when genlist is activated
911 * @return Efl_Object *
912 *
913 * @ingroup Elm_Genlist
914 */
915#define ELM_GENLIST_EVENT_ACTIVATED (&(_ELM_GENLIST_EVENT_ACTIVATED))
916
917EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_HIGHLIGHTED;
918
919/** Called when genlist is highlighted
920 * @return Efl_Object *
921 *
922 * @ingroup Elm_Genlist
923 */
924#define ELM_GENLIST_EVENT_HIGHLIGHTED (&(_ELM_GENLIST_EVENT_HIGHLIGHTED))
925
926EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_UNHIGHLIGHTED;
927
928/** Called when genlist is no longer highlighted
929 * @return Efl_Object *
930 *
931 * @ingroup Elm_Genlist
932 */
933#define ELM_GENLIST_EVENT_UNHIGHLIGHTED (&(_ELM_GENLIST_EVENT_UNHIGHLIGHTED))
934
935EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_REALIZED;
936
937/** Called when genlist is realized
938 * @return Efl_Object *
939 *
940 * @ingroup Elm_Genlist
941 */
942#define ELM_GENLIST_EVENT_REALIZED (&(_ELM_GENLIST_EVENT_REALIZED))
943
944EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_UNREALIZED;
945
946/** Called when genlist is unrealized
947 * @return Efl_Object *
948 *
949 * @ingroup Elm_Genlist
950 */
951#define ELM_GENLIST_EVENT_UNREALIZED (&(_ELM_GENLIST_EVENT_UNREALIZED))
952
953EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACT_REQUEST;
954
955/** Called when contract is requested
956 * @return Efl_Object *
957 *
958 * @ingroup Elm_Genlist
959 */
960#define ELM_GENLIST_EVENT_CONTRACT_REQUEST (&(_ELM_GENLIST_EVENT_CONTRACT_REQUEST))
961
962EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EXPAND_REQUEST;
963
964/** Called when expand is requested
965 * @return Efl_Object *
966 *
967 * @ingroup Elm_Genlist
968 */
969#define ELM_GENLIST_EVENT_EXPAND_REQUEST (&(_ELM_GENLIST_EVENT_EXPAND_REQUEST))
970
971EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_CONTRACTED;
972
973/** called when genlist is contracted
974 * @return Efl_Object *
975 *
976 * @ingroup Elm_Genlist
977 */
978#define ELM_GENLIST_EVENT_CONTRACTED (&(_ELM_GENLIST_EVENT_CONTRACTED))
979
980EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_EXPANDED;
981
982/** Called when genlist is expanded
983 * @return Efl_Object *
984 *
985 * @ingroup Elm_Genlist
986 */
987#define ELM_GENLIST_EVENT_EXPANDED (&(_ELM_GENLIST_EVENT_EXPANDED))
988
989EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_INDEX_UPDATE;
990
991/** Called when genlist index updated
992 * @return Efl_Object *
993 *
994 * @ingroup Elm_Genlist
995 */
996#define ELM_GENLIST_EVENT_INDEX_UPDATE (&(_ELM_GENLIST_EVENT_INDEX_UPDATE))
997
998EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED;
999
1000/** Called when genlist tree effect finished
1001 *
1002 * @ingroup Elm_Genlist
1003 */
1004#define ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED (&(_ELM_GENLIST_EVENT_TREE_EFFECT_FINISHED))
1005
1006EWAPI extern const Efl_Event_Description _ELM_GENLIST_EVENT_FILTER_DONE;
1007
1008/** Called when genlist filter is done
1009 *
1010 * @ingroup Elm_Genlist
1011 */
1012#define ELM_GENLIST_EVENT_FILTER_DONE (&(_ELM_GENLIST_EVENT_FILTER_DONE))
1013
1014#endif
diff --git a/src/lib/elementary/elm_genlist_eo.legacy.c b/src/lib/elementary/elm_genlist_eo.legacy.c
new file mode 100644
index 0000000..6f9cdf2
--- /dev/null
+++ b/src/lib/elementary/elm_genlist_eo.legacy.c
@@ -0,0 +1,258 @@
1
2EAPI void
3elm_genlist_homogeneous_set(Elm_Genlist *obj, Eina_Bool homogeneous)
4{
5 elm_obj_genlist_homogeneous_set(obj, homogeneous);
6}
7
8EAPI Eina_Bool
9elm_genlist_homogeneous_get(const Elm_Genlist *obj)
10{
11 return elm_obj_genlist_homogeneous_get(obj);
12}
13
14EAPI void
15elm_genlist_select_mode_set(Elm_Genlist *obj, Elm_Object_Select_Mode mode)
16{
17 elm_obj_genlist_select_mode_set(obj, mode);
18}
19
20EAPI Elm_Object_Select_Mode
21elm_genlist_select_mode_get(const Elm_Genlist *obj)
22{
23 return elm_obj_genlist_select_mode_get(obj);
24}
25
26EAPI void
27elm_genlist_focus_on_selection_set(Elm_Genlist *obj, Eina_Bool enabled)
28{
29 elm_obj_genlist_focus_on_selection_set(obj, enabled);
30}
31
32EAPI Eina_Bool
33elm_genlist_focus_on_selection_get(const Elm_Genlist *obj)
34{
35 return elm_obj_genlist_focus_on_selection_get(obj);
36}
37
38EAPI void
39elm_genlist_longpress_timeout_set(Elm_Genlist *obj, double timeout)
40{
41 elm_obj_genlist_longpress_timeout_set(obj, timeout);
42}
43
44EAPI double
45elm_genlist_longpress_timeout_get(const Elm_Genlist *obj)
46{
47 return elm_obj_genlist_longpress_timeout_get(obj);
48}
49
50EAPI void
51elm_genlist_multi_select_set(Elm_Genlist *obj, Eina_Bool multi)
52{
53 elm_obj_genlist_multi_select_set(obj, multi);
54}
55
56EAPI Eina_Bool
57elm_genlist_multi_select_get(const Elm_Genlist *obj)
58{
59 return elm_obj_genlist_multi_select_get(obj);
60}
61
62EAPI void
63elm_genlist_reorder_mode_set(Elm_Genlist *obj, Eina_Bool reorder_mode)
64{
65 elm_obj_genlist_reorder_mode_set(obj, reorder_mode);
66}
67
68EAPI Eina_Bool
69elm_genlist_reorder_mode_get(const Elm_Genlist *obj)
70{
71 return elm_obj_genlist_reorder_mode_get(obj);
72}
73
74EAPI void
75elm_genlist_decorate_mode_set(Elm_Genlist *obj, Eina_Bool decorated)
76{
77 elm_obj_genlist_decorate_mode_set(obj, decorated);
78}
79
80EAPI Eina_Bool
81elm_genlist_decorate_mode_get(const Elm_Genlist *obj)
82{
83 return elm_obj_genlist_decorate_mode_get(obj);
84}
85
86EAPI void
87elm_genlist_multi_select_mode_set(Elm_Genlist *obj, Elm_Object_Multi_Select_Mode mode)
88{
89 elm_obj_genlist_multi_select_mode_set(obj, mode);
90}
91
92EAPI Elm_Object_Multi_Select_Mode
93elm_genlist_multi_select_mode_get(const Elm_Genlist *obj)
94{
95 return elm_obj_genlist_multi_select_mode_get(obj);
96}
97
98EAPI void
99elm_genlist_block_count_set(Elm_Genlist *obj, int count)
100{
101 elm_obj_genlist_block_count_set(obj, count);
102}
103
104EAPI int
105elm_genlist_block_count_get(const Elm_Genlist *obj)
106{
107 return elm_obj_genlist_block_count_get(obj);
108}
109
110EAPI void
111elm_genlist_tree_effect_enabled_set(Elm_Genlist *obj, Eina_Bool enabled)
112{
113 elm_obj_genlist_tree_effect_enabled_set(obj, enabled);
114}
115
116EAPI Eina_Bool
117elm_genlist_tree_effect_enabled_get(const Elm_Genlist *obj)
118{
119 return elm_obj_genlist_tree_effect_enabled_get(obj);
120}
121
122EAPI void
123elm_genlist_highlight_mode_set(Elm_Genlist *obj, Eina_Bool highlight)
124{
125 elm_obj_genlist_highlight_mode_set(obj, highlight);
126}
127
128EAPI Eina_Bool
129elm_genlist_highlight_mode_get(const Elm_Genlist *obj)
130{
131 return elm_obj_genlist_highlight_mode_get(obj);
132}
133
134EAPI void
135elm_genlist_mode_set(Elm_Genlist *obj, Elm_List_Mode mode)
136{
137 elm_obj_genlist_mode_set(obj, mode);
138}
139
140EAPI Elm_List_Mode
141elm_genlist_mode_get(const Elm_Genlist *obj)
142{
143 return elm_obj_genlist_mode_get(obj);
144}
145
146EAPI Elm_Widget_Item *
147elm_genlist_decorated_item_get(const Elm_Genlist *obj)
148{
149 return elm_obj_genlist_decorated_item_get(obj);
150}
151
152EAPI Elm_Widget_Item *
153elm_genlist_selected_item_get(const Elm_Genlist *obj)
154{
155 return elm_obj_genlist_selected_item_get(obj);
156}
157
158EAPI Elm_Widget_Item *
159elm_genlist_first_item_get(const Elm_Genlist *obj)
160{
161 return elm_obj_genlist_first_item_get(obj);
162}
163
164EAPI Eina_List *
165elm_genlist_realized_items_get(const Elm_Genlist *obj)
166{
167 return elm_obj_genlist_realized_items_get(obj);
168}
169
170EAPI const Eina_List *
171elm_genlist_selected_items_get(const Elm_Genlist *obj)
172{
173 return elm_obj_genlist_selected_items_get(obj);
174}
175
176EAPI Elm_Widget_Item *
177elm_genlist_last_item_get(const Elm_Genlist *obj)
178{
179 return elm_obj_genlist_last_item_get(obj);
180}
181
182EAPI Elm_Widget_Item *
183elm_genlist_item_insert_before(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
184{
185 return elm_obj_genlist_item_insert_before(obj, itc, data, parent, before_it, type, func, func_data);
186}
187
188EAPI void
189elm_genlist_realized_items_update(Elm_Genlist *obj)
190{
191 elm_obj_genlist_realized_items_update(obj);
192}
193
194EAPI Elm_Widget_Item *
195elm_genlist_item_insert_after(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
196{
197 return elm_obj_genlist_item_insert_after(obj, itc, data, parent, after_it, type, func, func_data);
198}
199
200EAPI Elm_Widget_Item *
201elm_genlist_at_xy_item_get(const Elm_Genlist *obj, int x, int y, int *posret)
202{
203 return elm_obj_genlist_at_xy_item_get(obj, x, y, posret);
204}
205
206EAPI void
207elm_genlist_filter_set(Elm_Genlist *obj, void *key)
208{
209 elm_obj_genlist_filter_set(obj, key);
210}
211
212EAPI Eina_Iterator *
213elm_genlist_filter_iterator_new(Elm_Genlist *obj)
214{
215 return elm_obj_genlist_filter_iterator_new(obj);
216}
217
218EAPI unsigned int
219elm_genlist_filtered_items_count(const Elm_Genlist *obj)
220{
221 return elm_obj_genlist_filtered_items_count(obj);
222}
223
224EAPI unsigned int
225elm_genlist_items_count(const Elm_Genlist *obj)
226{
227 return elm_obj_genlist_items_count(obj);
228}
229
230EAPI Elm_Widget_Item *
231elm_genlist_item_prepend(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
232{
233 return elm_obj_genlist_item_prepend(obj, itc, data, parent, type, func, func_data);
234}
235
236EAPI void
237elm_genlist_clear(Elm_Genlist *obj)
238{
239 elm_obj_genlist_clear(obj);
240}
241
242EAPI Elm_Widget_Item *
243elm_genlist_item_append(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data)
244{
245 return elm_obj_genlist_item_append(obj, itc, data, parent, type, func, func_data);
246}
247
248EAPI Elm_Widget_Item *
249elm_genlist_item_sorted_insert(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data)
250{
251 return elm_obj_genlist_item_sorted_insert(obj, itc, data, parent, type, comp, func, func_data);
252}
253
254EAPI Elm_Widget_Item *
255elm_genlist_search_by_text_item_get(Elm_Genlist *obj, Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags)
256{
257 return elm_obj_genlist_search_by_text_item_get(obj, item_to_search_from, part_name, pattern, flags);
258}
diff --git a/src/lib/elementary/elm_genlist_eo.legacy.h b/src/lib/elementary/elm_genlist_eo.legacy.h
new file mode 100644
index 0000000..bf00258
--- /dev/null
+++ b/src/lib/elementary/elm_genlist_eo.legacy.h
@@ -0,0 +1,704 @@
1#ifndef _ELM_GENLIST_EO_LEGACY_H_
2#define _ELM_GENLIST_EO_LEGACY_H_
3
4#ifndef _ELM_GENLIST_EO_CLASS_TYPE
5#define _ELM_GENLIST_EO_CLASS_TYPE
6
7typedef Eo Elm_Genlist;
8
9#endif
10
11#ifndef _ELM_GENLIST_EO_TYPES
12#define _ELM_GENLIST_EO_TYPES
13
14
15#endif
16
17/**
18 * @brief Enable/disable homogeneous mode.
19 *
20 * This will enable the homogeneous mode where items are of the same height and
21 * width so that genlist may do the lazy-loading at its maximum (which
22 * increases the performance for scrolling the list). In the normal mode,
23 * genlist will pre-calculate all the items' sizes even though they are not in
24 * use. So items' callbacks are called many times than expected. But
25 * homogeneous mode will skip the item size pre-calculation process so items'
26 * callbacks are called only when the item is needed.
27 *
28 * @note This also works well with group index.
29 *
30 * @param[in] obj The object.
31 * @param[in] homogeneous Assume the items within the genlist are of the same
32 * height and width. Default is @c false.
33 *
34 * @ingroup Elm_Genlist_Group
35 */
36EAPI void elm_genlist_homogeneous_set(Elm_Genlist *obj, Eina_Bool homogeneous);
37
38/**
39 * @brief Get whether the homogeneous mode is enabled.
40 *
41 * @param[in] obj The object.
42 *
43 * @return Assume the items within the genlist are of the same height and
44 * width. Default is @c false.
45 *
46 * @ingroup Elm_Genlist_Group
47 */
48EAPI Eina_Bool elm_genlist_homogeneous_get(const Elm_Genlist *obj);
49
50/**
51 * @brief Set the genlist select mode.
52 *
53 * #ELM_OBJECT_SELECT_MODE_DEFAULT means that items will call their selection
54 * func and callback once when first becoming selected. Any further clicks will
55 * do nothing, unless you set always select mode. ELM_OBJECT_SELECT_MODE_ALWAYS
56 * means that even if selected, every click will make the selected callbacks be
57 * called. #ELM_OBJECT_SELECT_MODE_NONE will turn off the ability to select
58 * items entirely and they will neither appear selected nor call selected
59 * callback functions.
60 *
61 * @param[in] obj The object.
62 * @param[in] mode The select mode.
63 *
64 * @ingroup Elm_Genlist_Group
65 */
66EAPI void elm_genlist_select_mode_set(Elm_Genlist *obj, Elm_Object_Select_Mode mode);
67
68/**
69 * @brief Get the genlist select mode.
70 *
71 * @param[in] obj The object.
72 *
73 * @return The select mode.
74 *
75 * @ingroup Elm_Genlist_Group
76 */
77EAPI Elm_Object_Select_Mode elm_genlist_select_mode_get(const Elm_Genlist *obj);
78
79/**
80 * @brief Set focus upon items selection mode
81 *
82 * When enabled, every selection of an item inside the genlist will
83 * automatically set focus to its first focusable widget from the left. This is
84 * true of course if the selection was made by clicking an unfocusable area in
85 * an item or selecting it with a key movement. Clicking on a focusable widget
86 * inside an item will cause this particular item to get focus as usual.
87 *
88 * @param[in] obj The object.
89 * @param[in] enabled The tree effect status.
90 *
91 * @ingroup Elm_Genlist_Group
92 */
93EAPI void elm_genlist_focus_on_selection_set(Elm_Genlist *obj, Eina_Bool enabled);
94
95/**
96 * @brief Get whether focus upon item's selection mode is enabled.
97 *
98 * @param[in] obj The object.
99 *
100 * @return The tree effect status.
101 *
102 * @ingroup Elm_Genlist_Group
103 */
104EAPI Eina_Bool elm_genlist_focus_on_selection_get(const Elm_Genlist *obj);
105
106/**
107 * @brief Set the timeout in seconds for the longpress event.
108 *
109 * This option will change how long it takes to send an event "longpressed"
110 * after the mouse down signal is sent to the list. If this event occurs, no
111 * "clicked" event will be sent.
112 *
113 * @warning If you set the longpress timeout value with this API, your genlist
114 * will not be affected by the longpress value of elementary config value
115 * later.
116 *
117 * @param[in] obj The object.
118 * @param[in] timeout Timeout in seconds. Default is elm config value (1.0).
119 *
120 * @ingroup Elm_Genlist_Group
121 */
122EAPI void elm_genlist_longpress_timeout_set(Elm_Genlist *obj, double timeout);
123
124/**
125 * @brief Get the timeout in seconds for the longpress event.
126 *
127 * @param[in] obj The object.
128 *
129 * @return Timeout in seconds. Default is elm config value (1.0).
130 *
131 * @ingroup Elm_Genlist_Group
132 */
133EAPI double elm_genlist_longpress_timeout_get(const Elm_Genlist *obj);
134
135/**
136 * @brief Enable or disable multi-selection in the genlist.
137 *
138 * This enables ($true) or disables ($false) multi-selection in the list. This
139 * allows more than 1 item to be selected. To retrieve the list of selected
140 * items, use @ref elm_genlist_selected_items_get.
141 *
142 * @param[in] obj The object.
143 * @param[in] multi Multi-select enable/disable. Default is disabled.
144 *
145 * @ingroup Elm_Genlist_Group
146 */
147EAPI void elm_genlist_multi_select_set(Elm_Genlist *obj, Eina_Bool multi);
148
149/**
150 * @brief Get if multi-selection in genlist is enabled or disabled.
151 *
152 * @param[in] obj The object.
153 *
154 * @return Multi-select enable/disable. Default is disabled.
155 *
156 * @ingroup Elm_Genlist_Group
157 */
158EAPI Eina_Bool elm_genlist_multi_select_get(const Elm_Genlist *obj);
159
160/**
161 * @brief Set reorder mode.
162 *
163 * After turning on the reorder mode, longpress on normal item will trigger
164 * reordering of the item. You can move the item up and down. However, reorder
165 * does not work with group item.
166 *
167 * @param[in] obj The object.
168 * @param[in] reorder_mode The reorder mode.
169 *
170 * @ingroup Elm_Genlist_Group
171 */
172EAPI void elm_genlist_reorder_mode_set(Elm_Genlist *obj, Eina_Bool reorder_mode);
173
174/**
175 * @brief Get the reorder mode.
176 *
177 * @param[in] obj The object.
178 *
179 * @return The reorder mode.
180 *
181 * @ingroup Elm_Genlist_Group
182 */
183EAPI Eina_Bool elm_genlist_reorder_mode_get(const Elm_Genlist *obj);
184
185/**
186 * @brief Set Genlist decorate mode.
187 *
188 * This sets Genlist decorate mode to all items.
189 *
190 * @param[in] obj The object.
191 * @param[in] decorated The decorate mode status.
192 *
193 * @ingroup Elm_Genlist_Group
194 */
195EAPI void elm_genlist_decorate_mode_set(Elm_Genlist *obj, Eina_Bool decorated);
196
197/**
198 * @brief Get Genlist decorate mode.
199 *
200 * @param[in] obj The object.
201 *
202 * @return The decorate mode status.
203 *
204 * @ingroup Elm_Genlist_Group
205 */
206EAPI Eina_Bool elm_genlist_decorate_mode_get(const Elm_Genlist *obj);
207
208/**
209 * @brief Set the genlist multi select mode.
210 *
211 * #ELM_OBJECT_MULTI_SELECT_MODE_DEFAULT means that select/unselect items
212 * whenever each item is clicked. #ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL
213 * means that only one item will be selected although multi-selection is
214 * enabled, if clicked without pressing control key. This mode is only
215 * available with multi-selection.
216 *
217 * @param[in] obj The object.
218 * @param[in] mode The multi select mode
219 *
220 * @since 1.8
221 *
222 * @ingroup Elm_Genlist_Group
223 */
224EAPI void elm_genlist_multi_select_mode_set(Elm_Genlist *obj, Elm_Object_Multi_Select_Mode mode);
225
226/**
227 * @brief Get the genlist multi select mode.
228 *
229 * @param[in] obj The object.
230 *
231 * @return The multi select mode
232 *
233 * @since 1.8
234 *
235 * @ingroup Elm_Genlist_Group
236 */
237EAPI Elm_Object_Multi_Select_Mode elm_genlist_multi_select_mode_get(const Elm_Genlist *obj);
238
239/**
240 * @brief Set the maximum number of items within an item block.
241 *
242 * This will configure the block count to tune to the target with particular
243 * performance matrix.
244 *
245 * A block of objects will be used to reduce the number of operations due to
246 * many objects in the screen. It can determine the visibility, or if the
247 * object has changed, it theme needs to be updated, etc. doing this kind of
248 * calculation to the entire block, instead of per object.
249 *
250 * The default value for the block count is enough for most lists, so unless
251 * you know you will have a lot of objects visible in the screen at the same
252 * time, don't try to change this.
253 *
254 * @param[in] obj The object.
255 * @param[in] count Maximum number of items within an item block. Default is
256 * 32.
257 *
258 * @ingroup Elm_Genlist_Group
259 */
260EAPI void elm_genlist_block_count_set(Elm_Genlist *obj, int count);
261
262/**
263 * @brief Get the maximum number of items within an item block.
264 *
265 * @param[in] obj The object.
266 *
267 * @return Maximum number of items within an item block. Default is 32.
268 *
269 * @ingroup Elm_Genlist_Group
270 */
271EAPI int elm_genlist_block_count_get(const Elm_Genlist *obj);
272
273/**
274 * @brief Control genlist tree effect.
275 *
276 * @param[in] obj The object.
277 * @param[in] enabled The tree effect status.
278 *
279 * @ingroup Elm_Genlist_Group
280 */
281EAPI void elm_genlist_tree_effect_enabled_set(Elm_Genlist *obj, Eina_Bool enabled);
282
283/**
284 * @brief Control genlist tree effect.
285 *
286 * @param[in] obj The object.
287 *
288 * @return The tree effect status.
289 *
290 * @ingroup Elm_Genlist_Group
291 */
292EAPI Eina_Bool elm_genlist_tree_effect_enabled_get(const Elm_Genlist *obj);
293
294/**
295 * @brief Set whether the genlist items should be highlighted on item
296 * selection.
297 *
298 * This will turn on/off the highlight effect on item selection. The selected
299 * and clicked callback functions will still be called.
300 *
301 * Highlight is enabled by default.
302 *
303 * @param[in] obj The object.
304 * @param[in] highlight @c true to enable highlighting or @c false to disable
305 * it.
306 *
307 * @ingroup Elm_Genlist_Group
308 */
309EAPI void elm_genlist_highlight_mode_set(Elm_Genlist *obj, Eina_Bool highlight);
310
311/**
312 * @brief Get whether the genlist items' should be highlighted when item
313 * selected.
314 *
315 * @param[in] obj The object.
316 *
317 * @return @c true to enable highlighting or @c false to disable it.
318 *
319 * @ingroup Elm_Genlist_Group
320 */
321EAPI Eina_Bool elm_genlist_highlight_mode_get(const Elm_Genlist *obj);
322
323/**
324 * @brief This sets the horizontal stretching mode.
325 *
326 * This sets the mode used for sizing items horizontally. Valid modes are
327 * @ref ELM_LIST_LIMIT, @ref ELM_LIST_SCROLL, and @ref ELM_LIST_COMPRESS. The
328 * default is @ref ELM_LIST_SCROLL. This mode means that if items are too wide
329 * to fit, the scroller will scroll horizontally. Otherwise items are expanded
330 * to fill the width of the viewport of the scroller. If it is
331 * @ref ELM_LIST_LIMIT, items will be expanded to the viewport width and
332 * limited to that size. If it is @ref ELM_LIST_COMPRESS, the item width will
333 * be fixed (restricted to a minimum of) to the list width when calculating its
334 * size in order to allow the height to be calculated based on it. This allows,
335 * for instance, text block to wrap lines if the Edje part is configured with
336 * "text.min: 0 1".
337 *
338 * @note @ref ELM_LIST_COMPRESS will make list resize slower as it will have to
339 * recalculate every item height again whenever the list width changes!
340 *
341 * @note Homogeneous mode gives all items in the genlist the same width/height.
342 * With @ref ELM_LIST_COMPRESS, genlist items initialize fast, but there cannot
343 * be any sub-objects in the genlist which require on-the-fly resizing (such as
344 * TEXTBLOCK). In this case some dynamic resizable objects in the genlist might
345 * not diplay properly.
346 *
347 * @param[in] obj The object.
348 * @param[in] mode The mode to use (one of @ref ELM_LIST_SCROLL or
349 * @ref ELM_LIST_LIMIT).
350 *
351 * @ingroup Elm_Genlist_Group
352 */
353EAPI void elm_genlist_mode_set(Elm_Genlist *obj, Elm_List_Mode mode);
354
355/**
356 * @brief Get the horizontal stretching mode.
357 *
358 * @param[in] obj The object.
359 *
360 * @return The mode to use (one of @ref ELM_LIST_SCROLL or
361 * @ref ELM_LIST_LIMIT).
362 *
363 * @ingroup Elm_Genlist_Group
364 */
365EAPI Elm_List_Mode elm_genlist_mode_get(const Elm_Genlist *obj);
366
367/**
368 * @brief Get active genlist mode item.
369 *
370 * This function returns the item that was activated with a mode, by the
371 * function @ref elm_genlist_decorate_mode_set.
372 *
373 * @param[in] obj The object.
374 *
375 * @return The active item for that current mode. Or @c null if no item is
376 * activated with any mode.
377 *
378 * @ingroup Elm_Genlist_Group
379 */
380EAPI Elm_Widget_Item *elm_genlist_decorated_item_get(const Elm_Genlist *obj);
381
382/**
383 * @brief Get the selected item in the genlist.
384 *
385 * This gets the selected item in the list (if multi-selection is enabled, only
386 * the item that was first selected in the list is returned - which is not very
387 * useful, so see @ref elm_genlist_selected_items_get for when multi-selection
388 * is used).
389 *
390 * If no item is selected, @c null is returned.
391 *
392 * @param[in] obj The object.
393 *
394 * @return The selected item, or @c null if none is selected.
395 *
396 * @ingroup Elm_Genlist_Group
397 */
398EAPI Elm_Widget_Item *elm_genlist_selected_item_get(const Elm_Genlist *obj);
399
400/**
401 * @brief Get the first item in the genlist.
402 *
403 * This returns the first item in the list.
404 *
405 * If filter is set on genlist, it returns the first filtered item in the list.
406 *
407 * @param[in] obj The object.
408 *
409 * @return The first item or @c null.
410 *
411 * @ingroup Elm_Genlist_Group
412 */
413EAPI Elm_Widget_Item *elm_genlist_first_item_get(const Elm_Genlist *obj);
414
415/**
416 * @brief Get a list of realized items in genlist.
417 *
418 * This returns a list of the realized items in the genlist. The list contains
419 * genlist item pointers. The list must be freed by the caller when done with
420 * @ref eina_list_free. The item pointers in the list are only valid so long as
421 * those items are not deleted or the genlist is not deleted.
422 *
423 * @param[in] obj The object.
424 *
425 * @return List of realized items
426 *
427 * @ingroup Elm_Genlist_Group
428 */
429EAPI Eina_List *elm_genlist_realized_items_get(const Elm_Genlist *obj) EINA_WARN_UNUSED_RESULT;
430
431/**
432 * @brief Get a list of selected items in the genlist.
433 *
434 * It returns a list of the selected items. This list pointer is only valid so
435 * long as the selection doesn't change (no items are selected or unselected,
436 * or unselected implicitl by deletion). The list contains genlist items
437 * pointers. The order of the items in this list is the order which they were
438 * selected, i.e. the first item in this list is the first item that was
439 * selected, and so on.
440 *
441 * @note If not in multi-select mode, consider using function
442 * @ref elm_genlist_selected_item_get instead.
443 *
444 * @param[in] obj The object.
445 *
446 * @return List of selected items
447 *
448 * @ingroup Elm_Genlist_Group
449 */
450EAPI const Eina_List *elm_genlist_selected_items_get(const Elm_Genlist *obj);
451
452/**
453 * @brief Get the last item in the genlist
454 *
455 * This returns the last item in the list.
456 *
457 * If filter is set to genlist, it returns last filtered item in the list.
458 *
459 * @param[in] obj The object.
460 *
461 * @return Last item in list
462 *
463 * @ingroup Elm_Genlist_Group
464 */
465EAPI Elm_Widget_Item *elm_genlist_last_item_get(const Elm_Genlist *obj);
466
467/**
468 * @brief Insert an item before another in a genlist widget
469 *
470 * This inserts an item before another in the list. It will be in the same tree
471 * level or group as the item it is inserted before.
472 *
473 * @param[in] obj The object.
474 * @param[in] itc The item class for the item.
475 * @param[in] data The item data.
476 * @param[in] parent The parent item, or @c null if none.
477 * @param[in] before_it The item to place this new one before.
478 * @param[in] type Item type.
479 * @param[in] func Convenience function called when the item is selected.
480 * @param[in] func_data Data passed to @c func above.
481 *
482 * @return Handle to inserted item
483 *
484 * @ingroup Elm_Genlist_Group
485 */
486EAPI Elm_Widget_Item *elm_genlist_item_insert_before(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *before_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
487
488/**
489 * @brief Update the contents of all realized items.
490 *
491 * This updates all realized items by calling all the item class functions
492 * again to get the contents, texts and states. Use this when the original item
493 * data has changed and the changes are desired to be reflected.
494 *
495 * To update just one item, use @ref elm_genlist_item_update.
496 * @param[in] obj The object.
497 *
498 * @ingroup Elm_Genlist_Group
499 */
500EAPI void elm_genlist_realized_items_update(Elm_Genlist *obj);
501
502/**
503 * @brief Insert an item after another in a genlist widget
504 *
505 * This inserts an item after another in the list. It will be in the same tree
506 * level or group as the item it is inserted after.
507 *
508 * @param[in] obj The object.
509 * @param[in] itc The item class for the item.
510 * @param[in] data The item data.
511 * @param[in] parent The parent item, or @c null if none.
512 * @param[in] after_it The item to place this new one after.
513 * @param[in] type Item type.
514 * @param[in] func Convenience function called when the item is selected.
515 * @param[in] func_data Data passed to @c func above.
516 *
517 * @return Handle to inserted item
518 *
519 * @ingroup Elm_Genlist_Group
520 */
521EAPI Elm_Widget_Item *elm_genlist_item_insert_after(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Widget_Item *after_it, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
522
523/**
524 * @brief Get the item that is at the x, y canvas coords.
525 *
526 * This returns the item at the given coordinates (which are canvas relative,
527 * not object-relative). If an item is at that coordinate, that item handle is
528 * returned, and if @c posret is not NULL, the integer pointed to is set to a
529 * value of -1, 0 or 1, depending if the coordinate is on the upper portion of
530 * that item (-1), on the middle section (0) or on the lower part (1). If NULL
531 * is returned as an item (no item found there), then posret may indicate -1 or
532 * 1 based if the coordinate is above or below all items respectively in the
533 * genlist.
534 *
535 * @param[in] obj The object.
536 * @param[in] x The input x coordinate.
537 * @param[in] y The input y coordinate.
538 * @param[out] posret The position relative to the item returned here.
539 *
540 * @return Item at position
541 *
542 * @ingroup Elm_Genlist_Group
543 */
544EAPI Elm_Widget_Item *elm_genlist_at_xy_item_get(const Elm_Genlist *obj, int x, int y, int *posret);
545
546/**
547 * @brief Set filter mode with key.
548 *
549 * This initiates the filter mode of genlist with user/application provided
550 * key. If key is NULL, the filter mode is turned off.
551 *
552 * The filter data passed has to be managed by application itself and should
553 * not be deleted before genlist is deleted(or while filtering is not done.
554 *
555 * @param[in] obj The object.
556 * @param[in] key Filter key
557 *
558 * @ingroup Elm_Genlist_Group
559 */
560EAPI void elm_genlist_filter_set(Elm_Genlist *obj, void *key);
561
562/**
563 * @brief Returns an iterator over the list of filtered items.
564 *
565 * Return NULL if filter is not set. Application must take care of the case
566 * while calling the API. Must be freed after use.
567 *
568 * @param[in] obj The object.
569 *
570 * @return Iterator on genlist
571 *
572 * @ingroup Elm_Genlist_Group
573 */
574EAPI Eina_Iterator *elm_genlist_filter_iterator_new(Elm_Genlist *obj);
575
576/**
577 * @brief Return how many items have passed the filter currently.
578 *
579 * This behaviour is O(1) and returns the count of items which are currently
580 * passed by the filter. After "filter,done", the call returns total count of
581 * the filtered items.
582 *
583 * @param[in] obj The object.
584 *
585 * @return Count of items passing the filter
586 *
587 * @since 1.18
588 *
589 * @ingroup Elm_Genlist_Group
590 */
591EAPI unsigned int elm_genlist_filtered_items_count(const Elm_Genlist *obj);
592
593/**
594 * @brief Return how many items are currently in a list.
595 *
596 * This behavior is O(1) and includes items which may or may not be realized.
597 *
598 * @param[in] obj The object.
599 *
600 * @return Item in list
601 *
602 * @ingroup Elm_Genlist_Group
603 */
604EAPI unsigned int elm_genlist_items_count(const Elm_Genlist *obj);
605
606/**
607 * @brief Prepend a new item in a given genlist widget.
608 *
609 * This adds an item to the beginning of the list or beginning of the children
610 * of the parent if given.
611 *
612 * @param[in] obj The object.
613 * @param[in] itc The item class for the item.
614 * @param[in] data The item data.
615 * @param[in] parent The parent item, or @c null if none.
616 * @param[in] type Item type.
617 * @param[in] func Convenience function called when the item is selected.
618 * @param[in] func_data Data passed to @c func above.
619 *
620 * @return Handle to prepended item
621 *
622 * @ingroup Elm_Genlist_Group
623 */
624EAPI Elm_Widget_Item *elm_genlist_item_prepend(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
625
626/**
627 * @brief Remove all items from a given genlist widget.
628 *
629 * This removes (and deletes) all items in @c obj, leaving it empty.
630 * @param[in] obj The object.
631 *
632 * @ingroup Elm_Genlist_Group
633 */
634EAPI void elm_genlist_clear(Elm_Genlist *obj);
635
636/**
637 * @brief Append a new item in a given genlist widget.
638 *
639 * This adds the given item to the end of the list or the end of the children
640 * list if the @c parent is given.
641 *
642 * @param[in] obj The object.
643 * @param[in] itc The item class for the item.
644 * @param[in] data The item data.
645 * @param[in] parent The parent item, or @c null if none.
646 * @param[in] type Item type.
647 * @param[in] func Convenience function called when the item is selected.
648 * @param[in] func_data Data passed to @c func above.
649 *
650 * @return Handle to appended item
651 *
652 * @ingroup Elm_Genlist_Group
653 */
654EAPI Elm_Widget_Item *elm_genlist_item_append(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Evas_Smart_Cb func, const void *func_data);
655
656/**
657 * @brief Insert a new item into the sorted genlist object
658 *
659 * This inserts an item in the genlist based on user defined comparison
660 * function. The two arguments passed to the function @c func are genlist item
661 * handles to compare.
662 *
663 * @param[in] obj The object.
664 * @param[in] itc The item class for the item.
665 * @param[in] data The item data.
666 * @param[in] parent The parent item, or @c null if none.
667 * @param[in] type Item type.
668 * @param[in] comp The function called for the sort.
669 * @param[in] func Convenience function called when the item is selected.
670 * @param[in] func_data Data passed to @c func above.
671 *
672 * @return Handle to inserted item
673 *
674 * @ingroup Elm_Genlist_Group
675 */
676EAPI Elm_Widget_Item *elm_genlist_item_sorted_insert(Elm_Genlist *obj, const Elm_Genlist_Item_Class *itc, const void *data, Elm_Widget_Item *parent, Elm_Genlist_Item_Type type, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data);
677
678/**
679 * @brief Get genlist item by given string.
680 *
681 * It takes pointer to the genlist item that will be used to start search from
682 * it.
683 *
684 * This function uses globs (like "*.jpg") for searching and takes search flags
685 * as last parameter That is a bitfield with values to be ored together or 0
686 * for no flags.
687 *
688 * @param[in] obj The object.
689 * @param[in] item_to_search_from Pointer to item to start search from. If
690 * @c null, search will be started from the first item of the genlist.
691 * @param[in] part_name Name of the TEXT part of genlist item to search string
692 * in.
693 * @param[in] pattern The search pattern.
694 * @param[in] flags Search flags.
695 *
696 * @return Searched item
697 *
698 * @since 1.11
699 *
700 * @ingroup Elm_Genlist_Group
701 */
702EAPI Elm_Widget_Item *elm_genlist_search_by_text_item_get(Elm_Genlist *obj, Elm_Widget_Item *item_to_search_from, const char *part_name, const char *pattern, Elm_Glob_Match_Flags flags);
703
704#endif
diff --git a/src/lib/elementary/elm_genlist_item.eo b/src/lib/elementary/elm_genlist_item.eo
deleted file mode 100644
index 5655e7d..0000000
--- a/src/lib/elementary/elm_genlist_item.eo
+++ /dev/null
@@ -1,437 +0,0 @@
1import elm_general;
2
3class Elm.Genlist.Item extends Elm.Widget.Item.Static_Focus implements Efl.Ui.Legacy
4{
5 [[Elementary genlist item class]]
6 legacy_prefix: elm_genlist_item;
7 eo_prefix: elm_obj_genlist_item;
8 data: Elm_Gen_Item;
9 methods {
10 @property prev {
11 get {
12 [[Get the previous item in a genlist widget's internal
13 list of items, given a handle to one of those items.
14
15 This returns the item placed before the $item, on
16 the container genlist.
17
18 If filter is set on genlist, this returns the filtered
19 item placed before $item in the list.
20
21 Note that parent / child relationship is not taken into
22 account, the previous visual item is always returned,
23 could it be a parent, a child or a group item.
24
25 NULL is returned if called on the first item.
26 ]]
27 }
28 values {
29 item: Elm.Widget.Item; [[The item before $item, or $null if there's none (and on errors).]]
30 }
31 }
32 @property next {
33 get {
34 [[Get the next item in a genlist widget's internal lis
35 of items, given a handle to one of those items.
36
37 This returns the item placed after the $item, on
38 the container genlist.
39
40 If filter is set on genlist, this returns the filtered
41 item placed after $item in the list.
42
43 Note that parent / child relationship is not taken into
44 account, the next visual item is always returned, could
45 it be a parent, a child or a group item.
46
47 NULL is returned if called on the last item.
48 ]]
49 }
50 values {
51 item: Elm.Widget.Item; [[The item after $item, or $null if there's none (and on errors).]]
52 }
53 }
54 @property parent_item {
55 get {
56 [[Get the parent item of the given item
57
58 This returns the item that was specified as parent
59 of the item $it on \@ref elm_genlist_item_append
60 and insertion related functions.
61 ]]
62 legacy: elm_genlist_item_parent_get;
63 }
64 values {
65 item: Elm.Widget.Item; [[The parent of the item or $null if it has no parent.]]
66 }
67 }
68 @property subitems {
69 get {
70 [[Get the list of subitems of a given item
71
72 This returns the list of subitems that an item
73 possesses. It cannot be changed.
74
75 @since 1.9
76 ]]
77 }
78 values {
79 subitems: const(list<Elm.Widget.Item>); [[The list of subitems, $null on error.]]
80 }
81 }
82 @property selected {
83 get {
84 [[Get whether a given genlist item is selected or not.]]
85 }
86 set {
87 [[Set whether a given genlist item is selected or not
88
89 This sets the selected state of an item. If multi
90 selection is not enabled on the containing genlist
91 and $selected is $true, any other previously selected
92 items will get unselected in favor of this new one.
93 ]]
94 }
95 values {
96 selected: bool; [[The selected state ($true selected, $false not selected).]]
97 }
98 }
99 @property expanded {
100 get {
101 [[Get the expanded state of an item
102
103 This gets the expanded state of an item.
104 ]]
105 }
106 set {
107 [[Sets the expanded state of an item.
108
109 This function flags the item of type
110 #ELM_GENLIST_ITEM_TREE as expanded or not.
111
112 The theme will respond to this change visually, and
113 a signal "expanded" or "contracted" will be sent
114 from the genlist with a pointer to the item that
115 has been expanded/contracted.
116
117 Calling this function won't show or hide any child
118 of this item (if it is a parent). You must manually
119 delete and create them on the callbacks of
120 the "expanded" or "contracted" signals.
121 ]]
122 }
123 values {
124 expanded: bool; [[The expanded state ($true expanded, $false not expanded).]]
125 }
126 }
127 @property expanded_depth {
128 get {
129 [[Get the depth of expanded item.]]
130 }
131 values {
132 depth: int; [[The depth of expanded item.]]
133 }
134 }
135 @property item_class {
136 get {
137 [[Get the Genlist Item class for the given Genlist Item.
138
139 This returns the Genlist_Item_Class for the given item.
140 It can be used to examine the function pointers and
141 item_style.
142 ]]
143 }
144 values {
145 @cref itc: Elm.Genlist.Item.Class; [[Genlist Item class for the given item.]]
146 }
147 }
148 @property index {
149 get {
150 [[Get the index of the item. It is only valid once displayed.
151
152 The index start from 1.
153 ]]
154 }
155 values {
156 index: int(-1); [[The position inside the list of item.]]
157 }
158 }
159 @property decorate_mode {
160 get {
161 [[Get the item's decorate mode.
162
163 This function just returns the name of the item's
164 decorate mode.
165 ]]
166 }
167 values {
168 decorate_it_type: string; [[Name of the item's decorate mode.]]
169 }
170 }
171 @property flip {
172 get {
173 [[Get the flip state of a given genlist item.
174
175 This function returns the flip state of a given
176 genlist item. If the parameter is invalid, it
177 returns $false.
178 ]]
179 }
180 set {
181 [[Set the flip state of a given genlist item.
182
183 This function sets the flip state of a given genlist
184 item. Flip mode overrides current item object.
185 It can be used for on-the-fly item replace.
186 Flip mode can be used with/without decorate mode.
187 ]]
188 }
189 values {
190 flip: bool; [[The flip mode.]]
191 }
192 }
193 @property select_mode {
194 get {
195 [[Get the genlist item's select mode.
196
197 It's ELM_OBJECT_SELECT_MODE_MAX on failure.
198 ]]
199 }
200 set {
201 [[Set the genlist item's select mode.
202
203 ELM_OBJECT_SELECT_MODE_DEFAULT means that the item
204 will only call their selection func and callback
205 when first becoming selected. Any further clicks will
206 do nothing, unless you set always select mode.
207
208 ELM_OBJECT_SELECT_MODE_ALWAYS means that even if
209 selected, every click will make the selected
210 callbacks be called.
211
212 ELM_OBJECT_SELECT_MODE_NONE will turn off the ability
213 to select the item entirely and they will neither
214 appear selected nor call selected callback functions.
215
216 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY will apply
217 no-finger-size rule with ELM_OBJECT_SELECT_MODE_NONE.
218 No-finger-size rule makes an item can be smaller