#ifndef _ELM_WIDGET_ITEM_EO_H_
#define _ELM_WIDGET_ITEM_EO_H_

#ifndef _ELM_WIDGET_ITEM_EO_CLASS_TYPE
#define _ELM_WIDGET_ITEM_EO_CLASS_TYPE

typedef Eo Elm_Widget_Item;

#endif

#ifndef _ELM_WIDGET_ITEM_EO_TYPES
#define _ELM_WIDGET_ITEM_EO_TYPES


#endif
#define ELM_WIDGET_ITEM_CLASS elm_widget_item_class_get()

EAPI const Eo_Class *elm_widget_item_class_get(void) EINA_CONST;

/**
 *
 * No description supplied.
 *
 * @param[in] disable If @c EINA_TRUE, size restrictions are disabled
 *
 */
EOAPI Eina_Bool  elm_wdg_item_tooltip_window_mode_set(Eina_Bool disable);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Eina_Bool  elm_wdg_item_tooltip_window_mode_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] style the theme style used/to use (default, transparent, ...)
 *
 */
EOAPI void  elm_wdg_item_tooltip_style_set(const char *style);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI const char * elm_wdg_item_tooltip_style_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] cursor the cursor type's name
 *
 */
EOAPI void  elm_wdg_item_cursor_set(const char *cursor);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI const char * elm_wdg_item_cursor_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] style the <b>theme style</b> to use/in use (e.g. @c "default", @c "transparent", etc)
 *
 */
EOAPI void  elm_wdg_item_cursor_style_set(const char *style);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI const char * elm_wdg_item_cursor_style_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] engine_only No description supplied.
 *
 */
EOAPI void  elm_wdg_item_cursor_engine_only_set(Eina_Bool engine_only);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Eina_Bool  elm_wdg_item_cursor_engine_only_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] part The content part name  (NULL for the default content)
 * @param[in] content The content of the object item
 *
 */
EOAPI void  elm_wdg_item_part_content_set(const char * part, Evas_Object *content);

/**
 *
 * No description supplied.
 *
 * @param[in] part The content part name  (NULL for the default content)
 *
 */
EOAPI Evas_Object * elm_wdg_item_part_content_get(const char * part);

/**
 *
 * No description supplied.
 *
 * @param[in] part The text part name (NULL for the default label)
 * @param[in] label Text of the label
 *
 */
EOAPI void  elm_wdg_item_part_text_set(const char * part, const char *label);

/**
 *
 * No description supplied.
 *
 * @param[in] part The text part name (NULL for the default label)
 *
 */
EOAPI const char * elm_wdg_item_part_text_get(const char * part);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Save additional text part content
 *
 * @param[in] part No description supplied.
 * @param[in] label No description supplied.
 *
 */
EOAPI void  elm_wdg_item_part_text_custom_set(const char * part, const char *label);
#endif

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Get additional text part content
 *
 * @param[in] part No description supplied.
 *
 */
EOAPI const char * elm_wdg_item_part_text_custom_get(const char * part);
#endif

/**
 *
 * No description supplied.
 *
 * @param[in] focused The focused state
 *
 */
EOAPI void  elm_wdg_item_focus_set(Eina_Bool focused);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Eina_Bool  elm_wdg_item_focus_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] style The style of object item
 *
 */
EOAPI void  elm_wdg_item_style_set(const char *style);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI const char * elm_wdg_item_style_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] disable @c EINA_TRUE, if the widget item is disabled, @c EINA_FALSE if it's enabled (or on errors)
 *
 */
EOAPI void  elm_wdg_item_disabled_set(Eina_Bool disable);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Eina_Bool  elm_wdg_item_disabled_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] objs Order of objects to pass highlight
 *
 */
