EINA_MAGIC;
Ecore_Animator *animator;
+ Ecore_Timer *timer; /**< Timer used by elm_transit_go_in() */
Eina_Inlist *effect_list;
Eina_List *objs;
Elm_Transit *prev_chain_transit;
if (transit->del_data.func)
transit->del_data.func(transit->del_data.arg, transit);
+ ecore_timer_del(transit->timer);
+
//cut off the chain transit relationship
EINA_LIST_FOREACH_SAFE(transit->next_chain_transits, elist, elist_next, chain_transit)
chain_transit->prev_chain_transit = NULL;
return EINA_TRUE;
}
+static Eina_Bool
+_transit_go_in_cb(void *data)
+{
+ Elm_Transit *transit = data;
+
+ transit->timer = NULL;
+ elm_transit_go(transit);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
EAPI Elm_Transit *
elm_transit_add(void)
{
{
ELM_TRANSIT_CHECK_OR_RETURN(transit);
+ ELM_SAFE_FREE(transit->timer, ecore_timer_del);
+
Eina_List *elist;
Evas_Object *obj;
}
EAPI void
+elm_transit_go_in(Elm_Transit *transit, double in)
+{
+ ELM_TRANSIT_CHECK_OR_RETURN(transit);
+
+ if (transit->timer) ecore_timer_del(transit->timer);
+ transit->timer = ecore_timer_add(in, _transit_go_in_cb, transit);
+}
+
+EAPI void
elm_transit_paused_set(Elm_Transit *transit, Eina_Bool paused)
{
ELM_TRANSIT_CHECK_OR_RETURN(transit);
EAPI void elm_transit_go(Elm_Transit *transit);
/**
+ * Starts the transition in given seconds.
+ *
+ * @note @p transit can not be NULL
+ *
+ * @param transit The transit object.
+ * @param in The interval value in seconds
+ *
+ * @since 1.14
+ * @ingroup Transit
+ */
+EAPI void elm_transit_go_in(Elm_Transit *transit, double in);
+
+/**
* Pause/Resume the transition.
*
* If you call elm_transit_go again, the transit will be started from the