/** * @defgroup Mapbuf Mapbuf * @ingroup Elementary * * @image html mapbuf_inheritance_tree.png * @image latex mapbuf_inheritance_tree.eps * * @image html img/widget/mapbuf/preview-00.png * @image latex img/widget/mapbuf/preview-00.eps width=\textwidth * * This holds one content object and uses an Evas Map of transformation * points to be later used with this content. So the content will be * moved, resized, etc as a single image. So it will improve performance * when you have a complex interface, with a lot of elements, and will * need to resize or move it frequently (the content object and its * children). * * This widget inherits from @ref elm-container-class, so that the * functions meant to act on it will work for mapbuf objects: * * @li @ref elm_object_part_content_set * @li @ref elm_object_part_content_get * @li @ref elm_object_part_content_unset * * Default content parts of the mapbuf widget that you can use are: * @li "default" - The main content of the mapbuf * * To enable map, elm_mapbuf_enabled_set() should be used. * * See how to use this widget in this example: * @ref mapbuf_example */ #define ELM_OBJ_MAPBUF_CLASS elm_obj_mapbuf_class_get() const Eo_Class *elm_obj_mapbuf_class_get(void) EINA_CONST; extern EAPI Eo_Op ELM_OBJ_MAPBUF_BASE_ID; enum { ELM_OBJ_MAPBUF_SUB_ID_ENABLED_SET, ELM_OBJ_MAPBUF_SUB_ID_ENABLED_GET, ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_SET, ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_GET, ELM_OBJ_MAPBUF_SUB_ID_ALPHA_SET, ELM_OBJ_MAPBUF_SUB_ID_ALPHA_GET, ELM_OBJ_MAPBUF_SUB_ID_AUTO_SET, ELM_OBJ_MAPBUF_SUB_ID_AUTO_GET, ELM_OBJ_MAPBUF_SUB_ID_LAST }; #define ELM_OBJ_MAPBUF_ID(sub_id) (ELM_OBJ_MAPBUF_BASE_ID + sub_id) /** * @def elm_obj_mapbuf_enabled_set * @since 1.8 * * Enable or disable the map. * * @param[in] enabled * * @see elm_mapbuf_enabled_set */ #define elm_obj_mapbuf_enabled_set(enabled) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_SET), EO_TYPECHECK(Eina_Bool, enabled) /** * @def elm_obj_mapbuf_enabled_get * @since 1.8 * * Get a value whether map is enabled or not. * * @param[out] ret * * @see elm_mapbuf_enabled_get */ #define elm_obj_mapbuf_enabled_get(ret) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ENABLED_GET), EO_TYPECHECK(Eina_Bool *, ret) /** * @def elm_obj_mapbuf_smooth_set * @since 1.8 * * Enable or disable smooth map rendering. * * @param[in] smooth * * @see elm_mapbuf_smooth_set */ #define elm_obj_mapbuf_smooth_set(smooth) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_SET), EO_TYPECHECK(Eina_Bool, smooth) /** * @def elm_obj_mapbuf_smooth_get * @since 1.8 * * Get a value whether smooth map rendering is enabled or not. * * @param[out] ret * * @see elm_mapbuf_smooth_get */ #define elm_obj_mapbuf_smooth_get(ret) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_SMOOTH_GET), EO_TYPECHECK(Eina_Bool *, ret) /** * @def elm_obj_mapbuf_alpha_set * @since 1.8 * * Set or unset alpha flag for map rendering. * * @param[in] alpha * * @see elm_mapbuf_alpha_set */ #define elm_obj_mapbuf_alpha_set(alpha) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_SET), EO_TYPECHECK(Eina_Bool, alpha) /** * @def elm_obj_mapbuf_alpha_get * @since 1.8 * * Get a value whether alpha blending is enabled or not. * * @param[out] ret * * @see elm_mapbuf_alpha_get */ #define elm_obj_mapbuf_alpha_get(ret) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_ALPHA_GET), EO_TYPECHECK(Eina_Bool *, ret) /** * @def elm_obj_mapbuf_auto_set * @since 1.8 * * Set or unset automatic flag for map rendering. * * @param[in] on * * @see elm_mapbuf_auto_set */ #define elm_obj_mapbuf_auto_set(on) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_AUTO_SET), EO_TYPECHECK(Eina_Bool, on) /** * @def elm_obj_mapbuf_auto_get * @since 1.8 * * Get a value automatic map mode is enabled ore not. * * @param[out] ret * * @see elm_mapbuf_auto_get */ #define elm_obj_mapbuf_auto_get(ret) ELM_OBJ_MAPBUF_ID(ELM_OBJ_MAPBUF_SUB_ID_AUTO_GET), EO_TYPECHECK(Eina_Bool *, ret) /** * @addtogroup Mapbuf * @{ */ /** * Add a new mapbuf widget to the given parent Elementary * (container) object. * * @param parent The parent object. * @return A new mapbuf widget handle or @c NULL, on errors. * * This function inserts a new mapbuf widget on the canvas. * * @ingroup Mapbuf */ EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent); /** * Enable or disable the map. * * @param obj The mapbuf object. * @param enabled @c EINA_TRUE to enable map or @c EINA_FALSE to disable it. * * This enables the map that is set or disables it. On enable, the object * geometry will be saved, and the new geometry will change (position and * size) to reflect the map geometry set. * * Also, when enabled, alpha and smooth states will be used, so if the * content isn't solid, alpha should be enabled, for example, otherwise * a black rectangle will fill the content. * * When disabled, the stored map will be freed and geometry prior to * enabling the map will be restored. * * It's disabled by default. * * @see elm_mapbuf_alpha_set() * @see elm_mapbuf_smooth_set() * * @ingroup Mapbuf */ EAPI void elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled); /** * Get a value whether map is enabled or not. * * @param obj The mapbuf object. * @return @c EINA_TRUE means map is enabled. @c EINA_FALSE indicates * it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. * * @see elm_mapbuf_enabled_set() for details. * * @ingroup Mapbuf */ EAPI Eina_Bool elm_mapbuf_enabled_get(const Evas_Object *obj); /** * Enable or disable smooth map rendering. * * @param obj The mapbuf object. * @param smooth @c EINA_TRUE to enable smooth map rendering or @c EINA_FALSE * to disable it. * * This sets smoothing for map rendering. If the object is a type that has * its own smoothing settings, then both the smooth settings for this object * and the map must be turned off. * * By default smooth maps are enabled. * * @ingroup Mapbuf */ EAPI void elm_mapbuf_smooth_set(Evas_Object *obj, Eina_Bool smooth); /** * Get a value whether smooth map rendering is enabled or not. * * @param obj The mapbuf object. * @return @c EINA_TRUE means smooth map rendering is enabled. @c EINA_FALSE * indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. * * @see elm_mapbuf_smooth_set() for details. * * @ingroup Mapbuf */ EAPI Eina_Bool elm_mapbuf_smooth_get(const Evas_Object *obj); /** * Set or unset alpha flag for map rendering. * * @param obj The mapbuf object. * @param alpha @c EINA_TRUE to enable alpha blending or @c EINA_FALSE * to disable it. * * This sets alpha flag for map rendering. If the object is a type that has * its own alpha settings, then this will take precedence. Only image objects * have this currently. It stops alpha blending of the map area, and is * useful if you know the object and/or all sub-objects is 100% solid. * * Alpha is enabled by default. * * @ingroup Mapbuf */ EAPI void elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha); /** * Get a value whether alpha blending is enabled or not. * * @param obj The mapbuf object. * @return @c EINA_TRUE means alpha blending is enabled. @c EINA_FALSE * indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. * * @see elm_mapbuf_alpha_set() for details. * * @ingroup Mapbuf */ EAPI Eina_Bool elm_mapbuf_alpha_get(const Evas_Object *obj); /** * Set or unset auto flag for map rendering. * * @param obj The mapbuf object. * @param on @c EINA_TRUE to enable auto mode or @c EINA_FALSE * to disable it. * * When a ampbuf object has "auto mode" enabled, then it will enable and * disable map mode based on current visibility. Mapbuf will track if you show * or hide it AND if the object is inside the canvas viewport or not when it * is moved or resized. Note that if you turn automode off, then map mode * will be in a disabled state at this point. When you turn it on for the * first time, the current state will be evaluated base on current properties * of the mapbuf object. * * Auto mode is disabled by default. * * @ingroup Mapbuf */ EAPI void elm_mapbuf_auto_set(Evas_Object *obj, Eina_Bool on); /** * Get a value whether auto mode is enabled or not. * * @param obj The mapbuf object. * @return @c EINA_TRUE means autso mode is enabled. @c EINA_FALSE * indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned. * * @see elm_mapbuf_auto_set() for details. * * @ingroup Mapbuf */ EAPI Eina_Bool elm_mapbuf_auto_get(const Evas_Object *obj); /** * @} */