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