Elementary: Add an example for input events.
This commit is contained in:
parent
b5ecf69887
commit
d7cef5a697
|
@ -76,6 +76,8 @@ items = [
|
||||||
]),
|
]),
|
||||||
("Drag & Drop", [
|
("Drag & Drop", [
|
||||||
("Genlist DnD Default Anim", "test_dnd", "dnd_genlist_default_anim_clicked"),
|
("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", [
|
("Edje External", [
|
||||||
("Ext Button", "test_external", "edje_external_button_clicked"),
|
("Ext Button", "test_external", "edje_external_button_clicked"),
|
||||||
|
@ -119,6 +121,7 @@ items = [
|
||||||
("Video", "test_video", "video_clicked"),
|
("Video", "test_video", "video_clicked"),
|
||||||
]),
|
]),
|
||||||
("Input", [
|
("Input", [
|
||||||
|
("Input events", "test_input_events", "elm_input_events_clicked"),
|
||||||
("Gesture Layer", "test_gesture_layer", "gesture_layer_clicked"),
|
("Gesture Layer", "test_gesture_layer", "gesture_layer_clicked"),
|
||||||
]),
|
]),
|
||||||
("Lists", [
|
("Lists", [
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in New Issue