fomatting of headers -> fixup. and documentation fixing.
[framework/uifw/elementary.git] / src / lib / elm_scroll.h
1 /**
2  * @defgroup Scrollhints Scrollhints
3  *
4  * Objects when inside a scroller can scroll, but this may not always be
5  * desirable in certain situations. This allows an object to hint to itself
6  * and parents to "not scroll" in one of 2 ways. If any child object of a
7  * scroller has pushed a scroll freeze or hold then it affects all parent
8  * scrollers until all children have released them.
9  *
10  * 1. To hold on scrolling. This means just flicking and dragging may no
11  * longer scroll, but pressing/dragging near an edge of the scroller will
12  * still scroll. This is automatically used by the entry object when
13  * selecting text.
14  *
15  * 2. To totally freeze scrolling. This means it stops. until
16  * popped/released.
17  *
18  * @{
19  */
20
21 /**
22  * Push the scroll hold by 1
23  *
24  * This increments the scroll hold count by one. If it is more than 0 it will
25  * take effect on the parents of the indicated object.
26  *
27  * @param obj The object
28  * @ingroup Scrollhints
29  */
30 EAPI void
31                elm_object_scroll_hold_push(Evas_Object *obj)
32 EINA_ARG_NONNULL(1);
33
34 /**
35  * Pop the scroll hold by 1
36  *
37  * This decrements the scroll hold count by one. If it is more than 0 it will
38  * take effect on the parents of the indicated object.
39  *
40  * @param obj The object
41  * @ingroup Scrollhints
42  */
43 EAPI void      elm_object_scroll_hold_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
44
45 /**
46  * Push the scroll freeze by 1
47  *
48  * This increments the scroll freeze count by one. If it is more
49  * than 0 it will take effect on the parents of the indicated
50  * object.
51  *
52  * @param obj The object
53  * @ingroup Scrollhints
54  */
55 EAPI void      elm_object_scroll_freeze_push(Evas_Object *obj) EINA_ARG_NONNULL(1);
56
57 /**
58  * Pop the scroll freeze by 1
59  *
60  * This decrements the scroll freeze count by one. If it is more
61  * than 0 it will take effect on the parents of the indicated
62  * object.
63  *
64  * @param obj The object
65  * @ingroup Scrollhints
66  */
67 EAPI void      elm_object_scroll_freeze_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
68
69 /**
70  * Lock the scrolling of the given widget (and thus all parents)
71  *
72  * This locks the given object from scrolling in the X axis (and implicitly
73  * also locks all parent scrollers too from doing the same).
74  *
75  * @param obj The object
76  * @param lock The lock state (1 == locked, 0 == unlocked)
77  * @ingroup Scrollhints
78  */
79 EAPI void      elm_object_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
80
81 /**
82  * Lock the scrolling of the given widget (and thus all parents)
83  *
84  * This locks the given object from scrolling in the Y axis (and implicitly
85  * also locks all parent scrollers too from doing the same).
86  *
87  * @param obj The object
88  * @param lock The lock state (1 == locked, 0 == unlocked)
89  * @ingroup Scrollhints
90  */
91 EAPI void      elm_object_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock) EINA_ARG_NONNULL(1);
92
93 /**
94  * Get the scrolling lock of the given widget
95  *
96  * This gets the lock for X axis scrolling.
97  *
98  * @param obj The object
99  * @ingroup Scrollhints
100  */
101 EAPI Eina_Bool elm_object_scroll_lock_x_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
102
103 /**
104  * Get the scrolling lock of the given widget
105  *
106  * This gets the lock for X axis scrolling.
107  *
108  * @param obj The object
109  * @ingroup Scrollhints
110  */
111 EAPI Eina_Bool elm_object_scroll_lock_y_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
112
113 /**
114  * @}
115  */