kuuko pushed a commit to branch master.

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

commit d7cef5a6977ad4fd8f5c19d569ba34a548356f00
Author: Kai Huuhko <kai.huu...@gmail.com>
Date:   Mon Nov 25 20:52:54 2013 +0200

    Elementary: Add an example for input events.
---
 examples/elementary/test.py              |  3 ++
 examples/elementary/test_input_events.py | 89 ++++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+)

diff --git a/examples/elementary/test.py b/examples/elementary/test.py
index dd8b201..66e118b 100755
--- a/examples/elementary/test.py
+++ b/examples/elementary/test.py
@@ -76,6 +76,8 @@ items = [
         ]),
          ("Drag & Drop", [
             ("Genlist DnD Default Anim", "test_dnd", 
"dnd_genlist_default_anim_clicked"),
+            ("Genlist DnD User Anim", "test_dnd", 
"dnd_genlist_user_anim_clicked"),
+            ("Genlist + Gengrid DnD", "test_dnd", 
"dnd_genlist_gengrid_clicked"),
         ]),
          ("Edje External", [
             ("Ext Button", "test_external", "edje_external_button_clicked"),
@@ -119,6 +121,7 @@ items = [
             ("Video", "test_video", "video_clicked"),
         ]),
          ("Input", [
+            ("Input events", "test_input_events", "elm_input_events_clicked"),
             ("Gesture Layer", "test_gesture_layer", "gesture_layer_clicked"),
         ]),
          ("Lists", [
diff --git a/examples/elementary/test_input_events.py 
b/examples/elementary/test_input_events.py
new file mode 100644
index 0000000..189e6fc
--- /dev/null
+++ b/examples/elementary/test_input_events.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+# encoding: utf-8
+
+from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
+from efl import elementary
+from efl.elementary.box import Box
+from efl.elementary.button import Button
+from efl.elementary.entry import Entry, Entry_utf8_to_markup
+from efl.elementary.object import EVAS_CALLBACK_KEY_UP
+from efl.elementary.window import StandardWindow
+
+EXPAND_BOTH = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
+FILL_BOTH = EVAS_HINT_FILL, EVAS_HINT_FILL
+
+def events_cb(obj, src, event_type, event, data):
+
+    entry = data
+    append = entry.entry_append
+
+    append(Entry_utf8_to_markup(
+        "Obj: %r\n\nSrc: %r\n\nEvent: %s\n\n" % (obj, src, event)
+        ))
+
+    if type(src) == Entry:
+        src.entry = ""
+
+    if event_type == EVAS_CALLBACK_KEY_UP:
+        append("Modifiers:<br>")
+        append(Entry_utf8_to_markup(
+            "Control: %s Shift: %s Alt: %s" % (
+                event.modifier_is_set("Control"),
+                event.modifier_is_set("Shift"),
+                event.modifier_is_set("Alt")
+                )
+            ))
+        append("<br><br>")
+
+        return True
+
+    return False
+
+def elm_input_events_clicked(obj, item=None):
+    win = StandardWindow("inputevents", "Input Events Test", autodel=True)
+    if obj is None:
+        win.callback_delete_request_add(lambda o: elementary.exit())
+
+    box = Box(win, size_hint_weight=EXPAND_BOTH)
+    win.resize_object_add(box)
+    box.show()
+
+    entry = Entry(win, scrollable=True,
+        size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH)
+    entry.text = (
+        "This example will show how Elementary input events are handled. "
+        "Typing in this entry will log in the entry box below all events "
+        "caught by event handlers set to this Entry widget and its parent, "
+        "the Window widget."
+        )
+    entry.show()
+
+    log_entry = Entry(win, editable=False, scrollable=True,
+        size_hint_align=FILL_BOTH, size_hint_weight=EXPAND_BOTH)
+    log_entry.show()
+
+    btn = Button(win, text="Clear log")
+    btn.callback_clicked_add(lambda x: setattr(log_entry, "entry", ""))
+    btn.show()
+
+    box.pack_end(entry)
+    box.pack_end(log_entry)
+    box.pack_end(btn)
+
+    entry.elm_event_callback_add(events_cb, log_entry)
+    win.elm_event_callback_add(events_cb, log_entry)
+
+    win.resize(640, 480)
+    win.show()
+
+    entry.focus = True
+
+
+if __name__ == "__main__":
+    elementary.init()
+
+    elm_input_events_clicked(None)
+
+    elementary.run()
+    elementary.shutdown()
+

-- 


Reply via email to