#ifndef _EFL_SCREEN_EO_H_
#define _EFL_SCREEN_EO_H_

#ifndef _EFL_SCREEN_EO_CLASS_TYPE
#define _EFL_SCREEN_EO_CLASS_TYPE

typedef Eo Efl_Screen;

#endif

#ifndef _EFL_SCREEN_EO_TYPES
#define _EFL_SCREEN_EO_TYPES


#endif
/** Efl screen interface
 *
 * @ingroup Efl_Screen
 */
#define EFL_SCREEN_INTERFACE efl_screen_interface_get()

EWAPI const Efl_Class *efl_screen_interface_get(void);

/**
 * @brief Get screen geometry details for the screen that a window is on.
 *
 * Note that on some display systems this information is not available (this
 * could be the case Wayland for instance).
 *
 * @param[in] obj The object.
 *
 * @return The screen size.
 *
 * @ingroup Efl_Screen
 */
EOAPI Eina_Size2D efl_screen_size_get(const Eo *obj);

/**
 * @brief Get the rotation of the screen.
 *
 * Most engines only return multiples of 90.
 *
 * @param[in] obj The object.
 *
 * @return The degree of the screen.
 *
 * @since 1.19
 *
 * @ingroup Efl_Screen
 */
EOAPI int efl_screen_rotation_get(const Eo *obj);

/**
 * @brief Get screen dpi for the screen that a window is on.
 *
 * @param[in] obj The object.
 * @param[out] xdpi Pointer to value to store return horizontal dpi. May be
 * @c null.
 * @param[out] ydpi Pointer to value to store return vertical dpi. May be
 * @c null.
 *
 * @since 1.7
 *
 * @ingroup Efl_Screen
 */
EOAPI void efl_screen_dpi_get(const Eo *obj, int *xdpi, int *ydpi);

#endif
