elementary/diskselector - Elm_Diskselector_Item -> Elm_Object_Item
[framework/uifw/elementary.git] / src / lib / elm_diskselector.h
1 /**
2  * @defgroup Diskselector Diskselector
3  * @ingroup Elementary
4  *
5  * @image html img/widget/diskselector/preview-00.png
6  * @image latex img/widget/diskselector/preview-00.eps
7  *
8  * A diskselector is a kind of list widget. It scrolls horizontally,
9  * and can contain label and icon objects. Three items are displayed
10  * with the selected one in the middle.
11  *
12  * It can act like a circular list with round mode and labels can be
13  * reduced for a defined length for side items.
14  *
15  * Smart callbacks one can listen to:
16  * - "selected" - when item is selected, i.e. scroller stops.
17  *
18  * Available styles for it:
19  * - @c "default"
20  *
21  * List of examples:
22  * @li @ref diskselector_example_01
23  * @li @ref diskselector_example_02
24  */
25
26 /**
27  * @addtogroup Diskselector
28  * @{
29  */
30
31 /**
32  * Add a new diskselector widget to the given parent Elementary
33  * (container) object.
34  *
35  * @param parent The parent object.
36  * @return a new diskselector widget handle or @c NULL, on errors.
37  *
38  * This function inserts a new diskselector widget on the canvas.
39  *
40  * @ingroup Diskselector
41  */
42 EAPI Evas_Object           *elm_diskselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
43
44 /**
45  * Enable or disable round mode.
46  *
47  * @param obj The diskselector object.
48  * @param round @c EINA_TRUE to enable round mode or @c EINA_FALSE to
49  * disable it.
50  *
51  * Disabled by default. If round mode is enabled the items list will
52  * work like a circle list, so when the user reaches the last item,
53  * the first one will popup.
54  *
55  * @see elm_diskselector_round_get()
56  *
57  * @ingroup Diskselector
58  */
59 EAPI void                   elm_diskselector_round_set(Evas_Object *obj, Eina_Bool round) EINA_ARG_NONNULL(1);
60
61 /**
62  * Get a value whether round mode is enabled or not.
63  *
64  * @see elm_diskselector_round_set() for details.
65  *
66  * @param obj The diskselector object.
67  * @return @c EINA_TRUE means round mode is enabled. @c EINA_FALSE indicates
68  * it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
69  *
70  * @ingroup Diskselector
71  */
72 EAPI Eina_Bool              elm_diskselector_round_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
73
74 /**
75  * Get the side labels max length.
76  *
77  * @deprecated use elm_diskselector_side_label_length_get() instead:
78  *
79  * @param obj The diskselector object.
80  * @return The max length defined for side labels, or 0 if not a valid
81  * diskselector.
82  *
83  * @ingroup Diskselector
84  */
85 EINA_DEPRECATED EAPI int    elm_diskselector_side_label_lenght_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
86
87 /**
88  * Set the side labels max length.
89  *
90  * @deprecated use elm_diskselector_side_label_length_set() instead:
91  *
92  * @param obj The diskselector object.
93  * @param len The max length defined for side labels.
94  *
95  * @ingroup Diskselector
96  */
97 EINA_DEPRECATED EAPI void   elm_diskselector_side_label_lenght_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
98
99 /**
100  * Get the side labels max length.
101  *
102  * @see elm_diskselector_side_label_length_set() for details.
103  *
104  * @param obj The diskselector object.
105  * @return The max length defined for side labels, or 0 if not a valid
106  * diskselector.
107  *
108  * @ingroup Diskselector
109  */
110 EAPI int                    elm_diskselector_side_label_length_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
111
112 /**
113  * Set the side labels max length.
114  *
115  * @param obj The diskselector object.
116  * @param len The max length defined for side labels.
117  *
118  * Length is the number of characters of items' label that will be
119  * visible when it's set on side positions. It will just crop
120  * the string after defined size. E.g.:
121  *
122  * An item with label "January" would be displayed on side position as
123  * "Jan" if max length is set to 3, or "Janu", if this property
124  * is set to 4.
125  *
126  * When it's selected, the entire label will be displayed, except for
127  * width restrictions. In this case label will be cropped and "..."
128  * will be concatenated.
129  *
130  * Default side label max length is 3.
131  *
132  * This property will be applyed over all items, included before or
133  * later this function call.
134  *
135  * @ingroup Diskselector
136  */
137 EAPI void                   elm_diskselector_side_label_length_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
138
139 /**
140  * Set the number of items to be displayed.
141  *
142  * @param obj The diskselector object.
143  * @param num The number of items the diskselector will display.
144  *
145  * Default value is 3, and also it's the minimun. If @p num is less
146  * than 3, it will be set to 3.
147  *
148  * Also, it can be set on theme, using data item @c display_item_num
149  * on group "elm/diskselector/item/X", where X is style set.
150  * E.g.:
151  *
152  * group { name: "elm/diskselector/item/X";
153  * data {
154  *     item: "display_item_num" "5";
155  *     }
156  *
157  * @ingroup Diskselector
158  */
159 EAPI void                   elm_diskselector_display_item_num_set(Evas_Object *obj, int num) EINA_ARG_NONNULL(1);
160
161 /**
162  * Get the number of items in the diskselector object.
163  *
164  * @param obj The diskselector object.
165  *
166  * @ingroup Diskselector
167  */
168 EAPI int                   elm_diskselector_display_item_num_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
169
170 /**
171  * Set bouncing behaviour when the scrolled content reaches an edge.
172  *
173  * Tell the internal scroller object whether it should bounce or not
174  * when it reaches the respective edges for each axis.
175  *
176  * @param obj The diskselector object.
177  * @param h_bounce Whether to bounce or not in the horizontal axis.
178  * @param v_bounce Whether to bounce or not in the vertical axis.
179  *
180  * @see elm_scroller_bounce_set()
181  *
182  * @ingroup Diskselector
183  */
184 EAPI void                   elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
185
186 /**
187  * Get the bouncing behaviour of the internal scroller.
188  *
189  * Get whether the internal scroller should bounce when the edge of each
190  * axis is reached scrolling.
191  *
192  * @param obj The diskselector object.
193  * @param h_bounce Pointer where to store the bounce state of the horizontal
194  * axis.
195  * @param v_bounce Pointer where to store the bounce state of the vertical
196  * axis.
197  *
198  * @see elm_scroller_bounce_get()
199  * @see elm_diskselector_bounce_set()
200  *
201  * @ingroup Diskselector
202  */
203 EAPI void                   elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
204
205 /**
206  * Get the scrollbar policy.
207  *
208  * @see elm_diskselector_scroller_policy_get() for details.
209  *
210  * @param obj The diskselector object.
211  * @param policy_h Pointer where to store horizontal scrollbar policy.
212  * @param policy_v Pointer where to store vertical scrollbar policy.
213  *
214  * @ingroup Diskselector
215  */
216 EAPI void                   elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
217
218 /**
219  * Set the scrollbar policy.
220  *
221  * @param obj The diskselector object.
222  * @param policy_h Horizontal scrollbar policy.
223  * @param policy_v Vertical scrollbar policy.
224  *
225  * This sets the scrollbar visibility policy for the given scroller.
226  * #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made visible if it
227  * is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON turns
228  * it on all the time, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
229  * This applies respectively for the horizontal and vertical scrollbars.
230  *
231  * The both are disabled by default, i.e., are set to
232  * #ELM_SCROLLER_POLICY_OFF.
233  *
234  * @ingroup Diskselector
235  */
236 EAPI void                   elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
237
238 /**
239  * Remove all diskselector's items.
240  *
241  * @param obj The diskselector object.
242  *
243  * @see elm_diskselector_item_del()
244  * @see elm_diskselector_item_append()
245  *
246  * @ingroup Diskselector
247  */
248 EAPI void                   elm_diskselector_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
249
250 /**
251  * Get a list of all the diskselector items.
252  *
253  * @param obj The diskselector object.
254  * @return An @c Eina_List of diskselector items, #Elm_Object_Item,
255  * or @c NULL on failure.
256  *
257  * @see elm_diskselector_item_append()
258  * @see elm_diskselector_item_del()
259  * @see elm_diskselector_clear()
260  *
261  * @ingroup Diskselector
262  */
263 EAPI const Eina_List       *elm_diskselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
264
265 /**
266  * Appends a new item to the diskselector object.
267  *
268  * @param obj The diskselector object.
269  * @param label The label of the diskselector item.
270  * @param icon The icon object to use at left side of the item. An
271  * icon can be any Evas object, but usually it is an icon created
272  * with elm_icon_add().
273  * @param func The function to call when the item is selected.
274  * @param data The data to associate with the item for related callbacks.
275  *
276  * @return The created item or @c NULL upon failure.
277  *
278  * A new item will be created and appended to the diskselector, i.e., will
279  * be set as last item. Also, if there is no selected item, it will
280  * be selected. This will always happens for the first appended item.
281  *
282  * If no icon is set, label will be centered on item position, otherwise
283  * the icon will be placed at left of the label, that will be shifted
284  * to the right.
285  *
286  * Items created with this method can be deleted with
287  * elm_diskselector_item_del().
288  *
289  * Associated @p data can be properly freed when item is deleted if a
290  * callback function is set with elm_diskselector_item_del_cb_set().
291  *
292  * If a function is passed as argument, it will be called everytime this item
293  * is selected, i.e., the user stops the diskselector with this
294  * item on center position. If such function isn't needed, just passing
295  * @c NULL as @p func is enough. The same should be done for @p data.
296  *
297  * Simple example (with no function callback or data associated):
298  * @code
299  * disk = elm_diskselector_add(win);
300  * ic = elm_icon_add(win);
301  * elm_icon_file_set(ic, "path/to/image", NULL);
302  * elm_icon_scale_set(ic, EINA_TRUE, EINA_TRUE);
303  * elm_diskselector_item_append(disk, "label", ic, NULL, NULL);
304  * @endcode
305  *
306  * @see elm_diskselector_item_del()
307  * @see elm_diskselector_item_del_cb_set()
308  * @see elm_diskselector_clear()
309  * @see elm_icon_add()
310  *
311  * @ingroup Diskselector
312  */
313 EAPI Elm_Object_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
314
315
316 /**
317  * Delete them item from the diskselector.
318  *
319  * @param it The item of diskselector to be deleted.
320  *
321  * If deleting all diskselector items is required, elm_diskselector_clear()
322  * should be used instead of getting items list and deleting each one.
323  *
324  * @see elm_diskselector_clear()
325  * @see elm_diskselector_item_append()
326  * @see elm_diskselector_item_del_cb_set()
327  *
328  * @ingroup Diskselector
329  */
330 EAPI void                   elm_diskselector_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
331
332 /**
333  * Set the function called when a diskselector item is freed.
334  *
335  * @param it The item to set the callback on
336  * @param func The function called
337  *
338  * If there is a @p func, then it will be called prior item's memory release.
339  * That will be called with the following arguments:
340  * @li item's data;
341  * @li item's Evas object;
342  * @li item itself;
343  *
344  * This way, a data associated to a diskselector item could be properly
345  * freed.
346  *
347  * @ingroup Diskselector
348  */
349 EAPI void                   elm_diskselector_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
350
351 /**
352  * Get the data associated to the item.
353  *
354  * @param it The diskselector item
355  * @return The data associated to @p it
356  *
357  * The return value is a pointer to data associated to @p item when it was
358  * created, with function elm_diskselector_item_append(). If no data
359  * was passed as argument, it will return @c NULL.
360  *
361  * @see elm_diskselector_item_append()
362  *
363  * @ingroup Diskselector
364  */
365 EAPI void                  *elm_diskselector_item_data_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
366
367 /**
368  * Set the icon associated to the item.
369  *
370  * @param it The diskselector item
371  * @param icon The icon object to associate with @p it
372  *
373  * The icon object to use at left side of the item. An
374  * icon can be any Evas object, but usually it is an icon created
375  * with elm_icon_add().
376  *
377  * Once the icon object is set, a previously set one will be deleted.
378  * @warning Setting the same icon for two items will cause the icon to
379  * dissapear from the first item.
380  *
381  * If an icon was passed as argument on item creation, with function
382  * elm_diskselector_item_append(), it will be already
383  * associated to the item.
384  *
385  * @see elm_diskselector_item_append()
386  * @see elm_diskselector_item_icon_get()
387  *
388  * @ingroup Diskselector
389  */
390 EAPI void                   elm_diskselector_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
391
392 /**
393  * Get the icon associated to the item.
394  *
395  * @param item The diskselector item
396  * @return The icon associated to @p it
397  *
398  * The return value is a pointer to the icon associated to @p item when it was
399  * created, with function elm_diskselector_item_append(), or later
400  * with function elm_diskselector_item_icon_set. If no icon
401  * was passed as argument, it will return @c NULL.
402  *
403  * @see elm_diskselector_item_append()
404  * @see elm_diskselector_item_icon_set()
405  *
406  * @ingroup Diskselector
407  */
408 EAPI Evas_Object           *elm_diskselector_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
409
410 /**
411  * Set the label of item.
412  *
413  * @param it The item of diskselector.
414  * @param label The label of item.
415  *
416  * The label to be displayed by the item.
417  *
418  * If no icon is set, label will be centered on item position, otherwise
419  * the icon will be placed at left of the label, that will be shifted
420  * to the right.
421  *
422  * An item with label "January" would be displayed on side position as
423  * "Jan" if max length is set to 3 with function
424  * elm_diskselector_side_label_lenght_set(), or "Janu", if this property
425  * is set to 4.
426  *
427  * When this @p item is selected, the entire label will be displayed,
428  * except for width restrictions.
429  * In this case label will be cropped and "..." will be concatenated,
430  * but only for display purposes. It will keep the entire string, so
431  * if diskselector is resized the remaining characters will be displayed.
432  *
433  * If a label was passed as argument on item creation, with function
434  * elm_diskselector_item_append(), it will be already
435  * displayed by the item.
436  *
437  * @see elm_diskselector_side_label_lenght_set()
438  * @see elm_diskselector_item_label_get()
439  * @see elm_diskselector_item_append()
440  *
441  * @ingroup Diskselector
442  */
443 EAPI void                   elm_diskselector_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
444
445 /**
446  * Get the label of item.
447  *
448  * @param it The item of diskselector.
449  * @return The label of item.
450  *
451  * The return value is a pointer to the label associated to @p item when it was
452  * created, with function elm_diskselector_item_append(), or later
453  * with function elm_diskselector_item_label_set. If no label
454  * was passed as argument, it will return @c NULL.
455  *
456  * @see elm_diskselector_item_label_set() for more details.
457  * @see elm_diskselector_item_append()
458  *
459  * @ingroup Diskselector
460  */
461 EAPI const char            *elm_diskselector_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
462
463 /**
464  * Get the selected item.
465  *
466  * @param obj The diskselector object.
467  * @return The selected diskselector item.
468  *
469  * The selected item can be unselected with function
470  * elm_diskselector_item_selected_set(), and the first item of
471  * diskselector will be selected.
472  *
473  * The selected item always will be centered on diskselector, with
474  * full label displayed, i.e., max lenght set to side labels won't
475  * apply on the selected item. More details on
476  * elm_diskselector_side_label_length_set().
477  *
478  * @ingroup Diskselector
479  */
480 EAPI Elm_Object_Item *elm_diskselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
481
482 /**
483  * Set the selected state of an item.
484  *
485  * @param it The diskselector item
486  * @param selected The selected state
487  *
488  * This sets the selected state of the given item @p it.
489  * @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
490  *
491  * If a new item is selected the previosly selected will be unselected.
492  * Previoulsy selected item can be get with function
493  * elm_diskselector_selected_item_get().
494  *
495  * If the item @p it is unselected, the first item of diskselector will
496  * be selected.
497  *
498  * Selected items will be visible on center position of diskselector.
499  * So if it was on another position before selected, or was invisible,
500  * diskselector will animate items until the selected item reaches center
501  * position.
502  *
503  * @see elm_diskselector_item_selected_get()
504  * @see elm_diskselector_selected_item_get()
505  *
506  * @ingroup Diskselector
507  */
508 EAPI void                   elm_diskselector_item_selected_set(Elm_Object_Item *it, Eina_Bool selected) EINA_ARG_NONNULL(1);
509
510 /*
511  * Get whether the @p item is selected or not.
512  *
513  * @param it The diskselector item.
514  * @return @c EINA_TRUE means item is selected. @c EINA_FALSE indicates
515  * it's not. If @p obj is @c NULL, @c EINA_FALSE is returned.
516  *
517  * @see elm_diskselector_selected_item_set() for details.
518  * @see elm_diskselector_item_selected_get()
519  *
520  * @ingroup Diskselector
521  */
522 EAPI Eina_Bool              elm_diskselector_item_selected_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
523
524 /**
525  * Get the first item of the diskselector.
526  *
527  * @param obj The diskselector object.
528  * @return The first item, or @c NULL if none.
529  *
530  * The list of items follows append order. So it will return the first
531  * item appended to the widget that wasn't deleted.
532  *
533  * @see elm_diskselector_item_append()
534  * @see elm_diskselector_items_get()
535  *
536  * @ingroup Diskselector
537  */
538 EAPI Elm_Object_Item *elm_diskselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
539
540 /**
541  * Get the last item of the diskselector.
542  *
543  * @param obj The diskselector object.
544  * @return The last item, or @c NULL if none.
545  *
546  * The list of items follows append order. So it will return last first
547  * item appended to the widget that wasn't deleted.
548  *
549  * @see elm_diskselector_item_append()
550  * @see elm_diskselector_items_get()
551  *
552  * @ingroup Diskselector
553  */
554 EAPI Elm_Object_Item *elm_diskselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
555
556 /**
557  * Get the item before @p item in diskselector.
558  *
559  * @param it The diskselector item.
560  * @return The item before @p item, or @c NULL if none or on failure.
561  *
562  * The list of items follows append order. So it will return item appended
563  * just before @p item and that wasn't deleted.
564  *
565  * If it is the first item, @c NULL will be returned.
566  * First item can be get by elm_diskselector_first_item_get().
567  *
568  * @see elm_diskselector_item_append()
569  * @see elm_diskselector_items_get()
570  *
571  * @ingroup Diskselector
572  */
573 EAPI Elm_Object_Item *elm_diskselector_item_prev_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
574
575 /**
576  * Get the item after @p item in diskselector.
577  *
578  * @param it The diskselector item.
579  * @return The item after @p item, or @c NULL if none or on failure.
580  *
581  * The list of items follows append order. So it will return item appended
582  * just after @p item and that wasn't deleted.
583  *
584  * If it is the last item, @c NULL will be returned.
585  * Last item can be get by elm_diskselector_last_item_get().
586  *
587  * @see elm_diskselector_item_append()
588  * @see elm_diskselector_items_get()
589  *
590  * @ingroup Diskselector
591  */
592 EAPI Elm_Object_Item *elm_diskselector_item_next_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
593
594 /**
595  * Set the text to be shown in the diskselector item.
596  *
597  * @param it Target item
598  * @param text The text to set in the content
599  *
600  * Setup the text as tooltip to object. The item can have only one tooltip,
601  * so any previous tooltip data is removed.
602  *
603  * @see elm_object_tooltip_text_set() for more details.
604  *
605  * @ingroup Diskselector
606  */
607 EAPI void                   elm_diskselector_item_tooltip_text_set(Elm_Object_Item *it, const char *text) EINA_ARG_NONNULL(1);
608
609 /**
610  * Set the content to be shown in the tooltip item.
611  *
612  * Setup the tooltip to item. The item can have only one tooltip,
613  * so any previous tooltip data is removed. @p func(with @p data) will
614  * be called every time that need show the tooltip and it should
615  * return a valid Evas_Object. This object is then managed fully by
616  * tooltip system and is deleted when the tooltip is gone.
617  *
618  * @param it the diskselector item being attached a tooltip.
619  * @param func the function used to create the tooltip contents.
620  * @param data what to provide to @a func as callback data/context.
621  * @param del_cb called when data is not needed anymore, either when
622  *        another callback replaces @p func, the tooltip is unset with
623  *        elm_diskselector_item_tooltip_unset() or the owner @a item
624  *        dies. This callback receives as the first parameter the
625  *        given @a data, and @c event_info is the item.
626  *
627  * @see elm_object_tooltip_content_cb_set() for more details.
628  *
629  * @ingroup Diskselector
630  */
631 EAPI void                   elm_diskselector_item_tooltip_content_cb_set(Elm_Object_Item *it, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
632
633 /**
634  * Unset tooltip from item.
635  *
636  * @param it diskselector item to remove previously set tooltip.
637  *
638  * Remove tooltip from item. The callback provided as del_cb to
639  * elm_diskselector_item_tooltip_content_cb_set() will be called to notify
640  * it is not used anymore.
641  *
642  * @see elm_object_tooltip_unset() for more details.
643  * @see elm_diskselector_item_tooltip_content_cb_set()
644  *
645  * @ingroup Diskselector
646  */
647 EAPI void                   elm_diskselector_item_tooltip_unset(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
648
649 /**
650  * Sets a different style for this item tooltip.
651  *
652  * @note before you set a style you should define a tooltip with
653  *       elm_diskselector_item_tooltip_content_cb_set() or
654  *       elm_diskselector_item_tooltip_text_set()
655  *
656  * @param it diskselector item with tooltip already set.
657  * @param style the theme style to use (default, transparent, ...)
658  *
659  * @see elm_object_tooltip_style_set() for more details.
660  *
661  * @ingroup Diskselector
662  */
663 EAPI void                   elm_diskselector_item_tooltip_style_set(Elm_Object_Item *it, const char *style) EINA_ARG_NONNULL(1);
664
665 /**
666  * Get the style for this item tooltip.
667  *
668  * @param it diskselector item with tooltip already set.
669  * @return style the theme style in use, defaults to "default". If the
670  *         object does not have a tooltip set, then NULL is returned.
671  *
672  * @see elm_object_tooltip_style_get() for more details.
673  * @see elm_diskselector_item_tooltip_style_set()
674  *
675  * @ingroup Diskselector
676  */
677 EAPI const char            *elm_diskselector_item_tooltip_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
678
679 /**
680  * Set the cursor to be shown when mouse is over the diskselector item
681  *
682  * @param it Target item
683  * @param cursor the cursor name to be used.
684  *
685  * @see elm_object_cursor_set() for more details.
686  *
687  * @ingroup Diskselector
688  */
689 EAPI void                   elm_diskselector_item_cursor_set(Elm_Object_Item *it, const char *cursor) EINA_ARG_NONNULL(1);
690
691 /**
692  * Get the cursor to be shown when mouse is over the diskselector item
693  *
694  * @param it diskselector item with cursor already set.
695  * @return the cursor name.
696  *
697  * @see elm_object_cursor_get() for more details.
698  * @see elm_diskselector_cursor_set()
699  *
700  * @ingroup Diskselector
701  */
702 EAPI const char            *elm_diskselector_item_cursor_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
703
704 /**
705  * Unset the cursor to be shown when mouse is over the diskselector item
706  *
707  * @param it Target item
708  *
709  * @see elm_object_cursor_unset() for more details.
710  * @see elm_diskselector_cursor_set()
711  *
712  * @ingroup Diskselector
713  */
714 EAPI void                   elm_diskselector_item_cursor_unset(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
715
716 /**
717  * Sets a different style for this item cursor.
718  *
719  * @note before you set a style you should define a cursor with
720  *       elm_diskselector_item_cursor_set()
721  *
722  * @param it diskselector item with cursor already set.
723  * @param style the theme style to use (default, transparent, ...)
724  *
725  * @see elm_object_cursor_style_set() for more details.
726  *
727  * @ingroup Diskselector
728  */
729 EAPI void                   elm_diskselector_item_cursor_style_set(Elm_Object_Item *it, const char *style) EINA_ARG_NONNULL(1);
730
731 /**
732  * Get the style for this item cursor.
733  *
734  * @param it diskselector item with cursor already set.
735  * @return style the theme style in use, defaults to "default". If the
736  *         object does not have a cursor set, then @c NULL is returned.
737  *
738  * @see elm_object_cursor_style_get() for more details.
739  * @see elm_diskselector_item_cursor_style_set()
740  *
741  * @ingroup Diskselector
742  */
743 EAPI const char            *elm_diskselector_item_cursor_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
744
745
746 /**
747  * Set if the cursor set should be searched on the theme or should use
748  * the provided by the engine, only.
749  *
750  * @note before you set if should look on theme you should define a cursor
751  * with elm_diskselector_item_cursor_set().
752  * By default it will only look for cursors provided by the engine.
753  *
754  * @param it widget item with cursor already set.
755  * @param engine_only boolean to define if cursors set with
756  * elm_diskselector_item_cursor_set() should be searched only
757  * between cursors provided by the engine or searched on widget's
758  * theme as well.
759  *
760  * @see elm_object_cursor_engine_only_set() for more details.
761  *
762  * @ingroup Diskselector
763  */
764 EAPI void                   elm_diskselector_item_cursor_engine_only_set(Elm_Object_Item *it, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
765
766 /**
767  * Get the cursor engine only usage for this item cursor.
768  *
769  * @param it widget item with cursor already set.
770  * @return engine_only boolean to define it cursors should be looked only
771  * between the provided by the engine or searched on widget's theme as well.
772  * If the item does not have a cursor set, then @c EINA_FALSE is returned.
773  *
774  * @see elm_object_cursor_engine_only_get() for more details.
775  * @see elm_diskselector_item_cursor_engine_only_set()
776  *
777  * @ingroup Diskselector
778  */
779 EAPI Eina_Bool              elm_diskselector_item_cursor_engine_only_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
780
781 /**
782  * @}
783  */
784