summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_widget_item_eo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/elm_widget_item_eo.h')
-rw-r--r--src/lib/elementary/elm_widget_item_eo.h883
1 files changed, 883 insertions, 0 deletions
diff --git a/src/lib/elementary/elm_widget_item_eo.h b/src/lib/elementary/elm_widget_item_eo.h
new file mode 100644
index 0000000..f077e21
--- /dev/null
+++ b/src/lib/elementary/elm_widget_item_eo.h
@@ -0,0 +1,883 @@
1#ifndef _ELM_WIDGET_ITEM_EO_H_
2#define _ELM_WIDGET_ITEM_EO_H_
3
4#ifndef _ELM_WIDGET_ITEM_EO_CLASS_TYPE
5#define _ELM_WIDGET_ITEM_EO_CLASS_TYPE
6
7typedef Eo Elm_Widget_Item;
8
9#endif
10
11#ifndef _ELM_WIDGET_ITEM_EO_TYPES
12#define _ELM_WIDGET_ITEM_EO_TYPES
13
14
15#endif
16/** Elementary widget item class
17 *
18 * @ingroup Elm_Widget_Item
19 */
20#define ELM_WIDGET_ITEM_CLASS elm_widget_item_class_get()
21
22EWAPI const Efl_Class *elm_widget_item_class_get(void);
23
24/**
25 * @brief Control size restriction state of an object's tooltip
26 *
27 * This function returns whether a tooltip is allowed to expand beyond its
28 * parent window's canvas. It will instead be limited only by the size of the
29 * display.
30 *
31 * @param[in] obj The object.
32 * @param[in] disable If @c true, size restrictions are disabled
33 *
34 * @return @c false on failure, @c true on success
35 *
36 * @ingroup Elm_Widget_Item
37 */
38EOAPI Eina_Bool elm_wdg_item_tooltip_window_mode_set(Eo *obj, Eina_Bool disable);
39
40/**
41 * @brief Control size restriction state of an object's tooltip
42 *
43 * This function returns whether a tooltip is allowed to expand beyond its
44 * parent window's canvas. It will instead be limited only by the size of the
45 * display.
46 *
47 * @param[in] obj The object.
48 *
49 * @return If @c true, size restrictions are disabled
50 *
51 * @ingroup Elm_Widget_Item
52 */
53EOAPI Eina_Bool elm_wdg_item_tooltip_window_mode_get(const Eo *obj);
54
55/**
56 * @brief Control a different style for this item tooltip.
57 *
58 * @note before you set a style you should define a tooltip with
59 * @ref elm_wdg_item_tooltip_content_cb_set or
60 * @ref elm_wdg_item_tooltip_text_set
61 *
62 * See: elm_object_tooltip_style_set() for more details.
63 *
64 * @param[in] obj The object.
65 * @param[in] style The theme style used/to use (default, transparent, ...)
66 *
67 * @ingroup Elm_Widget_Item
68 */
69EOAPI void elm_wdg_item_tooltip_style_set(Eo *obj, const char *style);
70
71/**
72 * @brief Control a different style for this item tooltip.
73 *
74 * @note before you set a style you should define a tooltip with
75 * @ref elm_wdg_item_tooltip_content_cb_set or
76 * @ref elm_wdg_item_tooltip_text_set
77 *
78 * See: elm_object_tooltip_style_set() for more details.
79 *
80 * @param[in] obj The object.
81 *
82 * @return The theme style used/to use (default, transparent, ...)
83 *
84 * @ingroup Elm_Widget_Item
85 */
86EOAPI const char *elm_wdg_item_tooltip_style_get(const Eo *obj);
87
88/**
89 * @brief Control the type of mouse pointer/cursor decoration to be shown, when
90 * the mouse pointer is over the given item
91 *
92 * This function works analogously as elm_object_cursor_set(), but here the
93 * cursor's changing area is restricted to the item's area, and not the whole
94 * widget's. Note that that item cursors have precedence over widget cursors,
95 * so that a mouse over an item with custom cursor set will always show that
96 * cursor.
97 *
98 * If this function is called twice for an object, a previously set cursor will
99 * be unset on the second call.
100 *
101 * @param[in] obj The object.
102 * @param[in] cursor The cursor type's name
103 *
104 * @ingroup Elm_Widget_Item
105 */
106EOAPI void elm_wdg_item_cursor_set(Eo *obj, const char *cursor);
107
108/**
109 * @brief Control the type of mouse pointer/cursor decoration to be shown, when
110 * the mouse pointer is over the given item
111 *
112 * This function works analogously as elm_object_cursor_set(), but here the
113 * cursor's changing area is restricted to the item's area, and not the whole
114 * widget's. Note that that item cursors have precedence over widget cursors,
115 * so that a mouse over an item with custom cursor set will always show that
116 * cursor.
117 *
118 * If this function is called twice for an object, a previously set cursor will
119 * be unset on the second call.
120 *
121 * @param[in] obj The object.
122 *
123 * @return The cursor type's name
124 *
125 * @ingroup Elm_Widget_Item
126 */
127EOAPI const char *elm_wdg_item_cursor_get(const Eo *obj);
128
129/**
130 * @brief Control a different @c style for a given custom cursor set for an
131 * item.
132 *
133 * This function only makes sense when one is using custom mouse cursor
134 * decorations defined in a theme file, which can have, given a cursor
135 * name/type, alternate styles on it. It works analogously as
136 * elm_object_cursor_style_set(), but here applies only to item objects.
137 *
138 * @warning Before you set a cursor style you should have defined a custom
139 * cursor previously on the item, with @ref elm_wdg_item_cursor_set
140 *
141 * @param[in] obj The object.
142 * @param[in] style The theme style to use/in use (e.g. $"default",
143 * $"transparent", etc)
144 *
145 * @ingroup Elm_Widget_Item
146 */
147EOAPI void elm_wdg_item_cursor_style_set(Eo *obj, const char *style);
148
149/**
150 * @brief Control a different @c style for a given custom cursor set for an
151 * item.
152 *
153 * This function only makes sense when one is using custom mouse cursor
154 * decorations defined in a theme file, which can have, given a cursor
155 * name/type, alternate styles on it. It works analogously as
156 * elm_object_cursor_style_set(), but here applies only to item objects.
157 *
158 * @warning Before you set a cursor style you should have defined a custom
159 * cursor previously on the item, with @ref elm_wdg_item_cursor_set
160 *
161 * @param[in] obj The object.
162 *
163 * @return The theme style to use/in use (e.g. $"default", $"transparent", etc)
164 *
165 * @ingroup Elm_Widget_Item
166 */
167EOAPI const char *elm_wdg_item_cursor_style_get(const Eo *obj);
168
169/**
170 * @brief Control if the (custom)cursor for a given item should be searched in
171 * its theme, also, or should only rely on the rendering engine.
172 *
173 * @note This call is of use only if you've set a custom cursor for items, with
174 * @ref elm_wdg_item_cursor_set.
175 *
176 * @note By default, cursors will only be looked for between those provided by
177 * the rendering engine.
178 *
179 * @param[in] obj The object.
180 * @param[in] engine_only Use @c true to have cursors looked for only on those
181 * provided by the rendering engine, @c false to have them searched on the
182 * widget's theme, as well.
183 *
184 * @ingroup Elm_Widget_Item
185 */
186EOAPI void elm_wdg_item_cursor_engine_only_set(Eo *obj, Eina_Bool engine_only);
187
188/**
189 * @brief Control if the (custom)cursor for a given item should be searched in
190 * its theme, also, or should only rely on the rendering engine.
191 *
192 * @note This call is of use only if you've set a custom cursor for items, with
193 * @ref elm_wdg_item_cursor_set.
194 *
195 * @note By default, cursors will only be looked for between those provided by
196 * the rendering engine.
197 *
198 * @param[in] obj The object.
199 *
200 * @return Use @c true to have cursors looked for only on those provided by the
201 * rendering engine, @c false to have them searched on the widget's theme, as
202 * well.
203 *
204 * @ingroup Elm_Widget_Item
205 */
206EOAPI Eina_Bool elm_wdg_item_cursor_engine_only_get(const Eo *obj);
207
208/**
209 * @brief Control a content of an object item
210 *
211 * This sets a new object to an item as a content object. If any object was
212 * already set as a content object in the same part, previous object will be
213 * deleted automatically.
214 *
215 * @param[in] obj The object.
216 * @param[in] part The content part name (NULL for the default content)
217 * @param[in] content The content of the object item
218 *
219 * @ingroup Elm_Widget_Item
220 */
221EOAPI void elm_wdg_item_part_content_set(Eo *obj, const char *part, Efl_Canvas_Object *content);
222
223/**
224 * @brief Control a content of an object item
225 *
226 * This sets a new object to an item as a content object. If any object was
227 * already set as a content object in the same part, previous object will be
228 * deleted automatically.
229 *
230 * @param[in] obj The object.
231 * @param[in] part The content part name (NULL for the default content)
232 *
233 * @return The content of the object item
234 *
235 * @ingroup Elm_Widget_Item
236 */
237EOAPI Efl_Canvas_Object *elm_wdg_item_part_content_get(const Eo *obj, const char *part);
238
239/**
240 * @brief Control a label of an object item
241 *
242 * @note Elementary object items may have many labels
243 *
244 * @param[in] obj The object.
245 * @param[in] part The text part name (NULL for the default label)
246 * @param[in] label Text of the label
247 *
248 * @ingroup Elm_Widget_Item
249 */
250EOAPI void elm_wdg_item_part_text_set(Eo *obj, const char *part, const char *label);
251
252/**
253 * @brief Control a label of an object item
254 *
255 * @note Elementary object items may have many labels
256 *
257 * @param[in] obj The object.
258 * @param[in] part The text part name (NULL for the default label)
259 *
260 * @return Text of the label
261 *
262 * @ingroup Elm_Widget_Item
263 */
264EOAPI const char *elm_wdg_item_part_text_get(const Eo *obj, const char *part);
265
266#ifdef ELM_WIDGET_ITEM_PROTECTED
267/**
268 * @brief Save additional text part content
269 *
270 * @param[in] obj The object.
271 * @param[in] part Part name
272 * @param[in] label Label name
273 *
274 * @ingroup Elm_Widget_Item
275 */
276EOAPI void elm_wdg_item_part_text_custom_set(Eo *obj, const char *part, const char *label);
277#endif
278
279#ifdef ELM_WIDGET_ITEM_PROTECTED
280/**
281 * @brief Get additional text part content
282 *
283 * @param[in] obj The object.
284 * @param[in] part Part name
285 *
286 * @return Label name
287 *
288 * @ingroup Elm_Widget_Item
289 */
290EOAPI const char *elm_wdg_item_part_text_custom_get(const Eo *obj, const char *part);
291#endif
292
293/**
294 * @brief Control the object item focused
295 *
296 * @param[in] obj The object.
297 * @param[in] focused The focused state
298 *
299 * @since 1.10
300 *
301 * @ingroup Elm_Widget_Item
302 */
303EOAPI void elm_wdg_item_focus_set(Eo *obj, Eina_Bool focused);
304
305/**
306 * @brief Control the object item focused
307 *
308 * @param[in] obj The object.
309 *
310 * @return The focused state
311 *
312 * @since 1.10
313 *
314 * @ingroup Elm_Widget_Item
315 */
316EOAPI Eina_Bool elm_wdg_item_focus_get(const Eo *obj);
317
318/**
319 * @brief Control the style of an object item
320 *
321 * @param[in] obj The object.
322 * @param[in] style The style of object item
323 *
324 * @since 1.9
325 *
326 * @ingroup Elm_Widget_Item
327 */
328EOAPI void elm_wdg_item_style_set(Eo *obj, const char *style);
329
330/**
331 * @brief Control the style of an object item
332 *
333 * @param[in] obj The object.
334 *
335 * @return The style of object item
336 *
337 * @since 1.9
338 *
339 * @ingroup Elm_Widget_Item
340 */
341EOAPI const char *elm_wdg_item_style_get(const Eo *obj);
342
343/**
344 * @brief Control the disabled state of a widget item.
345 *
346 * Elementary object item can be disabled, in which state they won't receive
347 * input and, in general, will be themed differently from their normal state,
348 * usually greyed out. Useful for contexts where you don't want your users to
349 * interact with some of the parts of you interface.
350 *
351 * This sets the state for the widget item, either disabling it or enabling it
352 * back.
353 *
354 * @param[in] obj The object.
355 * @param[in] disable @c true, if the widget item is disabled, @c false if it's
356 * enabled (or on errors)
357 *
358 * @ingroup Elm_Widget_Item
359 */
360EOAPI void elm_wdg_item_disabled_set(Eo *obj, Eina_Bool disable);
361
362/**
363 * @brief Control the disabled state of a widget item.
364 *
365 * Elementary object item can be disabled, in which state they won't receive
366 * input and, in general, will be themed differently from their normal state,
367 * usually greyed out. Useful for contexts where you don't want your users to
368 * interact with some of the parts of you interface.
369 *
370 * This sets the state for the widget item, either disabling it or enabling it
371 * back.
372 *
373 * @param[in] obj The object.
374 *
375 * @return @c true, if the widget item is disabled, @c false if it's enabled
376 * (or on errors)
377 *
378 * @ingroup Elm_Widget_Item
379 */
380EOAPI Eina_Bool elm_wdg_item_disabled_get(const Eo *obj);
381
382/**
383 * @brief Get highlight order
384 *
385 * @param[in] obj The object.
386 *
387 * @return List of evas canvas objects
388 *
389 * @since 1.8
390 *
391 * @ingroup Elm_Widget_Item
392 */
393EOAPI const Eina_List *elm_wdg_item_access_order_get(Eo *obj);
394
395/**
396 * @brief Set highlight order
397 *
398 * @param[in] obj The object.
399 * @param[in] objs Order of objects to pass highlight
400 *
401 * @since 1.8
402 *
403 * @ingroup Elm_Widget_Item
404 */
405EOAPI void elm_wdg_item_access_order_set(Eo *obj, Eina_List *objs);
406
407/**
408 * @brief Get the widget object's handle which contains a given item
409 *
410 * @note This returns the widget object itself that an item belongs to. Note:
411 * Every elm_object_item supports this API
412 *
413 * @param[in] obj The object.
414 *
415 * @return The widget object
416 *
417 * @ingroup Elm_Widget_Item
418 */
419EOAPI Efl_Canvas_Object *elm_wdg_item_widget_get(const Eo *obj);
420
421#ifdef ELM_WIDGET_ITEM_PROTECTED
422/** notify deletion of widget item
423 *
424 * @ingroup Elm_Widget_Item
425 */
426EOAPI void elm_wdg_item_pre_notify_del(Eo *obj);
427#endif
428
429/**
430 * @brief Set the text to be shown in a given object item's tooltips.
431 *
432 * Setup the text as tooltip to object. The item can have only one tooltip, so
433 * any previous tooltip data - set with this function or
434 * @ref elm_wdg_item_tooltip_content_cb_set - is removed.
435 *
436 * See: elm_object_tooltip_text_set() for more details.
437 *
438 * @param[in] obj The object.
439 * @param[in] text The text to set in the content.
440 *
441 * @ingroup Elm_Widget_Item
442 */
443EOAPI void elm_wdg_item_tooltip_text_set(Eo *obj, const char *text);
444
445#ifdef ELM_WIDGET_ITEM_PROTECTED
446/**
447 * @brief Set widget item tooltip as a text string
448 *
449 * @param[in] obj The object.
450 * @param[in] text Tooltip text
451 *
452 * @ingroup Elm_Widget_Item
453 */
454EOAPI void elm_wdg_item_tooltip_translatable_text_set(Eo *obj, const char *text);
455#endif
456
457/**
458 * @brief Unset tooltip from item.
459 *
460 * Remove tooltip from item. The callback provided as del_cb to
461 * @ref elm_wdg_item_tooltip_content_cb_set will be called to notify it is not
462 * used anymore.
463 *
464 * See: elm_object_tooltip_unset() for more details. See:
465 * @ref elm_wdg_item_tooltip_content_cb_set
466 * @param[in] obj The object.
467 *
468 * @ingroup Elm_Widget_Item
469 */
470EOAPI void elm_wdg_item_tooltip_unset(Eo *obj);
471
472/**
473 * @brief Unset any custom mouse pointer/cursor decoration set to be shown,
474 * when the mouse pointer is over the given item, thus making it show the
475 * default cursor again.
476 *
477 * Use this call to undo any custom settings on this item's cursor decoration,
478 * bringing it back to defaults (no custom style set).
479 *
480 * See: elm_object_cursor_unset() See: @ref elm_wdg_item_cursor_set
481 * @param[in] obj The object.
482 *
483 * @ingroup Elm_Widget_Item
484 */
485EOAPI void elm_wdg_item_cursor_unset(Eo *obj);
486
487/**
488 * @brief Unset a content of an object item
489 *
490 * @note Elementary object items may have many contents
491 *
492 * @param[in] obj The object.
493 * @param[in] part The content part name to unset (NULL for the default
494 * content)
495 *
496 * @return Content object
497 *
498 * @ingroup Elm_Widget_Item
499 */
500EOAPI Efl_Canvas_Object *elm_wdg_item_part_content_unset(Eo *obj, const char *part);
501
502#ifdef ELM_WIDGET_ITEM_PROTECTED
503/** Update additional text part content
504 *
505 * @ingroup Elm_Widget_Item
506 */
507EOAPI void elm_wdg_item_part_text_custom_update(Eo *obj);
508#endif
509
510/**
511 * @brief Add a callback for a signal emitted by object item edje.
512 *
513 * This function connects a callback function to a signal emitted by the edje
514 * object of the object item. Globs can occur in either the emission or source
515 * name.
516 *
517 * @param[in] obj The object.
518 * @param[in] emission The signal's name.
519 * @param[in] source The signal's source.
520 * @param[in] func The callback function to be executed when the signal is
521 * emitted.
522 * @param[in] data A pointer to data to pass to the callback function.
523 *
524 * @since 1.8
525 *
526 * @ingroup Elm_Widget_Item
527 */
528EOAPI void elm_wdg_item_signal_callback_add(Eo *obj, const char *emission, const char *source, Elm_Object_Item_Signal_Cb func, void *data);
529
530/**
531 * @brief Remove a signal-triggered callback from a object item edje object.
532 *
533 * This function removes the last callback, previously attached to a signal
534 * emitted by an underlying Edje object of @c it, whose parameters @c emission,
535 * @c source and @c func match exactly with those passed to a previous call to
536 * @ref elm_wdg_item_signal_callback_add. The data pointer that was passed to
537 * this call will be returned.
538 *
539 * See: @ref elm_wdg_item_signal_callback_add
540 *
541 * @param[in] obj The object.
542 * @param[in] emission The signal's name.
543 * @param[in] source The signal's source.
544 * @param[in] func The callback function to be executed when the signal is
545 * emitted.
546 *
547 * @return The data pointer of the signal callback or @c NULL, on errors.
548 *
549 * @since 1.8
550 *
551 * @ingroup Elm_Widget_Item
552 */
553EOAPI void *elm_wdg_item_signal_callback_del(Eo *obj, const char *emission, const char *source, Elm_Object_Item_Signal_Cb func);
554
555/**
556 * @brief Send a signal to the edje object of the widget item.
557 *
558 * This function sends a signal to the edje object of the obj item. An edje
559 * program can respond to a signal by specifying matching 'signal' and 'source'
560 * fields. Don't use this unless you want to also handle resetting of part
561 * states to default on every unrealize in case of genlist/gengrid.
562 *
563 * @param[in] obj The object.
564 * @param[in] emission The signal's name.
565 * @param[in] source The signal's source.
566 *
567 * @ingroup Elm_Widget_Item
568 */
569EOAPI void elm_wdg_item_signal_emit(Eo *obj, const char *emission, const char *source);
570
571/**
572 * @brief Set the text to read out when in accessibility mode
573 *
574 * @param[in] obj The object.
575 * @param[in] txt The text that describes the widget to people with poor or no
576 * vision
577 *
578 * @ingroup Elm_Widget_Item
579 */
580EOAPI void elm_wdg_item_access_info_set(Eo *obj, const char *txt);
581
582/**
583 * @brief Get an accessible object of the object item.
584 *
585 * @param[in] obj The object.
586 *
587 * @return Accessible object of the object item or NULL for any error
588 *
589 * @since 1.8
590 *
591 * @ingroup Elm_Widget_Item
592 */
593EOAPI Efl_Canvas_Object *elm_wdg_item_access_object_get(const Eo *obj);
594
595/**
596 * @brief Set the text for an object item's part, marking it as translatable.
597 *
598 * The string to set as @c text must be the original one. Do not pass the
599 * return of @c gettext() here. Elementary will translate the string internally
600 * and set it on the object item using @ref elm_wdg_item_part_text_set, also
601 * storing the original string so that it can be automatically translated when
602 * the language is changed with elm_language_set(). The @c domain will be
603 * stored along to find the translation in the correct catalog. It can be NULL,
604 * in which case it will use whatever domain was set by the application with
605 * @c textdomain(). This is useful in case you are building a library on top of
606 * Elementary that will have its own translatable strings, that should not be
607 * mixed with those of programs using the library.
608 *
609 * @param[in] obj The object.
610 * @param[in] part The name of the part to set
611 * @param[in] domain The translation domain to use
612 * @param[in] label The original, non-translated text to set
613 *
614 * @since 1.8
615 *
616 * @ingroup Elm_Widget_Item
617 */
618EOAPI void elm_wdg_item_domain_translatable_part_text_set(Eo *obj, const char *part, const char *domain, const char *label);
619
620/**
621 * @brief Get the original string set as translatable for an object item.
622 *
623 * When setting translated strings, the function
624 * @ref elm_wdg_item_part_text_get will return the translation returned by
625 * @c gettext(). To get the original string use this function.
626 *
627 * @param[in] obj The object.
628 * @param[in] part The name of the part that was set
629 *
630 * @return The original, untranslated string
631 *
632 * @since 1.8
633 *
634 * @ingroup Elm_Widget_Item
635 */
636EOAPI const char *elm_wdg_item_translatable_part_text_get(const Eo *obj, const char *part);
637
638#ifdef ELM_WIDGET_ITEM_PROTECTED
639/** Query translate
640 *
641 * @ingroup Elm_Widget_Item
642 */
643EOAPI void elm_wdg_item_translate(Eo *obj);
644#endif
645
646/**
647 * @brief Mark the part text to be translatable or not.
648 *
649 * Once you mark the part text to be translatable, the text will be translated
650 * internally regardless of @ref elm_wdg_item_part_text_set and
651 * @ref elm_wdg_item_domain_translatable_part_text_set. In other case, if you
652 * set the Elementary policy that all text will be translatable in default, you
653 * can set the part text to not be translated by calling this API.
654 *
655 * See: @ref elm_wdg_item_domain_translatable_part_text_set See:
656 * @ref elm_wdg_item_part_text_set See: elm_policy()
657 *
658 * @param[in] obj The object.
659 * @param[in] part The part name of the translatable text
660 * @param[in] domain The translation domain to use
661 * @param[in] translatable @c true, the part text will be translated
662 * internally. @c false, otherwise.
663 *
664 * @since 1.8
665 *
666 * @ingroup Elm_Widget_Item
667 */
668EOAPI void elm_wdg_item_domain_part_text_translatable_set(Eo *obj, const char *part, const char *domain, Eina_Bool translatable);
669
670/**
671 * @brief This returns track object of the item.
672 *
673 * @note This gets a rectangle object that represents the object item's
674 * internal object. If you want to check the geometry, visibility of the item,
675 * you can call the evas apis such as evas_object_geometry_get(),
676 * evas_object_visible_get() to the track object. Note that all of the widget
677 * items may/may not have the internal object so this api may return @c NULL if
678 * the widget item doesn't have it. Additionally, the widget item is
679 * managed/controlled by the widget, the widget item could be changed(moved,
680 * resized even deleted) anytime by it's own widget's decision. So please dont'
681 * change the track object as well as don't keep the track object in your side
682 * as possible but get the track object at the moment you need to refer.
683 * Otherwise, you need to add some callbacks to the track object to track it's
684 * attributes changes.
685 *
686 * @warning After use the track object, please call the
687 * @ref elm_wdg_item_untrack() paired to elm_object_item_track definitely to
688 * free the track object properly. Don't delete the track object.
689 *
690 * See: @ref elm_wdg_item_untrack See: @ref elm_wdg_item_track_get
691 *
692 * @param[in] obj The object.
693 *
694 * @return The track object
695 *
696 * @since 1.8
697 *
698 * @ingroup Elm_Widget_Item
699 */
700EOAPI Efl_Canvas_Object *elm_wdg_item_track(Eo *obj);
701
702/**
703 * @brief This retrieve the track object of the item.
704 *
705 * @note This retrieves the track object that was returned from
706 * @ref elm_wdg_item_track.
707 *
708 * See: @ref elm_wdg_item_track See: @ref elm_wdg_item_track_get
709 *
710 * @param[in] obj The object.
711 *
712 * @since 1.8
713 *
714 * @ingroup Elm_Widget_Item
715 */
716EOAPI void elm_wdg_item_untrack(Eo *obj);
717
718/**
719 * @brief Get the track object reference count.
720 *
721 * @note This gets the reference count for the track object. Whenever you call
722 * the @ref elm_wdg_item_track, the reference count will be increased by one.
723 * Likely the reference count will be decreased again when you call the
724 * @ref elm_wdg_item_untrack. Unless the reference count reaches to zero, the
725 * track object won't be deleted. So please be sure to call
726 * @ref elm_wdg_item_untrack() paired to the elm_object_item_track call count.
727 *
728 * See: @ref elm_wdg_item_track See: @ref elm_wdg_item_track_get
729 *
730 * @param[in] obj The object.
731 *
732 * @return Track object reference count
733 *
734 * @since 1.8
735 *
736 * @ingroup Elm_Widget_Item
737 */
738EOAPI int elm_wdg_item_track_get(const Eo *obj);
739
740#ifdef ELM_WIDGET_ITEM_PROTECTED
741/** Query track_cancel
742 *
743 * @ingroup Elm_Widget_Item
744 */
745EOAPI void elm_wdg_item_track_cancel(Eo *obj);
746#endif
747
748/**
749 * @brief Set the function to be called when an item from the widget is freed.
750 *
751 * @note Every elm_object_item supports this API
752 *
753 * @param[in] obj The object.
754 * @param[in] del_cb The function called
755 *
756 * @ingroup Elm_Widget_Item
757 */
758EOAPI void elm_wdg_item_del_cb_set(Eo *obj, Evas_Smart_Cb del_cb);
759
760/**
761 * @brief Set the content to be shown in the tooltip item.
762 *
763 * Setup the tooltip to item. The item can have only one tooltip, so any
764 * previous tooltip data is removed. @c func(with @c data) will be called every
765 * time that need show the tooltip and it should return a valid Evas_Object.
766 * This object is then managed fully by tooltip system and is deleted when the
767 * tooltip is gone.
768 *
769 * See: elm_object_tooltip_content_cb_set() for more details.
770 *
771 * @param[in] obj The object.
772 * @param[in] func The function used to create the tooltip contents.
773 * @param[in] data What to provide to @c func as callback data/context.
774 * @param[in] del_cb Called when data is not needed anymore, either when
775 * another callback replaces @c func, the tooltip is unset with
776 * @ref elm_wdg_item_tooltip_unset or the owner @c item dies. This callback
777 * receives as the first parameter the given @c data, and @c event_info is the
778 * item.
779 *
780 * @ingroup Elm_Widget_Item
781 */
782EOAPI void elm_wdg_item_tooltip_content_cb_set(Eo *obj, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);
783
784/**
785 * @brief Register object item as an accessible object.
786 *
787 * @param[in] obj The object.
788 *
789 * @return Accessible object of the object item or NULL for any error
790 *
791 * @since 1.8
792 *
793 * @ingroup Elm_Widget_Item
794 */
795EOAPI Efl_Canvas_Object *elm_wdg_item_access_register(Eo *obj);
796
797/** Unregister accessible object of the object item.
798 *
799 * @since 1.8
800 *
801 * @ingroup Elm_Widget_Item
802 */
803EOAPI void elm_wdg_item_access_unregister(Eo *obj);
804
805/** Unset highlight order
806 *
807 * @since 1.8
808 *
809 * @ingroup Elm_Widget_Item
810 */
811EOAPI void elm_wdg_item_access_order_unset(Eo *obj);
812
813#ifdef ELM_WIDGET_ITEM_PROTECTED
814/** Disable widget item
815 *
816 * @ingroup Elm_Widget_Item
817 */
818EOAPI void elm_wdg_item_disable(Eo *obj);
819#endif
820
821#ifdef ELM_WIDGET_ITEM_PROTECTED
822/** Delete pre widget item
823 *
824 * @ingroup Elm_Widget_Item
825 */
826EOAPI void elm_wdg_item_del_pre(Eo *obj);
827#endif
828
829/**
830 * @brief Get the next object with specific focus direction.
831 *
832 * @param[in] obj The object.
833 * @param[in] dir Focus direction
834 *
835 * @return Focus next object
836 *
837 * @since 1.16
838 *
839 * @ingroup Elm_Widget_Item
840 */
841EOAPI Efl_Canvas_Object *elm_wdg_item_focus_next_object_get(const Eo *obj, Elm_Focus_Direction dir);
842
843/**
844 * @brief Set the next object with specific focus direction.
845 *
846 * @param[in] obj The object.
847 * @param[in] next Focus next object
848 * @param[in] dir Focus direction
849 *
850 * @since 1.16
851 *
852 * @ingroup Elm_Widget_Item
853 */
854EOAPI void elm_wdg_item_focus_next_object_set(Eo *obj, Efl_Canvas_Object *next, Elm_Focus_Direction dir);
855
856/**
857 * @brief Get the next object item with specific focus direction.
858 *
859 * @param[in] obj The object.
860 * @param[in] dir Focus direction
861 *
862 * @return Focus next object item
863 *
864 * @since 1.16
865 *
866 * @ingroup Elm_Widget_Item
867 */
868EOAPI Elm_Widget_Item *elm_wdg_item_focus_next_item_get(const Eo *obj, Elm_Focus_Direction dir);
869
870/**
871 * @brief Set the next object item with specific focus direction.
872 *
873 * @param[in] obj The object.
874 * @param[in] next_item Focus next object item
875 * @param[in] dir Focus direction
876 *
877 * @since 1.16
878 *
879 * @ingroup Elm_Widget_Item
880 */
881EOAPI void elm_wdg_item_focus_next_item_set(Eo *obj, Elm_Widget_Item *next_item, Elm_Focus_Direction dir);
882
883#endif