Rename mbe shrink_mode to expanded. Consistent with genlist naming.
[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      elm_object_scroll_hold_push(Evas_Object *obj);
31
32 /**
33  * Pop the scroll hold by 1
34  *
35  * This decrements the scroll hold count by one. If it is more than 0 it will
36  * take effect on the parents of the indicated object.
37  *
38  * @param obj The object
39  * @ingroup Scrollhints
40  */
41 EAPI void      elm_object_scroll_hold_pop(Evas_Object *obj);
42
43 /**
44  * Push the scroll freeze by 1
45  *
46  * This increments the scroll freeze count by one. If it is more
47  * than 0 it will take effect on the parents of the indicated
48  * object.
49  *
50  * @param obj The object
51  * @ingroup Scrollhints
52  */
53 EAPI void      elm_object_scroll_freeze_push(Evas_Object *obj);
54
55 /**
56  * Pop the scroll freeze by 1
57  *
58  * This decrements the scroll freeze count by one. If it is more
59  * than 0 it will take effect on the parents of the indicated
60  * object.
61  *
62  * @param obj The object
63  * @ingroup Scrollhints
64  */
65 EAPI void      elm_object_scroll_freeze_pop(Evas_Object *obj);
66
67 /**
68  * Lock the scrolling of the given widget (and thus all parents)
69  *
70  * This locks the given object from scrolling in the X axis (and implicitly
71  * also locks all parent scrollers too from doing the same).
72  *
73  * @param obj The object
74  * @param lock The lock state (1 == locked, 0 == unlocked)
75  * @ingroup Scrollhints
76  */
77 EAPI void      elm_object_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock);
78
79 /**
80  * Lock the scrolling of the given widget (and thus all parents)
81  *
82  * This locks the given object from scrolling in the Y axis (and implicitly
83  * also locks all parent scrollers too from doing the same).
84  *
85  * @param obj The object
86  * @param lock The lock state (1 == locked, 0 == unlocked)
87  * @ingroup Scrollhints
88  */
89 EAPI void      elm_object_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock);
90
91 /**
92  * Get the scrolling lock of the given widget
93  *
94  * This gets the lock for X axis scrolling.
95  *
96  * @param obj The object
97  * @ingroup Scrollhints
98  */
99 EAPI Eina_Bool elm_object_scroll_lock_x_get(const Evas_Object *obj);
100
101 /**
102  * Get the scrolling lock of the given widget
103  *
104  * This gets the lock for Y axis scrolling.
105  *
106  * @param obj The object
107  * @ingroup Scrollhints
108  */
109 EAPI Eina_Bool elm_object_scroll_lock_y_get(const Evas_Object *obj);
110
111 /**
112  * @}
113  */