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() + --