davemds pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=48eec126bbe8cbb6f151040eced672ad158e3d2a

commit 48eec126bbe8cbb6f151040eced672ad158e3d2a
Author: Dave Andreoli <[email protected]>
Date:   Tue Aug 9 09:51:24 2016 +0200

    New 1.18 API: elm.Transit.revert()
    
    with test
---
 efl/elementary/transit.pxi                 | 23 ++++++++++++++++++++++-
 efl/elementary/transit_cdef.pxi            |  1 +
 examples/elementary/test_transit_bezier.py | 18 +++++++++++++++++-
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/efl/elementary/transit.pxi b/efl/elementary/transit.pxi
index d1d5c6a..2d6b08a 100644
--- a/efl/elementary/transit.pxi
+++ b/efl/elementary/transit.pxi
@@ -343,7 +343,6 @@ cdef class Transit(object):
         def __get__(self):
             return elm_transit_tween_mode_get(self.obj)
 
-
     property tween_mode_factor:
         """Transit animation acceleration factor.
 
@@ -455,6 +454,28 @@ cdef class Transit(object):
         """
         elm_transit_go_in(self.obj, seconds)
 
+    def revert(self):
+        """This can be used to reverse play an ongoing transition.
+
+        It shows effect only when an animation is going on.
+        If this function is called twice transition will go in forward
+        direction as normal one.
+        If a repeat count is set, this function call will revert just the
+        ongoing cycle and once it is reverted back completely, the transition
+        will go in forward direction.
+        If an autoreverse is set for the transition and this function is called
+        in the midst of the transition the ongoing transition will be reverted
+        and once it is done, the transition will begin again and complete a
+        full auto reverse cycle.
+
+        :return: ``True`` if the transition is reverted, ``False`` otherwise.
+        :rtype: bool
+
+        .. versionadded:: 1.18
+
+        """
+        return bool(elm_transit_revert(self.obj))
+
     property paused:
         """Pause/Resume the transition.
 
diff --git a/efl/elementary/transit_cdef.pxi b/efl/elementary/transit_cdef.pxi
index 57fe735..f4455f8 100644
--- a/efl/elementary/transit_cdef.pxi
+++ b/efl/elementary/transit_cdef.pxi
@@ -65,6 +65,7 @@ cdef extern from "Elementary.h":
     double                   elm_transit_duration_get(Elm_Transit *transit)
     void                     elm_transit_go(Elm_Transit *transit)
     void                     elm_transit_go_in(Elm_Transit *transit, double 
seconds)
+    Eina_Bool                elm_transit_revert(Elm_Transit *transit)
     void                     elm_transit_paused_set(Elm_Transit *transit, 
Eina_Bool paused)
     Eina_Bool                elm_transit_paused_get(Elm_Transit *transit)
     double                   elm_transit_progress_value_get(Elm_Transit 
*transit)
diff --git a/examples/elementary/test_transit_bezier.py 
b/examples/elementary/test_transit_bezier.py
index b1cdf24..8a70a20 100644
--- a/examples/elementary/test_transit_bezier.py
+++ b/examples/elementary/test_transit_bezier.py
@@ -23,6 +23,7 @@ CTRL_W, CTRL_H = 15, 15
 ctrl_pt1 = None
 ctrl_pt2 = None
 label = None
+revert_btn = None
 bezier_lines = []
 
 def clamp(minimum, x, maximum):
@@ -79,6 +80,7 @@ def ctrl_pt_mouse_move_cb(obj, event):
         update_curve()
 
 def transit_del_cb(obj):
+    revert_btn.disabled = True
     for w in ctrl_pt1, ctrl_pt2, ctrl_pt1.data["line"], ctrl_pt2.data["line"]:
         w.show()
 
@@ -92,14 +94,22 @@ def btn_clicked_cb(btn):
     transit.del_cb_set(transit_del_cb)
     transit.go()
 
+    revert_btn.disabled = False
+    revert_btn.data['transit'] = transit
     for w in ctrl_pt1, ctrl_pt2, ctrl_pt1.data["line"], ctrl_pt2.data["line"]:
         w.hide()
 
+def revert_btn_clicked_cb(btn):
+    transit = btn.data['transit']
+    transit.revert()
+    
 def transit_bezier_clicked(obj, item=None):
-    global ctrl_pt1, ctrl_pt2, label, bezier_lines
+    global ctrl_pt1, ctrl_pt2, label, bezier_lines, revert_btn
 
     win = Window("transit_bezier", ELM_WIN_BASIC, title="Transit Bezier",
                  autodel=True, size=(WIN_W, WIN_H))
+    if obj is None:
+        win.callback_delete_request_add(lambda o: elementary.exit())
 
     # BG. Fix window size
     bg = Background(win, size_hint_min=(WIN_W, WIN_H))
@@ -145,6 +155,12 @@ def transit_bezier_clicked(obj, item=None):
     label = Label(win, size=(WIN_W, 50), pass_events=True)
     label.show()
 
+    # Revert btn
+    btn = Button(win, text="Revert", size=(70,50), pos=(100,0), disabled=True)
+    btn.callback_clicked_add(revert_btn_clicked_cb)
+    btn.show()
+    revert_btn = btn
+
     # Button
     btn = Button(win, text="Go", size=(BTN_SIZE,BTN_SIZE),
                  pos=(0, WIN_H - BTN_SIZE))

-- 


Reply via email to