discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0ee6327035ea1109fddfe929547c3c1c6e521429

commit 0ee6327035ea1109fddfe929547c3c1c6e521429
Author: zmike <michael.blumenkra...@gmail.com>
Date:   Mon Feb 3 17:18:52 2014 -0500

    edje embryo now supports reset_timer()
    
    works the same as ecore_timer_reset()
---
 data/edje/include/edje.inc |  1 +
 src/lib/edje/edje_embryo.c | 17 +++++++++++++++++
 src/lib/edje/edje_var.c    | 10 ++++++++++
 3 files changed, 28 insertions(+)

diff --git a/data/edje/include/edje.inc b/data/edje/include/edje.inc
index a75e3cf..1cf7b89 100644
--- a/data/edje/include/edje.inc
+++ b/data/edje/include/edje.inc
@@ -60,6 +60,7 @@ native Float:fetch_float  (id, pos);
 /********************/
 native       timer       (Float:in, fname[], val);
 native       cancel_timer(id);
+native       reset_timer(id);
 
 /*******************/
 /* Edje anim calls */
diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c
index 5fa5ba3..a22bc31 100644
--- a/src/lib/edje/edje_embryo.c
+++ b/src/lib/edje/edje_embryo.c
@@ -66,6 +66,7 @@
  * set_str(id, str[])
  * timer(Float:in, fname[], val)
  * cancel_timer(id)
+ * reset_timer(id)
  * anim(Float:len, fname[], val)
  * cancel_anim(id)
  * emit(sig[], src[])
@@ -635,6 +636,21 @@ _edje_embryo_fn_cancel_timer(Embryo_Program *ep, 
Embryo_Cell *params)
    return 0;
 }
 
+/* reset_timer(id) */
+static Embryo_Cell
+_edje_embryo_fn_reset_timer(Embryo_Program *ep, Embryo_Cell *params)
+{
+   Edje *ed;
+   int id;
+
+   CHKPARAM(1);
+   ed = embryo_program_data_get(ep);
+   id = params[1];
+   if (id <= 0) return 0;
+   _edje_var_timer_del(ed, id);
+   return 0;
+}
+
 /* anim(Float:len, fname[], val) */
 static Embryo_Cell
 _edje_embryo_fn_anim(Embryo_Program *ep, Embryo_Cell *params)
@@ -3690,6 +3706,7 @@ _edje_embryo_script_init(Edje_Part_Collection *edc)
 
    embryo_program_native_call_add(ep, "timer", _edje_embryo_fn_timer);
    embryo_program_native_call_add(ep, "cancel_timer", 
_edje_embryo_fn_cancel_timer);
+   embryo_program_native_call_add(ep, "reset_timer", 
_edje_embryo_fn_reset_timer);
 
    embryo_program_native_call_add(ep, "anim", _edje_embryo_fn_anim);
    embryo_program_native_call_add(ep, "cancel_anim", 
_edje_embryo_fn_cancel_anim);
diff --git a/src/lib/edje/edje_var.c b/src/lib/edje/edje_var.c
index 5e40f62..10ac2dd 100644
--- a/src/lib/edje/edje_var.c
+++ b/src/lib/edje/edje_var.c
@@ -1022,6 +1022,16 @@ _edje_var_timer_del(Edje *ed, int id)
    free(et);
 }
 
+void
+_edje_var_timer_reset(Edje *ed, int id)
+{
+   Edje_Var_Timer *et;
+
+   et = _edje_var_timer_find(ed, id);
+   if (et)
+     ecore_timer_reset(et->timer);
+}
+
 int
 _edje_var_anim_add(Edje *ed, double len, const char *fname, int val)
 {

-- 


Reply via email to