EOAPI void  elm_wdg_item_access_order_set(Eina_List *objs);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI const Eina_List * elm_wdg_item_access_order_get(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Evas_Object * elm_wdg_item_widget_get(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_del(void);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * notify deletion of widget item
 * 
 *
 *
 */
EOAPI void  elm_wdg_item_pre_notify_del(void);
#endif

/**
 *
 * No description supplied.
 *
 * @param[in] text The text to set in the content.
 *
 */
EOAPI void  elm_wdg_item_tooltip_text_set(const char *text);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Set widget item tooltip as a text string
 * 
 *
 * @param[in] text No description supplied.
 *
 */
EOAPI void  elm_wdg_item_tooltip_translatable_text_set(const char *text);
#endif

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_tooltip_unset(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_cursor_unset(void);

/**
 *
 * No description supplied.
 *
 * @param[in] part The content part name to unset (NULL for the default content)
 *
 */
EOAPI Evas_Object * elm_wdg_item_part_content_unset(const char *part);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Update additional text part content
 * 
 *
 *
 */
EOAPI void  elm_wdg_item_part_text_custom_update(void);
#endif

/**
 *
 * No description supplied.
 *
 * @param[in] emission The signal's name.
 * @param[in] source The signal's source.
 * @param[in] func The callback function to be executed when the signal is emitted.
 * @param[in] data A pointer to data to pass to the callback function.
 *
 */
EOAPI void  elm_wdg_item_signal_callback_add(const char *emission, const char *source, Elm_Object_Item_Signal_Cb func, void *data);

/**
 *
 * No description supplied.
 *
 * @param[in] emission The signal's name.
 * @param[in] source The signal's source.
 * @param[in] func The callback function to be executed when the signal is emitted.
 *
 */
EOAPI void * elm_wdg_item_signal_callback_del(const char *emission, const char *source, Elm_Object_Item_Signal_Cb func);

/**
 *
 * No description supplied.
 *
 * @param[in] emission The signal's name.
 * @param[in] source The signal's source.
 *
 */
EOAPI void  elm_wdg_item_signal_emit(const char *emission, const char *source);

/**
 *
 * No description supplied.
 *
 * @param[in] txt The text that describes the widget to people with poor or no vision
 *
 */
EOAPI void  elm_wdg_item_access_info_set(const char *txt);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Evas_Object * elm_wdg_item_access_object_get(void);

/**
 *
 * No description supplied.
 *
 * @param[in] part The name of the part to set
 * @param[in] domain The translation domain to use
 * @param[in] label The original, non-translated text to set
 *
 */
EOAPI void  elm_wdg_item_domain_translatable_part_text_set(const char *part, const char *domain, const char *label);

/**
 *
 * No description supplied.
 *
 * @param[in] part The name of the part that was set
 *
 */
EOAPI const char * elm_wdg_item_translatable_part_text_get(const char *part);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Query translate
 * 
 *
 *
 */
EOAPI void  elm_wdg_item_translate(void);
#endif

/**
 *
 * No description supplied.
 *
 * @param[in] part The part name of the translatable text
 * @param[in] domain The translation domain to use
 * @param[in] translatable @c EINA_TRUE, the part text will be translated internally. @c EINA_FALSE, otherwise.
 *
 */
EOAPI void  elm_wdg_item_domain_part_text_translatable_set(const char *part, const char *domain, Eina_Bool translatable);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Evas_Object * elm_wdg_item_track(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_untrack(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI int  elm_wdg_item_track_get(void);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * Query track_cancel
 * 
 *
 *
 */
EOAPI void  elm_wdg_item_track_cancel(void);
#endif

/**
 *
 * No description supplied.
 *
 * @param[in] del_cb The function called
 *
 */
EOAPI void  elm_wdg_item_del_cb_set(Evas_Smart_Cb del_cb);

/**
 *
 * No description supplied.
 *
 * @param[in] func the function used to create the tooltip contents.
 * @param[in] data what to provide to @a func as callback data/context.
 * @param[in] del_cb called when data is not needed anymore, either when
another callback replaces @a func, the tooltip is unset with
elm_object_item_tooltip_unset() or the owner @a item
dies. This callback receives as the first parameter the
given @a data, and @p event_info is the item.
 *
 */
EOAPI void  elm_wdg_item_tooltip_content_cb_set(Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Evas_Object * elm_wdg_item_access_register(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_access_unregister(void);

/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_access_order_unset(void);

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * No description supplied.
 *
 *
 */
EOAPI void  elm_wdg_item_disable(void);
#endif

#ifdef ELM_WIDGET_ITEM_PROTECTED
/**
 *
 * No description supplied.
 *
 *
 */
EOAPI Eina_Bool  elm_wdg_item_del_pre(void);
#endif


#endif
