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