#ifndef _ELM_SCROLLER_EO_H_
#define _ELM_SCROLLER_EO_H_

/**

 */
#define ELM_OBJ_SCROLLER_CLASS elm_obj_scroller_class_get()

const Eo_Class *elm_obj_scroller_class_get(void) EINA_CONST;

/**
 * @def elm_obj_scroller_propagate_events_set
 *
 * @brief Set event propagation on a scroller
 *
 * This enables or disables event propagation from the scroller
 * content to the scroller and its parent. By default event
 * propagation is @b enabled.
 *
 * @ingroup Scroller
 *
 * @param[in] propagation If propagation is enabled or not
 *
 */
EAPI void  elm_obj_scroller_propagate_events_set(Eina_Bool propagation);

/**
 * @def elm_obj_scroller_propagate_events_get
 *
 * @brief Get event propagation for a scroller
 *
 * @return The propagation state
 *
 * This gets the event propagation for a scroller.
 *
 * @see elm_scroller_propagate_events_set()
 *
 * @ingroup Scroller
 *
 *
 */
EAPI Eina_Bool  elm_obj_scroller_propagate_events_get(void);

/**
 * @def elm_obj_scroller_custom_widget_base_theme_set
 *
 * Set custom theme elements for the scroller
 *
 * @param[in] klass No description supplied.
 * @param[in] group No description supplied.
 *
 */
EAPI void  elm_obj_scroller_custom_widget_base_theme_set(const char *klass, const char *group);

/**
 * @def elm_obj_scroller_page_scroll_limit_set
 *
 * @brief Set the maxium of the movable page at a flicking.
 *
 * The value of maxium movable page should be more than 1.
 *
 * @see elm_scroller_page_scroll_limit_get()
 *
 * @since 1.8
 *
 * @ingroup Scroller
 *
 * @param[in] page_limit_h The maxium of the movable horizontal page
 * @param[in] page_limit_v The maxium of the movable vertical page
 *
 */
EAPI void  elm_obj_scroller_page_scroll_limit_set(int page_limit_h, int page_limit_v);

/**
 * @def elm_obj_scroller_page_scroll_limit_get
 *
 * @brief Get the maxium of the movable page at a flicking.
 *
 * @see elm_scroller_page_scroll_limit_set()
 *
 * @since 1.8
 *
 * @ingroup Scroller
 *
 * @param[in] page_limit_h The maxium of the movable horizontal page
 * @param[in] page_limit_v The maxium of the movable vertical page
 *
 */
EAPI void  elm_obj_scroller_page_scroll_limit_get(int *page_limit_h, int *page_limit_v);

EAPI extern const Eo_Event_Description _ELM_SCROLLER_EVENT_FOCUSED;
EAPI extern const Eo_Event_Description _ELM_SCROLLER_EVENT_UNFOCUSED;

/**
 * No description
 */
#define ELM_SCROLLER_EVENT_FOCUSED (&(_ELM_SCROLLER_EVENT_FOCUSED))

/**
 * No description
 */
#define ELM_SCROLLER_EVENT_UNFOCUSED (&(_ELM_SCROLLER_EVENT_UNFOCUSED))

#endif