efl/src/lib/elementary/efl_ui_vg_animation_eo.lega...

528 lines
15 KiB
C

#ifndef _EFL_UI_ANIMATION_VIEW_EO_LEGACY_H_
#define _EFL_UI_ANIMATION_VIEW_EO_LEGACY_H_
#ifndef _ELM_ANIMATION_VIEW_EO_CLASS_TYPE
#define _ELM_ANIMATION_VIEW_EO_CLASS_TYPE
typedef Eo Elm_Animation_View;
#endif
#ifndef _ELM_ANIMATION_VIEW_EO_TYPES
#define _ELM_ANIMATION_VIEW_EO_TYPES
/**
* @brief Defines the state of animation view
*
* @ingroup Elm_Animation_View
*/
typedef enum
{
ELM_ANIMATION_VIEW_STATE_NOT_READY = 0, /**< Animation is not ready to
* play. (Probably, it didn't file
* set yet or failed to read file.
*
* @since 1.23 */
ELM_ANIMATION_VIEW_STATE_PLAY, /**< Animation is on playing. see
* @ref elm_animation_view_play
*
* @since 1.23 */
ELM_ANIMATION_VIEW_STATE_PLAY_BACK, /**< Animation is on playing back
* (rewinding). see
* @ref elm_animation_view_play_back
*
* @since 1.23 */
ELM_ANIMATION_VIEW_STATE_PAUSE, /**< Animation has been paused. To continue
* animation, call
* @ref elm_animation_view_resume. see
* @ref elm_animation_view_pause
*
* @since 1.23 */
ELM_ANIMATION_VIEW_STATE_STOP /**< Animation view successfully loaded a
* file then readied for playing. Otherwise
* after finished animation or stopped
* forcely by request. see
* @ref elm_animation_view_stop
*
* @since 1.23 */
} Elm_Animation_View_State;
#endif
/**
* @brief Animation will be started automatically when it's possible.
*
* If @ref elm_animation_view_auto_play_get is @c true, animation will be
* started when it's readied. The condition of @c auto play is when animation
* view opened file successfully, yet to play it plus when the object is
* visible. If animation view is disabled, invisible, it turns to pause state
* then resume animation when it's visible again.
*
* @warning This auto play will be only affected to the next animation source.
* So must be called before setting animation file
*
* Set auto play mode of an animation view object. @c true Enable auto play
* mode, disable otherwise
*
* @param[in] obj The object.
* @param[in] auto_play Auto play mode, Default value is @c false
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_auto_play_set(Elm_Animation_View *obj, Eina_Bool auto_play);
/**
* @brief Animation will be started automatically when it's possible.
*
* If @ref elm_animation_view_auto_play_get is @c true, animation will be
* started when it's readied. The condition of @c auto play is when animation
* view opened file successfully, yet to play it plus when the object is
* visible. If animation view is disabled, invisible, it turns to pause state
* then resume animation when it's visible again.
*
* @warning This auto play will be only affected to the next animation source.
* So must be called before setting animation file
*
* Returns auto play mode of an animation view object.
*
* @param[in] obj The object.
*
* @return Auto play mode, Default value is @c false
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_auto_play_get(const Elm_Animation_View *obj);
/**
* @brief Turn on/off animation looping.
*
* If @ref elm_animation_view_auto_repeat_get is @c true, it repeats animation
* when animation frame is reached to end. This auto repeat mode is valid to
* both play and play_back cases.
*
* Enable loop mode if @c true, disable otherwise.
*
* @param[in] obj The object.
* @param[in] auto_repeat Loop mode, Defalut is @c false.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_auto_repeat_set(Elm_Animation_View *obj, Eina_Bool auto_repeat);
/**
* @brief Turn on/off animation looping.
*
* If @ref elm_animation_view_auto_repeat_get is @c true, it repeats animation
* when animation frame is reached to end. This auto repeat mode is valid to
* both play and play_back cases.
*
* Returns auto repeat mode of an animation view object.
*
* @param[in] obj The object.
*
* @return Loop mode, Defalut is @c false.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_auto_repeat_get(const Elm_Animation_View *obj);
/**
* @brief Control animation speed.
*
* Control animation speed by multiplying @c speed value. If you want to play
* animation double-time faster, you can give @c speed 2. If you want to play
* animation double-time slower, you can give @c speed 0.5.
*
* @warning speed must be greater than zero.
*
* @param[in] obj The object.
* @param[in] speed Speed factor. Default value is 1.0
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_speed_set(Elm_Animation_View *obj, double speed);
/**
* @brief Control animation speed.
*
* Control animation speed by multiplying @c speed value. If you want to play
* animation double-time faster, you can give @c speed 2. If you want to play
* animation double-time slower, you can give @c speed 0.5.
*
* @warning speed must be greater than zero.
*
* Returns current animation speed of an animation view object.
*
* @param[in] obj The object.
*
* @return Speed factor. Default value is 1.0
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI double elm_animation_view_speed_get(const Elm_Animation_View *obj);
/**
* @brief Get the duration of animation in seconds.
*
* This API returns total duration time of current animation in the seconds. If
* current animation source isn't animatable, it returns zero.
*
* Returns current duration of an animation in seconds.
*
* @param[in] obj The object.
*
* @return duration time in the seconds
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI double elm_animation_view_duration_time_get(const Elm_Animation_View *obj);
/**
* @brief Set current progress position of animation view object.
*
* When you required to jump on a certain frame instantly, you can change
* current position by using this API.
*
* @warning The range of progress is 0 ~ 1.
*
* Set the current progress position of an animation view object.
*
* @param[in] obj The object.
* @param[in] progress Progress position. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_progress_set(Elm_Animation_View *obj, double progress);
/**
* @brief Set current progress position of animation view object.
*
* When you required to jump on a certain frame instantly, you can change
* current position by using this API.
*
* @warning The range of progress is 0 ~ 1.
*
* Returns current progress position of an animation view object.
*
* @param[in] obj The object.
*
* @return Progress position. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI double elm_animation_view_progress_get(const Elm_Animation_View *obj);
/**
* @brief Number of current frame.
*
* Ranges from 0 to @ref elm_animation_view_frame_count_get - 1.
*
* Set the current frame of an animation view object.
*
* @param[in] obj The object.
* @param[in] frame_num Current frame number.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_frame_set(Elm_Animation_View *obj, int frame_num);
/**
* @brief Number of current frame.
*
* Ranges from 0 to @ref elm_animation_view_frame_count_get - 1.
*
* Returns the current frame of an animation view object.
*
* @param[in] obj The object.
*
* @return Current frame number.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI int elm_animation_view_frame_get(const Elm_Animation_View *obj);
/**
* @brief Play animation one time instantly when it's available.
*
* If current keyframe is on a certain position by playing back, this will play
* forward from there.
*
* @warning Play request will be ignored if animation source is not set yet or
* animation is paused state or it's already on playing.
*
* @param[in] obj The object.
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_play(Elm_Animation_View *obj);
/**
* @brief Play back animation one time instantly when it's available.
*
* If current keyframe is on a certain position by playing, this will play
* backward from there.
*
* @warning Play back request will be ignored if animation source is not set
* yet or animation is paused state or it's already on playing back.
*
* @param[in] obj The object.
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_play_back(Elm_Animation_View *obj);
/**
* @brief Pause current animation instantly.
*
* Once animation is paused, animation view must get resume to play continue
* again.
*
* @warning Animation must be on playing or playing back status.
*
* @param[in] obj The object.
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_pause(Elm_Animation_View *obj);
/**
* @brief Resume paused animation to continue animation.
*
* @warning This resume must be called on animation paused status.
*
* @param[in] obj The object.
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_resume(Elm_Animation_View *obj);
/**
* @brief Stop playing animation.
*
* Stop animation instatly regardless of it's status and reset to show first
* frame of animation. Even though current animation is paused, the animation
* status will be stopped.
*
* @param[in] obj The object.
*
* @return @c true when it's successful. @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_stop(Elm_Animation_View *obj);
/** Get the default view size that specified from vector resource.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Size2D elm_animation_view_default_size_get(const Elm_Animation_View *obj);
/**
* @brief Returns the status whether current animation is on playing forward or
* backward. warning: If animation view is not on playing, it will return
* @c false.
*
* @param[in] obj The object.
*
* @return @c true, if animation on playing back, @c false otherwise.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI Eina_Bool elm_animation_view_is_playing_back(Elm_Animation_View *obj);
/**
* @brief Get the index of end frame of the animation view, if it's animated.
* note : frame number starts with 0.
*
* @param[in] obj The object.
*
* @return The number of frames. 0, if it's not animated.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI int elm_animation_view_frame_count_get(const Elm_Animation_View *obj);
/**
* @brief The start progress of the play. Default value is 0.
*
* Set start progress of an animation object.
*
* @param[in] obj The object.
* @param[in] min_progress The minimum progress. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_min_progress_set(Elm_Animation_View *obj, double min_progress);
/**
* @brief The start progress of the play. Default value is 0.
*
* Returns start progress of an animation object.
*
* @param[in] obj The object.
*
* @return The minimum progress. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI double elm_animation_view_min_progress_get(const Elm_Animation_View *obj);
/**
* @brief The last progress of the play. Default value is 1.
*
* Set last progress of an animation object.
*
* @param[in] obj The object.
* @param[in] max_progress The maximum progress. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_max_progress_set(Elm_Animation_View *obj, double max_progress);
/**
* @brief The last progress of the play. Default value is 1.
*
* Returns last progress of an animation object.
*
* @param[in] obj The object.
*
* @return The maximum progress. Value must be 0 ~ 1.
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI double elm_animation_view_max_progress_get(const Elm_Animation_View *obj);
/**
* @brief The start frame of the play. Default value is 0.
*
* Set minimum frame of an animation object.
*
* @param[in] obj The object.
* @param[in] min_frame The minimum frame for play. Value must be 0 ~
* @ref elm_animation_view_max_frame_get
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_min_frame_set(Elm_Animation_View *obj, int min_frame);
/**
* @brief The start frame of the play. Default value is 0.
*
* Returns minimum frame of an animation object.
*
* @param[in] obj The object.
*
* @return The minimum frame for play. Value must be 0 ~
* @ref elm_animation_view_max_frame_get
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI int elm_animation_view_min_frame_get(const Elm_Animation_View *obj);
/**
* @brief The last frame of the play. Default value is
* @ref elm_animation_view_frame_count_get - 1
*
* Set maximum frame of an animation object.
*
* @param[in] obj The object.
* @param[in] max_frame The maximum frame for play. Value must be
* @ref elm_animation_view_min_frame_get ~ (@ref elm_animation_view_frame_count_get - 1)
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI void elm_animation_view_max_frame_set(Elm_Animation_View *obj, int max_frame);
/**
* @brief The last frame of the play. Default value is
* @ref elm_animation_view_frame_count_get - 1
*
* Returns maximum frame of an animation object.
*
* @param[in] obj The object.
*
* @return The maximum frame for play. Value must be
* @ref elm_animation_view_min_frame_get ~ (@ref elm_animation_view_frame_count_get - 1)
*
* @since 1.23
*
* @ingroup Elm_Animation_View
*/
EAPI int elm_animation_view_max_frame_get(const Elm_Animation_View *obj);
#ifdef EFL_BETA_API_SUPPORT
/** Elementary vg_animation class
*
* @ingroup Efl_Ui_VG_Animation_Legacy
*/
#define EFL_UI_VG_ANIMATION_LEGACY_CLASS efl_ui_vg_animation_legacy_class_get()
EWAPI const Efl_Class *efl_ui_vg_animation_legacy_class_get(void);
#endif /* EFL_BETA_API_SUPPORT */
#endif