efl/src/lib/elementary/elm_scroll.h

168 lines
4.5 KiB
C

/**
* @defgroup Elm_Scrollhints Scrollhints
* @ingroup Elementary
*
* Objects when inside a scroller can scroll, but this may not always be
* desirable in certain situations. This allows an object to hint to itself
* and parents to "not scroll" in one of 2 ways. If any child object of a
* scroller has pushed a scroll freeze or hold then it affects all parent
* scrollers until all children have released them.
*
* 1. To hold on scrolling. This means just flicking and dragging may no
* longer scroll, but pressing/dragging near an edge of the scroller will
* still scroll. This is automatically used by the entry object when
* selecting text.
*
* 2. To totally freeze scrolling. This means it stops. until
* popped/released.
*
* @{
*/
/**
* Push the scroll hold by 1
*
* This increments the scroll hold count by one. If it is more than 0 it will
* take effect on the parents of the indicated object.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_hold_push(Evas_Object *obj);
/**
* Pop the scroll hold by 1
*
* This decrements the scroll hold count by one. If it is more than 0 it will
* take effect on the parents of the indicated object.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_hold_pop(Evas_Object *obj);
/**
* Get the scroll hold by 1
*
* This gets the scroll hold count by one.
*
* @param obj The object
* @return The scroll hold count
* @since 1.7
* @ingroup Elm_Scrollhints
*/
EAPI int elm_object_scroll_hold_get(const Evas_Object *obj);
/**
* Push the scroll freeze by 1
*
* This increments the scroll freeze count by one. If it is more
* than 0 it will take effect on the parents of the indicated
* object.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_freeze_push(Evas_Object *obj);
/**
* Pop the scroll freeze by 1
*
* This decrements the scroll freeze count by one. If it is more
* than 0 it will take effect on the parents of the indicated
* object.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_freeze_pop(Evas_Object *obj);
/**
* Get the scroll freeze by 1
*
* This gets the scroll freeze count by one.
*
* @param obj The object
* @return The scroll freeze count
* @since 1.7
* @ingroup Elm_Scrollhints
*/
EAPI int elm_object_scroll_freeze_get(const Evas_Object *obj);
/**
* Lock the scrolling of the given widget (and thus all parents)
*
* This locks the given object from scrolling in the X axis (and implicitly
* also locks all parent scrollers too from doing the same).
*
* @param obj The object
* @param lock The lock state (1 == locked, 0 == unlocked)
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock);
/**
* Lock the scrolling of the given widget (and thus all parents)
*
* This locks the given object from scrolling in the Y axis (and implicitly
* also locks all parent scrollers too from doing the same).
*
* @param obj The object
* @param lock The lock state (1 == locked, 0 == unlocked)
* @ingroup Elm_Scrollhints
*/
EAPI void elm_object_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock);
/**
* Get the scrolling lock of the given widget
*
* This gets the lock for X axis scrolling.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI Eina_Bool elm_object_scroll_lock_x_get(const Evas_Object *obj);
/**
* Get the scrolling lock of the given widget
*
* This gets the lock for Y axis scrolling.
*
* @param obj The object
* @ingroup Elm_Scrollhints
*/
EAPI Eina_Bool elm_object_scroll_lock_y_get(const Evas_Object *obj);
/**
* Enable item loop feature of the given widget
*
* If @p enable is @c EINA_TRUE, item selection/focus will loop internally.
* This means if arrow keys are pressed at end of scroller's item,
* screen is moved to opposite side.
*
* @param obj The object
* @param enable item loop feature (@c EINA_TRUE == enable, @c EINA_FALSE == disable)
*
* @see elm_object_scroll_item_loop_enabled_get()
* @since 1.10
* @ingroup Scrollitem
*/
EAPI void elm_object_scroll_item_loop_enabled_set(Evas_Object *obj, Eina_Bool enable);
/**
* Get the item loop enable status of the given widget
*
* This gets the item loop enabled status.
*
* @param obj The object
*
* @see elm_objecdt_scroll_item_enabled_set()
* @since 1.10
* @ingroup Scrollitem
*/
EAPI Eina_Bool elm_object_scroll_item_loop_enabled_get(const Evas_Object *obj);
/**
* @}
*/