#ifndef _EFL_CANVAS_SCALE_ANIMATION_EO_H_ #define _EFL_CANVAS_SCALE_ANIMATION_EO_H_ #ifndef _EFL_CANVAS_SCALE_ANIMATION_EO_CLASS_TYPE #define _EFL_CANVAS_SCALE_ANIMATION_EO_CLASS_TYPE typedef Eo Efl_Canvas_Scale_Animation; #endif #ifndef _EFL_CANVAS_SCALE_ANIMATION_EO_TYPES #define _EFL_CANVAS_SCALE_ANIMATION_EO_TYPES #endif /** * @brief Animated scaling effect. * * The @ref Efl_Canvas_Object will have its size and position changed due to a * scaling operation around a specified pivot point. Coordinates for the pivot * point can be relative to the object or absolute (relative to the containing * canvas). * * @note Changing an object's geometry using @ref efl_gfx_entity_position_get * or @ref efl_gfx_entity_size_get while this animation is running might lead * to unexpected results. * * @since 1.24 * * @ingroup Efl_Canvas_Scale_Animation */ #define EFL_CANVAS_SCALE_ANIMATION_CLASS efl_canvas_scale_animation_class_get() EVAS_API EVAS_API_WEAK const Efl_Class *efl_canvas_scale_animation_class_get(void) EINA_CONST; /** * @brief Scale range and pivot object. The object's scale will change from * @c from_scale to @c to_scale. All of the object's vertices (i.e. the * corners, if it's a rectangular object) will be multiplied by this scale, * relative to the pivot point inside the pivot object. The pivot point is * another object @c pivot plus an additional offset @c center_point. * * @param[in] obj The object. * @param[in] from_scale Initial scale value. * @param[in] to_scale Ending scale value. * @param[in] pivot Object to use as pivot. @c NULL means the animated object * itself. * @param[in] center_point Position in pixels of the pivot point inside the * pivot object. (0,0) means the upper-left corner. * * @since 1.24 * * @ingroup Efl_Canvas_Scale_Animation */ EVAS_API EVAS_API_WEAK void efl_animation_scale_set(Eo *obj, Eina_Vector2 from_scale, Eina_Vector2 to_scale, Efl_Canvas_Object *pivot, Eina_Vector2 center_point); /** * @brief Scale range and pivot object. The object's scale will change from * @c from_scale to @c to_scale. All of the object's vertices (i.e. the * corners, if it's a rectangular object) will be multiplied by this scale, * relative to the pivot point inside the pivot object. The pivot point is * another object @c pivot plus an additional offset @c center_point. * * @param[in] obj The object. * @param[out] from_scale Initial scale value. * @param[out] to_scale Ending scale value. * @param[out] pivot Object to use as pivot. @c NULL means the animated object * itself. * @param[out] center_point Position in pixels of the pivot point inside the * pivot object. (0,0) means the upper-left corner. * * @since 1.24 * * @ingroup Efl_Canvas_Scale_Animation */ EVAS_API EVAS_API_WEAK void efl_animation_scale_get(const Eo *obj, Eina_Vector2 *from_scale, Eina_Vector2 *to_scale, Efl_Canvas_Object **pivot, Eina_Vector2 *center_point); /** * @brief Scale range and pivot position, relative to the canvas. The object's * scale will change from @c from_scale to @c to_scale. All of the object's * vertices (i.e. the corners, if it's a rectangular object) will be multiplied * by this scale, relative to the pivot point. The pivot point is relative to * the canvas. * * @param[in] obj The object. * @param[in] from_scale Initial scale value. * @param[in] to_scale Ending scale value. * @param[in] pivot_point Position of the pivot point relative to the canvas. * If @c null the target passed to @ref efl_animation_apply is used as pivot * element. * * @since 1.24 * * @ingroup Efl_Canvas_Scale_Animation */ EVAS_API EVAS_API_WEAK void efl_animation_scale_absolute_set(Eo *obj, Eina_Vector2 from_scale, Eina_Vector2 to_scale, Eina_Position2D pivot_point); /** * @brief Scale range and pivot position, relative to the canvas. The object's * scale will change from @c from_scale to @c to_scale. All of the object's * vertices (i.e. the corners, if it's a rectangular object) will be multiplied * by this scale, relative to the pivot point. The pivot point is relative to * the canvas. * * @param[in] obj The object. * @param[out] from_scale Initial scale value. * @param[out] to_scale Ending scale value. * @param[out] pivot_point Position of the pivot point relative to the canvas. * If @c null the target passed to @ref efl_animation_apply is used as pivot * element. * * @since 1.24 * * @ingroup Efl_Canvas_Scale_Animation */ EVAS_API EVAS_API_WEAK void efl_animation_scale_absolute_get(const Eo *obj, Eina_Vector2 *from_scale, Eina_Vector2 *to_scale, Eina_Position2D *pivot_point); #endif