EAPI void elm_animator_duration_set( Elm_Animator* animator, const double duration );
EAPI void elm_animator_operation_callback_set( Elm_Animator* animator, void (*op)(void*, Elm_Animator*, const double), void* data );
EAPI void elm_animator_completion_callback_set( Elm_Animator* animator, void (*op)(void*), void* data );
- EAPI void elm_animator_operation_set( Elm_Animator* animator, void (*op)(void*, Elm_Animator*, const double), void* data ) __attribute__((deprecated));
- EAPI void elm_animator_completion_set( Elm_Animator* animator, void (*op)(void*), void* data ) __attribute__((deprecated));
EAPI void elm_animator_stop( Elm_Animator* animator );
EAPI void elm_animator_repeat_set( Elm_Animator* animator, const unsigned int repeat_cnt );
EAPI void elm_animator_animate( Elm_Animator* animator );
EAPI void elm_transit_stop( Elm_Transit* transit );
//Please Use elm_transit_completion_callback_set
- EAPI void elm_transit_completion_set( Elm_Transit* transit, void (*op)(void*), void* data ) __attribute__((deprecated));
EAPI void elm_transit_completion_callback_set( Elm_Transit* transit, void (*op)(void*,Elm_Transit*), void* data );
EAPI void elm_transit_repeat_set( Elm_Transit* transit, const unsigned int repeat );
EAPI void elm_transit_auto_reverse_set( Elm_Transit* transit, Eina_Bool reverse );
/*Translation FX*/
EAPI Elm_Effect* elm_fx_translation_add( Evas_Object* obj, const Evas_Coord from_x, const Evas_Coord from_y, const Evas_Coord to_x, const Evas_Coord to_y );
- /*Transfer FX*/
- //Please Use Translation FX
- EAPI Elm_Effect* elm_fx_transfer_add( Evas_Object* obj, const Evas_Coord from_x, const Evas_Coord from_y, const Evas_Coord to_x, const Evas_Coord to_y ) __attribute__((deprecated));
-
/*Resizing FX*/
EAPI Elm_Effect* elm_fx_resizing_add( Evas_Object* obj, const Evas_Coord from_w, const Evas_Coord from_h, const Evas_Coord to_w, const Evas_Coord to_h );
* hooks
*/
void
-_really_del(void *data)
+_really_del(void *data, Elm_Transit* transit)
{
Widget_Data *wd = (Widget_Data *) data;
// do animation
Elm_Transit * transit = elm_transit_add(wd->layout);
- elm_transit_fx_insert(transit, elm_fx_transfer_add(wd->layout, wd->show_x, wd->show_y, wd->hide_x, wd->hide_y));
- elm_transit_completion_set(transit, _really_del, wd);
+ elm_transit_fx_insert(transit, elm_fx_translation_add(wd->layout, wd->show_x, wd->show_y, wd->hide_x, wd->hide_y));
+ elm_transit_completion_callback_set(transit, _really_del, wd);
elm_transit_curve_style_set(transit, ELM_ANIMATOR_CURVE_IN);
elm_transit_run(transit, ANIMATION_TIME-0.1);
elm_transit_del(transit);
}
static void
-_show_animation_end_cb(void *data)
+_show_animation_end_cb(void *data, Elm_Transit* transit)
{
Widget_Data *wd = (Widget_Data *)data;
// unblock event
//ecore_timer_add(0.033, _show_layout, wd);
Elm_Transit * transit = elm_transit_add(wd->layout);
- elm_transit_fx_insert(transit, elm_fx_transfer_add(wd->layout, wd->hide_x, wd->hide_y, wd->show_x, wd->show_y));
- elm_transit_completion_set(transit, _show_animation_end_cb, wd);
+ elm_transit_fx_insert(transit, elm_fx_translation_add(wd->layout, wd->hide_x, wd->hide_y, wd->show_x, wd->show_y));
+ elm_transit_completion_callback_set(transit, _show_animation_end_cb, wd);
elm_transit_curve_style_set(transit, ELM_ANIMATOR_CURVE_OUT);
elm_transit_run(transit, ANIMATION_TIME);
elm_transit_del(transit);
Elm_Animator* animator;
Eina_List* effect_list;
Evas_Object* block_rect;
- void (*completion_op)(void*);
- void (*completion_op2)(void*, Elm_Transit*);
+ void (*completion_op)(void*, Elm_Transit*);
void* completion_arg;
Eina_Bool reserved_del : 1;
};
}
if( transit->completion_op ) {
- transit->completion_op( transit->completion_arg );
- }
-
- if( transit->completion_op2 ) {
- transit->completion_op2( transit->completion_arg, transit );
+ transit->completion_op( transit->completion_arg, transit );
}
if( transit->reserved_del == EINA_TRUE ) {
#ifdef ELM_FX_EXCEPTION_ENABLE
ELM_FX_NULL_CHECK( transit );
#endif
- transit->completion_op2 = op;
- transit->completion_arg = data;
-}
-
-
-
-
-
-/**
- * @ingroup Transit
- *
- * Set the user-callback function when the transit is done. (deprecated)
- *
- * @param transit Transit object
- * @param op Callback function pointer
- * @param data Callback funtion user argument
- */
-
-EAPI void elm_transit_completion_set( Elm_Transit* transit, void (*op)(void*), void* data )
-{
-#ifdef ELM_FX_EXCEPTION_ENABLE
- ELM_FX_NULL_CHECK( transit );
-#endif
transit->completion_op = op;
transit->completion_arg = data;
-
- fprintf( stderr, "elm_transit_completion_set is deprecated! Try use elm_transit_completion_callback_set!\n" );
-
}
+
/**
* @ingroup Transit
*
evas_object_show( translation->obj );
evas_object_move( translation->obj, translation->from.x, translation->from.y );
-// _elm_fx_translation_op( data, NULL, 0 );
}
{
Elm_Fx_Translation* translation = data;
-// evas_object_map_enable_set( translation->obj, EINA_FALSE );
evas_object_move( translation->obj, translation->from.x + translation->to.x,
translation->from.y + translation->to.y );
}
}
-/*
-static void _elm_fx_translation_op( void* data, Elm_Animator* animator, const double frame )
-{
- Elm_Fx_Transfer* translation = data;
-
- Evas_Map* map = evas_map_new( 4 );
-
- if( map == NULL ) {
- return ;
- }
-
- evas_map_smooth_set( map, EINA_TRUE );
-
- Evas_Coord x, y, w, h;
- evas_object_geometry_get( translation->obj, &x, &y, &w, &h );
-
- evas_map_point_coord_set( map, 0, (translation->from.x + transition->to.x * frame),
- (translation->from.y + transition->to.y * frame),
- 0 );
-
- evas_map_point_coord_set( map, 1, (translation->from.x + translation->to.x * frame) + w,
- (translation->from.y + translation->to.y * frame),
- 0 );
-
- evas_map_point_coord_set( map, 2, (translation->from.x + translation->to.x * frame) + w,
- (translation->from.y + translation->to.y * frame) + h,
- 0 );
-
- evas_map_point_coord_set( map, 3, (translation->from.x + translation->to.x * frame),
- (translation->from.y + translation->to.y * frame) + h,
- 0 );
-
- evas_map_point_image_uv_set( map, 0, 0, 0 );
- evas_map_point_image_uv_set( map, 1, w, 0 );
- evas_map_point_image_uv_set( map, 2, w, h );
- evas_map_point_image_uv_set( map, 3, 0, h );
-
- evas_map_util_3d_perspective( map, x + w / 2, y + h / 2, 0, 10000 );
-
- evas_object_map_enable_set( translation->obj, EINA_TRUE );
- evas_object_map_set( translation->obj, map );
- evas_map_free( map );
-
-}
-*/
-
/**
* @ingroup Transit
*
-/////////////////////////////////////////////////////////////////////////////////////
-//Transfer FX
-/////////////////////////////////////////////////////////////////////////////////////
-typedef struct _transfer Elm_Fx_Transfer;
-static void _elm_fx_transfer_op( void* data, Elm_Animator* animator, const double frame );
-
-struct _transfer {
-
- Evas_Object* obj;
- struct _point from, to;
-
-};
-
-
-static void _elm_fx_transfer_begin( void* data,
- const Eina_Bool auto_reverse,
- const unsigned int repeat_cnt )
-{
- Elm_Fx_Transfer* transfer = data;
-
- evas_object_show( transfer->obj );
- evas_object_move( transfer->obj, transfer->from.x, transfer->from.y );
-// _elm_fx_transfer_op( data, NULL, 0 );
-
-}
-
-
-
-static void _elm_fx_transfer_end( void* data,
- const Eina_Bool auto_reverse,
- const unsigned int repeat_cnt )
-{
- Elm_Fx_Transfer* transfer = data;
-
-// evas_object_map_enable_set( transfer->obj, EINA_FALSE );
- evas_object_move( transfer->obj, transfer->from.x + transfer->to.x,
- transfer->from.y + transfer->to.y );
-}
-
-static void _elm_fx_transfer_op( void* data, Elm_Animator* animator, const double frame )
-{
- Elm_Fx_Transfer* transfer = data;
-
- Evas_Coord x, y;
-
- x = transfer->from.x + (Evas_Coord)( (float) transfer->to.x * (float) frame);
- y = transfer->from.y + (Evas_Coord)( (float) transfer->to.y * (float) frame);
-
- evas_object_move( transfer->obj, x, y );
-}
-
-
-
-
-/**
- * @ingroup Transit
- *
- * Add transfer effect. (deprecated. please use translation.)
- *
- * @param obj Evas_Object that effect is applying to
- * @param from_x Position X when effect begin
- * @param from_y Position Y whene effect begin
- * @param to_x Position X to be
- * @param to_y Position Y to be
- * @return Transfer effect
- */
-EAPI Elm_Effect* elm_fx_transfer_add( Evas_Object* obj,
- const Evas_Coord from_x,
- const Evas_Coord from_y,
- const Evas_Coord to_x,
- const Evas_Coord to_y )
-{
-#ifdef ELM_FX_EXCEPTION_ENABLE
- ELM_FX_NULL_CHECK_WITH_RET( obj, NULL );
-#endif
-
- Elm_Effect* effect = calloc( 1, sizeof( Elm_Effect ) );
-
- if( effect == NULL ) {
- fprintf( stderr, "Failed to allocate Elm_Effect!\n" );
- return NULL;
- }
-
- Elm_Fx_Transfer* transfer = calloc( 1, sizeof( Elm_Fx_Transfer ) );
-
- if( transfer == NULL ) {
- fprintf( stderr, "Failed to allocate Elm_Effect!\n" );
- free( effect );
- return NULL;
- }
-
- transfer->obj = obj;
- transfer->from.x = from_x;
- transfer->from.y = from_y;
- transfer->to.x = to_x - from_x;
- transfer->to.y = to_y - from_y;
-
- effect->begin_op = _elm_fx_transfer_begin;
- effect->end_op = _elm_fx_transfer_end;
- effect->animation_op = _elm_fx_transfer_op;
- effect->user_data = transfer;
-
- fprintf( stderr, "elm_fx_transfer_add is deprecated! Try use elm_fx_translation!\n" );
-
- return effect;
-}
-
/////////////////////////////////////////////////////////////////////////////////////
//Zoom FX
/////////////////////////////////////////////////////////////////////////////////////
}
+
+
/////////////////////////////////////////////////////////////////////////////////////
// ImageAnimation FX
/////////////////////////////////////////////////////////////////////////////////////
typedef struct _image_animation Elm_Fx_Image_Animation;
struct _image_animation {
- Evas_Object* icon;
- char** images;
- int count;
- int item_num;
+ Evas_Object** images;
};
-static void _elm_fx_imageanimation_begin( void* data,
- const Eina_Bool auto_reverse,
- const unsigned int repeat_cnt )
-{
-}
-
-static void _elm_fx_imageanimation_end( void* data,
- const Eina_Bool auto_reverse,
- const unsigned int repeat_cnt )
-{
-}
-
-void _elm_fx_imageanimation_op( void* data, Elm_Animator* animator, const double frame )
-{
- Elm_Fx_Image_Animation* image_animation = (Elm_Fx_Image_Animation *)data;
-
- if ( image_animation->icon == NULL ) {
- return;
- }
-
- image_animation->count = floor( frame * image_animation->item_num );
-
- elm_icon_file_set( image_animation->icon, image_animation->images[image_animation->count], NULL );
-}
-
/**
* @ingroup Transit
*
* @param images Images for animation.
* @return ImageAnimation Effect.
*/
-EAPI Elm_Effect* elm_fx_imageanimation_add( const Evas_Object* icon, const char** images, const unsigned int item_num )
+EAPI Elm_Effect* elm_fx_imageanimation_add( Evas_Object* images[])
{
#ifdef ELM_FX_EXCEPTION_ENABLE
ELM_FX_NULL_CHECK_WITH_RET( images, NULL );
return NULL;
}
- if( images == NULL || *images == NULL ) {
- fprintf( stderr, "Failed to load NULL images!\n" );
- return NULL;
- }
-
Elm_Fx_Image_Animation* image_animation = calloc( 1, sizeof( Elm_Fx_Image_Animation) );
if( image_animation == NULL ) {
return NULL;
}
- image_animation->icon = icon;
image_animation->images = images;
- image_animation->count = 0;
- image_animation->item_num = item_num;
- effect->begin_op = _elm_fx_imageanimation_begin;
- effect->end_op = _elm_fx_imageanimation_end;
- effect->animation_op = _elm_fx_imageanimation_op;
+ effect->begin_op = NULL;
+ effect->end_op = NULL;
+ effect->animation_op = NULL;
effect->user_data = image_animation ;
return effect;
}
+
+