#ifndef _EFL_UI_FOCUS_UTIL_EO_H_
#define _EFL_UI_FOCUS_UTIL_EO_H_

#ifndef _EFL_UI_FOCUS_UTIL_EO_CLASS_TYPE
#define _EFL_UI_FOCUS_UTIL_EO_CLASS_TYPE

typedef Eo Efl_Ui_Focus_Util;

#endif

#ifndef _EFL_UI_FOCUS_UTIL_EO_TYPES
#define _EFL_UI_FOCUS_UTIL_EO_TYPES


#endif
/** EFL UI Focus Util class
 *
 * @ingroup Efl_Ui_Focus_Util
 */
#define EFL_UI_FOCUS_UTIL_CLASS efl_ui_focus_util_class_get()

EWAPI const Efl_Class *efl_ui_focus_util_class_get(void);

/**
 * @brief Focus helper method
 *
 * @param[in] focus_elem Focus element
 *
 * @ingroup Efl_Ui_Focus_Util
 */
EOAPI void efl_ui_focus_util_focus(const Eo *obj, Efl_Ui_Focus_Object *focus_elem);

/**
 * @brief Get the highest manager in the redirect property
 *
 * @param[in] manager
 *
 * @ingroup Efl_Ui_Focus_Util
 */
EOAPI Efl_Ui_Focus_Manager *efl_ui_focus_util_active_manager(const Eo *obj, Efl_Ui_Focus_Manager *manager);

EOAPI Efl_Ui_Focus_Direction efl_ui_focus_util_direction_complement(const Eo *obj, Efl_Ui_Focus_Direction dir);

#endif
