#ifndef _ELM_APP_SERVER_VIEW_EO_H_
#define _ELM_APP_SERVER_VIEW_EO_H_

#ifndef _ELM_APP_SERVER_VIEW_EO_CLASS_TYPE
#define _ELM_APP_SERVER_VIEW_EO_CLASS_TYPE

typedef Eo Elm_App_Server_View;

#endif

#ifndef _ELM_APP_SERVER_VIEW_EO_TYPES
#define _ELM_APP_SERVER_VIEW_EO_TYPES


#endif
#define ELM_APP_SERVER_VIEW_CLASS elm_app_server_view_class_get()

EWAPI const Eo_Class *elm_app_server_view_class_get(void);

EOAPI void elm_app_server_view_progress_set(Eo *obj, short progress);

EOAPI short elm_app_server_view_progress_get(const Eo *obj);

EOAPI void elm_app_server_view_new_events_set(Eo *obj, int events);

EOAPI int elm_app_server_view_new_events_get(const Eo *obj);

EOAPI void elm_app_server_view_icon_set(Eo *obj, const char *icon);

EOAPI const char *elm_app_server_view_icon_get(const Eo *obj);

EOAPI void elm_app_server_view_title_set(Eo *obj, const char *title);

EOAPI const char *elm_app_server_view_title_get(const Eo *obj);

EOAPI void elm_app_server_view_window_set(Eo *obj, Efl_Canvas_Object *win);

EOAPI void elm_app_server_view_id_set(Eo *obj, const char *ret);

EOAPI const char *elm_app_server_view_id_get(const Eo *obj);

EOAPI Elm_App_View_State elm_app_server_view_state_get(const Eo *obj);

EOAPI const char *elm_app_server_view_path_get(const Eo *obj);

/**
 * @brief Set icon to application, using the raw pixels of image.
 *
 * @param[in] w
 * @param[in] h
 * @param[in] has_alpha
 * @param[in] pixels
 *
 * @ingroup Elm_App_Server_View
 */
EOAPI void elm_app_server_view_pixels_set(Eo *obj, unsigned int w, unsigned int h, Eina_Bool has_alpha, const unsigned char *pixels);

/**
 * @brief Get application raw icon.
 *
 * @param[out] w
 * @param[out] h
 * @param[out] has_alpha
 * @param[out] pixels
 *
 * @ingroup Elm_App_Server_View
 */
EOAPI void elm_app_server_view_pixels_get(const Eo *obj, unsigned int *w, unsigned int *h, Eina_Bool *has_alpha, const unsigned char **pixels);

EOAPI void elm_app_server_view_pause(Eo *obj);

EOAPI void elm_app_server_view_resume(Eo *obj);

EOAPI void elm_app_server_view_shallow(Eo *obj);

EOAPI void elm_app_server_view_close(Eo *obj);

EOAPI extern const Eo_Event_Description _ELM_APP_SERVER_VIEW_EVENT_RESUMED;
EOAPI extern const Eo_Event_Description _ELM_APP_SERVER_VIEW_EVENT_PAUSED;
EOAPI extern const Eo_Event_Description _ELM_APP_SERVER_VIEW_EVENT_CLOSED;
EOAPI extern const Eo_Event_Description _ELM_APP_SERVER_VIEW_EVENT_SHALLOW;
EOAPI extern const Eo_Event_Description _ELM_APP_SERVER_VIEW_EVENT_SAVE;

/** Called when view must be resumed
 *
 * @ingroup Elm_App_Server_View
 */
#define ELM_APP_SERVER_VIEW_EVENT_RESUMED (&(_ELM_APP_SERVER_VIEW_EVENT_RESUMED))

/** Called when view must be paused
 *
 * @ingroup Elm_App_Server_View
 */
#define ELM_APP_SERVER_VIEW_EVENT_PAUSED (&(_ELM_APP_SERVER_VIEW_EVENT_PAUSED))

/** Called when view must be closed
 *
 * @ingroup Elm_App_Server_View
 */
#define ELM_APP_SERVER_VIEW_EVENT_CLOSED (&(_ELM_APP_SERVER_VIEW_EVENT_CLOSED))

/** Called when view state is set to shallow
 *
 * @ingroup Elm_App_Server_View
 */
#define ELM_APP_SERVER_VIEW_EVENT_SHALLOW (&(_ELM_APP_SERVER_VIEW_EVENT_SHALLOW))

/** Called when view state should be saved
 *
 * @ingroup Elm_App_Server_View
 */
#define ELM_APP_SERVER_VIEW_EVENT_SAVE (&(_ELM_APP_SERVER_VIEW_EVENT_SAVE))

#endif
